@sonordev/site-kit 6.4.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1621) hide show
  1. package/AGENTS.md +18 -3
  2. package/README.md +50 -34
  3. package/agent-manifest.json +282 -52
  4. package/dist/AnalyticsProvider-GJ6JFQO5.js +11 -0
  5. package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
  6. package/dist/ArticleViewTracker-FEA5SBKW.js +49 -0
  7. package/dist/BlocksPopup-MNK4SDZM.js +43 -0
  8. package/dist/ChatWidget-M2YNLRYW.js +15 -0
  9. package/dist/DatePicker-JEBV6WYJ.js +2 -0
  10. package/dist/EngageWidget-RR63JQCA.js +11 -0
  11. package/dist/FileField-JFBXXD43.js +83 -0
  12. package/dist/FormCelebration-OVGAGBKF.js +2 -0
  13. package/dist/FormSpotlight-QE3J3VB5.js +754 -0
  14. package/dist/FormStage-OTPKEWID.js +418 -0
  15. package/dist/ManagedForm-3VRALWUD.js +14 -0
  16. package/dist/ManagedNewsletterForm-A2FE6L5C.js +62 -0
  17. package/dist/SignalCore-S6DO3VQV.js +322 -0
  18. package/dist/SiteDesignReporter-2WZVWJMA.js +11 -0
  19. package/dist/SitemapSync-IKNKPT2G.js +8 -0
  20. package/dist/SitemapSync.d.ts +0 -1
  21. package/dist/_client/booking-widget.d.ts +4 -0
  22. package/dist/_client/booking-widget.js +7 -0
  23. package/dist/_client/testimonial-section.d.ts +11 -0
  24. package/dist/_client/testimonial-section.js +5 -0
  25. package/dist/admin-auth/index.d.ts +0 -1
  26. package/dist/admin-auth/index.js +0 -0
  27. package/dist/admin-auth/session.d.ts +0 -1
  28. package/dist/affiliates/AffiliatesWidget.d.ts +0 -1
  29. package/dist/affiliates/api.d.ts +0 -1
  30. package/dist/affiliates/index.d.ts +0 -1
  31. package/dist/affiliates/index.js +149 -0
  32. package/dist/affiliates/types.d.ts +0 -1
  33. package/dist/affiliates/useAffiliates.d.ts +0 -1
  34. package/dist/analytics/AnalyticsProvider.d.ts +0 -1
  35. package/dist/analytics/WebVitals.d.ts +0 -1
  36. package/dist/analytics/dispatch.d.ts +0 -1
  37. package/dist/analytics/index.d.ts +0 -1
  38. package/dist/analytics/index.js +12 -66
  39. package/dist/analytics/measurement-context.d.ts +0 -1
  40. package/dist/analytics/page-observation.d.ts +0 -1
  41. package/dist/analytics/send-gate.d.ts +0 -1
  42. package/dist/analytics/types.d.ts +0 -1
  43. package/dist/analytics/useContactTracking.d.ts +0 -1
  44. package/dist/article-styles-6CM5FUMV.js +590 -0
  45. package/dist/article-tables-AXSZOGNW.js +2 -0
  46. package/dist/articles/Article.d.ts +0 -1
  47. package/dist/articles/ArticleFAQ.d.ts +0 -1
  48. package/dist/articles/ArticleFaqSection.d.ts +0 -1
  49. package/dist/articles/ArticleList.d.ts +0 -1
  50. package/dist/articles/ArticleViewTracker.d.ts +0 -1
  51. package/dist/articles/AuthorCard.d.ts +0 -1
  52. package/dist/articles/AuthorPage.d.ts +0 -1
  53. package/dist/articles/ClusterLandingPage.d.ts +0 -1
  54. package/dist/articles/ClusterNavigation.d.ts +0 -1
  55. package/dist/articles/ManagedNewsletterForm.d.ts +0 -1
  56. package/dist/articles/NewsletterShell.d.ts +0 -1
  57. package/dist/articles/NewsletterWidget.d.ts +0 -1
  58. package/dist/articles/PublicationLayout.d.ts +0 -1
  59. package/dist/articles/PublicationSidebar.d.ts +0 -1
  60. package/dist/articles/RelatedPosts.d.ts +0 -1
  61. package/dist/articles/ServiceCallout.d.ts +0 -1
  62. package/dist/articles/TableOfContents.d.ts +0 -1
  63. package/dist/articles/article-styles.d.ts +0 -1
  64. package/dist/articles/article-tables.d.ts +0 -1
  65. package/dist/articles/artwork.d.ts +0 -1
  66. package/dist/articles/author-schema.d.ts +0 -1
  67. package/dist/articles/author-social.d.ts +0 -1
  68. package/dist/articles/excerpt.d.ts +0 -1
  69. package/dist/articles/index.d.ts +0 -1
  70. package/dist/articles/index.js +87 -147
  71. package/dist/articles/news-sitemap.d.ts +0 -1
  72. package/dist/articles/processArticleHtml.d.ts +0 -1
  73. package/dist/articles/public-reads.d.ts +0 -1
  74. package/dist/articles/reading-time.d.ts +0 -1
  75. package/dist/articles/routes.d.ts +0 -1
  76. package/dist/articles/server-core.d.ts +0 -14
  77. package/dist/articles/server-ui.d.ts +0 -1
  78. package/dist/articles/server-ui.js +221 -265
  79. package/dist/articles/server.d.ts +0 -14
  80. package/dist/articles/server.js +10 -252
  81. package/dist/articles/types.d.ts +6 -1
  82. package/dist/articles/widget-styles.d.ts +0 -1
  83. package/dist/brand/extract-brand-profile.d.ts +0 -1
  84. package/dist/chat/index.d.ts +11 -0
  85. package/dist/chat/index.js +16 -0
  86. package/dist/chunk-24QZEO3Q.js +41 -0
  87. package/dist/chunk-3XHK5DFX.js +184 -0
  88. package/dist/chunk-43OCZ3JA.js +67 -0
  89. package/dist/chunk-4KZ6W3ZH.js +8 -0
  90. package/dist/chunk-4WI3FU5L.js +129 -0
  91. package/dist/chunk-4Y5FWDPM.js +97 -0
  92. package/dist/chunk-5C4WVOVO.js +478 -0
  93. package/dist/chunk-5SQK3D53.js +24 -0
  94. package/dist/chunk-5UZN5V52.js +52 -0
  95. package/dist/chunk-5YSI5KFD.js +19 -0
  96. package/dist/chunk-6CUFRMMF.js +937 -0
  97. package/dist/chunk-6HDT4G4A.js +253 -0
  98. package/dist/chunk-6T6CQVNL.js +37 -0
  99. package/dist/chunk-6ZB3XNAT.js +54 -0
  100. package/dist/chunk-7KJGO77W.js +1 -0
  101. package/dist/chunk-7L5AARVY.js +68 -0
  102. package/dist/chunk-7ZHJIRM3.js +4 -0
  103. package/dist/chunk-7ZWO5HDQ.js +1 -0
  104. package/dist/chunk-A4CC4ZG3.js +15 -0
  105. package/dist/chunk-AQSNPZY4.js +92 -0
  106. package/dist/chunk-B52EXDWI.js +1803 -0
  107. package/dist/chunk-BQR4IPBW.js +146 -0
  108. package/dist/chunk-BR4ZKUHH.js +227 -0
  109. package/dist/chunk-BU66S5B7.js +1 -0
  110. package/dist/chunk-C4G3NW2E.js +25 -0
  111. package/dist/chunk-D7SLSJS4.js +1 -0
  112. package/dist/chunk-DIKNRN34.js +28 -0
  113. package/dist/chunk-DXO6SBMD.js +43 -0
  114. package/dist/chunk-EDYHROQ7.js +77 -0
  115. package/dist/chunk-EKBEOXTH.js +114 -0
  116. package/dist/chunk-FESKKJAS.js +19 -0
  117. package/dist/chunk-FV2VD7WM.js +347 -0
  118. package/dist/chunk-FYAB6CXS.js +265 -0
  119. package/dist/chunk-G3NHWMP5.js +233 -0
  120. package/dist/chunk-GJWI74ZZ.js +27 -0
  121. package/dist/chunk-GKGSXUVQ.js +218 -0
  122. package/dist/chunk-GLHQ3LRO.js +97 -0
  123. package/dist/chunk-GW7GSBO7.js +66 -0
  124. package/dist/chunk-GYBMMWGF.js +163 -0
  125. package/dist/chunk-GYF2ULVO.js +14 -0
  126. package/dist/chunk-HPUXKMNR.js +148 -0
  127. package/dist/chunk-HXJ54KAM.js +122 -0
  128. package/dist/chunk-I6WUCBKI.js +99 -0
  129. package/dist/chunk-IHG36STL.js +286 -0
  130. package/dist/chunk-J4FSB4OG.js +200 -0
  131. package/dist/chunk-JE4A5S4F.js +48 -0
  132. package/dist/chunk-JJ4JS3LD.js +26 -0
  133. package/dist/chunk-JMRESWQT.js +130 -0
  134. package/dist/chunk-JSZN6LDZ.js +338 -0
  135. package/dist/chunk-KPAZG65P.js +138 -0
  136. package/dist/chunk-KV4LOKOU.js +154 -0
  137. package/dist/chunk-KXPBMCFL.js +39 -0
  138. package/dist/chunk-L2V5PUFN.js +15 -0
  139. package/dist/chunk-L3AQCDCY.js +386 -0
  140. package/dist/chunk-L5UOHS6E.js +45 -0
  141. package/dist/chunk-LCDVPAMR.js +24 -0
  142. package/dist/chunk-LE7ZOTHB.js +43 -0
  143. package/dist/chunk-LNSNA3W4.js +217 -0
  144. package/dist/chunk-LQJC5S2M.js +236 -0
  145. package/dist/chunk-LT5ITURG.js +1071 -0
  146. package/dist/chunk-LVESVYCE.js +270 -0
  147. package/dist/chunk-M4ZY2FVB.js +177 -0
  148. package/dist/chunk-MH2DSGC6.js +10 -0
  149. package/dist/chunk-MJP63SSS.js +14 -0
  150. package/dist/chunk-MVLMXC44.js +9 -0
  151. package/dist/chunk-MZFF5F7R.js +407 -0
  152. package/dist/chunk-N2UVOR3X.js +238 -0
  153. package/dist/chunk-NDF4A5JM.js +37 -0
  154. package/dist/chunk-NJCTQH2P.js +62 -0
  155. package/dist/chunk-NZOJHERI.js +32 -0
  156. package/dist/chunk-OO2GZ272.js +1241 -0
  157. package/dist/chunk-OPRBF7VE.js +41 -0
  158. package/dist/chunk-OSQHWIM5.js +523 -0
  159. package/dist/chunk-OSYCOC3K.js +21 -0
  160. package/dist/chunk-P5GB6NEO.js +66 -0
  161. package/dist/chunk-PKBMQBKP.js +5 -0
  162. package/dist/chunk-PO2TRJPY.js +40 -0
  163. package/dist/chunk-PSAG45YF.js +451 -0
  164. package/dist/chunk-PXKIGZ2F.js +31 -0
  165. package/dist/chunk-QLTDFUJ7.js +94 -0
  166. package/dist/chunk-QPEEKFCA.js +533 -0
  167. package/dist/chunk-QXMIKDOL.js +125 -0
  168. package/dist/chunk-R3TOKUDJ.js +191 -0
  169. package/dist/chunk-S22FSH7C.js +94 -0
  170. package/dist/chunk-SC4MZGWZ.js +63 -0
  171. package/dist/chunk-SOD2F6C2.js +281 -0
  172. package/dist/chunk-SS636UDN.js +35 -0
  173. package/dist/chunk-SSUQKA7L.js +746 -0
  174. package/dist/chunk-SWKE6FWH.js +47 -0
  175. package/dist/chunk-T22VK4NJ.js +49 -0
  176. package/dist/chunk-TT63HHIT.js +543 -0
  177. package/dist/chunk-TXBAOEKG.js +1084 -0
  178. package/dist/chunk-UINSEWQ3.js +127 -0
  179. package/dist/chunk-UPFU63L4.js +126 -0
  180. package/dist/chunk-UVPGW4R7.js +222 -0
  181. package/dist/chunk-VX5CMNMM.js +26 -0
  182. package/dist/chunk-WFHI6HXP.js +837 -0
  183. package/dist/chunk-WMVK77ND.js +53 -0
  184. package/dist/chunk-X6F6SO4S.js +135 -0
  185. package/dist/chunk-XTRZGXB2.js +34 -0
  186. package/dist/chunk-XZMVNORA.js +100 -0
  187. package/dist/chunk-Y3INC4QJ.js +133 -0
  188. package/dist/chunk-YC7ELZS3.js +51 -0
  189. package/dist/chunk-YGGDU6C3.js +93 -0
  190. package/dist/chunk-YVKRYQRG.js +70 -0
  191. package/dist/chunk-Z22QVHT4.js +57 -0
  192. package/dist/chunk-ZEGVKVD5.js +80 -0
  193. package/dist/chunk-ZTZQPYP6.js +55 -0
  194. package/dist/client/SiteKitCredential.d.ts +0 -1
  195. package/dist/client/index.d.ts +0 -1
  196. package/dist/client/index.js +13 -53
  197. package/dist/cms/CmsPage.d.ts +0 -1
  198. package/dist/cms/CmsPreview.d.ts +0 -1
  199. package/dist/cms/CmsSection.d.ts +0 -1
  200. package/dist/cms/PortableTextRenderer.d.ts +0 -1
  201. package/dist/cms/index.d.ts +1 -2
  202. package/dist/cms/index.js +5 -410
  203. package/dist/cms/sanity-image.d.ts +0 -1
  204. package/dist/cms/sections/CtaSection.d.ts +0 -1
  205. package/dist/cms/sections/CustomSection.d.ts +0 -1
  206. package/dist/cms/sections/FaqSection.d.ts +0 -1
  207. package/dist/cms/sections/FormSection.d.ts +0 -1
  208. package/dist/cms/sections/GallerySection.d.ts +0 -1
  209. package/dist/cms/sections/HeroSection.d.ts +0 -1
  210. package/dist/cms/sections/RichTextSection.d.ts +0 -1
  211. package/dist/cms/sections/TestimonialsSection.d.ts +0 -1
  212. package/dist/cms/sections/index.d.ts +0 -1
  213. package/dist/cms/server-api.d.ts +0 -1
  214. package/dist/cms/server.d.ts +0 -1
  215. package/dist/cms/server.js +5 -22
  216. package/dist/cms/types.d.ts +0 -1
  217. package/dist/commerce/CalendarView.d.ts +0 -1
  218. package/dist/commerce/CheckoutForm.d.ts +0 -1
  219. package/dist/commerce/EventCalendar.d.ts +0 -1
  220. package/dist/commerce/EventCheckout.d.ts +0 -1
  221. package/dist/commerce/EventEmbed.d.ts +0 -1
  222. package/dist/commerce/EventModal.d.ts +0 -1
  223. package/dist/commerce/EventTile.d.ts +0 -1
  224. package/dist/commerce/EventsAgenda.d.ts +0 -1
  225. package/dist/commerce/EventsWidget.d.ts +0 -1
  226. package/dist/commerce/OfferingCard.d.ts +0 -1
  227. package/dist/commerce/OfferingList.d.ts +0 -1
  228. package/dist/commerce/ProductDetail.d.ts +0 -1
  229. package/dist/commerce/ProductEmbed.d.ts +0 -1
  230. package/dist/commerce/ProductGrid.d.ts +0 -1
  231. package/dist/commerce/ProductPage.d.ts +0 -1
  232. package/dist/commerce/RegistrationForm.d.ts +0 -1
  233. package/dist/commerce/SizeChart.d.ts +0 -1
  234. package/dist/commerce/UpcomingEvents.d.ts +0 -1
  235. package/dist/commerce/api.d.ts +0 -1
  236. package/dist/commerce/events-extras.d.ts +0 -1
  237. package/dist/commerce/index.d.ts +0 -1
  238. package/dist/commerce/index.js +8021 -227
  239. package/dist/commerce/server.d.ts +0 -1
  240. package/dist/commerce/server.js +2 -251
  241. package/dist/commerce/types.d.ts +0 -1
  242. package/dist/commerce/useEventModal.d.ts +0 -1
  243. package/dist/commerce/utils.d.ts +0 -1
  244. package/dist/config/index.d.ts +0 -1
  245. package/dist/config/index.js +7 -11
  246. package/dist/contracts/color.d.ts +38 -0
  247. package/dist/contracts/entries.d.ts +8 -0
  248. package/dist/contracts/fleet.d.ts +96 -0
  249. package/dist/contracts/forms.d.ts +89 -0
  250. package/dist/contracts/llms.d.ts +54 -0
  251. package/dist/contracts/portfolio.d.ts +158 -0
  252. package/dist/contracts/seo-meta.d.ts +56 -0
  253. package/dist/contracts/seo-pages.d.ts +124 -0
  254. package/dist/contracts/sites-normalize.d.ts +35 -0
  255. package/dist/contracts/sites.d.ts +48 -0
  256. package/dist/contracts/slots.d.ts +81 -0
  257. package/dist/contracts/website.d.ts +148 -0
  258. package/dist/cta-bar/CtaBar.d.ts +0 -1
  259. package/dist/cta-bar/CtaBarBehavior.d.ts +0 -1
  260. package/dist/cta-bar/client.d.ts +0 -1
  261. package/dist/cta-bar/client.js +3 -22
  262. package/dist/cta-bar/index.d.ts +0 -1
  263. package/dist/cta-bar/index.js +5 -227
  264. package/dist/cta-bar/styles.d.ts +0 -1
  265. package/dist/discover-3YYOHOQP.js +2 -0
  266. package/dist/engage/ChatWidget.d.ts +0 -1
  267. package/dist/engage/DesignRenderer.d.ts +0 -1
  268. package/dist/engage/EchoUiActions.d.ts +0 -1
  269. package/dist/engage/EngageWidget.d.ts +2 -1
  270. package/dist/engage/brand-color.d.ts +0 -1
  271. package/dist/engage/chat-messages.d.ts +0 -1
  272. package/dist/engage/echo-config.d.ts +0 -1
  273. package/dist/engage/element-rules.d.ts +0 -1
  274. package/dist/engage/index.d.ts +0 -1
  275. package/dist/engage/index.js +20 -36
  276. package/dist/engage/launcher-placement.d.ts +0 -1
  277. package/dist/engage/socket-loader.d.ts +0 -1
  278. package/dist/engage/types.d.ts +18 -1
  279. package/dist/fleet/FleetHeartbeat.d.ts +0 -1
  280. package/dist/fleet/contract.d.ts +1 -98
  281. package/dist/fleet/contract.js +2 -53
  282. package/dist/fleet/heartbeat.d.ts +0 -1
  283. package/dist/fleet/index.d.ts +0 -1
  284. package/dist/fleet/index.js +9 -75
  285. package/dist/forms/DatePicker.d.ts +0 -1
  286. package/dist/forms/FileField.d.ts +0 -1
  287. package/dist/forms/FormCelebration.d.ts +0 -1
  288. package/dist/forms/FormClient.d.ts +0 -1
  289. package/dist/forms/FormEnhancer.d.ts +0 -1
  290. package/dist/forms/FormField.d.ts +0 -1
  291. package/dist/forms/FormSpotlight.d.ts +0 -1
  292. package/dist/forms/FormStage.d.ts +0 -1
  293. package/dist/forms/HoneypotField.d.ts +0 -1
  294. package/dist/forms/ManagedForm.d.ts +0 -1
  295. package/dist/forms/ServerForm.d.ts +0 -1
  296. package/dist/forms/StaticForm.d.ts +0 -1
  297. package/dist/forms/contract.d.ts +1 -91
  298. package/dist/forms/contract.js +2 -37
  299. package/dist/forms/defaultSuccessMessage.d.ts +0 -1
  300. package/dist/forms/delight.d.ts +0 -1
  301. package/dist/forms/experience-chrome.d.ts +0 -1
  302. package/dist/forms/experience-plan.d.ts +0 -1
  303. package/dist/forms/field-controls.d.ts +0 -1
  304. package/dist/forms/field-interactions.d.ts +0 -1
  305. package/dist/forms/field-rules.d.ts +0 -1
  306. package/dist/forms/form-loaded-at.d.ts +12 -0
  307. package/dist/forms/form-values.d.ts +0 -1
  308. package/dist/forms/formsApi.d.ts +0 -1
  309. package/dist/forms/ga4-identity.d.ts +0 -1
  310. package/dist/forms/index.d.ts +0 -1
  311. package/dist/forms/index.js +20 -64
  312. package/dist/forms/normalize-config.d.ts +0 -1
  313. package/dist/forms/recaptcha-warmup.d.ts +0 -1
  314. package/dist/forms/recaptcha.d.ts +0 -1
  315. package/dist/forms/server.d.ts +0 -1
  316. package/dist/forms/server.js +11 -67
  317. package/dist/forms/static.d.ts +0 -1
  318. package/dist/forms/static.js +6 -17
  319. package/dist/forms/submitForm.d.ts +0 -1
  320. package/dist/forms/tracking-session.d.ts +0 -1
  321. package/dist/forms/types.d.ts +0 -1
  322. package/dist/forms/useForm.d.ts +0 -1
  323. package/dist/forms/useFormTracking.d.ts +0 -1
  324. package/dist/images/ManagedFavicon.d.ts +0 -1
  325. package/dist/images/ManagedImage.d.ts +0 -1
  326. package/dist/images/api.d.ts +0 -1
  327. package/dist/images/index.d.ts +0 -1
  328. package/dist/images/index.js +6 -49
  329. package/dist/images/server.d.ts +0 -1
  330. package/dist/images/server.js +3 -21
  331. package/dist/index.d.ts +13 -56
  332. package/dist/index.js +2 -426
  333. package/dist/landing/LandingPage.d.ts +0 -1
  334. package/dist/landing/contract.d.ts +0 -1
  335. package/dist/landing/index.d.ts +0 -1
  336. package/dist/landing/index.js +3 -22
  337. package/dist/landing/metadata.d.ts +0 -1
  338. package/dist/landing/server.d.ts +0 -1
  339. package/dist/landing/server.js +3 -17
  340. package/dist/layout/SiteKitClientProviders.d.ts +12 -3
  341. package/dist/layout/SiteKitLayout.d.ts +19 -4
  342. package/dist/layout/SpeculationRules.d.ts +0 -1
  343. package/dist/layout/client.d.ts +12 -3
  344. package/dist/layout/client.js +16 -26
  345. package/dist/layout/index.d.ts +0 -1
  346. package/dist/layout/index.js +43 -40
  347. package/dist/layout/types.d.ts +19 -1
  348. package/dist/llms/AEOComponents.d.ts +0 -1
  349. package/dist/llms/SpeakableSchema.d.ts +0 -1
  350. package/dist/llms/agent-access.d.ts +43 -0
  351. package/dist/llms/aiRobots.d.ts +0 -10
  352. package/dist/llms/api.d.ts +0 -1
  353. package/dist/llms/client.d.ts +0 -1
  354. package/dist/llms/client.js +4 -66
  355. package/dist/llms/contract.d.ts +1 -42
  356. package/dist/llms/contract.js +2 -41
  357. package/dist/llms/discovery-headers.d.ts +6 -1
  358. package/dist/llms/generateLLMsTxt.d.ts +0 -1
  359. package/dist/llms/handlers.d.ts +0 -1
  360. package/dist/llms/humanize-industry.d.ts +0 -1
  361. package/dist/llms/index.d.ts +3 -2
  362. package/dist/llms/index.js +17 -448
  363. package/dist/llms/links.d.ts +0 -1
  364. package/dist/llms/revalidate.d.ts +0 -1
  365. package/dist/llms/seo-revalidate.d.ts +0 -1
  366. package/dist/llms/sourcedFacts.d.ts +0 -1
  367. package/dist/llms/types.d.ts +6 -1
  368. package/dist/llms/writeLLMsTxt.d.ts +10 -1
  369. package/dist/manifest/index.d.ts +0 -1
  370. package/dist/manifest/index.js +4 -8
  371. package/dist/maps/GoogleMap.d.ts +0 -1
  372. package/dist/maps/NeighborhoodMap.d.ts +0 -1
  373. package/dist/maps/api.d.ts +0 -1
  374. package/dist/maps/index.d.ts +0 -1
  375. package/dist/maps/index.js +85 -92
  376. package/dist/maps/types.d.ts +0 -1
  377. package/dist/mcp/WebMcpTools.d.ts +0 -1
  378. package/dist/mcp/client.d.ts +0 -1
  379. package/dist/mcp/client.js +9 -12
  380. package/dist/mcp/declarative.d.ts +0 -1
  381. package/dist/mcp/handlers.d.ts +15 -2
  382. package/dist/mcp/index.d.ts +2 -3
  383. package/dist/mcp/index.js +50 -298
  384. package/dist/mcp/protocol.d.ts +0 -1
  385. package/dist/mcp/report.d.ts +27 -0
  386. package/dist/mcp/serverCard.d.ts +0 -1
  387. package/dist/mcp/sonor.d.ts +99 -0
  388. package/dist/mcp/sonor.js +482 -0
  389. package/dist/mcp/transport.d.ts +0 -1
  390. package/dist/mcp/transport.js +8 -24
  391. package/dist/mcp/types.d.ts +21 -1
  392. package/dist/motion/CountUp.d.ts +0 -1
  393. package/dist/motion/Parallax.d.ts +0 -1
  394. package/dist/motion/Reveal.d.ts +0 -1
  395. package/dist/motion/ScrollScene.d.ts +0 -1
  396. package/dist/motion/engine.d.ts +0 -1
  397. package/dist/motion/failsafe.d.ts +0 -1
  398. package/dist/motion/gsap.d.ts +0 -1
  399. package/dist/motion/gsap.js +17 -29
  400. package/dist/motion/index.d.ts +0 -1
  401. package/dist/motion/index.js +25 -51
  402. package/dist/motion/three.d.ts +0 -1
  403. package/dist/motion/three.js +16 -23
  404. package/dist/og/config.d.ts +0 -1
  405. package/dist/og/contrast.d.ts +0 -1
  406. package/dist/og/index.d.ts +0 -1
  407. package/dist/og/index.js +4 -43
  408. package/dist/og/pages.d.ts +0 -1
  409. package/dist/og/route-fit.d.ts +0 -1
  410. package/dist/og/route.d.ts +0 -1
  411. package/dist/og/route.js +3 -245
  412. package/dist/og/template.d.ts +0 -1
  413. package/dist/portfolio/contract.d.ts +1 -60
  414. package/dist/portfolio/contract.js +2 -43
  415. package/dist/proxy/index.d.ts +16 -14
  416. package/dist/proxy/index.js +20 -36
  417. package/dist/proxy/securityHeaders.d.ts +0 -1
  418. package/dist/proxy/segment.d.ts +0 -1
  419. package/dist/redirects/index.d.ts +0 -8
  420. package/dist/redirects/index.js +6 -41
  421. package/dist/reputation/TestimonialSection.d.ts +0 -1
  422. package/dist/reputation/api.d.ts +0 -1
  423. package/dist/reputation/index.d.ts +0 -1
  424. package/dist/reputation/index.js +4 -22
  425. package/dist/reputation/server.d.ts +0 -1
  426. package/dist/reputation/server.js +3 -17
  427. package/dist/reputation/types.d.ts +0 -1
  428. package/dist/robots/index.d.ts +1 -2
  429. package/dist/robots/index.js +4 -78
  430. package/dist/robots/indexnow.d.ts +0 -1
  431. package/dist/robots/indexnow.js +4 -39
  432. package/dist/robots/next-internals.d.ts +0 -1
  433. package/dist/seo/ManagedContent.d.ts +0 -1
  434. package/dist/seo/ManagedFAQ.d.ts +0 -1
  435. package/dist/seo/ManagedInternalLinks.d.ts +0 -1
  436. package/dist/seo/ManagedSchema.d.ts +0 -1
  437. package/dist/seo/ManagedScripts.d.ts +0 -1
  438. package/dist/seo/api.d.ts +0 -1
  439. package/dist/seo/client.d.ts +0 -1
  440. package/dist/seo/client.js +8 -18
  441. package/dist/seo/entry-indexnow.d.ts +2 -0
  442. package/dist/seo/entry-llms-client.d.ts +2 -0
  443. package/dist/seo/entry-llms-contract.d.ts +2 -0
  444. package/dist/seo/entry-llms.d.ts +2 -0
  445. package/dist/seo/entry-meta-contract.d.ts +2 -0
  446. package/dist/seo/entry-og-route.d.ts +2 -0
  447. package/dist/seo/entry-og.d.ts +2 -0
  448. package/dist/seo/entry-pages-contract.d.ts +2 -0
  449. package/dist/seo/entry-redirects.d.ts +2 -0
  450. package/dist/seo/entry-robots.d.ts +2 -0
  451. package/dist/seo/entry-sitemap.d.ts +2 -0
  452. package/dist/seo/getManagedMetadata.d.ts +0 -1
  453. package/dist/seo/groundingSchema.d.ts +0 -1
  454. package/dist/seo/index.d.ts +0 -2
  455. package/dist/seo/index.js +88 -317
  456. package/dist/seo/indexnow.d.ts +2 -0
  457. package/dist/seo/indexnow.js +4 -0
  458. package/dist/seo/llms/client.d.ts +2 -0
  459. package/dist/seo/llms/client.js +4 -0
  460. package/dist/seo/llms/contract.d.ts +2 -0
  461. package/dist/seo/llms/contract.js +2 -0
  462. package/dist/seo/llms.d.ts +2 -0
  463. package/dist/seo/llms.js +17 -0
  464. package/dist/seo/load-env.d.ts +12 -0
  465. package/dist/seo/meta/contract.d.ts +2 -0
  466. package/dist/seo/meta/contract.js +2 -0
  467. package/dist/seo/og/route.d.ts +2 -0
  468. package/dist/seo/og/route.js +3 -0
  469. package/dist/seo/og.d.ts +2 -0
  470. package/dist/seo/og.js +4 -0
  471. package/dist/seo/pages/contract.d.ts +2 -0
  472. package/dist/seo/pages/contract.js +4 -0
  473. package/dist/seo/redirects.d.ts +2 -0
  474. package/dist/seo/redirects.js +6 -0
  475. package/dist/seo/register-sitemap-cli-impl.d.ts +6 -1
  476. package/dist/seo/register-sitemap-cli.d.ts +1 -1
  477. package/dist/seo/register-sitemap-cli.js +73 -66
  478. package/dist/seo/register-sitemap-request.d.ts +0 -1
  479. package/dist/seo/robots.d.ts +2 -0
  480. package/dist/seo/robots.js +4 -0
  481. package/dist/seo/routing.d.ts +0 -1
  482. package/dist/seo/safeJsonLd.d.ts +0 -1
  483. package/dist/seo/schema-filter.d.ts +0 -1
  484. package/dist/seo/server-api.d.ts +0 -1
  485. package/dist/seo/server.d.ts +0 -1
  486. package/dist/seo/server.js +10 -80
  487. package/dist/seo/sitemap.d.ts +2 -0
  488. package/dist/seo/sitemap.js +15 -0
  489. package/dist/seo/types.d.ts +0 -1
  490. package/dist/seo/withManagedMetadata.d.ts +0 -1
  491. package/dist/seo-meta/contract.d.ts +1 -60
  492. package/dist/seo-meta/contract.js +2 -41
  493. package/dist/seo-pages/contract.d.ts +1 -61
  494. package/dist/seo-pages/contract.js +4 -49
  495. package/dist/server/index.d.ts +0 -1
  496. package/dist/server/index.js +6 -32
  497. package/dist/server/mint-site-token.d.ts +0 -1
  498. package/dist/server/server-fetch.d.ts +0 -1
  499. package/dist/server-api-GJJQZVG7.js +8 -0
  500. package/dist/shared/build-entries.d.ts +53 -14
  501. package/dist/shared/clock.d.ts +20 -0
  502. package/dist/shared/color.d.ts +1 -39
  503. package/dist/shared/defer.d.ts +0 -1
  504. package/dist/shared/fetchWithRetry.d.ts +0 -1
  505. package/dist/shared/frame.d.ts +8 -1
  506. package/dist/shared/fresh-fetch.d.ts +0 -1
  507. package/dist/shared/glass.d.ts +0 -1
  508. package/dist/shared/identity.d.ts +0 -1
  509. package/dist/shared/markdown.d.ts +40 -0
  510. package/dist/shared/next-files.d.ts +0 -1
  511. package/dist/shared/page-leave.d.ts +0 -1
  512. package/dist/shared/publishCredential.d.ts +0 -1
  513. package/dist/shared/reporting-gate.d.ts +0 -1
  514. package/dist/shared/request-guards.d.ts +0 -1
  515. package/dist/shared/siteToken.d.ts +0 -1
  516. package/dist/shared/sonorFetch.d.ts +0 -1
  517. package/dist/shared/source-graph.d.ts +0 -1
  518. package/dist/shared/uuid.d.ts +0 -1
  519. package/dist/shared/version.d.ts +1 -2
  520. package/dist/shared/visual-viewport-gap.d.ts +0 -1
  521. package/dist/signal/SignalBridge.d.ts +0 -1
  522. package/dist/signal/SignalCore.d.ts +0 -1
  523. package/dist/signal/SignalExperiment.d.ts +0 -1
  524. package/dist/signal/index.d.ts +0 -1
  525. package/dist/signal/index.js +72 -44
  526. package/dist/signal/store.d.ts +0 -1
  527. package/dist/signal/types.d.ts +0 -1
  528. package/dist/site-config/index.d.ts +0 -1
  529. package/dist/site-config/index.js +2 -17
  530. package/dist/sitemap/discover.d.ts +0 -1
  531. package/dist/sitemap/index.d.ts +6 -1
  532. package/dist/sitemap/index.js +15 -553
  533. package/dist/sitemap/shared.d.ts +0 -1
  534. package/dist/sites/contract.d.ts +1 -51
  535. package/dist/sites/contract.js +3 -38
  536. package/dist/sites/normalize.d.ts +1 -36
  537. package/dist/sites/resolve.d.ts +0 -1
  538. package/dist/sites/site-param.d.ts +0 -1
  539. package/dist/slots/ManagedSlot.d.ts +0 -1
  540. package/dist/slots/contract.d.ts +1 -82
  541. package/dist/slots/contract.js +2 -41
  542. package/dist/slots/index.d.ts +0 -1
  543. package/dist/slots/index.js +5 -182
  544. package/dist/slots/revalidate.d.ts +0 -1
  545. package/dist/slots/server-api.d.ts +0 -1
  546. package/dist/socket-loader-R24ZSRSQ.js +12 -0
  547. package/dist/sync/AddToCalendar.d.ts +0 -1
  548. package/dist/sync/BookingWidget.d.ts +0 -1
  549. package/dist/sync/MeetingFormatStep.d.ts +0 -1
  550. package/dist/sync/api.d.ts +0 -1
  551. package/dist/sync/booking-flow.d.ts +0 -1
  552. package/dist/sync/index.d.ts +0 -1
  553. package/dist/sync/index.js +6 -64
  554. package/dist/sync/types.d.ts +0 -1
  555. package/dist/types.d.ts +0 -63
  556. package/dist/web-vitals.attribution-N2PCCF4Q.js +522 -0
  557. package/dist/website/BlocksPopup.d.ts +25 -0
  558. package/dist/website/PopupBlocks.d.ts +57 -0
  559. package/dist/website/SiteDesignReporter.d.ts +28 -0
  560. package/dist/website/cms/server.d.ts +2 -0
  561. package/dist/website/cms/server.js +5 -0
  562. package/dist/website/cms-server.d.ts +2 -0
  563. package/dist/website/cms.d.ts +2 -0
  564. package/dist/website/cms.js +5 -0
  565. package/dist/website/contract.d.ts +1 -0
  566. package/dist/website/contract.js +3 -0
  567. package/dist/website/cta-bar.d.ts +2 -0
  568. package/dist/website/cta-bar.js +5 -0
  569. package/dist/website/design.d.ts +165 -0
  570. package/dist/website/images/server.d.ts +2 -0
  571. package/dist/website/images/server.js +3 -0
  572. package/dist/website/images-server.d.ts +2 -0
  573. package/dist/website/images.d.ts +2 -0
  574. package/dist/website/images.js +6 -0
  575. package/dist/website/index.d.ts +17 -0
  576. package/dist/website/index.js +13 -0
  577. package/dist/website/landing/server.d.ts +2 -0
  578. package/dist/website/landing/server.js +3 -0
  579. package/dist/website/landing-server.d.ts +2 -0
  580. package/dist/website/landing.d.ts +2 -0
  581. package/dist/website/landing.js +3 -0
  582. package/dist/website/popups.d.ts +17 -0
  583. package/dist/website/popups.js +22 -0
  584. package/dist/website/slots/contract.d.ts +2 -0
  585. package/dist/website/slots/contract.js +2 -0
  586. package/dist/website/slots-contract.d.ts +2 -0
  587. package/dist/website/slots.d.ts +3 -0
  588. package/dist/website/slots.js +5 -0
  589. package/dist/writeLLMsTxt-UMHKGNRR.js +11 -0
  590. package/package.json +175 -147
  591. package/skills/site-kit/SKILL.md +9 -3
  592. package/dist/AnalyticsProvider-4K5T7OQ7.mjs +0 -12
  593. package/dist/AnalyticsProvider-4K5T7OQ7.mjs.map +0 -1
  594. package/dist/AnalyticsProvider-QXZN5O6D.js +0 -33
  595. package/dist/AnalyticsProvider-QXZN5O6D.js.map +0 -1
  596. package/dist/ArticleFaqSection-3KZ24MFS.js +0 -13
  597. package/dist/ArticleFaqSection-3KZ24MFS.js.map +0 -1
  598. package/dist/ArticleFaqSection-XZPXJVH4.mjs +0 -11
  599. package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +0 -1
  600. package/dist/ArticleViewTracker-BUG2TOHS.mjs +0 -51
  601. package/dist/ArticleViewTracker-BUG2TOHS.mjs.map +0 -1
  602. package/dist/ArticleViewTracker-FFMHR7AY.js +0 -54
  603. package/dist/ArticleViewTracker-FFMHR7AY.js.map +0 -1
  604. package/dist/ChatWidget-CRQPBDEF.mjs +0 -17
  605. package/dist/ChatWidget-CRQPBDEF.mjs.map +0 -1
  606. package/dist/ChatWidget-XFYLVXAX.js +0 -34
  607. package/dist/ChatWidget-XFYLVXAX.js.map +0 -1
  608. package/dist/DatePicker-4WNKNNCV.mjs +0 -4
  609. package/dist/DatePicker-4WNKNNCV.mjs.map +0 -1
  610. package/dist/DatePicker-VPZR7RU3.js +0 -13
  611. package/dist/DatePicker-VPZR7RU3.js.map +0 -1
  612. package/dist/EngageWidget-S234YAT2.js +0 -21
  613. package/dist/EngageWidget-S234YAT2.js.map +0 -1
  614. package/dist/EngageWidget-SQU4T7CI.mjs +0 -12
  615. package/dist/EngageWidget-SQU4T7CI.mjs.map +0 -1
  616. package/dist/FileField-HNEBEBLB.mjs +0 -85
  617. package/dist/FileField-HNEBEBLB.mjs.map +0 -1
  618. package/dist/FileField-XG4EYAZW.js +0 -91
  619. package/dist/FileField-XG4EYAZW.js.map +0 -1
  620. package/dist/FormCelebration-7CBANVNS.mjs +0 -4
  621. package/dist/FormCelebration-7CBANVNS.mjs.map +0 -1
  622. package/dist/FormCelebration-O2O5S6JI.js +0 -13
  623. package/dist/FormCelebration-O2O5S6JI.js.map +0 -1
  624. package/dist/FormSpotlight-IODREOPN.js +0 -761
  625. package/dist/FormSpotlight-IODREOPN.js.map +0 -1
  626. package/dist/FormSpotlight-VKD774PZ.mjs +0 -756
  627. package/dist/FormSpotlight-VKD774PZ.mjs.map +0 -1
  628. package/dist/FormStage-37KKZQH4.js +0 -422
  629. package/dist/FormStage-37KKZQH4.js.map +0 -1
  630. package/dist/FormStage-PRZNRYNC.mjs +0 -420
  631. package/dist/FormStage-PRZNRYNC.mjs.map +0 -1
  632. package/dist/ManagedForm-4PZOCKCV.mjs +0 -16
  633. package/dist/ManagedForm-4PZOCKCV.mjs.map +0 -1
  634. package/dist/ManagedForm-JCMEE626.js +0 -25
  635. package/dist/ManagedForm-JCMEE626.js.map +0 -1
  636. package/dist/ManagedNewsletterForm-CTC33B2U.js +0 -66
  637. package/dist/ManagedNewsletterForm-CTC33B2U.js.map +0 -1
  638. package/dist/ManagedNewsletterForm-KMZG24OE.mjs +0 -64
  639. package/dist/ManagedNewsletterForm-KMZG24OE.mjs.map +0 -1
  640. package/dist/SignalCore-YHT7WPXV.js +0 -326
  641. package/dist/SignalCore-YHT7WPXV.js.map +0 -1
  642. package/dist/SignalCore-YIPKKIUG.mjs +0 -324
  643. package/dist/SignalCore-YIPKKIUG.mjs.map +0 -1
  644. package/dist/SitemapSync-GN4OXIM2.js +0 -18
  645. package/dist/SitemapSync-GN4OXIM2.js.map +0 -1
  646. package/dist/SitemapSync-NG763CGN.mjs +0 -9
  647. package/dist/SitemapSync-NG763CGN.mjs.map +0 -1
  648. package/dist/SitemapSync.d.ts.map +0 -1
  649. package/dist/admin-auth/index.d.ts.map +0 -1
  650. package/dist/admin-auth/index.js.map +0 -1
  651. package/dist/admin-auth/index.mjs +0 -0
  652. package/dist/admin-auth/index.mjs.map +0 -1
  653. package/dist/admin-auth/session.d.ts.map +0 -1
  654. package/dist/affiliates/AffiliatesWidget.d.ts.map +0 -1
  655. package/dist/affiliates/api.d.ts.map +0 -1
  656. package/dist/affiliates/index.d.ts.map +0 -1
  657. package/dist/affiliates/types.d.ts.map +0 -1
  658. package/dist/affiliates/useAffiliates.d.ts.map +0 -1
  659. package/dist/analytics/AnalyticsProvider.d.ts.map +0 -1
  660. package/dist/analytics/WebVitals.d.ts.map +0 -1
  661. package/dist/analytics/dispatch.d.ts.map +0 -1
  662. package/dist/analytics/index.d.ts.map +0 -1
  663. package/dist/analytics/index.js.map +0 -1
  664. package/dist/analytics/index.mjs +0 -14
  665. package/dist/analytics/index.mjs.map +0 -1
  666. package/dist/analytics/measurement-context.d.ts.map +0 -1
  667. package/dist/analytics/page-observation.d.ts.map +0 -1
  668. package/dist/analytics/send-gate.d.ts.map +0 -1
  669. package/dist/analytics/types.d.ts.map +0 -1
  670. package/dist/analytics/useContactTracking.d.ts.map +0 -1
  671. package/dist/api-D745LGGU.mjs +0 -183
  672. package/dist/api-XR5APCH3.js +0 -201
  673. package/dist/article-styles-DACUAOVT.mjs +0 -592
  674. package/dist/article-styles-DACUAOVT.mjs.map +0 -1
  675. package/dist/article-styles-JHHTNHOK.js +0 -595
  676. package/dist/article-styles-JHHTNHOK.js.map +0 -1
  677. package/dist/article-tables-EWXG4LNP.js +0 -17
  678. package/dist/article-tables-EWXG4LNP.js.map +0 -1
  679. package/dist/article-tables-OGE52LNT.mjs +0 -4
  680. package/dist/article-tables-OGE52LNT.mjs.map +0 -1
  681. package/dist/articles/Article.d.ts.map +0 -1
  682. package/dist/articles/ArticleFAQ.d.ts.map +0 -1
  683. package/dist/articles/ArticleFaqSection.d.ts.map +0 -1
  684. package/dist/articles/ArticleList.d.ts.map +0 -1
  685. package/dist/articles/ArticleViewTracker.d.ts.map +0 -1
  686. package/dist/articles/AuthorCard.d.ts.map +0 -1
  687. package/dist/articles/AuthorPage.d.ts.map +0 -1
  688. package/dist/articles/ClusterLandingPage.d.ts.map +0 -1
  689. package/dist/articles/ClusterNavigation.d.ts.map +0 -1
  690. package/dist/articles/ManagedNewsletterForm.d.ts.map +0 -1
  691. package/dist/articles/NewsletterShell.d.ts.map +0 -1
  692. package/dist/articles/NewsletterWidget.d.ts.map +0 -1
  693. package/dist/articles/PublicationLayout.d.ts.map +0 -1
  694. package/dist/articles/PublicationSidebar.d.ts.map +0 -1
  695. package/dist/articles/RelatedPosts.d.ts.map +0 -1
  696. package/dist/articles/ServiceCallout.d.ts.map +0 -1
  697. package/dist/articles/TableOfContents.d.ts.map +0 -1
  698. package/dist/articles/article-styles.d.ts.map +0 -1
  699. package/dist/articles/article-tables.d.ts.map +0 -1
  700. package/dist/articles/artwork.d.ts.map +0 -1
  701. package/dist/articles/author-schema.d.ts.map +0 -1
  702. package/dist/articles/author-social.d.ts.map +0 -1
  703. package/dist/articles/excerpt.d.ts.map +0 -1
  704. package/dist/articles/index.d.ts.map +0 -1
  705. package/dist/articles/index.js.map +0 -1
  706. package/dist/articles/index.mjs +0 -457
  707. package/dist/articles/index.mjs.map +0 -1
  708. package/dist/articles/news-sitemap.d.ts.map +0 -1
  709. package/dist/articles/processArticleHtml.d.ts.map +0 -1
  710. package/dist/articles/public-reads.d.ts.map +0 -1
  711. package/dist/articles/reading-time.d.ts.map +0 -1
  712. package/dist/articles/routes.d.ts.map +0 -1
  713. package/dist/articles/server-core.d.ts.map +0 -1
  714. package/dist/articles/server-ui.d.ts.map +0 -1
  715. package/dist/articles/server-ui.js.map +0 -1
  716. package/dist/articles/server-ui.mjs +0 -1098
  717. package/dist/articles/server-ui.mjs.map +0 -1
  718. package/dist/articles/server.d.ts.map +0 -1
  719. package/dist/articles/server.js.map +0 -1
  720. package/dist/articles/server.mjs +0 -11
  721. package/dist/articles/server.mjs.map +0 -1
  722. package/dist/articles/types.d.ts.map +0 -1
  723. package/dist/articles/widget-styles.d.ts.map +0 -1
  724. package/dist/brand/extract-brand-profile.d.ts.map +0 -1
  725. package/dist/chunk-24LFAQEG.mjs +0 -480
  726. package/dist/chunk-24LFAQEG.mjs.map +0 -1
  727. package/dist/chunk-2FEQ6TYD.mjs +0 -37
  728. package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
  729. package/dist/chunk-3AOKYAZ2.js +0 -135
  730. package/dist/chunk-3AOKYAZ2.js.map +0 -1
  731. package/dist/chunk-3DWIYCQX.js +0 -30
  732. package/dist/chunk-3DWIYCQX.js.map +0 -1
  733. package/dist/chunk-3SDMJMN2.js +0 -71
  734. package/dist/chunk-3SDMJMN2.js.map +0 -1
  735. package/dist/chunk-3T2CVHFO.mjs +0 -453
  736. package/dist/chunk-3T2CVHFO.mjs.map +0 -1
  737. package/dist/chunk-4BEGKFMN.js +0 -133
  738. package/dist/chunk-4BEGKFMN.js.map +0 -1
  739. package/dist/chunk-4C3INRHE.mjs +0 -1073
  740. package/dist/chunk-4C3INRHE.mjs.map +0 -1
  741. package/dist/chunk-4KAMU5HD.mjs +0 -16
  742. package/dist/chunk-4KAMU5HD.mjs.map +0 -1
  743. package/dist/chunk-4U5NCKQY.mjs +0 -39
  744. package/dist/chunk-4U5NCKQY.mjs.map +0 -1
  745. package/dist/chunk-4WCA2HM6.mjs +0 -57
  746. package/dist/chunk-4WCA2HM6.mjs.map +0 -1
  747. package/dist/chunk-54CARHDR.mjs +0 -95
  748. package/dist/chunk-54CARHDR.mjs.map +0 -1
  749. package/dist/chunk-55J2KE7D.js +0 -60
  750. package/dist/chunk-55J2KE7D.js.map +0 -1
  751. package/dist/chunk-5BARLEAI.mjs +0 -102
  752. package/dist/chunk-5BARLEAI.mjs.map +0 -1
  753. package/dist/chunk-5F2FIM5A.mjs +0 -135
  754. package/dist/chunk-5F2FIM5A.mjs.map +0 -1
  755. package/dist/chunk-5RNAUYWE.js +0 -50
  756. package/dist/chunk-5RNAUYWE.js.map +0 -1
  757. package/dist/chunk-5SANRSX3.mjs +0 -17
  758. package/dist/chunk-5SANRSX3.mjs.map +0 -1
  759. package/dist/chunk-5T3J24K4.mjs +0 -131
  760. package/dist/chunk-5T3J24K4.mjs.map +0 -1
  761. package/dist/chunk-5W4S7XQD.js +0 -141
  762. package/dist/chunk-5W4S7XQD.js.map +0 -1
  763. package/dist/chunk-5XFFUP6D.js +0 -100
  764. package/dist/chunk-5XFFUP6D.js.map +0 -1
  765. package/dist/chunk-5YVQWLSQ.mjs +0 -47
  766. package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
  767. package/dist/chunk-64BOVMXG.mjs +0 -68
  768. package/dist/chunk-64BOVMXG.mjs.map +0 -1
  769. package/dist/chunk-662YHKWW.mjs +0 -10
  770. package/dist/chunk-662YHKWW.mjs.map +0 -1
  771. package/dist/chunk-6C47333H.mjs +0 -55
  772. package/dist/chunk-6C47333H.mjs.map +0 -1
  773. package/dist/chunk-6EDVCUAG.mjs +0 -29
  774. package/dist/chunk-6EDVCUAG.mjs.map +0 -1
  775. package/dist/chunk-6FNFM7JL.js +0 -113
  776. package/dist/chunk-6FNFM7JL.js.map +0 -1
  777. package/dist/chunk-6PJTLBRR.mjs +0 -11
  778. package/dist/chunk-6PJTLBRR.mjs.map +0 -1
  779. package/dist/chunk-6QPKC6XP.mjs +0 -1416
  780. package/dist/chunk-6QPKC6XP.mjs.map +0 -1
  781. package/dist/chunk-6XNEGG5B.mjs +0 -137
  782. package/dist/chunk-6XNEGG5B.mjs.map +0 -1
  783. package/dist/chunk-7K6L33BX.mjs +0 -24842
  784. package/dist/chunk-7RLL67F3.js +0 -47
  785. package/dist/chunk-7RLL67F3.js.map +0 -1
  786. package/dist/chunk-7THQ4UW3.js +0 -69
  787. package/dist/chunk-7THQ4UW3.js.map +0 -1
  788. package/dist/chunk-A6UYV475.mjs +0 -45
  789. package/dist/chunk-A6UYV475.mjs.map +0 -1
  790. package/dist/chunk-AAZNH3MA.mjs +0 -23
  791. package/dist/chunk-AAZNH3MA.mjs.map +0 -1
  792. package/dist/chunk-AEN7EL6N.js +0 -161
  793. package/dist/chunk-AEN7EL6N.js.map +0 -1
  794. package/dist/chunk-AGIMH67E.mjs +0 -26
  795. package/dist/chunk-AGIMH67E.mjs.map +0 -1
  796. package/dist/chunk-AS2HUIDW.mjs +0 -16
  797. package/dist/chunk-AS2HUIDW.mjs.map +0 -1
  798. package/dist/chunk-ATPQ6264.js +0 -24860
  799. package/dist/chunk-B22WSN4L.mjs +0 -59
  800. package/dist/chunk-B22WSN4L.mjs.map +0 -1
  801. package/dist/chunk-BBBJHYPH.js +0 -19
  802. package/dist/chunk-BBBJHYPH.js.map +0 -1
  803. package/dist/chunk-BEXTDHO4.mjs +0 -57
  804. package/dist/chunk-BEXTDHO4.mjs.map +0 -1
  805. package/dist/chunk-BI7DH42Z.mjs +0 -101
  806. package/dist/chunk-BI7DH42Z.mjs.map +0 -1
  807. package/dist/chunk-BQP6JIE2.mjs +0 -28
  808. package/dist/chunk-BQP6JIE2.mjs.map +0 -1
  809. package/dist/chunk-BZR6RUIN.mjs +0 -128
  810. package/dist/chunk-BZR6RUIN.mjs.map +0 -1
  811. package/dist/chunk-C2CTLLIO.mjs +0 -72
  812. package/dist/chunk-C2CTLLIO.mjs.map +0 -1
  813. package/dist/chunk-C5VITBN7.mjs +0 -220
  814. package/dist/chunk-C5VITBN7.mjs.map +0 -1
  815. package/dist/chunk-C7J4XLBN.js +0 -134
  816. package/dist/chunk-C7J4XLBN.js.map +0 -1
  817. package/dist/chunk-CDRQYJUT.js +0 -355
  818. package/dist/chunk-CDRQYJUT.js.map +0 -1
  819. package/dist/chunk-CFRJ2MK5.mjs +0 -16
  820. package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
  821. package/dist/chunk-CIB3RHNZ.js +0 -8
  822. package/dist/chunk-CIB3RHNZ.js.map +0 -1
  823. package/dist/chunk-CIM5W3UO.js +0 -26
  824. package/dist/chunk-CIM5W3UO.js.map +0 -1
  825. package/dist/chunk-CLO3K7PF.js +0 -19
  826. package/dist/chunk-CLO3K7PF.js.map +0 -1
  827. package/dist/chunk-CU6OGBKK.mjs +0 -68
  828. package/dist/chunk-CU6OGBKK.mjs.map +0 -1
  829. package/dist/chunk-CUNZAD46.js +0 -53
  830. package/dist/chunk-CUNZAD46.js.map +0 -1
  831. package/dist/chunk-CUZ3I6CO.js +0 -23
  832. package/dist/chunk-CUZ3I6CO.js.map +0 -1
  833. package/dist/chunk-CXAXZFFW.js +0 -157
  834. package/dist/chunk-CXAXZFFW.js.map +0 -1
  835. package/dist/chunk-DA7IANFG.mjs +0 -37
  836. package/dist/chunk-DA7IANFG.mjs.map +0 -1
  837. package/dist/chunk-DV2LJYFD.js +0 -14
  838. package/dist/chunk-DV2LJYFD.js.map +0 -1
  839. package/dist/chunk-DV5KVNA7.js +0 -45
  840. package/dist/chunk-DV5KVNA7.js.map +0 -1
  841. package/dist/chunk-DVYYGHSG.js +0 -285
  842. package/dist/chunk-DVYYGHSG.js.map +0 -1
  843. package/dist/chunk-EDLNMGQC.mjs +0 -65
  844. package/dist/chunk-EDLNMGQC.mjs.map +0 -1
  845. package/dist/chunk-EHJANA5C.js +0 -231
  846. package/dist/chunk-EHJANA5C.js.map +0 -1
  847. package/dist/chunk-EMHSHAVW.js +0 -19
  848. package/dist/chunk-EMHSHAVW.js.map +0 -1
  849. package/dist/chunk-ESP5RMB7.js +0 -42
  850. package/dist/chunk-ESP5RMB7.js.map +0 -1
  851. package/dist/chunk-EWDWLY74.js +0 -158
  852. package/dist/chunk-EWDWLY74.js.map +0 -1
  853. package/dist/chunk-F2GECCK7.js +0 -483
  854. package/dist/chunk-F2GECCK7.js.map +0 -1
  855. package/dist/chunk-FCAHV5P3.mjs +0 -45
  856. package/dist/chunk-FCAHV5P3.mjs.map +0 -1
  857. package/dist/chunk-G6WF4G3E.js +0 -43
  858. package/dist/chunk-G6WF4G3E.js.map +0 -1
  859. package/dist/chunk-GCPPXUAI.js +0 -72
  860. package/dist/chunk-GCPPXUAI.js.map +0 -1
  861. package/dist/chunk-GFSQMK35.mjs +0 -127
  862. package/dist/chunk-GFSQMK35.mjs.map +0 -1
  863. package/dist/chunk-GGGX54ZE.js +0 -8071
  864. package/dist/chunk-GGGX54ZE.js.map +0 -1
  865. package/dist/chunk-GSRT66PA.js +0 -80
  866. package/dist/chunk-GSRT66PA.js.map +0 -1
  867. package/dist/chunk-GSU6VTCZ.mjs +0 -165
  868. package/dist/chunk-GSU6VTCZ.mjs.map +0 -1
  869. package/dist/chunk-GXSSFQ5D.js +0 -1677
  870. package/dist/chunk-GXSSFQ5D.js.map +0 -1
  871. package/dist/chunk-H4TSADY3.mjs +0 -761
  872. package/dist/chunk-H4TSADY3.mjs.map +0 -1
  873. package/dist/chunk-H6AU3WKF.js +0 -108
  874. package/dist/chunk-H6AU3WKF.js.map +0 -1
  875. package/dist/chunk-HGNSJXWT.js +0 -55
  876. package/dist/chunk-HGNSJXWT.js.map +0 -1
  877. package/dist/chunk-HIZJD7TU.mjs +0 -326
  878. package/dist/chunk-HIZJD7TU.mjs.map +0 -1
  879. package/dist/chunk-HPGPOUHU.mjs +0 -105
  880. package/dist/chunk-HPGPOUHU.mjs.map +0 -1
  881. package/dist/chunk-HSLPN3QK.js +0 -106
  882. package/dist/chunk-HSLPN3QK.js.map +0 -1
  883. package/dist/chunk-HTCNRTN6.js +0 -791
  884. package/dist/chunk-HTCNRTN6.js.map +0 -1
  885. package/dist/chunk-HXHDOIV6.js +0 -41
  886. package/dist/chunk-HXHDOIV6.js.map +0 -1
  887. package/dist/chunk-IBJOGXQI.js +0 -33
  888. package/dist/chunk-IBJOGXQI.js.map +0 -1
  889. package/dist/chunk-IMWON7OV.mjs +0 -27
  890. package/dist/chunk-IMWON7OV.mjs.map +0 -1
  891. package/dist/chunk-IWSN4DGG.js +0 -132
  892. package/dist/chunk-IWSN4DGG.js.map +0 -1
  893. package/dist/chunk-J7QI3GDX.js +0 -12
  894. package/dist/chunk-J7QI3GDX.js.map +0 -1
  895. package/dist/chunk-JA77WXRE.js +0 -30
  896. package/dist/chunk-JA77WXRE.js.map +0 -1
  897. package/dist/chunk-JONWE26J.js +0 -81
  898. package/dist/chunk-JONWE26J.js.map +0 -1
  899. package/dist/chunk-JP5WGL75.js +0 -62
  900. package/dist/chunk-JP5WGL75.js.map +0 -1
  901. package/dist/chunk-JSXLTZUP.mjs +0 -255
  902. package/dist/chunk-JSXLTZUP.mjs.map +0 -1
  903. package/dist/chunk-JX3PO2MH.js +0 -53
  904. package/dist/chunk-JX3PO2MH.js.map +0 -1
  905. package/dist/chunk-JXRGIE3V.mjs +0 -1669
  906. package/dist/chunk-JXRGIE3V.mjs.map +0 -1
  907. package/dist/chunk-K3PVUXKB.mjs +0 -6
  908. package/dist/chunk-K3PVUXKB.mjs.map +0 -1
  909. package/dist/chunk-KHPJ3CEL.js +0 -72
  910. package/dist/chunk-KHPJ3CEL.js.map +0 -1
  911. package/dist/chunk-KOPFFKG2.mjs +0 -132
  912. package/dist/chunk-KOPFFKG2.mjs.map +0 -1
  913. package/dist/chunk-KP5BFPGT.js +0 -44
  914. package/dist/chunk-KP5BFPGT.js.map +0 -1
  915. package/dist/chunk-KR7ATPAN.js +0 -52
  916. package/dist/chunk-KR7ATPAN.js.map +0 -1
  917. package/dist/chunk-KZBDH5A3.js +0 -130
  918. package/dist/chunk-KZBDH5A3.js.map +0 -1
  919. package/dist/chunk-KZVSB5WE.mjs +0 -21
  920. package/dist/chunk-KZVSB5WE.mjs.map +0 -1
  921. package/dist/chunk-LPDXS2B2.mjs +0 -932
  922. package/dist/chunk-LPDXS2B2.mjs.map +0 -1
  923. package/dist/chunk-LVGSOW2F.js +0 -32
  924. package/dist/chunk-LVGSOW2F.js.map +0 -1
  925. package/dist/chunk-M2N7NY3V.js +0 -103
  926. package/dist/chunk-M2N7NY3V.js.map +0 -1
  927. package/dist/chunk-M3JCHPK3.mjs +0 -782
  928. package/dist/chunk-M3JCHPK3.mjs.map +0 -1
  929. package/dist/chunk-M62L2N5A.mjs +0 -193
  930. package/dist/chunk-M62L2N5A.mjs.map +0 -1
  931. package/dist/chunk-MLVHVKFT.mjs +0 -148
  932. package/dist/chunk-MLVHVKFT.mjs.map +0 -1
  933. package/dist/chunk-MU3D5IO7.mjs +0 -283
  934. package/dist/chunk-MU3D5IO7.mjs.map +0 -1
  935. package/dist/chunk-MU7DTEUF.mjs +0 -77
  936. package/dist/chunk-MU7DTEUF.mjs.map +0 -1
  937. package/dist/chunk-MVHR77V4.js +0 -205
  938. package/dist/chunk-MVHR77V4.js.map +0 -1
  939. package/dist/chunk-NBOBOYMT.js +0 -52
  940. package/dist/chunk-NBOBOYMT.js.map +0 -1
  941. package/dist/chunk-NE6QGHFT.mjs +0 -240
  942. package/dist/chunk-NE6QGHFT.mjs.map +0 -1
  943. package/dist/chunk-NSWO43XW.mjs +0 -39
  944. package/dist/chunk-NSWO43XW.mjs.map +0 -1
  945. package/dist/chunk-NYXENHD2.mjs +0 -96
  946. package/dist/chunk-NYXENHD2.mjs.map +0 -1
  947. package/dist/chunk-O5GHP7UO.js +0 -142
  948. package/dist/chunk-O5GHP7UO.js.map +0 -1
  949. package/dist/chunk-OBKS3CPP.mjs +0 -50
  950. package/dist/chunk-OBKS3CPP.mjs.map +0 -1
  951. package/dist/chunk-OGNX6JT4.js +0 -222
  952. package/dist/chunk-OGNX6JT4.js.map +0 -1
  953. package/dist/chunk-OIPG3EGM.js +0 -771
  954. package/dist/chunk-OIPG3EGM.js.map +0 -1
  955. package/dist/chunk-OSU4QA5M.js +0 -260
  956. package/dist/chunk-OSU4QA5M.js.map +0 -1
  957. package/dist/chunk-P4Y75QSU.js +0 -19
  958. package/dist/chunk-P4Y75QSU.js.map +0 -1
  959. package/dist/chunk-PENNTSJE.mjs +0 -99
  960. package/dist/chunk-PENNTSJE.mjs.map +0 -1
  961. package/dist/chunk-PRAHDLKT.js +0 -67
  962. package/dist/chunk-PRAHDLKT.js.map +0 -1
  963. package/dist/chunk-QAQTDHHT.mjs +0 -1102
  964. package/dist/chunk-QAQTDHHT.mjs.map +0 -1
  965. package/dist/chunk-QOKMH2TD.mjs +0 -21
  966. package/dist/chunk-QOKMH2TD.mjs.map +0 -1
  967. package/dist/chunk-QRHVMTHF.mjs +0 -94
  968. package/dist/chunk-QRHVMTHF.mjs.map +0 -1
  969. package/dist/chunk-QZF5NTXQ.mjs +0 -28
  970. package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
  971. package/dist/chunk-R5F2JQVX.mjs +0 -41
  972. package/dist/chunk-R5F2JQVX.mjs.map +0 -1
  973. package/dist/chunk-RC4WWQXR.js +0 -47
  974. package/dist/chunk-RC4WWQXR.js.map +0 -1
  975. package/dist/chunk-RCB6HEHM.mjs +0 -349
  976. package/dist/chunk-RCB6HEHM.mjs.map +0 -1
  977. package/dist/chunk-RH4XEXTK.mjs +0 -323
  978. package/dist/chunk-RI6DFQCA.js +0 -539
  979. package/dist/chunk-RI6DFQCA.js.map +0 -1
  980. package/dist/chunk-RLUNEEGM.js +0 -336
  981. package/dist/chunk-RLUNEEGM.js.map +0 -1
  982. package/dist/chunk-RQROZLH3.js +0 -1153
  983. package/dist/chunk-RQROZLH3.js.map +0 -1
  984. package/dist/chunk-S5QKNXLQ.js +0 -1430
  985. package/dist/chunk-S5QKNXLQ.js.map +0 -1
  986. package/dist/chunk-SBTA6B6Y.mjs +0 -8014
  987. package/dist/chunk-SBTA6B6Y.mjs.map +0 -1
  988. package/dist/chunk-SFMNUVDN.mjs +0 -49
  989. package/dist/chunk-SFMNUVDN.mjs.map +0 -1
  990. package/dist/chunk-SG7CWD2R.js +0 -138
  991. package/dist/chunk-SG7CWD2R.js.map +0 -1
  992. package/dist/chunk-SHLWA6JY.mjs +0 -26
  993. package/dist/chunk-SHLWA6JY.mjs.map +0 -1
  994. package/dist/chunk-SNAQBZPT.js +0 -68
  995. package/dist/chunk-SNAQBZPT.js.map +0 -1
  996. package/dist/chunk-SWIKKSKL.js +0 -19
  997. package/dist/chunk-SWIKKSKL.js.map +0 -1
  998. package/dist/chunk-TBXWJJGT.js +0 -468
  999. package/dist/chunk-TBXWJJGT.js.map +0 -1
  1000. package/dist/chunk-TIFVAASU.mjs +0 -14279
  1001. package/dist/chunk-TMVKRQGJ.mjs +0 -64
  1002. package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
  1003. package/dist/chunk-TPDDSEL3.mjs +0 -75
  1004. package/dist/chunk-TPDDSEL3.mjs.map +0 -1
  1005. package/dist/chunk-TST2IKYO.js +0 -264
  1006. package/dist/chunk-TST2IKYO.js.map +0 -1
  1007. package/dist/chunk-TULCHQX2.js +0 -29
  1008. package/dist/chunk-TULCHQX2.js.map +0 -1
  1009. package/dist/chunk-U4CYO4NG.js +0 -195
  1010. package/dist/chunk-U4CYO4NG.js.map +0 -1
  1011. package/dist/chunk-U5NFIHLY.js +0 -158
  1012. package/dist/chunk-U5NFIHLY.js.map +0 -1
  1013. package/dist/chunk-UCMMIGC6.mjs +0 -156
  1014. package/dist/chunk-UCMMIGC6.mjs.map +0 -1
  1015. package/dist/chunk-UHYRVALN.mjs +0 -98
  1016. package/dist/chunk-UHYRVALN.mjs.map +0 -1
  1017. package/dist/chunk-UO6KTHBQ.mjs +0 -125
  1018. package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
  1019. package/dist/chunk-USQPRLSG.mjs +0 -151
  1020. package/dist/chunk-USQPRLSG.mjs.map +0 -1
  1021. package/dist/chunk-UZKXOZHR.js +0 -23
  1022. package/dist/chunk-UZKXOZHR.js.map +0 -1
  1023. package/dist/chunk-VDEQVXNV.js +0 -176
  1024. package/dist/chunk-VDEQVXNV.js.map +0 -1
  1025. package/dist/chunk-VIGRGMWR.mjs +0 -229
  1026. package/dist/chunk-VIGRGMWR.mjs.map +0 -1
  1027. package/dist/chunk-VJMPIRSD.js +0 -31
  1028. package/dist/chunk-VJMPIRSD.js.map +0 -1
  1029. package/dist/chunk-VMNPLCZB.js +0 -533
  1030. package/dist/chunk-VMNPLCZB.js.map +0 -1
  1031. package/dist/chunk-VQL7XDIY.mjs +0 -43
  1032. package/dist/chunk-VQL7XDIY.mjs.map +0 -1
  1033. package/dist/chunk-VS67QHNX.mjs +0 -34
  1034. package/dist/chunk-VS67QHNX.mjs.map +0 -1
  1035. package/dist/chunk-W7IAG5YD.js +0 -108
  1036. package/dist/chunk-W7IAG5YD.js.map +0 -1
  1037. package/dist/chunk-WIWHM47B.mjs +0 -525
  1038. package/dist/chunk-WIWHM47B.mjs.map +0 -1
  1039. package/dist/chunk-WRRVYPMY.mjs +0 -535
  1040. package/dist/chunk-WRRVYPMY.mjs.map +0 -1
  1041. package/dist/chunk-WS7MH3GD.js +0 -40
  1042. package/dist/chunk-WS7MH3GD.js.map +0 -1
  1043. package/dist/chunk-WSPGXSBU.mjs +0 -202
  1044. package/dist/chunk-WSPGXSBU.mjs.map +0 -1
  1045. package/dist/chunk-XXSSUCJB.js +0 -14285
  1046. package/dist/chunk-XZHR4E2D.js +0 -83
  1047. package/dist/chunk-XZHR4E2D.js.map +0 -1
  1048. package/dist/chunk-Y2CP5J6Q.js +0 -116
  1049. package/dist/chunk-Y2CP5J6Q.js.map +0 -1
  1050. package/dist/chunk-YACU35MY.js +0 -937
  1051. package/dist/chunk-YACU35MY.js.map +0 -1
  1052. package/dist/chunk-YBKALLBH.js +0 -46
  1053. package/dist/chunk-YBKALLBH.js.map +0 -1
  1054. package/dist/chunk-YMZNEDFP.js +0 -39
  1055. package/dist/chunk-YMZNEDFP.js.map +0 -1
  1056. package/dist/chunk-YPGUV6BT.mjs +0 -30
  1057. package/dist/chunk-YPGUV6BT.mjs.map +0 -1
  1058. package/dist/chunk-YRKWJCML.mjs +0 -150
  1059. package/dist/chunk-YRKWJCML.mjs.map +0 -1
  1060. package/dist/chunk-YU7QZ3PP.mjs +0 -45
  1061. package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
  1062. package/dist/chunk-YVJASVVK.js +0 -97
  1063. package/dist/chunk-YVJASVVK.js.map +0 -1
  1064. package/dist/chunk-YZJ22HUQ.js +0 -29
  1065. package/dist/chunk-YZJ22HUQ.js.map +0 -1
  1066. package/dist/chunk-Z2URIOKG.mjs +0 -36
  1067. package/dist/chunk-Z2URIOKG.mjs.map +0 -1
  1068. package/dist/chunk-ZEBOOUBP.mjs +0 -128
  1069. package/dist/chunk-ZEBOOUBP.mjs.map +0 -1
  1070. package/dist/chunk-ZN4HBK5C.mjs +0 -17
  1071. package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
  1072. package/dist/chunk-ZOBUA65N.js +0 -1079
  1073. package/dist/chunk-ZOBUA65N.js.map +0 -1
  1074. package/dist/chunk-ZUQSVCMD.js +0 -325
  1075. package/dist/chunk-ZVBLXXNJ.mjs +0 -53
  1076. package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
  1077. package/dist/chunk-ZZQAGCSI.mjs +0 -43
  1078. package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
  1079. package/dist/cli/agent/checks.d.ts +0 -96
  1080. package/dist/cli/agent/checks.d.ts.map +0 -1
  1081. package/dist/cli/agent/context.d.ts +0 -50
  1082. package/dist/cli/agent/context.d.ts.map +0 -1
  1083. package/dist/cli/agent/envelope.d.ts +0 -98
  1084. package/dist/cli/agent/envelope.d.ts.map +0 -1
  1085. package/dist/cli/agent/errors.d.ts +0 -36
  1086. package/dist/cli/agent/errors.d.ts.map +0 -1
  1087. package/dist/cli/agent/output.d.ts +0 -41
  1088. package/dist/cli/agent/output.d.ts.map +0 -1
  1089. package/dist/cli/agent/ssr-bailout.d.ts +0 -27
  1090. package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
  1091. package/dist/cli/api/sonor.d.ts +0 -39
  1092. package/dist/cli/api/sonor.d.ts.map +0 -1
  1093. package/dist/cli/codemod/diff.d.ts +0 -14
  1094. package/dist/cli/codemod/diff.d.ts.map +0 -1
  1095. package/dist/cli/codemod/engine.d.ts +0 -26
  1096. package/dist/cli/codemod/engine.d.ts.map +0 -1
  1097. package/dist/cli/codemod/transforms.d.ts +0 -31
  1098. package/dist/cli/codemod/transforms.d.ts.map +0 -1
  1099. package/dist/cli/commands/api-routes.d.ts +0 -13
  1100. package/dist/cli/commands/api-routes.d.ts.map +0 -1
  1101. package/dist/cli/commands/codemod.d.ts +0 -21
  1102. package/dist/cli/commands/codemod.d.ts.map +0 -1
  1103. package/dist/cli/commands/doctor.d.ts +0 -27
  1104. package/dist/cli/commands/doctor.d.ts.map +0 -1
  1105. package/dist/cli/commands/faqs.d.ts +0 -16
  1106. package/dist/cli/commands/faqs.d.ts.map +0 -1
  1107. package/dist/cli/commands/geo.d.ts +0 -18
  1108. package/dist/cli/commands/geo.d.ts.map +0 -1
  1109. package/dist/cli/commands/images.d.ts +0 -85
  1110. package/dist/cli/commands/images.d.ts.map +0 -1
  1111. package/dist/cli/commands/init.d.ts +0 -21
  1112. package/dist/cli/commands/init.d.ts.map +0 -1
  1113. package/dist/cli/commands/install.d.ts +0 -15
  1114. package/dist/cli/commands/install.d.ts.map +0 -1
  1115. package/dist/cli/commands/locations.d.ts +0 -55
  1116. package/dist/cli/commands/locations.d.ts.map +0 -1
  1117. package/dist/cli/commands/manifest.d.ts +0 -17
  1118. package/dist/cli/commands/manifest.d.ts.map +0 -1
  1119. package/dist/cli/commands/migrate.d.ts +0 -19
  1120. package/dist/cli/commands/migrate.d.ts.map +0 -1
  1121. package/dist/cli/commands/next16.d.ts +0 -10
  1122. package/dist/cli/commands/next16.d.ts.map +0 -1
  1123. package/dist/cli/commands/og.d.ts +0 -117
  1124. package/dist/cli/commands/og.d.ts.map +0 -1
  1125. package/dist/cli/commands/scaffold.d.ts +0 -22
  1126. package/dist/cli/commands/scaffold.d.ts.map +0 -1
  1127. package/dist/cli/commands/scan.d.ts +0 -18
  1128. package/dist/cli/commands/scan.d.ts.map +0 -1
  1129. package/dist/cli/commands/setup.d.ts +0 -35
  1130. package/dist/cli/commands/setup.d.ts.map +0 -1
  1131. package/dist/cli/commands/sync.d.ts +0 -22
  1132. package/dist/cli/commands/sync.d.ts.map +0 -1
  1133. package/dist/cli/commands/upgrade.d.ts +0 -15
  1134. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  1135. package/dist/cli/commands/verify.d.ts +0 -22
  1136. package/dist/cli/commands/verify.d.ts.map +0 -1
  1137. package/dist/cli/config.d.ts +0 -31
  1138. package/dist/cli/config.d.ts.map +0 -1
  1139. package/dist/cli/generators/index.d.ts +0 -60
  1140. package/dist/cli/generators/index.d.ts.map +0 -1
  1141. package/dist/cli/index.d.ts +0 -15
  1142. package/dist/cli/index.d.ts.map +0 -1
  1143. package/dist/cli/index.js +0 -32904
  1144. package/dist/cli/index.mjs +0 -32872
  1145. package/dist/cli/migrator/index.d.ts +0 -92
  1146. package/dist/cli/migrator/index.d.ts.map +0 -1
  1147. package/dist/cli/scanner/index.d.ts +0 -129
  1148. package/dist/cli/scanner/index.d.ts.map +0 -1
  1149. package/dist/cli/state.d.ts +0 -7
  1150. package/dist/cli/state.d.ts.map +0 -1
  1151. package/dist/client/SiteKitCredential.d.ts.map +0 -1
  1152. package/dist/client/index.d.ts.map +0 -1
  1153. package/dist/client/index.js.map +0 -1
  1154. package/dist/client/index.mjs +0 -27
  1155. package/dist/client/index.mjs.map +0 -1
  1156. package/dist/cms/CmsPage.d.ts.map +0 -1
  1157. package/dist/cms/CmsPreview.d.ts.map +0 -1
  1158. package/dist/cms/CmsSection.d.ts.map +0 -1
  1159. package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
  1160. package/dist/cms/index.d.ts.map +0 -1
  1161. package/dist/cms/index.js.map +0 -1
  1162. package/dist/cms/index.mjs +0 -389
  1163. package/dist/cms/index.mjs.map +0 -1
  1164. package/dist/cms/sanity-image.d.ts.map +0 -1
  1165. package/dist/cms/sections/CtaSection.d.ts.map +0 -1
  1166. package/dist/cms/sections/CustomSection.d.ts.map +0 -1
  1167. package/dist/cms/sections/FaqSection.d.ts.map +0 -1
  1168. package/dist/cms/sections/FormSection.d.ts.map +0 -1
  1169. package/dist/cms/sections/GallerySection.d.ts.map +0 -1
  1170. package/dist/cms/sections/HeroSection.d.ts.map +0 -1
  1171. package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
  1172. package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
  1173. package/dist/cms/sections/index.d.ts.map +0 -1
  1174. package/dist/cms/server-api.d.ts.map +0 -1
  1175. package/dist/cms/server.d.ts.map +0 -1
  1176. package/dist/cms/server.js.map +0 -1
  1177. package/dist/cms/server.mjs +0 -5
  1178. package/dist/cms/server.mjs.map +0 -1
  1179. package/dist/cms/types.d.ts.map +0 -1
  1180. package/dist/commerce/CalendarView.d.ts.map +0 -1
  1181. package/dist/commerce/CheckoutForm.d.ts.map +0 -1
  1182. package/dist/commerce/EventCalendar.d.ts.map +0 -1
  1183. package/dist/commerce/EventCheckout.d.ts.map +0 -1
  1184. package/dist/commerce/EventEmbed.d.ts.map +0 -1
  1185. package/dist/commerce/EventModal.d.ts.map +0 -1
  1186. package/dist/commerce/EventTile.d.ts.map +0 -1
  1187. package/dist/commerce/EventsAgenda.d.ts.map +0 -1
  1188. package/dist/commerce/EventsWidget.d.ts.map +0 -1
  1189. package/dist/commerce/OfferingCard.d.ts.map +0 -1
  1190. package/dist/commerce/OfferingList.d.ts.map +0 -1
  1191. package/dist/commerce/ProductDetail.d.ts.map +0 -1
  1192. package/dist/commerce/ProductEmbed.d.ts.map +0 -1
  1193. package/dist/commerce/ProductGrid.d.ts.map +0 -1
  1194. package/dist/commerce/ProductPage.d.ts.map +0 -1
  1195. package/dist/commerce/RegistrationForm.d.ts.map +0 -1
  1196. package/dist/commerce/SizeChart.d.ts.map +0 -1
  1197. package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
  1198. package/dist/commerce/api.d.ts.map +0 -1
  1199. package/dist/commerce/events-extras.d.ts.map +0 -1
  1200. package/dist/commerce/index.d.ts.map +0 -1
  1201. package/dist/commerce/index.js.map +0 -1
  1202. package/dist/commerce/index.mjs +0 -15
  1203. package/dist/commerce/index.mjs.map +0 -1
  1204. package/dist/commerce/server.d.ts.map +0 -1
  1205. package/dist/commerce/server.js.map +0 -1
  1206. package/dist/commerce/server.mjs +0 -237
  1207. package/dist/commerce/server.mjs.map +0 -1
  1208. package/dist/commerce/types.d.ts.map +0 -1
  1209. package/dist/commerce/useEventModal.d.ts.map +0 -1
  1210. package/dist/commerce/utils.d.ts.map +0 -1
  1211. package/dist/config/index.d.ts.map +0 -1
  1212. package/dist/config/index.js.map +0 -1
  1213. package/dist/config/index.mjs +0 -116
  1214. package/dist/config/index.mjs.map +0 -1
  1215. package/dist/cta-bar/CtaBar.d.ts.map +0 -1
  1216. package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
  1217. package/dist/cta-bar/client.d.ts.map +0 -1
  1218. package/dist/cta-bar/client.js.map +0 -1
  1219. package/dist/cta-bar/client.mjs +0 -6
  1220. package/dist/cta-bar/client.mjs.map +0 -1
  1221. package/dist/cta-bar/index.d.ts.map +0 -1
  1222. package/dist/cta-bar/index.js.map +0 -1
  1223. package/dist/cta-bar/index.mjs +0 -221
  1224. package/dist/cta-bar/index.mjs.map +0 -1
  1225. package/dist/cta-bar/styles.d.ts.map +0 -1
  1226. package/dist/discover-LPN55L5B.js +0 -21
  1227. package/dist/discover-LPN55L5B.js.map +0 -1
  1228. package/dist/discover-QGA6QFSR.mjs +0 -4
  1229. package/dist/discover-QGA6QFSR.mjs.map +0 -1
  1230. package/dist/engage/ChatWidget.d.ts.map +0 -1
  1231. package/dist/engage/DesignRenderer.d.ts.map +0 -1
  1232. package/dist/engage/EchoUiActions.d.ts.map +0 -1
  1233. package/dist/engage/EngageWidget.d.ts.map +0 -1
  1234. package/dist/engage/brand-color.d.ts.map +0 -1
  1235. package/dist/engage/chat-messages.d.ts.map +0 -1
  1236. package/dist/engage/echo-config.d.ts.map +0 -1
  1237. package/dist/engage/element-rules.d.ts.map +0 -1
  1238. package/dist/engage/index.d.ts.map +0 -1
  1239. package/dist/engage/index.js.map +0 -1
  1240. package/dist/engage/index.mjs +0 -50
  1241. package/dist/engage/index.mjs.map +0 -1
  1242. package/dist/engage/launcher-placement.d.ts.map +0 -1
  1243. package/dist/engage/socket-loader.d.ts.map +0 -1
  1244. package/dist/engage/types.d.ts.map +0 -1
  1245. package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
  1246. package/dist/fleet/contract.d.ts.map +0 -1
  1247. package/dist/fleet/contract.js.map +0 -1
  1248. package/dist/fleet/contract.mjs +0 -4
  1249. package/dist/fleet/contract.mjs.map +0 -1
  1250. package/dist/fleet/heartbeat.d.ts.map +0 -1
  1251. package/dist/fleet/index.d.ts.map +0 -1
  1252. package/dist/fleet/index.js.map +0 -1
  1253. package/dist/fleet/index.mjs +0 -11
  1254. package/dist/fleet/index.mjs.map +0 -1
  1255. package/dist/forms/DatePicker.d.ts.map +0 -1
  1256. package/dist/forms/FileField.d.ts.map +0 -1
  1257. package/dist/forms/FormCelebration.d.ts.map +0 -1
  1258. package/dist/forms/FormClient.d.ts.map +0 -1
  1259. package/dist/forms/FormEnhancer.d.ts.map +0 -1
  1260. package/dist/forms/FormField.d.ts.map +0 -1
  1261. package/dist/forms/FormSpotlight.d.ts.map +0 -1
  1262. package/dist/forms/FormStage.d.ts.map +0 -1
  1263. package/dist/forms/HoneypotField.d.ts.map +0 -1
  1264. package/dist/forms/ManagedForm.d.ts.map +0 -1
  1265. package/dist/forms/ServerForm.d.ts.map +0 -1
  1266. package/dist/forms/StaticForm.d.ts.map +0 -1
  1267. package/dist/forms/contract.d.ts.map +0 -1
  1268. package/dist/forms/contract.js.map +0 -1
  1269. package/dist/forms/contract.mjs +0 -4
  1270. package/dist/forms/contract.mjs.map +0 -1
  1271. package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
  1272. package/dist/forms/delight.d.ts.map +0 -1
  1273. package/dist/forms/experience-chrome.d.ts.map +0 -1
  1274. package/dist/forms/experience-plan.d.ts.map +0 -1
  1275. package/dist/forms/field-controls.d.ts.map +0 -1
  1276. package/dist/forms/field-interactions.d.ts.map +0 -1
  1277. package/dist/forms/field-rules.d.ts.map +0 -1
  1278. package/dist/forms/form-values.d.ts.map +0 -1
  1279. package/dist/forms/formsApi.d.ts.map +0 -1
  1280. package/dist/forms/ga4-identity.d.ts.map +0 -1
  1281. package/dist/forms/index.d.ts.map +0 -1
  1282. package/dist/forms/index.js.map +0 -1
  1283. package/dist/forms/index.mjs +0 -341
  1284. package/dist/forms/index.mjs.map +0 -1
  1285. package/dist/forms/normalize-config.d.ts.map +0 -1
  1286. package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
  1287. package/dist/forms/recaptcha.d.ts.map +0 -1
  1288. package/dist/forms/server.d.ts.map +0 -1
  1289. package/dist/forms/server.js.map +0 -1
  1290. package/dist/forms/server.mjs +0 -61
  1291. package/dist/forms/server.mjs.map +0 -1
  1292. package/dist/forms/static.d.ts.map +0 -1
  1293. package/dist/forms/static.js.map +0 -1
  1294. package/dist/forms/static.mjs +0 -8
  1295. package/dist/forms/static.mjs.map +0 -1
  1296. package/dist/forms/submitForm.d.ts.map +0 -1
  1297. package/dist/forms/tracking-session.d.ts.map +0 -1
  1298. package/dist/forms/types.d.ts.map +0 -1
  1299. package/dist/forms/useForm.d.ts.map +0 -1
  1300. package/dist/forms/useFormTracking.d.ts.map +0 -1
  1301. package/dist/images/ManagedFavicon.d.ts.map +0 -1
  1302. package/dist/images/ManagedImage.d.ts.map +0 -1
  1303. package/dist/images/api.d.ts.map +0 -1
  1304. package/dist/images/index.d.ts.map +0 -1
  1305. package/dist/images/index.js.map +0 -1
  1306. package/dist/images/index.mjs +0 -8
  1307. package/dist/images/index.mjs.map +0 -1
  1308. package/dist/images/server.d.ts.map +0 -1
  1309. package/dist/images/server.js.map +0 -1
  1310. package/dist/images/server.mjs +0 -4
  1311. package/dist/images/server.mjs.map +0 -1
  1312. package/dist/index.d.ts.map +0 -1
  1313. package/dist/index.js.map +0 -1
  1314. package/dist/index.mjs +0 -172
  1315. package/dist/index.mjs.map +0 -1
  1316. package/dist/landing/LandingPage.d.ts.map +0 -1
  1317. package/dist/landing/contract.d.ts.map +0 -1
  1318. package/dist/landing/index.d.ts.map +0 -1
  1319. package/dist/landing/index.js.map +0 -1
  1320. package/dist/landing/index.mjs +0 -5
  1321. package/dist/landing/index.mjs.map +0 -1
  1322. package/dist/landing/metadata.d.ts.map +0 -1
  1323. package/dist/landing/server.d.ts.map +0 -1
  1324. package/dist/landing/server.js.map +0 -1
  1325. package/dist/landing/server.mjs +0 -4
  1326. package/dist/landing/server.mjs.map +0 -1
  1327. package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
  1328. package/dist/layout/SiteKitLayout.d.ts.map +0 -1
  1329. package/dist/layout/SpeculationRules.d.ts.map +0 -1
  1330. package/dist/layout/client.d.ts.map +0 -1
  1331. package/dist/layout/client.js.map +0 -1
  1332. package/dist/layout/client.mjs +0 -18
  1333. package/dist/layout/client.mjs.map +0 -1
  1334. package/dist/layout/index.d.ts.map +0 -1
  1335. package/dist/layout/index.js.map +0 -1
  1336. package/dist/layout/index.mjs +0 -105
  1337. package/dist/layout/index.mjs.map +0 -1
  1338. package/dist/layout/types.d.ts.map +0 -1
  1339. package/dist/lib-6GWWPDJR.js +0 -28
  1340. package/dist/lib-BD4KKQBI.mjs +0 -4
  1341. package/dist/lib-N5PD6JNJ.mjs +0 -3
  1342. package/dist/lib-WFB5RLEQ.js +0 -31
  1343. package/dist/llms/AEOComponents.d.ts.map +0 -1
  1344. package/dist/llms/SpeakableSchema.d.ts.map +0 -1
  1345. package/dist/llms/aiRobots.d.ts.map +0 -1
  1346. package/dist/llms/api.d.ts.map +0 -1
  1347. package/dist/llms/client.d.ts.map +0 -1
  1348. package/dist/llms/client.js.map +0 -1
  1349. package/dist/llms/client.mjs +0 -5
  1350. package/dist/llms/client.mjs.map +0 -1
  1351. package/dist/llms/contract.d.ts.map +0 -1
  1352. package/dist/llms/contract.js.map +0 -1
  1353. package/dist/llms/contract.mjs +0 -4
  1354. package/dist/llms/contract.mjs.map +0 -1
  1355. package/dist/llms/discovery-headers.d.ts.map +0 -1
  1356. package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
  1357. package/dist/llms/handlers.d.ts.map +0 -1
  1358. package/dist/llms/humanize-industry.d.ts.map +0 -1
  1359. package/dist/llms/index.d.ts.map +0 -1
  1360. package/dist/llms/index.js.map +0 -1
  1361. package/dist/llms/index.mjs +0 -286
  1362. package/dist/llms/index.mjs.map +0 -1
  1363. package/dist/llms/links.d.ts.map +0 -1
  1364. package/dist/llms/revalidate.d.ts.map +0 -1
  1365. package/dist/llms/seo-revalidate.d.ts.map +0 -1
  1366. package/dist/llms/sourcedFacts.d.ts.map +0 -1
  1367. package/dist/llms/types.d.ts.map +0 -1
  1368. package/dist/llms/wiring.d.ts +0 -103
  1369. package/dist/llms/wiring.d.ts.map +0 -1
  1370. package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
  1371. package/dist/manifest/index.d.ts.map +0 -1
  1372. package/dist/manifest/index.js.map +0 -1
  1373. package/dist/manifest/index.mjs +0 -83
  1374. package/dist/manifest/index.mjs.map +0 -1
  1375. package/dist/maps/GoogleMap.d.ts.map +0 -1
  1376. package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
  1377. package/dist/maps/api.d.ts.map +0 -1
  1378. package/dist/maps/index.d.ts.map +0 -1
  1379. package/dist/maps/index.js.map +0 -1
  1380. package/dist/maps/index.mjs +0 -361
  1381. package/dist/maps/index.mjs.map +0 -1
  1382. package/dist/maps/types.d.ts.map +0 -1
  1383. package/dist/mcp/WebMcpTools.d.ts.map +0 -1
  1384. package/dist/mcp/client.d.ts.map +0 -1
  1385. package/dist/mcp/client.js.map +0 -1
  1386. package/dist/mcp/client.mjs +0 -129
  1387. package/dist/mcp/client.mjs.map +0 -1
  1388. package/dist/mcp/declarative.d.ts.map +0 -1
  1389. package/dist/mcp/handlers.d.ts.map +0 -1
  1390. package/dist/mcp/index.d.ts.map +0 -1
  1391. package/dist/mcp/index.js.map +0 -1
  1392. package/dist/mcp/index.mjs +0 -509
  1393. package/dist/mcp/index.mjs.map +0 -1
  1394. package/dist/mcp/protocol.d.ts.map +0 -1
  1395. package/dist/mcp/serverCard.d.ts.map +0 -1
  1396. package/dist/mcp/transport.d.ts.map +0 -1
  1397. package/dist/mcp/transport.js.map +0 -1
  1398. package/dist/mcp/transport.mjs +0 -123
  1399. package/dist/mcp/transport.mjs.map +0 -1
  1400. package/dist/mcp/types.d.ts.map +0 -1
  1401. package/dist/motion/CountUp.d.ts.map +0 -1
  1402. package/dist/motion/Parallax.d.ts.map +0 -1
  1403. package/dist/motion/Reveal.d.ts.map +0 -1
  1404. package/dist/motion/ScrollScene.d.ts.map +0 -1
  1405. package/dist/motion/engine.d.ts.map +0 -1
  1406. package/dist/motion/failsafe.d.ts.map +0 -1
  1407. package/dist/motion/gsap.d.ts.map +0 -1
  1408. package/dist/motion/gsap.js.map +0 -1
  1409. package/dist/motion/gsap.mjs +0 -220
  1410. package/dist/motion/gsap.mjs.map +0 -1
  1411. package/dist/motion/index.d.ts.map +0 -1
  1412. package/dist/motion/index.js.map +0 -1
  1413. package/dist/motion/index.mjs +0 -209
  1414. package/dist/motion/index.mjs.map +0 -1
  1415. package/dist/motion/three.d.ts.map +0 -1
  1416. package/dist/motion/three.js.map +0 -1
  1417. package/dist/motion/three.mjs +0 -145
  1418. package/dist/motion/three.mjs.map +0 -1
  1419. package/dist/og/config.d.ts.map +0 -1
  1420. package/dist/og/contrast.d.ts.map +0 -1
  1421. package/dist/og/index.d.ts.map +0 -1
  1422. package/dist/og/index.js.map +0 -1
  1423. package/dist/og/index.mjs +0 -6
  1424. package/dist/og/index.mjs.map +0 -1
  1425. package/dist/og/pages.d.ts.map +0 -1
  1426. package/dist/og/route-copy.d.ts +0 -34
  1427. package/dist/og/route-copy.d.ts.map +0 -1
  1428. package/dist/og/route-fit.d.ts.map +0 -1
  1429. package/dist/og/route.d.ts.map +0 -1
  1430. package/dist/og/route.js.map +0 -1
  1431. package/dist/og/route.mjs +0 -239
  1432. package/dist/og/route.mjs.map +0 -1
  1433. package/dist/og/template.d.ts.map +0 -1
  1434. package/dist/og/wiring.d.ts +0 -100
  1435. package/dist/og/wiring.d.ts.map +0 -1
  1436. package/dist/portfolio/contract.d.ts.map +0 -1
  1437. package/dist/portfolio/contract.js.map +0 -1
  1438. package/dist/portfolio/contract.mjs +0 -38
  1439. package/dist/portfolio/contract.mjs.map +0 -1
  1440. package/dist/proxy/index.d.ts.map +0 -1
  1441. package/dist/proxy/index.js.map +0 -1
  1442. package/dist/proxy/index.mjs +0 -170
  1443. package/dist/proxy/index.mjs.map +0 -1
  1444. package/dist/proxy/securityHeaders.d.ts.map +0 -1
  1445. package/dist/proxy/segment.d.ts.map +0 -1
  1446. package/dist/redirects/index.d.ts.map +0 -1
  1447. package/dist/redirects/index.js.map +0 -1
  1448. package/dist/redirects/index.mjs +0 -8
  1449. package/dist/redirects/index.mjs.map +0 -1
  1450. package/dist/redirects/not-found.d.ts +0 -31
  1451. package/dist/redirects/not-found.d.ts.map +0 -1
  1452. package/dist/redirects/not-found.js +0 -47
  1453. package/dist/redirects/not-found.js.map +0 -1
  1454. package/dist/redirects/not-found.mjs +0 -45
  1455. package/dist/redirects/not-found.mjs.map +0 -1
  1456. package/dist/reputation/TestimonialSection.d.ts.map +0 -1
  1457. package/dist/reputation/api.d.ts.map +0 -1
  1458. package/dist/reputation/index.d.ts.map +0 -1
  1459. package/dist/reputation/index.js.map +0 -1
  1460. package/dist/reputation/index.mjs +0 -5
  1461. package/dist/reputation/index.mjs.map +0 -1
  1462. package/dist/reputation/server.d.ts.map +0 -1
  1463. package/dist/reputation/server.js.map +0 -1
  1464. package/dist/reputation/server.mjs +0 -4
  1465. package/dist/reputation/server.mjs.map +0 -1
  1466. package/dist/reputation/types.d.ts.map +0 -1
  1467. package/dist/robots/index.d.ts.map +0 -1
  1468. package/dist/robots/index.js.map +0 -1
  1469. package/dist/robots/index.mjs +0 -53
  1470. package/dist/robots/index.mjs.map +0 -1
  1471. package/dist/robots/indexnow.d.ts.map +0 -1
  1472. package/dist/robots/indexnow.js.map +0 -1
  1473. package/dist/robots/indexnow.mjs +0 -34
  1474. package/dist/robots/indexnow.mjs.map +0 -1
  1475. package/dist/robots/next-internals.d.ts.map +0 -1
  1476. package/dist/search/contract.d.ts +0 -62
  1477. package/dist/search/contract.d.ts.map +0 -1
  1478. package/dist/search/contract.js +0 -17
  1479. package/dist/search/contract.js.map +0 -1
  1480. package/dist/search/contract.mjs +0 -4
  1481. package/dist/search/contract.mjs.map +0 -1
  1482. package/dist/search/index.d.ts +0 -52
  1483. package/dist/search/index.d.ts.map +0 -1
  1484. package/dist/search/index.js +0 -105
  1485. package/dist/search/index.js.map +0 -1
  1486. package/dist/search/index.mjs +0 -99
  1487. package/dist/search/index.mjs.map +0 -1
  1488. package/dist/seo/LocationPageContent.d.ts +0 -64
  1489. package/dist/seo/LocationPageContent.d.ts.map +0 -1
  1490. package/dist/seo/ManagedContent.d.ts.map +0 -1
  1491. package/dist/seo/ManagedFAQ.d.ts.map +0 -1
  1492. package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
  1493. package/dist/seo/ManagedSchema.d.ts.map +0 -1
  1494. package/dist/seo/ManagedScripts.d.ts.map +0 -1
  1495. package/dist/seo/api.d.ts.map +0 -1
  1496. package/dist/seo/client.d.ts.map +0 -1
  1497. package/dist/seo/client.js.map +0 -1
  1498. package/dist/seo/client.mjs +0 -10
  1499. package/dist/seo/client.mjs.map +0 -1
  1500. package/dist/seo/getManagedMetadata.d.ts.map +0 -1
  1501. package/dist/seo/groundingSchema.d.ts.map +0 -1
  1502. package/dist/seo/index.d.ts.map +0 -1
  1503. package/dist/seo/index.js.map +0 -1
  1504. package/dist/seo/index.mjs +0 -701
  1505. package/dist/seo/index.mjs.map +0 -1
  1506. package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
  1507. package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
  1508. package/dist/seo/register-sitemap-cli.mjs +0 -528
  1509. package/dist/seo/register-sitemap-request.d.ts.map +0 -1
  1510. package/dist/seo/routing.d.ts.map +0 -1
  1511. package/dist/seo/safeJsonLd.d.ts.map +0 -1
  1512. package/dist/seo/schema-filter.d.ts.map +0 -1
  1513. package/dist/seo/server-api.d.ts.map +0 -1
  1514. package/dist/seo/server.d.ts.map +0 -1
  1515. package/dist/seo/server.js.map +0 -1
  1516. package/dist/seo/server.mjs +0 -11
  1517. package/dist/seo/server.mjs.map +0 -1
  1518. package/dist/seo/types.d.ts.map +0 -1
  1519. package/dist/seo/withManagedMetadata.d.ts.map +0 -1
  1520. package/dist/seo-meta/contract.d.ts.map +0 -1
  1521. package/dist/seo-meta/contract.js.map +0 -1
  1522. package/dist/seo-meta/contract.mjs +0 -4
  1523. package/dist/seo-meta/contract.mjs.map +0 -1
  1524. package/dist/seo-pages/contract.d.ts.map +0 -1
  1525. package/dist/seo-pages/contract.js.map +0 -1
  1526. package/dist/seo-pages/contract.mjs +0 -45
  1527. package/dist/seo-pages/contract.mjs.map +0 -1
  1528. package/dist/server/index.d.ts.map +0 -1
  1529. package/dist/server/index.js.map +0 -1
  1530. package/dist/server/index.mjs +0 -7
  1531. package/dist/server/index.mjs.map +0 -1
  1532. package/dist/server/mint-site-token.d.ts.map +0 -1
  1533. package/dist/server/server-fetch.d.ts.map +0 -1
  1534. package/dist/server-api-7F5P6CSH.mjs +0 -9
  1535. package/dist/server-api-7F5P6CSH.mjs.map +0 -1
  1536. package/dist/server-api-OC5JNK6R.js +0 -86
  1537. package/dist/server-api-OC5JNK6R.js.map +0 -1
  1538. package/dist/setup/index.d.ts +0 -12
  1539. package/dist/setup/index.d.ts.map +0 -1
  1540. package/dist/setup/index.js +0 -4
  1541. package/dist/setup/index.js.map +0 -1
  1542. package/dist/setup/index.mjs +0 -3
  1543. package/dist/setup/index.mjs.map +0 -1
  1544. package/dist/shared/build-entries.d.ts.map +0 -1
  1545. package/dist/shared/color.d.ts.map +0 -1
  1546. package/dist/shared/defer.d.ts.map +0 -1
  1547. package/dist/shared/fetchWithRetry.d.ts.map +0 -1
  1548. package/dist/shared/frame.d.ts.map +0 -1
  1549. package/dist/shared/fresh-fetch.d.ts.map +0 -1
  1550. package/dist/shared/glass.d.ts.map +0 -1
  1551. package/dist/shared/identity.d.ts.map +0 -1
  1552. package/dist/shared/next-files.d.ts.map +0 -1
  1553. package/dist/shared/page-leave.d.ts.map +0 -1
  1554. package/dist/shared/publishCredential.d.ts.map +0 -1
  1555. package/dist/shared/reporting-gate.d.ts.map +0 -1
  1556. package/dist/shared/request-guards.d.ts.map +0 -1
  1557. package/dist/shared/siteToken.d.ts.map +0 -1
  1558. package/dist/shared/sonorFetch.d.ts.map +0 -1
  1559. package/dist/shared/source-graph.d.ts.map +0 -1
  1560. package/dist/shared/uuid.d.ts.map +0 -1
  1561. package/dist/shared/version.d.ts.map +0 -1
  1562. package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
  1563. package/dist/signal/SignalBridge.d.ts.map +0 -1
  1564. package/dist/signal/SignalCore.d.ts.map +0 -1
  1565. package/dist/signal/SignalExperiment.d.ts.map +0 -1
  1566. package/dist/signal/index.d.ts.map +0 -1
  1567. package/dist/signal/index.js.map +0 -1
  1568. package/dist/signal/index.mjs +0 -6
  1569. package/dist/signal/index.mjs.map +0 -1
  1570. package/dist/signal/store.d.ts.map +0 -1
  1571. package/dist/signal/types.d.ts.map +0 -1
  1572. package/dist/site-config/index.d.ts.map +0 -1
  1573. package/dist/site-config/index.js.map +0 -1
  1574. package/dist/site-config/index.mjs +0 -4
  1575. package/dist/site-config/index.mjs.map +0 -1
  1576. package/dist/sitemap/discover.d.ts.map +0 -1
  1577. package/dist/sitemap/index.d.ts.map +0 -1
  1578. package/dist/sitemap/index.js.map +0 -1
  1579. package/dist/sitemap/index.mjs +0 -549
  1580. package/dist/sitemap/index.mjs.map +0 -1
  1581. package/dist/sitemap/shared.d.ts.map +0 -1
  1582. package/dist/sites/contract.d.ts.map +0 -1
  1583. package/dist/sites/contract.js.map +0 -1
  1584. package/dist/sites/contract.mjs +0 -5
  1585. package/dist/sites/contract.mjs.map +0 -1
  1586. package/dist/sites/normalize.d.ts.map +0 -1
  1587. package/dist/sites/resolve.d.ts.map +0 -1
  1588. package/dist/sites/site-param.d.ts.map +0 -1
  1589. package/dist/slots/ManagedSlot.d.ts.map +0 -1
  1590. package/dist/slots/contract.d.ts.map +0 -1
  1591. package/dist/slots/contract.js.map +0 -1
  1592. package/dist/slots/contract.mjs +0 -4
  1593. package/dist/slots/contract.mjs.map +0 -1
  1594. package/dist/slots/index.d.ts.map +0 -1
  1595. package/dist/slots/index.js.map +0 -1
  1596. package/dist/slots/index.mjs +0 -142
  1597. package/dist/slots/index.mjs.map +0 -1
  1598. package/dist/slots/revalidate.d.ts.map +0 -1
  1599. package/dist/slots/server-api.d.ts.map +0 -1
  1600. package/dist/socket-loader-2NYBMBFQ.js +0 -16
  1601. package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
  1602. package/dist/socket-loader-JA2DI2RT.mjs +0 -14
  1603. package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
  1604. package/dist/sync/AddToCalendar.d.ts.map +0 -1
  1605. package/dist/sync/BookingWidget.d.ts.map +0 -1
  1606. package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
  1607. package/dist/sync/api.d.ts.map +0 -1
  1608. package/dist/sync/booking-flow.d.ts.map +0 -1
  1609. package/dist/sync/index.d.ts.map +0 -1
  1610. package/dist/sync/index.js.map +0 -1
  1611. package/dist/sync/index.mjs +0 -7
  1612. package/dist/sync/index.mjs.map +0 -1
  1613. package/dist/sync/types.d.ts.map +0 -1
  1614. package/dist/types.d.ts.map +0 -1
  1615. package/dist/web-vitals.attribution-CHXXWO72.mjs +0 -524
  1616. package/dist/web-vitals.attribution-CHXXWO72.mjs.map +0 -1
  1617. package/dist/web-vitals.attribution-SQVZNHN3.js +0 -535
  1618. package/dist/web-vitals.attribution-SQVZNHN3.js.map +0 -1
  1619. package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
  1620. package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
  1621. package/scripts/postinstall.cjs +0 -67
@@ -1,324 +0,0 @@
1
- 'use client';
2
- import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-ZZQAGCSI.mjs';
3
- import { onPageLeave } from './chunk-5SANRSX3.mjs';
4
- import './chunk-6EDVCUAG.mjs';
5
- import { sonorFetch } from './chunk-5T3J24K4.mjs';
6
- import { getFreshCredential, isSiteToken } from './chunk-YRKWJCML.mjs';
7
- import './chunk-K3PVUXKB.mjs';
8
- import './chunk-BEXTDHO4.mjs';
9
- import { useState, useRef, useEffect, useCallback } from 'react';
10
-
11
- function getApiConfig() {
12
- const apiUrl = typeof window !== "undefined" ? window.__SITE_KIT_API_URL__ || "https://api.sonor.io" : "https://api.sonor.io";
13
- const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
14
- return { apiUrl, apiKey };
15
- }
16
- function isDebug() {
17
- return typeof window !== "undefined" && !!window.__SITE_KIT_DEBUG__;
18
- }
19
- function getDeviceType() {
20
- if (typeof window === "undefined") return "desktop";
21
- const ua = navigator.userAgent;
22
- if (/tablet|ipad|playbook|silk/i.test(ua)) return "tablet";
23
- if (/mobile|iphone|ipod|android|blackberry|opera mini|iemobile/i.test(ua)) return "mobile";
24
- return "desktop";
25
- }
26
- function getBrowser() {
27
- if (typeof window === "undefined") return "unknown";
28
- const ua = navigator.userAgent;
29
- if (ua.includes("Firefox")) return "Firefox";
30
- if (ua.includes("Edg")) return "Edge";
31
- if (ua.includes("Chrome")) return "Chrome";
32
- if (ua.includes("Safari")) return "Safari";
33
- return "Other";
34
- }
35
- function getOS() {
36
- if (typeof window === "undefined") return "unknown";
37
- const ua = navigator.userAgent;
38
- if (ua.includes("Windows")) return "Windows";
39
- if (ua.includes("Mac")) return "macOS";
40
- if (ua.includes("iPhone") || ua.includes("iPad")) return "iOS";
41
- if (ua.includes("Android")) return "Android";
42
- if (ua.includes("Linux")) return "Linux";
43
- return "Other";
44
- }
45
- function SignalCore({
46
- enabled,
47
- realtime,
48
- experiments,
49
- behaviorTracking,
50
- externalVisitorId,
51
- externalSessionId,
52
- pageMetadataRef,
53
- onRegister,
54
- onState
55
- }) {
56
- const [config, setConfig] = useState(null);
57
- const [loading, setLoading] = useState(true);
58
- const [error, setError] = useState(null);
59
- const eventSourceRef = useRef(null);
60
- const eventQueueRef = useRef([]);
61
- const flushTimeoutRef = useRef(null);
62
- const assignmentsRef = useRef(/* @__PURE__ */ new Map());
63
- const pageLoadTimeRef = useRef(Date.now());
64
- const scrollDepthRef = useRef(0);
65
- const clickCountRef = useRef(0);
66
- const { apiUrl, apiKey } = getApiConfig();
67
- const resolvedVisitorId = externalVisitorId || getOrCreateVisitorId();
68
- const resolvedSessionId = externalSessionId || getOrCreateSessionId();
69
- useEffect(() => {
70
- onState({ config, loading, error });
71
- }, [config, loading, error, onState]);
72
- const loadExperimentAssignment = useCallback(async (experimentId) => {
73
- const storageKey = `_signal_exp_${experimentId}`;
74
- const stored = localStorage.getItem(storageKey);
75
- if (stored) {
76
- try {
77
- const assignment = JSON.parse(stored);
78
- if (assignment.expires > Date.now()) {
79
- assignmentsRef.current.set(experimentId, assignment);
80
- return assignment;
81
- }
82
- } catch {
83
- }
84
- }
85
- try {
86
- const response = await sonorFetch(
87
- `${apiUrl}/api/public/signal/experiment/${experimentId}`,
88
- {
89
- headers: {
90
- "x-visitor-id": resolvedVisitorId
91
- }
92
- },
93
- { apiKey }
94
- );
95
- if (!response.ok) return null;
96
- const assignment = await response.json();
97
- localStorage.setItem(storageKey, JSON.stringify(assignment));
98
- assignmentsRef.current.set(experimentId, assignment);
99
- return assignment;
100
- } catch (err) {
101
- if (isDebug()) console.error("[Signal] Experiment assignment error:", err);
102
- return null;
103
- }
104
- }, [apiUrl, apiKey]);
105
- const getExperiment = useCallback((experimentId) => {
106
- return assignmentsRef.current.get(experimentId) || null;
107
- }, []);
108
- const fetchConfig = useCallback(async () => {
109
- if (!apiKey || !enabled) {
110
- setLoading(false);
111
- return;
112
- }
113
- try {
114
- const response = await sonorFetch(
115
- `${apiUrl}/api/public/signal/config`,
116
- {
117
- headers: {
118
- "x-visitor-id": resolvedVisitorId
119
- }
120
- },
121
- { apiKey }
122
- );
123
- if (!response.ok) {
124
- throw new Error(`Failed to fetch Signal config: ${response.statusText}`);
125
- }
126
- const data = await response.json();
127
- setConfig(data.config);
128
- setError(null);
129
- if (experiments && data.config?.experiments) {
130
- for (const exp of data.config.experiments) {
131
- if (exp.status === "running") {
132
- await loadExperimentAssignment(exp.id);
133
- }
134
- }
135
- }
136
- } catch (err) {
137
- if (isDebug()) console.error("[Signal] Config fetch error:", err);
138
- setError(err);
139
- } finally {
140
- setLoading(false);
141
- }
142
- }, [apiUrl, apiKey, enabled, experiments, resolvedVisitorId, loadExperimentAssignment]);
143
- const connectSSE = useCallback(() => {
144
- if (!apiKey || !enabled || !realtime) return;
145
- if (eventSourceRef.current) {
146
- eventSourceRef.current.close();
147
- eventSourceRef.current = null;
148
- }
149
- void (async () => {
150
- const credential = await getFreshCredential(apiKey);
151
- if (!credential || !isSiteToken(credential)) {
152
- if (isDebug()) {
153
- console.warn("[Signal] Realtime stream disabled: requires site-token mode (raw keys never go in URLs)");
154
- }
155
- return;
156
- }
157
- if (eventSourceRef.current) return;
158
- const url = `${apiUrl}/api/public/signal/stream?token=${encodeURIComponent(credential)}`;
159
- connectEventSource(url);
160
- })();
161
- function connectEventSource(url) {
162
- const eventSource = new EventSource(url);
163
- eventSource.addEventListener("config_update", (e) => {
164
- try {
165
- const { config: newConfig, version } = JSON.parse(e.data);
166
- setConfig((prev) => {
167
- if (prev?.version !== version) {
168
- if (isDebug()) console.log("[Signal] Config updated to version:", version);
169
- return newConfig;
170
- }
171
- return prev;
172
- });
173
- } catch (err) {
174
- if (isDebug()) console.error("[Signal] SSE parse error:", err);
175
- }
176
- });
177
- eventSource.addEventListener("experiment_update", (e) => {
178
- try {
179
- const { experiment_id, action } = JSON.parse(e.data);
180
- if (action === "started" || action === "updated") {
181
- loadExperimentAssignment(experiment_id);
182
- } else if (action === "stopped") {
183
- assignmentsRef.current.delete(experiment_id);
184
- }
185
- } catch (err) {
186
- if (isDebug()) console.error("[Signal] Experiment update error:", err);
187
- }
188
- });
189
- eventSource.onerror = () => {
190
- if (isDebug()) console.warn("[Signal] SSE connection error, reconnecting...");
191
- eventSource.close();
192
- if (eventSourceRef.current === eventSource) {
193
- eventSourceRef.current = null;
194
- }
195
- setTimeout(connectSSE, 5e3);
196
- };
197
- eventSourceRef.current = eventSource;
198
- }
199
- }, [apiUrl, apiKey, enabled, realtime, loadExperimentAssignment]);
200
- const flushEvents = useCallback(async () => {
201
- if (eventQueueRef.current.length === 0) return;
202
- const events = [...eventQueueRef.current];
203
- eventQueueRef.current = [];
204
- try {
205
- await sonorFetch(
206
- `${apiUrl}/api/public/signal/events`,
207
- {
208
- method: "POST",
209
- headers: { "Content-Type": "application/json" },
210
- body: JSON.stringify({
211
- visitor_id: resolvedVisitorId,
212
- session_id: resolvedSessionId,
213
- events
214
- })
215
- },
216
- { apiKey, retries: 0 }
217
- );
218
- } catch (err) {
219
- eventQueueRef.current = [...events, ...eventQueueRef.current];
220
- if (isDebug()) console.error("[Signal] Event flush error:", err);
221
- }
222
- }, [apiUrl, apiKey]);
223
- const trackEvent = useCallback((event) => {
224
- if (!enabled || !apiKey) return;
225
- const enrichedEvent = {
226
- ...event,
227
- page_url: window.location.href,
228
- page_path: window.location.pathname,
229
- referrer: document.referrer,
230
- device_type: getDeviceType(),
231
- browser: getBrowser(),
232
- os: getOS(),
233
- viewport_width: window.innerWidth,
234
- viewport_height: window.innerHeight,
235
- time_on_page: Date.now() - pageLoadTimeRef.current,
236
- scroll_depth: scrollDepthRef.current,
237
- click_count: clickCountRef.current,
238
- experiments: Array.from(assignmentsRef.current.values()).map((a) => ({
239
- experiment_id: a.experiment_id,
240
- variant_key: a.variant_key
241
- })),
242
- // Merge page metadata from Analytics if available
243
- page_metadata: pageMetadataRef?.current ?? void 0,
244
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
245
- };
246
- eventQueueRef.current.push(enrichedEvent);
247
- if (flushTimeoutRef.current) {
248
- clearTimeout(flushTimeoutRef.current);
249
- }
250
- flushTimeoutRef.current = setTimeout(flushEvents, 1e3);
251
- }, [enabled, apiKey, flushEvents]);
252
- const trackOutcome = useCallback(async (outcome) => {
253
- if (!enabled || !apiKey) return;
254
- try {
255
- await sonorFetch(
256
- `${apiUrl}/api/public/signal/outcome`,
257
- {
258
- method: "POST",
259
- headers: { "Content-Type": "application/json" },
260
- body: JSON.stringify({
261
- ...outcome,
262
- visitor_id: resolvedVisitorId,
263
- session_id: resolvedSessionId,
264
- experiments: Array.from(assignmentsRef.current.keys()),
265
- page_url: window.location.href,
266
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
267
- })
268
- },
269
- { apiKey, retries: 0 }
270
- );
271
- } catch (err) {
272
- if (isDebug()) console.error("[Signal] Outcome tracking error:", err);
273
- }
274
- }, [apiUrl, apiKey, enabled]);
275
- useEffect(() => {
276
- if (!behaviorTracking || typeof window === "undefined") return;
277
- const handleScroll = () => {
278
- const scrollTop = window.scrollY;
279
- const docHeight = document.documentElement.scrollHeight - window.innerHeight;
280
- const depth = docHeight > 0 ? Math.round(scrollTop / docHeight * 100) : 0;
281
- scrollDepthRef.current = Math.max(scrollDepthRef.current, depth);
282
- };
283
- const handleClick = () => {
284
- clickCountRef.current++;
285
- };
286
- window.addEventListener("scroll", handleScroll, { passive: true });
287
- window.addEventListener("click", handleClick);
288
- const stopLeaveListener = onPageLeave(flushEvents);
289
- return () => {
290
- window.removeEventListener("scroll", handleScroll);
291
- window.removeEventListener("click", handleClick);
292
- stopLeaveListener();
293
- };
294
- }, [behaviorTracking, flushEvents]);
295
- useEffect(() => {
296
- fetchConfig();
297
- }, [fetchConfig]);
298
- useEffect(() => {
299
- if (config && realtime) {
300
- connectSSE();
301
- }
302
- return () => {
303
- if (eventSourceRef.current) {
304
- eventSourceRef.current.close();
305
- }
306
- };
307
- }, [config, realtime, connectSSE]);
308
- useEffect(() => {
309
- onRegister({
310
- trackEvent,
311
- trackOutcome: (outcome) => {
312
- void trackOutcome(outcome);
313
- },
314
- getExperiment,
315
- refreshConfig: fetchConfig
316
- });
317
- return () => onRegister(null);
318
- }, [onRegister, trackEvent, trackOutcome, getExperiment, fetchConfig]);
319
- return null;
320
- }
321
-
322
- export { SignalCore };
323
- //# sourceMappingURL=SignalCore-YIPKKIUG.mjs.map
324
- //# sourceMappingURL=SignalCore-YIPKKIUG.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/signal/SignalCore.tsx"],"names":[],"mappings":"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","file":"SignalCore-YIPKKIUG.mjs","sourcesContent":["/**\n * @sonordev/site-kit/signal - SignalCore\n *\n * The heavy half of SignalBridge: config fetching, SSE streaming, experiment\n * assignment, event queue/flush, and behavioral tracking. Mounted by the\n * SignalBridge shell as a CHILDLESS lazy sibling — it never wraps page\n * content, so the signal machinery stays out of the server-render path and\n * off the critical hydration chunk. It reports state up to the shell via\n * `onState` and registers its imperative API via `onRegister`.\n */\n\n'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n// Single source of truth for visitor/session IDs (storage keys _sk_vid/_sk_sid)\n// — shared with Analytics and Engage. Do NOT re-fork ID logic into this module.\nimport { getOrCreateVisitorId, getOrCreateSessionId } from '../shared/identity'\n// Canonical client transport — the same wrapper Analytics/Forms/Engage route\n// through (see shared/sonorFetch header). It gives every request a per-attempt\n// AbortSignal timeout, so a hung API aborts cleanly instead of being left to log\n// net::ERR_TIMED_OUT — the console error that fails Lighthouse best-practices.\n// It also sets x-api-key from the `apiKey` option, so callers drop the header.\nimport { sonorFetch } from '../shared/sonorFetch'\nimport { getFreshCredential, isSiteToken } from '../shared/siteToken'\nimport { onPageLeave } from '../shared/page-leave'\nimport type {\n SignalConfig,\n SignalEvent,\n SignalOutcome,\n ExperimentAssignment,\n} from './types'\n\n// ============================================\n// Shell ↔ core contract\n// ============================================\n\nexport interface SignalCoreApi {\n trackEvent: (event: Partial<SignalEvent>) => void\n trackOutcome: (outcome: SignalOutcome) => void\n getExperiment: (experimentId: string) => ExperimentAssignment | null\n refreshConfig: () => Promise<void>\n}\n\nexport interface SignalCoreState {\n config: SignalConfig | null\n loading: boolean\n error: Error | null\n}\n\nexport interface SignalCoreProps {\n enabled: boolean\n realtime: boolean\n experiments: boolean\n behaviorTracking: boolean\n externalVisitorId?: string\n externalSessionId?: string\n pageMetadataRef?: React.RefObject<Record<string, unknown> | null>\n /** Called with the imperative API on mount, and with null on unmount. */\n onRegister: (api: SignalCoreApi | null) => void\n /** Called whenever config/loading/error change, so the shell can re-render consumers. */\n onState: (state: SignalCoreState) => void\n}\n\n// ============================================\n// Utility Functions\n// ============================================\n\nfunction getApiConfig() {\n const apiUrl = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_URL__ || 'https://api.sonor.io'\n : 'https://api.sonor.io'\n const apiKey = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_KEY__\n : undefined\n return { apiUrl, apiKey }\n}\n\n// A visitor's console must stay clean (Lighthouse \"errors logged to the console\"\n// best-practice) — Signal's diagnostics only surface when the site opts into\n// debug via SiteKitClientProviders' __SITE_KIT_DEBUG__ global, mirroring how\n// AnalyticsProvider gates every one of its logs behind its `debug` prop.\nfunction isDebug(): boolean {\n return typeof window !== 'undefined' && !!(window as any).__SITE_KIT_DEBUG__\n}\n\nfunction getDeviceType(): 'desktop' | 'mobile' | 'tablet' {\n if (typeof window === 'undefined') return 'desktop'\n const ua = navigator.userAgent\n if (/tablet|ipad|playbook|silk/i.test(ua)) return 'tablet'\n if (/mobile|iphone|ipod|android|blackberry|opera mini|iemobile/i.test(ua)) return 'mobile'\n return 'desktop'\n}\n\nfunction getBrowser(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Firefox')) return 'Firefox'\n if (ua.includes('Edg')) return 'Edge'\n if (ua.includes('Chrome')) return 'Chrome'\n if (ua.includes('Safari')) return 'Safari'\n return 'Other'\n}\n\nfunction getOS(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Windows')) return 'Windows'\n if (ua.includes('Mac')) return 'macOS'\n if (ua.includes('iPhone') || ua.includes('iPad')) return 'iOS'\n if (ua.includes('Android')) return 'Android'\n if (ua.includes('Linux')) return 'Linux'\n return 'Other'\n}\n\n// ============================================\n// SignalCore Component (childless)\n// ============================================\n\nexport function SignalCore({\n enabled,\n realtime,\n experiments,\n behaviorTracking,\n externalVisitorId,\n externalSessionId,\n pageMetadataRef,\n onRegister,\n onState,\n}: SignalCoreProps) {\n const [config, setConfig] = useState<SignalConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<Error | null>(null)\n\n // Refs for SSE and tracking\n const eventSourceRef = useRef<EventSource | null>(null)\n const eventQueueRef = useRef<Partial<SignalEvent>[]>([])\n const flushTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const assignmentsRef = useRef<Map<string, ExperimentAssignment>>(new Map())\n\n // Behavioral tracking state\n const pageLoadTimeRef = useRef<number>(Date.now())\n const scrollDepthRef = useRef<number>(0)\n const clickCountRef = useRef<number>(0)\n\n const { apiUrl, apiKey } = getApiConfig()\n\n // Use external IDs from shared identity, fall back to the shared generators\n const resolvedVisitorId = externalVisitorId || getOrCreateVisitorId()\n const resolvedSessionId = externalSessionId || getOrCreateSessionId()\n\n // Mirror state up to the shell so context consumers re-render\n useEffect(() => {\n onState({ config, loading, error })\n }, [config, loading, error, onState])\n\n // ============================================\n // Experiment Assignment\n // ============================================\n\n const loadExperimentAssignment = useCallback(async (experimentId: string): Promise<ExperimentAssignment | null> => {\n // Check localStorage first\n const storageKey = `_signal_exp_${experimentId}`\n const stored = localStorage.getItem(storageKey)\n\n if (stored) {\n try {\n const assignment = JSON.parse(stored) as ExperimentAssignment\n if (assignment.expires > Date.now()) {\n assignmentsRef.current.set(experimentId, assignment)\n return assignment\n }\n } catch {\n // Invalid stored data, continue to fetch\n }\n }\n\n // Fetch from API — idempotent read, so the transport's default retries apply.\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/experiment/${experimentId}`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) return null\n\n const assignment = await response.json() as ExperimentAssignment\n\n // Store assignment\n localStorage.setItem(storageKey, JSON.stringify(assignment))\n assignmentsRef.current.set(experimentId, assignment)\n\n return assignment\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment assignment error:', err)\n return null\n }\n }, [apiUrl, apiKey])\n\n const getExperiment = useCallback((experimentId: string): ExperimentAssignment | null => {\n return assignmentsRef.current.get(experimentId) || null\n }, [])\n\n // ============================================\n // Config Fetching\n // ============================================\n\n const fetchConfig = useCallback(async () => {\n if (!apiKey || !enabled) {\n setLoading(false)\n return\n }\n\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/config`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to fetch Signal config: ${response.statusText}`)\n }\n\n const data = await response.json()\n setConfig(data.config)\n setError(null)\n\n // Load experiment assignments\n if (experiments && data.config?.experiments) {\n for (const exp of data.config.experiments) {\n if (exp.status === 'running') {\n await loadExperimentAssignment(exp.id)\n }\n }\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Config fetch error:', err)\n setError(err as Error)\n } finally {\n setLoading(false)\n }\n }, [apiUrl, apiKey, enabled, experiments, resolvedVisitorId, loadExperimentAssignment])\n\n // ============================================\n // SSE Real-time Updates\n // ============================================\n\n const connectSSE = useCallback(() => {\n if (!apiKey || !enabled || !realtime) return\n\n // Close existing connection\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n eventSourceRef.current = null\n }\n\n // EventSource cannot send headers, so the credential rides in the URL —\n // which server/CDN access logs capture. Per the transport contract in\n // sonorFetch.ts, the raw API key NEVER goes in a URL: only the\n // short-lived minted site token may (bounded exposure, unforgeable HMAC).\n // Raw-key mode (2.x layouts, mint-failure fallback) skips the stream —\n // config still loads via POST, only live push is lost.\n void (async () => {\n const credential = await getFreshCredential(apiKey)\n if (!credential || !isSiteToken(credential)) {\n if (isDebug()) {\n console.warn('[Signal] Realtime stream disabled: requires site-token mode (raw keys never go in URLs)')\n }\n return\n }\n if (eventSourceRef.current) return\n\n const url = `${apiUrl}/api/public/signal/stream?token=${encodeURIComponent(credential)}`\n connectEventSource(url)\n })()\n\n function connectEventSource(url: string) {\n const eventSource = new EventSource(url)\n\n eventSource.addEventListener('config_update', (e) => {\n try {\n const { config: newConfig, version } = JSON.parse(e.data)\n setConfig(prev => {\n if (prev?.version !== version) {\n if (isDebug()) console.log('[Signal] Config updated to version:', version)\n return newConfig\n }\n return prev\n })\n } catch (err) {\n if (isDebug()) console.error('[Signal] SSE parse error:', err)\n }\n })\n\n eventSource.addEventListener('experiment_update', (e) => {\n try {\n const { experiment_id, action } = JSON.parse(e.data)\n if (action === 'started' || action === 'updated') {\n loadExperimentAssignment(experiment_id)\n } else if (action === 'stopped') {\n assignmentsRef.current.delete(experiment_id)\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment update error:', err)\n }\n })\n\n eventSource.onerror = () => {\n if (isDebug()) console.warn('[Signal] SSE connection error, reconnecting...')\n eventSource.close()\n if (eventSourceRef.current === eventSource) {\n eventSourceRef.current = null\n }\n // Reconnect after 5 seconds (re-mints the token if it expired)\n setTimeout(connectSSE, 5000)\n }\n\n eventSourceRef.current = eventSource\n }\n }, [apiUrl, apiKey, enabled, realtime, loadExperimentAssignment])\n\n // ============================================\n // Event Tracking\n // ============================================\n\n const flushEvents = useCallback(async () => {\n if (eventQueueRef.current.length === 0) return\n\n const events = [...eventQueueRef.current]\n eventQueueRef.current = []\n\n try {\n // retries: 0 — fire-and-forget tracking; a retried flush after a lost\n // response would double-count events. The transport still aborts a hung\n // request at its timeout (no net::ERR_TIMED_OUT).\n await sonorFetch(\n `${apiUrl}/api/public/signal/events`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n events,\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n // Re-queue failed events\n eventQueueRef.current = [...events, ...eventQueueRef.current]\n if (isDebug()) console.error('[Signal] Event flush error:', err)\n }\n }, [apiUrl, apiKey])\n\n const trackEvent = useCallback((event: Partial<SignalEvent>) => {\n if (!enabled || !apiKey) return\n\n // Enrich event with context\n const enrichedEvent: Partial<SignalEvent> = {\n ...event,\n page_url: window.location.href,\n page_path: window.location.pathname,\n referrer: document.referrer,\n device_type: getDeviceType(),\n browser: getBrowser(),\n os: getOS(),\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n time_on_page: Date.now() - pageLoadTimeRef.current,\n scroll_depth: scrollDepthRef.current,\n click_count: clickCountRef.current,\n experiments: Array.from(assignmentsRef.current.values()).map(a => ({\n experiment_id: a.experiment_id,\n variant_key: a.variant_key,\n })),\n // Merge page metadata from Analytics if available\n page_metadata: pageMetadataRef?.current ?? undefined,\n timestamp: new Date().toISOString(),\n }\n\n eventQueueRef.current.push(enrichedEvent)\n\n // Debounce flush\n if (flushTimeoutRef.current) {\n clearTimeout(flushTimeoutRef.current)\n }\n flushTimeoutRef.current = setTimeout(flushEvents, 1000)\n }, [enabled, apiKey, flushEvents])\n\n // ============================================\n // Outcome Tracking\n // ============================================\n\n const trackOutcome = useCallback(async (outcome: SignalOutcome) => {\n if (!enabled || !apiKey) return\n\n try {\n // retries: 0 — fire-and-forget conversion signal; never double-fire on a\n // lost response. Still aborts a hung request at the transport timeout.\n await sonorFetch(\n `${apiUrl}/api/public/signal/outcome`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n ...outcome,\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n experiments: Array.from(assignmentsRef.current.keys()),\n page_url: window.location.href,\n timestamp: new Date().toISOString(),\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n if (isDebug()) console.error('[Signal] Outcome tracking error:', err)\n }\n }, [apiUrl, apiKey, enabled])\n\n // ============================================\n // Behavioral Tracking\n // ============================================\n\n useEffect(() => {\n if (!behaviorTracking || typeof window === 'undefined') return\n\n // Track scroll depth\n const handleScroll = () => {\n const scrollTop = window.scrollY\n const docHeight = document.documentElement.scrollHeight - window.innerHeight\n const depth = docHeight > 0 ? Math.round((scrollTop / docHeight) * 100) : 0\n scrollDepthRef.current = Math.max(scrollDepthRef.current, depth)\n }\n\n // Track clicks\n const handleClick = () => {\n clickCountRef.current++\n }\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n window.addEventListener('click', handleClick)\n\n // Flush whenever the page is hidden or unloaded (shared/page-leave.ts).\n const stopLeaveListener = onPageLeave(flushEvents)\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('click', handleClick)\n stopLeaveListener()\n }\n }, [behaviorTracking, flushEvents])\n\n // ============================================\n // Initialization + shell registration\n // ============================================\n\n useEffect(() => {\n fetchConfig()\n }, [fetchConfig])\n\n useEffect(() => {\n if (config && realtime) {\n connectSSE()\n }\n\n return () => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n }\n }\n }, [config, realtime, connectSSE])\n\n // Hand the imperative API to the shell; buffered calls drain on register.\n useEffect(() => {\n onRegister({\n trackEvent,\n trackOutcome: (outcome: SignalOutcome) => { void trackOutcome(outcome) },\n getExperiment,\n refreshConfig: fetchConfig,\n })\n return () => onRegister(null)\n }, [onRegister, trackEvent, trackOutcome, getExperiment, fetchConfig])\n\n return null\n}\n"]}
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkU4CYO4NG_js = require('./chunk-U4CYO4NG.js');
4
- require('./chunk-JONWE26J.js');
5
- require('./chunk-5RNAUYWE.js');
6
- require('./chunk-C7J4XLBN.js');
7
- require('./chunk-U5NFIHLY.js');
8
- require('./chunk-CIB3RHNZ.js');
9
- require('./chunk-SNAQBZPT.js');
10
-
11
-
12
-
13
- Object.defineProperty(exports, "SitemapSync", {
14
- enumerable: true,
15
- get: function () { return chunkU4CYO4NG_js.SitemapSync; }
16
- });
17
- //# sourceMappingURL=SitemapSync-GN4OXIM2.js.map
18
- //# sourceMappingURL=SitemapSync-GN4OXIM2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-GN4OXIM2.js"}
@@ -1,9 +0,0 @@
1
- export { SitemapSync } from './chunk-M62L2N5A.mjs';
2
- import './chunk-C2CTLLIO.mjs';
3
- import './chunk-A6UYV475.mjs';
4
- import './chunk-5T3J24K4.mjs';
5
- import './chunk-YRKWJCML.mjs';
6
- import './chunk-K3PVUXKB.mjs';
7
- import './chunk-BEXTDHO4.mjs';
8
- //# sourceMappingURL=SitemapSync-NG763CGN.mjs.map
9
- //# sourceMappingURL=SitemapSync-NG763CGN.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-NG763CGN.mjs"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SitemapSync.d.ts","sourceRoot":"","sources":["../src/SitemapSync.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAM3F,UAAU,gBAAiB,SAAQ,oBAAoB;IACrD,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;CACnC;AA8LD,wBAAgB,WAAW,CAAC,EAC1B,UAA2B,EAC3B,YAAiB,EACjB,KAAa,EACb,IAAiB,EACjB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,YAAoB,EACpB,cAAsB,GACvB,EAAE,gBAAgB,QAqElB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin-auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAE9E,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAS3D,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,mDAAmD;IACnD,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQrD,CAAA;AAaD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc;oBAsEtB,WAAW,KAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;sBAiC/C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;iCAXhB,WAAW,KAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;4BAiDjD;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,OAAO,CAAC,MAAM,CAAC;8BAuBlE,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;4BA2D3C,WAAW,KAAG,YAAY;8BA9KxB,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM;gCAlChC,MAAM;;;;EAuO1C;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/admin-auth/session.ts","../../src/admin-auth/index.ts"],"names":["NextResponse"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Signed session cookie for Sonor SSO-gated site areas.\n *\n * Format: `<base64url(payload)>.<base64url(HMAC-SHA256(payloadB64))>`, payload\n * `{ email, contactId, iat, exp }` in Unix seconds. This is byte-compatible with\n * the hand-rolled Web Crypto sessions legacy-clay-classic and the CCG builder\n * shipped before this module existed, so a site that passes its old cookie name\n * and secret keeps every signed-in user signed in across the switch.\n *\n * Web Crypto only (never Node `crypto`): these helpers run in Edge middleware\n * and in Node route handlers alike.\n */\n\nexport interface SonorSession {\n email: string\n contactId: string\n /** Unix seconds */\n iat: number\n /** Unix seconds */\n exp: number\n}\n\nexport const MIN_SECRET_LENGTH = 32\n\nconst encoder = new TextEncoder()\nconst keyCache = new Map<string, Promise<CryptoKey>>()\n\nfunction hmacKey(secret: string): Promise<CryptoKey> {\n let key = keyCache.get(secret)\n if (!key) {\n key = crypto.subtle.importKey(\n 'raw',\n encoder.encode(secret),\n { name: 'HMAC', hash: 'SHA-256' },\n false,\n ['sign', 'verify'],\n )\n keyCache.set(secret, key)\n }\n return key\n}\n\nfunction bytesToB64url(bytes: Uint8Array): string {\n let bin = ''\n for (let i = 0; i < bytes.length; i++) bin += String.fromCharCode(bytes[i])\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n}\n\nfunction b64urlToBytes(s: string): Uint8Array<ArrayBuffer> | null {\n if (!/^[A-Za-z0-9_-]*$/.test(s)) return null\n try {\n const bin = atob(s.replace(/-/g, '+').replace(/_/g, '/') + '==='.slice((s.length + 3) % 4))\n const bytes = new Uint8Array(bin.length)\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)\n return bytes\n } catch {\n return null\n }\n}\n\nfunction assertSecret(secret: string | undefined): string {\n if (!secret || secret.length < MIN_SECRET_LENGTH) {\n throw new Error(\n `@sonordev/site-kit/admin-auth: the session secret must be at least ${MIN_SECRET_LENGTH} characters (try \\`openssl rand -hex 32\\`)`,\n )\n }\n return secret\n}\n\nexport async function signSession(\n identity: { email: string; contactId: string },\n secret: string,\n lifetimeSeconds: number,\n now: number = Math.floor(Date.now() / 1000),\n): Promise<string> {\n const payload: SonorSession = {\n email: identity.email,\n contactId: identity.contactId,\n iat: now,\n exp: now + lifetimeSeconds,\n }\n const payloadB64 = bytesToB64url(encoder.encode(JSON.stringify(payload)))\n const key = await hmacKey(assertSecret(secret))\n const sig = new Uint8Array(await crypto.subtle.sign('HMAC', key, encoder.encode(payloadB64)))\n return `${payloadB64}.${bytesToB64url(sig)}`\n}\n\n/**\n * Returns the session, or null for anything short of a valid, unexpired,\n * correctly signed token — including a missing or short secret, so a\n * misconfigured deploy sends people to the login page instead of 500-ing.\n */\nexport async function verifySessionToken(\n token: string | null | undefined,\n secret: string | undefined,\n now: number = Math.floor(Date.now() / 1000),\n): Promise<SonorSession | null> {\n if (!token || typeof token !== 'string') return null\n const dot = token.indexOf('.')\n if (dot < 1 || dot !== token.lastIndexOf('.')) return null\n const payloadB64 = token.slice(0, dot)\n const sig = b64urlToBytes(token.slice(dot + 1))\n if (!sig) return null\n\n let key: CryptoKey\n try {\n key = await hmacKey(assertSecret(secret))\n } catch (err) {\n console.error(String(err instanceof Error ? err.message : err))\n return null\n }\n\n // subtle.verify is the constant-time comparison.\n const ok = await crypto.subtle.verify('HMAC', key, sig, encoder.encode(payloadB64))\n if (!ok) return null\n\n const raw = b64urlToBytes(payloadB64)\n if (!raw) return null\n try {\n const p = JSON.parse(new TextDecoder().decode(raw)) as Partial<SonorSession>\n if (\n typeof p.email !== 'string' ||\n typeof p.contactId !== 'string' ||\n typeof p.iat !== 'number' ||\n typeof p.exp !== 'number' ||\n p.exp < now\n ) {\n return null\n }\n return { email: p.email, contactId: p.contactId, iat: p.iat, exp: p.exp }\n } catch {\n return null\n }\n}\n","/**\n * @sonordev/site-kit/admin-auth — \"Sign in with Sonor\" for a site's own admin area\n *\n * SINGLE SOURCE OF TRUTH for the Sonor SSO handshake on client sites. Before\n * this module, 4m-lawn-care (/bid, /route), legacy-clay-classic (/admin) and the\n * CCG builder (/studio) each carried a hand-copied version, and the copies had\n * already drifted (Node vs Web Crypto, 7 vs 30 day sessions, roles in one only).\n * Do not re-fork it into a site.\n *\n * The handshake:\n * 1. `/admin/login` links to `app.sonor.io/sso/grant?project_id=…&return_to=<callback>`.\n * 2. Sonor checks the signed-in user can access the project (owner, member,\n * managing agency, or platform admin) and redirects to the callback with a\n * short-lived token.\n * 3. The callback posts the token to `/api/public/auth/verify-sso-token` with\n * the project API key; Sonor rejects tokens issued for any other project.\n * 4. The callback sets a signed, httpOnly session cookie (30 days default).\n *\n * Wiring (four files):\n *\n * // lib/sonor-sso.ts\n * export const sso = createSonorSso({ paths: '/admin' })\n *\n * // middleware.ts (or proxy.ts)\n * export default createProxy({ before: sso.gate, securityHeaders: true })\n *\n * // app/api/auth/callback/route.ts\n * export const GET = sso.handleCallback\n *\n * // app/api/auth/logout/route.ts\n * export const GET = sso.handleLogout\n * export const POST = sso.handleLogout\n *\n * Then `await sso.getLoginUrl()` in the login page, and `await sso.getSession()`\n * in every page, server action and API route that exposes admin data. The\n * middleware gate never sees `/api/*` (the standard matcher excludes it), so\n * API routes MUST check `getSession()` themselves.\n *\n * Env: SONOR_API_KEY (already set on every site), SONOR_SESSION_SECRET (>= 32\n * chars; rotating it signs everyone out), NEXT_PUBLIC_SITE_URL.\n */\n\nimport { NextResponse, type NextRequest } from 'next/server'\nimport { signSession, verifySessionToken, type SonorSession } from './session'\n\nexport type { SonorSession } from './session'\nexport { signSession, verifySessionToken } from './session'\n\nconst DEFAULT_APP_URL = 'https://app.sonor.io'\nconst DEFAULT_API_URL = 'https://api.sonor.io'\nconst DEFAULT_COOKIE_NAME = '__Host-sonor-session'\nconst DEFAULT_SECRET_ENV = 'SONOR_SESSION_SECRET'\nconst DEFAULT_CALLBACK_PATH = '/api/auth/callback'\nconst THIRTY_DAYS = 30 * 24 * 60 * 60\n\nexport interface SonorSsoConfig {\n /**\n * The gated area(s). Every path equal to or under one of these needs a\n * session. The first entry is where a sign-in lands by default.\n */\n paths: string | string[]\n /** Default `${paths[0]}/login`. Always reachable without a session. */\n loginPath?: string\n /** Other gated paths reachable without a session. */\n publicPaths?: string[]\n /**\n * Gated API prefixes (e.g. `/api/studio`). Without a session they answer\n * 401 JSON instead of redirecting to the login page. Only useful when the\n * middleware matcher includes them; handlers must still check the session\n * themselves.\n */\n apiPaths?: string[]\n /** Where the callback route lives. Default `/api/auth/callback`. */\n callbackPath?: string\n /** Default `__Host-sonor-session`. Keep a site's old name to keep its users signed in. */\n cookieName?: string\n /** Default 30 days. */\n sessionLifetimeSeconds?: number\n /** Env var holding the signing secret. Default `SONOR_SESSION_SECRET`. */\n secretEnv?: string\n /**\n * Emails that get `isAdmin: true` on their session identity (comma string or\n * list, case-insensitive). Computed on every read from the verified cookie,\n * never stored in it. Everyone Sonor lets in still gets in; this only marks\n * who is an admin within the area.\n */\n adminEmails?: string | string[]\n /**\n * Outside production the gate lets everyone through as this identity, so\n * local dev works without a round trip to production Sonor. `false` makes\n * dev enforce the gate too. Default email: `SONOR_SSO_DEV_EMAIL`, else\n * `dev@localhost`.\n */\n devBypass?: false | { email?: string }\n /** Public origin for the callback URL. Default `NEXT_PUBLIC_SITE_URL`. */\n siteUrl?: string\n /** Default `NEXT_PUBLIC_SONOR_APP_URL`, else https://app.sonor.io. */\n appUrl?: string\n /** Default `SONOR_API_URL`, else https://api.sonor.io. */\n apiUrl?: string\n}\n\nexport interface SonorIdentity extends SonorSession {\n isAdmin: boolean\n /** True only for the non-production dev bypass. */\n isDevBypass: boolean\n}\n\nexport const SSO_ERROR_MESSAGES: Record<string, string> = {\n missing_token: 'The sign-in link was incomplete. Try again.',\n invalid_token: 'The sign-in link was invalid or expired. Try again.',\n invalid_or_expired: 'The sign-in link expired before it was used. Try again.',\n project_mismatch: 'That sign-in link was for a different site. Try again from the button below.',\n verify_failed: 'Sonor could not verify the sign-in link.',\n sonor_unreachable: 'Could not reach Sonor to verify sign-in. Check your connection and try again.',\n server_config: 'This site is missing its Sonor sign-in configuration.',\n}\n\nconst projectIdCache = new Map<string, Promise<string>>()\n\nfunction trimSlash(url: string): string {\n return url.replace(/\\/+$/, '')\n}\n\nfunction normalizePath(p: string): string {\n const withSlash = p.startsWith('/') ? p : `/${p}`\n return withSlash.length > 1 ? withSlash.replace(/\\/+$/, '') : withSlash\n}\n\nexport function createSonorSso(config: SonorSsoConfig) {\n const paths = (Array.isArray(config.paths) ? config.paths : [config.paths]).map(normalizePath)\n if (!paths.length || paths.some((p) => p === '/')) {\n throw new Error('@sonordev/site-kit/admin-auth: `paths` must name at least one area below the site root')\n }\n const home = paths[0]\n const loginPath = normalizePath(config.loginPath ?? `${home}/login`)\n const publicPaths = [loginPath, ...(config.publicPaths ?? []).map(normalizePath)]\n const apiPaths = (config.apiPaths ?? []).map(normalizePath)\n const callbackPath = normalizePath(config.callbackPath ?? DEFAULT_CALLBACK_PATH)\n const cookieName = config.cookieName ?? DEFAULT_COOKIE_NAME\n const lifetime = config.sessionLifetimeSeconds ?? THIRTY_DAYS\n const secretEnv = config.secretEnv ?? DEFAULT_SECRET_ENV\n\n const under = (pathname: string, base: string) => pathname === base || pathname.startsWith(`${base}/`)\n const isProtectedPath = (pathname: string) => paths.some((p) => under(pathname, p))\n const isPublicPath = (pathname: string) => publicPaths.some((p) => under(pathname, p))\n const isApiPath = (pathname: string) => apiPaths.some((p) => under(pathname, p))\n\n const secret = () => process.env[secretEnv]\n const apiUrl = () => trimSlash(config.apiUrl || process.env.SONOR_API_URL || DEFAULT_API_URL)\n const appUrl = () => trimSlash(config.appUrl || process.env.NEXT_PUBLIC_SONOR_APP_URL || DEFAULT_APP_URL)\n const isProduction = () => process.env.NODE_ENV === 'production'\n const devBypassEmail = () =>\n config.devBypass === false\n ? null\n : config.devBypass?.email || process.env.SONOR_SSO_DEV_EMAIL || 'dev@localhost'\n\n const adminSet = (): Set<string> => {\n const raw = config.adminEmails\n const list = Array.isArray(raw) ? raw : (raw ?? '').split(',')\n return new Set(list.map((e) => e.trim().toLowerCase()).filter(Boolean))\n }\n const toIdentity = (s: SonorSession, isDevBypass = false): SonorIdentity => ({\n ...s,\n isAdmin: adminSet().has(s.email.trim().toLowerCase()),\n isDevBypass,\n })\n const devIdentity = (): SonorIdentity | null => {\n const email = !isProduction() ? devBypassEmail() : null\n return email ? toIdentity({ email, contactId: `dev-${email}`, iat: 0, exp: 0 }, true) : null\n }\n\n /**\n * A safe post-sign-in destination: a same-origin path inside a gated area.\n * Anything else (absolute URLs, `//host`, backslashes, paths outside the\n * area) falls back to the area's home, so the callback can't be used as an\n * open redirect.\n */\n function sanitizeReturnTo(value: string | null | undefined): string {\n if (!value || typeof value !== 'string') return home\n if (!value.startsWith('/') || value.startsWith('//') || /[\\\\\u0000-\u001f]/.test(value)) return home\n const pathname = value.split(/[?#]/, 1)[0]\n return isProtectedPath(pathname) && !under(pathname, loginPath) ? value : home\n }\n\n function passThrough(request: NextRequest): NextResponse {\n // x-next-pathname on the REQUEST lets an admin layout know where it is.\n const headers = new Headers(request.headers)\n headers.set('x-next-pathname', request.nextUrl.pathname)\n const res = NextResponse.next({ request: { headers } })\n res.headers.set('X-Robots-Tag', 'noindex, nofollow')\n return res\n }\n\n /**\n * Middleware gate — pass as `createProxy({ before: sso.gate })`. Returns\n * undefined outside the gated area so the rest of the proxy (redirects, AI\n * discovery headers) still runs for public pages.\n */\n async function gate(request: NextRequest): Promise<NextResponse | undefined> {\n const { pathname, search } = request.nextUrl\n if (isApiPath(pathname)) {\n if (devIdentity() || (await getRequestSession(request))) return NextResponse.next()\n return NextResponse.json({ error: 'unauthorized' }, { status: 401, headers: { 'Cache-Control': 'no-store' } })\n }\n if (!isProtectedPath(pathname) && !isPublicPath(pathname)) return undefined\n if (isPublicPath(pathname) || devIdentity()) return passThrough(request)\n\n if (await getRequestSession(request)) return passThrough(request)\n\n const login = new URL(loginPath, request.url)\n if (pathname !== home || search) login.searchParams.set('return_to', pathname + search)\n const res = NextResponse.redirect(login)\n res.headers.set('X-Robots-Tag', 'noindex, nofollow')\n return res\n }\n\n /**\n * The identity carried by a request's cookie, for code that has the request\n * in hand (middleware, route handlers). Includes the dev bypass.\n */\n async function getRequestSession(request: NextRequest): Promise<SonorIdentity | null> {\n const dev = devIdentity()\n if (dev) return dev\n const session = await verifySessionToken(request.cookies.get(cookieName)?.value, secret())\n return session ? toIdentity(session) : null\n }\n\n /**\n * The signed-in identity for this request, or null. Use it in every server\n * component, server action and API route that exposes gated data.\n */\n async function getSession(): Promise<SonorIdentity | null> {\n const dev = devIdentity()\n if (dev) return dev\n const { cookies } = await import('next/headers')\n const jar = await cookies()\n const session = await verifySessionToken(jar.get(cookieName)?.value, secret())\n return session ? toIdentity(session) : null\n }\n\n async function resolveProjectId(): Promise<string> {\n const apiKey = process.env.SONOR_API_KEY\n if (!apiKey) throw new Error('SONOR_API_KEY is not set')\n const cacheKey = `${apiUrl()}|${apiKey}`\n let pending = projectIdCache.get(cacheKey)\n if (!pending) {\n pending = (async () => {\n const res = await fetch(`${apiUrl()}/api/public/auth/verify`, {\n headers: { 'x-api-key': apiKey },\n cache: 'no-store',\n signal: AbortSignal.timeout(10_000),\n })\n if (!res.ok) throw new Error(`Sonor verify returned ${res.status}`)\n const data = (await res.json()) as { project_id?: string }\n if (!data.project_id) throw new Error('Sonor verify returned no project_id')\n return data.project_id\n })()\n projectIdCache.set(cacheKey, pending)\n pending.catch(() => projectIdCache.delete(cacheKey))\n }\n return pending\n }\n\n /**\n * The \"Sign in with Sonor\" URL for the login page. Pass the page's\n * `return_to` search param through; it's sanitized here. Throws when the\n * site can't identify its project (no API key, Sonor unreachable) — catch\n * it and show the error rather than a dead button.\n */\n async function getLoginUrl(options: { returnTo?: string | null; siteUrl?: string } = {}): Promise<string> {\n const site = options.siteUrl || config.siteUrl || process.env.NEXT_PUBLIC_SITE_URL\n if (!site) throw new Error('NEXT_PUBLIC_SITE_URL (or siteUrl) is required to build the Sonor sign-in link')\n const callback = new URL(callbackPath, site)\n if (options.returnTo) {\n const safe = sanitizeReturnTo(options.returnTo)\n if (safe !== home) callback.searchParams.set('return_to', safe)\n }\n const grant = new URL('/sso/grant', `${appUrl()}/`)\n grant.searchParams.set('project_id', await resolveProjectId())\n grant.searchParams.set('return_to', callback.toString())\n return grant.toString()\n }\n\n function loginRedirect(request: NextRequest, error?: string): NextResponse {\n const url = new URL(loginPath, request.url)\n if (error) url.searchParams.set('error', error)\n const res = NextResponse.redirect(url)\n res.headers.set('Cache-Control', 'no-store')\n return res\n }\n\n /** `export const GET = sso.handleCallback` in the callback route. */\n async function handleCallback(request: NextRequest): Promise<NextResponse> {\n const token = request.nextUrl.searchParams.get('token')\n if (!token) return loginRedirect(request, 'missing_token')\n\n const apiKey = process.env.SONOR_API_KEY\n if (!apiKey) {\n console.error('[sonor-sso] SONOR_API_KEY is not set; cannot verify the sign-in token')\n return loginRedirect(request, 'server_config')\n }\n\n let res: Response\n try {\n res = await fetch(`${apiUrl()}/api/public/auth/verify-sso-token`, {\n method: 'POST',\n headers: { 'content-type': 'application/json', 'x-api-key': apiKey },\n body: JSON.stringify({ token }),\n cache: 'no-store',\n signal: AbortSignal.timeout(10_000),\n })\n } catch (err) {\n console.error('[sonor-sso] verify request failed:', err)\n return loginRedirect(request, 'sonor_unreachable')\n }\n if (!res.ok) {\n console.error(`[sonor-sso] verify returned ${res.status}`)\n return loginRedirect(request, 'verify_failed')\n }\n\n const data = (await res.json().catch(() => null)) as\n | { valid?: boolean; email?: string; contactId?: string; reason?: string }\n | null\n if (!data?.valid || !data.email || !data.contactId) {\n return loginRedirect(request, data?.reason || 'invalid_token')\n }\n\n let sessionToken: string\n try {\n sessionToken = await signSession({ email: data.email, contactId: data.contactId }, secret() ?? '', lifetime)\n } catch (err) {\n console.error(`[sonor-sso] could not sign the session (check ${secretEnv}):`, err)\n return loginRedirect(request, 'server_config')\n }\n\n const destination = sanitizeReturnTo(request.nextUrl.searchParams.get('return_to'))\n const out = NextResponse.redirect(new URL(destination, request.url))\n out.cookies.set(cookieName, sessionToken, {\n httpOnly: true,\n secure: true,\n sameSite: 'lax',\n path: '/',\n maxAge: lifetime,\n })\n // The token rode in on the URL: keep it out of Referer headers and caches.\n out.headers.set('Referrer-Policy', 'no-referrer')\n out.headers.set('Cache-Control', 'no-store')\n return out\n }\n\n /** `export const GET = sso.handleLogout` (and POST) in the logout route. */\n function handleLogout(request: NextRequest): NextResponse {\n const url = new URL(loginPath, request.url)\n url.searchParams.set('signed_out', '1')\n // 303 so a POST from a sign-out form lands as a GET on the login page.\n const res = NextResponse.redirect(url, 303)\n res.cookies.set(cookieName, '', { httpOnly: true, secure: true, sameSite: 'lax', path: '/', maxAge: 0 })\n res.headers.set('Cache-Control', 'no-store')\n return res\n }\n\n return {\n gate,\n getSession,\n getRequestSession,\n getLoginUrl,\n handleCallback,\n handleLogout,\n sanitizeReturnTo,\n isProtectedPath,\n cookieName,\n loginPath,\n homePath: home,\n }\n}\n\nexport type SonorSso = ReturnType<typeof createSonorSso>\n"]}
Binary file
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/admin-auth/session.ts","../../src/admin-auth/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Signed session cookie for Sonor SSO-gated site areas.\n *\n * Format: `<base64url(payload)>.<base64url(HMAC-SHA256(payloadB64))>`, payload\n * `{ email, contactId, iat, exp }` in Unix seconds. This is byte-compatible with\n * the hand-rolled Web Crypto sessions legacy-clay-classic and the CCG builder\n * shipped before this module existed, so a site that passes its old cookie name\n * and secret keeps every signed-in user signed in across the switch.\n *\n * Web Crypto only (never Node `crypto`): these helpers run in Edge middleware\n * and in Node route handlers alike.\n */\n\nexport interface SonorSession {\n email: string\n contactId: string\n /** Unix seconds */\n iat: number\n /** Unix seconds */\n exp: number\n}\n\nexport const MIN_SECRET_LENGTH = 32\n\nconst encoder = new TextEncoder()\nconst keyCache = new Map<string, Promise<CryptoKey>>()\n\nfunction hmacKey(secret: string): Promise<CryptoKey> {\n let key = keyCache.get(secret)\n if (!key) {\n key = crypto.subtle.importKey(\n 'raw',\n encoder.encode(secret),\n { name: 'HMAC', hash: 'SHA-256' },\n false,\n ['sign', 'verify'],\n )\n keyCache.set(secret, key)\n }\n return key\n}\n\nfunction bytesToB64url(bytes: Uint8Array): string {\n let bin = ''\n for (let i = 0; i < bytes.length; i++) bin += String.fromCharCode(bytes[i])\n return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n}\n\nfunction b64urlToBytes(s: string): Uint8Array<ArrayBuffer> | null {\n if (!/^[A-Za-z0-9_-]*$/.test(s)) return null\n try {\n const bin = atob(s.replace(/-/g, '+').replace(/_/g, '/') + '==='.slice((s.length + 3) % 4))\n const bytes = new Uint8Array(bin.length)\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)\n return bytes\n } catch {\n return null\n }\n}\n\nfunction assertSecret(secret: string | undefined): string {\n if (!secret || secret.length < MIN_SECRET_LENGTH) {\n throw new Error(\n `@sonordev/site-kit/admin-auth: the session secret must be at least ${MIN_SECRET_LENGTH} characters (try \\`openssl rand -hex 32\\`)`,\n )\n }\n return secret\n}\n\nexport async function signSession(\n identity: { email: string; contactId: string },\n secret: string,\n lifetimeSeconds: number,\n now: number = Math.floor(Date.now() / 1000),\n): Promise<string> {\n const payload: SonorSession = {\n email: identity.email,\n contactId: identity.contactId,\n iat: now,\n exp: now + lifetimeSeconds,\n }\n const payloadB64 = bytesToB64url(encoder.encode(JSON.stringify(payload)))\n const key = await hmacKey(assertSecret(secret))\n const sig = new Uint8Array(await crypto.subtle.sign('HMAC', key, encoder.encode(payloadB64)))\n return `${payloadB64}.${bytesToB64url(sig)}`\n}\n\n/**\n * Returns the session, or null for anything short of a valid, unexpired,\n * correctly signed token — including a missing or short secret, so a\n * misconfigured deploy sends people to the login page instead of 500-ing.\n */\nexport async function verifySessionToken(\n token: string | null | undefined,\n secret: string | undefined,\n now: number = Math.floor(Date.now() / 1000),\n): Promise<SonorSession | null> {\n if (!token || typeof token !== 'string') return null\n const dot = token.indexOf('.')\n if (dot < 1 || dot !== token.lastIndexOf('.')) return null\n const payloadB64 = token.slice(0, dot)\n const sig = b64urlToBytes(token.slice(dot + 1))\n if (!sig) return null\n\n let key: CryptoKey\n try {\n key = await hmacKey(assertSecret(secret))\n } catch (err) {\n console.error(String(err instanceof Error ? err.message : err))\n return null\n }\n\n // subtle.verify is the constant-time comparison.\n const ok = await crypto.subtle.verify('HMAC', key, sig, encoder.encode(payloadB64))\n if (!ok) return null\n\n const raw = b64urlToBytes(payloadB64)\n if (!raw) return null\n try {\n const p = JSON.parse(new TextDecoder().decode(raw)) as Partial<SonorSession>\n if (\n typeof p.email !== 'string' ||\n typeof p.contactId !== 'string' ||\n typeof p.iat !== 'number' ||\n typeof p.exp !== 'number' ||\n p.exp < now\n ) {\n return null\n }\n return { email: p.email, contactId: p.contactId, iat: p.iat, exp: p.exp }\n } catch {\n return null\n }\n}\n","/**\n * @sonordev/site-kit/admin-auth — \"Sign in with Sonor\" for a site's own admin area\n *\n * SINGLE SOURCE OF TRUTH for the Sonor SSO handshake on client sites. Before\n * this module, 4m-lawn-care (/bid, /route), legacy-clay-classic (/admin) and the\n * CCG builder (/studio) each carried a hand-copied version, and the copies had\n * already drifted (Node vs Web Crypto, 7 vs 30 day sessions, roles in one only).\n * Do not re-fork it into a site.\n *\n * The handshake:\n * 1. `/admin/login` links to `app.sonor.io/sso/grant?project_id=…&return_to=<callback>`.\n * 2. Sonor checks the signed-in user can access the project (owner, member,\n * managing agency, or platform admin) and redirects to the callback with a\n * short-lived token.\n * 3. The callback posts the token to `/api/public/auth/verify-sso-token` with\n * the project API key; Sonor rejects tokens issued for any other project.\n * 4. The callback sets a signed, httpOnly session cookie (30 days default).\n *\n * Wiring (four files):\n *\n * // lib/sonor-sso.ts\n * export const sso = createSonorSso({ paths: '/admin' })\n *\n * // middleware.ts (or proxy.ts)\n * export default createProxy({ before: sso.gate, securityHeaders: true })\n *\n * // app/api/auth/callback/route.ts\n * export const GET = sso.handleCallback\n *\n * // app/api/auth/logout/route.ts\n * export const GET = sso.handleLogout\n * export const POST = sso.handleLogout\n *\n * Then `await sso.getLoginUrl()` in the login page, and `await sso.getSession()`\n * in every page, server action and API route that exposes admin data. The\n * middleware gate never sees `/api/*` (the standard matcher excludes it), so\n * API routes MUST check `getSession()` themselves.\n *\n * Env: SONOR_API_KEY (already set on every site), SONOR_SESSION_SECRET (>= 32\n * chars; rotating it signs everyone out), NEXT_PUBLIC_SITE_URL.\n */\n\nimport { NextResponse, type NextRequest } from 'next/server'\nimport { signSession, verifySessionToken, type SonorSession } from './session'\n\nexport type { SonorSession } from './session'\nexport { signSession, verifySessionToken } from './session'\n\nconst DEFAULT_APP_URL = 'https://app.sonor.io'\nconst DEFAULT_API_URL = 'https://api.sonor.io'\nconst DEFAULT_COOKIE_NAME = '__Host-sonor-session'\nconst DEFAULT_SECRET_ENV = 'SONOR_SESSION_SECRET'\nconst DEFAULT_CALLBACK_PATH = '/api/auth/callback'\nconst THIRTY_DAYS = 30 * 24 * 60 * 60\n\nexport interface SonorSsoConfig {\n /**\n * The gated area(s). Every path equal to or under one of these needs a\n * session. The first entry is where a sign-in lands by default.\n */\n paths: string | string[]\n /** Default `${paths[0]}/login`. Always reachable without a session. */\n loginPath?: string\n /** Other gated paths reachable without a session. */\n publicPaths?: string[]\n /**\n * Gated API prefixes (e.g. `/api/studio`). Without a session they answer\n * 401 JSON instead of redirecting to the login page. Only useful when the\n * middleware matcher includes them; handlers must still check the session\n * themselves.\n */\n apiPaths?: string[]\n /** Where the callback route lives. Default `/api/auth/callback`. */\n callbackPath?: string\n /** Default `__Host-sonor-session`. Keep a site's old name to keep its users signed in. */\n cookieName?: string\n /** Default 30 days. */\n sessionLifetimeSeconds?: number\n /** Env var holding the signing secret. Default `SONOR_SESSION_SECRET`. */\n secretEnv?: string\n /**\n * Emails that get `isAdmin: true` on their session identity (comma string or\n * list, case-insensitive). Computed on every read from the verified cookie,\n * never stored in it. Everyone Sonor lets in still gets in; this only marks\n * who is an admin within the area.\n */\n adminEmails?: string | string[]\n /**\n * Outside production the gate lets everyone through as this identity, so\n * local dev works without a round trip to production Sonor. `false` makes\n * dev enforce the gate too. Default email: `SONOR_SSO_DEV_EMAIL`, else\n * `dev@localhost`.\n */\n devBypass?: false | { email?: string }\n /** Public origin for the callback URL. Default `NEXT_PUBLIC_SITE_URL`. */\n siteUrl?: string\n /** Default `NEXT_PUBLIC_SONOR_APP_URL`, else https://app.sonor.io. */\n appUrl?: string\n /** Default `SONOR_API_URL`, else https://api.sonor.io. */\n apiUrl?: string\n}\n\nexport interface SonorIdentity extends SonorSession {\n isAdmin: boolean\n /** True only for the non-production dev bypass. */\n isDevBypass: boolean\n}\n\nexport const SSO_ERROR_MESSAGES: Record<string, string> = {\n missing_token: 'The sign-in link was incomplete. Try again.',\n invalid_token: 'The sign-in link was invalid or expired. Try again.',\n invalid_or_expired: 'The sign-in link expired before it was used. Try again.',\n project_mismatch: 'That sign-in link was for a different site. Try again from the button below.',\n verify_failed: 'Sonor could not verify the sign-in link.',\n sonor_unreachable: 'Could not reach Sonor to verify sign-in. Check your connection and try again.',\n server_config: 'This site is missing its Sonor sign-in configuration.',\n}\n\nconst projectIdCache = new Map<string, Promise<string>>()\n\nfunction trimSlash(url: string): string {\n return url.replace(/\\/+$/, '')\n}\n\nfunction normalizePath(p: string): string {\n const withSlash = p.startsWith('/') ? p : `/${p}`\n return withSlash.length > 1 ? withSlash.replace(/\\/+$/, '') : withSlash\n}\n\nexport function createSonorSso(config: SonorSsoConfig) {\n const paths = (Array.isArray(config.paths) ? config.paths : [config.paths]).map(normalizePath)\n if (!paths.length || paths.some((p) => p === '/')) {\n throw new Error('@sonordev/site-kit/admin-auth: `paths` must name at least one area below the site root')\n }\n const home = paths[0]\n const loginPath = normalizePath(config.loginPath ?? `${home}/login`)\n const publicPaths = [loginPath, ...(config.publicPaths ?? []).map(normalizePath)]\n const apiPaths = (config.apiPaths ?? []).map(normalizePath)\n const callbackPath = normalizePath(config.callbackPath ?? DEFAULT_CALLBACK_PATH)\n const cookieName = config.cookieName ?? DEFAULT_COOKIE_NAME\n const lifetime = config.sessionLifetimeSeconds ?? THIRTY_DAYS\n const secretEnv = config.secretEnv ?? DEFAULT_SECRET_ENV\n\n const under = (pathname: string, base: string) => pathname === base || pathname.startsWith(`${base}/`)\n const isProtectedPath = (pathname: string) => paths.some((p) => under(pathname, p))\n const isPublicPath = (pathname: string) => publicPaths.some((p) => under(pathname, p))\n const isApiPath = (pathname: string) => apiPaths.some((p) => under(pathname, p))\n\n const secret = () => process.env[secretEnv]\n const apiUrl = () => trimSlash(config.apiUrl || process.env.SONOR_API_URL || DEFAULT_API_URL)\n const appUrl = () => trimSlash(config.appUrl || process.env.NEXT_PUBLIC_SONOR_APP_URL || DEFAULT_APP_URL)\n const isProduction = () => process.env.NODE_ENV === 'production'\n const devBypassEmail = () =>\n config.devBypass === false\n ? null\n : config.devBypass?.email || process.env.SONOR_SSO_DEV_EMAIL || 'dev@localhost'\n\n const adminSet = (): Set<string> => {\n const raw = config.adminEmails\n const list = Array.isArray(raw) ? raw : (raw ?? '').split(',')\n return new Set(list.map((e) => e.trim().toLowerCase()).filter(Boolean))\n }\n const toIdentity = (s: SonorSession, isDevBypass = false): SonorIdentity => ({\n ...s,\n isAdmin: adminSet().has(s.email.trim().toLowerCase()),\n isDevBypass,\n })\n const devIdentity = (): SonorIdentity | null => {\n const email = !isProduction() ? devBypassEmail() : null\n return email ? toIdentity({ email, contactId: `dev-${email}`, iat: 0, exp: 0 }, true) : null\n }\n\n /**\n * A safe post-sign-in destination: a same-origin path inside a gated area.\n * Anything else (absolute URLs, `//host`, backslashes, paths outside the\n * area) falls back to the area's home, so the callback can't be used as an\n * open redirect.\n */\n function sanitizeReturnTo(value: string | null | undefined): string {\n if (!value || typeof value !== 'string') return home\n if (!value.startsWith('/') || value.startsWith('//') || /[\\\\\u0000-\u001f]/.test(value)) return home\n const pathname = value.split(/[?#]/, 1)[0]\n return isProtectedPath(pathname) && !under(pathname, loginPath) ? value : home\n }\n\n function passThrough(request: NextRequest): NextResponse {\n // x-next-pathname on the REQUEST lets an admin layout know where it is.\n const headers = new Headers(request.headers)\n headers.set('x-next-pathname', request.nextUrl.pathname)\n const res = NextResponse.next({ request: { headers } })\n res.headers.set('X-Robots-Tag', 'noindex, nofollow')\n return res\n }\n\n /**\n * Middleware gate — pass as `createProxy({ before: sso.gate })`. Returns\n * undefined outside the gated area so the rest of the proxy (redirects, AI\n * discovery headers) still runs for public pages.\n */\n async function gate(request: NextRequest): Promise<NextResponse | undefined> {\n const { pathname, search } = request.nextUrl\n if (isApiPath(pathname)) {\n if (devIdentity() || (await getRequestSession(request))) return NextResponse.next()\n return NextResponse.json({ error: 'unauthorized' }, { status: 401, headers: { 'Cache-Control': 'no-store' } })\n }\n if (!isProtectedPath(pathname) && !isPublicPath(pathname)) return undefined\n if (isPublicPath(pathname) || devIdentity()) return passThrough(request)\n\n if (await getRequestSession(request)) return passThrough(request)\n\n const login = new URL(loginPath, request.url)\n if (pathname !== home || search) login.searchParams.set('return_to', pathname + search)\n const res = NextResponse.redirect(login)\n res.headers.set('X-Robots-Tag', 'noindex, nofollow')\n return res\n }\n\n /**\n * The identity carried by a request's cookie, for code that has the request\n * in hand (middleware, route handlers). Includes the dev bypass.\n */\n async function getRequestSession(request: NextRequest): Promise<SonorIdentity | null> {\n const dev = devIdentity()\n if (dev) return dev\n const session = await verifySessionToken(request.cookies.get(cookieName)?.value, secret())\n return session ? toIdentity(session) : null\n }\n\n /**\n * The signed-in identity for this request, or null. Use it in every server\n * component, server action and API route that exposes gated data.\n */\n async function getSession(): Promise<SonorIdentity | null> {\n const dev = devIdentity()\n if (dev) return dev\n const { cookies } = await import('next/headers')\n const jar = await cookies()\n const session = await verifySessionToken(jar.get(cookieName)?.value, secret())\n return session ? toIdentity(session) : null\n }\n\n async function resolveProjectId(): Promise<string> {\n const apiKey = process.env.SONOR_API_KEY\n if (!apiKey) throw new Error('SONOR_API_KEY is not set')\n const cacheKey = `${apiUrl()}|${apiKey}`\n let pending = projectIdCache.get(cacheKey)\n if (!pending) {\n pending = (async () => {\n const res = await fetch(`${apiUrl()}/api/public/auth/verify`, {\n headers: { 'x-api-key': apiKey },\n cache: 'no-store',\n signal: AbortSignal.timeout(10_000),\n })\n if (!res.ok) throw new Error(`Sonor verify returned ${res.status}`)\n const data = (await res.json()) as { project_id?: string }\n if (!data.project_id) throw new Error('Sonor verify returned no project_id')\n return data.project_id\n })()\n projectIdCache.set(cacheKey, pending)\n pending.catch(() => projectIdCache.delete(cacheKey))\n }\n return pending\n }\n\n /**\n * The \"Sign in with Sonor\" URL for the login page. Pass the page's\n * `return_to` search param through; it's sanitized here. Throws when the\n * site can't identify its project (no API key, Sonor unreachable) — catch\n * it and show the error rather than a dead button.\n */\n async function getLoginUrl(options: { returnTo?: string | null; siteUrl?: string } = {}): Promise<string> {\n const site = options.siteUrl || config.siteUrl || process.env.NEXT_PUBLIC_SITE_URL\n if (!site) throw new Error('NEXT_PUBLIC_SITE_URL (or siteUrl) is required to build the Sonor sign-in link')\n const callback = new URL(callbackPath, site)\n if (options.returnTo) {\n const safe = sanitizeReturnTo(options.returnTo)\n if (safe !== home) callback.searchParams.set('return_to', safe)\n }\n const grant = new URL('/sso/grant', `${appUrl()}/`)\n grant.searchParams.set('project_id', await resolveProjectId())\n grant.searchParams.set('return_to', callback.toString())\n return grant.toString()\n }\n\n function loginRedirect(request: NextRequest, error?: string): NextResponse {\n const url = new URL(loginPath, request.url)\n if (error) url.searchParams.set('error', error)\n const res = NextResponse.redirect(url)\n res.headers.set('Cache-Control', 'no-store')\n return res\n }\n\n /** `export const GET = sso.handleCallback` in the callback route. */\n async function handleCallback(request: NextRequest): Promise<NextResponse> {\n const token = request.nextUrl.searchParams.get('token')\n if (!token) return loginRedirect(request, 'missing_token')\n\n const apiKey = process.env.SONOR_API_KEY\n if (!apiKey) {\n console.error('[sonor-sso] SONOR_API_KEY is not set; cannot verify the sign-in token')\n return loginRedirect(request, 'server_config')\n }\n\n let res: Response\n try {\n res = await fetch(`${apiUrl()}/api/public/auth/verify-sso-token`, {\n method: 'POST',\n headers: { 'content-type': 'application/json', 'x-api-key': apiKey },\n body: JSON.stringify({ token }),\n cache: 'no-store',\n signal: AbortSignal.timeout(10_000),\n })\n } catch (err) {\n console.error('[sonor-sso] verify request failed:', err)\n return loginRedirect(request, 'sonor_unreachable')\n }\n if (!res.ok) {\n console.error(`[sonor-sso] verify returned ${res.status}`)\n return loginRedirect(request, 'verify_failed')\n }\n\n const data = (await res.json().catch(() => null)) as\n | { valid?: boolean; email?: string; contactId?: string; reason?: string }\n | null\n if (!data?.valid || !data.email || !data.contactId) {\n return loginRedirect(request, data?.reason || 'invalid_token')\n }\n\n let sessionToken: string\n try {\n sessionToken = await signSession({ email: data.email, contactId: data.contactId }, secret() ?? '', lifetime)\n } catch (err) {\n console.error(`[sonor-sso] could not sign the session (check ${secretEnv}):`, err)\n return loginRedirect(request, 'server_config')\n }\n\n const destination = sanitizeReturnTo(request.nextUrl.searchParams.get('return_to'))\n const out = NextResponse.redirect(new URL(destination, request.url))\n out.cookies.set(cookieName, sessionToken, {\n httpOnly: true,\n secure: true,\n sameSite: 'lax',\n path: '/',\n maxAge: lifetime,\n })\n // The token rode in on the URL: keep it out of Referer headers and caches.\n out.headers.set('Referrer-Policy', 'no-referrer')\n out.headers.set('Cache-Control', 'no-store')\n return out\n }\n\n /** `export const GET = sso.handleLogout` (and POST) in the logout route. */\n function handleLogout(request: NextRequest): NextResponse {\n const url = new URL(loginPath, request.url)\n url.searchParams.set('signed_out', '1')\n // 303 so a POST from a sign-out form lands as a GET on the login page.\n const res = NextResponse.redirect(url, 303)\n res.cookies.set(cookieName, '', { httpOnly: true, secure: true, sameSite: 'lax', path: '/', maxAge: 0 })\n res.headers.set('Cache-Control', 'no-store')\n return res\n }\n\n return {\n gate,\n getSession,\n getRequestSession,\n getLoginUrl,\n handleCallback,\n handleLogout,\n sanitizeReturnTo,\n isProtectedPath,\n cookieName,\n loginPath,\n homePath: home,\n }\n}\n\nexport type SonorSso = ReturnType<typeof createSonorSso>\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/admin-auth/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAA;AA+CnC,wBAAsB,WAAW,CAC/B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,GAAG,GAAE,MAAsC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,GAAE,MAAsC,GAC1C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAqC9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AffiliatesWidget.d.ts","sourceRoot":"","sources":["../../src/affiliates/AffiliatesWidget.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,SAAS,CAAA;AAMlE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;IAChE,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,SAAc,EACd,UAAU,EACV,UAAkB,GACnB,EAAE,kBAAkB,qBA4DpB;AAMD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,mCAAmC;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,6BAA6B;IAC7B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;IACrE,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAkB,EAClB,eAAe,EACf,KAAK,GACN,EAAE,qBAAqB,oRA8BvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/affiliates/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAa,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAoDrF;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/affiliates/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACpE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/affiliates/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,MAAM,EAAE,cAAc,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB"}