@sonordev/site-kit 4.0.2 → 4.2.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 (237) hide show
  1. package/agent-manifest.json +6 -1
  2. package/dist/AnalyticsProvider-JTAJ27EC.js +31 -0
  3. package/dist/{AnalyticsProvider-5SX4ZRGN.js.map → AnalyticsProvider-JTAJ27EC.js.map} +1 -1
  4. package/dist/AnalyticsProvider-QD7H2FER.mjs +10 -0
  5. package/dist/{AnalyticsProvider-6DIRTRRA.mjs.map → AnalyticsProvider-QD7H2FER.mjs.map} +1 -1
  6. package/dist/ChatWidget-7UV4LXJR.js +20 -0
  7. package/dist/{ChatWidget-3SUC7HZA.js.map → ChatWidget-7UV4LXJR.js.map} +1 -1
  8. package/dist/ChatWidget-BS6STWYV.mjs +11 -0
  9. package/dist/{ChatWidget-JTTERPI5.mjs.map → ChatWidget-BS6STWYV.mjs.map} +1 -1
  10. package/dist/EngageWidget-AQOTCO46.js +18 -0
  11. package/dist/{EngageWidget-YVAIP2NW.js.map → EngageWidget-AQOTCO46.js.map} +1 -1
  12. package/dist/EngageWidget-M7MZXPC4.mjs +9 -0
  13. package/dist/{EngageWidget-3MDY2W5G.mjs.map → EngageWidget-M7MZXPC4.mjs.map} +1 -1
  14. package/dist/{FileField-PD52URLX.js → FileField-JIWKVY73.js} +6 -6
  15. package/dist/{FileField-PD52URLX.js.map → FileField-JIWKVY73.js.map} +1 -1
  16. package/dist/{FileField-XMBF3XCG.mjs → FileField-VIYBV4GM.mjs} +5 -5
  17. package/dist/{FileField-XMBF3XCG.mjs.map → FileField-VIYBV4GM.mjs.map} +1 -1
  18. package/dist/{FormSpotlight-72TYHDPV.mjs → FormSpotlight-7P3JV3XK.mjs} +3 -3
  19. package/dist/{FormSpotlight-72TYHDPV.mjs.map → FormSpotlight-7P3JV3XK.mjs.map} +1 -1
  20. package/dist/{FormSpotlight-AL6KGMGG.js → FormSpotlight-MSBWEM3F.js} +15 -15
  21. package/dist/{FormSpotlight-AL6KGMGG.js.map → FormSpotlight-MSBWEM3F.js.map} +1 -1
  22. package/dist/{FormStage-GNBPJ7WX.mjs → FormStage-327WGVBM.mjs} +3 -3
  23. package/dist/{FormStage-GNBPJ7WX.mjs.map → FormStage-327WGVBM.mjs.map} +1 -1
  24. package/dist/{FormStage-NLO52ER2.js → FormStage-FME3O3N2.js} +13 -13
  25. package/dist/{FormStage-NLO52ER2.js.map → FormStage-FME3O3N2.js.map} +1 -1
  26. package/dist/ManagedForm-5BXS3XKX.js +23 -0
  27. package/dist/{ManagedForm-XWN3TVQQ.js.map → ManagedForm-5BXS3XKX.js.map} +1 -1
  28. package/dist/ManagedForm-BFZWPWGY.mjs +14 -0
  29. package/dist/{ManagedForm-2SYVMJY6.mjs.map → ManagedForm-BFZWPWGY.mjs.map} +1 -1
  30. package/dist/{SignalCore-4NOVH33M.mjs → SignalCore-EE2RAGZ2.mjs} +5 -5
  31. package/dist/{SignalCore-4NOVH33M.mjs.map → SignalCore-EE2RAGZ2.mjs.map} +1 -1
  32. package/dist/{SignalCore-PD75O7GB.js → SignalCore-IPLGFFC3.js} +11 -11
  33. package/dist/{SignalCore-PD75O7GB.js.map → SignalCore-IPLGFFC3.js.map} +1 -1
  34. package/dist/SitemapSync-2X6NM3TX.mjs +8 -0
  35. package/dist/{SitemapSync-UH6VZ55T.mjs.map → SitemapSync-2X6NM3TX.mjs.map} +1 -1
  36. package/dist/SitemapSync-XBYRZ7WH.js +17 -0
  37. package/dist/{SitemapSync-KKUF43DS.js.map → SitemapSync-XBYRZ7WH.js.map} +1 -1
  38. package/dist/analytics/index.js +9 -9
  39. package/dist/analytics/index.mjs +4 -4
  40. package/dist/{chunk-6PNWJXAE.mjs → chunk-4HNFMOYE.mjs} +3 -3
  41. package/dist/{chunk-6PNWJXAE.mjs.map → chunk-4HNFMOYE.mjs.map} +1 -1
  42. package/dist/{chunk-T2YAEBEY.js → chunk-4PP4D3TF.js} +4 -4
  43. package/dist/{chunk-T2YAEBEY.js.map → chunk-4PP4D3TF.js.map} +1 -1
  44. package/dist/{chunk-WHVUSVHA.js → chunk-4YWGUQPU.js} +3 -3
  45. package/dist/{chunk-WHVUSVHA.js.map → chunk-4YWGUQPU.js.map} +1 -1
  46. package/dist/{chunk-AQA4PFMJ.mjs → chunk-57IFVXCB.mjs} +4 -4
  47. package/dist/{chunk-AQA4PFMJ.mjs.map → chunk-57IFVXCB.mjs.map} +1 -1
  48. package/dist/{chunk-QO5NS62X.js → chunk-7UCKV4WA.js} +8 -8
  49. package/dist/{chunk-QO5NS62X.js.map → chunk-7UCKV4WA.js.map} +1 -1
  50. package/dist/{chunk-NWJX6NHR.mjs → chunk-A5FJZWGY.mjs} +4 -4
  51. package/dist/{chunk-NWJX6NHR.mjs.map → chunk-A5FJZWGY.mjs.map} +1 -1
  52. package/dist/chunk-AAZNH3MA.mjs +23 -0
  53. package/dist/chunk-AAZNH3MA.mjs.map +1 -0
  54. package/dist/{chunk-5QVXHD6V.js → chunk-AVWIKVVE.js} +14 -14
  55. package/dist/{chunk-5QVXHD6V.js.map → chunk-AVWIKVVE.js.map} +1 -1
  56. package/dist/chunk-CBN73TLK.js +8 -0
  57. package/dist/{chunk-LYAU5PRS.js.map → chunk-CBN73TLK.js.map} +1 -1
  58. package/dist/chunk-CIM5W3UO.js +26 -0
  59. package/dist/chunk-CIM5W3UO.js.map +1 -0
  60. package/dist/{chunk-6ZFXASW6.mjs → chunk-CMIFYDKA.mjs} +5 -5
  61. package/dist/{chunk-6ZFXASW6.mjs.map → chunk-CMIFYDKA.mjs.map} +1 -1
  62. package/dist/{chunk-T5DXYGWK.mjs → chunk-DNEUGYTE.mjs} +3 -3
  63. package/dist/{chunk-T5DXYGWK.mjs.map → chunk-DNEUGYTE.mjs.map} +1 -1
  64. package/dist/{chunk-UBNVD567.mjs → chunk-DSECSIWJ.mjs} +3 -3
  65. package/dist/{chunk-UBNVD567.mjs.map → chunk-DSECSIWJ.mjs.map} +1 -1
  66. package/dist/{chunk-FZ643CZK.mjs → chunk-DYDAV4Y4.mjs} +4 -4
  67. package/dist/{chunk-FZ643CZK.mjs.map → chunk-DYDAV4Y4.mjs.map} +1 -1
  68. package/dist/{chunk-WXKEYKE6.js → chunk-FFQAKIV5.js} +15 -15
  69. package/dist/{chunk-WXKEYKE6.js.map → chunk-FFQAKIV5.js.map} +1 -1
  70. package/dist/{chunk-OP5FYTWJ.js → chunk-FMAEUQEZ.js} +12 -12
  71. package/dist/{chunk-OP5FYTWJ.js.map → chunk-FMAEUQEZ.js.map} +1 -1
  72. package/dist/{chunk-LVCUT2OX.js → chunk-GXABJJ4F.js} +3 -3
  73. package/dist/{chunk-LVCUT2OX.js.map → chunk-GXABJJ4F.js.map} +1 -1
  74. package/dist/{chunk-HOB2A6JM.mjs → chunk-HI6DVYVN.mjs} +3 -3
  75. package/dist/{chunk-HOB2A6JM.mjs.map → chunk-HI6DVYVN.mjs.map} +1 -1
  76. package/dist/{chunk-NJN467OM.js → chunk-HLCCE7BD.js} +14 -14
  77. package/dist/{chunk-NJN467OM.js.map → chunk-HLCCE7BD.js.map} +1 -1
  78. package/dist/{chunk-2MIOQYF5.js → chunk-INW43FWV.js} +6 -6
  79. package/dist/{chunk-2MIOQYF5.js.map → chunk-INW43FWV.js.map} +1 -1
  80. package/dist/{chunk-ARBOKZAU.mjs → chunk-IUZ2RH4V.mjs} +3 -4
  81. package/dist/chunk-IUZ2RH4V.mjs.map +1 -0
  82. package/dist/{chunk-VLY3SFNH.js → chunk-IV7LOJZO.js} +4 -4
  83. package/dist/{chunk-VLY3SFNH.js.map → chunk-IV7LOJZO.js.map} +1 -1
  84. package/dist/{chunk-RAX3HS4T.js → chunk-IWFP2FQ5.js} +16 -16
  85. package/dist/{chunk-RAX3HS4T.js.map → chunk-IWFP2FQ5.js.map} +1 -1
  86. package/dist/chunk-JA77WXRE.js +30 -0
  87. package/dist/chunk-JA77WXRE.js.map +1 -0
  88. package/dist/{chunk-62Z4D3QR.js → chunk-JWIJZQYI.js} +5 -5
  89. package/dist/{chunk-62Z4D3QR.js.map → chunk-JWIJZQYI.js.map} +1 -1
  90. package/dist/{chunk-PGND73EV.js → chunk-KFDFXRBE.js} +4 -4
  91. package/dist/{chunk-PGND73EV.js.map → chunk-KFDFXRBE.js.map} +1 -1
  92. package/dist/chunk-LS64Y25E.mjs +6 -0
  93. package/dist/{chunk-QTN3F7D7.mjs.map → chunk-LS64Y25E.mjs.map} +1 -1
  94. package/dist/{chunk-NCWVR4BU.mjs → chunk-MTXQG3TX.mjs} +7 -7
  95. package/dist/{chunk-NCWVR4BU.mjs.map → chunk-MTXQG3TX.mjs.map} +1 -1
  96. package/dist/{chunk-GCS4XZHC.mjs → chunk-MZZQHGXY.mjs} +3 -3
  97. package/dist/{chunk-GCS4XZHC.mjs.map → chunk-MZZQHGXY.mjs.map} +1 -1
  98. package/dist/{chunk-Y26LKDE4.js → chunk-NDASB3X3.js} +9 -9
  99. package/dist/{chunk-Y26LKDE4.js.map → chunk-NDASB3X3.js.map} +1 -1
  100. package/dist/{chunk-7QDTXT4N.js → chunk-NF3QVKWU.js} +6 -7
  101. package/dist/chunk-NF3QVKWU.js.map +1 -0
  102. package/dist/{chunk-R4PCXP3F.mjs → chunk-OO4T5X4Z.mjs} +3 -3
  103. package/dist/{chunk-R4PCXP3F.mjs.map → chunk-OO4T5X4Z.mjs.map} +1 -1
  104. package/dist/{chunk-ZK5VSIRO.js → chunk-PKQVV6LW.js} +12 -12
  105. package/dist/{chunk-ZK5VSIRO.js.map → chunk-PKQVV6LW.js.map} +1 -1
  106. package/dist/{chunk-ZPG4GTU7.js → chunk-QNEBWBZ4.js} +5 -5
  107. package/dist/{chunk-ZPG4GTU7.js.map → chunk-QNEBWBZ4.js.map} +1 -1
  108. package/dist/chunk-QZF5NTXQ.mjs +28 -0
  109. package/dist/chunk-QZF5NTXQ.mjs.map +1 -0
  110. package/dist/{chunk-FGN27J35.mjs → chunk-R6LQRHPQ.mjs} +4 -4
  111. package/dist/{chunk-FGN27J35.mjs.map → chunk-R6LQRHPQ.mjs.map} +1 -1
  112. package/dist/{chunk-NWPNFCNY.js → chunk-S2C3QU4E.js} +18 -18
  113. package/dist/{chunk-NWPNFCNY.js.map → chunk-S2C3QU4E.js.map} +1 -1
  114. package/dist/{chunk-XNPITFJ5.mjs → chunk-SDBUPTF4.mjs} +3 -3
  115. package/dist/{chunk-XNPITFJ5.mjs.map → chunk-SDBUPTF4.mjs.map} +1 -1
  116. package/dist/{chunk-B7J7SU5A.mjs → chunk-TGGSXT3F.mjs} +8 -8
  117. package/dist/{chunk-B7J7SU5A.mjs.map → chunk-TGGSXT3F.mjs.map} +1 -1
  118. package/dist/{chunk-MZY3MEUO.mjs → chunk-UDPUBSSS.mjs} +3 -3
  119. package/dist/{chunk-MZY3MEUO.mjs.map → chunk-UDPUBSSS.mjs.map} +1 -1
  120. package/dist/{chunk-VUIQLKJB.mjs → chunk-UKFBG6FV.mjs} +3 -3
  121. package/dist/{chunk-VUIQLKJB.mjs.map → chunk-UKFBG6FV.mjs.map} +1 -1
  122. package/dist/{chunk-UQPUFRXF.mjs → chunk-VGPZ4PCZ.mjs} +3 -3
  123. package/dist/{chunk-UQPUFRXF.mjs.map → chunk-VGPZ4PCZ.mjs.map} +1 -1
  124. package/dist/{chunk-MRRTAJWQ.js → chunk-VOMAEC5G.js} +3 -3
  125. package/dist/{chunk-MRRTAJWQ.js.map → chunk-VOMAEC5G.js.map} +1 -1
  126. package/dist/{chunk-MPACJDDG.js → chunk-VTFDE7H2.js} +7 -7
  127. package/dist/{chunk-MPACJDDG.js.map → chunk-VTFDE7H2.js.map} +1 -1
  128. package/dist/{chunk-KNYK2VLX.mjs → chunk-WCIQKO7W.mjs} +3 -3
  129. package/dist/{chunk-KNYK2VLX.mjs.map → chunk-WCIQKO7W.mjs.map} +1 -1
  130. package/dist/{chunk-JFVEKSZT.mjs → chunk-WCRBZZRI.mjs} +4 -4
  131. package/dist/{chunk-JFVEKSZT.mjs.map → chunk-WCRBZZRI.mjs.map} +1 -1
  132. package/dist/{chunk-53RHVKTD.mjs → chunk-WFCRXUNA.mjs} +4 -4
  133. package/dist/{chunk-53RHVKTD.mjs.map → chunk-WFCRXUNA.mjs.map} +1 -1
  134. package/dist/{chunk-ZRGCKWIT.js → chunk-WLVS4QBK.js} +4 -4
  135. package/dist/{chunk-ZRGCKWIT.js.map → chunk-WLVS4QBK.js.map} +1 -1
  136. package/dist/{chunk-WNNY2BCV.js → chunk-XOSAVYAI.js} +8 -8
  137. package/dist/{chunk-WNNY2BCV.js.map → chunk-XOSAVYAI.js.map} +1 -1
  138. package/dist/{chunk-AJNT5GCU.mjs → chunk-XXBVF7WN.mjs} +3 -3
  139. package/dist/{chunk-AJNT5GCU.mjs.map → chunk-XXBVF7WN.mjs.map} +1 -1
  140. package/dist/{chunk-XRC3JZAK.mjs → chunk-XZCZCND2.mjs} +3 -3
  141. package/dist/{chunk-XRC3JZAK.mjs.map → chunk-XZCZCND2.mjs.map} +1 -1
  142. package/dist/{chunk-LP6MC2RH.js → chunk-Z7HAQTWP.js} +14 -14
  143. package/dist/{chunk-LP6MC2RH.js.map → chunk-Z7HAQTWP.js.map} +1 -1
  144. package/dist/cli/index.js +3 -3
  145. package/dist/cli/index.mjs +1 -1
  146. package/dist/client/index.js +4 -4
  147. package/dist/client/index.mjs +3 -3
  148. package/dist/cms/index.d.ts +23 -0
  149. package/dist/cms/index.d.ts.map +1 -1
  150. package/dist/cms/index.js +2 -2
  151. package/dist/cms/index.mjs +1 -1
  152. package/dist/cms/server-api.d.ts.map +1 -1
  153. package/dist/cms/server.js +4 -4
  154. package/dist/cms/server.mjs +1 -1
  155. package/dist/commerce/index.js +56 -56
  156. package/dist/commerce/index.mjs +5 -5
  157. package/dist/engage/EngageWidget.d.ts.map +1 -1
  158. package/dist/engage/dependency-contract.test.d.ts +2 -0
  159. package/dist/engage/dependency-contract.test.d.ts.map +1 -0
  160. package/dist/engage/index.js +10 -10
  161. package/dist/engage/index.mjs +7 -7
  162. package/dist/engage/socket-loader.d.ts +13 -0
  163. package/dist/engage/socket-loader.d.ts.map +1 -1
  164. package/dist/fleet/index.js +8 -8
  165. package/dist/fleet/index.mjs +4 -4
  166. package/dist/forms/index.js +16 -16
  167. package/dist/forms/index.mjs +9 -9
  168. package/dist/forms/server.js +10 -10
  169. package/dist/forms/server.mjs +8 -8
  170. package/dist/forms/static.js +7 -7
  171. package/dist/forms/static.mjs +6 -6
  172. package/dist/images/index.js +11 -11
  173. package/dist/images/index.mjs +4 -4
  174. package/dist/index.js +67 -66
  175. package/dist/index.js.map +1 -1
  176. package/dist/index.mjs +11 -10
  177. package/dist/index.mjs.map +1 -1
  178. package/dist/landing/index.d.ts +12 -0
  179. package/dist/landing/index.d.ts.map +1 -1
  180. package/dist/landing/index.js +5 -4
  181. package/dist/landing/index.mjs +2 -1
  182. package/dist/landing/server-entry.test.d.ts +2 -0
  183. package/dist/landing/server-entry.test.d.ts.map +1 -0
  184. package/dist/landing/server.d.ts +32 -0
  185. package/dist/landing/server.d.ts.map +1 -0
  186. package/dist/landing/server.js +17 -0
  187. package/dist/landing/server.js.map +1 -0
  188. package/dist/landing/server.mjs +4 -0
  189. package/dist/landing/server.mjs.map +1 -0
  190. package/dist/layout/client.js +8 -8
  191. package/dist/layout/client.mjs +7 -7
  192. package/dist/layout/index.js +10 -10
  193. package/dist/layout/index.mjs +8 -8
  194. package/dist/maps/index.js +5 -5
  195. package/dist/maps/index.mjs +3 -3
  196. package/dist/search/index.js +4 -4
  197. package/dist/search/index.mjs +3 -3
  198. package/dist/seo/client.js +5 -5
  199. package/dist/seo/client.mjs +4 -4
  200. package/dist/seo/index.js +5 -5
  201. package/dist/seo/index.mjs +4 -4
  202. package/dist/server/index.js +3 -3
  203. package/dist/server/index.mjs +2 -2
  204. package/dist/shared/build-entries.d.ts +7 -0
  205. package/dist/shared/build-entries.d.ts.map +1 -1
  206. package/dist/shared/no-cjs-require.test.d.ts +2 -0
  207. package/dist/shared/no-cjs-require.test.d.ts.map +1 -0
  208. package/dist/shared/version.d.ts +1 -1
  209. package/dist/signal/index.js +11 -11
  210. package/dist/signal/index.mjs +2 -2
  211. package/dist/{socket-loader-YEAQZ3XC.js → socket-loader-2NYBMBFQ.js} +2 -2
  212. package/dist/socket-loader-2NYBMBFQ.js.map +1 -0
  213. package/dist/{socket-loader-JHNN2QK4.mjs → socket-loader-JA2DI2RT.mjs} +2 -2
  214. package/dist/socket-loader-JA2DI2RT.mjs.map +1 -0
  215. package/dist/sync/index.js +16 -16
  216. package/dist/sync/index.mjs +4 -4
  217. package/package.json +26 -9
  218. package/dist/AnalyticsProvider-5SX4ZRGN.js +0 -31
  219. package/dist/AnalyticsProvider-6DIRTRRA.mjs +0 -10
  220. package/dist/ChatWidget-3SUC7HZA.js +0 -20
  221. package/dist/ChatWidget-JTTERPI5.mjs +0 -11
  222. package/dist/EngageWidget-3MDY2W5G.mjs +0 -9
  223. package/dist/EngageWidget-YVAIP2NW.js +0 -18
  224. package/dist/ManagedForm-2SYVMJY6.mjs +0 -14
  225. package/dist/ManagedForm-XWN3TVQQ.js +0 -23
  226. package/dist/SitemapSync-KKUF43DS.js +0 -17
  227. package/dist/SitemapSync-UH6VZ55T.mjs +0 -8
  228. package/dist/chunk-7QDTXT4N.js.map +0 -1
  229. package/dist/chunk-ARBOKZAU.mjs.map +0 -1
  230. package/dist/chunk-EU2UGO25.js +0 -52
  231. package/dist/chunk-EU2UGO25.js.map +0 -1
  232. package/dist/chunk-IBMOX3YE.mjs +0 -48
  233. package/dist/chunk-IBMOX3YE.mjs.map +0 -1
  234. package/dist/chunk-LYAU5PRS.js +0 -8
  235. package/dist/chunk-QTN3F7D7.mjs +0 -6
  236. package/dist/socket-loader-JHNN2QK4.mjs.map +0 -1
  237. package/dist/socket-loader-YEAQZ3XC.js.map +0 -1
@@ -1,60 +1,60 @@
1
1
  'use strict';
2
2
 
3
- var chunkY26LKDE4_js = require('../chunk-Y26LKDE4.js');
4
- require('../chunk-WXKEYKE6.js');
5
- require('../chunk-PGND73EV.js');
6
- require('../chunk-LYAU5PRS.js');
3
+ var chunkNDASB3X3_js = require('../chunk-NDASB3X3.js');
4
+ require('../chunk-FFQAKIV5.js');
5
+ require('../chunk-KFDFXRBE.js');
6
+ require('../chunk-CBN73TLK.js');
7
7
  require('../chunk-SNAQBZPT.js');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "BookingWidget", {
12
12
  enumerable: true,
13
- get: function () { return chunkY26LKDE4_js.BookingWidget; }
13
+ get: function () { return chunkNDASB3X3_js.BookingWidget; }
14
14
  });
15
15
  Object.defineProperty(exports, "createBooking", {
16
16
  enumerable: true,
17
- get: function () { return chunkY26LKDE4_js.createBooking; }
17
+ get: function () { return chunkNDASB3X3_js.createBooking; }
18
18
  });
19
19
  Object.defineProperty(exports, "createSlotHold", {
20
20
  enumerable: true,
21
- get: function () { return chunkY26LKDE4_js.createSlotHold; }
21
+ get: function () { return chunkNDASB3X3_js.createSlotHold; }
22
22
  });
23
23
  Object.defineProperty(exports, "detectTimezone", {
24
24
  enumerable: true,
25
- get: function () { return chunkY26LKDE4_js.detectTimezone; }
25
+ get: function () { return chunkNDASB3X3_js.detectTimezone; }
26
26
  });
27
27
  Object.defineProperty(exports, "fetchAvailability", {
28
28
  enumerable: true,
29
- get: function () { return chunkY26LKDE4_js.fetchAvailability; }
29
+ get: function () { return chunkNDASB3X3_js.fetchAvailability; }
30
30
  });
31
31
  Object.defineProperty(exports, "fetchAvailableDates", {
32
32
  enumerable: true,
33
- get: function () { return chunkY26LKDE4_js.fetchAvailableDates; }
33
+ get: function () { return chunkNDASB3X3_js.fetchAvailableDates; }
34
34
  });
35
35
  Object.defineProperty(exports, "fetchBookingTypeDetails", {
36
36
  enumerable: true,
37
- get: function () { return chunkY26LKDE4_js.fetchBookingTypeDetails; }
37
+ get: function () { return chunkNDASB3X3_js.fetchBookingTypeDetails; }
38
38
  });
39
39
  Object.defineProperty(exports, "fetchBookingTypes", {
40
40
  enumerable: true,
41
- get: function () { return chunkY26LKDE4_js.fetchBookingTypes; }
41
+ get: function () { return chunkNDASB3X3_js.fetchBookingTypes; }
42
42
  });
43
43
  Object.defineProperty(exports, "formatDate", {
44
44
  enumerable: true,
45
- get: function () { return chunkY26LKDE4_js.formatDate; }
45
+ get: function () { return chunkNDASB3X3_js.formatDate; }
46
46
  });
47
47
  Object.defineProperty(exports, "formatDuration", {
48
48
  enumerable: true,
49
- get: function () { return chunkY26LKDE4_js.formatDuration; }
49
+ get: function () { return chunkNDASB3X3_js.formatDuration; }
50
50
  });
51
51
  Object.defineProperty(exports, "formatTime", {
52
52
  enumerable: true,
53
- get: function () { return chunkY26LKDE4_js.formatTime; }
53
+ get: function () { return chunkNDASB3X3_js.formatTime; }
54
54
  });
55
55
  Object.defineProperty(exports, "releaseSlotHold", {
56
56
  enumerable: true,
57
- get: function () { return chunkY26LKDE4_js.releaseSlotHold; }
57
+ get: function () { return chunkNDASB3X3_js.releaseSlotHold; }
58
58
  });
59
59
  //# sourceMappingURL=index.js.map
60
60
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-XNPITFJ5.mjs';
2
- import '../chunk-FGN27J35.mjs';
3
- import '../chunk-KNYK2VLX.mjs';
4
- import '../chunk-QTN3F7D7.mjs';
1
+ export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-SDBUPTF4.mjs';
2
+ import '../chunk-R6LQRHPQ.mjs';
3
+ import '../chunk-WCIQKO7W.mjs';
4
+ import '../chunk-LS64Y25E.mjs';
5
5
  import '../chunk-BEXTDHO4.mjs';
6
6
  //# sourceMappingURL=index.mjs.map
7
7
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@sonordev/site-kit",
3
- "version": "4.0.2",
3
+ "version": "4.2.0",
4
+ "packageManager": "pnpm@11.5.3",
4
5
  "description": "Complete client-side integration kit for Sonor - SEO, Analytics, Engage, Forms, Blog",
5
6
  "license": "MIT",
6
7
  "repository": {
@@ -270,6 +271,11 @@
270
271
  "types": "./dist/forms/static.d.ts",
271
272
  "import": "./dist/forms/static.mjs",
272
273
  "require": "./dist/forms/static.js"
274
+ },
275
+ "./landing/server": {
276
+ "types": "./dist/landing/server.d.ts",
277
+ "import": "./dist/landing/server.mjs",
278
+ "require": "./dist/landing/server.js"
273
279
  }
274
280
  },
275
281
  "files": [
@@ -286,6 +292,7 @@
286
292
  "dev": "tsup --watch",
287
293
  "manifest:gen": "node scripts/gen-agent-manifest.cjs",
288
294
  "test": "vitest run",
295
+ "audit:consumer": "node scripts/audit-as-consumer.cjs",
289
296
  "test:integration": "node test/integration/run.mjs",
290
297
  "test:integration:baseline": "node test/integration/run.mjs --update-baseline",
291
298
  "test:integration:selfcheck": "node test/integration/checks/selfcheck.mjs",
@@ -293,14 +300,16 @@
293
300
  "clean": "rm -rf dist",
294
301
  "typecheck": "tsc --noEmit",
295
302
  "version": "node scripts/sync-version.cjs && git add src/shared/version.ts",
296
- "prepublishOnly": "rm -rf dist && NODE_OPTIONS=--max-old-space-size=8192 tsup && pnpm build:types && node scripts/gen-agent-manifest.cjs && node scripts/verify-dts.cjs && node scripts/prepublish-integration.cjs",
303
+ "prepublishOnly": "rm -rf dist && NODE_OPTIONS=--max-old-space-size=8192 tsup && pnpm build:types && node scripts/gen-agent-manifest.cjs && node scripts/verify-dts.cjs && node scripts/prepublish-integration.cjs && node scripts/audit-as-consumer.cjs",
297
304
  "build:types": "tsc --emitDeclarationOnly --noEmit false && node scripts/alias-dts.cjs"
298
305
  },
299
306
  "peerDependencies": {
307
+ "@portabletext/react": "^8.0.0",
308
+ "@sanity/image-url": "^2.1.1",
300
309
  "@vis.gl/react-google-maps": ">=1.0.0",
301
- "next": "^14.0.0 || ^15.0.0 || ^16.0.0",
302
- "react": "^18.0.0 || ^19.0.0",
303
- "react-dom": "^18.0.0 || ^19.0.0"
310
+ "next": "^15.0.0 || ^16.0.0",
311
+ "react": "^19.0.0",
312
+ "react-dom": "^19.0.0"
304
313
  },
305
314
  "peerDependenciesMeta": {
306
315
  "next": {
@@ -314,17 +323,25 @@
314
323
  },
315
324
  "@vis.gl/react-google-maps": {
316
325
  "optional": true
326
+ },
327
+ "@portabletext/react": {
328
+ "optional": true
329
+ },
330
+ "@sanity/image-url": {
331
+ "optional": true
317
332
  }
318
333
  },
319
334
  "dependencies": {
320
- "@portabletext/react": "^8.0.0",
321
- "@sanity/image-url": "^2.1.1",
335
+ "engine.io-client": "^6.6.6",
322
336
  "marked": "^18.0.9",
323
337
  "react-markdown": "^10.1.0",
324
- "socket.io-client": "^4.8.3"
338
+ "socket.io-client": "^4.8.3",
339
+ "socket.io-parser": "^4.2.7"
325
340
  },
326
341
  "devDependencies": {
327
342
  "@axe-core/playwright": "^4.13.0",
343
+ "@portabletext/react": "^8.0.0",
344
+ "@sanity/image-url": "^2.1.1",
328
345
  "@babel/parser": "^8.0.4",
329
346
  "@babel/traverse": "^8.0.4",
330
347
  "@babel/types": "^8.0.4",
@@ -339,7 +356,7 @@
339
356
  "dotenv": "^17.4.2",
340
357
  "glob": "^13.0.6",
341
358
  "inquirer": "^14.0.2",
342
- "next": "16.3.0",
359
+ "next": "16.3.1",
343
360
  "open": "11.0.0",
344
361
  "ora": "^9.4.1",
345
362
  "playwright": "^1.62.1",
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk5QVXHD6V_js = require('./chunk-5QVXHD6V.js');
4
- require('./chunk-HMFFAUCD.js');
5
- require('./chunk-RC4WWQXR.js');
6
- require('./chunk-VJMPIRSD.js');
7
- require('./chunk-WXKEYKE6.js');
8
- require('./chunk-PGND73EV.js');
9
- require('./chunk-LYAU5PRS.js');
10
- require('./chunk-SNAQBZPT.js');
11
-
12
-
13
-
14
- Object.defineProperty(exports, "AnalyticsProvider", {
15
- enumerable: true,
16
- get: function () { return chunk5QVXHD6V_js.AnalyticsProvider; }
17
- });
18
- Object.defineProperty(exports, "useAnalytics", {
19
- enumerable: true,
20
- get: function () { return chunk5QVXHD6V_js.useAnalytics; }
21
- });
22
- Object.defineProperty(exports, "useAnalyticsOptional", {
23
- enumerable: true,
24
- get: function () { return chunk5QVXHD6V_js.useAnalyticsOptional; }
25
- });
26
- Object.defineProperty(exports, "useTrackEvent", {
27
- enumerable: true,
28
- get: function () { return chunk5QVXHD6V_js.useTrackEvent; }
29
- });
30
- //# sourceMappingURL=AnalyticsProvider-5SX4ZRGN.js.map
31
- //# sourceMappingURL=AnalyticsProvider-5SX4ZRGN.js.map
@@ -1,10 +0,0 @@
1
- export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-6PNWJXAE.mjs';
2
- import './chunk-3DPXOZAU.mjs';
3
- import './chunk-ZZQAGCSI.mjs';
4
- import './chunk-6EDVCUAG.mjs';
5
- import './chunk-FGN27J35.mjs';
6
- import './chunk-KNYK2VLX.mjs';
7
- import './chunk-QTN3F7D7.mjs';
8
- import './chunk-BEXTDHO4.mjs';
9
- //# sourceMappingURL=AnalyticsProvider-6DIRTRRA.mjs.map
10
- //# sourceMappingURL=AnalyticsProvider-6DIRTRRA.mjs.map
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkRAX3HS4T_js = require('./chunk-RAX3HS4T.js');
4
- require('./chunk-OP5FYTWJ.js');
5
- require('./chunk-ZRGCKWIT.js');
6
- require('./chunk-KHPJ3CEL.js');
7
- require('./chunk-VJMPIRSD.js');
8
- require('./chunk-WXKEYKE6.js');
9
- require('./chunk-PGND73EV.js');
10
- require('./chunk-LYAU5PRS.js');
11
- require('./chunk-SNAQBZPT.js');
12
-
13
-
14
-
15
- Object.defineProperty(exports, "ChatWidget", {
16
- enumerable: true,
17
- get: function () { return chunkRAX3HS4T_js.ChatWidget; }
18
- });
19
- //# sourceMappingURL=ChatWidget-3SUC7HZA.js.map
20
- //# sourceMappingURL=ChatWidget-3SUC7HZA.js.map
@@ -1,11 +0,0 @@
1
- export { ChatWidget } from './chunk-6ZFXASW6.mjs';
2
- import './chunk-JFVEKSZT.mjs';
3
- import './chunk-AJNT5GCU.mjs';
4
- import './chunk-TMVKRQGJ.mjs';
5
- import './chunk-6EDVCUAG.mjs';
6
- import './chunk-FGN27J35.mjs';
7
- import './chunk-KNYK2VLX.mjs';
8
- import './chunk-QTN3F7D7.mjs';
9
- import './chunk-BEXTDHO4.mjs';
10
- //# sourceMappingURL=ChatWidget-JTTERPI5.mjs.map
11
- //# sourceMappingURL=ChatWidget-JTTERPI5.mjs.map
@@ -1,9 +0,0 @@
1
- export { EngageWidget } from './chunk-NWJX6NHR.mjs';
2
- import './chunk-ZZQAGCSI.mjs';
3
- import './chunk-6EDVCUAG.mjs';
4
- import './chunk-FGN27J35.mjs';
5
- import './chunk-KNYK2VLX.mjs';
6
- import './chunk-QTN3F7D7.mjs';
7
- import './chunk-BEXTDHO4.mjs';
8
- //# sourceMappingURL=EngageWidget-3MDY2W5G.mjs.map
9
- //# sourceMappingURL=EngageWidget-3MDY2W5G.mjs.map
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk2MIOQYF5_js = require('./chunk-2MIOQYF5.js');
4
- require('./chunk-RC4WWQXR.js');
5
- require('./chunk-VJMPIRSD.js');
6
- require('./chunk-WXKEYKE6.js');
7
- require('./chunk-PGND73EV.js');
8
- require('./chunk-LYAU5PRS.js');
9
- require('./chunk-SNAQBZPT.js');
10
-
11
-
12
-
13
- Object.defineProperty(exports, "EngageWidget", {
14
- enumerable: true,
15
- get: function () { return chunk2MIOQYF5_js.EngageWidget; }
16
- });
17
- //# sourceMappingURL=EngageWidget-YVAIP2NW.js.map
18
- //# sourceMappingURL=EngageWidget-YVAIP2NW.js.map
@@ -1,14 +0,0 @@
1
- export { ManagedForm } from './chunk-NCWVR4BU.mjs';
2
- import './chunk-MZY3MEUO.mjs';
3
- import './chunk-R4PCXP3F.mjs';
4
- import './chunk-LB7LHVWI.mjs';
5
- import './chunk-JFVEKSZT.mjs';
6
- import './chunk-AJNT5GCU.mjs';
7
- import './chunk-TMVKRQGJ.mjs';
8
- import './chunk-6EDVCUAG.mjs';
9
- import './chunk-FGN27J35.mjs';
10
- import './chunk-KNYK2VLX.mjs';
11
- import './chunk-QTN3F7D7.mjs';
12
- import './chunk-BEXTDHO4.mjs';
13
- //# sourceMappingURL=ManagedForm-2SYVMJY6.mjs.map
14
- //# sourceMappingURL=ManagedForm-2SYVMJY6.mjs.map
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkNWPNFCNY_js = require('./chunk-NWPNFCNY.js');
4
- require('./chunk-LVCUT2OX.js');
5
- require('./chunk-VLY3SFNH.js');
6
- require('./chunk-2ACKOMAL.js');
7
- require('./chunk-OP5FYTWJ.js');
8
- require('./chunk-ZRGCKWIT.js');
9
- require('./chunk-KHPJ3CEL.js');
10
- require('./chunk-VJMPIRSD.js');
11
- require('./chunk-WXKEYKE6.js');
12
- require('./chunk-PGND73EV.js');
13
- require('./chunk-LYAU5PRS.js');
14
- require('./chunk-SNAQBZPT.js');
15
-
16
-
17
-
18
- Object.defineProperty(exports, "ManagedForm", {
19
- enumerable: true,
20
- get: function () { return chunkNWPNFCNY_js.ManagedForm; }
21
- });
22
- //# sourceMappingURL=ManagedForm-XWN3TVQQ.js.map
23
- //# sourceMappingURL=ManagedForm-XWN3TVQQ.js.map
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkZPG4GTU7_js = require('./chunk-ZPG4GTU7.js');
4
- require('./chunk-JEOKDUPQ.js');
5
- require('./chunk-WXKEYKE6.js');
6
- require('./chunk-PGND73EV.js');
7
- require('./chunk-LYAU5PRS.js');
8
- require('./chunk-SNAQBZPT.js');
9
-
10
-
11
-
12
- Object.defineProperty(exports, "SitemapSync", {
13
- enumerable: true,
14
- get: function () { return chunkZPG4GTU7_js.SitemapSync; }
15
- });
16
- //# sourceMappingURL=SitemapSync-KKUF43DS.js.map
17
- //# sourceMappingURL=SitemapSync-KKUF43DS.js.map
@@ -1,8 +0,0 @@
1
- export { SitemapSync } from './chunk-HOB2A6JM.mjs';
2
- import './chunk-QJU6HBSK.mjs';
3
- import './chunk-FGN27J35.mjs';
4
- import './chunk-KNYK2VLX.mjs';
5
- import './chunk-QTN3F7D7.mjs';
6
- import './chunk-BEXTDHO4.mjs';
7
- //# sourceMappingURL=SitemapSync-UH6VZ55T.mjs.map
8
- //# sourceMappingURL=SitemapSync-UH6VZ55T.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cms/server-api.ts"],"names":["__require","serverApiFetch"],"mappings":";;;;;;AAWA,IAAM,EAAE,KAAA,EAAM,GAAIA,0BAAA,CAAQ,OAAO,CAAA;AASjC,IAAM,cAAA,GAAiB,wBAAA;AAQvB,SAAS,aAAA,CACP,QAAA,EACA,IAAA,GAAgC,EAAC,EACd;AACnB,EAAA,OAAOC,gCAAkB,QAAA,EAAU;AAAA,IACjC,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA;AAAA,IACA,UAAA,EAAY,EAAA;AAAA,IACZ,UAAA,EAAY,IAAA;AAAA,IACZ,KAAA,EAAO,IAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACZ,CAAA;AACH;AAWO,IAAM,UAAA,GAAa,KAAA;AAAA,EACxB,OAAO,IAAA,KAA8C;AACnD,IAAA,MAAM,SAAS,MAAM,aAAA,CAGlB,sBAAA,EAAwB,EAAE,MAAM,CAAA;AAEnC,IAAA,IAAI,CAAC,MAAA,EAAQ,KAAA,IAAS,CAAC,MAAA,CAAO,MAAM,OAAO,IAAA;AAC3C,IAAA,OAAO,MAAA,CAAO,IAAA;AAAA,EAChB;AACF;AAMO,IAAM,aAAA,GAAgB,KAAA;AAAA,EAC3B,OAAO,SAAA,KAAsD;AAC3D,IAAA,MAAM,SAAS,MAAM,aAAA,CAGlB,yBAAA,EAA2B,EAAE,WAAW,CAAA;AAE3C,IAAA,IAAI,CAAC,MAAA,EAAQ,KAAA,IAAS,CAAC,MAAA,CAAO,SAAS,OAAO,IAAA;AAC9C,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,EAChB;AACF;AAgBO,IAAM,kBAAA,GAAqB,KAAA;AAAA,EAChC,OACE,IAAA,KAMW;AACX,IAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,IAAI,CAAA;AAClC,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,IAAA,MAAM,GAAA,GAAkB,IAAA,CAAK,GAAA,IAAO,EAAC;AAErC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,GAAA,CAAI,KAAA,IAAS,IAAA,CAAK,KAAA;AAAA,MACzB,aAAa,GAAA,CAAI,WAAA;AAAA,MACjB,QAAQ,GAAA,CAAI,OAAA,GAAU,EAAE,KAAA,EAAO,OAAM,GAAI,MAAA;AAAA,MACzC,SAAA,EAAW;AAAA,QACT,KAAA,EAAO,GAAA,CAAI,KAAA,IAAS,IAAA,CAAK,KAAA;AAAA,QACzB,aAAa,GAAA,CAAI;AAAA;AACnB,KACF;AAAA,EACF;AACF","file":"chunk-7QDTXT4N.js","sourcesContent":["/**\n * @sonordev/site-kit/cms - Server-Only API Functions\n *\n * Fetches CMS page/section data from Portal API.\n * Uses the same secure API pattern as seo/server-api.ts — both delegate config\n * resolution + fetch/retry to the shared server-fetch primitive (single source\n * of truth — see ../server/server-fetch).\n */\n\n// React.cache is available in React 19+ / Next.js RSC\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { cache } = require('react') as { cache: <T extends (...args: any[]) => any>(fn: T) => T }\nimport 'server-only'\nimport { serverApiFetch } from '../server/server-fetch'\nimport type { CmsPageData, CmsSectionData, CmsPageSeo } from './types'\n\n// ============================================\n// Server-Only API\n// ============================================\n\nconst CMS_LOG_PREFIX = '@sonordev/site-kit/cms'\n\n/**\n * POST to the Portal public CMS API. Thin wrapper over the shared `serverApiFetch`\n * so config resolution (via requireServerApiConfig — throws if no API key is set)\n * and retry/backoff live in one place (see ../server/server-fetch). 60s revalidate:\n * CMS content changes more often than the 24h-default SEO metadata.\n */\nfunction secureApiPost<T>(\n endpoint: string,\n body: Record<string, unknown> = {},\n): Promise<T | null> {\n return serverApiFetch<T>(endpoint, {\n method: 'POST',\n body,\n revalidate: 60,\n requireKey: true,\n retry: true,\n logPrefix: CMS_LOG_PREFIX,\n })\n}\n\n// ============================================\n// Cached Data Fetchers\n// ============================================\n\n/**\n * Fetch a published CMS page by path — cached per request.\n * Returns the full page with all sections and their Portable Text content.\n * @server-only\n */\nexport const getCmsPage = cache(\n async (path: string): Promise<CmsPageData | null> => {\n const result = await secureApiPost<{\n found: boolean\n page: CmsPageData | null\n }>('/api/public/cms/page', { path })\n\n if (!result?.found || !result.page) return null\n return result.page\n },\n)\n\n/**\n * Fetch a single published CMS section by ID — cached per request.\n * @server-only\n */\nexport const getCmsSection = cache(\n async (sectionId: string): Promise<CmsSectionData | null> => {\n const result = await secureApiPost<{\n found: boolean\n section: CmsSectionData | null\n }>('/api/public/cms/section', { sectionId })\n\n if (!result?.found || !result.section) return null\n return result.section\n },\n)\n\n/**\n * Fetch CMS page and return Next.js Metadata object.\n * Use in generateMetadata() for CMS-managed pages.\n *\n * @example\n * ```ts\n * import { getCmsPageMetadata } from '@sonordev/site-kit/cms/server'\n *\n * export async function generateMetadata({ params }) {\n * return getCmsPageMetadata(`/${params.slug}`)\n * }\n * ```\n * @server-only\n */\nexport const getCmsPageMetadata = cache(\n async (\n path: string,\n ): Promise<{\n title?: string\n description?: string\n robots?: { index: boolean }\n openGraph?: { title?: string; description?: string }\n } | null> => {\n const page = await getCmsPage(path)\n if (!page) return null\n\n const seo: CmsPageSeo = page.seo || {}\n\n return {\n title: seo.title || page.title,\n description: seo.description,\n robots: seo.noindex ? { index: false } : undefined,\n openGraph: {\n title: seo.title || page.title,\n description: seo.description,\n },\n }\n },\n)\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cms/server-api.ts"],"names":[],"mappings":";;;;AAWA,IAAM,EAAE,KAAA,EAAM,GAAI,SAAA,CAAQ,OAAO,CAAA;AASjC,IAAM,cAAA,GAAiB,wBAAA;AAQvB,SAAS,aAAA,CACP,QAAA,EACA,IAAA,GAAgC,EAAC,EACd;AACnB,EAAA,OAAO,eAAkB,QAAA,EAAU;AAAA,IACjC,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA;AAAA,IACA,UAAA,EAAY,EAAA;AAAA,IACZ,UAAA,EAAY,IAAA;AAAA,IACZ,KAAA,EAAO,IAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACZ,CAAA;AACH;AAWO,IAAM,UAAA,GAAa,KAAA;AAAA,EACxB,OAAO,IAAA,KAA8C;AACnD,IAAA,MAAM,SAAS,MAAM,aAAA,CAGlB,sBAAA,EAAwB,EAAE,MAAM,CAAA;AAEnC,IAAA,IAAI,CAAC,MAAA,EAAQ,KAAA,IAAS,CAAC,MAAA,CAAO,MAAM,OAAO,IAAA;AAC3C,IAAA,OAAO,MAAA,CAAO,IAAA;AAAA,EAChB;AACF;AAMO,IAAM,aAAA,GAAgB,KAAA;AAAA,EAC3B,OAAO,SAAA,KAAsD;AAC3D,IAAA,MAAM,SAAS,MAAM,aAAA,CAGlB,yBAAA,EAA2B,EAAE,WAAW,CAAA;AAE3C,IAAA,IAAI,CAAC,MAAA,EAAQ,KAAA,IAAS,CAAC,MAAA,CAAO,SAAS,OAAO,IAAA;AAC9C,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,EAChB;AACF;AAgBO,IAAM,kBAAA,GAAqB,KAAA;AAAA,EAChC,OACE,IAAA,KAMW;AACX,IAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,IAAI,CAAA;AAClC,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,IAAA,MAAM,GAAA,GAAkB,IAAA,CAAK,GAAA,IAAO,EAAC;AAErC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,GAAA,CAAI,KAAA,IAAS,IAAA,CAAK,KAAA;AAAA,MACzB,aAAa,GAAA,CAAI,WAAA;AAAA,MACjB,QAAQ,GAAA,CAAI,OAAA,GAAU,EAAE,KAAA,EAAO,OAAM,GAAI,MAAA;AAAA,MACzC,SAAA,EAAW;AAAA,QACT,KAAA,EAAO,GAAA,CAAI,KAAA,IAAS,IAAA,CAAK,KAAA;AAAA,QACzB,aAAa,GAAA,CAAI;AAAA;AACnB,KACF;AAAA,EACF;AACF","file":"chunk-ARBOKZAU.mjs","sourcesContent":["/**\n * @sonordev/site-kit/cms - Server-Only API Functions\n *\n * Fetches CMS page/section data from Portal API.\n * Uses the same secure API pattern as seo/server-api.ts — both delegate config\n * resolution + fetch/retry to the shared server-fetch primitive (single source\n * of truth — see ../server/server-fetch).\n */\n\n// React.cache is available in React 19+ / Next.js RSC\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { cache } = require('react') as { cache: <T extends (...args: any[]) => any>(fn: T) => T }\nimport 'server-only'\nimport { serverApiFetch } from '../server/server-fetch'\nimport type { CmsPageData, CmsSectionData, CmsPageSeo } from './types'\n\n// ============================================\n// Server-Only API\n// ============================================\n\nconst CMS_LOG_PREFIX = '@sonordev/site-kit/cms'\n\n/**\n * POST to the Portal public CMS API. Thin wrapper over the shared `serverApiFetch`\n * so config resolution (via requireServerApiConfig — throws if no API key is set)\n * and retry/backoff live in one place (see ../server/server-fetch). 60s revalidate:\n * CMS content changes more often than the 24h-default SEO metadata.\n */\nfunction secureApiPost<T>(\n endpoint: string,\n body: Record<string, unknown> = {},\n): Promise<T | null> {\n return serverApiFetch<T>(endpoint, {\n method: 'POST',\n body,\n revalidate: 60,\n requireKey: true,\n retry: true,\n logPrefix: CMS_LOG_PREFIX,\n })\n}\n\n// ============================================\n// Cached Data Fetchers\n// ============================================\n\n/**\n * Fetch a published CMS page by path — cached per request.\n * Returns the full page with all sections and their Portable Text content.\n * @server-only\n */\nexport const getCmsPage = cache(\n async (path: string): Promise<CmsPageData | null> => {\n const result = await secureApiPost<{\n found: boolean\n page: CmsPageData | null\n }>('/api/public/cms/page', { path })\n\n if (!result?.found || !result.page) return null\n return result.page\n },\n)\n\n/**\n * Fetch a single published CMS section by ID — cached per request.\n * @server-only\n */\nexport const getCmsSection = cache(\n async (sectionId: string): Promise<CmsSectionData | null> => {\n const result = await secureApiPost<{\n found: boolean\n section: CmsSectionData | null\n }>('/api/public/cms/section', { sectionId })\n\n if (!result?.found || !result.section) return null\n return result.section\n },\n)\n\n/**\n * Fetch CMS page and return Next.js Metadata object.\n * Use in generateMetadata() for CMS-managed pages.\n *\n * @example\n * ```ts\n * import { getCmsPageMetadata } from '@sonordev/site-kit/cms/server'\n *\n * export async function generateMetadata({ params }) {\n * return getCmsPageMetadata(`/${params.slug}`)\n * }\n * ```\n * @server-only\n */\nexport const getCmsPageMetadata = cache(\n async (\n path: string,\n ): Promise<{\n title?: string\n description?: string\n robots?: { index: boolean }\n openGraph?: { title?: string; description?: string }\n } | null> => {\n const page = await getCmsPage(path)\n if (!page) return null\n\n const seo: CmsPageSeo = page.seo || {}\n\n return {\n title: seo.title || page.title,\n description: seo.description,\n robots: seo.noindex ? { index: false } : undefined,\n openGraph: {\n title: seo.title || page.title,\n description: seo.description,\n },\n }\n },\n)\n"]}
@@ -1,52 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var react = require('react');
5
- var jsxRuntime = require('react/jsx-runtime');
6
-
7
- // src/landing/LandingPage.tsx
8
-
9
- // src/landing/contract.ts
10
- function normalizeCampaignSlug(input) {
11
- if (!input || typeof input !== "string") return null;
12
- const slug = input.trim().toLowerCase().replace(/[\s_]+/g, "-").replace(/[^a-z0-9-]/g, "").replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "").slice(0, 80);
13
- return slug || null;
14
- }
15
- function LandingPage({ campaign, children, robotsMeta = true }) {
16
- const slug = normalizeCampaignSlug(campaign);
17
- react.useEffect(() => {
18
- if (!slug || typeof window === "undefined") return;
19
- const w = window;
20
- w.__SITE_KIT_PAGE_KIND__ = "landing";
21
- w.__SITE_KIT_CAMPAIGN__ = slug;
22
- return () => {
23
- if (w.__SITE_KIT_CAMPAIGN__ === slug) {
24
- delete w.__SITE_KIT_PAGE_KIND__;
25
- delete w.__SITE_KIT_CAMPAIGN__;
26
- }
27
- };
28
- }, [slug]);
29
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
30
- robotsMeta && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "robots", content: "noindex, nofollow" }),
31
- children
32
- ] });
33
- }
34
-
35
- // src/landing/metadata.ts
36
- function landingPageMetadata(meta = {}) {
37
- const callerRobots = meta.robots && typeof meta.robots === "object" ? meta.robots : void 0;
38
- return {
39
- ...meta,
40
- robots: {
41
- index: false,
42
- follow: false,
43
- ...callerRobots
44
- }
45
- };
46
- }
47
-
48
- exports.LandingPage = LandingPage;
49
- exports.landingPageMetadata = landingPageMetadata;
50
- exports.normalizeCampaignSlug = normalizeCampaignSlug;
51
- //# sourceMappingURL=chunk-EU2UGO25.js.map
52
- //# sourceMappingURL=chunk-EU2UGO25.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/landing/contract.ts","../src/landing/LandingPage.tsx","../src/landing/metadata.ts"],"names":["useEffect","jsxs","Fragment","jsx"],"mappings":";;;;;;;;AAaO,SAAS,sBAAsB,KAAA,EAAsC;AAC1E,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,UAAU,OAAO,IAAA;AAChD,EAAA,MAAM,IAAA,GAAO,KAAA,CACV,IAAA,EAAK,CACL,WAAA,GACA,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CACtB,OAAA,CAAQ,aAAA,EAAe,EAAE,CAAA,CACzB,OAAA,CAAQ,QAAA,EAAU,GAAG,CAAA,CACrB,OAAA,CAAQ,YAAY,EAAE,CAAA,CACtB,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACd,EAAA,OAAO,IAAA,IAAQ,IAAA;AACjB;AC2BO,SAAS,YAAY,EAAE,QAAA,EAAU,QAAA,EAAU,UAAA,GAAa,MAAK,EAAqB;AACvF,EAAA,MAAM,IAAA,GAAO,sBAAsB,QAAQ,CAAA;AAE3C,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,MAAA,KAAW,WAAA,EAAa;AAC5C,IAAA,MAAM,CAAA,GAAI,MAAA;AAIV,IAAA,CAAA,CAAE,sBAAA,GAAyB,SAAA;AAC3B,IAAA,CAAA,CAAE,qBAAA,GAAwB,IAAA;AAC1B,IAAA,OAAO,MAAM;AAGX,MAAA,IAAI,CAAA,CAAE,0BAA0B,IAAA,EAAM;AACpC,QAAA,OAAO,CAAA,CAAE,sBAAA;AACT,QAAA,OAAO,CAAA,CAAE,qBAAA;AAAA,MACX;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,UAAA,oBAAcC,cAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,QAAA,EAAS,SAAQ,mBAAA,EAAoB,CAAA;AAAA,IAC9D;AAAA,GAAA,EACH,CAAA;AAEJ;;;AC5DO,SAAS,mBAAA,CAAoB,IAAA,GAAiB,EAAC,EAAa;AACjE,EAAA,MAAM,YAAA,GACJ,KAAK,MAAA,IAAU,OAAO,KAAK,MAAA,KAAW,QAAA,GAAW,KAAK,MAAA,GAAS,MAAA;AACjE,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,KAAA;AAAA,MACP,MAAA,EAAQ,KAAA;AAAA,MACR,GAAG;AAAA;AACL,GACF;AACF","file":"chunk-EU2UGO25.js","sourcesContent":["/**\n * Landing-page campaign contract.\n *\n * normalizeCampaignSlug is an inlined MIRROR of sonor-api's\n * `src/modules/analytics/utils/campaign.util.ts` (the CANONICAL copy) —\n * keep the function body byte-identical. Both suites assert the same fixed\n * vectors (sonor-api's campaign.util.spec.ts and this package's\n * landing/contract.test.ts), so silent drift fails CI on either side.\n *\n * A slug normalized here always matches the server's canonical form, so the\n * campaign a developer declares in code is exactly the identity the\n * dashboard reports on.\n */\nexport function normalizeCampaignSlug(input?: string | null): string | null {\n if (!input || typeof input !== 'string') return null\n const slug = input\n .trim()\n .toLowerCase()\n .replace(/[\\s_]+/g, '-')\n .replace(/[^a-z0-9-]/g, '')\n .replace(/-{2,}/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 80)\n return slug || null\n}\n","'use client'\n\n/**\n * <LandingPage campaign=\"...\"> — marks a route as a paid-ad landing page.\n *\n * A landing page is a single-page experience built for a specific paid\n * campaign. Declaring it does three things:\n *\n * 1. Analytics payloads from this route carry `pageKind: 'landing'` and\n * the campaign slug — the session is stamped first-touch, the campaign\n * auto-registers in Sonor (zero setup), and the Landing Pages section\n * of the Analytics module reports on it (sessions → engagement →\n * conversions → named leads, tracking health, devices, geo).\n * 2. The page is EXCLUDED from the SEO surface: no seo_pages enrichment,\n * never listed in the SEO module. (Keep the route out of sitemap.xml —\n * see the blessed pattern in the agent manifest.)\n * 3. Renders a hoisted robots noindex meta as belt-and-braces. The\n * reliable mechanism is `landingPageMetadata()` in the route's\n * metadata export — always use both.\n *\n * Wiring (both pieces, in the landing route file):\n *\n * export const metadata = landingPageMetadata({ title: '...' })\n *\n * export default function SpringHvacPage() {\n * return (\n * <LandingPage campaign=\"spring-hvac-2026\">\n * ...page content...\n * </LandingPage>\n * )\n * }\n *\n * The wrapper composes with SiteKitLayout: analytics, forms, engage and the\n * multi-site dimension all behave normally — the page is simply campaign-\n * stamped and SEO-invisible.\n */\nimport { useEffect, type ReactNode } from 'react'\nimport { normalizeCampaignSlug } from './contract'\n\nexport interface LandingPageProps {\n /** Campaign identity (e.g. \"spring-hvac-2026\"). Normalized to a slug; one campaign can back several landing page variants. */\n campaign: string\n children?: ReactNode\n /**\n * Render the hoisted robots meta tag (default true). Turn off only if the\n * route manages robots itself — landingPageMetadata() remains required\n * either way for reliable noindex.\n */\n robotsMeta?: boolean\n}\n\nexport function LandingPage({ campaign, children, robotsMeta = true }: LandingPageProps) {\n const slug = normalizeCampaignSlug(campaign)\n\n useEffect(() => {\n if (!slug || typeof window === 'undefined') return\n const w = window as {\n __SITE_KIT_PAGE_KIND__?: string\n __SITE_KIT_CAMPAIGN__?: string\n }\n w.__SITE_KIT_PAGE_KIND__ = 'landing'\n w.__SITE_KIT_CAMPAIGN__ = slug\n return () => {\n // Only clear our own marker — a SPA nav to another landing page may\n // have already claimed the globals before this cleanup runs.\n if (w.__SITE_KIT_CAMPAIGN__ === slug) {\n delete w.__SITE_KIT_PAGE_KIND__\n delete w.__SITE_KIT_CAMPAIGN__\n }\n }\n }, [slug])\n\n return (\n <>\n {robotsMeta && <meta name=\"robots\" content=\"noindex, nofollow\" />}\n {children}\n </>\n )\n}\n\nexport default LandingPage\n","import type { Metadata } from 'next'\n\n/**\n * Metadata for a paid-ad landing page: noindex, nofollow by default.\n *\n * This is the RELIABLE noindex mechanism — export it from the landing\n * route so the robots directives render in <head> at SSR:\n *\n * export const metadata = landingPageMetadata({\n * title: 'Spring HVAC Tune-Up | Acme Heating',\n * description: 'Book your $99 spring tune-up.',\n * })\n *\n * The <LandingPage> wrapper also hoists a robots meta tag as belt-and-braces,\n * but body-rendered meta is not honored by all crawlers — always use this\n * helper too. Pass an explicit `robots` object to override the default\n * (e.g. a landing page you deliberately want indexed).\n */\nexport function landingPageMetadata(meta: Metadata = {}): Metadata {\n const callerRobots =\n meta.robots && typeof meta.robots === 'object' ? meta.robots : undefined\n return {\n ...meta,\n robots: {\n index: false,\n follow: false,\n ...callerRobots,\n },\n }\n}\n"]}
@@ -1,48 +0,0 @@
1
- 'use client';
2
- import { useEffect } from 'react';
3
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
4
-
5
- // src/landing/LandingPage.tsx
6
-
7
- // src/landing/contract.ts
8
- function normalizeCampaignSlug(input) {
9
- if (!input || typeof input !== "string") return null;
10
- const slug = input.trim().toLowerCase().replace(/[\s_]+/g, "-").replace(/[^a-z0-9-]/g, "").replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "").slice(0, 80);
11
- return slug || null;
12
- }
13
- function LandingPage({ campaign, children, robotsMeta = true }) {
14
- const slug = normalizeCampaignSlug(campaign);
15
- useEffect(() => {
16
- if (!slug || typeof window === "undefined") return;
17
- const w = window;
18
- w.__SITE_KIT_PAGE_KIND__ = "landing";
19
- w.__SITE_KIT_CAMPAIGN__ = slug;
20
- return () => {
21
- if (w.__SITE_KIT_CAMPAIGN__ === slug) {
22
- delete w.__SITE_KIT_PAGE_KIND__;
23
- delete w.__SITE_KIT_CAMPAIGN__;
24
- }
25
- };
26
- }, [slug]);
27
- return /* @__PURE__ */ jsxs(Fragment, { children: [
28
- robotsMeta && /* @__PURE__ */ jsx("meta", { name: "robots", content: "noindex, nofollow" }),
29
- children
30
- ] });
31
- }
32
-
33
- // src/landing/metadata.ts
34
- function landingPageMetadata(meta = {}) {
35
- const callerRobots = meta.robots && typeof meta.robots === "object" ? meta.robots : void 0;
36
- return {
37
- ...meta,
38
- robots: {
39
- index: false,
40
- follow: false,
41
- ...callerRobots
42
- }
43
- };
44
- }
45
-
46
- export { LandingPage, landingPageMetadata, normalizeCampaignSlug };
47
- //# sourceMappingURL=chunk-IBMOX3YE.mjs.map
48
- //# sourceMappingURL=chunk-IBMOX3YE.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/landing/contract.ts","../src/landing/LandingPage.tsx","../src/landing/metadata.ts"],"names":[],"mappings":";;;;;;AAaO,SAAS,sBAAsB,KAAA,EAAsC;AAC1E,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,UAAU,OAAO,IAAA;AAChD,EAAA,MAAM,IAAA,GAAO,KAAA,CACV,IAAA,EAAK,CACL,WAAA,GACA,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA,CACtB,OAAA,CAAQ,aAAA,EAAe,EAAE,CAAA,CACzB,OAAA,CAAQ,QAAA,EAAU,GAAG,CAAA,CACrB,OAAA,CAAQ,YAAY,EAAE,CAAA,CACtB,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACd,EAAA,OAAO,IAAA,IAAQ,IAAA;AACjB;AC2BO,SAAS,YAAY,EAAE,QAAA,EAAU,QAAA,EAAU,UAAA,GAAa,MAAK,EAAqB;AACvF,EAAA,MAAM,IAAA,GAAO,sBAAsB,QAAQ,CAAA;AAE3C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,MAAA,KAAW,WAAA,EAAa;AAC5C,IAAA,MAAM,CAAA,GAAI,MAAA;AAIV,IAAA,CAAA,CAAE,sBAAA,GAAyB,SAAA;AAC3B,IAAA,CAAA,CAAE,qBAAA,GAAwB,IAAA;AAC1B,IAAA,OAAO,MAAM;AAGX,MAAA,IAAI,CAAA,CAAE,0BAA0B,IAAA,EAAM;AACpC,QAAA,OAAO,CAAA,CAAE,sBAAA;AACT,QAAA,OAAO,CAAA,CAAE,qBAAA;AAAA,MACX;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,UAAA,oBAAc,GAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,QAAA,EAAS,SAAQ,mBAAA,EAAoB,CAAA;AAAA,IAC9D;AAAA,GAAA,EACH,CAAA;AAEJ;;;AC5DO,SAAS,mBAAA,CAAoB,IAAA,GAAiB,EAAC,EAAa;AACjE,EAAA,MAAM,YAAA,GACJ,KAAK,MAAA,IAAU,OAAO,KAAK,MAAA,KAAW,QAAA,GAAW,KAAK,MAAA,GAAS,MAAA;AACjE,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,KAAA;AAAA,MACP,MAAA,EAAQ,KAAA;AAAA,MACR,GAAG;AAAA;AACL,GACF;AACF","file":"chunk-IBMOX3YE.mjs","sourcesContent":["/**\n * Landing-page campaign contract.\n *\n * normalizeCampaignSlug is an inlined MIRROR of sonor-api's\n * `src/modules/analytics/utils/campaign.util.ts` (the CANONICAL copy) —\n * keep the function body byte-identical. Both suites assert the same fixed\n * vectors (sonor-api's campaign.util.spec.ts and this package's\n * landing/contract.test.ts), so silent drift fails CI on either side.\n *\n * A slug normalized here always matches the server's canonical form, so the\n * campaign a developer declares in code is exactly the identity the\n * dashboard reports on.\n */\nexport function normalizeCampaignSlug(input?: string | null): string | null {\n if (!input || typeof input !== 'string') return null\n const slug = input\n .trim()\n .toLowerCase()\n .replace(/[\\s_]+/g, '-')\n .replace(/[^a-z0-9-]/g, '')\n .replace(/-{2,}/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 80)\n return slug || null\n}\n","'use client'\n\n/**\n * <LandingPage campaign=\"...\"> — marks a route as a paid-ad landing page.\n *\n * A landing page is a single-page experience built for a specific paid\n * campaign. Declaring it does three things:\n *\n * 1. Analytics payloads from this route carry `pageKind: 'landing'` and\n * the campaign slug — the session is stamped first-touch, the campaign\n * auto-registers in Sonor (zero setup), and the Landing Pages section\n * of the Analytics module reports on it (sessions → engagement →\n * conversions → named leads, tracking health, devices, geo).\n * 2. The page is EXCLUDED from the SEO surface: no seo_pages enrichment,\n * never listed in the SEO module. (Keep the route out of sitemap.xml —\n * see the blessed pattern in the agent manifest.)\n * 3. Renders a hoisted robots noindex meta as belt-and-braces. The\n * reliable mechanism is `landingPageMetadata()` in the route's\n * metadata export — always use both.\n *\n * Wiring (both pieces, in the landing route file):\n *\n * export const metadata = landingPageMetadata({ title: '...' })\n *\n * export default function SpringHvacPage() {\n * return (\n * <LandingPage campaign=\"spring-hvac-2026\">\n * ...page content...\n * </LandingPage>\n * )\n * }\n *\n * The wrapper composes with SiteKitLayout: analytics, forms, engage and the\n * multi-site dimension all behave normally — the page is simply campaign-\n * stamped and SEO-invisible.\n */\nimport { useEffect, type ReactNode } from 'react'\nimport { normalizeCampaignSlug } from './contract'\n\nexport interface LandingPageProps {\n /** Campaign identity (e.g. \"spring-hvac-2026\"). Normalized to a slug; one campaign can back several landing page variants. */\n campaign: string\n children?: ReactNode\n /**\n * Render the hoisted robots meta tag (default true). Turn off only if the\n * route manages robots itself — landingPageMetadata() remains required\n * either way for reliable noindex.\n */\n robotsMeta?: boolean\n}\n\nexport function LandingPage({ campaign, children, robotsMeta = true }: LandingPageProps) {\n const slug = normalizeCampaignSlug(campaign)\n\n useEffect(() => {\n if (!slug || typeof window === 'undefined') return\n const w = window as {\n __SITE_KIT_PAGE_KIND__?: string\n __SITE_KIT_CAMPAIGN__?: string\n }\n w.__SITE_KIT_PAGE_KIND__ = 'landing'\n w.__SITE_KIT_CAMPAIGN__ = slug\n return () => {\n // Only clear our own marker — a SPA nav to another landing page may\n // have already claimed the globals before this cleanup runs.\n if (w.__SITE_KIT_CAMPAIGN__ === slug) {\n delete w.__SITE_KIT_PAGE_KIND__\n delete w.__SITE_KIT_CAMPAIGN__\n }\n }\n }, [slug])\n\n return (\n <>\n {robotsMeta && <meta name=\"robots\" content=\"noindex, nofollow\" />}\n {children}\n </>\n )\n}\n\nexport default LandingPage\n","import type { Metadata } from 'next'\n\n/**\n * Metadata for a paid-ad landing page: noindex, nofollow by default.\n *\n * This is the RELIABLE noindex mechanism — export it from the landing\n * route so the robots directives render in <head> at SSR:\n *\n * export const metadata = landingPageMetadata({\n * title: 'Spring HVAC Tune-Up | Acme Heating',\n * description: 'Book your $99 spring tune-up.',\n * })\n *\n * The <LandingPage> wrapper also hoists a robots meta tag as belt-and-braces,\n * but body-rendered meta is not honored by all crawlers — always use this\n * helper too. Pass an explicit `robots` object to override the default\n * (e.g. a landing page you deliberately want indexed).\n */\nexport function landingPageMetadata(meta: Metadata = {}): Metadata {\n const callerRobots =\n meta.robots && typeof meta.robots === 'object' ? meta.robots : undefined\n return {\n ...meta,\n robots: {\n index: false,\n follow: false,\n ...callerRobots,\n },\n }\n}\n"]}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- // src/shared/version.ts
4
- var SITE_KIT_VERSION = "4.0.2";
5
-
6
- exports.SITE_KIT_VERSION = SITE_KIT_VERSION;
7
- //# sourceMappingURL=chunk-LYAU5PRS.js.map
8
- //# sourceMappingURL=chunk-LYAU5PRS.js.map
@@ -1,6 +0,0 @@
1
- // src/shared/version.ts
2
- var SITE_KIT_VERSION = "4.0.2";
3
-
4
- export { SITE_KIT_VERSION };
5
- //# sourceMappingURL=chunk-QTN3F7D7.mjs.map
6
- //# sourceMappingURL=chunk-QTN3F7D7.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/engage/socket-loader.ts"],"names":[],"mappings":";;;AAOA,eAAsB,YAAA,CACpB,KACA,IAAA,EACiB;AACjB,EAAA,MAAM,EAAE,EAAA,EAAG,GAAI,MAAM;AAAA;AAAA,IAA2C;AAAA,GAAkB;AAClF,EAAA,OAAO,EAAA,CAAG,KAAK,IAAI,CAAA;AACrB","file":"socket-loader-JHNN2QK4.mjs","sourcesContent":["import type { Socket } from 'socket.io-client'\n\n/**\n * Lazy socket.io loader — kept in a separate file so bundlers\n * (Turbopack, webpack) never pull socket.io-client into the main\n * engage chunk. Only loaded when the user actually opens the chat.\n */\nexport async function createSocket(\n url: string,\n opts: Record<string, unknown>,\n): Promise<Socket> {\n const { io } = await import(/* webpackChunkName: \"socket-io\" */ 'socket.io-client')\n return io(url, opts)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/engage/socket-loader.ts"],"names":[],"mappings":";;;;;AAOA,eAAsB,YAAA,CACpB,KACA,IAAA,EACiB;AACjB,EAAA,MAAM,EAAE,EAAA,EAAG,GAAI,MAAM;AAAA;AAAA,IAA2C;AAAA,GAAkB;AAClF,EAAA,OAAO,EAAA,CAAG,KAAK,IAAI,CAAA;AACrB","file":"socket-loader-YEAQZ3XC.js","sourcesContent":["import type { Socket } from 'socket.io-client'\n\n/**\n * Lazy socket.io loader — kept in a separate file so bundlers\n * (Turbopack, webpack) never pull socket.io-client into the main\n * engage chunk. Only loaded when the user actually opens the chat.\n */\nexport async function createSocket(\n url: string,\n opts: Record<string, unknown>,\n): Promise<Socket> {\n const { io } = await import(/* webpackChunkName: \"socket-io\" */ 'socket.io-client')\n return io(url, opts)\n}\n"]}