@sonordev/site-kit 6.3.3 → 6.3.4
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/agent-manifest.json +1 -1
- package/dist/{AnalyticsProvider-IZXUFR7B.js → AnalyticsProvider-4F7VWRAJ.js} +10 -10
- package/dist/{AnalyticsProvider-IZXUFR7B.js.map → AnalyticsProvider-4F7VWRAJ.js.map} +1 -1
- package/dist/{AnalyticsProvider-K5DRCKEB.mjs → AnalyticsProvider-DQQLEE3B.mjs} +6 -6
- package/dist/{AnalyticsProvider-K5DRCKEB.mjs.map → AnalyticsProvider-DQQLEE3B.mjs.map} +1 -1
- package/dist/{ArticleViewTracker-TLQT5MJP.mjs → ArticleViewTracker-3QRIQZOL.mjs} +5 -5
- package/dist/{ArticleViewTracker-TLQT5MJP.mjs.map → ArticleViewTracker-3QRIQZOL.mjs.map} +1 -1
- package/dist/{ArticleViewTracker-OYYQABG3.js → ArticleViewTracker-B4J2IKWS.js} +6 -6
- package/dist/{ArticleViewTracker-OYYQABG3.js.map → ArticleViewTracker-B4J2IKWS.js.map} +1 -1
- package/dist/{ChatWidget-4GAGGANM.js → ChatWidget-NGZLBGGZ.js} +10 -10
- package/dist/{ChatWidget-4GAGGANM.js.map → ChatWidget-NGZLBGGZ.js.map} +1 -1
- package/dist/{ChatWidget-JTI25HIA.mjs → ChatWidget-S2IEUKSM.mjs} +7 -7
- package/dist/{ChatWidget-JTI25HIA.mjs.map → ChatWidget-S2IEUKSM.mjs.map} +1 -1
- package/dist/EngageWidget-DKXCD6VU.js +21 -0
- package/dist/{EngageWidget-LNTIXBFA.js.map → EngageWidget-DKXCD6VU.js.map} +1 -1
- package/dist/EngageWidget-XAG3OUTN.mjs +12 -0
- package/dist/{EngageWidget-YM2JPXXJ.mjs.map → EngageWidget-XAG3OUTN.mjs.map} +1 -1
- package/dist/{FileField-U327LS7Q.js → FileField-QSQS6WRY.js} +6 -6
- package/dist/{FileField-U327LS7Q.js.map → FileField-QSQS6WRY.js.map} +1 -1
- package/dist/{FileField-KIQMFWW6.mjs → FileField-QYAHRTRI.mjs} +5 -5
- package/dist/{FileField-KIQMFWW6.mjs.map → FileField-QYAHRTRI.mjs.map} +1 -1
- package/dist/{FormSpotlight-BKMGDP3Z.mjs → FormSpotlight-OK2F4YEI.mjs} +3 -3
- package/dist/{FormSpotlight-BKMGDP3Z.mjs.map → FormSpotlight-OK2F4YEI.mjs.map} +1 -1
- package/dist/{FormSpotlight-SAYR5PQW.js → FormSpotlight-TNG5KXWM.js} +9 -9
- package/dist/{FormSpotlight-SAYR5PQW.js.map → FormSpotlight-TNG5KXWM.js.map} +1 -1
- package/dist/{FormStage-GBH4PXW7.js → FormStage-7QKWC76Z.js} +9 -9
- package/dist/{FormStage-GBH4PXW7.js.map → FormStage-7QKWC76Z.js.map} +1 -1
- package/dist/{FormStage-35VWCKJ4.mjs → FormStage-EKTMBUHT.mjs} +3 -3
- package/dist/{FormStage-35VWCKJ4.mjs.map → FormStage-EKTMBUHT.mjs.map} +1 -1
- package/dist/ManagedForm-2LGVJVNO.mjs +16 -0
- package/dist/{ManagedForm-GOZNJ66K.mjs.map → ManagedForm-2LGVJVNO.mjs.map} +1 -1
- package/dist/ManagedForm-LQK3KJUH.js +25 -0
- package/dist/{ManagedForm-MKSPZAI3.js.map → ManagedForm-LQK3KJUH.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-3FJU7HUS.mjs → ManagedNewsletterForm-7EUEAMU5.mjs} +6 -6
- package/dist/{ManagedNewsletterForm-3FJU7HUS.mjs.map → ManagedNewsletterForm-7EUEAMU5.mjs.map} +1 -1
- package/dist/{ManagedNewsletterForm-BMXJ2BXD.js → ManagedNewsletterForm-DNSCX7Y5.js} +7 -7
- package/dist/{ManagedNewsletterForm-BMXJ2BXD.js.map → ManagedNewsletterForm-DNSCX7Y5.js.map} +1 -1
- package/dist/{SignalCore-N2JUB4D4.mjs → SignalCore-OPQXRYKI.mjs} +5 -5
- package/dist/{SignalCore-N2JUB4D4.mjs.map → SignalCore-OPQXRYKI.mjs.map} +1 -1
- package/dist/{SignalCore-DEGICRY2.js → SignalCore-SVJYWIM6.js} +11 -11
- package/dist/{SignalCore-DEGICRY2.js.map → SignalCore-SVJYWIM6.js.map} +1 -1
- package/dist/SitemapSync-JQFUZMGW.js +18 -0
- package/dist/{SitemapSync-HRQ7KLP5.js.map → SitemapSync-JQFUZMGW.js.map} +1 -1
- package/dist/SitemapSync-ZJY5DKLU.mjs +9 -0
- package/dist/{SitemapSync-JIORN4Z5.mjs.map → SitemapSync-ZJY5DKLU.mjs.map} +1 -1
- package/dist/analytics/index.js +9 -9
- package/dist/analytics/index.mjs +4 -4
- package/dist/articles/index.js +1 -1
- package/dist/articles/index.mjs +1 -1
- package/dist/articles/server-ui.js +1 -1
- package/dist/articles/server-ui.mjs +1 -1
- package/dist/{chunk-YTVVICWW.js → chunk-4SFSLUBA.js} +5 -5
- package/dist/{chunk-YTVVICWW.js.map → chunk-4SFSLUBA.js.map} +1 -1
- package/dist/{chunk-EE7J66MJ.mjs → chunk-562DSBYR.mjs} +3 -3
- package/dist/{chunk-EE7J66MJ.mjs.map → chunk-562DSBYR.mjs.map} +1 -1
- package/dist/{chunk-KMJM55P6.js → chunk-5XEEDDZ4.js} +4 -4
- package/dist/{chunk-KMJM55P6.js.map → chunk-5XEEDDZ4.js.map} +1 -1
- package/dist/{chunk-X5FQXU5J.mjs → chunk-64HKUCAF.mjs} +3 -3
- package/dist/{chunk-X5FQXU5J.mjs.map → chunk-64HKUCAF.mjs.map} +1 -1
- package/dist/{chunk-NRBITVDK.js → chunk-6FNFM7JL.js} +3 -4
- package/dist/chunk-6FNFM7JL.js.map +1 -0
- package/dist/{chunk-GFWSYLGO.mjs → chunk-6GRM7YZG.mjs} +4 -4
- package/dist/{chunk-GFWSYLGO.mjs.map → chunk-6GRM7YZG.mjs.map} +1 -1
- package/dist/{chunk-4F4CHBVS.js → chunk-7LHG6GR3.js} +10 -10
- package/dist/{chunk-4F4CHBVS.js.map → chunk-7LHG6GR3.js.map} +1 -1
- package/dist/{chunk-7EW22AND.js → chunk-7YELMDJ3.js} +14 -14
- package/dist/{chunk-7EW22AND.js.map → chunk-7YELMDJ3.js.map} +1 -1
- package/dist/{chunk-CB3WK2OW.js → chunk-CIBH3PMQ.js} +5 -5
- package/dist/{chunk-CB3WK2OW.js.map → chunk-CIBH3PMQ.js.map} +1 -1
- package/dist/{chunk-DHCU3RTK.js → chunk-CLQSKHE6.js} +14 -14
- package/dist/{chunk-DHCU3RTK.js.map → chunk-CLQSKHE6.js.map} +1 -1
- package/dist/{chunk-LPUP2TSV.js → chunk-CZMZEUB6.js} +15 -15
- package/dist/{chunk-LPUP2TSV.js.map → chunk-CZMZEUB6.js.map} +1 -1
- package/dist/{chunk-PHTL4CPD.mjs → chunk-D37H4JI6.mjs} +3 -3
- package/dist/{chunk-PHTL4CPD.mjs.map → chunk-D37H4JI6.mjs.map} +1 -1
- package/dist/{chunk-M26C37WI.mjs → chunk-DVAAKEMG.mjs} +3 -3
- package/dist/{chunk-M26C37WI.mjs.map → chunk-DVAAKEMG.mjs.map} +1 -1
- package/dist/{chunk-6OA4VMSL.mjs → chunk-DXSSC3KO.mjs} +3 -3
- package/dist/{chunk-6OA4VMSL.mjs.map → chunk-DXSSC3KO.mjs.map} +1 -1
- package/dist/{chunk-4T3CV7DK.js → chunk-E7KNZVH7.js} +8 -8
- package/dist/{chunk-4T3CV7DK.js.map → chunk-E7KNZVH7.js.map} +1 -1
- package/dist/{chunk-LRSLYZXP.mjs → chunk-EEPOZWUL.mjs} +4 -4
- package/dist/{chunk-LRSLYZXP.mjs.map → chunk-EEPOZWUL.mjs.map} +1 -1
- package/dist/{chunk-A6PXU6IU.js → chunk-ESFDSHMC.js} +11 -11
- package/dist/{chunk-A6PXU6IU.js.map → chunk-ESFDSHMC.js.map} +1 -1
- package/dist/chunk-EYKLUW63.js +8 -0
- package/dist/{chunk-6PQJH6YR.js.map → chunk-EYKLUW63.js.map} +1 -1
- package/dist/{chunk-SBCG2ZLK.js → chunk-FDSMD2KO.js} +3 -3
- package/dist/{chunk-SBCG2ZLK.js.map → chunk-FDSMD2KO.js.map} +1 -1
- package/dist/{chunk-DFVWOIJE.js → chunk-FGA5FT7Y.js} +6 -6
- package/dist/{chunk-DFVWOIJE.js.map → chunk-FGA5FT7Y.js.map} +1 -1
- package/dist/{chunk-GWQTFMM2.js → chunk-H3365D42.js} +5 -5
- package/dist/{chunk-GWQTFMM2.js.map → chunk-H3365D42.js.map} +1 -1
- package/dist/{chunk-HCN3IKMW.mjs → chunk-HPGPOUHU.mjs} +3 -4
- package/dist/chunk-HPGPOUHU.mjs.map +1 -0
- package/dist/{chunk-RWUFJGZX.js → chunk-IBSHXE73.js} +11 -11
- package/dist/{chunk-RWUFJGZX.js.map → chunk-IBSHXE73.js.map} +1 -1
- package/dist/{chunk-F5RO6HVF.js → chunk-IFFDCOLU.js} +4 -4
- package/dist/{chunk-F5RO6HVF.js.map → chunk-IFFDCOLU.js.map} +1 -1
- package/dist/{chunk-HMTFTO5G.mjs → chunk-JONESD5P.mjs} +5 -5
- package/dist/{chunk-HMTFTO5G.mjs.map → chunk-JONESD5P.mjs.map} +1 -1
- package/dist/{chunk-YA2XM3KX.mjs → chunk-JSLFGJG4.mjs} +4 -4
- package/dist/{chunk-YA2XM3KX.mjs.map → chunk-JSLFGJG4.mjs.map} +1 -1
- package/dist/{chunk-EE7D6BSA.mjs → chunk-KTFZNSRY.mjs} +3 -3
- package/dist/{chunk-EE7D6BSA.mjs.map → chunk-KTFZNSRY.mjs.map} +1 -1
- package/dist/{chunk-YVP4JJFL.mjs → chunk-M6PJTITK.mjs} +4 -4
- package/dist/{chunk-YVP4JJFL.mjs.map → chunk-M6PJTITK.mjs.map} +1 -1
- package/dist/{chunk-ZNYYWNCH.js → chunk-MMQLQHZX.js} +3 -3
- package/dist/{chunk-ZNYYWNCH.js.map → chunk-MMQLQHZX.js.map} +1 -1
- package/dist/{chunk-NNQJUMFQ.js → chunk-N2LYSNZT.js} +9 -9
- package/dist/{chunk-NNQJUMFQ.js.map → chunk-N2LYSNZT.js.map} +1 -1
- package/dist/{chunk-2TSDPEMA.js → chunk-NMB47GMV.js} +7 -7
- package/dist/{chunk-2TSDPEMA.js.map → chunk-NMB47GMV.js.map} +1 -1
- package/dist/{chunk-S3RPDQA7.js → chunk-NQYO54EB.js} +3 -3
- package/dist/{chunk-S3RPDQA7.js.map → chunk-NQYO54EB.js.map} +1 -1
- package/dist/{chunk-LBGOC22N.mjs → chunk-NUHIODBD.mjs} +3 -3
- package/dist/{chunk-LBGOC22N.mjs.map → chunk-NUHIODBD.mjs.map} +1 -1
- package/dist/{chunk-UTSKVISR.js → chunk-PPY73K4P.js} +15 -15
- package/dist/{chunk-UTSKVISR.js.map → chunk-PPY73K4P.js.map} +1 -1
- package/dist/{chunk-NP6BRB6Z.mjs → chunk-V57WFNHY.mjs} +3 -3
- package/dist/{chunk-NP6BRB6Z.mjs.map → chunk-V57WFNHY.mjs.map} +1 -1
- package/dist/{chunk-T4ZA4RCC.mjs → chunk-VXVLZAR5.mjs} +3 -3
- package/dist/{chunk-T4ZA4RCC.mjs.map → chunk-VXVLZAR5.mjs.map} +1 -1
- package/dist/{chunk-A2ENMRTN.mjs → chunk-W2UA4UUZ.mjs} +3 -3
- package/dist/{chunk-A2ENMRTN.mjs.map → chunk-W2UA4UUZ.mjs.map} +1 -1
- package/dist/{chunk-377Z7GOV.mjs → chunk-WS3J5T3K.mjs} +4 -4
- package/dist/{chunk-377Z7GOV.mjs.map → chunk-WS3J5T3K.mjs.map} +1 -1
- package/dist/chunk-WT5WNIR2.mjs +6 -0
- package/dist/{chunk-GBMVAKX3.mjs.map → chunk-WT5WNIR2.mjs.map} +1 -1
- package/dist/{chunk-PBBARB5B.mjs → chunk-YPDOYPWJ.mjs} +3 -3
- package/dist/{chunk-PBBARB5B.mjs.map → chunk-YPDOYPWJ.mjs.map} +1 -1
- package/dist/{chunk-7SHTA3NT.mjs → chunk-Z3Q5UTZU.mjs} +8 -8
- package/dist/{chunk-7SHTA3NT.mjs.map → chunk-Z3Q5UTZU.mjs.map} +1 -1
- package/dist/{chunk-XUVD6I2E.mjs → chunk-ZIZBE6Y6.mjs} +3 -3
- package/dist/{chunk-XUVD6I2E.mjs.map → chunk-ZIZBE6Y6.mjs.map} +1 -1
- 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 +57 -57
- package/dist/commerce/index.mjs +5 -5
- package/dist/engage/index.js +9 -9
- package/dist/engage/index.mjs +6 -6
- package/dist/fleet/index.js +8 -8
- package/dist/fleet/index.mjs +4 -4
- package/dist/forms/index.js +13 -13
- package/dist/forms/index.mjs +7 -7
- package/dist/forms/server.js +2 -2
- package/dist/forms/server.mjs +1 -1
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +63 -63
- package/dist/index.mjs +9 -9
- 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/llms/aiRobots.d.ts +22 -14
- package/dist/llms/aiRobots.d.ts.map +1 -1
- package/dist/llms/index.js +6 -6
- package/dist/llms/index.mjs +1 -1
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/robots/index.js +8 -8
- package/dist/robots/index.mjs +2 -2
- package/dist/search/index.js +4 -4
- package/dist/search/index.mjs +3 -3
- package/dist/seo/client.js +5 -5
- package/dist/seo/client.mjs +4 -4
- package/dist/seo/index.js +5 -5
- package/dist/seo/index.mjs +4 -4
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sync/index.js +17 -17
- package/dist/sync/index.mjs +4 -4
- package/package.json +1 -1
- package/dist/EngageWidget-LNTIXBFA.js +0 -21
- package/dist/EngageWidget-YM2JPXXJ.mjs +0 -12
- package/dist/ManagedForm-GOZNJ66K.mjs +0 -16
- package/dist/ManagedForm-MKSPZAI3.js +0 -25
- package/dist/SitemapSync-HRQ7KLP5.js +0 -18
- package/dist/SitemapSync-JIORN4Z5.mjs +0 -9
- package/dist/chunk-6PQJH6YR.js +0 -8
- package/dist/chunk-GBMVAKX3.mjs +0 -6
- package/dist/chunk-HCN3IKMW.mjs.map +0 -1
- package/dist/chunk-NRBITVDK.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/signal/store.ts","../src/signal/SignalBridge.tsx"],"names":["useSyncExternalStore","dynamic","useState","useRef","useCallback","useMemo","useEffect","jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;AAyBA,IAAM,gBAAwC,EAAC;AAC/C,IAAM,kBAAmC,EAAC;AAC1C,IAAM,WAAA,GAAc,GAAA;AACpB,IAAI,cAAA,GAAiB,KAAA;AAGrB,IAAM,IAAA,GAA2B,OAAO,MAAA,CAAO;AAAA,EAC7C,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,UAAA,EAAY,CAAC,KAAA,KAAgC;AAC3C,IAAA,IAAI,aAAA,CAAc,MAAA,GAAS,WAAA,EAAa,aAAA,CAAc,KAAK,KAAK,CAAA;AAAA,SAAA,IACvD,CAAC,cAAA,EAAgB;AACxB,MAAA,cAAA,GAAiB,IAAA;AACjB,MAAA,OAAA,CAAQ,KAAK,iHAA4G,CAAA;AAAA,IAC3H;AAAA,EACF,CAAA;AAAA,EACA,YAAA,EAAc,CAAC,OAAA,KAA2B;AACxC,IAAA,IAAI,eAAA,CAAgB,MAAA,GAAS,WAAA,EAAa,eAAA,CAAgB,KAAK,OAAO,CAAA;AAAA,EACxE,CAAA;AAAA,EACA,eAAe,MAAM,IAAA;AAAA,EACrB,eAAe,YAAY;AAAA,EAAC;AAC9B,CAAC,CAAA;AAED,IAAI,OAAA,GAA8B,IAAA;AAClC,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AAEtC,SAAS,IAAA,GAAO;AACd,EAAA,KAAA,MAAW,CAAA,IAAK,WAAW,CAAA,EAAE;AAC/B;AAGO,SAAS,cAAc,KAAA,EAAiC;AAC7D,EAAA,MAAM,eAAe,OAAA,KAAY,IAAA;AACjC,EAAA,OAAA,GAAU,KAAA;AACV,EAAA,IAAI,YAAA,EAAc;AAGhB,IAAA,aAAA,CAAc,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,OAAK,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAA;AACxD,IAAA,eAAA,CAAgB,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,OAAK,KAAA,CAAM,YAAA,CAAa,CAAC,CAAC,CAAA;AAAA,EAC9D;AACA,EAAA,IAAA,EAAK;AACP;AAGO,SAAS,WAAA,GAAoB;AAClC,EAAA,OAAA,GAAU,IAAA;AACV,EAAA,IAAA,EAAK;AACP;AAEA,SAAS,UAAU,QAAA,EAAsB;AACvC,EAAA,SAAA,CAAU,IAAI,QAAQ,CAAA;AACtB,EAAA,OAAO,MAAM,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AACxC;AAEA,IAAM,cAAc,MAAM,OAAA;AAC1B,IAAM,oBAAoB,MAAM,IAAA;AAMzB,SAAS,SAAA,GAAgC;AAC9C,EAAA,OAAOA,0BAAA,CAAqB,SAAA,EAAW,WAAA,EAAa,iBAAiB,CAAA;AACvE;ACnDA,IAAM,cAAA,GAAiBC,wBAAA;AAAA,EACrB,MAAM,OAAO,0BAAc,CAAA,CAAE,IAAA,CAAK,QAAM,EAAE,OAAA,EAAS,CAAA,CAAE,UAAA,EAAW,CAAE,CAAA;AAAA,EAClE,EAAE,KAAK,KAAA;AACT,CAAA;AAcO,SAAS,YAAA,CAAa;AAAA,EAC3B,OAAA,GAAU,IAAA;AAAA,EACV,QAAA,GAAW,IAAA;AAAA,EACX,WAAA,GAAc,IAAA;AAAA,EACd,gBAAA,GAAmB,IAAA;AAAA,EACnB,SAAA,EAAW,iBAAA;AAAA,EACX,SAAA,EAAW,iBAAA;AAAA,EACX,eAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAA8B,IAAI,CAAA;AAC9D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAuB,IAAI,CAAA;AAErD,EAAA,MAAM,OAAA,GAAUC,aAA6B,IAAI,CAAA;AAGjD,EAAA,MAAM,gBAAA,GAAmBA,YAAA,CAA+B,EAAE,CAAA;AAC1D,EAAA,MAAM,kBAAA,GAAqBA,YAAA,CAAwB,EAAE,CAAA;AAErD,EAAA,MAAM,WAAA,GAAcC,iBAAA,CAAY,CAAC,KAAA,KAA2B;AAC1D,IAAA,SAAA,CAAU,MAAM,MAAM,CAAA;AACtB,IAAA,UAAA,CAAW,MAAM,OAAO,CAAA;AACxB,IAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,EACtB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,cAAA,GAAiBA,iBAAA,CAAY,CAAC,GAAA,KAA8B;AAChE,IAAA,OAAA,CAAQ,OAAA,GAAU,GAAA;AAClB,IAAA,IAAI,GAAA,EAAK;AACP,MAAA,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAC,CAAA,CAAE,QAAQ,CAAA,KAAA,KAAS,GAAA,CAAI,UAAA,CAAW,KAAK,CAAC,CAAA;AACzE,MAAA,kBAAA,CAAmB,OAAA,CAAQ,OAAO,CAAC,CAAA,CAAE,QAAQ,CAAA,OAAA,KAAW,GAAA,CAAI,YAAA,CAAa,OAAO,CAAC,CAAA;AAAA,IACnF;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAaA,iBAAA,CAAY,CAAC,KAAA,KAAgC;AAC9D,IAAA,IAAI,QAAQ,OAAA,EAAS;AACnB,MAAA,OAAA,CAAQ,OAAA,CAAQ,WAAW,KAAK,CAAA;AAAA,IAClC,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,IACrC;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAeA,iBAAA,CAAY,CAAC,OAAA,KAA2B;AAC3D,IAAA,IAAI,QAAQ,OAAA,EAAS;AACnB,MAAA,OAAA,CAAQ,OAAA,CAAQ,aAAa,OAAO,CAAA;AAAA,IACtC,CAAA,MAAO;AACL,MAAA,kBAAA,CAAmB,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,IACzC;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgBA,iBAAA,CAAY,CAAC,YAAA,KAAsD;AAGvF,IAAA,OAAO,OAAA,CAAQ,OAAA,EAAS,aAAA,CAAc,YAAY,CAAA,IAAK,IAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgBA,kBAAY,YAAY;AAC5C,IAAA,MAAM,OAAA,CAAQ,SAAS,aAAA,EAAc;AAAA,EACvC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAeC,cAA4B,OAAO;AAAA,IACtD,MAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,CAAA,EAAI,CAAC,MAAA,EAAQ,OAAA,EAAS,OAAO,UAAA,EAAY,YAAA,EAAc,aAAA,EAAe,aAAa,CAAC,CAAA;AAIpF,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,aAAA,CAAc,YAAY,CAAA;AAAA,EAC5B,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AACjB,EAAAA,eAAA,CAAU,MAAM,MAAM,WAAA,EAAY,EAAG,EAAE,CAAA;AAEvC,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,OAAA,oBACCC,cAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,QAAA;AAAA,QACA,WAAA;AAAA,QACA,gBAAA;AAAA,QACA,iBAAA;AAAA,QACA,iBAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA,EAAY,cAAA;AAAA,QACZ,OAAA,EAAS;AAAA;AAAA;AACX,GAAA,EAEJ,CAAA;AAEJ;AASO,SAAS,eAAA,GAAuC;AACrD,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,SAAA,EAAU;AAC7B,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,cAAA,GAAiB;AAC/B,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,SAAA,EAAU;AACjC,EAAA,OAAO,UAAA;AACT;AAKO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,SAAA,EAAU;AACnC,EAAA,OAAO,EAAE,YAAA,EAAa;AACxB;AAKO,SAAS,oBAAoB,YAAA,EAIlC;AACA,EAAA,MAAM,EAAE,aAAA,EAAe,MAAA,EAAO,GAAI,SAAA,EAAU;AAC5C,EAAA,MAAM,UAAA,GAAa,cAAc,YAAY,CAAA;AAG7C,EAAA,MAAM,aAAa,MAAA,EAAQ,WAAA,EAAa,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,YAAY,CAAA;AACvE,EAAA,MAAM,SAAA,GAAY,YAAY,MAAA,KAAW,SAAA;AAEzC,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,YAAY,UAAA,GAAa,IAAA;AAAA,IACrC,OAAA,EAAS,SAAA,IAAa,UAAA,GAAa,UAAA,CAAW,WAAA,GAAc,IAAA;AAAA,IAC5D,SAAA,EAAW,CAAC,UAAA,IAAc,UAAA,CAAW,WAAA,KAAgB;AAAA,GACvD;AACF","file":"chunk-S3RPDQA7.js","sourcesContent":["'use client'\n\n/**\n * Signal store — module singleton behind useSignal().\n *\n * 4.0: SignalBridge no longer wraps page children in a React context; it\n * mounts as a childless sibling and publishes its API here. useSignal()\n * subscribes via useSyncExternalStore, so consumers work anywhere in the\n * tree — and BEFORE the bridge mounts, they get a buffering stub whose\n * trackEvent/trackOutcome queue calls that the bridge drains on publish.\n * getExperiment returns null pre-publish, identical to the pre-config\n * `loading` window consumers already handle.\n *\n * Behavior change vs 3.x (major): useSignal() no longer throws outside a\n * SignalBridge. With signal disabled it stays a bounded no-op stub — a\n * one-time debug warning fires instead of a crash.\n */\n\nimport { useSyncExternalStore } from 'react'\nimport type {\n SignalContextValue,\n SignalEvent,\n SignalOutcome,\n} from './types'\n\nconst pendingEvents: Partial<SignalEvent>[] = []\nconst pendingOutcomes: SignalOutcome[] = []\nconst MAX_PENDING = 100\nlet warnedNoBridge = false\n\n/** Frozen pre-bridge stub — stable reference (useSyncExternalStore requirement). */\nconst STUB: SignalContextValue = Object.freeze({\n config: null,\n loading: true,\n error: null,\n trackEvent: (event: Partial<SignalEvent>) => {\n if (pendingEvents.length < MAX_PENDING) pendingEvents.push(event)\n else if (!warnedNoBridge) {\n warnedNoBridge = true\n console.warn('[site-kit] Signal events are queuing but no SignalBridge has mounted — is signal enabled on SiteKitLayout?')\n }\n },\n trackOutcome: (outcome: SignalOutcome) => {\n if (pendingOutcomes.length < MAX_PENDING) pendingOutcomes.push(outcome)\n },\n getExperiment: () => null,\n refreshConfig: async () => {},\n})\n\nlet current: SignalContextValue = STUB\nconst listeners = new Set<() => void>()\n\nfunction emit() {\n for (const l of listeners) l()\n}\n\n/** Bridge-side: publish the live API (called whenever its value changes). */\nexport function publishSignal(value: SignalContextValue): void {\n const firstPublish = current === STUB\n current = value\n if (firstPublish) {\n // Drain calls made before the bridge mounted. The bridge's own trackEvent\n // buffers again internally until SignalCore loads, so nothing is lost.\n pendingEvents.splice(0).forEach(e => value.trackEvent(e))\n pendingOutcomes.splice(0).forEach(o => value.trackOutcome(o))\n }\n emit()\n}\n\n/** Bridge-side: reset on unmount so a remount starts clean (tests, HMR). */\nexport function resetSignal(): void {\n current = STUB\n emit()\n}\n\nfunction subscribe(onChange: () => void) {\n listeners.add(onChange)\n return () => listeners.delete(onChange)\n}\n\nconst getSnapshot = () => current\nconst getServerSnapshot = () => STUB\n\n/**\n * Access Signal (experiments, behavioral events) from anywhere in the tree.\n * No provider required — see module docs for pre-mount buffering semantics.\n */\nexport function useSignal(): SignalContextValue {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/**\n * @sonordev/site-kit/signal - SignalBridge\n *\n * Central coordination layer for Signal AI integration.\n *\n * Architecture (2026-07 perf release): SignalBridge is a tiny SSR-SAFE context shell. It\n * renders {children} immediately — children server-render and hydrate\n * normally, no ssr:false wrapper — and lazy-loads the heavy machinery\n * (SignalCore: config fetch, SSE streaming, experiment assignment, event\n * queue, behavior tracking) as a CHILDLESS sibling. The core registers its\n * imperative API into the shell on mount; `trackEvent`/`trackOutcome` calls\n * made before the core is ready are buffered and drained on registration.\n *\n * This removes the old failure mode where enabling `signal` de-opted the\n * whole route to client rendering (the same SSR bailout the analytics\n * sibling-mount fixed) — the #1 recommendation of the 2026-07 perf audit.\n *\n * The core is NOT idle-deferred: experiment variants must apply as early as\n * possible, so it starts loading on hydration.\n */\n\n'use client'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport dynamic from 'next/dynamic'\nimport type { SignalCoreApi, SignalCoreState } from './SignalCore'\nimport type {\n SignalConfig,\n SignalContextValue,\n SignalBridgeProps,\n SignalEvent,\n SignalOutcome,\n ExperimentAssignment,\n} from './types'\n\n// Heavy machinery — loaded client-side only, never wraps content.\nimport { publishSignal, resetSignal, useSignal } from './store'\n\nconst LazySignalCore = dynamic(\n () => import('./SignalCore').then(m => ({ default: m.SignalCore })),\n { ssr: false },\n)\n\n// ============================================\n// Context\n// ============================================\n\n// 4.0: the context is gone. useSignal() reads the module store, so consumers\n// work anywhere in the tree and SignalBridge mounts as a childless sibling.\nexport { useSignal } from './store'\n\n// ============================================\n// SignalBridge Component (shell)\n// ============================================\n\nexport function SignalBridge({\n enabled = true,\n realtime = true,\n experiments = true,\n behaviorTracking = true,\n visitorId: externalVisitorId,\n sessionId: externalSessionId,\n pageMetadataRef,\n children,\n}: SignalBridgeProps) {\n const [config, setConfig] = useState<SignalConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<Error | null>(null)\n\n const coreRef = useRef<SignalCoreApi | null>(null)\n // Calls made before the core chunk loads are buffered here and drained on\n // registration — consumers can call trackEvent/trackOutcome from first render.\n const pendingEventsRef = useRef<Partial<SignalEvent>[]>([])\n const pendingOutcomesRef = useRef<SignalOutcome[]>([])\n\n const handleState = useCallback((state: SignalCoreState) => {\n setConfig(state.config)\n setLoading(state.loading)\n setError(state.error)\n }, [])\n\n const handleRegister = useCallback((api: SignalCoreApi | null) => {\n coreRef.current = api\n if (api) {\n pendingEventsRef.current.splice(0).forEach(event => api.trackEvent(event))\n pendingOutcomesRef.current.splice(0).forEach(outcome => api.trackOutcome(outcome))\n }\n }, [])\n\n const trackEvent = useCallback((event: Partial<SignalEvent>) => {\n if (coreRef.current) {\n coreRef.current.trackEvent(event)\n } else {\n pendingEventsRef.current.push(event)\n }\n }, [])\n\n const trackOutcome = useCallback((outcome: SignalOutcome) => {\n if (coreRef.current) {\n coreRef.current.trackOutcome(outcome)\n } else {\n pendingOutcomesRef.current.push(outcome)\n }\n }, [])\n\n const getExperiment = useCallback((experimentId: string): ExperimentAssignment | null => {\n // null before the core loads — identical to the pre-config-fetch behavior\n // consumers already handle via `loading`.\n return coreRef.current?.getExperiment(experimentId) ?? null\n }, [])\n\n const refreshConfig = useCallback(async () => {\n await coreRef.current?.refreshConfig()\n }, [])\n\n const contextValue = useMemo<SignalContextValue>(() => ({\n config,\n loading,\n error,\n trackEvent,\n trackOutcome,\n getExperiment,\n refreshConfig,\n }), [config, loading, error, trackEvent, trackOutcome, getExperiment, refreshConfig])\n\n // Publish to the module store (drains pre-mount buffered calls on first\n // publish); reset on unmount so tests/HMR start clean.\n useEffect(() => {\n publishSignal(contextValue)\n }, [contextValue])\n useEffect(() => () => resetSignal(), [])\n\n return (\n <>\n {children}\n {enabled && (\n <LazySignalCore\n enabled={enabled}\n realtime={realtime}\n experiments={experiments}\n behaviorTracking={behaviorTracking}\n externalVisitorId={externalVisitorId}\n externalSessionId={externalSessionId}\n pageMetadataRef={pageMetadataRef}\n onRegister={handleRegister}\n onState={handleState}\n />\n )}\n </>\n )\n}\n\n// ============================================\n// Convenience Hooks\n// ============================================\n\n/**\n * Hook to access Signal config\n */\nexport function useSignalConfig(): SignalConfig | null {\n const { config } = useSignal()\n return config\n}\n\n/**\n * Hook for tracking events\n */\nexport function useSignalEvent() {\n const { trackEvent } = useSignal()\n return trackEvent\n}\n\n/**\n * Hook for tracking outcomes/conversions\n */\nexport function useSignalOutcome() {\n const { trackOutcome } = useSignal()\n return { trackOutcome }\n}\n\n/**\n * Hook for experiment assignment\n */\nexport function useSignalExperiment(experimentId: string): {\n assignment: ExperimentAssignment | null\n variant: string | null\n isControl: boolean\n} {\n const { getExperiment, config } = useSignal()\n const assignment = getExperiment(experimentId)\n\n // Check if experiment is running\n const experiment = config?.experiments?.find(e => e.id === experimentId)\n const isRunning = experiment?.status === 'running'\n\n return {\n assignment: isRunning ? assignment : null,\n variant: isRunning && assignment ? assignment.variant_key : null,\n isControl: !assignment || assignment.variant_key === 'control',\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/signal/store.ts","../src/signal/SignalBridge.tsx"],"names":["useSyncExternalStore","dynamic","useState","useRef","useCallback","useMemo","useEffect","jsxs","Fragment","jsx"],"mappings":"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","file":"chunk-NQYO54EB.js","sourcesContent":["'use client'\n\n/**\n * Signal store — module singleton behind useSignal().\n *\n * 4.0: SignalBridge no longer wraps page children in a React context; it\n * mounts as a childless sibling and publishes its API here. useSignal()\n * subscribes via useSyncExternalStore, so consumers work anywhere in the\n * tree — and BEFORE the bridge mounts, they get a buffering stub whose\n * trackEvent/trackOutcome queue calls that the bridge drains on publish.\n * getExperiment returns null pre-publish, identical to the pre-config\n * `loading` window consumers already handle.\n *\n * Behavior change vs 3.x (major): useSignal() no longer throws outside a\n * SignalBridge. With signal disabled it stays a bounded no-op stub — a\n * one-time debug warning fires instead of a crash.\n */\n\nimport { useSyncExternalStore } from 'react'\nimport type {\n SignalContextValue,\n SignalEvent,\n SignalOutcome,\n} from './types'\n\nconst pendingEvents: Partial<SignalEvent>[] = []\nconst pendingOutcomes: SignalOutcome[] = []\nconst MAX_PENDING = 100\nlet warnedNoBridge = false\n\n/** Frozen pre-bridge stub — stable reference (useSyncExternalStore requirement). */\nconst STUB: SignalContextValue = Object.freeze({\n config: null,\n loading: true,\n error: null,\n trackEvent: (event: Partial<SignalEvent>) => {\n if (pendingEvents.length < MAX_PENDING) pendingEvents.push(event)\n else if (!warnedNoBridge) {\n warnedNoBridge = true\n console.warn('[site-kit] Signal events are queuing but no SignalBridge has mounted — is signal enabled on SiteKitLayout?')\n }\n },\n trackOutcome: (outcome: SignalOutcome) => {\n if (pendingOutcomes.length < MAX_PENDING) pendingOutcomes.push(outcome)\n },\n getExperiment: () => null,\n refreshConfig: async () => {},\n})\n\nlet current: SignalContextValue = STUB\nconst listeners = new Set<() => void>()\n\nfunction emit() {\n for (const l of listeners) l()\n}\n\n/** Bridge-side: publish the live API (called whenever its value changes). */\nexport function publishSignal(value: SignalContextValue): void {\n const firstPublish = current === STUB\n current = value\n if (firstPublish) {\n // Drain calls made before the bridge mounted. The bridge's own trackEvent\n // buffers again internally until SignalCore loads, so nothing is lost.\n pendingEvents.splice(0).forEach(e => value.trackEvent(e))\n pendingOutcomes.splice(0).forEach(o => value.trackOutcome(o))\n }\n emit()\n}\n\n/** Bridge-side: reset on unmount so a remount starts clean (tests, HMR). */\nexport function resetSignal(): void {\n current = STUB\n emit()\n}\n\nfunction subscribe(onChange: () => void) {\n listeners.add(onChange)\n return () => listeners.delete(onChange)\n}\n\nconst getSnapshot = () => current\nconst getServerSnapshot = () => STUB\n\n/**\n * Access Signal (experiments, behavioral events) from anywhere in the tree.\n * No provider required — see module docs for pre-mount buffering semantics.\n */\nexport function useSignal(): SignalContextValue {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/**\n * @sonordev/site-kit/signal - SignalBridge\n *\n * Central coordination layer for Signal AI integration.\n *\n * Architecture (2026-07 perf release): SignalBridge is a tiny SSR-SAFE context shell. It\n * renders {children} immediately — children server-render and hydrate\n * normally, no ssr:false wrapper — and lazy-loads the heavy machinery\n * (SignalCore: config fetch, SSE streaming, experiment assignment, event\n * queue, behavior tracking) as a CHILDLESS sibling. The core registers its\n * imperative API into the shell on mount; `trackEvent`/`trackOutcome` calls\n * made before the core is ready are buffered and drained on registration.\n *\n * This removes the old failure mode where enabling `signal` de-opted the\n * whole route to client rendering (the same SSR bailout the analytics\n * sibling-mount fixed) — the #1 recommendation of the 2026-07 perf audit.\n *\n * The core is NOT idle-deferred: experiment variants must apply as early as\n * possible, so it starts loading on hydration.\n */\n\n'use client'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport dynamic from 'next/dynamic'\nimport type { SignalCoreApi, SignalCoreState } from './SignalCore'\nimport type {\n SignalConfig,\n SignalContextValue,\n SignalBridgeProps,\n SignalEvent,\n SignalOutcome,\n ExperimentAssignment,\n} from './types'\n\n// Heavy machinery — loaded client-side only, never wraps content.\nimport { publishSignal, resetSignal, useSignal } from './store'\n\nconst LazySignalCore = dynamic(\n () => import('./SignalCore').then(m => ({ default: m.SignalCore })),\n { ssr: false },\n)\n\n// ============================================\n// Context\n// ============================================\n\n// 4.0: the context is gone. useSignal() reads the module store, so consumers\n// work anywhere in the tree and SignalBridge mounts as a childless sibling.\nexport { useSignal } from './store'\n\n// ============================================\n// SignalBridge Component (shell)\n// ============================================\n\nexport function SignalBridge({\n enabled = true,\n realtime = true,\n experiments = true,\n behaviorTracking = true,\n visitorId: externalVisitorId,\n sessionId: externalSessionId,\n pageMetadataRef,\n children,\n}: SignalBridgeProps) {\n const [config, setConfig] = useState<SignalConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<Error | null>(null)\n\n const coreRef = useRef<SignalCoreApi | null>(null)\n // Calls made before the core chunk loads are buffered here and drained on\n // registration — consumers can call trackEvent/trackOutcome from first render.\n const pendingEventsRef = useRef<Partial<SignalEvent>[]>([])\n const pendingOutcomesRef = useRef<SignalOutcome[]>([])\n\n const handleState = useCallback((state: SignalCoreState) => {\n setConfig(state.config)\n setLoading(state.loading)\n setError(state.error)\n }, [])\n\n const handleRegister = useCallback((api: SignalCoreApi | null) => {\n coreRef.current = api\n if (api) {\n pendingEventsRef.current.splice(0).forEach(event => api.trackEvent(event))\n pendingOutcomesRef.current.splice(0).forEach(outcome => api.trackOutcome(outcome))\n }\n }, [])\n\n const trackEvent = useCallback((event: Partial<SignalEvent>) => {\n if (coreRef.current) {\n coreRef.current.trackEvent(event)\n } else {\n pendingEventsRef.current.push(event)\n }\n }, [])\n\n const trackOutcome = useCallback((outcome: SignalOutcome) => {\n if (coreRef.current) {\n coreRef.current.trackOutcome(outcome)\n } else {\n pendingOutcomesRef.current.push(outcome)\n }\n }, [])\n\n const getExperiment = useCallback((experimentId: string): ExperimentAssignment | null => {\n // null before the core loads — identical to the pre-config-fetch behavior\n // consumers already handle via `loading`.\n return coreRef.current?.getExperiment(experimentId) ?? null\n }, [])\n\n const refreshConfig = useCallback(async () => {\n await coreRef.current?.refreshConfig()\n }, [])\n\n const contextValue = useMemo<SignalContextValue>(() => ({\n config,\n loading,\n error,\n trackEvent,\n trackOutcome,\n getExperiment,\n refreshConfig,\n }), [config, loading, error, trackEvent, trackOutcome, getExperiment, refreshConfig])\n\n // Publish to the module store (drains pre-mount buffered calls on first\n // publish); reset on unmount so tests/HMR start clean.\n useEffect(() => {\n publishSignal(contextValue)\n }, [contextValue])\n useEffect(() => () => resetSignal(), [])\n\n return (\n <>\n {children}\n {enabled && (\n <LazySignalCore\n enabled={enabled}\n realtime={realtime}\n experiments={experiments}\n behaviorTracking={behaviorTracking}\n externalVisitorId={externalVisitorId}\n externalSessionId={externalSessionId}\n pageMetadataRef={pageMetadataRef}\n onRegister={handleRegister}\n onState={handleState}\n />\n )}\n </>\n )\n}\n\n// ============================================\n// Convenience Hooks\n// ============================================\n\n/**\n * Hook to access Signal config\n */\nexport function useSignalConfig(): SignalConfig | null {\n const { config } = useSignal()\n return config\n}\n\n/**\n * Hook for tracking events\n */\nexport function useSignalEvent() {\n const { trackEvent } = useSignal()\n return trackEvent\n}\n\n/**\n * Hook for tracking outcomes/conversions\n */\nexport function useSignalOutcome() {\n const { trackOutcome } = useSignal()\n return { trackOutcome }\n}\n\n/**\n * Hook for experiment assignment\n */\nexport function useSignalExperiment(experimentId: string): {\n assignment: ExperimentAssignment | null\n variant: string | null\n isControl: boolean\n} {\n const { getExperiment, config } = useSignal()\n const assignment = getExperiment(experimentId)\n\n // Check if experiment is running\n const experiment = config?.experiments?.find(e => e.id === experimentId)\n const isRunning = experiment?.status === 'running'\n\n return {\n assignment: isRunning ? assignment : null,\n variant: isRunning && assignment ? assignment.variant_key : null,\n isControl: !assignment || assignment.variant_key === 'control',\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveSiteHost } from './chunk-KZVSB5WE.mjs';
|
|
2
|
-
import { configureSiteCredential, currentCredential } from './chunk-
|
|
2
|
+
import { configureSiteCredential, currentCredential } from './chunk-562DSBYR.mjs';
|
|
3
3
|
|
|
4
4
|
// src/shared/publishCredential.ts
|
|
5
5
|
function publishSiteCredential({
|
|
@@ -17,5 +17,5 @@ function publishSiteCredential({
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export { publishSiteCredential };
|
|
20
|
-
//# sourceMappingURL=chunk-
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-NUHIODBD.mjs.map
|
|
21
|
+
//# sourceMappingURL=chunk-NUHIODBD.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/publishCredential.ts"],"names":[],"mappings":";;;;AA0DO,SAAS,qBAAA,CAAsB;AAAA,EACpC,MAAA;AAAA,EACA,MAAA,GAAS,sBAAA;AAAA,EACT,IAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAAuC;AACrC,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAKnC,EAAA,uBAAA,CAAwB,EAAE,UAAA,EAAY,MAAA,EAAQ,MAAA,EAAQ,CAAA;AACrD,EAAC,OAAe,oBAAA,GAAuB,MAAA;AACvC,EAAC,MAAA,CAAe,oBAAA,GAAuB,iBAAA,CAAkB,MAAM,CAAA;AAC/D,EAAC,OAAe,kBAAA,GAAqB,KAAA;AACrC,EAAC,MAAA,CAAe,iBAAA,GAAoB,IAAA,IAAQ,eAAA,EAAgB;AAC/D","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/shared/publishCredential.ts"],"names":[],"mappings":";;;;AA0DO,SAAS,qBAAA,CAAsB;AAAA,EACpC,MAAA;AAAA,EACA,MAAA,GAAS,sBAAA;AAAA,EACT,IAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAAuC;AACrC,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAKnC,EAAA,uBAAA,CAAwB,EAAE,UAAA,EAAY,MAAA,EAAQ,MAAA,EAAQ,CAAA;AACrD,EAAC,OAAe,oBAAA,GAAuB,MAAA;AACvC,EAAC,MAAA,CAAe,oBAAA,GAAuB,iBAAA,CAAkB,MAAM,CAAA;AAC/D,EAAC,OAAe,kBAAA,GAAqB,KAAA;AACrC,EAAC,MAAA,CAAe,iBAAA,GAAoB,IAAA,IAAQ,eAAA,EAAgB;AAC/D","file":"chunk-NUHIODBD.mjs","sourcesContent":["/**\n * @sonordev/site-kit shared — Client credential + window-global publishing\n *\n * SINGLE SOURCE OF TRUTH for seeding the browser-side token manager and the\n * `window.__SITE_KIT_*` globals that every client module reads. Used by:\n *\n * - `SiteKitClientProviders` (core `SiteKitLayout`)\n * - `SiteKitCredential` (`@sonordev/site-kit/client`) — the public component\n * for layouts that are NOT core `SiteKitLayout`, e.g.\n * `@sonordev/agency-site-kit`'s `AgencySiteKitLayout`.\n *\n * Do not re-fork this. Before it existed, agency sites hand-rolled their own\n * \"set the globals on mount\" component (upforge's `UptradeSiteKitInit`), and\n * because those copies had no access to the token manager they published the\n * RAW `sonor_` key into the client bundle — the exact exposure the mint exists\n * to prevent. Any layout that puts a credential on `window` goes through here.\n *\n * Client-safe: no `server-only` guard, SSR-safe (every write is window-gated).\n * The minting half is server-only and lives in `../server/mint-site-token`.\n */\n// Leaf modules, NOT '../sites/contract' — see sites/normalize.ts. Importing the\n// full contract here shipped its JSON schema to every browser that loads a\n// credential-publishing entry.\nimport { resolveSiteHost } from '../sites/resolve'\nimport { configureSiteCredential, currentCredential } from './siteToken'\n\n/**\n * Re-exported so the client-side callers below and every existing importer keep\n * a single name for this. The implementation lives in `../sites/resolve` — the\n * ONE resolver shared by the browser (this file) and the build-time sitemap /\n * llms.txt path, so both tag the same host.\n */\nexport { resolveSiteHost }\n\nexport interface PublishSiteCredentialOptions {\n /**\n * The credential the layout minted server-side. In 3.2+ this is a short-lived\n * `st1.` token that `sonorFetch` refreshes transparently. A raw `sonor_` key\n * still works (2.x kit, or the mint-failed fallback) but should never be\n * routed here from a client component — it would ship the secret to the\n * browser.\n */\n apiKey?: string\n apiUrl?: string\n /** Pre-resolved sub-site host. Omit to resolve via `resolveSiteHost`. */\n site?: string\n debug?: boolean\n}\n\n/**\n * Seed the token manager and publish the `window.__SITE_KIT_*` globals.\n *\n * Called during RENDER, not in an effect: client modules read these globals in\n * their own mount effects, and effects run child-first, so an effect-based\n * publish would land after the modules that need it.\n *\n * No-op on the server.\n */\nexport function publishSiteCredential({\n apiKey,\n apiUrl = 'https://api.sonor.io',\n site,\n debug = false,\n}: PublishSiteCredentialOptions): void {\n if (typeof window === 'undefined') return\n\n // Seed the client token manager. The window global is set to the freshest\n // token held — a prior page this session may already have refreshed past the\n // seed the layout injected. In raw-key mode this is a passthrough.\n configureSiteCredential({ credential: apiKey, apiUrl })\n ;(window as any).__SITE_KIT_API_URL__ = apiUrl\n ;(window as any).__SITE_KIT_API_KEY__ = currentCredential(apiKey)\n ;(window as any).__SITE_KIT_DEBUG__ = debug\n ;(window as any).__SITE_KIT_SITE__ = site ?? resolveSiteHost()\n}\n"]}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkESP5RMB7_js = require('./chunk-ESP5RMB7.js');
|
|
5
5
|
var chunkNBOBOYMT_js = require('./chunk-NBOBOYMT.js');
|
|
6
|
-
var
|
|
6
|
+
var chunkN2LYSNZT_js = require('./chunk-N2LYSNZT.js');
|
|
7
7
|
var chunkM2N7NY3V_js = require('./chunk-M2N7NY3V.js');
|
|
8
|
-
var
|
|
8
|
+
var chunkCZMZEUB6_js = require('./chunk-CZMZEUB6.js');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var ReactMarkdown = require('react-markdown');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -92,7 +92,7 @@ function InlineManagedForm({ slug, prefill, primaryColor, primaryRgb }) {
|
|
|
92
92
|
submit,
|
|
93
93
|
isSubmitting,
|
|
94
94
|
isComplete
|
|
95
|
-
} =
|
|
95
|
+
} = chunkN2LYSNZT_js.useForm(slug, { initialValues: prefill || {} });
|
|
96
96
|
const cardStyle = {
|
|
97
97
|
marginTop: 8,
|
|
98
98
|
padding: 12,
|
|
@@ -441,7 +441,7 @@ function ChatWidget(props) {
|
|
|
441
441
|
const { apiKey } = getApiConfig();
|
|
442
442
|
if (!apiKey) return;
|
|
443
443
|
let cancelled = false;
|
|
444
|
-
|
|
444
|
+
chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/api/public/seo/project-info`, {}, { apiKey, retries: 0 }).then((res) => res.ok ? res.json() : null).then((data) => {
|
|
445
445
|
if (cancelled || !data?.valid || !data?.project_id) return;
|
|
446
446
|
setResolvedProjectId(data.project_id);
|
|
447
447
|
}).catch(() => {
|
|
@@ -458,7 +458,7 @@ function ChatWidget(props) {
|
|
|
458
458
|
return;
|
|
459
459
|
}
|
|
460
460
|
let cancelled = false;
|
|
461
|
-
|
|
461
|
+
chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/config?projectId=${projectId}`, {}, { apiKey, retries: 0 }).then((res) => res.ok ? res.json() : null).then((json) => {
|
|
462
462
|
if (!cancelled) setWidgetConfig(json?.data ?? null);
|
|
463
463
|
}).catch((error) => {
|
|
464
464
|
if (process.env.NODE_ENV === "development") {
|
|
@@ -546,7 +546,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
546
546
|
const apiKey = ensureApiKey();
|
|
547
547
|
if (!apiKey) return null;
|
|
548
548
|
try {
|
|
549
|
-
const response = await
|
|
549
|
+
const response = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/availability?projectId=${projectId}`, {}, { apiKey, retries: 0 });
|
|
550
550
|
if (response.ok) {
|
|
551
551
|
const { data } = await response.json();
|
|
552
552
|
setAvailability(data);
|
|
@@ -563,7 +563,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
563
563
|
const apiKey = ensureApiKey();
|
|
564
564
|
if (!apiKey) return null;
|
|
565
565
|
try {
|
|
566
|
-
const response = await
|
|
566
|
+
const response = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/session`, {
|
|
567
567
|
method: "POST",
|
|
568
568
|
headers: { "Content-Type": "application/json" },
|
|
569
569
|
body: JSON.stringify({
|
|
@@ -624,7 +624,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
624
624
|
pageUrl: typeof window !== "undefined" ? window.location.href : void 0,
|
|
625
625
|
...siteContext ? { siteContext } : {}
|
|
626
626
|
};
|
|
627
|
-
const res = await
|
|
627
|
+
const res = await chunkCZMZEUB6_js.sonorFetch(url, {
|
|
628
628
|
method: "POST",
|
|
629
629
|
headers: {
|
|
630
630
|
"Content-Type": "application/json"
|
|
@@ -727,7 +727,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
727
727
|
if (currentSessionId) {
|
|
728
728
|
const apiKey = ensureApiKey();
|
|
729
729
|
if (apiKey) {
|
|
730
|
-
|
|
730
|
+
chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/messages?sessionId=${currentSessionId}`, {}, { apiKey, retries: 0 }).then((res) => res.ok ? res.json() : null).then((json) => {
|
|
731
731
|
const data = json?.data ?? json;
|
|
732
732
|
if (Array.isArray(data) && data.length) {
|
|
733
733
|
setMessages((prev) => {
|
|
@@ -790,7 +790,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
790
790
|
try {
|
|
791
791
|
const apiKey = ensureApiKey();
|
|
792
792
|
if (!apiKey) return;
|
|
793
|
-
const response = await
|
|
793
|
+
const response = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/messages?sessionId=${currentSessionId}`, {}, { apiKey, retries: 0 });
|
|
794
794
|
if (response.ok) {
|
|
795
795
|
const { data } = await response.json();
|
|
796
796
|
setMessages((prev) => {
|
|
@@ -920,7 +920,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
920
920
|
form.append("file", file);
|
|
921
921
|
form.append("sessionId", sessionId);
|
|
922
922
|
form.append("visitorId", visitorId);
|
|
923
|
-
const res = await
|
|
923
|
+
const res = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/upload`, {
|
|
924
924
|
method: "POST",
|
|
925
925
|
body: form
|
|
926
926
|
}, { apiKey, retries: 0 });
|
|
@@ -1020,7 +1020,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
1020
1020
|
if (!apiKey) return;
|
|
1021
1021
|
setCheckingHandoff(true);
|
|
1022
1022
|
try {
|
|
1023
|
-
const res = await
|
|
1023
|
+
const res = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/handoff`, {
|
|
1024
1024
|
method: "POST",
|
|
1025
1025
|
headers: { "Content-Type": "application/json" },
|
|
1026
1026
|
body: JSON.stringify({ sessionId })
|
|
@@ -1059,7 +1059,7 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
1059
1059
|
setIsLoading(true);
|
|
1060
1060
|
setOfflineError(null);
|
|
1061
1061
|
try {
|
|
1062
|
-
const response = await
|
|
1062
|
+
const response = await chunkCZMZEUB6_js.sonorFetch(`${baseUrl}/engage/widget/offline-form`, {
|
|
1063
1063
|
method: "POST",
|
|
1064
1064
|
headers: { "Content-Type": "application/json" },
|
|
1065
1065
|
body: JSON.stringify({
|
|
@@ -1673,5 +1673,5 @@ function EchoChat({ projectId, widgetConfig, config, apiUrl: propApiUrl, signalU
|
|
|
1673
1673
|
exports.ChatWidget = ChatWidget;
|
|
1674
1674
|
exports.EchoChat = EchoChat;
|
|
1675
1675
|
exports.isChatEnabled = isChatEnabled;
|
|
1676
|
-
//# sourceMappingURL=chunk-
|
|
1677
|
-
//# sourceMappingURL=chunk-
|
|
1676
|
+
//# sourceMappingURL=chunk-PPY73K4P.js.map
|
|
1677
|
+
//# sourceMappingURL=chunk-PPY73K4P.js.map
|