@sonordev/site-kit 5.3.1 → 5.4.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.
- package/README.md +17 -0
- package/agent-manifest.json +5 -4
- package/dist/AnalyticsProvider-2XIOMRCN.mjs +11 -0
- package/dist/{AnalyticsProvider-NA7EMJCA.mjs.map → AnalyticsProvider-2XIOMRCN.mjs.map} +1 -1
- package/dist/AnalyticsProvider-Y2P2BPOI.js +32 -0
- package/dist/{AnalyticsProvider-XE3ADUUH.js.map → AnalyticsProvider-Y2P2BPOI.js.map} +1 -1
- package/dist/{BlogViewTracker-DVJHZ7CM.js → BlogViewTracker-6EGEDPP3.js} +6 -6
- package/dist/{BlogViewTracker-DVJHZ7CM.js.map → BlogViewTracker-6EGEDPP3.js.map} +1 -1
- package/dist/{BlogViewTracker-MKJYTTJQ.mjs → BlogViewTracker-R4YQ76WP.mjs} +5 -5
- package/dist/{BlogViewTracker-MKJYTTJQ.mjs.map → BlogViewTracker-R4YQ76WP.mjs.map} +1 -1
- package/dist/ChatWidget-2OFWPCWF.js +20 -0
- package/dist/{ChatWidget-BZ3KOSXG.js.map → ChatWidget-2OFWPCWF.js.map} +1 -1
- package/dist/ChatWidget-4AOGHYXQ.mjs +11 -0
- package/dist/{ChatWidget-BD4F4XLD.mjs.map → ChatWidget-4AOGHYXQ.mjs.map} +1 -1
- package/dist/EngageWidget-SFO2XRNG.mjs +9 -0
- package/dist/{EngageWidget-L7B6PCM3.mjs.map → EngageWidget-SFO2XRNG.mjs.map} +1 -1
- package/dist/EngageWidget-T4KAAD3G.js +18 -0
- package/dist/{EngageWidget-JPP6EDCJ.js.map → EngageWidget-T4KAAD3G.js.map} +1 -1
- package/dist/{FileField-7WPRONDS.mjs → FileField-7DF2SLPF.mjs} +5 -5
- package/dist/{FileField-7WPRONDS.mjs.map → FileField-7DF2SLPF.mjs.map} +1 -1
- package/dist/{FileField-GHT7444Y.js → FileField-CE2XNBBG.js} +6 -6
- package/dist/{FileField-GHT7444Y.js.map → FileField-CE2XNBBG.js.map} +1 -1
- package/dist/{FormSpotlight-WZVS6HHR.mjs → FormSpotlight-IRLKSZGV.mjs} +3 -3
- package/dist/{FormSpotlight-WZVS6HHR.mjs.map → FormSpotlight-IRLKSZGV.mjs.map} +1 -1
- package/dist/{FormSpotlight-BB2IB7IX.js → FormSpotlight-ZD3WR5BC.js} +15 -15
- package/dist/{FormSpotlight-BB2IB7IX.js.map → FormSpotlight-ZD3WR5BC.js.map} +1 -1
- package/dist/{FormStage-Y3NHHMV2.mjs → FormStage-2OSRNQJL.mjs} +3 -3
- package/dist/{FormStage-Y3NHHMV2.mjs.map → FormStage-2OSRNQJL.mjs.map} +1 -1
- package/dist/{FormStage-FLBLXENZ.js → FormStage-OSPXOUQE.js} +13 -13
- package/dist/{FormStage-FLBLXENZ.js.map → FormStage-OSPXOUQE.js.map} +1 -1
- package/dist/ManagedForm-5G37EDJT.mjs +14 -0
- package/dist/{ManagedForm-AJM6D4SK.mjs.map → ManagedForm-5G37EDJT.mjs.map} +1 -1
- package/dist/ManagedForm-JCHGBBQW.js +23 -0
- package/dist/{ManagedForm-2OPCHDNJ.js.map → ManagedForm-JCHGBBQW.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-L2ZHJ7F4.js → ManagedNewsletterForm-4LVJZROZ.js} +8 -8
- package/dist/{ManagedNewsletterForm-L2ZHJ7F4.js.map → ManagedNewsletterForm-4LVJZROZ.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-MJI2JXIB.mjs → ManagedNewsletterForm-QJSVH23S.mjs} +7 -7
- package/dist/{ManagedNewsletterForm-MJI2JXIB.mjs.map → ManagedNewsletterForm-QJSVH23S.mjs.map} +1 -1
- package/dist/{SignalCore-23YDDSWO.mjs → SignalCore-L6Z3YTCF.mjs} +5 -5
- package/dist/{SignalCore-23YDDSWO.mjs.map → SignalCore-L6Z3YTCF.mjs.map} +1 -1
- package/dist/{SignalCore-G2VM7NUP.js → SignalCore-NQ4YEOI7.js} +11 -11
- package/dist/{SignalCore-G2VM7NUP.js.map → SignalCore-NQ4YEOI7.js.map} +1 -1
- package/dist/SitemapSync-3LUZWBTB.js +18 -0
- package/dist/{SitemapSync-T2N3TCWF.js.map → SitemapSync-3LUZWBTB.js.map} +1 -1
- package/dist/SitemapSync-MYSTLJOM.mjs +9 -0
- package/dist/{SitemapSync-YLWMU6J3.mjs.map → SitemapSync-MYSTLJOM.mjs.map} +1 -1
- package/dist/SitemapSync.d.ts.map +1 -1
- package/dist/analytics/AnalyticsProvider.d.ts +11 -1
- package/dist/analytics/AnalyticsProvider.d.ts.map +1 -1
- package/dist/analytics/WebVitals.d.ts +7 -1
- package/dist/analytics/WebVitals.d.ts.map +1 -1
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +25 -12
- package/dist/analytics/index.mjs +6 -5
- package/dist/analytics/send-gate.d.ts +119 -0
- package/dist/analytics/send-gate.d.ts.map +1 -0
- package/dist/analytics/send-gate.test.d.ts +20 -0
- package/dist/analytics/send-gate.test.d.ts.map +1 -0
- package/dist/blog/AuthorPage.d.ts +1 -1
- package/dist/blog/AuthorPage.d.ts.map +1 -1
- package/dist/blog/BlogLayout.d.ts +3 -1
- package/dist/blog/BlogLayout.d.ts.map +1 -1
- package/dist/blog/BlogList.d.ts +3 -1
- package/dist/blog/BlogList.d.ts.map +1 -1
- package/dist/blog/BlogPost.d.ts +3 -1
- package/dist/blog/BlogPost.d.ts.map +1 -1
- package/dist/blog/BlogSidebar.d.ts +3 -1
- package/dist/blog/BlogSidebar.d.ts.map +1 -1
- package/dist/blog/ClusterLandingPage.d.ts +3 -1
- package/dist/blog/ClusterLandingPage.d.ts.map +1 -1
- package/dist/blog/ClusterNavigation.d.ts +3 -1
- package/dist/blog/ClusterNavigation.d.ts.map +1 -1
- package/dist/blog/RelatedPosts.d.ts +4 -1
- package/dist/blog/RelatedPosts.d.ts.map +1 -1
- package/dist/blog/artwork-components.test.d.ts +2 -0
- package/dist/blog/artwork-components.test.d.ts.map +1 -0
- package/dist/blog/artwork.d.ts +14 -0
- package/dist/blog/artwork.d.ts.map +1 -0
- package/dist/blog/artwork.test.d.ts +2 -0
- package/dist/blog/artwork.test.d.ts.map +1 -0
- package/dist/blog/blog-styles.d.ts.map +1 -1
- package/dist/blog/blog-tables.d.ts +13 -0
- package/dist/blog/blog-tables.d.ts.map +1 -0
- package/dist/blog/blog-tables.test.d.ts +2 -0
- package/dist/blog/blog-tables.test.d.ts.map +1 -0
- package/dist/blog/index.d.ts +3 -0
- package/dist/blog/index.d.ts.map +1 -1
- package/dist/blog/index.js +52 -30
- package/dist/blog/index.js.map +1 -1
- package/dist/blog/index.mjs +15 -12
- package/dist/blog/index.mjs.map +1 -1
- package/dist/blog/publication-render.test.d.ts +2 -0
- package/dist/blog/publication-render.test.d.ts.map +1 -0
- package/dist/blog/publication-routes.test.d.ts +2 -0
- package/dist/blog/publication-routes.test.d.ts.map +1 -0
- package/dist/blog/routes.d.ts +40 -0
- package/dist/blog/routes.d.ts.map +1 -0
- package/dist/blog/server-core.d.ts +28 -21
- package/dist/blog/server-core.d.ts.map +1 -1
- package/dist/blog/server-ui.d.ts +4 -0
- package/dist/blog/server-ui.d.ts.map +1 -1
- package/dist/blog/server-ui.js +49 -28
- package/dist/blog/server-ui.js.map +1 -1
- package/dist/blog/server-ui.mjs +9 -15
- package/dist/blog/server-ui.mjs.map +1 -1
- package/dist/blog/server.d.ts +28 -21
- package/dist/blog/server.d.ts.map +1 -1
- package/dist/blog/server.js +71 -42
- package/dist/blog/server.mjs +3 -2
- package/dist/blog/types.d.ts +11 -1
- package/dist/blog/types.d.ts.map +1 -1
- package/dist/blog-styles-6EY3BS5Y.js +595 -0
- package/dist/blog-styles-6EY3BS5Y.js.map +1 -0
- package/dist/blog-styles-7AKRUMV7.mjs +592 -0
- package/dist/blog-styles-7AKRUMV7.mjs.map +1 -0
- package/dist/blog-tables-DWDEWA3S.js +17 -0
- package/dist/blog-tables-DWDEWA3S.js.map +1 -0
- package/dist/blog-tables-QGIHOESZ.mjs +4 -0
- package/dist/blog-tables-QGIHOESZ.mjs.map +1 -0
- package/dist/{chunk-KP56C66Z.js → chunk-2KIGFOPM.js} +126 -188
- package/dist/chunk-2KIGFOPM.js.map +1 -0
- package/dist/{chunk-EDZWNCSE.js → chunk-3EPMDPWI.js} +2 -2
- package/dist/{chunk-EDZWNCSE.js.map → chunk-3EPMDPWI.js.map} +1 -1
- package/dist/chunk-4B4S56WJ.mjs +110 -0
- package/dist/chunk-4B4S56WJ.mjs.map +1 -0
- package/dist/{chunk-47566YF4.js → chunk-4WQB2ORG.js} +14 -14
- package/dist/{chunk-47566YF4.js.map → chunk-4WQB2ORG.js.map} +1 -1
- package/dist/{chunk-5TGSM5EQ.js → chunk-5737U6DI.js} +14 -14
- package/dist/{chunk-5TGSM5EQ.js.map → chunk-5737U6DI.js.map} +1 -1
- package/dist/{chunk-DN6A6KXH.mjs → chunk-6CUBSQMD.mjs} +3 -3
- package/dist/{chunk-DN6A6KXH.mjs.map → chunk-6CUBSQMD.mjs.map} +1 -1
- package/dist/{chunk-JBGRXICL.js → chunk-746RKQHA.js} +75 -70
- package/dist/chunk-746RKQHA.js.map +1 -0
- package/dist/{chunk-GTK3CGWF.js → chunk-7IPSQ5JR.js} +6 -6
- package/dist/{chunk-GTK3CGWF.js.map → chunk-7IPSQ5JR.js.map} +1 -1
- package/dist/{chunk-4S7BHFGT.js → chunk-7PLH3H3W.js} +3 -3
- package/dist/{chunk-4S7BHFGT.js.map → chunk-7PLH3H3W.js.map} +1 -1
- package/dist/chunk-7U7C6XRI.mjs +6 -0
- package/dist/{chunk-HRQ4367C.mjs.map → chunk-7U7C6XRI.mjs.map} +1 -1
- package/dist/{chunk-X4PL7R63.mjs → chunk-7Y2UPFSY.mjs} +3 -3
- package/dist/{chunk-X4PL7R63.mjs.map → chunk-7Y2UPFSY.mjs.map} +1 -1
- package/dist/{chunk-XR47TOGW.mjs → chunk-A2VLEORI.mjs} +3 -3
- package/dist/{chunk-XR47TOGW.mjs.map → chunk-A2VLEORI.mjs.map} +1 -1
- package/dist/{chunk-PA5ZVCW2.mjs → chunk-ACTLQ2RH.mjs} +3 -3
- package/dist/{chunk-PA5ZVCW2.mjs.map → chunk-ACTLQ2RH.mjs.map} +1 -1
- package/dist/{chunk-VLR2UYO4.js → chunk-AWFZIXCT.js} +12 -11
- package/dist/chunk-AWFZIXCT.js.map +1 -0
- package/dist/{chunk-COAVBUMS.mjs → chunk-B36PTS7B.mjs} +413 -94
- package/dist/chunk-B36PTS7B.mjs.map +1 -0
- package/dist/{chunk-LFJRMY4V.js → chunk-DPDV5Z4G.js} +12 -12
- package/dist/{chunk-LFJRMY4V.js.map → chunk-DPDV5Z4G.js.map} +1 -1
- package/dist/{chunk-W47J6ZZG.mjs → chunk-DQM5GR2P.mjs} +4 -4
- package/dist/{chunk-W47J6ZZG.mjs.map → chunk-DQM5GR2P.mjs.map} +1 -1
- package/dist/{chunk-VGX6G3TA.mjs → chunk-EBMPXFOP.mjs} +3 -3
- package/dist/{chunk-VGX6G3TA.mjs.map → chunk-EBMPXFOP.mjs.map} +1 -1
- package/dist/{chunk-DHXQBTXE.mjs → chunk-EEQYKMGH.mjs} +75 -70
- package/dist/chunk-EEQYKMGH.mjs.map +1 -0
- package/dist/{chunk-77HT6TYK.mjs → chunk-G5I3XEQS.mjs} +3 -3
- package/dist/{chunk-77HT6TYK.mjs.map → chunk-G5I3XEQS.mjs.map} +1 -1
- package/dist/chunk-GHECYDSZ.mjs +134 -0
- package/dist/chunk-GHECYDSZ.mjs.map +1 -0
- package/dist/{chunk-UJOEN4X6.js → chunk-GQ6CUOLA.js} +15 -15
- package/dist/{chunk-UJOEN4X6.js.map → chunk-GQ6CUOLA.js.map} +1 -1
- package/dist/{chunk-DTX4R45S.js → chunk-HBMF3M5F.js} +4 -4
- package/dist/{chunk-DTX4R45S.js.map → chunk-HBMF3M5F.js.map} +1 -1
- package/dist/{chunk-NW5CBNRU.mjs → chunk-HDDV63XJ.mjs} +3 -3
- package/dist/{chunk-NW5CBNRU.mjs.map → chunk-HDDV63XJ.mjs.map} +1 -1
- package/dist/{chunk-DBJRJ2Q2.mjs → chunk-HH5KGXTK.mjs} +4 -4
- package/dist/{chunk-DBJRJ2Q2.mjs.map → chunk-HH5KGXTK.mjs.map} +1 -1
- package/dist/{chunk-AKQA5ZYZ.mjs → chunk-I4PDSDVE.mjs} +3 -3
- package/dist/{chunk-AKQA5ZYZ.mjs.map → chunk-I4PDSDVE.mjs.map} +1 -1
- package/dist/{chunk-2MPOO6QJ.js → chunk-ITFZZ6YT.js} +3 -3
- package/dist/{chunk-2MPOO6QJ.js.map → chunk-ITFZZ6YT.js.map} +1 -1
- package/dist/{chunk-WZZYTFDV.mjs → chunk-JJ26JKBJ.mjs} +8 -3
- package/dist/chunk-JJ26JKBJ.mjs.map +1 -0
- package/dist/{chunk-Z33JXJTJ.js → chunk-KMGGAL2X.js} +2 -2
- package/dist/{chunk-Z33JXJTJ.js.map → chunk-KMGGAL2X.js.map} +1 -1
- package/dist/{chunk-4IMZ45YA.mjs → chunk-KQ3VAOAF.mjs} +4 -4
- package/dist/{chunk-4IMZ45YA.mjs.map → chunk-KQ3VAOAF.mjs.map} +1 -1
- package/dist/{chunk-GPH3VVLP.js → chunk-LBS4PRC7.js} +3 -3
- package/dist/{chunk-GPH3VVLP.js.map → chunk-LBS4PRC7.js.map} +1 -1
- package/dist/chunk-LC7AM4J5.js +118 -0
- package/dist/chunk-LC7AM4J5.js.map +1 -0
- package/dist/{chunk-5HMN3FXL.js → chunk-LF4L3ZP5.js} +8 -8
- package/dist/{chunk-5HMN3FXL.js.map → chunk-LF4L3ZP5.js.map} +1 -1
- package/dist/{chunk-LHD45PGP.js → chunk-LHYVFWHL.js} +8 -8
- package/dist/{chunk-LHD45PGP.js.map → chunk-LHYVFWHL.js.map} +1 -1
- package/dist/{chunk-I72AUITZ.mjs → chunk-LIYSLNEK.mjs} +96 -644
- package/dist/chunk-LIYSLNEK.mjs.map +1 -0
- package/dist/{chunk-HIV5YK5G.js → chunk-LUYUFILE.js} +4 -4
- package/dist/{chunk-HIV5YK5G.js.map → chunk-LUYUFILE.js.map} +1 -1
- package/dist/{chunk-4HL6CAZ7.mjs → chunk-MIFP6QEQ.mjs} +4 -4
- package/dist/{chunk-4HL6CAZ7.mjs.map → chunk-MIFP6QEQ.mjs.map} +1 -1
- package/dist/{chunk-SI7R3IJX.mjs → chunk-MTANHZKJ.mjs} +7 -7
- package/dist/{chunk-SI7R3IJX.mjs.map → chunk-MTANHZKJ.mjs.map} +1 -1
- package/dist/{chunk-R4PFWVGZ.mjs → chunk-N6AVWMIB.mjs} +4 -4
- package/dist/{chunk-R4PFWVGZ.mjs.map → chunk-N6AVWMIB.mjs.map} +1 -1
- package/dist/{chunk-WD57YWY5.mjs → chunk-N6X76QUF.mjs} +3 -3
- package/dist/{chunk-WD57YWY5.mjs.map → chunk-N6X76QUF.mjs.map} +1 -1
- package/dist/{chunk-7UPPYERC.mjs → chunk-NUH245XK.mjs} +4 -4
- package/dist/{chunk-7UPPYERC.mjs.map → chunk-NUH245XK.mjs.map} +1 -1
- package/dist/chunk-NVSWTDWU.mjs +25 -0
- package/dist/chunk-NVSWTDWU.mjs.map +1 -0
- package/dist/chunk-OL2QBWAU.js +29 -0
- package/dist/chunk-OL2QBWAU.js.map +1 -0
- package/dist/{chunk-UYR22S67.js → chunk-OXZYP32B.js} +7 -7
- package/dist/{chunk-UYR22S67.js.map → chunk-OXZYP32B.js.map} +1 -1
- package/dist/{chunk-QG7WHAGD.js → chunk-QWLL3B6U.js} +15 -15
- package/dist/{chunk-QG7WHAGD.js.map → chunk-QWLL3B6U.js.map} +1 -1
- package/dist/{chunk-26JXNW7B.mjs → chunk-RO55G3OA.mjs} +2 -2
- package/dist/{chunk-26JXNW7B.mjs.map → chunk-RO55G3OA.mjs.map} +1 -1
- package/dist/{chunk-FH4LLJFL.mjs → chunk-SJXGIUHP.mjs} +9 -8
- package/dist/chunk-SJXGIUHP.mjs.map +1 -0
- package/dist/{chunk-4TU246Q4.mjs → chunk-SZHKNGNR.mjs} +2 -2
- package/dist/{chunk-4TU246Q4.mjs.map → chunk-SZHKNGNR.mjs.map} +1 -1
- package/dist/{chunk-GQTSQR63.js → chunk-U53KN4SA.js} +10 -5
- package/dist/chunk-U53KN4SA.js.map +1 -0
- package/dist/{chunk-AJBJH3BA.mjs → chunk-UOLY4NXK.mjs} +127 -189
- package/dist/chunk-UOLY4NXK.mjs.map +1 -0
- package/dist/{chunk-AVPMSJCQ.js → chunk-URVGBWCP.js} +4 -4
- package/dist/{chunk-AVPMSJCQ.js.map → chunk-URVGBWCP.js.map} +1 -1
- package/dist/chunk-UTOHMK52.js +8 -0
- package/dist/{chunk-TMQKZ4DO.js.map → chunk-UTOHMK52.js.map} +1 -1
- package/dist/{chunk-SHZXSIRH.js → chunk-VA36CJRV.js} +4 -4
- package/dist/{chunk-SHZXSIRH.js.map → chunk-VA36CJRV.js.map} +1 -1
- package/dist/{chunk-ZMFJXFUY.js → chunk-VWDT7H6L.js} +96 -644
- package/dist/chunk-VWDT7H6L.js.map +1 -0
- package/dist/{chunk-2VQ5YXOD.js → chunk-WSUQ76LN.js} +18 -18
- package/dist/{chunk-2VQ5YXOD.js.map → chunk-WSUQ76LN.js.map} +1 -1
- package/dist/{chunk-GM5E6R5W.mjs → chunk-XWF7QPIP.mjs} +3 -3
- package/dist/{chunk-GM5E6R5W.mjs.map → chunk-XWF7QPIP.mjs.map} +1 -1
- package/dist/chunk-YQTE32QK.js +137 -0
- package/dist/chunk-YQTE32QK.js.map +1 -0
- package/dist/{chunk-ISKJLXB4.mjs → chunk-ZDFVYSKK.mjs} +4 -4
- package/dist/{chunk-ISKJLXB4.mjs.map → chunk-ZDFVYSKK.mjs.map} +1 -1
- package/dist/{chunk-APL44ZVK.js → chunk-ZLPXFV5Y.js} +5 -5
- package/dist/{chunk-APL44ZVK.js.map → chunk-ZLPXFV5Y.js.map} +1 -1
- package/dist/{chunk-TAIGHH5J.js → chunk-ZY5AVC4P.js} +418 -98
- package/dist/chunk-ZY5AVC4P.js.map +1 -0
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.mjs +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/commerce/index.js +58 -57
- package/dist/commerce/index.mjs +7 -6
- package/dist/engage/index.js +10 -10
- package/dist/engage/index.mjs +7 -7
- package/dist/fleet/index.js +8 -8
- package/dist/fleet/index.mjs +4 -4
- package/dist/forms/index.js +16 -16
- package/dist/forms/index.mjs +9 -9
- package/dist/forms/server.js +10 -10
- package/dist/forms/server.mjs +8 -8
- package/dist/forms/static.js +7 -7
- package/dist/forms/static.mjs +6 -6
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +65 -64
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -10
- package/dist/index.mjs.map +1 -1
- package/dist/layout/SiteKitClientProviders.d.ts.map +1 -1
- package/dist/layout/client.d.ts.map +1 -1
- package/dist/layout/client.js +8 -8
- package/dist/layout/client.mjs +7 -7
- package/dist/layout/index.js +10 -10
- package/dist/layout/index.mjs +8 -8
- package/dist/layout/types.d.ts +16 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/llms/index.js +12 -12
- package/dist/llms/index.mjs +2 -2
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/search/index.js +4 -4
- package/dist/search/index.mjs +3 -3
- package/dist/seo/client.js +6 -5
- package/dist/seo/client.mjs +5 -4
- package/dist/seo/index.js +6 -5
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +5 -4
- package/dist/seo/index.mjs.map +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/shared/frame.d.ts +71 -0
- package/dist/shared/frame.d.ts.map +1 -0
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sitemap/index.js +2 -2
- package/dist/sitemap/index.mjs +1 -1
- package/dist/sync/BookingWidget.d.ts +0 -23
- package/dist/sync/BookingWidget.d.ts.map +1 -1
- package/dist/sync/MeetingFormatStep.d.ts +13 -0
- package/dist/sync/MeetingFormatStep.d.ts.map +1 -0
- package/dist/sync/api.d.ts +9 -10
- package/dist/sync/api.d.ts.map +1 -1
- package/dist/sync/booking-flow.d.ts +7 -0
- package/dist/sync/booking-flow.d.ts.map +1 -0
- package/dist/sync/booking-flow.test.d.ts +2 -0
- package/dist/sync/booking-flow.test.d.ts.map +1 -0
- package/dist/sync/index.d.ts +2 -2
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +20 -16
- package/dist/sync/index.mjs +4 -4
- package/dist/sync/types.d.ts +34 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/AnalyticsProvider-NA7EMJCA.mjs +0 -10
- package/dist/AnalyticsProvider-XE3ADUUH.js +0 -31
- package/dist/ChatWidget-BD4F4XLD.mjs +0 -11
- package/dist/ChatWidget-BZ3KOSXG.js +0 -20
- package/dist/EngageWidget-JPP6EDCJ.js +0 -18
- package/dist/EngageWidget-L7B6PCM3.mjs +0 -9
- package/dist/ManagedForm-2OPCHDNJ.js +0 -23
- package/dist/ManagedForm-AJM6D4SK.mjs +0 -14
- package/dist/SitemapSync-T2N3TCWF.js +0 -17
- package/dist/SitemapSync-YLWMU6J3.mjs +0 -8
- package/dist/chunk-AJBJH3BA.mjs.map +0 -1
- package/dist/chunk-CGCYZJYX.mjs +0 -41
- package/dist/chunk-CGCYZJYX.mjs.map +0 -1
- package/dist/chunk-COAVBUMS.mjs.map +0 -1
- package/dist/chunk-DHXQBTXE.mjs.map +0 -1
- package/dist/chunk-FH4LLJFL.mjs.map +0 -1
- package/dist/chunk-GQTSQR63.js.map +0 -1
- package/dist/chunk-HRQ4367C.mjs +0 -6
- package/dist/chunk-I72AUITZ.mjs.map +0 -1
- package/dist/chunk-JBGRXICL.js.map +0 -1
- package/dist/chunk-KP56C66Z.js.map +0 -1
- package/dist/chunk-TAIGHH5J.js.map +0 -1
- package/dist/chunk-TMQKZ4DO.js +0 -8
- package/dist/chunk-TPL2IHFI.js +0 -43
- package/dist/chunk-TPL2IHFI.js.map +0 -1
- package/dist/chunk-VLR2UYO4.js.map +0 -1
- package/dist/chunk-WZZYTFDV.mjs.map +0 -1
- package/dist/chunk-ZMFJXFUY.js.map +0 -1
|
@@ -2,17 +2,61 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkHMFFAUCD_js = require('./chunk-HMFFAUCD.js');
|
|
5
|
+
var chunkOL2QBWAU_js = require('./chunk-OL2QBWAU.js');
|
|
5
6
|
var chunkRC4WWQXR_js = require('./chunk-RC4WWQXR.js');
|
|
6
|
-
var
|
|
7
|
+
var chunkGQ6CUOLA_js = require('./chunk-GQ6CUOLA.js');
|
|
7
8
|
var react = require('react');
|
|
8
9
|
var navigation = require('next/navigation');
|
|
9
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
// src/analytics/send-gate.ts
|
|
13
|
+
function windowConfig() {
|
|
14
|
+
const apiUrl = typeof window !== "undefined" && window.__SITE_KIT_API_URL__ || "https://api.sonor.io";
|
|
13
15
|
const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
|
|
14
16
|
return { apiUrl, apiKey };
|
|
15
17
|
}
|
|
18
|
+
var announcedSuppression = false;
|
|
19
|
+
function resolveAnalyticsTarget(options = {}) {
|
|
20
|
+
const { apiUrl: globalApiUrl, apiKey: globalApiKey } = windowConfig();
|
|
21
|
+
const apiUrl = options.apiUrl || globalApiUrl;
|
|
22
|
+
const apiKey = options.apiKey || globalApiKey;
|
|
23
|
+
if (!apiKey) return null;
|
|
24
|
+
if (!options.allowInFrame && chunkOL2QBWAU_js.isCrossOriginFrame()) {
|
|
25
|
+
if (options.debug && !announcedSuppression) {
|
|
26
|
+
announcedSuppression = true;
|
|
27
|
+
console.info(
|
|
28
|
+
"[Analytics] This page is embedded in a cross-origin frame, so nothing is being reported. Set analytics.allowInFrame if this site is meant to be tracked as an embed."
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return { apiUrl, apiKey };
|
|
34
|
+
}
|
|
35
|
+
async function analyticsSend(path, body, options = {}) {
|
|
36
|
+
const target = resolveAnalyticsTarget(options);
|
|
37
|
+
if (!target) return null;
|
|
38
|
+
try {
|
|
39
|
+
return await chunkGQ6CUOLA_js.sonorFetch(
|
|
40
|
+
`${target.apiUrl}${path}`,
|
|
41
|
+
{
|
|
42
|
+
method: options.method || "POST",
|
|
43
|
+
headers: { "Content-Type": "application/json" },
|
|
44
|
+
...options.keepalive ? { keepalive: true } : {},
|
|
45
|
+
...body === void 0 ? {} : { body: JSON.stringify(body) }
|
|
46
|
+
},
|
|
47
|
+
{ apiKey: target.apiKey, retries: options.retries ?? 0 }
|
|
48
|
+
);
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function analyticsBeacon(path, body, options = {}) {
|
|
54
|
+
const target = resolveAnalyticsTarget(options);
|
|
55
|
+
if (!target) return;
|
|
56
|
+
chunkGQ6CUOLA_js.sonorBeacon(`${target.apiUrl}${path}`, body, target.apiKey);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/analytics/WebVitals.tsx
|
|
16
60
|
function pathForMetric(metric, fallback) {
|
|
17
61
|
const url = metric.navigationURL;
|
|
18
62
|
if (url) {
|
|
@@ -63,29 +107,28 @@ function summarizeAttribution(metric) {
|
|
|
63
107
|
return void 0;
|
|
64
108
|
}
|
|
65
109
|
}
|
|
66
|
-
function WebVitals({
|
|
110
|
+
function WebVitals({
|
|
111
|
+
apiUrl: propApiUrl,
|
|
112
|
+
apiKey: propApiKey,
|
|
113
|
+
site: propSite,
|
|
114
|
+
allowInFrame = false,
|
|
115
|
+
debug = false
|
|
116
|
+
}) {
|
|
67
117
|
const pathname = navigation.usePathname();
|
|
68
118
|
const landingPathRef = react.useRef(pathname || "/");
|
|
69
|
-
const propsRef = react.useRef({ propApiUrl, propApiKey, propSite, debug });
|
|
70
|
-
propsRef.current = { propApiUrl, propApiKey, propSite, debug };
|
|
119
|
+
const propsRef = react.useRef({ propApiUrl, propApiKey, propSite, allowInFrame, debug });
|
|
120
|
+
propsRef.current = { propApiUrl, propApiKey, propSite, allowInFrame, debug };
|
|
71
121
|
react.useEffect(() => {
|
|
72
122
|
let cancelled = false;
|
|
73
123
|
let teardown;
|
|
74
124
|
import('./web-vitals.attribution-ONVYQNRB.js').then(({ onCLS, onLCP, onTTFB, onINP, onFCP }) => {
|
|
75
125
|
if (cancelled) return;
|
|
76
|
-
const { propApiUrl: propApiUrl2, propApiKey: propApiKey2, propSite: propSite2, debug: debug2 } = propsRef.current;
|
|
126
|
+
const { propApiUrl: propApiUrl2, propApiKey: propApiKey2, propSite: propSite2, allowInFrame: allowInFrame2, debug: debug2 } = propsRef.current;
|
|
77
127
|
const sent = /* @__PURE__ */ new Map();
|
|
78
128
|
const report = (metric, viaBeacon = false) => {
|
|
79
129
|
if (sent.get(metric.id) === metric.value) return;
|
|
80
130
|
sent.set(metric.id, metric.value);
|
|
81
|
-
const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig();
|
|
82
|
-
const apiUrl = propApiUrl2 || globalApiUrl;
|
|
83
|
-
const apiKey = propApiKey2 || globalApiKey;
|
|
84
131
|
const site = propSite2 || (typeof window !== "undefined" ? window.__SITE_KIT_SITE__ || window.location.host : "");
|
|
85
|
-
if (!apiKey) {
|
|
86
|
-
if (debug2) console.warn("[Analytics] No API key configured for Web Vitals");
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
132
|
const data = {
|
|
90
133
|
site,
|
|
91
134
|
pagePath: pathForMetric(metric, landingPathRef.current),
|
|
@@ -99,22 +142,13 @@ function WebVitals({ apiUrl: propApiUrl, apiKey: propApiKey, site: propSite, deb
|
|
|
99
142
|
attribution: summarizeAttribution(metric)
|
|
100
143
|
};
|
|
101
144
|
if (debug2) console.log("[Analytics] Web Vital:", data);
|
|
102
|
-
const endpoint =
|
|
145
|
+
const endpoint = "/api/public/analytics/web-vitals";
|
|
146
|
+
const gate = { apiUrl: propApiUrl2, apiKey: propApiKey2, allowInFrame: allowInFrame2, debug: debug2 };
|
|
103
147
|
if (viaBeacon) {
|
|
104
|
-
|
|
148
|
+
analyticsBeacon(endpoint, data, gate);
|
|
105
149
|
return;
|
|
106
150
|
}
|
|
107
|
-
void
|
|
108
|
-
endpoint,
|
|
109
|
-
{
|
|
110
|
-
method: "POST",
|
|
111
|
-
headers: { "Content-Type": "application/json" },
|
|
112
|
-
body: JSON.stringify(data)
|
|
113
|
-
},
|
|
114
|
-
{ apiKey, retries: 0 }
|
|
115
|
-
).catch((error) => {
|
|
116
|
-
if (debug2) console.error("[Analytics] Error reporting Web Vital:", error);
|
|
117
|
-
});
|
|
151
|
+
void analyticsSend(endpoint, data, gate);
|
|
118
152
|
};
|
|
119
153
|
const opts = { reportSoftNavs: true };
|
|
120
154
|
const pending = [];
|
|
@@ -549,11 +583,6 @@ async function collectPageMetadata(isStale) {
|
|
|
549
583
|
const content = getContentPageMetadata();
|
|
550
584
|
return { ...light, ...media, ...content };
|
|
551
585
|
}
|
|
552
|
-
function getApiConfig2() {
|
|
553
|
-
const apiUrl = typeof window !== "undefined" ? window.__SITE_KIT_API_URL__ || "https://api.sonor.io" : "https://api.sonor.io";
|
|
554
|
-
const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
|
|
555
|
-
return { apiUrl, apiKey };
|
|
556
|
-
}
|
|
557
586
|
function AnalyticsProvider({
|
|
558
587
|
children,
|
|
559
588
|
apiUrl: propApiUrl,
|
|
@@ -571,11 +600,16 @@ function AnalyticsProvider({
|
|
|
571
600
|
externalVisitorId,
|
|
572
601
|
externalSessionId,
|
|
573
602
|
onPageMetadata,
|
|
574
|
-
site: propSite
|
|
603
|
+
site: propSite,
|
|
604
|
+
allowInFrame = false
|
|
575
605
|
}) {
|
|
576
606
|
const pathname = navigation.usePathname();
|
|
577
607
|
const [queryString, setQueryString] = react.useState("");
|
|
578
608
|
const site = propSite || (typeof window !== "undefined" ? window.__SITE_KIT_SITE__ || window.location.host : "");
|
|
609
|
+
const gate = react.useMemo(
|
|
610
|
+
() => ({ apiUrl: propApiUrl, apiKey: propApiKey, allowInFrame, debug }),
|
|
611
|
+
[propApiUrl, propApiKey, allowInFrame, debug]
|
|
612
|
+
);
|
|
579
613
|
react.useEffect(() => {
|
|
580
614
|
if (typeof window === "undefined") return;
|
|
581
615
|
setQueryString(window.location.search);
|
|
@@ -603,19 +637,17 @@ function AnalyticsProvider({
|
|
|
603
637
|
return;
|
|
604
638
|
}
|
|
605
639
|
const fetchValidPages = async () => {
|
|
606
|
-
const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
|
|
607
|
-
const apiUrl = propApiUrl || globalApiUrl;
|
|
608
|
-
const apiKey = propApiKey || globalApiKey;
|
|
609
|
-
if (!apiKey) {
|
|
610
|
-
if (debug) console.warn("[Analytics] No API key for page validation");
|
|
611
|
-
return;
|
|
612
|
-
}
|
|
613
640
|
try {
|
|
614
|
-
const response = await
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
{
|
|
641
|
+
const response = await analyticsSend(
|
|
642
|
+
"/api/public/seo/pages",
|
|
643
|
+
void 0,
|
|
644
|
+
{ ...gate, method: "GET", retries: 2 }
|
|
618
645
|
);
|
|
646
|
+
if (!response) {
|
|
647
|
+
if (debug) console.warn("[Analytics] Page validation skipped (no key, or embedded)");
|
|
648
|
+
sitemapLoadedRef.current = true;
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
619
651
|
if (response.ok) {
|
|
620
652
|
const data = await response.json();
|
|
621
653
|
const pages = data?.pages || [];
|
|
@@ -638,7 +670,7 @@ function AnalyticsProvider({
|
|
|
638
670
|
}
|
|
639
671
|
};
|
|
640
672
|
fetchValidPages();
|
|
641
|
-
}, [
|
|
673
|
+
}, [gate, validateAgainstSitemap, debug]);
|
|
642
674
|
react.useEffect(() => {
|
|
643
675
|
if (!trackPageViews) return;
|
|
644
676
|
if (!pathname) return;
|
|
@@ -647,11 +679,8 @@ function AnalyticsProvider({
|
|
|
647
679
|
if (normalizedPath === lastPathRef.current) return;
|
|
648
680
|
lastPathRef.current = normalizedPath;
|
|
649
681
|
const trackPageView = async () => {
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
const apiKey = propApiKey || globalApiKey;
|
|
653
|
-
if (!apiKey) {
|
|
654
|
-
if (debug) console.warn("[Analytics] No API key configured");
|
|
682
|
+
if (!resolveAnalyticsTarget(gate)) {
|
|
683
|
+
if (debug) console.warn("[Analytics] Page view skipped (no key, or embedded)");
|
|
655
684
|
return;
|
|
656
685
|
}
|
|
657
686
|
const utmParams = getUTMParams();
|
|
@@ -694,25 +723,13 @@ function AnalyticsProvider({
|
|
|
694
723
|
if (debug) {
|
|
695
724
|
console.log("[Analytics] Page view:", pageView);
|
|
696
725
|
}
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
method: "POST",
|
|
702
|
-
headers: { "Content-Type": "application/json" },
|
|
703
|
-
body: JSON.stringify(pageView)
|
|
704
|
-
},
|
|
705
|
-
{ apiKey, retries: 0 }
|
|
706
|
-
);
|
|
707
|
-
if (debug) {
|
|
708
|
-
console.log("[Analytics] Page view response:", response.status, response.statusText, "url:", `${apiUrl}/api/public/analytics/page-view`);
|
|
709
|
-
}
|
|
710
|
-
if (!response.ok && debug) {
|
|
726
|
+
const response = await analyticsSend("/api/public/analytics/page-view", pageView, gate);
|
|
727
|
+
if (debug && response) {
|
|
728
|
+
console.log("[Analytics] Page view response:", response.status, response.statusText);
|
|
729
|
+
if (!response.ok) {
|
|
711
730
|
const text = await response.text().catch(() => "");
|
|
712
731
|
console.error("[Analytics] Error tracking page view:", response.status, response.statusText, text);
|
|
713
732
|
}
|
|
714
|
-
} catch (error) {
|
|
715
|
-
if (debug) console.error("[Analytics] Error tracking page view (fetch failed):", error);
|
|
716
733
|
}
|
|
717
734
|
if (validateAgainstSitemap && debug) {
|
|
718
735
|
if (sitemapLoadedRef.current && validPathsRef.current && validPathsRef.current.size > 0) {
|
|
@@ -725,15 +742,12 @@ function AnalyticsProvider({
|
|
|
725
742
|
}
|
|
726
743
|
};
|
|
727
744
|
scheduleIdleTask(() => trackPageView());
|
|
728
|
-
}, [pathname, queryString,
|
|
745
|
+
}, [pathname, queryString, gate, trackPageViews, excludePaths, debug, validateAgainstSitemap]);
|
|
729
746
|
react.useEffect(() => {
|
|
730
747
|
if (!trackJourneys) return;
|
|
731
748
|
if (!pathname) return;
|
|
732
749
|
if (typeof window === "undefined") return;
|
|
733
|
-
|
|
734
|
-
const apiUrl = propApiUrl || globalApiUrl;
|
|
735
|
-
const apiKey = propApiKey || globalApiKey;
|
|
736
|
-
if (!apiKey) return;
|
|
750
|
+
if (!resolveAnalyticsTarget(gate)) return;
|
|
737
751
|
const now = Date.now();
|
|
738
752
|
const previousPath = lastPathRef.current;
|
|
739
753
|
const previousDuration = pageEnterTimeRef.current > 0 ? Math.round((now - pageEnterTimeRef.current) / 1e3) : 0;
|
|
@@ -784,48 +798,36 @@ function AnalyticsProvider({
|
|
|
784
798
|
if (debug) {
|
|
785
799
|
console.log("[Analytics] Journey step:", sessionData);
|
|
786
800
|
}
|
|
787
|
-
|
|
788
|
-
await chunkUJOEN4X6_js.sonorFetch(
|
|
789
|
-
`${apiUrl}/api/public/analytics/session`,
|
|
790
|
-
{
|
|
791
|
-
method: "POST",
|
|
792
|
-
headers: { "Content-Type": "application/json" },
|
|
793
|
-
body: JSON.stringify(sessionData)
|
|
794
|
-
},
|
|
795
|
-
{ apiKey, retries: 0 }
|
|
796
|
-
);
|
|
797
|
-
} catch (error) {
|
|
798
|
-
if (debug) console.error("[Analytics] Error tracking journey:", error);
|
|
799
|
-
}
|
|
801
|
+
await analyticsSend("/api/public/analytics/session", sessionData, gate);
|
|
800
802
|
};
|
|
801
803
|
scheduleIdleTask(() => trackJourneyStep());
|
|
802
804
|
const handleUnload = () => {
|
|
803
805
|
const duration = Math.round((Date.now() - journeyStartTimeRef.current) / 1e3);
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
806
|
+
analyticsBeacon(
|
|
807
|
+
"/api/public/analytics/session",
|
|
808
|
+
{
|
|
809
|
+
sessionId: sessionIdRef.current,
|
|
810
|
+
site,
|
|
811
|
+
action: "end",
|
|
812
|
+
duration,
|
|
813
|
+
lastPage: pathname,
|
|
814
|
+
previousPageDuration: Math.round((Date.now() - pageEnterTimeRef.current) / 1e3),
|
|
815
|
+
previousPageScrollDepth: currentScrollDepthRef.current
|
|
816
|
+
},
|
|
817
|
+
gate
|
|
818
|
+
);
|
|
814
819
|
};
|
|
815
820
|
window.addEventListener("pagehide", handleUnload);
|
|
816
821
|
return () => {
|
|
817
822
|
window.removeEventListener("pagehide", handleUnload);
|
|
818
823
|
};
|
|
819
|
-
}, [pathname,
|
|
824
|
+
}, [pathname, gate, trackJourneys, debug]);
|
|
820
825
|
react.useEffect(() => {
|
|
821
826
|
if (typeof window === "undefined") return;
|
|
822
827
|
if (debug) console.log("[Analytics] Scroll tracking setup:", { trackScrollDepth, hasApiKey: !!propApiKey });
|
|
823
828
|
if (!trackScrollDepth) return;
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
const apiKey = propApiKey || globalApiKey;
|
|
827
|
-
if (!apiKey) {
|
|
828
|
-
if (debug) console.warn("[Analytics] Scroll tracking disabled - no API key");
|
|
829
|
+
if (!resolveAnalyticsTarget(gate)) {
|
|
830
|
+
if (debug) console.warn("[Analytics] Scroll tracking disabled (no key, or embedded)");
|
|
829
831
|
return;
|
|
830
832
|
}
|
|
831
833
|
if (debug) console.log("[Analytics] Scroll tracking enabled for:", pathname);
|
|
@@ -861,7 +863,7 @@ function AnalyticsProvider({
|
|
|
861
863
|
if (hasTracked || maxDepth === 0) return;
|
|
862
864
|
hasTracked = true;
|
|
863
865
|
const totalTime = (Date.now() - startTime) / 1e3;
|
|
864
|
-
const payload =
|
|
866
|
+
const payload = {
|
|
865
867
|
sessionId: sessionIdRef.current,
|
|
866
868
|
visitorId: visitorIdRef.current,
|
|
867
869
|
site,
|
|
@@ -873,28 +875,16 @@ function AnalyticsProvider({
|
|
|
873
875
|
timeTo100: milestone100,
|
|
874
876
|
totalTimeSeconds: totalTime,
|
|
875
877
|
deviceType: getDeviceType()
|
|
876
|
-
}
|
|
878
|
+
};
|
|
877
879
|
if (useBeacon) {
|
|
878
|
-
|
|
879
|
-
if (debug) console.log("[Analytics] Scroll depth (beacon):", { maxDepth, totalTime });
|
|
880
|
+
analyticsBeacon("/api/public/analytics/scroll-depth", payload, gate);
|
|
880
881
|
} else {
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
method: "POST",
|
|
886
|
-
headers: { "Content-Type": "application/json" },
|
|
887
|
-
body: payload,
|
|
888
|
-
keepalive: true
|
|
889
|
-
// Allows request to outlive the page
|
|
890
|
-
},
|
|
891
|
-
{ apiKey, retries: 0 }
|
|
892
|
-
);
|
|
893
|
-
if (debug) console.log("[Analytics] Scroll depth:", { maxDepth, totalTime });
|
|
894
|
-
} catch (error) {
|
|
895
|
-
if (debug) console.error("[Analytics] Error tracking scroll depth:", error);
|
|
896
|
-
}
|
|
882
|
+
await analyticsSend("/api/public/analytics/scroll-depth", payload, {
|
|
883
|
+
...gate,
|
|
884
|
+
keepalive: true
|
|
885
|
+
});
|
|
897
886
|
}
|
|
887
|
+
if (debug) console.log("[Analytics] Scroll depth:", { maxDepth, totalTime, useBeacon });
|
|
898
888
|
};
|
|
899
889
|
maxDepth = 0;
|
|
900
890
|
startTime = Date.now();
|
|
@@ -917,14 +907,11 @@ function AnalyticsProvider({
|
|
|
917
907
|
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
918
908
|
sendScrollData(false);
|
|
919
909
|
};
|
|
920
|
-
}, [pathname,
|
|
910
|
+
}, [pathname, gate, trackScrollDepth, debug]);
|
|
921
911
|
react.useEffect(() => {
|
|
922
912
|
if (!trackClicks) return;
|
|
923
913
|
if (typeof window === "undefined") return;
|
|
924
|
-
|
|
925
|
-
const apiUrl = propApiUrl || globalApiUrl;
|
|
926
|
-
const apiKey = propApiKey || globalApiKey;
|
|
927
|
-
if (!apiKey) return;
|
|
914
|
+
if (!resolveAnalyticsTarget(gate)) return;
|
|
928
915
|
const handleClick = async (e) => {
|
|
929
916
|
const target = e.target;
|
|
930
917
|
if (!target) return;
|
|
@@ -955,36 +942,17 @@ function AnalyticsProvider({
|
|
|
955
942
|
elementText
|
|
956
943
|
};
|
|
957
944
|
if (debug) console.log("[Analytics] Click:", clickData);
|
|
958
|
-
scheduleIdleTask(
|
|
959
|
-
|
|
960
|
-
await chunkUJOEN4X6_js.sonorFetch(
|
|
961
|
-
`${apiUrl}/api/public/analytics/heatmap-click`,
|
|
962
|
-
{
|
|
963
|
-
method: "POST",
|
|
964
|
-
headers: { "Content-Type": "application/json" },
|
|
965
|
-
body: JSON.stringify(clickData)
|
|
966
|
-
},
|
|
967
|
-
{ apiKey, retries: 0 }
|
|
968
|
-
);
|
|
969
|
-
} catch (error) {
|
|
970
|
-
if (debug) console.error("[Analytics] Error tracking click:", error);
|
|
971
|
-
}
|
|
945
|
+
scheduleIdleTask(() => {
|
|
946
|
+
void analyticsSend("/api/public/analytics/heatmap-click", clickData, gate);
|
|
972
947
|
}, 500);
|
|
973
948
|
};
|
|
974
949
|
document.addEventListener("click", handleClick, { passive: true });
|
|
975
950
|
return () => {
|
|
976
951
|
document.removeEventListener("click", handleClick);
|
|
977
952
|
};
|
|
978
|
-
}, [pathname,
|
|
953
|
+
}, [pathname, gate, trackClicks, debug]);
|
|
979
954
|
const trackEvent = react.useCallback((options) => {
|
|
980
955
|
const doTrack = async () => {
|
|
981
|
-
const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
|
|
982
|
-
const apiUrl = propApiUrl || globalApiUrl;
|
|
983
|
-
const apiKey = propApiKey || globalApiKey;
|
|
984
|
-
if (!apiKey) {
|
|
985
|
-
if (debug) console.warn("[Analytics] No API key configured");
|
|
986
|
-
return;
|
|
987
|
-
}
|
|
988
956
|
const event = {
|
|
989
957
|
sessionId: sessionIdRef.current,
|
|
990
958
|
visitorId: visitorIdRef.current,
|
|
@@ -999,34 +967,15 @@ function AnalyticsProvider({
|
|
|
999
967
|
if (debug) {
|
|
1000
968
|
console.log("[Analytics] Event:", event);
|
|
1001
969
|
}
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
{
|
|
1006
|
-
method: "POST",
|
|
1007
|
-
headers: { "Content-Type": "application/json" },
|
|
1008
|
-
body: JSON.stringify(event)
|
|
1009
|
-
},
|
|
1010
|
-
{ apiKey, retries: 0 }
|
|
1011
|
-
);
|
|
1012
|
-
if (!response.ok && debug) {
|
|
1013
|
-
console.error("[Analytics] Error tracking event:", response.statusText);
|
|
1014
|
-
}
|
|
1015
|
-
} catch (error) {
|
|
1016
|
-
if (debug) console.error("[Analytics] Error tracking event:", error);
|
|
970
|
+
const response = await analyticsSend("/api/public/analytics/event", event, gate);
|
|
971
|
+
if (response && !response.ok && debug) {
|
|
972
|
+
console.error("[Analytics] Error tracking event:", response.statusText);
|
|
1017
973
|
}
|
|
1018
974
|
};
|
|
1019
975
|
scheduleIdleTask(doTrack, 1e3);
|
|
1020
|
-
}, [
|
|
976
|
+
}, [gate, site, pathname, debug]);
|
|
1021
977
|
const trackConversion = react.useCallback((options) => {
|
|
1022
978
|
const doTrack = async () => {
|
|
1023
|
-
const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
|
|
1024
|
-
const apiUrl = propApiUrl || globalApiUrl;
|
|
1025
|
-
const apiKey = propApiKey || globalApiKey;
|
|
1026
|
-
if (!apiKey) {
|
|
1027
|
-
if (debug) console.warn("[Analytics] No API key configured");
|
|
1028
|
-
return;
|
|
1029
|
-
}
|
|
1030
979
|
const conversion = {
|
|
1031
980
|
sessionId: sessionIdRef.current,
|
|
1032
981
|
visitorId: visitorIdRef.current,
|
|
@@ -1042,25 +991,13 @@ function AnalyticsProvider({
|
|
|
1042
991
|
if (debug) {
|
|
1043
992
|
console.log("[Analytics] Conversion:", conversion);
|
|
1044
993
|
}
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
{
|
|
1049
|
-
method: "POST",
|
|
1050
|
-
headers: { "Content-Type": "application/json" },
|
|
1051
|
-
body: JSON.stringify(conversion)
|
|
1052
|
-
},
|
|
1053
|
-
{ apiKey, retries: 0 }
|
|
1054
|
-
);
|
|
1055
|
-
if (!response.ok && debug) {
|
|
1056
|
-
console.error("[Analytics] Error tracking conversion:", response.statusText);
|
|
1057
|
-
}
|
|
1058
|
-
} catch (error) {
|
|
1059
|
-
if (debug) console.error("[Analytics] Error tracking conversion:", error);
|
|
994
|
+
const response = await analyticsSend("/api/public/analytics/conversion", conversion, gate);
|
|
995
|
+
if (response && !response.ok && debug) {
|
|
996
|
+
console.error("[Analytics] Error tracking conversion:", response.statusText);
|
|
1060
997
|
}
|
|
1061
998
|
};
|
|
1062
999
|
doTrack();
|
|
1063
|
-
}, [
|
|
1000
|
+
}, [gate, site, pathname, debug]);
|
|
1064
1001
|
react.useEffect(() => {
|
|
1065
1002
|
chunkHMFFAUCD_js.registerAnalyticsDispatcher({ trackEvent, trackConversion });
|
|
1066
1003
|
return () => chunkHMFFAUCD_js.registerAnalyticsDispatcher(null);
|
|
@@ -1078,6 +1015,7 @@ function AnalyticsProvider({
|
|
|
1078
1015
|
apiUrl: propApiUrl,
|
|
1079
1016
|
apiKey: propApiKey,
|
|
1080
1017
|
site,
|
|
1018
|
+
allowInFrame,
|
|
1081
1019
|
debug
|
|
1082
1020
|
}
|
|
1083
1021
|
),
|
|
@@ -1104,5 +1042,5 @@ exports.WebVitals = WebVitals;
|
|
|
1104
1042
|
exports.useAnalytics = useAnalytics;
|
|
1105
1043
|
exports.useAnalyticsOptional = useAnalyticsOptional;
|
|
1106
1044
|
exports.useTrackEvent = useTrackEvent;
|
|
1107
|
-
//# sourceMappingURL=chunk-
|
|
1108
|
-
//# sourceMappingURL=chunk-
|
|
1045
|
+
//# sourceMappingURL=chunk-2KIGFOPM.js.map
|
|
1046
|
+
//# sourceMappingURL=chunk-2KIGFOPM.js.map
|