@sonordev/site-kit 6.3.6 → 6.5.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 (291) hide show
  1. package/agent-manifest.json +8 -2
  2. package/dist/AnalyticsProvider-44PDLORZ.js +34 -0
  3. package/dist/{AnalyticsProvider-L3GWK5PO.js.map → AnalyticsProvider-44PDLORZ.js.map} +1 -1
  4. package/dist/AnalyticsProvider-F6KHEAOX.mjs +13 -0
  5. package/dist/{AnalyticsProvider-XDVJTAPN.mjs.map → AnalyticsProvider-F6KHEAOX.mjs.map} +1 -1
  6. package/dist/{ArticleViewTracker-YMGW6ZXB.js → ArticleViewTracker-MGNVIHZ4.js} +6 -6
  7. package/dist/{ArticleViewTracker-YMGW6ZXB.js.map → ArticleViewTracker-MGNVIHZ4.js.map} +1 -1
  8. package/dist/{ArticleViewTracker-7AJJTGFY.mjs → ArticleViewTracker-NI4UNSY7.mjs} +5 -5
  9. package/dist/{ArticleViewTracker-7AJJTGFY.mjs.map → ArticleViewTracker-NI4UNSY7.mjs.map} +1 -1
  10. package/dist/{ChatWidget-MR64ZLOG.mjs → ChatWidget-XSALHDDW.mjs} +7 -7
  11. package/dist/{ChatWidget-MR64ZLOG.mjs.map → ChatWidget-XSALHDDW.mjs.map} +1 -1
  12. package/dist/{ChatWidget-IAYEXLNX.js → ChatWidget-YBXJRR2Z.js} +10 -10
  13. package/dist/{ChatWidget-IAYEXLNX.js.map → ChatWidget-YBXJRR2Z.js.map} +1 -1
  14. package/dist/EngageWidget-DUEXPVOY.mjs +13 -0
  15. package/dist/{EngageWidget-RANSIKC3.mjs.map → EngageWidget-DUEXPVOY.mjs.map} +1 -1
  16. package/dist/EngageWidget-MDCRS3BN.js +22 -0
  17. package/dist/{EngageWidget-BF7DH4GO.js.map → EngageWidget-MDCRS3BN.js.map} +1 -1
  18. package/dist/{FileField-VRKATE4G.js → FileField-AXU6KBSV.js} +6 -6
  19. package/dist/{FileField-VRKATE4G.js.map → FileField-AXU6KBSV.js.map} +1 -1
  20. package/dist/{FileField-7ZNQ5BID.mjs → FileField-UTLGR5ZN.mjs} +5 -5
  21. package/dist/{FileField-7ZNQ5BID.mjs.map → FileField-UTLGR5ZN.mjs.map} +1 -1
  22. package/dist/{FormSpotlight-QNH7XGYS.mjs → FormSpotlight-NWLCZMOT.mjs} +3 -3
  23. package/dist/{FormSpotlight-QNH7XGYS.mjs.map → FormSpotlight-NWLCZMOT.mjs.map} +1 -1
  24. package/dist/{FormSpotlight-VQJ2QWIU.js → FormSpotlight-RR5KJDIH.js} +9 -9
  25. package/dist/{FormSpotlight-VQJ2QWIU.js.map → FormSpotlight-RR5KJDIH.js.map} +1 -1
  26. package/dist/{FormStage-3JIN6X6O.js → FormStage-GFNX4GLU.js} +9 -9
  27. package/dist/{FormStage-3JIN6X6O.js.map → FormStage-GFNX4GLU.js.map} +1 -1
  28. package/dist/{FormStage-XB4JNFCH.mjs → FormStage-V4XKLI6J.mjs} +3 -3
  29. package/dist/{FormStage-XB4JNFCH.mjs.map → FormStage-V4XKLI6J.mjs.map} +1 -1
  30. package/dist/ManagedForm-4AD3LWSC.js +25 -0
  31. package/dist/{ManagedForm-Q5UFMUBE.js.map → ManagedForm-4AD3LWSC.js.map} +1 -1
  32. package/dist/ManagedForm-4IWPG6AZ.mjs +16 -0
  33. package/dist/{ManagedForm-E6F4FLVY.mjs.map → ManagedForm-4IWPG6AZ.mjs.map} +1 -1
  34. package/dist/{ManagedNewsletterForm-OEEC3GVY.mjs → ManagedNewsletterForm-ARSY2VHC.mjs} +6 -6
  35. package/dist/{ManagedNewsletterForm-OEEC3GVY.mjs.map → ManagedNewsletterForm-ARSY2VHC.mjs.map} +1 -1
  36. package/dist/{ManagedNewsletterForm-UTNOJ5T4.js → ManagedNewsletterForm-HJZNUABY.js} +7 -7
  37. package/dist/{ManagedNewsletterForm-UTNOJ5T4.js.map → ManagedNewsletterForm-HJZNUABY.js.map} +1 -1
  38. package/dist/{SignalCore-PWN5X6FF.mjs → SignalCore-N2LKG4XN.mjs} +5 -5
  39. package/dist/{SignalCore-PWN5X6FF.mjs.map → SignalCore-N2LKG4XN.mjs.map} +1 -1
  40. package/dist/{SignalCore-4AUWHMYK.js → SignalCore-P2JUY2BO.js} +11 -11
  41. package/dist/{SignalCore-4AUWHMYK.js.map → SignalCore-P2JUY2BO.js.map} +1 -1
  42. package/dist/SitemapSync-KFY4PJ7G.js +19 -0
  43. package/dist/{SitemapSync-DHJ25PSH.js.map → SitemapSync-KFY4PJ7G.js.map} +1 -1
  44. package/dist/SitemapSync-UYDL7T4M.mjs +10 -0
  45. package/dist/{SitemapSync-ZA2MNM63.mjs.map → SitemapSync-UYDL7T4M.mjs.map} +1 -1
  46. package/dist/analytics/index.js +14 -13
  47. package/dist/analytics/index.mjs +6 -5
  48. package/dist/articles/AuthorPage.d.ts +1 -1
  49. package/dist/articles/AuthorPage.d.ts.map +1 -1
  50. package/dist/articles/author-schema.d.ts +59 -13
  51. package/dist/articles/author-schema.d.ts.map +1 -1
  52. package/dist/articles/index.js +24 -23
  53. package/dist/articles/index.js.map +1 -1
  54. package/dist/articles/index.mjs +12 -11
  55. package/dist/articles/index.mjs.map +1 -1
  56. package/dist/articles/routes.d.ts +9 -0
  57. package/dist/articles/routes.d.ts.map +1 -1
  58. package/dist/articles/server-core.d.ts +5 -2
  59. package/dist/articles/server-core.d.ts.map +1 -1
  60. package/dist/articles/server-ui.js +45 -45
  61. package/dist/articles/server-ui.mjs +8 -8
  62. package/dist/articles/server.d.ts +5 -2
  63. package/dist/articles/server.d.ts.map +1 -1
  64. package/dist/articles/server.js +72 -56
  65. package/dist/articles/server.mjs +3 -3
  66. package/dist/articles/types.d.ts +23 -0
  67. package/dist/articles/types.d.ts.map +1 -1
  68. package/dist/{chunk-UAOQVHZW.js → chunk-34XL7TVH.js} +4 -4
  69. package/dist/{chunk-UAOQVHZW.js.map → chunk-34XL7TVH.js.map} +1 -1
  70. package/dist/chunk-3AOKYAZ2.js +135 -0
  71. package/dist/chunk-3AOKYAZ2.js.map +1 -0
  72. package/dist/{chunk-BJKA3XRS.mjs → chunk-3BLKKF67.mjs} +4 -4
  73. package/dist/{chunk-BJKA3XRS.mjs.map → chunk-3BLKKF67.mjs.map} +1 -1
  74. package/dist/{chunk-3J5L5DIK.js → chunk-3EAS4PAT.js} +3 -3
  75. package/dist/{chunk-3J5L5DIK.js.map → chunk-3EAS4PAT.js.map} +1 -1
  76. package/dist/{chunk-SB4CJX2X.mjs → chunk-42LLFAJQ.mjs} +3 -3
  77. package/dist/{chunk-SB4CJX2X.mjs.map → chunk-42LLFAJQ.mjs.map} +1 -1
  78. package/dist/{chunk-ZR43XFUM.js → chunk-55J2KE7D.js} +3 -3
  79. package/dist/chunk-55J2KE7D.js.map +1 -0
  80. package/dist/{chunk-VGBUC2JP.js → chunk-5ZMTEK7U.js} +10 -10
  81. package/dist/{chunk-VGBUC2JP.js.map → chunk-5ZMTEK7U.js.map} +1 -1
  82. package/dist/{chunk-6DCAMW62.mjs → chunk-6C47333H.mjs} +3 -3
  83. package/dist/chunk-6C47333H.mjs.map +1 -0
  84. package/dist/{chunk-E7EV2AHT.js → chunk-6OQYRVMI.js} +9 -9
  85. package/dist/{chunk-E7EV2AHT.js.map → chunk-6OQYRVMI.js.map} +1 -1
  86. package/dist/{chunk-UJIKP35G.mjs → chunk-7F66Y4MA.mjs} +4 -4
  87. package/dist/{chunk-UJIKP35G.mjs.map → chunk-7F66Y4MA.mjs.map} +1 -1
  88. package/dist/{chunk-6MOGGEY3.mjs → chunk-A2HL22BO.mjs} +3 -3
  89. package/dist/{chunk-6MOGGEY3.mjs.map → chunk-A2HL22BO.mjs.map} +1 -1
  90. package/dist/{chunk-7NFSSPGM.js → chunk-AL4Z6VYF.js} +8 -8
  91. package/dist/{chunk-7NFSSPGM.js.map → chunk-AL4Z6VYF.js.map} +1 -1
  92. package/dist/{chunk-W46QIVBM.mjs → chunk-B6QPCAEG.mjs} +3 -3
  93. package/dist/{chunk-W46QIVBM.mjs.map → chunk-B6QPCAEG.mjs.map} +1 -1
  94. package/dist/{chunk-EB33U2WT.js → chunk-BHZHWXER.js} +131 -71
  95. package/dist/chunk-BHZHWXER.js.map +1 -0
  96. package/dist/{chunk-R26FAQWF.mjs → chunk-BNKBRLJK.mjs} +3 -3
  97. package/dist/{chunk-R26FAQWF.mjs.map → chunk-BNKBRLJK.mjs.map} +1 -1
  98. package/dist/{chunk-A6UYV475.mjs → chunk-CABEVWKJ.mjs} +4 -24
  99. package/dist/chunk-CABEVWKJ.mjs.map +1 -0
  100. package/dist/{chunk-LWCAZDY2.js → chunk-CDRQYJUT.js} +4 -4
  101. package/dist/{chunk-LWCAZDY2.js.map → chunk-CDRQYJUT.js.map} +1 -1
  102. package/dist/{chunk-SAOUAIRS.js → chunk-CM4AVKXR.js} +14 -14
  103. package/dist/{chunk-SAOUAIRS.js.map → chunk-CM4AVKXR.js.map} +1 -1
  104. package/dist/{chunk-KMONA7CT.mjs → chunk-D3WJMSTB.mjs} +3 -3
  105. package/dist/{chunk-KMONA7CT.mjs.map → chunk-D3WJMSTB.mjs.map} +1 -1
  106. package/dist/{chunk-3Q3Y6OQE.mjs → chunk-DWZGW77V.mjs} +4 -4
  107. package/dist/{chunk-3Q3Y6OQE.mjs.map → chunk-DWZGW77V.mjs.map} +1 -1
  108. package/dist/{chunk-L6BQIDSZ.mjs → chunk-FPVYKSXE.mjs} +13 -10
  109. package/dist/chunk-FPVYKSXE.mjs.map +1 -0
  110. package/dist/{chunk-5XDOBM5S.js → chunk-G2KGHIAP.js} +3 -3
  111. package/dist/{chunk-5XDOBM5S.js.map → chunk-G2KGHIAP.js.map} +1 -1
  112. package/dist/chunk-GFSQMK35.mjs +127 -0
  113. package/dist/chunk-GFSQMK35.mjs.map +1 -0
  114. package/dist/chunk-GIGUDKLS.mjs +6 -0
  115. package/dist/{chunk-3V6DIQI7.mjs.map → chunk-GIGUDKLS.mjs.map} +1 -1
  116. package/dist/{chunk-BJ4T65OK.mjs → chunk-H4TSADY3.mjs} +3 -3
  117. package/dist/{chunk-BJ4T65OK.mjs.map → chunk-H4TSADY3.mjs.map} +1 -1
  118. package/dist/{chunk-J4C3JAJF.js → chunk-IO65ROAO.js} +15 -15
  119. package/dist/{chunk-J4C3JAJF.js.map → chunk-IO65ROAO.js.map} +1 -1
  120. package/dist/chunk-JCDX37BY.js +58 -0
  121. package/dist/chunk-JCDX37BY.js.map +1 -0
  122. package/dist/{chunk-5J4FKRGH.mjs → chunk-MDQLON5R.mjs} +5 -5
  123. package/dist/{chunk-5J4FKRGH.mjs.map → chunk-MDQLON5R.mjs.map} +1 -1
  124. package/dist/{chunk-3POB4JKR.js → chunk-MHKD34B4.js} +15 -15
  125. package/dist/{chunk-3POB4JKR.js.map → chunk-MHKD34B4.js.map} +1 -1
  126. package/dist/chunk-MXJOKOFK.mjs +51 -0
  127. package/dist/chunk-MXJOKOFK.mjs.map +1 -0
  128. package/dist/{chunk-5RNAUYWE.js → chunk-NH2P27MA.js} +4 -27
  129. package/dist/chunk-NH2P27MA.js.map +1 -0
  130. package/dist/{chunk-5DZVQW35.mjs → chunk-OFBEBMXN.mjs} +4 -4
  131. package/dist/{chunk-5DZVQW35.mjs.map → chunk-OFBEBMXN.mjs.map} +1 -1
  132. package/dist/{chunk-G3L26XQ7.js → chunk-OIPG3EGM.js} +5 -5
  133. package/dist/{chunk-G3L26XQ7.js.map → chunk-OIPG3EGM.js.map} +1 -1
  134. package/dist/{chunk-2UZULHI4.js → chunk-OY3PDIB3.js} +10 -10
  135. package/dist/{chunk-2UZULHI4.js.map → chunk-OY3PDIB3.js.map} +1 -1
  136. package/dist/{chunk-SNXJXPB6.js → chunk-PFDRQJKJ.js} +13 -13
  137. package/dist/{chunk-SNXJXPB6.js.map → chunk-PFDRQJKJ.js.map} +1 -1
  138. package/dist/{chunk-CXYGKK4U.mjs → chunk-PGYOBEPL.mjs} +3 -3
  139. package/dist/{chunk-CXYGKK4U.mjs.map → chunk-PGYOBEPL.mjs.map} +1 -1
  140. package/dist/{chunk-TE3YNZVH.js → chunk-PIPGH7GA.js} +4 -4
  141. package/dist/{chunk-TE3YNZVH.js.map → chunk-PIPGH7GA.js.map} +1 -1
  142. package/dist/chunk-PURI56RE.js +8 -0
  143. package/dist/{chunk-6SBRD5KT.js.map → chunk-PURI56RE.js.map} +1 -1
  144. package/dist/{chunk-X3MY4PL7.mjs → chunk-QAQTDHHT.mjs} +10 -14
  145. package/dist/chunk-QAQTDHHT.mjs.map +1 -0
  146. package/dist/{chunk-PMWF5CRL.js → chunk-QCS7NWMA.js} +15 -12
  147. package/dist/chunk-QCS7NWMA.js.map +1 -0
  148. package/dist/{chunk-HXHRS3PX.mjs → chunk-RCB6HEHM.mjs} +3 -3
  149. package/dist/{chunk-HXHRS3PX.mjs.map → chunk-RCB6HEHM.mjs.map} +1 -1
  150. package/dist/{chunk-ANYCUTS5.js → chunk-RMDH2HMW.js} +3 -3
  151. package/dist/{chunk-ANYCUTS5.js.map → chunk-RMDH2HMW.js.map} +1 -1
  152. package/dist/{chunk-NAA5J2JM.js → chunk-RQROZLH3.js} +47 -51
  153. package/dist/chunk-RQROZLH3.js.map +1 -0
  154. package/dist/{chunk-X5J3PYZJ.js → chunk-SUGBIEYQ.js} +9 -9
  155. package/dist/{chunk-X5J3PYZJ.js.map → chunk-SUGBIEYQ.js.map} +1 -1
  156. package/dist/{chunk-LFF32POH.mjs → chunk-SVCKJ5KH.mjs} +4 -4
  157. package/dist/{chunk-LFF32POH.mjs.map → chunk-SVCKJ5KH.mjs.map} +1 -1
  158. package/dist/{chunk-YKZ3EVAQ.mjs → chunk-THO4NS6Z.mjs} +3 -3
  159. package/dist/{chunk-YKZ3EVAQ.mjs.map → chunk-THO4NS6Z.mjs.map} +1 -1
  160. package/dist/{chunk-K6ZQVDP4.mjs → chunk-TPEPAHU5.mjs} +3 -3
  161. package/dist/{chunk-K6ZQVDP4.mjs.map → chunk-TPEPAHU5.mjs.map} +1 -1
  162. package/dist/{chunk-FRUBUQOH.js → chunk-U577ITSA.js} +5 -5
  163. package/dist/{chunk-FRUBUQOH.js.map → chunk-U577ITSA.js.map} +1 -1
  164. package/dist/{chunk-B2NO5QVY.mjs → chunk-UCQDE5UH.mjs} +3 -3
  165. package/dist/{chunk-B2NO5QVY.mjs.map → chunk-UCQDE5UH.mjs.map} +1 -1
  166. package/dist/{chunk-KB7SIIVY.mjs → chunk-VA2O5OSV.mjs} +3 -3
  167. package/dist/{chunk-KB7SIIVY.mjs.map → chunk-VA2O5OSV.mjs.map} +1 -1
  168. package/dist/{chunk-6I5O5CTL.mjs → chunk-VJTKIKZY.mjs} +128 -68
  169. package/dist/chunk-VJTKIKZY.mjs.map +1 -0
  170. package/dist/{chunk-OLVCGOXZ.js → chunk-VUAGR6VL.js} +12 -12
  171. package/dist/{chunk-OLVCGOXZ.js.map → chunk-VUAGR6VL.js.map} +1 -1
  172. package/dist/{chunk-PQICWWQW.mjs → chunk-XEOIGCUE.mjs} +5 -5
  173. package/dist/{chunk-PQICWWQW.mjs.map → chunk-XEOIGCUE.mjs.map} +1 -1
  174. package/dist/chunk-YMZNEDFP.js +39 -0
  175. package/dist/chunk-YMZNEDFP.js.map +1 -0
  176. package/dist/chunk-Z2URIOKG.mjs +36 -0
  177. package/dist/chunk-Z2URIOKG.mjs.map +1 -0
  178. package/dist/{chunk-2MEMK5XC.js → chunk-ZXC56JS3.js} +14 -14
  179. package/dist/{chunk-2MEMK5XC.js.map → chunk-ZXC56JS3.js.map} +1 -1
  180. package/dist/cli/index.js +3 -3
  181. package/dist/cli/index.mjs +1 -1
  182. package/dist/client/index.js +4 -4
  183. package/dist/client/index.mjs +3 -3
  184. package/dist/commerce/index.js +59 -58
  185. package/dist/commerce/index.mjs +7 -6
  186. package/dist/engage/DesignRenderer.d.ts.map +1 -1
  187. package/dist/engage/EngageWidget.d.ts.map +1 -1
  188. package/dist/engage/element-rules.d.ts +39 -0
  189. package/dist/engage/element-rules.d.ts.map +1 -0
  190. package/dist/engage/index.js +11 -10
  191. package/dist/engage/index.js.map +1 -1
  192. package/dist/engage/index.mjs +8 -7
  193. package/dist/engage/index.mjs.map +1 -1
  194. package/dist/fleet/index.js +10 -9
  195. package/dist/fleet/index.mjs +6 -5
  196. package/dist/forms/index.js +13 -13
  197. package/dist/forms/index.mjs +7 -7
  198. package/dist/forms/server.js +2 -2
  199. package/dist/forms/server.mjs +1 -1
  200. package/dist/images/index.js +11 -11
  201. package/dist/images/index.mjs +4 -4
  202. package/dist/index.js +65 -64
  203. package/dist/index.js.map +1 -1
  204. package/dist/index.mjs +11 -10
  205. package/dist/index.mjs.map +1 -1
  206. package/dist/layout/SiteKitClientProviders.d.ts.map +1 -1
  207. package/dist/layout/client.d.ts.map +1 -1
  208. package/dist/layout/client.js +10 -9
  209. package/dist/layout/client.mjs +9 -8
  210. package/dist/layout/index.js +12 -11
  211. package/dist/layout/index.js.map +1 -1
  212. package/dist/layout/index.mjs +10 -9
  213. package/dist/layout/index.mjs.map +1 -1
  214. package/dist/layout/types.d.ts +6 -0
  215. package/dist/layout/types.d.ts.map +1 -1
  216. package/dist/llms/index.d.ts +2 -0
  217. package/dist/llms/index.d.ts.map +1 -1
  218. package/dist/llms/index.js +129 -14
  219. package/dist/llms/index.js.map +1 -1
  220. package/dist/llms/index.mjs +115 -5
  221. package/dist/llms/index.mjs.map +1 -1
  222. package/dist/llms/revalidate.d.ts +3 -0
  223. package/dist/llms/revalidate.d.ts.map +1 -1
  224. package/dist/llms/seo-revalidate.d.ts +105 -0
  225. package/dist/llms/seo-revalidate.d.ts.map +1 -0
  226. package/dist/maps/index.js +5 -5
  227. package/dist/maps/index.mjs +3 -3
  228. package/dist/mcp/transport.d.ts +166 -0
  229. package/dist/mcp/transport.d.ts.map +1 -0
  230. package/dist/mcp/transport.js +137 -0
  231. package/dist/mcp/transport.js.map +1 -0
  232. package/dist/mcp/transport.mjs +123 -0
  233. package/dist/mcp/transport.mjs.map +1 -0
  234. package/dist/portfolio/contract.d.ts +93 -0
  235. package/dist/portfolio/contract.d.ts.map +1 -1
  236. package/dist/portfolio/contract.js +94 -1
  237. package/dist/portfolio/contract.js.map +1 -1
  238. package/dist/portfolio/contract.mjs +79 -2
  239. package/dist/portfolio/contract.mjs.map +1 -1
  240. package/dist/search/index.js +4 -4
  241. package/dist/search/index.mjs +3 -3
  242. package/dist/seo/client.js +7 -6
  243. package/dist/seo/client.mjs +6 -5
  244. package/dist/seo/index.js +7 -6
  245. package/dist/seo/index.js.map +1 -1
  246. package/dist/seo/index.mjs +6 -5
  247. package/dist/seo/index.mjs.map +1 -1
  248. package/dist/seo/register-sitemap-cli.js +1 -1
  249. package/dist/seo/register-sitemap-cli.mjs +1 -1
  250. package/dist/server/index.js +3 -3
  251. package/dist/server/index.mjs +2 -2
  252. package/dist/shared/build-entries.d.ts +7 -0
  253. package/dist/shared/build-entries.d.ts.map +1 -1
  254. package/dist/shared/frame.d.ts +15 -0
  255. package/dist/shared/frame.d.ts.map +1 -1
  256. package/dist/shared/request-guards.d.ts +27 -0
  257. package/dist/shared/request-guards.d.ts.map +1 -0
  258. package/dist/shared/version.d.ts +1 -1
  259. package/dist/signal/index.js +11 -11
  260. package/dist/signal/index.mjs +2 -2
  261. package/dist/sitemap/index.js +3 -3
  262. package/dist/sitemap/index.mjs +2 -2
  263. package/dist/sync/index.js +17 -17
  264. package/dist/sync/index.mjs +4 -4
  265. package/dist/{writeLLMsTxt-LYYC3ZSN.mjs → writeLLMsTxt-IYJILIU3.mjs} +3 -3
  266. package/dist/{writeLLMsTxt-XHLHJ5XY.js → writeLLMsTxt-SQG4B63X.js} +4 -4
  267. package/package.json +24 -21
  268. package/dist/AnalyticsProvider-L3GWK5PO.js +0 -33
  269. package/dist/AnalyticsProvider-XDVJTAPN.mjs +0 -12
  270. package/dist/EngageWidget-BF7DH4GO.js +0 -21
  271. package/dist/EngageWidget-RANSIKC3.mjs +0 -12
  272. package/dist/ManagedForm-E6F4FLVY.mjs +0 -16
  273. package/dist/ManagedForm-Q5UFMUBE.js +0 -25
  274. package/dist/SitemapSync-DHJ25PSH.js +0 -18
  275. package/dist/SitemapSync-ZA2MNM63.mjs +0 -9
  276. package/dist/chunk-3V6DIQI7.mjs +0 -6
  277. package/dist/chunk-5RNAUYWE.js.map +0 -1
  278. package/dist/chunk-6DCAMW62.mjs.map +0 -1
  279. package/dist/chunk-6I5O5CTL.mjs.map +0 -1
  280. package/dist/chunk-6SBRD5KT.js +0 -8
  281. package/dist/chunk-A6UYV475.mjs.map +0 -1
  282. package/dist/chunk-EB33U2WT.js.map +0 -1
  283. package/dist/chunk-L6BQIDSZ.mjs.map +0 -1
  284. package/dist/chunk-NAA5J2JM.js.map +0 -1
  285. package/dist/chunk-PMWF5CRL.js.map +0 -1
  286. package/dist/chunk-X3MY4PL7.mjs.map +0 -1
  287. package/dist/chunk-YRCR7WY3.js +0 -65
  288. package/dist/chunk-YRCR7WY3.js.map +0 -1
  289. package/dist/chunk-ZL35JCDA.mjs +0 -61
  290. package/dist/chunk-ZL35JCDA.mjs.map +0 -1
  291. package/dist/chunk-ZR43XFUM.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkNAA5J2JM_js = require('../chunk-NAA5J2JM.js');
3
+ var chunkRQROZLH3_js = require('../chunk-RQROZLH3.js');
4
4
  var chunkSG7CWD2R_js = require('../chunk-SG7CWD2R.js');
5
- var chunkYRCR7WY3_js = require('../chunk-YRCR7WY3.js');
6
- var chunkZR43XFUM_js = require('../chunk-ZR43XFUM.js');
5
+ var chunk3AOKYAZ2_js = require('../chunk-3AOKYAZ2.js');
6
+ var chunk55J2KE7D_js = require('../chunk-55J2KE7D.js');
7
7
  require('../chunk-BBBJHYPH.js');
8
8
  require('../chunk-O5GHP7UO.js');
9
9
  require('../chunk-UZKXOZHR.js');
@@ -14,191 +14,191 @@ require('../chunk-SNAQBZPT.js');
14
14
 
15
15
  Object.defineProperty(exports, "FEED_DEFAULT_ITEMS", {
16
16
  enumerable: true,
17
- get: function () { return chunkNAA5J2JM_js.FEED_DEFAULT_ITEMS; }
17
+ get: function () { return chunkRQROZLH3_js.FEED_DEFAULT_ITEMS; }
18
18
  });
19
19
  Object.defineProperty(exports, "NEWS_SITEMAP_MAX_URLS", {
20
20
  enumerable: true,
21
- get: function () { return chunkNAA5J2JM_js.NEWS_SITEMAP_MAX_URLS; }
21
+ get: function () { return chunkRQROZLH3_js.NEWS_SITEMAP_MAX_URLS; }
22
22
  });
23
23
  Object.defineProperty(exports, "NEWS_SITEMAP_WINDOW_MS", {
24
24
  enumerable: true,
25
- get: function () { return chunkNAA5J2JM_js.NEWS_SITEMAP_WINDOW_MS; }
25
+ get: function () { return chunkRQROZLH3_js.NEWS_SITEMAP_WINDOW_MS; }
26
26
  });
27
27
  Object.defineProperty(exports, "SEO_LIMITS", {
28
28
  enumerable: true,
29
- get: function () { return chunkNAA5J2JM_js.SEO_LIMITS; }
29
+ get: function () { return chunkRQROZLH3_js.SEO_LIMITS; }
30
30
  });
31
31
  Object.defineProperty(exports, "buildNewsSitemapXml", {
32
32
  enumerable: true,
33
- get: function () { return chunkNAA5J2JM_js.buildNewsSitemapXml; }
33
+ get: function () { return chunkRQROZLH3_js.buildNewsSitemapXml; }
34
34
  });
35
35
  Object.defineProperty(exports, "cdata", {
36
36
  enumerable: true,
37
- get: function () { return chunkNAA5J2JM_js.cdata; }
37
+ get: function () { return chunkRQROZLH3_js.cdata; }
38
38
  });
39
39
  Object.defineProperty(exports, "generateAllArticleSchemas", {
40
40
  enumerable: true,
41
- get: function () { return chunkNAA5J2JM_js.generateAllArticleSchemas; }
41
+ get: function () { return chunkRQROZLH3_js.generateAllArticleSchemas; }
42
42
  });
43
43
  Object.defineProperty(exports, "generateArticleCategoryMetadata", {
44
44
  enumerable: true,
45
- get: function () { return chunkNAA5J2JM_js.generateArticleCategoryMetadata; }
45
+ get: function () { return chunkRQROZLH3_js.generateArticleCategoryMetadata; }
46
46
  });
47
47
  Object.defineProperty(exports, "generateArticleListSchema", {
48
48
  enumerable: true,
49
- get: function () { return chunkNAA5J2JM_js.generateArticleListSchema; }
49
+ get: function () { return chunkRQROZLH3_js.generateArticleListSchema; }
50
50
  });
51
51
  Object.defineProperty(exports, "generateArticleMetadata", {
52
52
  enumerable: true,
53
- get: function () { return chunkNAA5J2JM_js.generateArticleMetadata; }
53
+ get: function () { return chunkRQROZLH3_js.generateArticleMetadata; }
54
54
  });
55
55
  Object.defineProperty(exports, "generateArticleSchema", {
56
56
  enumerable: true,
57
- get: function () { return chunkNAA5J2JM_js.generateArticleSchema; }
57
+ get: function () { return chunkRQROZLH3_js.generateArticleSchema; }
58
58
  });
59
59
  Object.defineProperty(exports, "generateArticleSitemap", {
60
60
  enumerable: true,
61
- get: function () { return chunkNAA5J2JM_js.generateArticleSitemap; }
61
+ get: function () { return chunkRQROZLH3_js.generateArticleSitemap; }
62
62
  });
63
63
  Object.defineProperty(exports, "generateArticleStaticParams", {
64
64
  enumerable: true,
65
- get: function () { return chunkNAA5J2JM_js.generateArticleStaticParams; }
65
+ get: function () { return chunkRQROZLH3_js.generateArticleStaticParams; }
66
66
  });
67
67
  Object.defineProperty(exports, "generateAtomFeed", {
68
68
  enumerable: true,
69
- get: function () { return chunkNAA5J2JM_js.generateAtomFeed; }
69
+ get: function () { return chunkRQROZLH3_js.generateAtomFeed; }
70
70
  });
71
71
  Object.defineProperty(exports, "generateAuthorPageMetadata", {
72
72
  enumerable: true,
73
- get: function () { return chunkNAA5J2JM_js.generateAuthorPageMetadata; }
73
+ get: function () { return chunkRQROZLH3_js.generateAuthorPageMetadata; }
74
74
  });
75
75
  Object.defineProperty(exports, "generateAuthorStaticParams", {
76
76
  enumerable: true,
77
- get: function () { return chunkNAA5J2JM_js.generateAuthorStaticParams; }
77
+ get: function () { return chunkRQROZLH3_js.generateAuthorStaticParams; }
78
78
  });
79
79
  Object.defineProperty(exports, "generateBreadcrumbSchema", {
80
80
  enumerable: true,
81
- get: function () { return chunkNAA5J2JM_js.generateBreadcrumbSchema; }
81
+ get: function () { return chunkRQROZLH3_js.generateBreadcrumbSchema; }
82
82
  });
83
83
  Object.defineProperty(exports, "generateCategoryStaticParams", {
84
84
  enumerable: true,
85
- get: function () { return chunkNAA5J2JM_js.generateCategoryStaticParams; }
85
+ get: function () { return chunkRQROZLH3_js.generateCategoryStaticParams; }
86
86
  });
87
87
  Object.defineProperty(exports, "generateClusterArticleSchema", {
88
88
  enumerable: true,
89
- get: function () { return chunkNAA5J2JM_js.generateClusterArticleSchema; }
89
+ get: function () { return chunkRQROZLH3_js.generateClusterArticleSchema; }
90
90
  });
91
91
  Object.defineProperty(exports, "generateClusterBreadcrumbSchema", {
92
92
  enumerable: true,
93
- get: function () { return chunkNAA5J2JM_js.generateClusterBreadcrumbSchema; }
93
+ get: function () { return chunkRQROZLH3_js.generateClusterBreadcrumbSchema; }
94
94
  });
95
95
  Object.defineProperty(exports, "generateClusterItemListSchema", {
96
96
  enumerable: true,
97
- get: function () { return chunkNAA5J2JM_js.generateClusterItemListSchema; }
97
+ get: function () { return chunkRQROZLH3_js.generateClusterItemListSchema; }
98
98
  });
99
99
  Object.defineProperty(exports, "generateClusterLandingSchema", {
100
100
  enumerable: true,
101
- get: function () { return chunkNAA5J2JM_js.generateClusterLandingSchema; }
101
+ get: function () { return chunkRQROZLH3_js.generateClusterLandingSchema; }
102
102
  });
103
103
  Object.defineProperty(exports, "generateClusterPageMetadata", {
104
104
  enumerable: true,
105
- get: function () { return chunkNAA5J2JM_js.generateClusterPageMetadata; }
105
+ get: function () { return chunkRQROZLH3_js.generateClusterPageMetadata; }
106
106
  });
107
107
  Object.defineProperty(exports, "generateFaqSchema", {
108
108
  enumerable: true,
109
- get: function () { return chunkNAA5J2JM_js.generateFaqSchema; }
109
+ get: function () { return chunkRQROZLH3_js.generateFaqSchema; }
110
110
  });
111
111
  Object.defineProperty(exports, "generateHowToSchema", {
112
112
  enumerable: true,
113
- get: function () { return chunkNAA5J2JM_js.generateHowToSchema; }
113
+ get: function () { return chunkRQROZLH3_js.generateHowToSchema; }
114
114
  });
115
115
  Object.defineProperty(exports, "generateNewsSitemap", {
116
116
  enumerable: true,
117
- get: function () { return chunkNAA5J2JM_js.generateNewsSitemap; }
117
+ get: function () { return chunkRQROZLH3_js.generateNewsSitemap; }
118
118
  });
119
119
  Object.defineProperty(exports, "generatePublicationMetadata", {
120
120
  enumerable: true,
121
- get: function () { return chunkNAA5J2JM_js.generatePublicationMetadata; }
121
+ get: function () { return chunkRQROZLH3_js.generatePublicationMetadata; }
122
122
  });
123
123
  Object.defineProperty(exports, "generateRssFeed", {
124
124
  enumerable: true,
125
- get: function () { return chunkNAA5J2JM_js.generateRssFeed; }
125
+ get: function () { return chunkRQROZLH3_js.generateRssFeed; }
126
126
  });
127
127
  Object.defineProperty(exports, "getAllArticleSlugs", {
128
128
  enumerable: true,
129
- get: function () { return chunkNAA5J2JM_js.getAllArticleSlugs; }
129
+ get: function () { return chunkRQROZLH3_js.getAllArticleSlugs; }
130
130
  });
131
131
  Object.defineProperty(exports, "getAllArticles", {
132
132
  enumerable: true,
133
- get: function () { return chunkNAA5J2JM_js.getAllArticles; }
133
+ get: function () { return chunkRQROZLH3_js.getAllArticles; }
134
134
  });
135
135
  Object.defineProperty(exports, "getAllAuthorSlugs", {
136
136
  enumerable: true,
137
- get: function () { return chunkNAA5J2JM_js.getAllAuthorSlugs; }
137
+ get: function () { return chunkRQROZLH3_js.getAllAuthorSlugs; }
138
138
  });
139
139
  Object.defineProperty(exports, "getArticle", {
140
140
  enumerable: true,
141
- get: function () { return chunkNAA5J2JM_js.getArticle; }
141
+ get: function () { return chunkRQROZLH3_js.getArticle; }
142
142
  });
143
143
  Object.defineProperty(exports, "getArticleCategories", {
144
144
  enumerable: true,
145
- get: function () { return chunkNAA5J2JM_js.getArticleCategories; }
145
+ get: function () { return chunkRQROZLH3_js.getArticleCategories; }
146
146
  });
147
147
  Object.defineProperty(exports, "getAuthorBySlug", {
148
148
  enumerable: true,
149
- get: function () { return chunkNAA5J2JM_js.getAuthorBySlug; }
149
+ get: function () { return chunkRQROZLH3_js.getAuthorBySlug; }
150
150
  });
151
151
  Object.defineProperty(exports, "getAuthorPosts", {
152
152
  enumerable: true,
153
- get: function () { return chunkNAA5J2JM_js.getAuthorPosts; }
153
+ get: function () { return chunkRQROZLH3_js.getAuthorPosts; }
154
154
  });
155
155
  Object.defineProperty(exports, "getClusterNavigation", {
156
156
  enumerable: true,
157
- get: function () { return chunkNAA5J2JM_js.getClusterNavigation; }
157
+ get: function () { return chunkRQROZLH3_js.getClusterNavigation; }
158
158
  });
159
159
  Object.defineProperty(exports, "getPostsByCategory", {
160
160
  enumerable: true,
161
- get: function () { return chunkNAA5J2JM_js.getPostsByCategory; }
161
+ get: function () { return chunkRQROZLH3_js.getPostsByCategory; }
162
162
  });
163
163
  Object.defineProperty(exports, "getRelatedInsights", {
164
164
  enumerable: true,
165
- get: function () { return chunkNAA5J2JM_js.getRelatedInsights; }
165
+ get: function () { return chunkRQROZLH3_js.getRelatedInsights; }
166
166
  });
167
167
  Object.defineProperty(exports, "getTopicCluster", {
168
168
  enumerable: true,
169
- get: function () { return chunkNAA5J2JM_js.getTopicCluster; }
169
+ get: function () { return chunkRQROZLH3_js.getTopicCluster; }
170
170
  });
171
171
  Object.defineProperty(exports, "getTopicClusters", {
172
172
  enumerable: true,
173
- get: function () { return chunkNAA5J2JM_js.getTopicClusters; }
173
+ get: function () { return chunkRQROZLH3_js.getTopicClusters; }
174
174
  });
175
175
  Object.defineProperty(exports, "identifyTopicClusters", {
176
176
  enumerable: true,
177
- get: function () { return chunkNAA5J2JM_js.identifyTopicClusters; }
177
+ get: function () { return chunkRQROZLH3_js.identifyTopicClusters; }
178
178
  });
179
179
  Object.defineProperty(exports, "recentNewsPosts", {
180
180
  enumerable: true,
181
- get: function () { return chunkNAA5J2JM_js.recentNewsPosts; }
181
+ get: function () { return chunkRQROZLH3_js.recentNewsPosts; }
182
182
  });
183
183
  Object.defineProperty(exports, "requireArticle", {
184
184
  enumerable: true,
185
- get: function () { return chunkNAA5J2JM_js.requireArticle; }
185
+ get: function () { return chunkRQROZLH3_js.requireArticle; }
186
186
  });
187
187
  Object.defineProperty(exports, "sanitizeExcerpt", {
188
188
  enumerable: true,
189
- get: function () { return chunkNAA5J2JM_js.sanitizeExcerpt; }
189
+ get: function () { return chunkRQROZLH3_js.sanitizeExcerpt; }
190
190
  });
191
191
  Object.defineProperty(exports, "validateArticleSeo", {
192
192
  enumerable: true,
193
- get: function () { return chunkNAA5J2JM_js.validateArticleSeo; }
193
+ get: function () { return chunkRQROZLH3_js.validateArticleSeo; }
194
194
  });
195
195
  Object.defineProperty(exports, "validateMetaDescription", {
196
196
  enumerable: true,
197
- get: function () { return chunkNAA5J2JM_js.validateMetaDescription; }
197
+ get: function () { return chunkRQROZLH3_js.validateMetaDescription; }
198
198
  });
199
199
  Object.defineProperty(exports, "validateSeoTitle", {
200
200
  enumerable: true,
201
- get: function () { return chunkNAA5J2JM_js.validateSeoTitle; }
201
+ get: function () { return chunkRQROZLH3_js.validateSeoTitle; }
202
202
  });
203
203
  Object.defineProperty(exports, "articleTableCss", {
204
204
  enumerable: true,
@@ -208,29 +208,45 @@ Object.defineProperty(exports, "wrapArticleTables", {
208
208
  enumerable: true,
209
209
  get: function () { return chunkSG7CWD2R_js.wrapArticleTables; }
210
210
  });
211
+ Object.defineProperty(exports, "authorEntityId", {
212
+ enumerable: true,
213
+ get: function () { return chunk3AOKYAZ2_js.authorEntityId; }
214
+ });
215
+ Object.defineProperty(exports, "generateArticleAuthorNode", {
216
+ enumerable: true,
217
+ get: function () { return chunk3AOKYAZ2_js.generateArticleAuthorNode; }
218
+ });
219
+ Object.defineProperty(exports, "generateAuthorPersonSchema", {
220
+ enumerable: true,
221
+ get: function () { return chunk3AOKYAZ2_js.generateAuthorPersonSchema; }
222
+ });
211
223
  Object.defineProperty(exports, "generateAuthorSchema", {
212
224
  enumerable: true,
213
- get: function () { return chunkYRCR7WY3_js.generateAuthorSchema; }
225
+ get: function () { return chunk3AOKYAZ2_js.generateAuthorSchema; }
214
226
  });
215
227
  Object.defineProperty(exports, "resolveArticleArtwork", {
216
228
  enumerable: true,
217
- get: function () { return chunkYRCR7WY3_js.resolveArticleArtwork; }
229
+ get: function () { return chunk3AOKYAZ2_js.resolveArticleArtwork; }
230
+ });
231
+ Object.defineProperty(exports, "withArticleAuthorIdentity", {
232
+ enumerable: true,
233
+ get: function () { return chunk3AOKYAZ2_js.withArticleAuthorIdentity; }
218
234
  });
219
235
  Object.defineProperty(exports, "articleCategorySlug", {
220
236
  enumerable: true,
221
- get: function () { return chunkZR43XFUM_js.articleCategorySlug; }
237
+ get: function () { return chunk55J2KE7D_js.articleCategorySlug; }
222
238
  });
223
239
  Object.defineProperty(exports, "createPublicationRoutes", {
224
240
  enumerable: true,
225
- get: function () { return chunkZR43XFUM_js.createPublicationRoutes; }
241
+ get: function () { return chunk55J2KE7D_js.createPublicationRoutes; }
226
242
  });
227
243
  Object.defineProperty(exports, "resolveArticleUrl", {
228
244
  enumerable: true,
229
- get: function () { return chunkZR43XFUM_js.resolveArticleUrl; }
245
+ get: function () { return chunk55J2KE7D_js.resolveArticleUrl; }
230
246
  });
231
247
  Object.defineProperty(exports, "resolvePublicationUrl", {
232
248
  enumerable: true,
233
- get: function () { return chunkZR43XFUM_js.resolvePublicationUrl; }
249
+ get: function () { return chunk55J2KE7D_js.resolvePublicationUrl; }
234
250
  });
235
251
  //# sourceMappingURL=server.js.map
236
252
  //# sourceMappingURL=server.js.map
@@ -1,7 +1,7 @@
1
- export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, SEO_LIMITS, buildNewsSitemapXml, cdata, generateAllArticleSchemas, generateArticleCategoryMetadata, generateArticleListSchema, generateArticleMetadata, generateArticleSchema, generateArticleSitemap, generateArticleStaticParams, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateNewsSitemap, generatePublicationMetadata, generateRssFeed, getAllArticleSlugs, getAllArticles, getAllAuthorSlugs, getArticle, getArticleCategories, getAuthorBySlug, getAuthorPosts, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, recentNewsPosts, requireArticle, sanitizeExcerpt, validateArticleSeo, validateMetaDescription, validateSeoTitle } from '../chunk-X3MY4PL7.mjs';
1
+ export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, SEO_LIMITS, buildNewsSitemapXml, cdata, generateAllArticleSchemas, generateArticleCategoryMetadata, generateArticleListSchema, generateArticleMetadata, generateArticleSchema, generateArticleSitemap, generateArticleStaticParams, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateNewsSitemap, generatePublicationMetadata, generateRssFeed, getAllArticleSlugs, getAllArticles, getAllAuthorSlugs, getArticle, getArticleCategories, getAuthorBySlug, getAuthorPosts, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, recentNewsPosts, requireArticle, sanitizeExcerpt, validateArticleSeo, validateMetaDescription, validateSeoTitle } from '../chunk-QAQTDHHT.mjs';
2
2
  export { articleTableCss, wrapArticleTables } from '../chunk-5F2FIM5A.mjs';
3
- export { generateAuthorSchema, resolveArticleArtwork } from '../chunk-ZL35JCDA.mjs';
4
- export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-6DCAMW62.mjs';
3
+ export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, resolveArticleArtwork, withArticleAuthorIdentity } from '../chunk-GFSQMK35.mjs';
4
+ export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-6C47333H.mjs';
5
5
  import '../chunk-AS2HUIDW.mjs';
6
6
  import '../chunk-6XNEGG5B.mjs';
7
7
  import '../chunk-KZVSB5WE.mjs';
@@ -123,6 +123,12 @@ export interface ArticleAuthor {
123
123
  twitter_url?: string;
124
124
  website_url?: string;
125
125
  author_page_url?: string;
126
+ /**
127
+ * schema.org `@id` for this person, shared by every site that describes
128
+ * them (blog_authors.entity_id), e.g. `https://ramseydeal.com/#person`.
129
+ * Unset: the kit uses `<author page URL>#person`.
130
+ */
131
+ entity_id?: string | null;
126
132
  same_as?: string[];
127
133
  knows_about?: string[];
128
134
  is_subject_matter_expert?: boolean;
@@ -130,6 +136,8 @@ export interface ArticleAuthor {
130
136
  featured_publications?: string[];
131
137
  awards?: string[];
132
138
  post_count?: number;
139
+ created_at?: string;
140
+ updated_at?: string;
133
141
  }
134
142
  /**
135
143
  * The public /categories endpoint guarantees only name/slug/post_count
@@ -255,7 +263,22 @@ export interface AuthorPageProps {
255
263
  author: ArticleAuthor;
256
264
  posts: Article[];
257
265
  basePath?: string;
266
+ /**
267
+ * AuthorPage is exported from the client-stamped `articles` barrel, so from
268
+ * a Server Component only serializable options survive: a function
269
+ * `authorPages` / `postPath` fails at render. For a custom author route,
270
+ * render `generateAuthorSchema` on the server and pass `jsonLd={false}`.
271
+ */
258
272
  routing?: PublicationRoutingOptions;
273
+ /** Absolute site origin, so the ProfilePage JSON-LD carries absolute URLs and a Person @id. */
274
+ siteUrl?: string;
275
+ /** Fallback employer name for the Person when the author row has no company. */
276
+ siteName?: string;
277
+ /**
278
+ * Emit the ProfilePage JSON-LD (default true). Pass false only when the
279
+ * page renders generateAuthorSchema itself, so it is never emitted twice.
280
+ */
281
+ jsonLd?: boolean;
259
282
  }
260
283
  export interface RelatedPostsProps {
261
284
  projectId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/articles/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAMzD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAElB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mFAAmF;IACnF,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAAA;IAE/B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;IAE9B,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mBAAmB;IACnB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B;qFACiF;IACjF,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC/B,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAE1E,iBAAiB;IACjB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,eAAe;IACf,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,qBAAqB,CAAA;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,aAAa,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,CAAA;IACjF,YAAY,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,CAAA;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACnG;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sHAAsH;IACtH,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,SAAS,EAAE,OAAO,CAAA;IAElB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,sFAAsF;IACtF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACjE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,SAAS,EAAE,OAAO,CAAA;CACnB;AAMD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IAEjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,GAAG,YAAY,CAAA;IACjD,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF;AAMD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC1D;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC9D;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC3C,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/articles/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkLVGSOW2F_js = require('./chunk-LVGSOW2F.js');
4
- var chunk6SBRD5KT_js = require('./chunk-6SBRD5KT.js');
4
+ var chunkPURI56RE_js = require('./chunk-PURI56RE.js');
5
5
  require('server-only');
6
6
 
7
7
  var MINT_PATH = "/api/public/site-token";
@@ -74,7 +74,7 @@ async function mintWithRetry(rawKey, apiUrl) {
74
74
  headers: {
75
75
  "content-type": "application/json",
76
76
  "x-api-key": rawKey,
77
- "x-sitekit-version": chunk6SBRD5KT_js.SITE_KIT_VERSION
77
+ "x-sitekit-version": chunkPURI56RE_js.SITE_KIT_VERSION
78
78
  },
79
79
  // Only meaningful on the fallback path, where a future Next stopped
80
80
  // exposing `_nextOriginalFetch` and we're back on the patched fetch.
@@ -126,5 +126,5 @@ async function mintWithRetry(rawKey, apiUrl) {
126
126
  }
127
127
 
128
128
  exports.resolveClientCredential = resolveClientCredential;
129
- //# sourceMappingURL=chunk-UAOQVHZW.js.map
130
- //# sourceMappingURL=chunk-UAOQVHZW.js.map
129
+ //# sourceMappingURL=chunk-34XL7TVH.js.map
130
+ //# sourceMappingURL=chunk-34XL7TVH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/mint-site-token.ts"],"names":["resolveFetch","SITE_KIT_VERSION"],"mappings":"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","file":"chunk-UAOQVHZW.js","sourcesContent":["/**\n * @sonordev/site-kit/server — Client-token minting (server-only)\n *\n * SiteKitLayout holds the raw `SONOR_API_KEY` server-side but must NOT ship it to\n * the browser. This mints a short-lived, project-scoped token (server-to-server,\n * authenticated with the raw key, no browser Origin so it passes domain-binding)\n * and returns THAT for the layout to inject instead.\n *\n * `import 'server-only'` makes importing this into a client bundle a hard build\n * error — the raw key stays on the server.\n *\n * FAILS CLOSED. If minting genuinely fails, this throws and the build fails —\n * it does NOT publish the raw key. A failed deploy is loud and recoverable; a\n * leaked project secret in public HTML is neither. The only paths that still\n * return the raw key are a 404 (an older API that predates the endpoint, an\n * expected state during rollout) and the explicit `SONOR_SITE_TOKEN_FALLBACK=raw`\n * escape hatch, for when shipping beats being blocked.\n *\n * That posture is not academic. Through 3.5.0 a throttled mint (HTTP 429)\n * returned the raw key AND cached it for 60s, so every page rendered in that\n * window shipped the secret: one real build came out with 180 of 272 prerendered\n * pages carrying it. The build \"succeeded\" and nothing downstream noticed.\n * Rate limiting is transient by definition — the fix is to wait and retry, not\n * to downgrade to publishing the key.\n *\n * Two things keep the request count low enough that throttling is rare:\n * - a module-level memo, so a worker mints once and every page reuses the seed;\n * - an in-flight map, because that memo is only populated AFTER the await. Next\n * renders pages concurrently, so without coalescing the first N concurrent\n * renders in a process all miss the cache and all fire a request — a\n * stampede per worker, multiplied by one worker per core. That is how a\n * single site exhausted a 60/min budget.\n *\n * SEED FRESHNESS: a static page's seed carries `iat` = build time, and the API\n * refuses to refresh a seed older than SITE_TOKEN_MAX_REFRESH_AGE_SECONDS\n * (sonor-api common/site-auth/site-token.util.ts — currently 400 days, raised\n * from 30 alongside this fix). A site not rebuilt within that window serves a\n * seed the client cannot refresh, and its forms/analytics/engage start failing\n * for new visitors. Keep that limit comfortably longer than the fleet's\n * realistic redeploy gap; marketing sites routinely go many months untouched.\n */\nimport 'server-only'\nimport { SITE_KIT_VERSION } from '../shared/version'\nimport { resolveFetch } from '../shared/fresh-fetch'\n\n// Re-exported for this module's unit tests; the helper lives in shared/fresh-fetch.\nexport { resolveFetch }\n\nconst MINT_PATH = '/api/public/site-token'\nconst MINT_TIMEOUT_MS = 4_000\nconst SITE_TOKEN_PREFIX = 'st1.'\n\n/**\n * Retry budget for transient failures (429 / 5xx / network). Rate limiting is\n * measured per minute, so a few seconds of backoff clears it; the whole ladder\n * costs at most ~20s once per build worker, and only when something is wrong.\n */\nconst MINT_MAX_ATTEMPTS = 4\nconst MINT_BACKOFF_BASE_MS = 500\nconst MINT_BACKOFF_CAP_MS = 8_000\n\ninterface CacheEntry {\n credential: string\n expiresAt: number\n}\nconst cache = new Map<string, CacheEntry>()\n\n/**\n * Requests already in flight, keyed by raw key. The `cache` above is only\n * written after the response lands, so concurrent renders would otherwise each\n * start their own mint. See the module header.\n */\nconst inflight = new Map<string, Promise<string>>()\n\nconst sleep = (ms: number) => new Promise<void>((r) => setTimeout(r, ms))\n\n/**\n * Honour `Retry-After` when the server sends it (delta-seconds or HTTP date),\n * otherwise exponential backoff. Capped so a misconfigured server cannot stall\n * a build indefinitely.\n */\nfunction retryDelayMs(res: Response | null, attempt: number): number {\n const header = res?.headers?.get?.('retry-after')\n if (header) {\n const seconds = Number(header)\n const ms = Number.isFinite(seconds)\n ? seconds * 1000\n : Date.parse(header) - Date.now()\n if (Number.isFinite(ms) && ms > 0) return Math.min(ms, MINT_BACKOFF_CAP_MS)\n }\n return Math.min(MINT_BACKOFF_BASE_MS * 2 ** attempt, MINT_BACKOFF_CAP_MS)\n}\n\n/** 429 and 5xx are transient; waiting is the correct response to both. */\nconst isRetryableStatus = (status: number) => status === 429 || status >= 500\n\n/**\n * The escape hatch, for when a broken mint must not block a release. Opt-in and\n * loud: it re-enables publishing the project secret in page HTML.\n */\nfunction rawFallbackAllowed(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.env?.SONOR_SITE_TOKEN_FALLBACK === 'raw'\n )\n}\n\nfunction failClosed(reason: string, rawKey: string, now: number): string {\n if (rawFallbackAllowed()) {\n console.warn(\n `[SiteKitLayout] Token mint failed (${reason}) and SONOR_SITE_TOKEN_FALLBACK=raw is set; ` +\n 'injecting the RAW API KEY into page HTML. The key is publicly readable wherever ' +\n 'this page is served — unset the escape hatch once the mint is healthy.',\n )\n cache.set(rawKey, { credential: rawKey, expiresAt: now + 60_000 })\n return rawKey\n }\n throw new Error(\n `site-kit: could not mint a site token (${reason}). Refusing to publish the raw ` +\n 'SONOR_API_KEY in page HTML, so this build fails instead. Check that the mint ' +\n 'endpoint is reachable and the key is valid, then rebuild. To ship anyway — ' +\n 'which publishes the project secret in public HTML — set SONOR_SITE_TOKEN_FALLBACK=raw.',\n )\n}\n\n/*\n * The mint uses Next's saved original fetch (resolveFetch, shared/fresh-fetch.ts,\n * which documents why). A credential is not page data: `cache: 'no-store'` would\n * bail a static route before the request goes out (verified on Next 16.2.9: the\n * mint endpoint received zero requests for a static build, and every page\n * shipped the raw key), and a Data Cache entry would let a fresh deploy re-bake a\n * months-old seed. The module-level memo above is the only cache we want: one\n * mint per build process, and a build-fresh seed on every deploy.\n */\n\n/**\n * Next signals \"this render must go dynamic\" by THROWING (DynamicServerError,\n * static-gen bailout, redirect/notFound digests, React's postpone). Those are\n * the framework's control flow, not a mint failure. Swallowing one makes Next\n * believe the render succeeded statically — which is precisely how the raw key\n * ended up stranded in prerendered HTML with no error anywhere. Let them\n * propagate; only real network/HTTP failures fall back to the raw key.\n *\n * @internal Exported for unit tests; not part of the package's public API.\n */\nexport function isFrameworkSignal(err: unknown): boolean {\n if (!err || typeof err !== 'object') return false\n const e = err as { digest?: unknown; code?: unknown; $$typeof?: unknown }\n if (e.digest === 'DYNAMIC_SERVER_USAGE') return true\n if (e.code === 'NEXT_STATIC_GEN_BAILOUT') return true\n if (typeof e.digest === 'string' && e.digest.startsWith('NEXT_')) return true\n if (e.$$typeof === Symbol.for('react.postpone')) return true\n return false\n}\n\nexport async function resolveClientCredential(\n rawKey: string,\n apiUrl: string,\n): Promise<string> {\n if (!rawKey) return ''\n // Env should hold a raw key; if it already looks like a token, pass it through.\n if (rawKey.startsWith(SITE_TOKEN_PREFIX)) return rawKey\n\n const cached = cache.get(rawKey)\n if (cached && cached.expiresAt > Date.now()) return cached.credential\n\n // Collapse concurrent renders onto one request rather than a stampede.\n const pending = inflight.get(rawKey)\n if (pending) return pending\n\n const request = mintWithRetry(rawKey, apiUrl)\n inflight.set(rawKey, request)\n try {\n return await request\n } finally {\n inflight.delete(rawKey)\n }\n}\n\nasync function mintWithRetry(rawKey: string, apiUrl: string): Promise<string> {\n const base = (apiUrl || 'https://api.sonor.io').replace(/\\/+$/, '')\n let lastReason = 'unknown error'\n\n for (let attempt = 0; attempt < MINT_MAX_ATTEMPTS; attempt++) {\n let res: Response | null = null\n try {\n const { fn: fetchFn, unpatched } = resolveFetch()\n res = await fetchFn(`${base}${MINT_PATH}`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n 'x-api-key': rawKey,\n 'x-sitekit-version': SITE_KIT_VERSION,\n },\n // Only meaningful on the fallback path, where a future Next stopped\n // exposing `_nextOriginalFetch` and we're back on the patched fetch.\n // `revalidate: false` is the one setting that neither bails out of static\n // generation nor downgrades the route to ISR; a Data Cache entry is the\n // lesser evil versus shipping the raw key again.\n ...(unpatched ? {} : ({ next: { revalidate: false } } as RequestInit)),\n signal:\n typeof AbortSignal !== 'undefined' && AbortSignal.timeout\n ? AbortSignal.timeout(MINT_TIMEOUT_MS)\n : undefined,\n })\n } catch (err) {\n // Never swallow the framework's own control flow — see isFrameworkSignal.\n if (isFrameworkSignal(err)) throw err\n lastReason = err instanceof Error ? err.message : 'network error'\n if (attempt < MINT_MAX_ATTEMPTS - 1) {\n await sleep(retryDelayMs(null, attempt))\n continue\n }\n break\n }\n\n if (res.ok) {\n const data: any = await res.json().catch(() => null)\n const token = data?.token\n const expiresIn = typeof data?.expiresIn === 'number' ? data.expiresIn : 3600\n if (typeof token === 'string' && token.startsWith(SITE_TOKEN_PREFIX)) {\n cache.set(rawKey, {\n credential: token,\n expiresAt: Date.now() + Math.min((expiresIn * 1000) / 2, 30 * 60_000),\n })\n return token\n }\n lastReason = 'mint returned no usable token'\n break\n }\n\n // 404 = an API older than the endpoint. Expected during rollout, and the raw\n // key is exactly what such an API still expects, so this stays a fallback\n // rather than a build failure.\n if (res.status === 404) {\n cache.set(rawKey, { credential: rawKey, expiresAt: Date.now() + 60_000 })\n return rawKey\n }\n\n lastReason = `HTTP ${res.status}`\n if (isRetryableStatus(res.status) && attempt < MINT_MAX_ATTEMPTS - 1) {\n const delay = retryDelayMs(res, attempt)\n console.warn(\n `[SiteKitLayout] Token mint returned ${res.status}; retrying in ${Math.round(delay)}ms ` +\n `(attempt ${attempt + 2}/${MINT_MAX_ATTEMPTS}).`,\n )\n await sleep(delay)\n continue\n }\n break\n }\n\n return failClosed(lastReason, rawKey, Date.now())\n}\n"]}
1
+ {"version":3,"sources":["../src/server/mint-site-token.ts"],"names":["resolveFetch","SITE_KIT_VERSION"],"mappings":"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","file":"chunk-34XL7TVH.js","sourcesContent":["/**\n * @sonordev/site-kit/server — Client-token minting (server-only)\n *\n * SiteKitLayout holds the raw `SONOR_API_KEY` server-side but must NOT ship it to\n * the browser. This mints a short-lived, project-scoped token (server-to-server,\n * authenticated with the raw key, no browser Origin so it passes domain-binding)\n * and returns THAT for the layout to inject instead.\n *\n * `import 'server-only'` makes importing this into a client bundle a hard build\n * error — the raw key stays on the server.\n *\n * FAILS CLOSED. If minting genuinely fails, this throws and the build fails —\n * it does NOT publish the raw key. A failed deploy is loud and recoverable; a\n * leaked project secret in public HTML is neither. The only paths that still\n * return the raw key are a 404 (an older API that predates the endpoint, an\n * expected state during rollout) and the explicit `SONOR_SITE_TOKEN_FALLBACK=raw`\n * escape hatch, for when shipping beats being blocked.\n *\n * That posture is not academic. Through 3.5.0 a throttled mint (HTTP 429)\n * returned the raw key AND cached it for 60s, so every page rendered in that\n * window shipped the secret: one real build came out with 180 of 272 prerendered\n * pages carrying it. The build \"succeeded\" and nothing downstream noticed.\n * Rate limiting is transient by definition — the fix is to wait and retry, not\n * to downgrade to publishing the key.\n *\n * Two things keep the request count low enough that throttling is rare:\n * - a module-level memo, so a worker mints once and every page reuses the seed;\n * - an in-flight map, because that memo is only populated AFTER the await. Next\n * renders pages concurrently, so without coalescing the first N concurrent\n * renders in a process all miss the cache and all fire a request — a\n * stampede per worker, multiplied by one worker per core. That is how a\n * single site exhausted a 60/min budget.\n *\n * SEED FRESHNESS: a static page's seed carries `iat` = build time, and the API\n * refuses to refresh a seed older than SITE_TOKEN_MAX_REFRESH_AGE_SECONDS\n * (sonor-api common/site-auth/site-token.util.ts — currently 400 days, raised\n * from 30 alongside this fix). A site not rebuilt within that window serves a\n * seed the client cannot refresh, and its forms/analytics/engage start failing\n * for new visitors. Keep that limit comfortably longer than the fleet's\n * realistic redeploy gap; marketing sites routinely go many months untouched.\n */\nimport 'server-only'\nimport { SITE_KIT_VERSION } from '../shared/version'\nimport { resolveFetch } from '../shared/fresh-fetch'\n\n// Re-exported for this module's unit tests; the helper lives in shared/fresh-fetch.\nexport { resolveFetch }\n\nconst MINT_PATH = '/api/public/site-token'\nconst MINT_TIMEOUT_MS = 4_000\nconst SITE_TOKEN_PREFIX = 'st1.'\n\n/**\n * Retry budget for transient failures (429 / 5xx / network). Rate limiting is\n * measured per minute, so a few seconds of backoff clears it; the whole ladder\n * costs at most ~20s once per build worker, and only when something is wrong.\n */\nconst MINT_MAX_ATTEMPTS = 4\nconst MINT_BACKOFF_BASE_MS = 500\nconst MINT_BACKOFF_CAP_MS = 8_000\n\ninterface CacheEntry {\n credential: string\n expiresAt: number\n}\nconst cache = new Map<string, CacheEntry>()\n\n/**\n * Requests already in flight, keyed by raw key. The `cache` above is only\n * written after the response lands, so concurrent renders would otherwise each\n * start their own mint. See the module header.\n */\nconst inflight = new Map<string, Promise<string>>()\n\nconst sleep = (ms: number) => new Promise<void>((r) => setTimeout(r, ms))\n\n/**\n * Honour `Retry-After` when the server sends it (delta-seconds or HTTP date),\n * otherwise exponential backoff. Capped so a misconfigured server cannot stall\n * a build indefinitely.\n */\nfunction retryDelayMs(res: Response | null, attempt: number): number {\n const header = res?.headers?.get?.('retry-after')\n if (header) {\n const seconds = Number(header)\n const ms = Number.isFinite(seconds)\n ? seconds * 1000\n : Date.parse(header) - Date.now()\n if (Number.isFinite(ms) && ms > 0) return Math.min(ms, MINT_BACKOFF_CAP_MS)\n }\n return Math.min(MINT_BACKOFF_BASE_MS * 2 ** attempt, MINT_BACKOFF_CAP_MS)\n}\n\n/** 429 and 5xx are transient; waiting is the correct response to both. */\nconst isRetryableStatus = (status: number) => status === 429 || status >= 500\n\n/**\n * The escape hatch, for when a broken mint must not block a release. Opt-in and\n * loud: it re-enables publishing the project secret in page HTML.\n */\nfunction rawFallbackAllowed(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.env?.SONOR_SITE_TOKEN_FALLBACK === 'raw'\n )\n}\n\nfunction failClosed(reason: string, rawKey: string, now: number): string {\n if (rawFallbackAllowed()) {\n console.warn(\n `[SiteKitLayout] Token mint failed (${reason}) and SONOR_SITE_TOKEN_FALLBACK=raw is set; ` +\n 'injecting the RAW API KEY into page HTML. The key is publicly readable wherever ' +\n 'this page is served — unset the escape hatch once the mint is healthy.',\n )\n cache.set(rawKey, { credential: rawKey, expiresAt: now + 60_000 })\n return rawKey\n }\n throw new Error(\n `site-kit: could not mint a site token (${reason}). Refusing to publish the raw ` +\n 'SONOR_API_KEY in page HTML, so this build fails instead. Check that the mint ' +\n 'endpoint is reachable and the key is valid, then rebuild. To ship anyway — ' +\n 'which publishes the project secret in public HTML — set SONOR_SITE_TOKEN_FALLBACK=raw.',\n )\n}\n\n/*\n * The mint uses Next's saved original fetch (resolveFetch, shared/fresh-fetch.ts,\n * which documents why). A credential is not page data: `cache: 'no-store'` would\n * bail a static route before the request goes out (verified on Next 16.2.9: the\n * mint endpoint received zero requests for a static build, and every page\n * shipped the raw key), and a Data Cache entry would let a fresh deploy re-bake a\n * months-old seed. The module-level memo above is the only cache we want: one\n * mint per build process, and a build-fresh seed on every deploy.\n */\n\n/**\n * Next signals \"this render must go dynamic\" by THROWING (DynamicServerError,\n * static-gen bailout, redirect/notFound digests, React's postpone). Those are\n * the framework's control flow, not a mint failure. Swallowing one makes Next\n * believe the render succeeded statically — which is precisely how the raw key\n * ended up stranded in prerendered HTML with no error anywhere. Let them\n * propagate; only real network/HTTP failures fall back to the raw key.\n *\n * @internal Exported for unit tests; not part of the package's public API.\n */\nexport function isFrameworkSignal(err: unknown): boolean {\n if (!err || typeof err !== 'object') return false\n const e = err as { digest?: unknown; code?: unknown; $$typeof?: unknown }\n if (e.digest === 'DYNAMIC_SERVER_USAGE') return true\n if (e.code === 'NEXT_STATIC_GEN_BAILOUT') return true\n if (typeof e.digest === 'string' && e.digest.startsWith('NEXT_')) return true\n if (e.$$typeof === Symbol.for('react.postpone')) return true\n return false\n}\n\nexport async function resolveClientCredential(\n rawKey: string,\n apiUrl: string,\n): Promise<string> {\n if (!rawKey) return ''\n // Env should hold a raw key; if it already looks like a token, pass it through.\n if (rawKey.startsWith(SITE_TOKEN_PREFIX)) return rawKey\n\n const cached = cache.get(rawKey)\n if (cached && cached.expiresAt > Date.now()) return cached.credential\n\n // Collapse concurrent renders onto one request rather than a stampede.\n const pending = inflight.get(rawKey)\n if (pending) return pending\n\n const request = mintWithRetry(rawKey, apiUrl)\n inflight.set(rawKey, request)\n try {\n return await request\n } finally {\n inflight.delete(rawKey)\n }\n}\n\nasync function mintWithRetry(rawKey: string, apiUrl: string): Promise<string> {\n const base = (apiUrl || 'https://api.sonor.io').replace(/\\/+$/, '')\n let lastReason = 'unknown error'\n\n for (let attempt = 0; attempt < MINT_MAX_ATTEMPTS; attempt++) {\n let res: Response | null = null\n try {\n const { fn: fetchFn, unpatched } = resolveFetch()\n res = await fetchFn(`${base}${MINT_PATH}`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n 'x-api-key': rawKey,\n 'x-sitekit-version': SITE_KIT_VERSION,\n },\n // Only meaningful on the fallback path, where a future Next stopped\n // exposing `_nextOriginalFetch` and we're back on the patched fetch.\n // `revalidate: false` is the one setting that neither bails out of static\n // generation nor downgrades the route to ISR; a Data Cache entry is the\n // lesser evil versus shipping the raw key again.\n ...(unpatched ? {} : ({ next: { revalidate: false } } as RequestInit)),\n signal:\n typeof AbortSignal !== 'undefined' && AbortSignal.timeout\n ? AbortSignal.timeout(MINT_TIMEOUT_MS)\n : undefined,\n })\n } catch (err) {\n // Never swallow the framework's own control flow — see isFrameworkSignal.\n if (isFrameworkSignal(err)) throw err\n lastReason = err instanceof Error ? err.message : 'network error'\n if (attempt < MINT_MAX_ATTEMPTS - 1) {\n await sleep(retryDelayMs(null, attempt))\n continue\n }\n break\n }\n\n if (res.ok) {\n const data: any = await res.json().catch(() => null)\n const token = data?.token\n const expiresIn = typeof data?.expiresIn === 'number' ? data.expiresIn : 3600\n if (typeof token === 'string' && token.startsWith(SITE_TOKEN_PREFIX)) {\n cache.set(rawKey, {\n credential: token,\n expiresAt: Date.now() + Math.min((expiresIn * 1000) / 2, 30 * 60_000),\n })\n return token\n }\n lastReason = 'mint returned no usable token'\n break\n }\n\n // 404 = an API older than the endpoint. Expected during rollout, and the raw\n // key is exactly what such an API still expects, so this stays a fallback\n // rather than a build failure.\n if (res.status === 404) {\n cache.set(rawKey, { credential: rawKey, expiresAt: Date.now() + 60_000 })\n return rawKey\n }\n\n lastReason = `HTTP ${res.status}`\n if (isRetryableStatus(res.status) && attempt < MINT_MAX_ATTEMPTS - 1) {\n const delay = retryDelayMs(res, attempt)\n console.warn(\n `[SiteKitLayout] Token mint returned ${res.status}; retrying in ${Math.round(delay)}ms ` +\n `(attempt ${attempt + 2}/${MINT_MAX_ATTEMPTS}).`,\n )\n await sleep(delay)\n continue\n }\n break\n }\n\n return failClosed(lastReason, rawKey, Date.now())\n}\n"]}
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ var chunk55J2KE7D_js = require('./chunk-55J2KE7D.js');
4
+
5
+ // src/articles/artwork.ts
6
+ function resolveArticleArtwork(post, placement = "card") {
7
+ const editorial = placement === "article" && !!post.editorial_image;
8
+ const src = (editorial ? post.editorial_image : post.featured_image) || void 0;
9
+ const alt = editorial ? post.editorial_image_alt ?? "" : post.featured_image_alt ?? post.title ?? "";
10
+ let composed = false;
11
+ if (src) {
12
+ try {
13
+ composed = /\/Blog\/Cards\//i.test(new URL(src, "https://site-kit.invalid").pathname);
14
+ } catch {
15
+ }
16
+ }
17
+ return { src, alt, composed };
18
+ }
19
+ function articleArtworkImageStyle(artwork) {
20
+ return artwork.composed ? { display: "block", height: "auto", maxHeight: "none", objectFit: "contain", transform: "none" } : void 0;
21
+ }
22
+
23
+ // src/articles/author-schema.ts
24
+ var ARTICLE_TYPES = /* @__PURE__ */ new Set(["Article", "BlogPosting", "NewsArticle", "TechArticle", "Report", "ScholarlyArticle"]);
25
+ function isAbsoluteUrl(value) {
26
+ return /^https?:\/\//i.test(value);
27
+ }
28
+ function routedAuthorPageUrl(author, options) {
29
+ return chunk55J2KE7D_js.resolvePublicationUrl(chunk55J2KE7D_js.createPublicationRoutes(options).author(author.slug), options.siteUrl ?? "");
30
+ }
31
+ function authorProfileUrl(author, options) {
32
+ return author.author_page_url?.trim() || routedAuthorPageUrl(author, options);
33
+ }
34
+ function authorEntityId(author, profileUrl) {
35
+ const explicit = author.entity_id?.trim();
36
+ if (explicit) return explicit;
37
+ if (!profileUrl || !isAbsoluteUrl(profileUrl)) return void 0;
38
+ return `${profileUrl.replace(/#.*$/, "")}#person`;
39
+ }
40
+ function generateAuthorPersonSchema(author, options = {}) {
41
+ const { siteUrl, siteName } = options;
42
+ const sameAs = [...author.same_as || []];
43
+ if (author.linkedin_url) sameAs.push(author.linkedin_url);
44
+ if (author.twitter_url) sameAs.push(author.twitter_url);
45
+ if (author.website_url) sameAs.push(author.website_url);
46
+ if (author.social_links?.twitter) sameAs.push(`https://twitter.com/${author.social_links.twitter}`);
47
+ if (author.social_links?.linkedin) sameAs.push(author.social_links.linkedin);
48
+ if (author.social_links?.github) sameAs.push(`https://github.com/${author.social_links.github}`);
49
+ const uniqueSameAs = [...new Set(sameAs.filter(Boolean))];
50
+ const url = authorProfileUrl(author, options);
51
+ const id = authorEntityId(author, url);
52
+ const person = {
53
+ "@type": "Person",
54
+ ...id ? { "@id": id } : {},
55
+ name: author.name,
56
+ url
57
+ };
58
+ if (author.title) person.jobTitle = author.title;
59
+ if (author.company || siteName) {
60
+ person.worksFor = {
61
+ "@type": "Organization",
62
+ name: author.company || siteName,
63
+ ...siteUrl ? { url: siteUrl } : {}
64
+ };
65
+ }
66
+ if (author.bio || author.short_bio) person.description = author.short_bio || author.bio;
67
+ if (author.avatar_url) person.image = author.avatar_url;
68
+ if (uniqueSameAs.length > 0) person.sameAs = uniqueSameAs;
69
+ if (author.knows_about && author.knows_about.length > 0) person.knowsAbout = author.knows_about;
70
+ if (author.credentials && author.credentials.length > 0) {
71
+ person.hasCredential = author.credentials.map((c) => ({
72
+ "@type": "EducationalOccupationalCredential",
73
+ credentialCategory: c
74
+ }));
75
+ }
76
+ return person;
77
+ }
78
+ function generateAuthorSchema(author, options = {}) {
79
+ const pageUrl = routedAuthorPageUrl(author, options);
80
+ const schema = {
81
+ "@context": "https://schema.org",
82
+ "@type": "ProfilePage",
83
+ ...isAbsoluteUrl(pageUrl) ? { "@id": `${pageUrl}#profilepage` } : {},
84
+ url: pageUrl,
85
+ name: author.name,
86
+ mainEntity: generateAuthorPersonSchema(author, options)
87
+ };
88
+ if (author.created_at) schema.dateCreated = author.created_at;
89
+ if (author.updated_at) schema.dateModified = author.updated_at;
90
+ return schema;
91
+ }
92
+ function generateArticleAuthorNode(author, options = {}) {
93
+ if (!author) return void 0;
94
+ if (typeof author === "string") {
95
+ const name = author.trim();
96
+ return name ? { "@type": "Person", name } : void 0;
97
+ }
98
+ if (!author.name) return void 0;
99
+ const url = author.author_page_url?.trim() || (options.authorPages && author.slug ? routedAuthorPageUrl(author, options) : void 0);
100
+ const id = authorEntityId(author, url);
101
+ return {
102
+ "@type": "Person",
103
+ ...id ? { "@id": id } : {},
104
+ name: author.name,
105
+ ...url ? { url } : {}
106
+ };
107
+ }
108
+ function withArticleAuthorIdentity(node, author, options = {}) {
109
+ if (!node || typeof node !== "object" || Array.isArray(node)) return node;
110
+ const record = node;
111
+ const types = [].concat(record["@type"]);
112
+ if (!types.some((t) => typeof t === "string" && ARTICLE_TYPES.has(t))) return node;
113
+ const stored = record.author;
114
+ if (!stored || typeof stored !== "object" || Array.isArray(stored)) return node;
115
+ const byline = stored;
116
+ if (byline["@type"] !== "Person" || typeof byline.name !== "string") return node;
117
+ const identity = generateArticleAuthorNode(author, options);
118
+ if (!identity || typeof identity.name !== "string") return node;
119
+ if (identity.name.trim().toLowerCase() !== byline.name.trim().toLowerCase()) return node;
120
+ const additions = {};
121
+ if (!byline["@id"] && identity["@id"]) additions["@id"] = identity["@id"];
122
+ if (!byline.url && identity.url) additions.url = identity.url;
123
+ if (Object.keys(additions).length === 0) return node;
124
+ return { ...record, author: { ...byline, ...additions } };
125
+ }
126
+
127
+ exports.articleArtworkImageStyle = articleArtworkImageStyle;
128
+ exports.authorEntityId = authorEntityId;
129
+ exports.generateArticleAuthorNode = generateArticleAuthorNode;
130
+ exports.generateAuthorPersonSchema = generateAuthorPersonSchema;
131
+ exports.generateAuthorSchema = generateAuthorSchema;
132
+ exports.resolveArticleArtwork = resolveArticleArtwork;
133
+ exports.withArticleAuthorIdentity = withArticleAuthorIdentity;
134
+ //# sourceMappingURL=chunk-3AOKYAZ2.js.map
135
+ //# sourceMappingURL=chunk-3AOKYAZ2.js.map