@sonordev/site-kit 6.2.0 → 6.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/agent-manifest.json +7 -1
  2. package/dist/{AnalyticsProvider-AT5XFQKT.js → AnalyticsProvider-G46LCH3V.js} +10 -10
  3. package/dist/{AnalyticsProvider-AT5XFQKT.js.map → AnalyticsProvider-G46LCH3V.js.map} +1 -1
  4. package/dist/{AnalyticsProvider-KPK3N52Q.mjs → AnalyticsProvider-IYGKHMVM.mjs} +6 -6
  5. package/dist/{AnalyticsProvider-KPK3N52Q.mjs.map → AnalyticsProvider-IYGKHMVM.mjs.map} +1 -1
  6. package/dist/{ArticleViewTracker-3PFASMTC.js → ArticleViewTracker-3USIHB4O.js} +6 -6
  7. package/dist/{ArticleViewTracker-3PFASMTC.js.map → ArticleViewTracker-3USIHB4O.js.map} +1 -1
  8. package/dist/{ArticleViewTracker-KIKKHBO6.mjs → ArticleViewTracker-7GEI37VK.mjs} +5 -5
  9. package/dist/{ArticleViewTracker-KIKKHBO6.mjs.map → ArticleViewTracker-7GEI37VK.mjs.map} +1 -1
  10. package/dist/ChatWidget-36IDUB53.mjs +17 -0
  11. package/dist/{ChatWidget-6PXV6RSI.mjs.map → ChatWidget-36IDUB53.mjs.map} +1 -1
  12. package/dist/{ChatWidget-D27PSWMO.js → ChatWidget-VP3QQJA6.js} +11 -11
  13. package/dist/{ChatWidget-D27PSWMO.js.map → ChatWidget-VP3QQJA6.js.map} +1 -1
  14. package/dist/EngageWidget-ILRTLGBB.mjs +12 -0
  15. package/dist/{EngageWidget-YRTVPYAY.mjs.map → EngageWidget-ILRTLGBB.mjs.map} +1 -1
  16. package/dist/EngageWidget-YHMSB4YE.js +21 -0
  17. package/dist/{EngageWidget-SPZL3KPX.js.map → EngageWidget-YHMSB4YE.js.map} +1 -1
  18. package/dist/{FileField-GXNG2LH2.mjs → FileField-DXGPA4OB.mjs} +5 -5
  19. package/dist/{FileField-GXNG2LH2.mjs.map → FileField-DXGPA4OB.mjs.map} +1 -1
  20. package/dist/{FileField-6RC33ORG.js → FileField-LMSLNNRX.js} +6 -6
  21. package/dist/{FileField-6RC33ORG.js.map → FileField-LMSLNNRX.js.map} +1 -1
  22. package/dist/{FormSpotlight-73E2CMV6.js → FormSpotlight-5BQCAXIO.js} +9 -9
  23. package/dist/{FormSpotlight-73E2CMV6.js.map → FormSpotlight-5BQCAXIO.js.map} +1 -1
  24. package/dist/{FormSpotlight-YDUF3TSC.mjs → FormSpotlight-SEJ4NJHG.mjs} +3 -3
  25. package/dist/{FormSpotlight-YDUF3TSC.mjs.map → FormSpotlight-SEJ4NJHG.mjs.map} +1 -1
  26. package/dist/{FormStage-VJZHYW6J.mjs → FormStage-6OLDPLYU.mjs} +3 -3
  27. package/dist/{FormStage-VJZHYW6J.mjs.map → FormStage-6OLDPLYU.mjs.map} +1 -1
  28. package/dist/{FormStage-BL5FREFE.js → FormStage-ZRXENSYN.js} +9 -9
  29. package/dist/{FormStage-BL5FREFE.js.map → FormStage-ZRXENSYN.js.map} +1 -1
  30. package/dist/ManagedForm-AIPXF5QY.mjs +16 -0
  31. package/dist/{ManagedForm-Z2S37RFX.mjs.map → ManagedForm-AIPXF5QY.mjs.map} +1 -1
  32. package/dist/ManagedForm-T464AA5B.js +25 -0
  33. package/dist/{ManagedForm-FUIOTKSI.js.map → ManagedForm-T464AA5B.js.map} +1 -1
  34. package/dist/{ManagedNewsletterForm-3D3IW6JG.js → ManagedNewsletterForm-HKNXIKDV.js} +8 -8
  35. package/dist/{ManagedNewsletterForm-3D3IW6JG.js.map → ManagedNewsletterForm-HKNXIKDV.js.map} +1 -1
  36. package/dist/{ManagedNewsletterForm-ZXASCHZV.mjs → ManagedNewsletterForm-UGDUBYR3.mjs} +7 -7
  37. package/dist/{ManagedNewsletterForm-ZXASCHZV.mjs.map → ManagedNewsletterForm-UGDUBYR3.mjs.map} +1 -1
  38. package/dist/{SignalCore-LKSU7UYG.mjs → SignalCore-O3GEJZCN.mjs} +5 -5
  39. package/dist/{SignalCore-LKSU7UYG.mjs.map → SignalCore-O3GEJZCN.mjs.map} +1 -1
  40. package/dist/{SignalCore-RNMT4ZP4.js → SignalCore-OOQHKIUZ.js} +11 -11
  41. package/dist/{SignalCore-RNMT4ZP4.js.map → SignalCore-OOQHKIUZ.js.map} +1 -1
  42. package/dist/SitemapSync-MT3I4W3B.js +18 -0
  43. package/dist/{SitemapSync-IDJ3PXER.js.map → SitemapSync-MT3I4W3B.js.map} +1 -1
  44. package/dist/SitemapSync-RG554AJR.mjs +9 -0
  45. package/dist/{SitemapSync-NTYKLAEH.mjs.map → SitemapSync-RG554AJR.mjs.map} +1 -1
  46. package/dist/admin-auth/index.d.ts +117 -0
  47. package/dist/admin-auth/index.d.ts.map +1 -0
  48. package/dist/admin-auth/index.js +0 -0
  49. package/dist/admin-auth/index.js.map +1 -0
  50. package/dist/admin-auth/index.mjs +0 -0
  51. package/dist/admin-auth/index.mjs.map +1 -0
  52. package/dist/admin-auth/session.d.ts +32 -0
  53. package/dist/admin-auth/session.d.ts.map +1 -0
  54. package/dist/analytics/index.js +9 -9
  55. package/dist/analytics/index.mjs +4 -4
  56. package/dist/articles/index.js +1 -1
  57. package/dist/articles/index.mjs +1 -1
  58. package/dist/articles/server-ui.js +1 -1
  59. package/dist/articles/server-ui.mjs +1 -1
  60. package/dist/{chunk-UTCZNQ4G.js → chunk-2LX7LHAO.js} +5 -5
  61. package/dist/{chunk-UTCZNQ4G.js.map → chunk-2LX7LHAO.js.map} +1 -1
  62. package/dist/{chunk-W7D27SYJ.mjs → chunk-3EOUKWHB.mjs} +3 -3
  63. package/dist/{chunk-W7D27SYJ.mjs.map → chunk-3EOUKWHB.mjs.map} +1 -1
  64. package/dist/{chunk-3T74AR7S.mjs → chunk-4EXBEFIV.mjs} +4 -4
  65. package/dist/{chunk-3T74AR7S.mjs.map → chunk-4EXBEFIV.mjs.map} +1 -1
  66. package/dist/{chunk-JOSSKN4J.mjs → chunk-4HSZPHF7.mjs} +3 -3
  67. package/dist/{chunk-JOSSKN4J.mjs.map → chunk-4HSZPHF7.mjs.map} +1 -1
  68. package/dist/{chunk-WI6RV2U4.js → chunk-4KSE642V.js} +18 -18
  69. package/dist/{chunk-WI6RV2U4.js.map → chunk-4KSE642V.js.map} +1 -1
  70. package/dist/{chunk-TIFVAASU.mjs → chunk-5YA6SI4Z.mjs} +2 -2
  71. package/dist/{chunk-W6GQNGIM.js → chunk-6FASIYCV.js} +4 -4
  72. package/dist/{chunk-W6GQNGIM.js.map → chunk-6FASIYCV.js.map} +1 -1
  73. package/dist/{chunk-T742S2CY.js → chunk-6TSYWYYR.js} +4 -4
  74. package/dist/{chunk-T742S2CY.js.map → chunk-6TSYWYYR.js.map} +1 -1
  75. package/dist/{chunk-IPLOSM5F.js → chunk-6WWGH6E3.js} +14 -14
  76. package/dist/{chunk-IPLOSM5F.js.map → chunk-6WWGH6E3.js.map} +1 -1
  77. package/dist/{chunk-S4LTYXPR.mjs → chunk-7YFUX2CL.mjs} +3 -3
  78. package/dist/{chunk-S4LTYXPR.mjs.map → chunk-7YFUX2CL.mjs.map} +1 -1
  79. package/dist/{chunk-OASA6M53.js → chunk-A3QAZJXC.js} +5 -5
  80. package/dist/{chunk-OASA6M53.js.map → chunk-A3QAZJXC.js.map} +1 -1
  81. package/dist/{chunk-RKRCWQBU.js → chunk-A4WYSHIX.js} +3 -3
  82. package/dist/{chunk-RKRCWQBU.js.map → chunk-A4WYSHIX.js.map} +1 -1
  83. package/dist/{chunk-7OOPIYLP.mjs → chunk-A5R62CXI.mjs} +3 -3
  84. package/dist/{chunk-7OOPIYLP.mjs.map → chunk-A5R62CXI.mjs.map} +1 -1
  85. package/dist/chunk-C654VCWV.mjs +6 -0
  86. package/dist/{chunk-SIHPFJ6C.mjs.map → chunk-C654VCWV.mjs.map} +1 -1
  87. package/dist/{chunk-JLVKZTYZ.mjs → chunk-DUFU27R2.mjs} +3 -3
  88. package/dist/{chunk-JLVKZTYZ.mjs.map → chunk-DUFU27R2.mjs.map} +1 -1
  89. package/dist/{chunk-7JRFYQKN.js → chunk-FVATDBFX.js} +10 -10
  90. package/dist/{chunk-7JRFYQKN.js.map → chunk-FVATDBFX.js.map} +1 -1
  91. package/dist/{chunk-RWJ3IJUP.js → chunk-GE3CGR2T.js} +14 -14
  92. package/dist/{chunk-RWJ3IJUP.js.map → chunk-GE3CGR2T.js.map} +1 -1
  93. package/dist/{chunk-ZRD75SE5.mjs → chunk-HIG7COWF.mjs} +3 -3
  94. package/dist/{chunk-ZRD75SE5.mjs.map → chunk-HIG7COWF.mjs.map} +1 -1
  95. package/dist/{chunk-YNI7WQJN.js → chunk-HY6EXWLZ.js} +8 -8
  96. package/dist/{chunk-YNI7WQJN.js.map → chunk-HY6EXWLZ.js.map} +1 -1
  97. package/dist/{chunk-XXSSUCJB.js → chunk-I7AZC5ZQ.js} +2 -2
  98. package/dist/{chunk-EJTRU275.mjs → chunk-IDBA3YZ6.mjs} +4 -4
  99. package/dist/{chunk-EJTRU275.mjs.map → chunk-IDBA3YZ6.mjs.map} +1 -1
  100. package/dist/{chunk-7K6L33BX.mjs → chunk-JOYMIGR2.mjs} +22 -22
  101. package/dist/{chunk-A4WTX36Y.js → chunk-JPXT5LY2.js} +12 -12
  102. package/dist/{chunk-A4WTX36Y.js.map → chunk-JPXT5LY2.js.map} +1 -1
  103. package/dist/{chunk-4FWJ5K5O.mjs → chunk-JS265UKZ.mjs} +3 -3
  104. package/dist/{chunk-4FWJ5K5O.mjs.map → chunk-JS265UKZ.mjs.map} +1 -1
  105. package/dist/{chunk-ATPQ6264.js → chunk-JS75ORH7.js} +24 -24
  106. package/dist/{chunk-22WIVF4O.mjs → chunk-KAJT3MOM.mjs} +4 -4
  107. package/dist/{chunk-22WIVF4O.mjs.map → chunk-KAJT3MOM.mjs.map} +1 -1
  108. package/dist/{chunk-53OU4TGU.mjs → chunk-KUDSEKV7.mjs} +4 -4
  109. package/dist/{chunk-53OU4TGU.mjs.map → chunk-KUDSEKV7.mjs.map} +1 -1
  110. package/dist/{chunk-RT7XKV6A.mjs → chunk-MWIIHMYS.mjs} +4 -4
  111. package/dist/{chunk-RT7XKV6A.mjs.map → chunk-MWIIHMYS.mjs.map} +1 -1
  112. package/dist/{chunk-3NDDCSWR.js → chunk-NKBPEZCX.js} +15 -15
  113. package/dist/{chunk-3NDDCSWR.js.map → chunk-NKBPEZCX.js.map} +1 -1
  114. package/dist/{chunk-ZUQSVCMD.js → chunk-NN2YE5WT.js} +3 -3
  115. package/dist/{chunk-RH4XEXTK.mjs → chunk-NNZDWY3L.mjs} +3 -3
  116. package/dist/{chunk-UPF6HX5C.mjs → chunk-NO4JQ2G3.mjs} +7 -7
  117. package/dist/{chunk-UPF6HX5C.mjs.map → chunk-NO4JQ2G3.mjs.map} +1 -1
  118. package/dist/{chunk-TBAP7JNJ.mjs → chunk-OUM77VZ4.mjs} +3 -3
  119. package/dist/{chunk-TBAP7JNJ.mjs.map → chunk-OUM77VZ4.mjs.map} +1 -1
  120. package/dist/{chunk-ZRCA5YGZ.js → chunk-QRL3QDUE.js} +4 -4
  121. package/dist/{chunk-ZRCA5YGZ.js.map → chunk-QRL3QDUE.js.map} +1 -1
  122. package/dist/{chunk-NJVU2DCX.js → chunk-QRN6HQOX.js} +15 -15
  123. package/dist/{chunk-NJVU2DCX.js.map → chunk-QRN6HQOX.js.map} +1 -1
  124. package/dist/{chunk-RKWBC43M.mjs → chunk-RH46WZRN.mjs} +3 -3
  125. package/dist/{chunk-RKWBC43M.mjs.map → chunk-RH46WZRN.mjs.map} +1 -1
  126. package/dist/{chunk-BYVAXSH5.js → chunk-RZUUPX2H.js} +6 -6
  127. package/dist/{chunk-BYVAXSH5.js.map → chunk-RZUUPX2H.js.map} +1 -1
  128. package/dist/{chunk-7JYLE3X6.js → chunk-S4DTX5E7.js} +4 -4
  129. package/dist/{chunk-7JYLE3X6.js.map → chunk-S4DTX5E7.js.map} +1 -1
  130. package/dist/{chunk-5IOMLUQS.js → chunk-S7S6ZZ3R.js} +7 -7
  131. package/dist/{chunk-5IOMLUQS.js.map → chunk-S7S6ZZ3R.js.map} +1 -1
  132. package/dist/{chunk-P2UCNCQZ.mjs → chunk-TDJZFBHI.mjs} +4 -4
  133. package/dist/{chunk-P2UCNCQZ.mjs.map → chunk-TDJZFBHI.mjs.map} +1 -1
  134. package/dist/{chunk-RPDSNMVR.js → chunk-U274XAMD.js} +11 -11
  135. package/dist/{chunk-RPDSNMVR.js.map → chunk-U274XAMD.js.map} +1 -1
  136. package/dist/{chunk-ITJ5ZF33.js → chunk-UFG2TUBG.js} +3 -3
  137. package/dist/{chunk-ITJ5ZF33.js.map → chunk-UFG2TUBG.js.map} +1 -1
  138. package/dist/{chunk-5L46GS7N.js → chunk-W4NTPOBD.js} +6 -6
  139. package/dist/{chunk-5L46GS7N.js.map → chunk-W4NTPOBD.js.map} +1 -1
  140. package/dist/{chunk-UV3HJDMT.mjs → chunk-W5MHX6SO.mjs} +3 -3
  141. package/dist/{chunk-UV3HJDMT.mjs.map → chunk-W5MHX6SO.mjs.map} +1 -1
  142. package/dist/{chunk-GSH4DBAD.mjs → chunk-WIRGZMM5.mjs} +3 -3
  143. package/dist/{chunk-GSH4DBAD.mjs.map → chunk-WIRGZMM5.mjs.map} +1 -1
  144. package/dist/{chunk-ZZ6P27A5.mjs → chunk-XNZ2WFXR.mjs} +4 -4
  145. package/dist/{chunk-ZZ6P27A5.mjs.map → chunk-XNZ2WFXR.mjs.map} +1 -1
  146. package/dist/{chunk-IXJ2H4MU.mjs → chunk-XV2FFSJU.mjs} +8 -8
  147. package/dist/{chunk-IXJ2H4MU.mjs.map → chunk-XV2FFSJU.mjs.map} +1 -1
  148. package/dist/{chunk-Y63EG5CW.js → chunk-YCE6HRWW.js} +8 -8
  149. package/dist/{chunk-Y63EG5CW.js.map → chunk-YCE6HRWW.js.map} +1 -1
  150. package/dist/{chunk-XAPGVZNN.mjs → chunk-YOS4A3QE.mjs} +3 -3
  151. package/dist/{chunk-XAPGVZNN.mjs.map → chunk-YOS4A3QE.mjs.map} +1 -1
  152. package/dist/{chunk-EG3F5AHL.mjs → chunk-YUCKBIRE.mjs} +4 -4
  153. package/dist/{chunk-EG3F5AHL.mjs.map → chunk-YUCKBIRE.mjs.map} +1 -1
  154. package/dist/{chunk-CRIZNSD2.js → chunk-YYOGUTLV.js} +3 -3
  155. package/dist/{chunk-CRIZNSD2.js.map → chunk-YYOGUTLV.js.map} +1 -1
  156. package/dist/chunk-ZKOQCKOR.js +8 -0
  157. package/dist/{chunk-LGFRHT34.js.map → chunk-ZKOQCKOR.js.map} +1 -1
  158. package/dist/cli/index.js +211 -211
  159. package/dist/cli/index.mjs +151 -151
  160. package/dist/client/index.js +4 -4
  161. package/dist/client/index.mjs +3 -3
  162. package/dist/commerce/index.js +57 -57
  163. package/dist/commerce/index.mjs +5 -5
  164. package/dist/engage/ChatWidget.d.ts +7 -6
  165. package/dist/engage/ChatWidget.d.ts.map +1 -1
  166. package/dist/engage/index.js +10 -10
  167. package/dist/engage/index.mjs +7 -7
  168. package/dist/fleet/index.js +8 -8
  169. package/dist/fleet/index.mjs +4 -4
  170. package/dist/forms/index.js +16 -16
  171. package/dist/forms/index.mjs +9 -9
  172. package/dist/forms/server.js +10 -10
  173. package/dist/forms/server.mjs +8 -8
  174. package/dist/forms/static.js +7 -7
  175. package/dist/forms/static.mjs +6 -6
  176. package/dist/images/index.js +11 -11
  177. package/dist/images/index.mjs +4 -4
  178. package/dist/index.js +63 -63
  179. package/dist/index.mjs +9 -9
  180. package/dist/layout/client.js +8 -8
  181. package/dist/layout/client.mjs +7 -7
  182. package/dist/layout/index.js +10 -10
  183. package/dist/layout/index.mjs +8 -8
  184. package/dist/{lib-6GWWPDJR.js → lib-6HOOMENJ.js} +7 -7
  185. package/dist/{lib-WFB5RLEQ.js → lib-BGAWCSUH.js} +8 -8
  186. package/dist/{lib-N5PD6JNJ.mjs → lib-R7IQ4ZHE.mjs} +2 -2
  187. package/dist/lib-RSDMEKDQ.mjs +4 -0
  188. package/dist/maps/index.js +5 -5
  189. package/dist/maps/index.mjs +3 -3
  190. package/dist/search/index.js +4 -4
  191. package/dist/search/index.mjs +3 -3
  192. package/dist/seo/client.js +5 -5
  193. package/dist/seo/client.mjs +4 -4
  194. package/dist/seo/index.js +5 -5
  195. package/dist/seo/index.mjs +4 -4
  196. package/dist/seo/register-sitemap-cli.js +2 -2
  197. package/dist/seo/register-sitemap-cli.mjs +1 -1
  198. package/dist/server/index.js +3 -3
  199. package/dist/server/index.mjs +2 -2
  200. package/dist/shared/build-entries.d.ts +1 -0
  201. package/dist/shared/build-entries.d.ts.map +1 -1
  202. package/dist/shared/version.d.ts +1 -1
  203. package/dist/signal/index.js +11 -11
  204. package/dist/signal/index.mjs +2 -2
  205. package/dist/sync/index.js +17 -17
  206. package/dist/sync/index.mjs +4 -4
  207. package/dist/{web-vitals.attribution-CHXXWO72.mjs → web-vitals.attribution-7LKLZ5GR.mjs} +3 -3
  208. package/dist/web-vitals.attribution-7LKLZ5GR.mjs.map +1 -0
  209. package/dist/{web-vitals.attribution-SQVZNHN3.js → web-vitals.attribution-ONVYQNRB.js} +3 -3
  210. package/dist/web-vitals.attribution-ONVYQNRB.js.map +1 -0
  211. package/package.json +6 -1
  212. package/dist/ChatWidget-6PXV6RSI.mjs +0 -17
  213. package/dist/EngageWidget-SPZL3KPX.js +0 -21
  214. package/dist/EngageWidget-YRTVPYAY.mjs +0 -12
  215. package/dist/ManagedForm-FUIOTKSI.js +0 -25
  216. package/dist/ManagedForm-Z2S37RFX.mjs +0 -16
  217. package/dist/SitemapSync-IDJ3PXER.js +0 -18
  218. package/dist/SitemapSync-NTYKLAEH.mjs +0 -9
  219. package/dist/chunk-LGFRHT34.js +0 -8
  220. package/dist/chunk-SIHPFJ6C.mjs +0 -6
  221. package/dist/lib-BD4KKQBI.mjs +0 -4
  222. package/dist/web-vitals.attribution-CHXXWO72.mjs.map +0 -1
  223. package/dist/web-vitals.attribution-SQVZNHN3.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { resolveFetch } from './chunk-BQP6JIE2.mjs';
2
- import { SITE_KIT_VERSION } from './chunk-SIHPFJ6C.mjs';
2
+ import { SITE_KIT_VERSION } from './chunk-C654VCWV.mjs';
3
3
  import 'server-only';
4
4
 
5
5
  var MINT_PATH = "/api/public/site-token";
@@ -124,5 +124,5 @@ async function mintWithRetry(rawKey, apiUrl) {
124
124
  }
125
125
 
126
126
  export { resolveClientCredential };
127
- //# sourceMappingURL=chunk-4FWJ5K5O.mjs.map
128
- //# sourceMappingURL=chunk-4FWJ5K5O.mjs.map
127
+ //# sourceMappingURL=chunk-JS265UKZ.mjs.map
128
+ //# sourceMappingURL=chunk-JS265UKZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/mint-site-token.ts"],"names":[],"mappings":"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","file":"chunk-4FWJ5K5O.mjs","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":[],"mappings":"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","file":"chunk-JS265UKZ.mjs","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,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkXXSSUCJB_js = require('./chunk-XXSSUCJB.js');
3
+ var chunkI7AZC5ZQ_js = require('./chunk-I7AZC5ZQ.js');
4
4
  var chunkSNAQBZPT_js = require('./chunk-SNAQBZPT.js');
5
5
  var tty = require('tty');
6
6
  var util = require('util');
7
7
 
8
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/jsesc.js
8
+ // node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/jsesc.js
9
9
  var require_jsesc = chunkSNAQBZPT_js.__commonJS({
10
- "../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/jsesc.js"(exports, module) {
10
+ "node_modules/.pnpm/jsesc@3.1.0/node_modules/jsesc/jsesc.js"(exports, module) {
11
11
  var object = {};
12
12
  var hasOwnProperty = object.hasOwnProperty;
13
13
  var forOwn = (object2, callback) => {
@@ -280,7 +280,7 @@ var require_jsesc = chunkSNAQBZPT_js.__commonJS({
280
280
  }
281
281
  });
282
282
 
283
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/obug@2.1.4/node_modules/obug/dist/core.js
283
+ // node_modules/.pnpm/obug@2.1.4/node_modules/obug/dist/core.js
284
284
  function coerce(value) {
285
285
  if (value instanceof Error) return value.stack || value.message;
286
286
  return value;
@@ -546,7 +546,7 @@ function createDebug2(namespace, options) {
546
546
  }
547
547
  enable(env.DEBUG || "");
548
548
 
549
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+code-frame@8.0.0/node_modules/@babel/code-frame/lib/common-shared.js
549
+ // node_modules/.pnpm/@babel+code-frame@8.0.0/node_modules/@babel/code-frame/lib/common-shared.js
550
550
  var NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
551
551
  function getMarkerLines(loc, source, opts, startLineBaseZero) {
552
552
  const startLoc = {
@@ -661,7 +661,7 @@ ${frame}`;
661
661
  return defs2.reset(frame);
662
662
  }
663
663
 
664
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/js-tokens@10.0.0/node_modules/js-tokens/index.js
664
+ // node_modules/.pnpm/js-tokens@10.0.0/node_modules/js-tokens/index.js
665
665
  var HashbangComment;
666
666
  var Identifier;
667
667
  var JSXIdentifier;
@@ -1078,7 +1078,7 @@ jsTokens = function* (input, { jsx = false } = {}) {
1078
1078
  };
1079
1079
  var js_tokens_default = jsTokens;
1080
1080
 
1081
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+helper-validator-identifier@8.0.4/node_modules/@babel/helper-validator-identifier/lib/identifier.js
1081
+ // node_modules/.pnpm/@babel+helper-validator-identifier@8.0.4/node_modules/@babel/helper-validator-identifier/lib/identifier.js
1082
1082
  var bmpIdentifierStart = /[\p{ID_Start}\u088f\u0c5c\u0cdc\ua7ce\ua7cf\ua7d2\ua7d4\ua7f1]/u;
1083
1083
  var bmpIdentifier = /[\p{ID_Continue}\u088f\u0c5c\u0cdc\ua7ce\ua7cf\ua7d2\ua7d4\ua7f1\u1acf-\u1add\u1ae0-\u1aeb]/u;
1084
1084
  var supplementaryIdentifierStartCodes = [2368, 25, 1388, 2, 3817, 43, 20677, 24, 3, 24, 287, 4, 6146, 7, 1290, 21, 98, 114, 22734, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 53307, 5, 5987, 11, 21763, 4297];
@@ -1137,7 +1137,7 @@ function isIdentifierName(name) {
1137
1137
  return !isFirst;
1138
1138
  }
1139
1139
 
1140
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+helper-validator-identifier@8.0.4/node_modules/@babel/helper-validator-identifier/lib/index.js
1140
+ // node_modules/.pnpm/@babel+helper-validator-identifier@8.0.4/node_modules/@babel/helper-validator-identifier/lib/index.js
1141
1141
  var reservedWords = {
1142
1142
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
1143
1143
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
@@ -1156,7 +1156,7 @@ function isKeyword(word) {
1156
1156
  return keywords.has(word);
1157
1157
  }
1158
1158
 
1159
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+code-frame@8.0.0/node_modules/@babel/code-frame/lib/index.js
1159
+ // node_modules/.pnpm/@babel+code-frame@8.0.0/node_modules/@babel/code-frame/lib/index.js
1160
1160
  function isColorSupported() {
1161
1161
  return util.styleText("red", "-") !== "-";
1162
1162
  }
@@ -1301,7 +1301,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) {
1301
1301
  } : void 0);
1302
1302
  }
1303
1303
 
1304
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+types@8.0.4/node_modules/@babel/types/lib/index.js
1304
+ // node_modules/.pnpm/@babel+types@8.0.4/node_modules/@babel/types/lib/index.js
1305
1305
  var lib_exports = {};
1306
1306
  chunkSNAQBZPT_js.__export(lib_exports, {
1307
1307
  ACCESSOR_TYPES: () => ACCESSOR_TYPES,
@@ -2553,7 +2553,7 @@ chunkSNAQBZPT_js.__export(lib_exports, {
2553
2553
  yieldExpression: () => yieldExpression
2554
2554
  });
2555
2555
 
2556
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+helper-string-parser@8.0.0/node_modules/@babel/helper-string-parser/lib/index.js
2556
+ // node_modules/.pnpm/@babel+helper-string-parser@8.0.0/node_modules/@babel/helper-string-parser/lib/index.js
2557
2557
  var _isDigit = function isDigit(code) {
2558
2558
  return code >= 48 && code <= 57;
2559
2559
  };
@@ -2805,7 +2805,7 @@ function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
2805
2805
  };
2806
2806
  }
2807
2807
 
2808
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+types@8.0.4/node_modules/@babel/types/lib/index.js
2808
+ // node_modules/.pnpm/@babel+types@8.0.4/node_modules/@babel/types/lib/index.js
2809
2809
  function shallowEqual(actual, expected) {
2810
2810
  const keys2 = Object.keys(expected);
2811
2811
  for (const key of keys2) {
@@ -13901,7 +13901,7 @@ var react = {
13901
13901
  buildChildren
13902
13902
  };
13903
13903
 
13904
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+helper-globals@8.0.0/node_modules/@babel/helper-globals/data/builtin-lower.json
13904
+ // node_modules/.pnpm/@babel+helper-globals@8.0.0/node_modules/@babel/helper-globals/data/builtin-lower.json
13905
13905
  var builtin_lower_default = [
13906
13906
  "decodeURI",
13907
13907
  "decodeURIComponent",
@@ -13918,7 +13918,7 @@ var builtin_lower_default = [
13918
13918
  "unescape"
13919
13919
  ];
13920
13920
 
13921
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+helper-globals@8.0.0/node_modules/@babel/helper-globals/data/builtin-upper.json
13921
+ // node_modules/.pnpm/@babel+helper-globals@8.0.0/node_modules/@babel/helper-globals/data/builtin-upper.json
13922
13922
  var builtin_upper_default = [
13923
13923
  "AggregateError",
13924
13924
  "Array",
@@ -13971,7 +13971,7 @@ var builtin_upper_default = [
13971
13971
  "WeakSet"
13972
13972
  ];
13973
13973
 
13974
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
13974
+ // node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
13975
13975
  var comma = ",".charCodeAt(0);
13976
13976
  var semicolon = ";".charCodeAt(0);
13977
13977
  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@@ -14139,7 +14139,7 @@ function encode(decoded) {
14139
14139
  return writer.flush();
14140
14140
  }
14141
14141
 
14142
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
14142
+ // node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
14143
14143
  var schemeRegex = /^[\w+.-]+:\/\//;
14144
14144
  var urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
14145
14145
  var fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
@@ -14308,7 +14308,7 @@ function resolve(input, base) {
14308
14308
  }
14309
14309
  }
14310
14310
 
14311
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
14311
+ // node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
14312
14312
  function stripFilename(path) {
14313
14313
  if (!path) return "";
14314
14314
  const index3 = path.lastIndexOf("/");
@@ -14494,7 +14494,7 @@ function traceSegmentInternal(segments, memo, line, column, bias) {
14494
14494
  return index3;
14495
14495
  }
14496
14496
 
14497
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
14497
+ // node_modules/.pnpm/@jridgewell+gen-mapping@0.3.13/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
14498
14498
  var SetArray = class {
14499
14499
  constructor() {
14500
14500
  this._indexes = { __proto__: null };
@@ -14692,7 +14692,7 @@ function addMappingInternal(skipable, map, mapping) {
14692
14692
  );
14693
14693
  }
14694
14694
 
14695
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+generator@8.0.0/node_modules/@babel/generator/lib/index.js
14695
+ // node_modules/.pnpm/@babel+generator@8.0.0/node_modules/@babel/generator/lib/index.js
14696
14696
  var import_jsesc = chunkSNAQBZPT_js.__toESM(require_jsesc(), 1);
14697
14697
  var SourceMap = class {
14698
14698
  constructor(opts, code) {
@@ -19350,7 +19350,7 @@ function generate(ast, opts = {}, code) {
19350
19350
  return printer.generate(ast);
19351
19351
  }
19352
19352
 
19353
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+template@8.0.0/node_modules/@babel/template/lib/index.js
19353
+ // node_modules/.pnpm/@babel+template@8.0.0/node_modules/@babel/template/lib/index.js
19354
19354
  var {
19355
19355
  assertExpressionStatement: assertExpressionStatement2
19356
19356
  } = lib_exports;
@@ -19616,7 +19616,7 @@ function parseWithCodeFrame(code, parserOpts, syntacticPlaceholders) {
19616
19616
  plugins
19617
19617
  };
19618
19618
  try {
19619
- return chunkXXSSUCJB_js.parse(code, parserOpts);
19619
+ return chunkI7AZC5ZQ_js.parse(code, parserOpts);
19620
19620
  } catch (err) {
19621
19621
  const loc = err.loc;
19622
19622
  if (loc) {
@@ -19890,7 +19890,7 @@ var index2 = Object.assign(smart.bind(void 0), {
19890
19890
  ast: smart.ast
19891
19891
  });
19892
19892
 
19893
- // ../../../../../../../Volumes/Uptrade Media/GitHub/Sonor/site-kit/node_modules/.pnpm/@babel+traverse@8.0.4/node_modules/@babel/traverse/lib/index.js
19893
+ // node_modules/.pnpm/@babel+traverse@8.0.4/node_modules/@babel/traverse/lib/index.js
19894
19894
  var ReferencedIdentifier = ["Identifier", "JSXIdentifier"];
19895
19895
  var ReferencedMemberExpression = ["MemberExpression"];
19896
19896
  var BindingIdentifier = ["Identifier"];
@@ -22547,7 +22547,7 @@ function replaceWithSourceString(replacement) {
22547
22547
  let ast;
22548
22548
  try {
22549
22549
  replacement = `(${replacement})`;
22550
- ast = chunkXXSSUCJB_js.parse(replacement);
22550
+ ast = chunkI7AZC5ZQ_js.parse(replacement);
22551
22551
  } catch (err) {
22552
22552
  const loc = err.loc;
22553
22553
  if (loc) {
@@ -24857,4 +24857,4 @@ exports.isTemplateLiteral = isTemplateLiteral;
24857
24857
  exports.isVariableDeclarator = isVariableDeclarator;
24858
24858
  exports.traverse = traverse3;
24859
24859
  exports.visitors = visitors;
24860
- //# sourceMappingURL=chunk-ATPQ6264.js.map
24860
+ //# sourceMappingURL=chunk-JS75ORH7.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { chatLauncherStyles } from './chunk-4U5NCKQY.mjs';
3
3
  import { GlassStyles } from './chunk-OBKS3CPP.mjs';
4
- import { useForm } from './chunk-EG3F5AHL.mjs';
4
+ import { useForm } from './chunk-YUCKBIRE.mjs';
5
5
  import { parseColor, relativeLuminance, DARK_LUMINANCE, contrastRatio } from './chunk-NYXENHD2.mjs';
6
- import { sonorFetch } from './chunk-ZZ6P27A5.mjs';
6
+ import { sonorFetch } from './chunk-XNZ2WFXR.mjs';
7
7
  import { useState, useEffect, useRef, useLayoutEffect, useCallback } from 'react';
8
8
  import ReactMarkdown from 'react-markdown';
9
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1665,5 +1665,5 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
1665
1665
  }
1666
1666
 
1667
1667
  export { ChatWidget, EchoChat, isChatEnabled };
1668
- //# sourceMappingURL=chunk-22WIVF4O.mjs.map
1669
- //# sourceMappingURL=chunk-22WIVF4O.mjs.map
1668
+ //# sourceMappingURL=chunk-KAJT3MOM.mjs.map
1669
+ //# sourceMappingURL=chunk-KAJT3MOM.mjs.map