@sonordev/site-kit 5.7.0 → 5.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/agent-manifest.json +14 -2
- package/dist/AnalyticsProvider-ERNSZ4DH.mjs +12 -0
- package/dist/{AnalyticsProvider-EWF7JN2X.mjs.map → AnalyticsProvider-ERNSZ4DH.mjs.map} +1 -1
- package/dist/AnalyticsProvider-HE6V5UJD.js +33 -0
- package/dist/{AnalyticsProvider-GJFG7YXA.js.map → AnalyticsProvider-HE6V5UJD.js.map} +1 -1
- package/dist/{BlogViewTracker-CKYG6MYU.mjs → BlogViewTracker-2NQ5LBVR.mjs} +13 -10
- package/dist/BlogViewTracker-2NQ5LBVR.mjs.map +1 -0
- package/dist/{BlogViewTracker-2D3IJPJK.js → BlogViewTracker-4OGWSC2Q.js} +14 -11
- package/dist/BlogViewTracker-4OGWSC2Q.js.map +1 -0
- package/dist/ChatWidget-67CHHONZ.js +24 -0
- package/dist/{ChatWidget-AWP6GBVW.js.map → ChatWidget-67CHHONZ.js.map} +1 -1
- package/dist/ChatWidget-T4RICLLT.mjs +15 -0
- package/dist/{ChatWidget-Z5QXDZP3.mjs.map → ChatWidget-T4RICLLT.mjs.map} +1 -1
- package/dist/EngageWidget-TDW2ZI3Q.js +21 -0
- package/dist/{EngageWidget-VT4DYXVO.js.map → EngageWidget-TDW2ZI3Q.js.map} +1 -1
- package/dist/EngageWidget-WXEQTV4X.mjs +12 -0
- package/dist/{EngageWidget-BKEY5TPO.mjs.map → EngageWidget-WXEQTV4X.mjs.map} +1 -1
- package/dist/{FileField-62ZWZMQK.js → FileField-DEVOXJSO.js} +6 -6
- package/dist/{FileField-62ZWZMQK.js.map → FileField-DEVOXJSO.js.map} +1 -1
- package/dist/{FileField-JJN5QKDL.mjs → FileField-Y5YM365S.mjs} +5 -5
- package/dist/{FileField-JJN5QKDL.mjs.map → FileField-Y5YM365S.mjs.map} +1 -1
- package/dist/{FormSpotlight-URS4XRS7.js → FormSpotlight-4Q5FM3YS.js} +25 -21
- package/dist/FormSpotlight-4Q5FM3YS.js.map +1 -0
- package/dist/{FormSpotlight-OTFB6QM5.mjs → FormSpotlight-T3ASGUYB.mjs} +11 -7
- package/dist/FormSpotlight-T3ASGUYB.mjs.map +1 -0
- package/dist/{FormStage-FVKMIV73.js → FormStage-PSAIPZBS.js} +20 -15
- package/dist/FormStage-PSAIPZBS.js.map +1 -0
- package/dist/{FormStage-VPGOCMAV.mjs → FormStage-U5V4MI5Q.mjs} +9 -4
- package/dist/FormStage-U5V4MI5Q.mjs.map +1 -0
- package/dist/ManagedForm-EAZOMNSL.mjs +16 -0
- package/dist/{ManagedForm-CXVDJMHN.mjs.map → ManagedForm-EAZOMNSL.mjs.map} +1 -1
- package/dist/ManagedForm-R6DJXU34.js +25 -0
- package/dist/{ManagedForm-FGNTDGED.js.map → ManagedForm-R6DJXU34.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-SQYB4BZU.mjs → ManagedNewsletterForm-5RY3TWPQ.mjs} +9 -7
- package/dist/ManagedNewsletterForm-5RY3TWPQ.mjs.map +1 -0
- package/dist/{ManagedNewsletterForm-3O5L44AZ.js → ManagedNewsletterForm-VX6GMZXJ.js} +10 -8
- package/dist/ManagedNewsletterForm-VX6GMZXJ.js.map +1 -0
- package/dist/{SignalCore-RFBOBNLQ.js → SignalCore-MWHF2WG4.js} +14 -20
- package/dist/SignalCore-MWHF2WG4.js.map +1 -0
- package/dist/{SignalCore-M2PKKIGH.mjs → SignalCore-ZT6EQGV3.mjs} +8 -14
- package/dist/SignalCore-ZT6EQGV3.mjs.map +1 -0
- package/dist/SitemapSync-OG4TQLDB.mjs +9 -0
- package/dist/{SitemapSync-4OVMIIGC.mjs.map → SitemapSync-OG4TQLDB.mjs.map} +1 -1
- package/dist/SitemapSync-Z62BGZMV.js +18 -0
- package/dist/{SitemapSync-RK3SQ4M2.js.map → SitemapSync-Z62BGZMV.js.map} +1 -1
- package/dist/analytics/AnalyticsProvider.d.ts.map +1 -1
- package/dist/analytics/index.js +10 -9
- package/dist/analytics/index.mjs +5 -4
- package/dist/api-D745LGGU.mjs +0 -1
- package/dist/api-XR5APCH3.js +0 -1
- package/dist/blog/BlogLayout.d.ts +3 -1
- package/dist/blog/BlogLayout.d.ts.map +1 -1
- package/dist/blog/BlogList.d.ts +7 -1
- package/dist/blog/BlogList.d.ts.map +1 -1
- package/dist/blog/BlogPost.d.ts +20 -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/BlogViewTracker.d.ts +8 -2
- package/dist/blog/BlogViewTracker.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 +5 -2
- package/dist/blog/ClusterNavigation.d.ts.map +1 -1
- package/dist/blog/RelatedPosts.d.ts +3 -1
- package/dist/blog/RelatedPosts.d.ts.map +1 -1
- package/dist/blog/index.d.ts +1 -1
- package/dist/blog/index.d.ts.map +1 -1
- package/dist/blog/index.js +40 -31
- package/dist/blog/index.js.map +1 -1
- package/dist/blog/index.mjs +11 -6
- package/dist/blog/index.mjs.map +1 -1
- package/dist/blog/processBlogHtml.d.ts +19 -2
- package/dist/blog/processBlogHtml.d.ts.map +1 -1
- package/dist/blog/public-reads.d.ts +27 -0
- package/dist/blog/public-reads.d.ts.map +1 -0
- package/dist/blog/server-core.d.ts +76 -10
- package/dist/blog/server-core.d.ts.map +1 -1
- package/dist/blog/server-ui.js +29 -23
- package/dist/blog/server-ui.js.map +1 -1
- package/dist/blog/server-ui.mjs +12 -6
- package/dist/blog/server-ui.mjs.map +1 -1
- package/dist/blog/server.d.ts +76 -10
- package/dist/blog/server.d.ts.map +1 -1
- package/dist/blog/server.js +54 -47
- package/dist/blog/server.mjs +5 -2
- package/dist/brand/extract-brand-profile.d.ts +36 -2
- package/dist/brand/extract-brand-profile.d.ts.map +1 -1
- package/dist/{chunk-MW2M6O7A.mjs → chunk-26EKSVXM.mjs} +4 -4
- package/dist/{chunk-MW2M6O7A.mjs.map → chunk-26EKSVXM.mjs.map} +1 -1
- package/dist/{chunk-D553G64G.js → chunk-2HPQTRUB.js} +13 -13
- package/dist/{chunk-D553G64G.js.map → chunk-2HPQTRUB.js.map} +1 -1
- package/dist/{chunk-BFJOZ3MU.mjs → chunk-3EY5E35M.mjs} +36 -71
- package/dist/chunk-3EY5E35M.mjs.map +1 -0
- package/dist/{chunk-BUJWXSYZ.mjs → chunk-3TQUARVN.mjs} +4 -4
- package/dist/{chunk-BUJWXSYZ.mjs.map → chunk-3TQUARVN.mjs.map} +1 -1
- package/dist/{chunk-OYOO2OO5.js → chunk-3VRWKKTD.js} +10 -10
- package/dist/{chunk-OYOO2OO5.js.map → chunk-3VRWKKTD.js.map} +1 -1
- package/dist/{chunk-BFM5PEFV.js → chunk-43I7U5AI.js} +56 -177
- package/dist/chunk-43I7U5AI.js.map +1 -0
- package/dist/{chunk-ILNCUSXW.mjs → chunk-4L7OHRWB.mjs} +12 -9
- package/dist/chunk-4L7OHRWB.mjs.map +1 -0
- package/dist/chunk-4LYW6PMU.mjs +72 -0
- package/dist/chunk-4LYW6PMU.mjs.map +1 -0
- package/dist/chunk-4TLFZ6NR.mjs +16 -0
- package/dist/chunk-4TLFZ6NR.mjs.map +1 -0
- package/dist/{chunk-JQ7M6CVL.mjs → chunk-4VSDMNQU.mjs} +3 -3
- package/dist/{chunk-JQ7M6CVL.mjs.map → chunk-4VSDMNQU.mjs.map} +1 -1
- package/dist/{chunk-4B4S56WJ.mjs → chunk-5B4J3IBX.mjs} +75 -21
- package/dist/chunk-5B4J3IBX.mjs.map +1 -0
- package/dist/{chunk-M5GY2AI3.mjs → chunk-5K6B4LWV.mjs} +4 -10
- package/dist/chunk-5K6B4LWV.mjs.map +1 -0
- package/dist/chunk-5SANRSX3.mjs +17 -0
- package/dist/chunk-5SANRSX3.mjs.map +1 -0
- package/dist/chunk-5XFFUP6D.js +100 -0
- package/dist/chunk-5XFFUP6D.js.map +1 -0
- package/dist/chunk-5YA6SI4Z.mjs +0 -1
- package/dist/{chunk-TDJKGN5Q.mjs → chunk-62Y4W4LR.mjs} +216 -103
- package/dist/chunk-62Y4W4LR.mjs.map +1 -0
- package/dist/{chunk-3CLP35TT.mjs → chunk-6S3JE66D.mjs} +62 -97
- package/dist/chunk-6S3JE66D.mjs.map +1 -0
- package/dist/{chunk-4A5V73SR.mjs → chunk-6WEZWYRU.mjs} +9 -9
- package/dist/{chunk-4A5V73SR.mjs.map → chunk-6WEZWYRU.mjs.map} +1 -1
- package/dist/{chunk-JTF4DFUF.mjs → chunk-7AEVA667.mjs} +4 -4
- package/dist/{chunk-JTF4DFUF.mjs.map → chunk-7AEVA667.mjs.map} +1 -1
- package/dist/{chunk-H65OX263.js → chunk-7DV7Y7BZ.js} +15 -15
- package/dist/{chunk-H65OX263.js.map → chunk-7DV7Y7BZ.js.map} +1 -1
- package/dist/{chunk-7ZX6TO6C.mjs → chunk-7H4HB4UZ.mjs} +50 -26
- package/dist/chunk-7H4HB4UZ.mjs.map +1 -0
- package/dist/{chunk-FO4KGPGF.js → chunk-7TC3GRXQ.js} +73 -38
- package/dist/chunk-7TC3GRXQ.js.map +1 -0
- package/dist/{chunk-UQ5YULFU.mjs → chunk-AUHUEIBB.mjs} +4 -4
- package/dist/{chunk-UQ5YULFU.mjs.map → chunk-AUHUEIBB.mjs.map} +1 -1
- package/dist/{chunk-BQGEVMIR.mjs → chunk-AWF73RU2.mjs} +5 -5
- package/dist/{chunk-BQGEVMIR.mjs.map → chunk-AWF73RU2.mjs.map} +1 -1
- package/dist/{chunk-ELQ4SRRR.js → chunk-BHBW2SZF.js} +15 -15
- package/dist/{chunk-ELQ4SRRR.js.map → chunk-BHBW2SZF.js.map} +1 -1
- package/dist/{chunk-RNAGCAIB.js → chunk-BIGXEYKT.js} +7 -7
- package/dist/{chunk-RNAGCAIB.js.map → chunk-BIGXEYKT.js.map} +1 -1
- package/dist/chunk-BQP6JIE2.mjs +28 -0
- package/dist/chunk-BQP6JIE2.mjs.map +1 -0
- package/dist/{chunk-VFGEY6FJ.js → chunk-BY35X57A.js} +223 -110
- package/dist/chunk-BY35X57A.js.map +1 -0
- package/dist/{chunk-3YQILJKJ.js → chunk-CGCUHIAR.js} +60 -35
- package/dist/chunk-CGCUHIAR.js.map +1 -0
- package/dist/chunk-CUNZAD46.js +53 -0
- package/dist/chunk-CUNZAD46.js.map +1 -0
- package/dist/{chunk-FEWWGEQF.js → chunk-CWUYI6LI.js} +4 -4
- package/dist/{chunk-FEWWGEQF.js.map → chunk-CWUYI6LI.js.map} +1 -1
- package/dist/chunk-CXAXZFFW.js +157 -0
- package/dist/chunk-CXAXZFFW.js.map +1 -0
- package/dist/{chunk-H4OBGC43.mjs → chunk-DA7IANFG.mjs} +14 -3
- package/dist/chunk-DA7IANFG.mjs.map +1 -0
- package/dist/{chunk-57AFHENV.mjs → chunk-EHAUNF4V.mjs} +3 -3
- package/dist/{chunk-57AFHENV.mjs.map → chunk-EHAUNF4V.mjs.map} +1 -1
- package/dist/{chunk-2N27LCZH.js → chunk-FEKPEI2G.js} +9 -9
- package/dist/{chunk-2N27LCZH.js.map → chunk-FEKPEI2G.js.map} +1 -1
- package/dist/{chunk-LC7AM4J5.js → chunk-FHPW7XVH.js} +77 -20
- package/dist/chunk-FHPW7XVH.js.map +1 -0
- package/dist/{chunk-JNRHTZL4.js → chunk-FVW6FT6L.js} +73 -29
- package/dist/chunk-FVW6FT6L.js.map +1 -0
- package/dist/{chunk-YKUEFRZI.js → chunk-FWW4K6QP.js} +14 -14
- package/dist/{chunk-YKUEFRZI.js.map → chunk-FWW4K6QP.js.map} +1 -1
- package/dist/{chunk-JNAXDFC4.mjs → chunk-GF4LV5LX.mjs} +38 -156
- package/dist/chunk-GF4LV5LX.mjs.map +1 -0
- package/dist/{chunk-C563AHZZ.mjs → chunk-GKFTJ5AF.mjs} +3 -3
- package/dist/{chunk-C563AHZZ.mjs.map → chunk-GKFTJ5AF.mjs.map} +1 -1
- package/dist/{chunk-OZ3FU4BT.js → chunk-H5NBFNND.js} +2 -2
- package/dist/chunk-H5NBFNND.js.map +1 -0
- package/dist/chunk-HCN3IKMW.mjs +106 -0
- package/dist/chunk-HCN3IKMW.mjs.map +1 -0
- package/dist/{chunk-6FC5Q4KU.mjs → chunk-HOJ4J4X2.mjs} +30 -12
- package/dist/chunk-HOJ4J4X2.mjs.map +1 -0
- package/dist/{chunk-H6YVT3BL.js → chunk-I3ND4XYW.js} +12 -9
- package/dist/chunk-I3ND4XYW.js.map +1 -0
- package/dist/chunk-I7AZC5ZQ.js +0 -1
- package/dist/{chunk-V5THCFPG.mjs → chunk-JFJ7NHS3.mjs} +4 -4
- package/dist/{chunk-V5THCFPG.mjs.map → chunk-JFJ7NHS3.mjs.map} +1 -1
- package/dist/{chunk-KXGD4E7G.js → chunk-JI4EUPHB.js} +7 -7
- package/dist/{chunk-KXGD4E7G.js.map → chunk-JI4EUPHB.js.map} +1 -1
- package/dist/{chunk-GZJE23Y5.mjs → chunk-JLVCWC6A.mjs} +2 -2
- package/dist/chunk-JLVCWC6A.mjs.map +1 -0
- package/dist/chunk-JOYMIGR2.mjs +0 -1
- package/dist/chunk-JS75ORH7.js +0 -1
- package/dist/{chunk-Q7347KP6.mjs → chunk-JX5SM2MX.mjs} +6 -12
- package/dist/chunk-JX5SM2MX.mjs.map +1 -0
- package/dist/chunk-K4TCEAUX.js +52 -0
- package/dist/chunk-K4TCEAUX.js.map +1 -0
- package/dist/chunk-KV7XXLJV.mjs +30 -0
- package/dist/chunk-KV7XXLJV.mjs.map +1 -0
- package/dist/{chunk-JTCQJKJE.js → chunk-LIAISQUE.js} +76 -111
- package/dist/chunk-LIAISQUE.js.map +1 -0
- package/dist/{chunk-CPY74A4F.js → chunk-LMEUYRRR.js} +72 -106
- package/dist/chunk-LMEUYRRR.js.map +1 -0
- package/dist/{chunk-4WBTM6YE.js → chunk-LOEP76MQ.js} +4 -4
- package/dist/{chunk-4WBTM6YE.js.map → chunk-LOEP76MQ.js.map} +1 -1
- package/dist/chunk-LVGSOW2F.js +32 -0
- package/dist/chunk-LVGSOW2F.js.map +1 -0
- package/dist/{chunk-DOB37PV4.js → chunk-M45AL7EA.js} +37 -19
- package/dist/chunk-M45AL7EA.js.map +1 -0
- package/dist/{chunk-RCSTDJUH.js → chunk-M4UVFUFR.js} +8 -13
- package/dist/chunk-M4UVFUFR.js.map +1 -0
- package/dist/{chunk-R2SXXFXZ.mjs → chunk-MI2SRBCR.mjs} +3 -3
- package/dist/{chunk-R2SXXFXZ.mjs.map → chunk-MI2SRBCR.mjs.map} +1 -1
- package/dist/chunk-MLVHVKFT.mjs +148 -0
- package/dist/chunk-MLVHVKFT.mjs.map +1 -0
- package/dist/{chunk-L7ACQ6PC.js → chunk-MOAYT3KN.js} +4 -4
- package/dist/{chunk-L7ACQ6PC.js.map → chunk-MOAYT3KN.js.map} +1 -1
- package/dist/chunk-NG2TTI7D.js +8 -0
- package/dist/{chunk-5TXXTYXL.js.map → chunk-NG2TTI7D.js.map} +1 -1
- package/dist/{chunk-C4PZ2R3B.js → chunk-NLDN6PYM.js} +10 -10
- package/dist/{chunk-C4PZ2R3B.js.map → chunk-NLDN6PYM.js.map} +1 -1
- package/dist/chunk-NN2YE5WT.js +0 -1
- package/dist/chunk-NNZDWY3L.mjs +0 -1
- package/dist/chunk-NRBITVDK.js +114 -0
- package/dist/chunk-NRBITVDK.js.map +1 -0
- package/dist/{chunk-TSZIACRC.js → chunk-OBKYF4TP.js} +6 -12
- package/dist/chunk-OBKYF4TP.js.map +1 -0
- package/dist/{chunk-TP7H6BSK.mjs → chunk-OE7CTIOU.mjs} +73 -30
- package/dist/chunk-OE7CTIOU.mjs.map +1 -0
- package/dist/chunk-OESGRWI4.mjs +6 -0
- package/dist/{chunk-QRBPT6Z6.mjs.map → chunk-OESGRWI4.mjs.map} +1 -1
- package/dist/{chunk-UJ6CHZAI.mjs → chunk-OEW2LFOV.js} +169 -25
- package/dist/chunk-OEW2LFOV.js.map +1 -0
- package/dist/chunk-P4Y75QSU.js +19 -0
- package/dist/chunk-P4Y75QSU.js.map +1 -0
- package/dist/{chunk-47XQWV4S.mjs → chunk-PQVQAX67.mjs} +3 -3
- package/dist/{chunk-47XQWV4S.mjs.map → chunk-PQVQAX67.mjs.map} +1 -1
- package/dist/chunk-QRHVMTHF.mjs +94 -0
- package/dist/chunk-QRHVMTHF.mjs.map +1 -0
- package/dist/{chunk-FBDHKYNF.mjs → chunk-R4B3DFF4.mjs} +3 -3
- package/dist/{chunk-FBDHKYNF.mjs.map → chunk-R4B3DFF4.mjs.map} +1 -1
- package/dist/chunk-R7GHP3FY.js +81 -0
- package/dist/chunk-R7GHP3FY.js.map +1 -0
- package/dist/{chunk-4UVM7E2W.js → chunk-S5VL7AWW.js} +3 -3
- package/dist/{chunk-4UVM7E2W.js.map → chunk-S5VL7AWW.js.map} +1 -1
- package/dist/{chunk-P4TB4ROG.js → chunk-SEP5D4MI.js} +8 -2
- package/dist/chunk-SEP5D4MI.js.map +1 -0
- package/dist/{chunk-L4V6TKMJ.mjs → chunk-U2V542EO.mjs} +7 -3
- package/dist/chunk-U2V542EO.mjs.map +1 -0
- package/dist/{chunk-HBN4A2N4.mjs → chunk-U6H5ZY3B.mjs} +3 -3
- package/dist/{chunk-HBN4A2N4.mjs.map → chunk-U6H5ZY3B.mjs.map} +1 -1
- package/dist/{chunk-H7274TKR.mjs → chunk-VJV7WUR2.mjs} +12 -4
- package/dist/chunk-VJV7WUR2.mjs.map +1 -0
- package/dist/{chunk-F3AKYZOH.js → chunk-WED6ZDVS.js} +6 -13
- package/dist/chunk-WED6ZDVS.js.map +1 -0
- package/dist/{chunk-5B4FABFK.js → chunk-WS7MH3GD.js} +14 -2
- package/dist/chunk-WS7MH3GD.js.map +1 -0
- package/dist/{chunk-XLPU3TEE.mjs → chunk-X22BGNVL.mjs} +4 -4
- package/dist/{chunk-XLPU3TEE.mjs.map → chunk-X22BGNVL.mjs.map} +1 -1
- package/dist/{chunk-IPV2TUAT.js → chunk-XA2GJFVM.js} +12 -4
- package/dist/chunk-XA2GJFVM.js.map +1 -0
- package/dist/chunk-XBX2K3GA.js +33 -0
- package/dist/chunk-XBX2K3GA.js.map +1 -0
- package/dist/{chunk-ABZGEHTC.mjs → chunk-XSAHJ2BB.mjs} +3 -3
- package/dist/{chunk-ABZGEHTC.mjs.map → chunk-XSAHJ2BB.mjs.map} +1 -1
- package/dist/{chunk-6CJP7BFM.js → chunk-XZO5I4RS.mjs} +147 -20
- package/dist/chunk-XZO5I4RS.mjs.map +1 -0
- package/dist/chunk-Y5QZPUL3.mjs +47 -0
- package/dist/chunk-Y5QZPUL3.mjs.map +1 -0
- package/dist/{chunk-NOU3JQJK.js → chunk-Y6Z2W45H.js} +8 -8
- package/dist/{chunk-NOU3JQJK.js.map → chunk-Y6Z2W45H.js.map} +1 -1
- package/dist/{chunk-YYDZ2TYR.js → chunk-YCFYQN2Q.js} +3 -3
- package/dist/{chunk-YYDZ2TYR.js.map → chunk-YCFYQN2Q.js.map} +1 -1
- package/dist/chunk-YN7QHLWF.js +19 -0
- package/dist/chunk-YN7QHLWF.js.map +1 -0
- package/dist/{chunk-O2VJZOR2.mjs → chunk-YRNDASQY.mjs} +6 -11
- package/dist/chunk-YRNDASQY.mjs.map +1 -0
- package/dist/chunk-YU7QZ3PP.mjs +45 -0
- package/dist/chunk-YU7QZ3PP.mjs.map +1 -0
- package/dist/{chunk-3S5JN6KL.js → chunk-ZV6HIQRQ.js} +6 -6
- package/dist/{chunk-3S5JN6KL.js.map → chunk-ZV6HIQRQ.js.map} +1 -1
- package/dist/{chunk-RVRN5U7W.mjs → chunk-ZVI7MBVF.mjs} +73 -38
- package/dist/chunk-ZVI7MBVF.mjs.map +1 -0
- package/dist/cli/agent/checks.d.ts +15 -1
- package/dist/cli/agent/checks.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/og.d.ts +26 -8
- package/dist/cli/commands/og.d.ts.map +1 -1
- package/dist/cli/index.js +683 -323
- package/dist/cli/index.mjs +604 -244
- package/dist/client/index.js +6 -6
- package/dist/client/index.mjs +5 -5
- package/dist/commerce/CheckoutForm.d.ts.map +1 -1
- package/dist/commerce/ProductDetail.d.ts.map +1 -1
- package/dist/commerce/api.d.ts +14 -0
- package/dist/commerce/api.d.ts.map +1 -1
- package/dist/commerce/index.d.ts +1 -1
- package/dist/commerce/index.d.ts.map +1 -1
- package/dist/commerce/index.js +61 -56
- package/dist/commerce/index.mjs +6 -5
- package/dist/config/index.js +3 -3
- package/dist/config/index.mjs +1 -1
- package/dist/discover-CYXYKHZ2.mjs +4 -0
- package/dist/{discover-FGTKWOL3.mjs.map → discover-CYXYKHZ2.mjs.map} +1 -1
- package/dist/discover-NGEPXZOD.js +21 -0
- package/dist/{discover-NJZPWTDL.js.map → discover-NGEPXZOD.js.map} +1 -1
- package/dist/engage/index.js +12 -10
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +9 -7
- package/dist/engage/index.mjs.map +1 -1
- package/dist/fleet/index.js +8 -8
- package/dist/fleet/index.mjs +4 -4
- package/dist/forms/FormClient.d.ts.map +1 -1
- package/dist/forms/FormField.d.ts +7 -1
- package/dist/forms/FormField.d.ts.map +1 -1
- package/dist/forms/FormSpotlight.d.ts +1 -1
- package/dist/forms/FormSpotlight.d.ts.map +1 -1
- package/dist/forms/FormStage.d.ts +1 -1
- package/dist/forms/FormStage.d.ts.map +1 -1
- package/dist/forms/experience-plan.d.ts +0 -1
- package/dist/forms/experience-plan.d.ts.map +1 -1
- package/dist/forms/field-interactions.d.ts +63 -0
- package/dist/forms/field-interactions.d.ts.map +1 -0
- package/dist/forms/field-rules.d.ts +41 -0
- package/dist/forms/field-rules.d.ts.map +1 -0
- package/dist/forms/index.js +25 -23
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +13 -11
- package/dist/forms/index.mjs.map +1 -1
- package/dist/forms/server.js +11 -11
- package/dist/forms/server.mjs +9 -9
- package/dist/forms/static.js +8 -8
- package/dist/forms/static.mjs +7 -7
- package/dist/forms/tracking-session.d.ts +48 -3
- package/dist/forms/tracking-session.d.ts.map +1 -1
- package/dist/forms/types.d.ts +11 -0
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/forms/useForm.d.ts +8 -0
- package/dist/forms/useForm.d.ts.map +1 -1
- package/dist/forms/useFormTracking.d.ts +29 -4
- package/dist/forms/useFormTracking.d.ts.map +1 -1
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +72 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -10
- package/dist/index.mjs.map +1 -1
- package/dist/layout/client.js +10 -10
- package/dist/layout/client.mjs +9 -9
- package/dist/layout/index.js +13 -12
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/index.mjs +11 -10
- package/dist/layout/index.mjs.map +1 -1
- package/dist/lib-6HOOMENJ.js +0 -1
- package/dist/lib-BGAWCSUH.js +0 -1
- package/dist/lib-R7IQ4ZHE.mjs +0 -1
- package/dist/lib-RSDMEKDQ.mjs +0 -1
- package/dist/llms/aiRobots.d.ts +20 -4
- package/dist/llms/aiRobots.d.ts.map +1 -1
- package/dist/llms/api.d.ts +8 -3
- package/dist/llms/api.d.ts.map +1 -1
- package/dist/llms/discovery-headers.d.ts +24 -0
- package/dist/llms/discovery-headers.d.ts.map +1 -1
- package/dist/llms/generateLLMsTxt.d.ts.map +1 -1
- package/dist/llms/index.d.ts +2 -2
- package/dist/llms/index.d.ts.map +1 -1
- package/dist/llms/index.js +45 -96
- package/dist/llms/index.js.map +1 -1
- package/dist/llms/index.mjs +11 -81
- package/dist/llms/index.mjs.map +1 -1
- package/dist/llms/links.d.ts +26 -0
- package/dist/llms/links.d.ts.map +1 -0
- package/dist/llms/types.d.ts +15 -0
- package/dist/llms/types.d.ts.map +1 -1
- package/dist/llms/wiring.d.ts +22 -0
- package/dist/llms/wiring.d.ts.map +1 -1
- package/dist/llms/writeLLMsTxt.d.ts +9 -0
- package/dist/llms/writeLLMsTxt.d.ts.map +1 -1
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/motion/gsap.d.ts +54 -0
- package/dist/motion/gsap.d.ts.map +1 -1
- package/dist/motion/gsap.js +34 -4
- package/dist/motion/gsap.js.map +1 -1
- package/dist/motion/gsap.mjs +33 -5
- package/dist/motion/gsap.mjs.map +1 -1
- package/dist/og/config.d.ts +6 -0
- package/dist/og/config.d.ts.map +1 -1
- package/dist/og/contrast.d.ts +33 -0
- package/dist/og/contrast.d.ts.map +1 -0
- package/dist/og/index.d.ts +2 -0
- package/dist/og/index.d.ts.map +1 -1
- package/dist/og/index.js +26 -8
- package/dist/og/index.mjs +3 -1
- package/dist/og/pages.d.ts +101 -0
- package/dist/og/pages.d.ts.map +1 -1
- package/dist/og/route-copy.d.ts +34 -0
- package/dist/og/route-copy.d.ts.map +1 -0
- package/dist/og/route-fit.d.ts +77 -0
- package/dist/og/route-fit.d.ts.map +1 -0
- package/dist/og/route.d.ts +80 -20
- package/dist/og/route.d.ts.map +1 -1
- package/dist/og/route.js +195 -25
- package/dist/og/route.js.map +1 -1
- package/dist/og/route.mjs +193 -26
- package/dist/og/route.mjs.map +1 -1
- package/dist/og/template.d.ts.map +1 -1
- package/dist/og/wiring.d.ts +43 -3
- package/dist/og/wiring.d.ts.map +1 -1
- package/dist/proxy/index.d.ts.map +1 -1
- package/dist/proxy/index.js +15 -10
- package/dist/proxy/index.js.map +1 -1
- package/dist/proxy/index.mjs +12 -7
- package/dist/proxy/index.mjs.map +1 -1
- package/dist/redirects/index.d.ts +24 -0
- package/dist/redirects/index.d.ts.map +1 -1
- package/dist/redirects/index.js +11 -8
- package/dist/redirects/index.mjs +4 -1
- package/dist/redirects/not-found.js +8 -5
- package/dist/redirects/not-found.js.map +1 -1
- package/dist/redirects/not-found.mjs +4 -1
- package/dist/redirects/not-found.mjs.map +1 -1
- package/dist/robots/index.d.ts +2 -0
- package/dist/robots/index.d.ts.map +1 -1
- package/dist/robots/index.js +23 -3
- package/dist/robots/index.js.map +1 -1
- package/dist/robots/index.mjs +2 -2
- package/dist/robots/index.mjs.map +1 -1
- package/dist/search/index.js +4 -4
- package/dist/search/index.mjs +3 -3
- package/dist/seo/ManagedContent.d.ts +4 -2
- package/dist/seo/ManagedContent.d.ts.map +1 -1
- package/dist/seo/ManagedFAQ.d.ts.map +1 -1
- package/dist/seo/ManagedInternalLinks.d.ts.map +1 -1
- package/dist/seo/ManagedSchema.d.ts.map +1 -1
- package/dist/seo/client.js +6 -6
- package/dist/seo/client.mjs +5 -5
- package/dist/seo/getManagedMetadata.d.ts.map +1 -1
- package/dist/seo/index.js +59 -49
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +29 -19
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo/register-sitemap-cli-impl.d.ts +32 -0
- package/dist/seo/register-sitemap-cli-impl.d.ts.map +1 -1
- package/dist/seo/register-sitemap-cli.d.ts +7 -0
- package/dist/seo/register-sitemap-cli.d.ts.map +1 -1
- package/dist/seo/register-sitemap-cli.js +273 -57
- package/dist/seo/register-sitemap-cli.mjs +269 -53
- package/dist/seo/register-sitemap-request.d.ts +36 -0
- package/dist/seo/register-sitemap-request.d.ts.map +1 -0
- package/dist/seo/routing.d.ts +2 -0
- package/dist/seo/routing.d.ts.map +1 -1
- package/dist/seo/schema-filter.d.ts +43 -0
- package/dist/seo/schema-filter.d.ts.map +1 -0
- package/dist/seo/server-api.d.ts +15 -2
- package/dist/seo/server-api.d.ts.map +1 -1
- package/dist/seo/server.js +23 -18
- package/dist/seo/server.mjs +7 -2
- package/dist/seo/types.d.ts +30 -0
- package/dist/seo/types.d.ts.map +1 -1
- package/dist/seo-meta/contract.d.ts +60 -0
- package/dist/seo-meta/contract.d.ts.map +1 -0
- package/dist/seo-meta/contract.js +41 -0
- package/dist/seo-meta/contract.js.map +1 -0
- package/dist/seo-meta/contract.mjs +4 -0
- package/dist/seo-meta/contract.mjs.map +1 -0
- package/dist/server/index.js +4 -3
- package/dist/server/index.mjs +3 -2
- package/dist/server/mint-site-token.d.ts +2 -32
- package/dist/server/mint-site-token.d.ts.map +1 -1
- package/dist/{server-api-RG3ZL3DV.mjs → server-api-A2EFCTZX.mjs} +7 -3
- package/dist/{server-api-RG3ZL3DV.mjs.map → server-api-A2EFCTZX.mjs.map} +1 -1
- package/dist/{server-api-RYJQAUGO.js → server-api-IWTZ7C3O.js} +25 -21
- package/dist/{server-api-RYJQAUGO.js.map → server-api-IWTZ7C3O.js.map} +1 -1
- package/dist/shared/build-entries.d.ts +2 -0
- package/dist/shared/build-entries.d.ts.map +1 -1
- package/dist/shared/fresh-fetch.d.ts +64 -0
- package/dist/shared/fresh-fetch.d.ts.map +1 -0
- package/dist/shared/next-files.d.ts +7 -0
- package/dist/shared/next-files.d.ts.map +1 -1
- package/dist/shared/page-leave.d.ts +27 -0
- package/dist/shared/page-leave.d.ts.map +1 -0
- package/dist/shared/source-graph.d.ts +63 -0
- package/dist/shared/source-graph.d.ts.map +1 -0
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/SignalCore.d.ts.map +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sitemap/index.d.ts +19 -4
- package/dist/sitemap/index.d.ts.map +1 -1
- package/dist/sitemap/index.js +53 -43
- package/dist/sitemap/index.js.map +1 -1
- package/dist/sitemap/index.mjs +37 -27
- package/dist/sitemap/index.mjs.map +1 -1
- package/dist/sitemap/shared.d.ts +65 -0
- package/dist/sitemap/shared.d.ts.map +1 -1
- package/dist/sites/resolve.d.ts.map +1 -1
- package/dist/sites/site-param.d.ts +16 -0
- package/dist/sites/site-param.d.ts.map +1 -0
- package/dist/sync/index.js +17 -17
- package/dist/sync/index.mjs +4 -4
- package/dist/writeLLMsTxt-CQ7A4AAL.js +19 -0
- package/dist/writeLLMsTxt-NX5MSPYX.mjs +10 -0
- package/package.json +9 -4
- package/dist/AnalyticsProvider-EWF7JN2X.mjs +0 -11
- package/dist/AnalyticsProvider-GJFG7YXA.js +0 -32
- package/dist/BlogViewTracker-2D3IJPJK.js.map +0 -1
- package/dist/BlogViewTracker-CKYG6MYU.mjs.map +0 -1
- package/dist/ChatWidget-AWP6GBVW.js +0 -22
- package/dist/ChatWidget-Z5QXDZP3.mjs +0 -13
- package/dist/EngageWidget-BKEY5TPO.mjs +0 -12
- package/dist/EngageWidget-VT4DYXVO.js +0 -21
- package/dist/FormSpotlight-OTFB6QM5.mjs.map +0 -1
- package/dist/FormSpotlight-URS4XRS7.js.map +0 -1
- package/dist/FormStage-FVKMIV73.js.map +0 -1
- package/dist/FormStage-VPGOCMAV.mjs.map +0 -1
- package/dist/ManagedForm-CXVDJMHN.mjs +0 -14
- package/dist/ManagedForm-FGNTDGED.js +0 -23
- package/dist/ManagedNewsletterForm-3O5L44AZ.js.map +0 -1
- package/dist/ManagedNewsletterForm-SQYB4BZU.mjs.map +0 -1
- package/dist/SignalCore-M2PKKIGH.mjs.map +0 -1
- package/dist/SignalCore-RFBOBNLQ.js.map +0 -1
- package/dist/SitemapSync-4OVMIIGC.mjs +0 -9
- package/dist/SitemapSync-RK3SQ4M2.js +0 -18
- package/dist/analytics/send-gate.test.d.ts +0 -20
- package/dist/analytics/send-gate.test.d.ts.map +0 -1
- package/dist/api-D745LGGU.mjs.map +0 -1
- package/dist/api-XR5APCH3.js.map +0 -1
- package/dist/blog/artwork-components.test.d.ts +0 -2
- package/dist/blog/artwork-components.test.d.ts.map +0 -1
- package/dist/blog/artwork.test.d.ts +0 -2
- package/dist/blog/artwork.test.d.ts.map +0 -1
- package/dist/blog/author-social.test.d.ts +0 -2
- package/dist/blog/author-social.test.d.ts.map +0 -1
- package/dist/blog/blog-tables.test.d.ts +0 -2
- package/dist/blog/blog-tables.test.d.ts.map +0 -1
- package/dist/blog/blog-view-tracker.test.d.ts +0 -2
- package/dist/blog/blog-view-tracker.test.d.ts.map +0 -1
- package/dist/blog/category-metadata.test.d.ts +0 -2
- package/dist/blog/category-metadata.test.d.ts.map +0 -1
- package/dist/blog/metadata-images.test.d.ts +0 -2
- package/dist/blog/metadata-images.test.d.ts.map +0 -1
- package/dist/blog/newsletter-widget.test.d.ts +0 -2
- package/dist/blog/newsletter-widget.test.d.ts.map +0 -1
- package/dist/blog/publication-render.test.d.ts +0 -2
- package/dist/blog/publication-render.test.d.ts.map +0 -1
- package/dist/blog/publication-routes.test.d.ts +0 -2
- package/dist/blog/publication-routes.test.d.ts.map +0 -1
- package/dist/blog/reading-time.test.d.ts +0 -2
- package/dist/blog/reading-time.test.d.ts.map +0 -1
- package/dist/blog/sanitize-excerpt.test.d.ts +0 -2
- package/dist/blog/sanitize-excerpt.test.d.ts.map +0 -1
- package/dist/blog/server-core-contract.test.d.ts +0 -2
- package/dist/blog/server-core-contract.test.d.ts.map +0 -1
- package/dist/blog/static-params.test.d.ts +0 -2
- package/dist/blog/static-params.test.d.ts.map +0 -1
- package/dist/blog/tag-links.test.d.ts +0 -2
- package/dist/blog/tag-links.test.d.ts.map +0 -1
- package/dist/blog/types-wire-shape.test.d.ts +0 -2
- package/dist/blog/types-wire-shape.test.d.ts.map +0 -1
- package/dist/brand/status-contrast.test.d.ts +0 -2
- package/dist/brand/status-contrast.test.d.ts.map +0 -1
- package/dist/chunk-3CLP35TT.mjs.map +0 -1
- package/dist/chunk-3UC6JETG.js +0 -32
- package/dist/chunk-3UC6JETG.js.map +0 -1
- package/dist/chunk-3YQILJKJ.js.map +0 -1
- package/dist/chunk-4B4S56WJ.mjs.map +0 -1
- package/dist/chunk-5B4FABFK.js.map +0 -1
- package/dist/chunk-5TXXTYXL.js +0 -8
- package/dist/chunk-5YA6SI4Z.mjs.map +0 -1
- package/dist/chunk-6CJP7BFM.js.map +0 -1
- package/dist/chunk-6FC5Q4KU.mjs.map +0 -1
- package/dist/chunk-7ZX6TO6C.mjs.map +0 -1
- package/dist/chunk-AWK57R5S.mjs +0 -29
- package/dist/chunk-AWK57R5S.mjs.map +0 -1
- package/dist/chunk-BFJOZ3MU.mjs.map +0 -1
- package/dist/chunk-BFM5PEFV.js.map +0 -1
- package/dist/chunk-CPY74A4F.js.map +0 -1
- package/dist/chunk-DOB37PV4.js.map +0 -1
- package/dist/chunk-F3AKYZOH.js.map +0 -1
- package/dist/chunk-FO4KGPGF.js.map +0 -1
- package/dist/chunk-GZJE23Y5.mjs.map +0 -1
- package/dist/chunk-H4OBGC43.mjs.map +0 -1
- package/dist/chunk-H6YVT3BL.js.map +0 -1
- package/dist/chunk-H7274TKR.mjs.map +0 -1
- package/dist/chunk-I7AZC5ZQ.js.map +0 -1
- package/dist/chunk-ILNCUSXW.mjs.map +0 -1
- package/dist/chunk-IPV2TUAT.js.map +0 -1
- package/dist/chunk-JEOKDUPQ.js +0 -45
- package/dist/chunk-JEOKDUPQ.js.map +0 -1
- package/dist/chunk-JNAXDFC4.mjs.map +0 -1
- package/dist/chunk-JNRHTZL4.js.map +0 -1
- package/dist/chunk-JOYMIGR2.mjs.map +0 -1
- package/dist/chunk-JS75ORH7.js.map +0 -1
- package/dist/chunk-JTCQJKJE.js.map +0 -1
- package/dist/chunk-L4V6TKMJ.mjs.map +0 -1
- package/dist/chunk-LC7AM4J5.js.map +0 -1
- package/dist/chunk-M5GY2AI3.mjs.map +0 -1
- package/dist/chunk-NN2YE5WT.js.map +0 -1
- package/dist/chunk-NNZDWY3L.mjs.map +0 -1
- package/dist/chunk-O2VJZOR2.mjs.map +0 -1
- package/dist/chunk-OZ3FU4BT.js.map +0 -1
- package/dist/chunk-P4TB4ROG.js.map +0 -1
- package/dist/chunk-Q7347KP6.mjs.map +0 -1
- package/dist/chunk-QJU6HBSK.mjs +0 -39
- package/dist/chunk-QJU6HBSK.mjs.map +0 -1
- package/dist/chunk-QRBPT6Z6.mjs +0 -6
- package/dist/chunk-RCSTDJUH.js.map +0 -1
- package/dist/chunk-RVRN5U7W.mjs.map +0 -1
- package/dist/chunk-TDJKGN5Q.mjs.map +0 -1
- package/dist/chunk-TP7H6BSK.mjs.map +0 -1
- package/dist/chunk-TSZIACRC.js.map +0 -1
- package/dist/chunk-UJ6CHZAI.mjs.map +0 -1
- package/dist/chunk-VFGEY6FJ.js.map +0 -1
- package/dist/cli/agent/envelope.test.d.ts +0 -2
- package/dist/cli/agent/envelope.test.d.ts.map +0 -1
- package/dist/cli/agent/ssr-bailout.test.d.ts +0 -2
- package/dist/cli/agent/ssr-bailout.test.d.ts.map +0 -1
- package/dist/cli/codemod/diff.test.d.ts +0 -2
- package/dist/cli/codemod/diff.test.d.ts.map +0 -1
- package/dist/cli/codemod/transforms.test.d.ts +0 -2
- package/dist/cli/codemod/transforms.test.d.ts.map +0 -1
- package/dist/cli/commands/config-regression.test.d.ts +0 -2
- package/dist/cli/commands/config-regression.test.d.ts.map +0 -1
- package/dist/cli/commands/geo.test.d.ts +0 -2
- package/dist/cli/commands/geo.test.d.ts.map +0 -1
- package/dist/cli/commands/og.test.d.ts +0 -2
- package/dist/cli/commands/og.test.d.ts.map +0 -1
- package/dist/cli/config.test.d.ts +0 -2
- package/dist/cli/config.test.d.ts.map +0 -1
- package/dist/cli/generators/index.test.d.ts +0 -2
- package/dist/cli/generators/index.test.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.mjs.map +0 -1
- package/dist/cli/state.test.d.ts +0 -2
- package/dist/cli/state.test.d.ts.map +0 -1
- package/dist/commerce/events-extras.test.d.ts +0 -2
- package/dist/commerce/events-extras.test.d.ts.map +0 -1
- package/dist/commerce/server-result.test.d.ts +0 -2
- package/dist/commerce/server-result.test.d.ts.map +0 -1
- package/dist/discover-FGTKWOL3.mjs +0 -4
- package/dist/discover-NJZPWTDL.js +0 -21
- package/dist/engage/chat-launcher.test.d.ts +0 -2
- package/dist/engage/chat-launcher.test.d.ts.map +0 -1
- package/dist/engage/dependency-contract.test.d.ts +0 -2
- package/dist/engage/dependency-contract.test.d.ts.map +0 -1
- package/dist/engage/launcher-placement.test.d.ts +0 -2
- package/dist/engage/launcher-placement.test.d.ts.map +0 -1
- package/dist/fleet/contract.test.d.ts +0 -2
- package/dist/fleet/contract.test.d.ts.map +0 -1
- package/dist/fleet/heartbeat.test.d.ts +0 -2
- package/dist/fleet/heartbeat.test.d.ts.map +0 -1
- package/dist/forms/contract.test.d.ts +0 -2
- package/dist/forms/contract.test.d.ts.map +0 -1
- package/dist/forms/ga4-identity.test.d.ts +0 -2
- package/dist/forms/ga4-identity.test.d.ts.map +0 -1
- package/dist/forms/native-fallback.test.d.ts +0 -2
- package/dist/forms/native-fallback.test.d.ts.map +0 -1
- package/dist/forms/stage.test.d.ts +0 -2
- package/dist/forms/stage.test.d.ts.map +0 -1
- package/dist/forms/static-form.test.d.ts +0 -2
- package/dist/forms/static-form.test.d.ts.map +0 -1
- package/dist/forms/tracking-session.test.d.ts +0 -22
- package/dist/forms/tracking-session.test.d.ts.map +0 -1
- package/dist/landing/contract.test.d.ts +0 -2
- package/dist/landing/contract.test.d.ts.map +0 -1
- package/dist/landing/server-entry.test.d.ts +0 -2
- package/dist/landing/server-entry.test.d.ts.map +0 -1
- package/dist/lib-6HOOMENJ.js.map +0 -1
- package/dist/lib-BGAWCSUH.js.map +0 -1
- package/dist/lib-R7IQ4ZHE.mjs.map +0 -1
- package/dist/lib-RSDMEKDQ.mjs.map +0 -1
- package/dist/llms/aiRobots.test.d.ts +0 -2
- package/dist/llms/aiRobots.test.d.ts.map +0 -1
- package/dist/llms/contract.test.d.ts +0 -2
- package/dist/llms/contract.test.d.ts.map +0 -1
- package/dist/llms/discovery-headers.test.d.ts +0 -2
- package/dist/llms/discovery-headers.test.d.ts.map +0 -1
- package/dist/llms/generateLLMsTxt.test.d.ts +0 -2
- package/dist/llms/generateLLMsTxt.test.d.ts.map +0 -1
- package/dist/llms/handlers.test.d.ts +0 -2
- package/dist/llms/handlers.test.d.ts.map +0 -1
- package/dist/llms/humanize-industry.test.d.ts +0 -2
- package/dist/llms/humanize-industry.test.d.ts.map +0 -1
- package/dist/llms/sourcedFacts.test.d.ts +0 -2
- package/dist/llms/sourcedFacts.test.d.ts.map +0 -1
- package/dist/llms/wiring.test.d.ts +0 -2
- package/dist/llms/wiring.test.d.ts.map +0 -1
- package/dist/llms/writeLLMsTxt.test.d.ts +0 -2
- package/dist/llms/writeLLMsTxt.test.d.ts.map +0 -1
- package/dist/mcp/protocol.test.d.ts +0 -2
- package/dist/mcp/protocol.test.d.ts.map +0 -1
- package/dist/motion/motion.test.d.ts +0 -16
- package/dist/motion/motion.test.d.ts.map +0 -1
- package/dist/og/pages.test.d.ts +0 -2
- package/dist/og/pages.test.d.ts.map +0 -1
- package/dist/og/template.test.d.ts +0 -2
- package/dist/og/template.test.d.ts.map +0 -1
- package/dist/og/wiring.test.d.ts +0 -2
- package/dist/og/wiring.test.d.ts.map +0 -1
- package/dist/portfolio/contract.test.d.ts +0 -2
- package/dist/portfolio/contract.test.d.ts.map +0 -1
- package/dist/proxy/securityHeaders.test.d.ts +0 -2
- package/dist/proxy/securityHeaders.test.d.ts.map +0 -1
- package/dist/proxy/segment.test.d.ts +0 -2
- package/dist/proxy/segment.test.d.ts.map +0 -1
- package/dist/robots/index.test.d.ts +0 -2
- package/dist/robots/index.test.d.ts.map +0 -1
- package/dist/seo/register-sitemap-cli-impl.test.d.ts +0 -2
- package/dist/seo/register-sitemap-cli-impl.test.d.ts.map +0 -1
- package/dist/seo/register-sitemap-cli.js.map +0 -1
- package/dist/seo/register-sitemap-cli.mjs.map +0 -1
- package/dist/seo-pages/contract.test.d.ts +0 -2
- package/dist/seo-pages/contract.test.d.ts.map +0 -1
- package/dist/server/mint-site-token.test.d.ts +0 -2
- package/dist/server/mint-site-token.test.d.ts.map +0 -1
- package/dist/server/server-fetch.test.d.ts +0 -2
- package/dist/server/server-fetch.test.d.ts.map +0 -1
- package/dist/shared/client-entry-boundary.test.d.ts +0 -2
- package/dist/shared/client-entry-boundary.test.d.ts.map +0 -1
- package/dist/shared/next-files.test.d.ts +0 -2
- package/dist/shared/next-files.test.d.ts.map +0 -1
- package/dist/shared/no-cjs-require.test.d.ts +0 -2
- package/dist/shared/no-cjs-require.test.d.ts.map +0 -1
- package/dist/shared/publishCredential.test.d.ts +0 -2
- package/dist/shared/publishCredential.test.d.ts.map +0 -1
- package/dist/shared/raw-browser-api-guard.test.d.ts +0 -15
- package/dist/shared/raw-browser-api-guard.test.d.ts.map +0 -1
- package/dist/shared/siteToken.test.d.ts +0 -2
- package/dist/shared/siteToken.test.d.ts.map +0 -1
- package/dist/shared/sonorFetch.test.d.ts +0 -2
- package/dist/shared/sonorFetch.test.d.ts.map +0 -1
- package/dist/shared/uuid.test.d.ts +0 -2
- package/dist/shared/uuid.test.d.ts.map +0 -1
- package/dist/shared/version.test.d.ts +0 -2
- package/dist/shared/version.test.d.ts.map +0 -1
- package/dist/shared/visual-viewport-gap.test.d.ts +0 -2
- package/dist/shared/visual-viewport-gap.test.d.ts.map +0 -1
- package/dist/sitemap/discover.test.d.ts +0 -2
- package/dist/sitemap/discover.test.d.ts.map +0 -1
- package/dist/sitemap/shared.test.d.ts +0 -2
- package/dist/sitemap/shared.test.d.ts.map +0 -1
- package/dist/sitemap/site-scope.test.d.ts +0 -2
- package/dist/sitemap/site-scope.test.d.ts.map +0 -1
- package/dist/sites/contract.test.d.ts +0 -2
- package/dist/sites/contract.test.d.ts.map +0 -1
- package/dist/slots/ManagedSlot.test.d.ts +0 -2
- package/dist/slots/ManagedSlot.test.d.ts.map +0 -1
- package/dist/slots/contract.test.d.ts +0 -2
- package/dist/slots/contract.test.d.ts.map +0 -1
- package/dist/slots/revalidate.test.d.ts +0 -2
- package/dist/slots/revalidate.test.d.ts.map +0 -1
- package/dist/slots/server-api.test.d.ts +0 -2
- package/dist/slots/server-api.test.d.ts.map +0 -1
- package/dist/sync/add-to-calendar.test.d.ts +0 -2
- package/dist/sync/add-to-calendar.test.d.ts.map +0 -1
- package/dist/sync/api-errors.test.d.ts +0 -2
- package/dist/sync/api-errors.test.d.ts.map +0 -1
- package/dist/sync/booking-flow.test.d.ts +0 -2
- package/dist/sync/booking-flow.test.d.ts.map +0 -1
package/dist/cli/state.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.test.d.ts","sourceRoot":"","sources":["../../src/cli/state.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events-extras.test.d.ts","sourceRoot":"","sources":["../../src/commerce/events-extras.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-result.test.d.ts","sourceRoot":"","sources":["../../src/commerce/server-result.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkP4TB4ROG_js = require('./chunk-P4TB4ROG.js');
|
|
4
|
-
require('./chunk-SNAQBZPT.js');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "discoverNextJsRoutes", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function () { return chunkP4TB4ROG_js.discoverNextJsRoutes; }
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "findAppDirForDiscovery", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return chunkP4TB4ROG_js.findAppDirForDiscovery; }
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "findSitemapRoute", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () { return chunkP4TB4ROG_js.findSitemapRoute; }
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=discover-NJZPWTDL.js.map
|
|
21
|
-
//# sourceMappingURL=discover-NJZPWTDL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-launcher.test.d.ts","sourceRoot":"","sources":["../../src/engage/chat-launcher.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-contract.test.d.ts","sourceRoot":"","sources":["../../src/engage/dependency-contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"launcher-placement.test.d.ts","sourceRoot":"","sources":["../../src/engage/launcher-placement.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/fleet/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.test.d.ts","sourceRoot":"","sources":["../../src/fleet/heartbeat.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/forms/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ga4-identity.test.d.ts","sourceRoot":"","sources":["../../src/forms/ga4-identity.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-fallback.test.d.ts","sourceRoot":"","sources":["../../src/forms/native-fallback.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stage.test.d.ts","sourceRoot":"","sources":["../../src/forms/stage.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-form.test.d.ts","sourceRoot":"","sources":["../../src/forms/static-form.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Regression guard: ONE `form_analytics` row per form per page load.
|
|
3
|
-
*
|
|
4
|
-
* The bug, fixed in 4.2.2: `ManagedForm` called `useForm` (which tracks) AND
|
|
5
|
-
* rendered `FormClient` (which also tracks). Two `useFormTracking`
|
|
6
|
-
* instances each minted their own session uuid and POSTed their own
|
|
7
|
-
* `/analytics/start`, so a single page load wrote TWO rows — halving every
|
|
8
|
-
* reported start -> submission conversion rate across the fleet.
|
|
9
|
-
*
|
|
10
|
-
* It went unnoticed for months because both rows look individually plausible.
|
|
11
|
-
* What gave it away in the data was the asymmetry: paired rows where exactly
|
|
12
|
-
* one ever completed (only FormClient's instance owns submit) but BOTH
|
|
13
|
-
* abandoned (each instance registered its own beforeunload) — a shape a single
|
|
14
|
-
* tracker firing twice physically cannot produce, since it has one analytics
|
|
15
|
-
* row id and one listener.
|
|
16
|
-
*
|
|
17
|
-
* These tests pin the two things that keep it fixed:
|
|
18
|
-
* 1. Concurrent trackers collapse to one session and one start POST.
|
|
19
|
-
* 2. Nothing composes two trackers over one form again.
|
|
20
|
-
*/
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=tracking-session.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracking-session.test.d.ts","sourceRoot":"","sources":["../../src/forms/tracking-session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/landing/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-entry.test.d.ts","sourceRoot":"","sources":["../../src/landing/server-entry.test.ts"],"names":[],"mappings":""}
|
package/dist/lib-6HOOMENJ.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"lib-6HOOMENJ.js"}
|
package/dist/lib-BGAWCSUH.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"lib-BGAWCSUH.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"lib-R7IQ4ZHE.mjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"lib-RSDMEKDQ.mjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aiRobots.test.d.ts","sourceRoot":"","sources":["../../src/llms/aiRobots.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/llms/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-headers.test.d.ts","sourceRoot":"","sources":["../../src/llms/discovery-headers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateLLMsTxt.test.d.ts","sourceRoot":"","sources":["../../src/llms/generateLLMsTxt.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.test.d.ts","sourceRoot":"","sources":["../../src/llms/handlers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"humanize-industry.test.d.ts","sourceRoot":"","sources":["../../src/llms/humanize-industry.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sourcedFacts.test.d.ts","sourceRoot":"","sources":["../../src/llms/sourcedFacts.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.test.d.ts","sourceRoot":"","sources":["../../src/llms/wiring.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeLLMsTxt.test.d.ts","sourceRoot":"","sources":["../../src/llms/writeLLMsTxt.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.test.d.ts","sourceRoot":"","sources":["../../src/mcp/protocol.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The motion module's contracts:
|
|
3
|
-
*
|
|
4
|
-
* 1. Server HTML never hides content. Every primitive renders its children
|
|
5
|
-
* fully visible with no opacity/transform in the markup — that is the
|
|
6
|
-
* whole reason this module exists instead of the per-site reveals it
|
|
7
|
-
* replaces (crawlers, no-JS visitors, and LCP all read the server HTML).
|
|
8
|
-
* 2. The progress math is exact.
|
|
9
|
-
* 3. The tiers are real: nothing outside src/motion/gsap.ts imports gsap,
|
|
10
|
-
* nothing outside src/motion/three.ts imports three. A stray import in
|
|
11
|
-
* the zero-dep tier would force every consumer of ./motion to install a
|
|
12
|
-
* library it never asked for — bundlers resolve even dynamic import()
|
|
13
|
-
* at build time.
|
|
14
|
-
*/
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=motion.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"motion.test.d.ts","sourceRoot":"","sources":["../../src/motion/motion.test.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
package/dist/og/pages.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pages.test.d.ts","sourceRoot":"","sources":["../../src/og/pages.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.test.d.ts","sourceRoot":"","sources":["../../src/og/template.test.ts"],"names":[],"mappings":""}
|
package/dist/og/wiring.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.test.d.ts","sourceRoot":"","sources":["../../src/og/wiring.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/portfolio/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"securityHeaders.test.d.ts","sourceRoot":"","sources":["../../src/proxy/securityHeaders.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment.test.d.ts","sourceRoot":"","sources":["../../src/proxy/segment.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/robots/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-sitemap-cli-impl.test.d.ts","sourceRoot":"","sources":["../../src/seo/register-sitemap-cli-impl.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/seo/register-sitemap-cli.ts","../../src/brand/extract-brand-profile.ts","../../src/seo/register-sitemap-cli-impl.ts"],"names":["__toESM","require_main","fs","cwd","path","findSitemapRoute","findAppDirForDiscovery","discoverNextJsRoutes","inferPageType","dotenvConfig"],"mappings":"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","file":"register-sitemap-cli.js","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI script to register sitemap entries at build time\n *\n * Usage:\n * npx sonor-register-sitemap\n * npx sonor-register-sitemap --auto-discover\n * npx sonor-register-sitemap --no-optimize # Skip Signal AI meta optimization\n * npx sonor-register-sitemap --auto-discover --full-replace # Prune removed pages (pure-static sites only)\n *\n * Or in package.json:\n * {\n * \"scripts\": {\n * \"postbuild\": \"sonor-register-sitemap --auto-discover\"\n * }\n * }\n *\n * SAFETY: --auto-discover self-skips when the app has an app/sitemap.{ts,js}\n * route (createSitemap owns authoritative build-time sync, and site-kit's\n * runtime SitemapSync mirrors it) — so this line is safe to leave in any\n * postbuild. When it does run (no sitemap route), it syncs ADDITIVELY: a\n * filesystem scan can't see dynamic routes, so it must never delete. Pass\n * --full-replace to prune removed pages on a pure-static site that wants it.\n */\n\nimport path from 'path'\nimport { config as dotenvConfig } from 'dotenv'\nimport { registerLocalSitemap } from './register-sitemap-cli-impl'\n\n// npm postbuild runs outside Next.js — env from .env* is not loaded automatically\nconst cwd = process.cwd()\ndotenvConfig({ path: path.join(cwd, '.env') })\ndotenvConfig({ path: path.join(cwd, '.env.local'), override: true })\nif (process.env.NODE_ENV === 'production') {\n dotenvConfig({ path: path.join(cwd, '.env.production') })\n dotenvConfig({ path: path.join(cwd, '.env.production.local'), override: true })\n}\n\nasync function main() {\n const args = process.argv.slice(2)\n const autoDiscover = args.includes('--auto-discover') || args.includes('-a')\n const skipOptimize = args.includes('--no-optimize') || args.includes('--skip-optimize')\n // Opt-in: prune pages missing from the discovered set. Only honored on\n // pure-static sites with no sitemap route (a filesystem scan is otherwise\n // incomplete — see register-sitemap-cli-impl for why full-replace is unsafe).\n const fullReplace = args.includes('--full-replace')\n\n console.log('[Sonor] Registering sitemap entries...')\n\n try {\n const result = await registerLocalSitemap({\n autoDiscover,\n optimize_meta: !skipOptimize,\n ...(fullReplace ? { mode: 'full-replace' as const } : {}),\n })\n\n if (result.skipped) {\n // A sitemap route already owns build-time sync — nothing to report.\n process.exit(0)\n }\n\n if (result.success) {\n console.log(`[Sonor] ✓ Sitemap registered successfully`)\n console.log(`[Sonor] Created: ${result.created}`)\n console.log(`[Sonor] Updated: ${result.updated}`)\n if (result.removed !== undefined && result.removed > 0) {\n console.log(`[Sonor] Removed: ${result.removed}`)\n }\n if (result.meta_optimization?.triggered) {\n console.log(`[Sonor] ✓ Signal AI meta optimization triggered for ${result.meta_optimization.pages_queued} pages`)\n console.log(`[Sonor] (Running in background - check Portal SEO module for results)`)\n }\n process.exit(0)\n } else {\n console.error('[Sonor] ✗ Failed to register sitemap')\n process.exit(1)\n }\n } catch (error) {\n console.error('[Sonor] ✗ Error:', error)\n process.exit(1)\n }\n}\n\nmain()\n","/**\n * Brand Profile Extraction\n *\n * Extracts the visual design DNA from a Next.js project's source files:\n * - globals.css: CSS custom properties (colors, fonts, theme)\n * - tailwind.config.js/ts: extended colors, fontFamily\n * - design-system.ts: explicit color palettes (if present)\n *\n * The extracted profile is pushed to Sonor alongside sitemap registration,\n * giving Signal AI full brand awareness for image generation, blog context,\n * and portfolio design decisions.\n *\n * This is static file analysis (regex, not AST) — runs at build time in Node.\n */\n\nimport fs from 'fs'\nimport path from 'path'\n\nexport interface BrandProfile {\n colors: {\n primary?: string\n secondary?: string\n accent?: string\n background?: string\n surface?: string\n text?: string\n gradient?: string\n }\n typography: {\n heading?: string\n body?: string\n mono?: string\n }\n theme: 'dark' | 'light'\n style_keywords: string[]\n border_radius?: string\n captured_at: string\n}\n\n/**\n * Detect whether a hex color is \"dark\" (luminance < 0.5)\n */\nfunction isDarkColor(hex: string): boolean {\n const c = hex.replace('#', '')\n if (c.length < 6) return false\n const r = parseInt(c.substring(0, 2), 16) / 255\n const g = parseInt(c.substring(2, 4), 16) / 255\n const b = parseInt(c.substring(4, 6), 16) / 255\n // Relative luminance (ITU-R BT.709)\n const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b\n return luminance < 0.35\n}\n\n/**\n * Extract CSS custom properties from a CSS file's :root block\n */\nfunction extractCssVariables(css: string): Record<string, string> {\n const vars: Record<string, string> = {}\n // Match :root { ... } blocks (may be multiple)\n const rootBlocks = css.match(/:root\\s*\\{[^}]+\\}/g)\n if (!rootBlocks) return vars\n\n for (const block of rootBlocks) {\n const matches = block.matchAll(/--([a-zA-Z0-9_-]+)\\s*:\\s*([^;]+)/g)\n for (const m of matches) {\n const name = m[1].trim()\n const value = m[2].trim()\n // Skip var() references and rgb() values — we want hex/named colors\n if (!value.startsWith('var(')) {\n vars[name] = value\n }\n }\n }\n return vars\n}\n\n/**\n * Try to find the \"primary\" brand color from CSS variables\n */\nfunction findColor(vars: Record<string, string>, ...keys: string[]): string | undefined {\n for (const key of keys) {\n const val = vars[key]\n if (val && val.startsWith('#')) return val\n }\n return undefined\n}\n\n/**\n * Extract font family from CSS variable or Tailwind config\n */\nfunction extractFontFromCss(vars: Record<string, string>, ...keys: string[]): string | undefined {\n for (const key of keys) {\n const val = vars[key]\n if (val) {\n // Extract first font name: \"'Inter', system-ui\" -> \"Inter\"\n const match = val.match(/['\"]?([A-Za-z][A-Za-z0-9 _-]+)['\"]?/)\n return match?.[1]?.trim()\n }\n }\n return undefined\n}\n\n/**\n * Extract from Tailwind config — reads as text, uses regex (no require/import)\n */\nfunction extractFromTailwindConfig(configPath: string): {\n colors: Record<string, string>\n fonts: Record<string, string>\n} {\n const colors: Record<string, string> = {}\n const fonts: Record<string, string> = {}\n\n if (!fs.existsSync(configPath)) return { colors, fonts }\n\n const content = fs.readFileSync(configPath, 'utf-8')\n\n // Extract fontFamily entries: fontFamily: { sans: ['var(--font-satoshi)', ...] }\n const fontMatches = content.matchAll(/(?:fontFamily|font-family)\\s*:\\s*\\{([^}]+)\\}/g)\n for (const m of fontMatches) {\n const block = m[1]\n // Match: sans: ['Satoshi', ...] or sans: ['var(--font-satoshi)', ...]\n const entries = block.matchAll(/(\\w+)\\s*:\\s*\\[([^\\]]+)\\]/g)\n for (const e of entries) {\n const key = e[1] // sans, serif, mono\n const values = e[2]\n // Extract first real font name (not var())\n const varMatch = values.match(/var\\(--font-([a-z0-9-]+)\\)/)\n if (varMatch) {\n fonts[key] = varMatch[1].charAt(0).toUpperCase() + varMatch[1].slice(1) // capitalize\n } else {\n const nameMatch = values.match(/['\"]([A-Za-z][A-Za-z0-9 -]+)['\"]/)\n if (nameMatch) fonts[key] = nameMatch[1]\n }\n }\n }\n\n return { colors, fonts }\n}\n\n/**\n * Extract from design-system.ts if it exists\n */\nfunction extractFromDesignSystem(filePath: string): {\n primary?: string\n secondary?: string\n accent?: string\n gradient?: string\n} {\n if (!fs.existsSync(filePath)) return {}\n\n const content = fs.readFileSync(filePath, 'utf-8')\n\n // Look for default/fallback color definitions\n const result: Record<string, string> = {}\n\n // Match: primary: '#54b948'\n const colorMatches = content.matchAll(/(primary|secondary|accent)\\s*:\\s*['\"]([#a-fA-F0-9]+)['\"]/g)\n for (const m of colorMatches) {\n // Take the LAST match (usually the default/fallback)\n result[m[1]] = m[2]\n }\n\n // Match gradient: 'linear-gradient(...)'\n const gradientMatch = content.match(/gradient(?:Css)?\\s*:\\s*['\"]([^'\"]+)['\"]/)\n if (gradientMatch) {\n result.gradient = gradientMatch[1]\n }\n\n return result\n}\n\n/**\n * Infer style keywords from the extracted data\n */\nfunction inferStyleKeywords(\n theme: 'dark' | 'light',\n vars: Record<string, string>,\n tailwindContent?: string,\n): string[] {\n const keywords: string[] = []\n\n keywords.push(theme === 'dark' ? 'dark' : 'light')\n keywords.push('modern')\n\n // Check for specific patterns\n if (tailwindContent) {\n if (tailwindContent.includes('backdrop-blur') || tailwindContent.includes('glass')) keywords.push('glass')\n if (tailwindContent.includes('gradient')) keywords.push('gradient')\n if (tailwindContent.includes('rounded-full') || tailwindContent.includes('rounded-3xl')) keywords.push('rounded')\n if (tailwindContent.includes('animate-') || tailwindContent.includes('framer-motion')) keywords.push('animated')\n }\n\n // Check font styles\n const allVars = Object.values(vars).join(' ').toLowerCase()\n if (allVars.includes('mono') || allVars.includes('code') || allVars.includes('jetbrains')) keywords.push('tech')\n if (allVars.includes('serif') || allVars.includes('georgia') || allVars.includes('playfair')) keywords.push('editorial')\n\n return [...new Set(keywords)]\n}\n\n/**\n * Main extraction function — scans the project directory\n */\nexport function extractBrandProfile(projectDir?: string): BrandProfile | null {\n const cwd = projectDir || process.cwd()\n\n // Find globals.css\n const globalsLocations = [\n path.join(cwd, 'app', 'globals.css'),\n path.join(cwd, 'src', 'app', 'globals.css'),\n path.join(cwd, 'styles', 'globals.css'),\n ]\n\n let cssVars: Record<string, string> = {}\n let globalsCss = ''\n for (const loc of globalsLocations) {\n if (fs.existsSync(loc)) {\n globalsCss = fs.readFileSync(loc, 'utf-8')\n cssVars = extractCssVariables(globalsCss)\n break\n }\n }\n\n // Find tailwind config\n const tailwindLocations = [\n path.join(cwd, 'tailwind.config.js'),\n path.join(cwd, 'tailwind.config.ts'),\n path.join(cwd, 'tailwind.config.mjs'),\n ]\n\n let tailwindResult = { colors: {} as Record<string, string>, fonts: {} as Record<string, string> }\n let tailwindContent = ''\n for (const loc of tailwindLocations) {\n if (fs.existsSync(loc)) {\n tailwindContent = fs.readFileSync(loc, 'utf-8')\n tailwindResult = extractFromTailwindConfig(loc)\n break\n }\n }\n\n // Find design-system.ts\n const designSystemLocations = [\n path.join(cwd, 'design-system.ts'),\n path.join(cwd, 'src', 'design-system.ts'),\n path.join(cwd, 'lib', 'design-system.ts'),\n ]\n\n let designSystem: ReturnType<typeof extractFromDesignSystem> = {}\n for (const loc of designSystemLocations) {\n if (fs.existsSync(loc)) {\n designSystem = extractFromDesignSystem(loc)\n break\n }\n }\n\n // If we found nothing at all, skip\n if (Object.keys(cssVars).length === 0 && !tailwindContent && Object.keys(designSystem).length === 0) {\n return null\n }\n\n // === Build the profile ===\n\n // Colors — priority: CSS vars > design-system > tailwind\n const primary = findColor(cssVars,\n 'color-accent', 'sk-primary', 'color-primary', 'color-brand', 'brand-primary',\n ) || designSystem.primary\n\n const secondary = findColor(cssVars,\n 'color-accent-dark', 'sk-secondary', 'color-secondary',\n ) || designSystem.secondary\n\n const accent = findColor(cssVars,\n 'color-accent-light', 'sk-accent', 'color-accent-light',\n ) || designSystem.accent\n\n const background = findColor(cssVars,\n 'color-charcoal', 'sk-bg', 'color-bg', 'color-background',\n 'background', 'bg',\n )\n\n const surface = findColor(cssVars,\n 'color-charcoal-light', 'sk-surface', 'color-surface', 'sk-bg-elevated',\n )\n\n const textColor = findColor(cssVars,\n 'sk-text-primary', 'color-text', 'color-text-primary',\n )\n\n const gradient = designSystem.gradient || undefined\n\n // Typography — priority: tailwind fontFamily > CSS vars\n const headingFont = tailwindResult.fonts.sans || tailwindResult.fonts.heading ||\n extractFontFromCss(cssVars, 'font-heading', 'font-display', 'font-sans')\n const bodyFont = tailwindResult.fonts.sans || tailwindResult.fonts.body ||\n extractFontFromCss(cssVars, 'font-body', 'font-sans')\n const monoFont = tailwindResult.fonts.mono ||\n extractFontFromCss(cssVars, 'font-mono', 'font-code')\n\n // Theme detection — check if background is dark\n const theme: 'dark' | 'light' = (background && isDarkColor(background)) ? 'dark' :\n globalsCss.includes('.dark') || globalsCss.includes('dark:') ? 'dark' : 'light'\n\n // Style keywords\n const styleKeywords = inferStyleKeywords(theme, cssVars, tailwindContent + globalsCss)\n\n // Border radius — look for common patterns\n const radiusMatch = globalsCss.match(/border-radius\\s*:\\s*([^;]+)/) ||\n tailwindContent.match(/borderRadius\\s*:\\s*\\{[^}]*DEFAULT\\s*:\\s*['\"]([^'\"]+)['\"]/)\n const borderRadius = radiusMatch?.[1]?.trim()\n\n const profile: BrandProfile = {\n colors: {\n ...(primary && { primary }),\n ...(secondary && { secondary }),\n ...(accent && { accent }),\n ...(background && { background }),\n ...(surface && { surface }),\n ...(textColor && { text: textColor }),\n ...(gradient && { gradient }),\n },\n typography: {\n ...(headingFont && { heading: headingFont }),\n ...(bodyFont && { body: bodyFont }),\n ...(monoFont && { mono: monoFont }),\n },\n theme,\n style_keywords: styleKeywords,\n ...(borderRadius && { border_radius: borderRadius }),\n captured_at: new Date().toISOString(),\n }\n\n // Only return if we got meaningful data\n const hasColors = Object.keys(profile.colors).length > 0\n const hasTypography = Object.keys(profile.typography).length > 0\n\n if (!hasColors && !hasTypography) return null\n\n return profile\n}\n\n/**\n * Push brand profile to Sonor API\n */\nexport async function pushBrandProfile(profile: BrandProfile): Promise<boolean> {\n const apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io'\n const apiKey = process.env.SONOR_API_KEY || ''\n\n if (!apiKey) {\n console.warn('[Sonor] No API key — skipping brand profile push')\n return false\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/brand-profile`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify(profile),\n })\n\n if (!response.ok) {\n console.warn(`[Sonor] Brand profile push failed: ${response.status}`)\n return false\n }\n\n const result = await response.json()\n console.log(`[Sonor] Brand profile pushed: theme=${profile.theme}, ${Object.keys(profile.colors).length} colors`)\n return result.success\n } catch (err) {\n console.warn(`[Sonor] Brand profile push error: ${err}`)\n return false\n }\n}\n","/**\n * Standalone implementation for the sonor-register-sitemap CLI.\n * Does NOT import from server-api or routing, so it can run in Node without\n * pulling in server-only (which throws when required outside Next.js server context).\n *\n * Route discovery + page classification live in `../sitemap/discover` and\n * `../sitemap/shared` (shared with createSitemap, SitemapSync, and the routing\n * helper) — see those files for the sitemap-oscillation background.\n */\n\nimport path from 'path'\nimport { extractBrandProfile, pushBrandProfile } from '../brand/extract-brand-profile'\nimport { inferPageType } from '../sitemap/shared'\nimport {\n discoverNextJsRoutes,\n findAppDirForDiscovery,\n findSitemapRoute,\n} from '../sitemap/discover'\n\nfunction getApiConfig(): { apiUrl: string; apiKey: string } {\n const apiUrl =\n process.env.SONOR_API_URL ||\n 'https://api.sonor.io'\n const apiKey =\n process.env.SONOR_API_KEY ||\n ''\n return { apiUrl, apiKey }\n}\n\nasync function registerSitemapViaApi(\n entries: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: string\n description?: string\n pageType?: string\n }>,\n optimizeMeta: boolean,\n mode: 'additive' | 'full-replace',\n): Promise<{\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: { triggered: boolean; pages_queued: number } | null\n}> {\n const { apiUrl, apiKey } = getApiConfig()\n if (!apiKey) {\n console.warn(\n '[Sonor] No API key (SONOR_API_KEY)',\n )\n return { success: false, created: 0, updated: 0 }\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/register-sitemap`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify({ entries, optimize_meta: optimizeMeta, mode }),\n })\n\n if (!response.ok) {\n console.error(`[Sonor] Sitemap registration failed: ${response.status} ${response.statusText}`)\n return { success: false, created: 0, updated: 0 }\n }\n\n return await response.json()\n } catch (error) {\n console.error('[Sonor] Sitemap registration error:', error)\n return { success: false, created: 0, updated: 0 }\n }\n}\n\nexport type RegisterLocalSitemapOptions = {\n entries?: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n description?: string\n pageType?: string\n }>\n autoDiscover?: boolean\n optimize_meta?: boolean\n /**\n * Sync mode. Defaults to `'additive'` for auto-discovered route sets — a\n * filesystem scan is structurally incomplete (it can't enumerate dynamic\n * route params and ignores the app's sitemap exclude config), so it must\n * never drive a `'full-replace'` that would delete the pages it can't see.\n * Pure-static sites that want removed pages pruned can opt back in with\n * `'full-replace'`.\n */\n mode?: 'additive' | 'full-replace'\n}\n\nexport type RegisterLocalSitemapResult = {\n success: boolean\n created: number\n updated: number\n removed?: number\n /** True when the sync was intentionally skipped (a sitemap route owns it). */\n skipped?: boolean\n meta_optimization?: {\n triggered: boolean\n pages_queued: number\n } | null\n}\n\nexport async function registerLocalSitemap(\n options: RegisterLocalSitemapOptions\n): Promise<RegisterLocalSitemapResult> {\n let entries = options.entries || []\n const usingAutoDiscover = !!options.autoDiscover && entries.length === 0\n\n let result: RegisterLocalSitemapResult\n\n // SAFETY GUARD: never let a filesystem scan fight an authoritative sitemap.\n // If the app has a Next.js sitemap route (app/sitemap.{ts,js}, which\n // createSitemap syncs as a full-replace, and which site-kit's runtime\n // SitemapSync mirrors additively), an --auto-discover full-replace from an\n // incomplete fs scan would delete every dynamic-route page on every build and\n // the two syncs would oscillate — destroying managed metadata, Signal\n // optimizations, LLM schemas, and GSC history. Skip and let the route own it.\n const sitemapRoute = usingAutoDiscover ? findSitemapRoute() : null\n\n if (sitemapRoute) {\n console.warn(\n `[Sonor] Skipping --auto-discover: ${sitemapRoute} already handles build-time ` +\n `sitemap sync, and its /sitemap.xml is mirrored to Sonor at runtime. A ` +\n `filesystem scan can't see dynamic routes, so syncing it here would delete ` +\n `real pages and fight the route on every build. Nothing to do — this line ` +\n `is safe to leave in your postbuild.`,\n )\n result = { success: true, created: 0, updated: 0, skipped: true }\n } else {\n if (usingAutoDiscover) {\n const appDir = findAppDirForDiscovery()\n if (appDir) {\n entries = discoverNextJsRoutes(appDir)\n console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path.relative(process.cwd(), appDir)}`)\n }\n }\n\n if (entries.length === 0) {\n console.warn('[Sonor] No sitemap entries to register')\n result = { success: true, created: 0, updated: 0 }\n } else {\n // Auto-discovered sets are additive by default (incomplete → never delete).\n // Explicit entry lists keep the caller-provided mode, defaulting to\n // full-replace only when the caller asserts a complete set via `mode`.\n const mode: 'additive' | 'full-replace' =\n options.mode ?? (usingAutoDiscover ? 'additive' : 'full-replace')\n\n console.log(`[Sonor] Registering ${entries.length} sitemap entries (mode: ${mode})...`)\n const payload = entries.map((e) => ({\n path: e.path,\n title: e.title,\n priority: e.priority,\n changefreq: e.changefreq,\n ...(e.description ? { description: e.description } : {}),\n pageType: e.pageType ?? inferPageType(e.path),\n }))\n result = await registerSitemapViaApi(\n payload,\n options.optimize_meta !== false,\n mode,\n )\n\n if (result.success) {\n console.log(`[Sonor] Sitemap registered: ${result.created} new, ${result.updated} updated`)\n }\n }\n }\n\n // Push brand profile whenever the CLI did real work — a sync ran, or we\n // skipped because a sitemap route owns the sync — but not on the degenerate\n // \"nothing to register\" path (preserving prior behavior). It's an independent\n // side effect (a separate endpoint), so it must survive the skip path: keeping\n // the postbuild line shouldn't silently stop refreshing brand awareness.\n // Fire-and-forget, non-blocking.\n const didMeaningfulWork = result.skipped === true || entries.length > 0\n if (result.success && didMeaningfulWork) {\n try {\n const brandProfile = extractBrandProfile()\n if (brandProfile) {\n await pushBrandProfile(brandProfile)\n }\n } catch (brandErr) {\n // Non-fatal — brand profile is supplementary\n console.debug(`[Sonor] Brand profile extraction skipped: ${brandErr}`)\n }\n }\n\n return result\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/seo/register-sitemap-cli.ts","../../src/brand/extract-brand-profile.ts","../../src/seo/register-sitemap-cli-impl.ts"],"names":["cwd","path","dotenvConfig"],"mappings":"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","file":"register-sitemap-cli.mjs","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI script to register sitemap entries at build time\n *\n * Usage:\n * npx sonor-register-sitemap\n * npx sonor-register-sitemap --auto-discover\n * npx sonor-register-sitemap --no-optimize # Skip Signal AI meta optimization\n * npx sonor-register-sitemap --auto-discover --full-replace # Prune removed pages (pure-static sites only)\n *\n * Or in package.json:\n * {\n * \"scripts\": {\n * \"postbuild\": \"sonor-register-sitemap --auto-discover\"\n * }\n * }\n *\n * SAFETY: --auto-discover self-skips when the app has an app/sitemap.{ts,js}\n * route (createSitemap owns authoritative build-time sync, and site-kit's\n * runtime SitemapSync mirrors it) — so this line is safe to leave in any\n * postbuild. When it does run (no sitemap route), it syncs ADDITIVELY: a\n * filesystem scan can't see dynamic routes, so it must never delete. Pass\n * --full-replace to prune removed pages on a pure-static site that wants it.\n */\n\nimport path from 'path'\nimport { config as dotenvConfig } from 'dotenv'\nimport { registerLocalSitemap } from './register-sitemap-cli-impl'\n\n// npm postbuild runs outside Next.js — env from .env* is not loaded automatically\nconst cwd = process.cwd()\ndotenvConfig({ path: path.join(cwd, '.env') })\ndotenvConfig({ path: path.join(cwd, '.env.local'), override: true })\nif (process.env.NODE_ENV === 'production') {\n dotenvConfig({ path: path.join(cwd, '.env.production') })\n dotenvConfig({ path: path.join(cwd, '.env.production.local'), override: true })\n}\n\nasync function main() {\n const args = process.argv.slice(2)\n const autoDiscover = args.includes('--auto-discover') || args.includes('-a')\n const skipOptimize = args.includes('--no-optimize') || args.includes('--skip-optimize')\n // Opt-in: prune pages missing from the discovered set. Only honored on\n // pure-static sites with no sitemap route (a filesystem scan is otherwise\n // incomplete — see register-sitemap-cli-impl for why full-replace is unsafe).\n const fullReplace = args.includes('--full-replace')\n\n console.log('[Sonor] Registering sitemap entries...')\n\n try {\n const result = await registerLocalSitemap({\n autoDiscover,\n optimize_meta: !skipOptimize,\n ...(fullReplace ? { mode: 'full-replace' as const } : {}),\n })\n\n if (result.skipped) {\n // A sitemap route already owns build-time sync — nothing to report.\n process.exit(0)\n }\n\n if (result.success) {\n console.log(`[Sonor] ✓ Sitemap registered successfully`)\n console.log(`[Sonor] Created: ${result.created}`)\n console.log(`[Sonor] Updated: ${result.updated}`)\n if (result.removed !== undefined && result.removed > 0) {\n console.log(`[Sonor] Removed: ${result.removed}`)\n }\n if (result.meta_optimization?.triggered) {\n console.log(`[Sonor] ✓ Signal AI meta optimization triggered for ${result.meta_optimization.pages_queued} pages`)\n console.log(`[Sonor] (Running in background - check Portal SEO module for results)`)\n }\n process.exit(0)\n } else {\n console.error('[Sonor] ✗ Failed to register sitemap')\n process.exit(1)\n }\n } catch (error) {\n console.error('[Sonor] ✗ Error:', error)\n process.exit(1)\n }\n}\n\nmain()\n","/**\n * Brand Profile Extraction\n *\n * Extracts the visual design DNA from a Next.js project's source files:\n * - globals.css: CSS custom properties (colors, fonts, theme)\n * - tailwind.config.js/ts: extended colors, fontFamily\n * - design-system.ts: explicit color palettes (if present)\n *\n * The extracted profile is pushed to Sonor alongside sitemap registration,\n * giving Signal AI full brand awareness for image generation, blog context,\n * and portfolio design decisions.\n *\n * This is static file analysis (regex, not AST) — runs at build time in Node.\n */\n\nimport fs from 'fs'\nimport path from 'path'\n\nexport interface BrandProfile {\n colors: {\n primary?: string\n secondary?: string\n accent?: string\n background?: string\n surface?: string\n text?: string\n gradient?: string\n }\n typography: {\n heading?: string\n body?: string\n mono?: string\n }\n theme: 'dark' | 'light'\n style_keywords: string[]\n border_radius?: string\n captured_at: string\n}\n\n/**\n * Detect whether a hex color is \"dark\" (luminance < 0.5)\n */\nfunction isDarkColor(hex: string): boolean {\n const c = hex.replace('#', '')\n if (c.length < 6) return false\n const r = parseInt(c.substring(0, 2), 16) / 255\n const g = parseInt(c.substring(2, 4), 16) / 255\n const b = parseInt(c.substring(4, 6), 16) / 255\n // Relative luminance (ITU-R BT.709)\n const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b\n return luminance < 0.35\n}\n\n/**\n * Extract CSS custom properties from a CSS file's :root block\n */\nfunction extractCssVariables(css: string): Record<string, string> {\n const vars: Record<string, string> = {}\n // Match :root { ... } blocks (may be multiple)\n const rootBlocks = css.match(/:root\\s*\\{[^}]+\\}/g)\n if (!rootBlocks) return vars\n\n for (const block of rootBlocks) {\n const matches = block.matchAll(/--([a-zA-Z0-9_-]+)\\s*:\\s*([^;]+)/g)\n for (const m of matches) {\n const name = m[1].trim()\n const value = m[2].trim()\n // Skip var() references and rgb() values — we want hex/named colors\n if (!value.startsWith('var(')) {\n vars[name] = value\n }\n }\n }\n return vars\n}\n\n/**\n * Try to find the \"primary\" brand color from CSS variables\n */\nfunction findColor(vars: Record<string, string>, ...keys: string[]): string | undefined {\n for (const key of keys) {\n const val = vars[key]\n if (val && val.startsWith('#')) return val\n }\n return undefined\n}\n\n/**\n * Extract font family from CSS variable or Tailwind config\n */\nfunction extractFontFromCss(vars: Record<string, string>, ...keys: string[]): string | undefined {\n for (const key of keys) {\n const val = vars[key]\n if (val) {\n // Extract first font name: \"'Inter', system-ui\" -> \"Inter\"\n const match = val.match(/['\"]?([A-Za-z][A-Za-z0-9 _-]+)['\"]?/)\n return match?.[1]?.trim()\n }\n }\n return undefined\n}\n\n/**\n * Extract from Tailwind config — reads as text, uses regex (no require/import)\n */\nfunction extractFromTailwindConfig(configPath: string): {\n colors: Record<string, string>\n fonts: Record<string, string>\n} {\n const colors: Record<string, string> = {}\n const fonts: Record<string, string> = {}\n\n if (!fs.existsSync(configPath)) return { colors, fonts }\n\n const content = fs.readFileSync(configPath, 'utf-8')\n\n // Extract fontFamily entries: fontFamily: { sans: ['var(--font-satoshi)', ...] }\n const fontMatches = content.matchAll(/(?:fontFamily|font-family)\\s*:\\s*\\{([^}]+)\\}/g)\n for (const m of fontMatches) {\n const block = m[1]\n // Match: sans: ['Satoshi', ...] or sans: ['var(--font-satoshi)', ...]\n const entries = block.matchAll(/(\\w+)\\s*:\\s*\\[([^\\]]+)\\]/g)\n for (const e of entries) {\n const key = e[1] // sans, serif, mono\n const values = e[2]\n // Extract first real font name (not var())\n const varMatch = values.match(/var\\(--font-([a-z0-9-]+)\\)/)\n if (varMatch) {\n fonts[key] = varMatch[1].charAt(0).toUpperCase() + varMatch[1].slice(1) // capitalize\n } else {\n const nameMatch = values.match(/['\"]([A-Za-z][A-Za-z0-9 -]+)['\"]/)\n if (nameMatch) fonts[key] = nameMatch[1]\n }\n }\n }\n\n return { colors, fonts }\n}\n\n/**\n * Extract from design-system.ts if it exists\n */\nfunction extractFromDesignSystem(filePath: string): {\n primary?: string\n secondary?: string\n accent?: string\n gradient?: string\n} {\n if (!fs.existsSync(filePath)) return {}\n\n const content = fs.readFileSync(filePath, 'utf-8')\n\n // Look for default/fallback color definitions\n const result: Record<string, string> = {}\n\n // Match: primary: '#54b948'\n const colorMatches = content.matchAll(/(primary|secondary|accent)\\s*:\\s*['\"]([#a-fA-F0-9]+)['\"]/g)\n for (const m of colorMatches) {\n // Take the LAST match (usually the default/fallback)\n result[m[1]] = m[2]\n }\n\n // Match gradient: 'linear-gradient(...)'\n const gradientMatch = content.match(/gradient(?:Css)?\\s*:\\s*['\"]([^'\"]+)['\"]/)\n if (gradientMatch) {\n result.gradient = gradientMatch[1]\n }\n\n return result\n}\n\n/**\n * Infer style keywords from the extracted data\n */\nfunction inferStyleKeywords(\n theme: 'dark' | 'light',\n vars: Record<string, string>,\n tailwindContent?: string,\n): string[] {\n const keywords: string[] = []\n\n keywords.push(theme === 'dark' ? 'dark' : 'light')\n keywords.push('modern')\n\n // Check for specific patterns\n if (tailwindContent) {\n if (tailwindContent.includes('backdrop-blur') || tailwindContent.includes('glass')) keywords.push('glass')\n if (tailwindContent.includes('gradient')) keywords.push('gradient')\n if (tailwindContent.includes('rounded-full') || tailwindContent.includes('rounded-3xl')) keywords.push('rounded')\n if (tailwindContent.includes('animate-') || tailwindContent.includes('framer-motion')) keywords.push('animated')\n }\n\n // Check font styles\n const allVars = Object.values(vars).join(' ').toLowerCase()\n if (allVars.includes('mono') || allVars.includes('code') || allVars.includes('jetbrains')) keywords.push('tech')\n if (allVars.includes('serif') || allVars.includes('georgia') || allVars.includes('playfair')) keywords.push('editorial')\n\n return [...new Set(keywords)]\n}\n\n/**\n * Main extraction function — scans the project directory\n */\nexport function extractBrandProfile(projectDir?: string): BrandProfile | null {\n const cwd = projectDir || process.cwd()\n\n // Find globals.css\n const globalsLocations = [\n path.join(cwd, 'app', 'globals.css'),\n path.join(cwd, 'src', 'app', 'globals.css'),\n path.join(cwd, 'styles', 'globals.css'),\n ]\n\n let cssVars: Record<string, string> = {}\n let globalsCss = ''\n for (const loc of globalsLocations) {\n if (fs.existsSync(loc)) {\n globalsCss = fs.readFileSync(loc, 'utf-8')\n cssVars = extractCssVariables(globalsCss)\n break\n }\n }\n\n // Find tailwind config\n const tailwindLocations = [\n path.join(cwd, 'tailwind.config.js'),\n path.join(cwd, 'tailwind.config.ts'),\n path.join(cwd, 'tailwind.config.mjs'),\n ]\n\n let tailwindResult = { colors: {} as Record<string, string>, fonts: {} as Record<string, string> }\n let tailwindContent = ''\n for (const loc of tailwindLocations) {\n if (fs.existsSync(loc)) {\n tailwindContent = fs.readFileSync(loc, 'utf-8')\n tailwindResult = extractFromTailwindConfig(loc)\n break\n }\n }\n\n // Find design-system.ts\n const designSystemLocations = [\n path.join(cwd, 'design-system.ts'),\n path.join(cwd, 'src', 'design-system.ts'),\n path.join(cwd, 'lib', 'design-system.ts'),\n ]\n\n let designSystem: ReturnType<typeof extractFromDesignSystem> = {}\n for (const loc of designSystemLocations) {\n if (fs.existsSync(loc)) {\n designSystem = extractFromDesignSystem(loc)\n break\n }\n }\n\n // If we found nothing at all, skip\n if (Object.keys(cssVars).length === 0 && !tailwindContent && Object.keys(designSystem).length === 0) {\n return null\n }\n\n // === Build the profile ===\n\n // Colors — priority: CSS vars > design-system > tailwind\n const primary = findColor(cssVars,\n 'color-accent', 'sk-primary', 'color-primary', 'color-brand', 'brand-primary',\n ) || designSystem.primary\n\n const secondary = findColor(cssVars,\n 'color-accent-dark', 'sk-secondary', 'color-secondary',\n ) || designSystem.secondary\n\n const accent = findColor(cssVars,\n 'color-accent-light', 'sk-accent', 'color-accent-light',\n ) || designSystem.accent\n\n const background = findColor(cssVars,\n 'color-charcoal', 'sk-bg', 'color-bg', 'color-background',\n 'background', 'bg',\n )\n\n const surface = findColor(cssVars,\n 'color-charcoal-light', 'sk-surface', 'color-surface', 'sk-bg-elevated',\n )\n\n const textColor = findColor(cssVars,\n 'sk-text-primary', 'color-text', 'color-text-primary',\n )\n\n const gradient = designSystem.gradient || undefined\n\n // Typography — priority: tailwind fontFamily > CSS vars\n const headingFont = tailwindResult.fonts.sans || tailwindResult.fonts.heading ||\n extractFontFromCss(cssVars, 'font-heading', 'font-display', 'font-sans')\n const bodyFont = tailwindResult.fonts.sans || tailwindResult.fonts.body ||\n extractFontFromCss(cssVars, 'font-body', 'font-sans')\n const monoFont = tailwindResult.fonts.mono ||\n extractFontFromCss(cssVars, 'font-mono', 'font-code')\n\n // Theme detection — check if background is dark\n const theme: 'dark' | 'light' = (background && isDarkColor(background)) ? 'dark' :\n globalsCss.includes('.dark') || globalsCss.includes('dark:') ? 'dark' : 'light'\n\n // Style keywords\n const styleKeywords = inferStyleKeywords(theme, cssVars, tailwindContent + globalsCss)\n\n // Border radius — look for common patterns\n const radiusMatch = globalsCss.match(/border-radius\\s*:\\s*([^;]+)/) ||\n tailwindContent.match(/borderRadius\\s*:\\s*\\{[^}]*DEFAULT\\s*:\\s*['\"]([^'\"]+)['\"]/)\n const borderRadius = radiusMatch?.[1]?.trim()\n\n const profile: BrandProfile = {\n colors: {\n ...(primary && { primary }),\n ...(secondary && { secondary }),\n ...(accent && { accent }),\n ...(background && { background }),\n ...(surface && { surface }),\n ...(textColor && { text: textColor }),\n ...(gradient && { gradient }),\n },\n typography: {\n ...(headingFont && { heading: headingFont }),\n ...(bodyFont && { body: bodyFont }),\n ...(monoFont && { mono: monoFont }),\n },\n theme,\n style_keywords: styleKeywords,\n ...(borderRadius && { border_radius: borderRadius }),\n captured_at: new Date().toISOString(),\n }\n\n // Only return if we got meaningful data\n const hasColors = Object.keys(profile.colors).length > 0\n const hasTypography = Object.keys(profile.typography).length > 0\n\n if (!hasColors && !hasTypography) return null\n\n return profile\n}\n\n/**\n * Push brand profile to Sonor API\n */\nexport async function pushBrandProfile(profile: BrandProfile): Promise<boolean> {\n const apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io'\n const apiKey = process.env.SONOR_API_KEY || ''\n\n if (!apiKey) {\n console.warn('[Sonor] No API key — skipping brand profile push')\n return false\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/brand-profile`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify(profile),\n })\n\n if (!response.ok) {\n console.warn(`[Sonor] Brand profile push failed: ${response.status}`)\n return false\n }\n\n const result = await response.json()\n console.log(`[Sonor] Brand profile pushed: theme=${profile.theme}, ${Object.keys(profile.colors).length} colors`)\n return result.success\n } catch (err) {\n console.warn(`[Sonor] Brand profile push error: ${err}`)\n return false\n }\n}\n","/**\n * Standalone implementation for the sonor-register-sitemap CLI.\n * Does NOT import from server-api or routing, so it can run in Node without\n * pulling in server-only (which throws when required outside Next.js server context).\n *\n * Route discovery + page classification live in `../sitemap/discover` and\n * `../sitemap/shared` (shared with createSitemap, SitemapSync, and the routing\n * helper) — see those files for the sitemap-oscillation background.\n */\n\nimport path from 'path'\nimport { extractBrandProfile, pushBrandProfile } from '../brand/extract-brand-profile'\nimport { inferPageType } from '../sitemap/shared'\nimport {\n discoverNextJsRoutes,\n findAppDirForDiscovery,\n findSitemapRoute,\n} from '../sitemap/discover'\n\nfunction getApiConfig(): { apiUrl: string; apiKey: string } {\n const apiUrl =\n process.env.SONOR_API_URL ||\n 'https://api.sonor.io'\n const apiKey =\n process.env.SONOR_API_KEY ||\n ''\n return { apiUrl, apiKey }\n}\n\nasync function registerSitemapViaApi(\n entries: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: string\n description?: string\n pageType?: string\n }>,\n optimizeMeta: boolean,\n mode: 'additive' | 'full-replace',\n): Promise<{\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: { triggered: boolean; pages_queued: number } | null\n}> {\n const { apiUrl, apiKey } = getApiConfig()\n if (!apiKey) {\n console.warn(\n '[Sonor] No API key (SONOR_API_KEY)',\n )\n return { success: false, created: 0, updated: 0 }\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/register-sitemap`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify({ entries, optimize_meta: optimizeMeta, mode }),\n })\n\n if (!response.ok) {\n console.error(`[Sonor] Sitemap registration failed: ${response.status} ${response.statusText}`)\n return { success: false, created: 0, updated: 0 }\n }\n\n return await response.json()\n } catch (error) {\n console.error('[Sonor] Sitemap registration error:', error)\n return { success: false, created: 0, updated: 0 }\n }\n}\n\nexport type RegisterLocalSitemapOptions = {\n entries?: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n description?: string\n pageType?: string\n }>\n autoDiscover?: boolean\n optimize_meta?: boolean\n /**\n * Sync mode. Defaults to `'additive'` for auto-discovered route sets — a\n * filesystem scan is structurally incomplete (it can't enumerate dynamic\n * route params and ignores the app's sitemap exclude config), so it must\n * never drive a `'full-replace'` that would delete the pages it can't see.\n * Pure-static sites that want removed pages pruned can opt back in with\n * `'full-replace'`.\n */\n mode?: 'additive' | 'full-replace'\n}\n\nexport type RegisterLocalSitemapResult = {\n success: boolean\n created: number\n updated: number\n removed?: number\n /** True when the sync was intentionally skipped (a sitemap route owns it). */\n skipped?: boolean\n meta_optimization?: {\n triggered: boolean\n pages_queued: number\n } | null\n}\n\nexport async function registerLocalSitemap(\n options: RegisterLocalSitemapOptions\n): Promise<RegisterLocalSitemapResult> {\n let entries = options.entries || []\n const usingAutoDiscover = !!options.autoDiscover && entries.length === 0\n\n let result: RegisterLocalSitemapResult\n\n // SAFETY GUARD: never let a filesystem scan fight an authoritative sitemap.\n // If the app has a Next.js sitemap route (app/sitemap.{ts,js}, which\n // createSitemap syncs as a full-replace, and which site-kit's runtime\n // SitemapSync mirrors additively), an --auto-discover full-replace from an\n // incomplete fs scan would delete every dynamic-route page on every build and\n // the two syncs would oscillate — destroying managed metadata, Signal\n // optimizations, LLM schemas, and GSC history. Skip and let the route own it.\n const sitemapRoute = usingAutoDiscover ? findSitemapRoute() : null\n\n if (sitemapRoute) {\n console.warn(\n `[Sonor] Skipping --auto-discover: ${sitemapRoute} already handles build-time ` +\n `sitemap sync, and its /sitemap.xml is mirrored to Sonor at runtime. A ` +\n `filesystem scan can't see dynamic routes, so syncing it here would delete ` +\n `real pages and fight the route on every build. Nothing to do — this line ` +\n `is safe to leave in your postbuild.`,\n )\n result = { success: true, created: 0, updated: 0, skipped: true }\n } else {\n if (usingAutoDiscover) {\n const appDir = findAppDirForDiscovery()\n if (appDir) {\n entries = discoverNextJsRoutes(appDir)\n console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path.relative(process.cwd(), appDir)}`)\n }\n }\n\n if (entries.length === 0) {\n console.warn('[Sonor] No sitemap entries to register')\n result = { success: true, created: 0, updated: 0 }\n } else {\n // Auto-discovered sets are additive by default (incomplete → never delete).\n // Explicit entry lists keep the caller-provided mode, defaulting to\n // full-replace only when the caller asserts a complete set via `mode`.\n const mode: 'additive' | 'full-replace' =\n options.mode ?? (usingAutoDiscover ? 'additive' : 'full-replace')\n\n console.log(`[Sonor] Registering ${entries.length} sitemap entries (mode: ${mode})...`)\n const payload = entries.map((e) => ({\n path: e.path,\n title: e.title,\n priority: e.priority,\n changefreq: e.changefreq,\n ...(e.description ? { description: e.description } : {}),\n pageType: e.pageType ?? inferPageType(e.path),\n }))\n result = await registerSitemapViaApi(\n payload,\n options.optimize_meta !== false,\n mode,\n )\n\n if (result.success) {\n console.log(`[Sonor] Sitemap registered: ${result.created} new, ${result.updated} updated`)\n }\n }\n }\n\n // Push brand profile whenever the CLI did real work — a sync ran, or we\n // skipped because a sitemap route owns the sync — but not on the degenerate\n // \"nothing to register\" path (preserving prior behavior). It's an independent\n // side effect (a separate endpoint), so it must survive the skip path: keeping\n // the postbuild line shouldn't silently stop refreshing brand awareness.\n // Fire-and-forget, non-blocking.\n const didMeaningfulWork = result.skipped === true || entries.length > 0\n if (result.success && didMeaningfulWork) {\n try {\n const brandProfile = extractBrandProfile()\n if (brandProfile) {\n await pushBrandProfile(brandProfile)\n }\n } catch (brandErr) {\n // Non-fatal — brand profile is supplementary\n console.debug(`[Sonor] Brand profile extraction skipped: ${brandErr}`)\n }\n }\n\n return result\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../../src/seo-pages/contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mint-site-token.test.d.ts","sourceRoot":"","sources":["../../src/server/mint-site-token.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-fetch.test.d.ts","sourceRoot":"","sources":["../../src/server/server-fetch.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-entry-boundary.test.d.ts","sourceRoot":"","sources":["../../src/shared/client-entry-boundary.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"next-files.test.d.ts","sourceRoot":"","sources":["../../src/shared/next-files.test.ts"],"names":[],"mappings":""}
|