@farm.js/core 0.1.47 → 0.1.48
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/dist/after.cjs +3 -3
- package/dist/after.mjs +2 -2
- package/dist/agent-mcp-CXN3g0eX.d.mts +115 -0
- package/dist/agent-mcp-DAjB8Eyu.d.ts +115 -0
- package/dist/agent-mcp-handler-RT3COCEL.cjs +18 -0
- package/dist/agent-mcp-handler-WWCC4GLG.mjs +18 -0
- package/dist/agent-runtime.cjs +33 -61
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/agent-runtime.mjs +32 -60
- package/dist/api/client.cjs +14 -14
- package/dist/api/client.mjs +13 -13
- package/dist/api/route-manager.cjs +41 -41
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/route-manager.mjs +40 -40
- package/dist/api/runtime.cjs +23 -23
- package/dist/api/runtime.d.mts +2 -2
- package/dist/api/runtime.d.ts +2 -2
- package/dist/api/runtime.mjs +22 -22
- package/dist/api.cjs +52 -52
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.mjs +51 -51
- package/dist/app-DytgRPjJ.d.mts +562 -0
- package/dist/app-VK9sHDn5.d.ts +562 -0
- package/dist/app-manifest-BUu7YGAx.d.ts +120 -0
- package/dist/app-manifest-DPgW5ke5.d.mts +120 -0
- package/dist/app-markdown.cjs +14 -15
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/app-markdown.mjs +13 -14
- package/dist/cache.cjs +8 -8
- package/dist/cache.mjs +7 -7
- package/dist/chunk-22W4FNTG.mjs +538 -0
- package/dist/chunk-23LVFSID.mjs +182 -0
- package/dist/chunk-2DA7CLY7.mjs +560 -0
- package/dist/chunk-2DLGV2ZG.mjs +71 -0
- package/dist/chunk-2H3FJYY6.mjs +78 -0
- package/dist/chunk-2HW5LWAH.cjs +19 -0
- package/dist/chunk-2KMIJDY6.cjs +20 -0
- package/dist/chunk-2NGZFOKG.mjs +190 -0
- package/dist/chunk-2NHOYYUT.mjs +2250 -0
- package/dist/chunk-2SVJGOAX.mjs +206 -0
- package/dist/chunk-2WZTGPK6.mjs +65 -0
- package/dist/chunk-2XGBJSDV.cjs +408 -0
- package/dist/chunk-3BIASUGR.cjs +59 -0
- package/dist/chunk-3EEET2Q5.cjs +1044 -0
- package/dist/chunk-3EIPOTZV.cjs +272 -0
- package/dist/chunk-3HBFI373.cjs +227 -0
- package/dist/chunk-45EUIICW.mjs +15 -0
- package/dist/chunk-46P5KNTE.mjs +8 -0
- package/dist/chunk-47JV57DA.cjs +69 -0
- package/dist/chunk-4DCWVSL2.cjs +15 -0
- package/dist/chunk-4HBKBHVP.mjs +36 -0
- package/dist/chunk-4IICUBQX.cjs +657 -0
- package/dist/chunk-4MU4QCX4.mjs +158 -0
- package/dist/chunk-4S7M63WX.cjs +91 -0
- package/dist/chunk-4ZJ5C7UJ.cjs +75 -0
- package/dist/chunk-52Y3C3HG.mjs +421 -0
- package/dist/chunk-53EHWHT2.cjs +166 -0
- package/dist/chunk-5566GNEG.cjs +410 -0
- package/dist/chunk-5C7XMKQ4.cjs +410 -0
- package/dist/chunk-5DX3O6TT.cjs +266 -0
- package/dist/chunk-5J45H65F.mjs +48 -0
- package/dist/chunk-5OJVKXFV.cjs +2072 -0
- package/dist/chunk-5PKDHKQP.cjs +81 -0
- package/dist/chunk-5PZJ63PK.mjs +17 -0
- package/dist/chunk-5Y2P454O.cjs +421 -0
- package/dist/chunk-5Y4GYKKH.mjs +13 -0
- package/dist/chunk-5YPBFMBN.cjs +19 -0
- package/dist/chunk-6BLAY2VQ.mjs +45 -0
- package/dist/chunk-6CTFVBAT.cjs +29 -0
- package/dist/chunk-6FXBJPF5.cjs +35 -0
- package/dist/chunk-6HRAK7I5.mjs +215 -0
- package/dist/chunk-6IOZPJ3I.cjs +549 -0
- package/dist/chunk-6JHZPB52.cjs +538 -0
- package/dist/chunk-6LH33DLL.cjs +34 -0
- package/dist/chunk-6M3HXUBQ.mjs +135 -0
- package/dist/chunk-6ONBZGVH.cjs +124 -0
- package/dist/chunk-6XFGJBYX.cjs +78 -0
- package/dist/chunk-6XQSPIN6.cjs +155 -0
- package/dist/chunk-6YFC3ZFX.mjs +449 -0
- package/dist/chunk-6ZFRWRHO.mjs +54 -0
- package/dist/chunk-72D2NX77.mjs +293 -0
- package/dist/chunk-72KABRWN.mjs +2072 -0
- package/dist/chunk-72KCTHLV.cjs +723 -0
- package/dist/chunk-73XBJRZW.cjs +462 -0
- package/dist/chunk-75XSZIRE.mjs +180 -0
- package/dist/chunk-7EPYN7GW.cjs +30 -0
- package/dist/chunk-7H4SVNC4.cjs +700 -0
- package/dist/chunk-7JUIK547.cjs +62 -0
- package/dist/chunk-7KJJ4SBS.cjs +13 -0
- package/dist/chunk-7PTISZSQ.cjs +176 -0
- package/dist/chunk-7S7AAK2D.mjs +82 -0
- package/dist/chunk-A25FXJ7D.cjs +38 -0
- package/dist/chunk-A4PWGL46.mjs +141 -0
- package/dist/chunk-A7DK663W.cjs +577 -0
- package/dist/chunk-ALD2WMLA.mjs +387 -0
- package/dist/chunk-AOKXITZ6.cjs +16 -0
- package/dist/chunk-ATHPRVP2.mjs +651 -0
- package/dist/chunk-ATYTLVSI.cjs +45 -0
- package/dist/chunk-AXRNEVCS.cjs +150 -0
- package/dist/chunk-AY2YD5ZX.mjs +34 -0
- package/dist/chunk-AYP2YFVN.mjs +168 -0
- package/dist/chunk-AZQXXXDX.mjs +80 -0
- package/dist/chunk-B5BBTPJQ.cjs +44 -0
- package/dist/chunk-BBPDJGCU.cjs +157 -0
- package/dist/chunk-BEXYFR2R.cjs +527 -0
- package/dist/chunk-BLD5GVCG.mjs +152 -0
- package/dist/chunk-BMQAPZXD.mjs +31 -0
- package/dist/chunk-BNH53KOT.cjs +69 -0
- package/dist/chunk-BNMHXVLL.mjs +239 -0
- package/dist/chunk-BOVGCUDZ.cjs +35 -0
- package/dist/chunk-BPAXGCKX.mjs +166 -0
- package/dist/chunk-BPNOYILC.cjs +450 -0
- package/dist/chunk-BR5FSKZ5.cjs +1457 -0
- package/dist/chunk-BRWIVOV4.cjs +48 -0
- package/dist/chunk-BTZ5O6VM.cjs +14 -0
- package/dist/chunk-BUC3FDYC.cjs +158 -0
- package/dist/chunk-C2R5RVLA.cjs +800 -0
- package/dist/chunk-C5JXCUKR.mjs +905 -0
- package/dist/chunk-C64XOPBZ.mjs +380 -0
- package/dist/chunk-C6U66WWF.mjs +410 -0
- package/dist/chunk-C7425KDG.cjs +406 -0
- package/dist/chunk-C7LCTVJ2.cjs +30 -0
- package/dist/chunk-CA7DNRHO.cjs +164 -0
- package/dist/chunk-CBJKDB6F.mjs +80 -0
- package/dist/chunk-CDTIXBKN.mjs +40 -0
- package/dist/chunk-CL2ONP73.cjs +180 -0
- package/dist/chunk-CQL5ZGFU.cjs +50 -0
- package/dist/chunk-CSLUBKGG.mjs +44 -0
- package/dist/chunk-CU5SYTJG.mjs +23 -0
- package/dist/chunk-CV6MFQ4Y.mjs +259 -0
- package/dist/chunk-D22BUQKW.cjs +82 -0
- package/dist/chunk-D2LCAV6L.mjs +79 -0
- package/dist/chunk-D4XGKF67.cjs +127 -0
- package/dist/chunk-D7Y63SOY.mjs +15 -0
- package/dist/chunk-DM3TFCC2.cjs +697 -0
- package/dist/chunk-DMAP4RND.cjs +998 -0
- package/dist/chunk-DQJ2CIH7.cjs +87 -0
- package/dist/chunk-DRFADSKY.mjs +697 -0
- package/dist/chunk-DU4VHHPJ.mjs +157 -0
- package/dist/chunk-DUIP64BF.cjs +16 -0
- package/dist/chunk-DV52ZS53.cjs +40 -0
- package/dist/chunk-DXUXQP2T.cjs +142 -0
- package/dist/chunk-E552H232.cjs +154 -0
- package/dist/chunk-E7QOEV5Z.cjs +449 -0
- package/dist/chunk-EA5PMJDU.mjs +527 -0
- package/dist/chunk-EDPENAVO.mjs +266 -0
- package/dist/chunk-EFLNOZGH.mjs +30 -0
- package/dist/chunk-EGHPFXPZ.cjs +590 -0
- package/dist/chunk-EJCVG25Z.mjs +49 -0
- package/dist/chunk-EMDGXYUD.mjs +75 -0
- package/dist/chunk-EOXPRC2C.cjs +48 -0
- package/dist/chunk-EQMTJBB7.cjs +161 -0
- package/dist/chunk-ERMUL73L.cjs +39 -0
- package/dist/chunk-ES2LD2YD.mjs +203 -0
- package/dist/chunk-ETF5C6HR.cjs +135 -0
- package/dist/chunk-EV4SBMPX.mjs +208 -0
- package/dist/chunk-EVCQX243.cjs +1923 -0
- package/dist/chunk-EVIWKPJV.cjs +560 -0
- package/dist/chunk-EVMXPJCB.mjs +133 -0
- package/dist/chunk-EXHEPWFJ.cjs +387 -0
- package/dist/chunk-EZTKXD6P.cjs +182 -0
- package/dist/chunk-F3N52U7S.mjs +138 -0
- package/dist/chunk-F6TLUMH7.mjs +172 -0
- package/dist/chunk-FBEBSAVI.cjs +225 -0
- package/dist/chunk-FEFCISOX.cjs +102 -0
- package/dist/chunk-FGJQS4EC.cjs +385 -0
- package/dist/chunk-FHURJABM.mjs +45 -0
- package/dist/chunk-GBMWLDCC.cjs +138 -0
- package/dist/chunk-GBPDSUFE.mjs +203 -0
- package/dist/chunk-GERUXONA.cjs +775 -0
- package/dist/chunk-GHNW564E.mjs +1044 -0
- package/dist/chunk-GL3ZDHKI.mjs +274 -0
- package/dist/chunk-GLOICKDO.mjs +142 -0
- package/dist/chunk-GSVJ3IIF.cjs +173 -0
- package/dist/chunk-GUZC226X.mjs +164 -0
- package/dist/chunk-GW4YUIHW.mjs +277 -0
- package/dist/chunk-GWXZS7K5.mjs +24 -0
- package/dist/chunk-GXSMF7UR.mjs +1923 -0
- package/dist/chunk-GYMGK467.mjs +214 -0
- package/dist/chunk-H227LYHT.mjs +88 -0
- package/dist/chunk-H4WUWLQR.mjs +16 -0
- package/dist/chunk-HA7YRO53.cjs +214 -0
- package/dist/chunk-HAH4FBTA.mjs +227 -0
- package/dist/chunk-HELQXYVI.cjs +1093 -0
- package/dist/chunk-HEPJIKKQ.cjs +190 -0
- package/dist/chunk-HIFIG6HL.cjs +341 -0
- package/dist/chunk-HLYRXN2I.cjs +242 -0
- package/dist/chunk-HNAISJFD.cjs +215 -0
- package/dist/chunk-HNAUK3SC.mjs +1181 -0
- package/dist/chunk-HPP2II4Z.mjs +332 -0
- package/dist/chunk-HRLYO2XJ.mjs +9 -0
- package/dist/chunk-HUL4LTC6.cjs +390 -0
- package/dist/chunk-HXNLKCWH.cjs +13 -0
- package/dist/chunk-HZOMT5DY.mjs +30 -0
- package/dist/chunk-I2BYNELA.cjs +380 -0
- package/dist/chunk-I2SWKWO7.mjs +453 -0
- package/dist/chunk-IAPTECEB.mjs +48 -0
- package/dist/chunk-IFTGERT3.mjs +408 -0
- package/dist/chunk-IGL6CO6M.mjs +9 -0
- package/dist/chunk-ITV4QQL2.cjs +93 -0
- package/dist/chunk-IUQLRTTO.mjs +159 -0
- package/dist/chunk-IWFV5ZED.cjs +152 -0
- package/dist/chunk-IXSMFKZ2.cjs +100 -0
- package/dist/chunk-IYEY3JWJ.mjs +186 -0
- package/dist/chunk-J2ZEVDEK.cjs +80 -0
- package/dist/chunk-J37KTQIA.cjs +905 -0
- package/dist/chunk-JATTVAHA.cjs +277 -0
- package/dist/chunk-JGAE5XPL.cjs +26 -0
- package/dist/chunk-JHXJBNLY.cjs +22 -0
- package/dist/chunk-JLS6ZLFM.cjs +9 -0
- package/dist/chunk-JMYXO572.cjs +531 -0
- package/dist/chunk-JNYFXL7X.mjs +62 -0
- package/dist/chunk-JOHXK4BB.mjs +385 -0
- package/dist/chunk-JPAVNDZH.cjs +712 -0
- package/dist/chunk-JRHGJVJH.mjs +44 -0
- package/dist/chunk-JUMPFVMK.mjs +78 -0
- package/dist/chunk-JWP56HCP.mjs +712 -0
- package/dist/chunk-JXIYH2NO.cjs +24 -0
- package/dist/chunk-JYT7AN37.cjs +79 -0
- package/dist/chunk-JZMZKABS.cjs +78 -0
- package/dist/chunk-K5EW7GUU.mjs +417 -0
- package/dist/chunk-K76CBYQM.mjs +157 -0
- package/dist/chunk-KBGZ5FD6.cjs +17 -0
- package/dist/chunk-KBRZAYI7.mjs +593 -0
- package/dist/chunk-KJMWAUKE.mjs +124 -0
- package/dist/chunk-KORZ6PRE.cjs +64 -0
- package/dist/chunk-KPAJWD3N.mjs +168 -0
- package/dist/chunk-KQH2COEJ.mjs +42 -0
- package/dist/chunk-KRRZJ77U.mjs +169 -0
- package/dist/chunk-KZT2VHRQ.cjs +894 -0
- package/dist/chunk-L5JDKFMQ.cjs +44 -0
- package/dist/chunk-L6QDME5Z.cjs +36 -0
- package/dist/chunk-LAZK6UV7.mjs +341 -0
- package/dist/chunk-LL7TDMOM.mjs +222 -0
- package/dist/chunk-LM2YOGDK.mjs +44 -0
- package/dist/chunk-LM55GS4R.mjs +38 -0
- package/dist/chunk-LNVGXUL3.cjs +172 -0
- package/dist/chunk-LSHX2H5G.cjs +57 -0
- package/dist/chunk-LZBM35DH.mjs +577 -0
- package/dist/chunk-M25IONJP.mjs +16 -0
- package/dist/chunk-MF3IA2AW.cjs +25 -0
- package/dist/chunk-MFQGU5CC.mjs +127 -0
- package/dist/chunk-MJ6IC4K2.mjs +34 -0
- package/dist/chunk-MNIR7I7B.mjs +217 -0
- package/dist/chunk-MPU5DOXX.cjs +21 -0
- package/dist/chunk-MTB57GOK.mjs +81 -0
- package/dist/chunk-MU5V7XHL.mjs +172 -0
- package/dist/chunk-MZZA6ZQV.mjs +113 -0
- package/dist/chunk-N25RPPO5.cjs +1963 -0
- package/dist/chunk-N33DLJBC.mjs +272 -0
- package/dist/chunk-N35YPV4N.mjs +48 -0
- package/dist/chunk-N6SIQJEJ.mjs +390 -0
- package/dist/chunk-N77JBPLC.mjs +1357 -0
- package/dist/chunk-N7SPZJLY.mjs +6166 -0
- package/dist/chunk-N7XWC6BN.mjs +21 -0
- package/dist/chunk-NBIVGHAT.mjs +50 -0
- package/dist/chunk-NCIAP562.mjs +27 -0
- package/dist/chunk-NE33FRQ5.mjs +11944 -0
- package/dist/chunk-NG44F7AH.mjs +150 -0
- package/dist/chunk-NIPKC4DA.mjs +800 -0
- package/dist/chunk-NJLTQR5P.cjs +293 -0
- package/dist/chunk-NR63PD3P.mjs +64 -0
- package/dist/chunk-NRFUVDTH.mjs +489 -0
- package/dist/chunk-NRNAHZ57.mjs +39 -0
- package/dist/chunk-NW2BKDVT.mjs +1963 -0
- package/dist/chunk-NYQSC4DX.cjs +593 -0
- package/dist/chunk-O4F3JUST.mjs +176 -0
- package/dist/chunk-OAJOQU5J.mjs +225 -0
- package/dist/chunk-OCS3PSYR.cjs +51 -0
- package/dist/chunk-OHWM2VI4.mjs +29 -0
- package/dist/chunk-OJO2GOM3.mjs +69 -0
- package/dist/chunk-OLGQZRW6.mjs +700 -0
- package/dist/chunk-ONG4RDW3.mjs +155 -0
- package/dist/chunk-OOJBBHYW.cjs +38 -0
- package/dist/chunk-OOZEU5KK.cjs +18 -0
- package/dist/chunk-OWQV6MLM.cjs +82 -0
- package/dist/chunk-OYZXVBZP.cjs +133 -0
- package/dist/chunk-OZC2JPW6.cjs +10 -0
- package/dist/chunk-P2355C6E.cjs +186 -0
- package/dist/chunk-PAKCHVUS.mjs +450 -0
- package/dist/chunk-PEHL3IZL.cjs +203 -0
- package/dist/chunk-PENBZAHJ.cjs +88 -0
- package/dist/chunk-PFV2KPDZ.cjs +172 -0
- package/dist/chunk-PO5MXV5X.cjs +13 -0
- package/dist/chunk-PSUYE5HR.mjs +25 -0
- package/dist/chunk-PTLXHRJZ.mjs +57 -0
- package/dist/chunk-PXEXOQ5R.mjs +135 -0
- package/dist/chunk-PZXYAWYG.cjs +274 -0
- package/dist/chunk-Q2ZKQ6GD.cjs +6166 -0
- package/dist/chunk-Q3UU2KXC.mjs +775 -0
- package/dist/chunk-Q5B4LNON.mjs +19 -0
- package/dist/chunk-QFQDRJKJ.mjs +666 -0
- package/dist/chunk-QGJ4FI2G.mjs +723 -0
- package/dist/chunk-QISW423S.cjs +335 -0
- package/dist/chunk-QNQEK3OF.cjs +666 -0
- package/dist/chunk-QPJ4MZTO.mjs +60 -0
- package/dist/chunk-QPNVDSFZ.mjs +18 -0
- package/dist/chunk-QQ44FYRO.cjs +27 -0
- package/dist/chunk-QSTRBKHZ.mjs +102 -0
- package/dist/chunk-R2SEZEBC.cjs +453 -0
- package/dist/chunk-R5U7OIPI.cjs +34 -0
- package/dist/chunk-R62SF5R4.mjs +410 -0
- package/dist/chunk-RD623KW4.cjs +203 -0
- package/dist/chunk-RFKTJTWZ.mjs +26 -0
- package/dist/chunk-RI3EVPKD.cjs +57 -0
- package/dist/chunk-RLEALQEN.mjs +998 -0
- package/dist/chunk-RVGLYMJM.cjs +259 -0
- package/dist/chunk-S32PDOLO.mjs +13 -0
- package/dist/chunk-S6O2L47H.mjs +549 -0
- package/dist/chunk-SBABQKPT.cjs +169 -0
- package/dist/chunk-SBDWCDS6.cjs +8 -0
- package/dist/chunk-SF3JB56B.mjs +82 -0
- package/dist/chunk-SG57PX7K.cjs +65 -0
- package/dist/chunk-SGBNF56S.cjs +44 -0
- package/dist/chunk-SHD265HW.cjs +19 -0
- package/dist/chunk-SHIWRBFI.cjs +17 -0
- package/dist/chunk-SM2SYWAR.cjs +49 -0
- package/dist/chunk-SNP33A33.cjs +9 -0
- package/dist/chunk-SSNN55Q6.cjs +651 -0
- package/dist/chunk-STF6VDYQ.cjs +23 -0
- package/dist/chunk-SVCUSOEF.mjs +590 -0
- package/dist/chunk-SXCL2MIN.cjs +208 -0
- package/dist/chunk-SYW346ZN.cjs +71 -0
- package/dist/chunk-TFA6BUAE.cjs +113 -0
- package/dist/chunk-TGSEVBPO.mjs +93 -0
- package/dist/chunk-TJVUTGED.mjs +531 -0
- package/dist/chunk-TQWGOQ7O.mjs +8606 -0
- package/dist/chunk-TTYXOAB7.mjs +657 -0
- package/dist/chunk-TUPKMMXT.mjs +173 -0
- package/dist/chunk-TVCFY3KK.cjs +217 -0
- package/dist/chunk-TXK4D46O.mjs +22 -0
- package/dist/chunk-UAQD67HM.mjs +154 -0
- package/dist/chunk-UCQ52TJY.mjs +406 -0
- package/dist/chunk-UIJOLBUL.mjs +19 -0
- package/dist/chunk-UPYIFH2H.cjs +168 -0
- package/dist/chunk-UUMKLGUU.mjs +69 -0
- package/dist/chunk-UYQOIPXE.mjs +368 -0
- package/dist/chunk-UYTAP4FQ.cjs +60 -0
- package/dist/chunk-UZCMMJJT.cjs +80 -0
- package/dist/chunk-V3UOEWCB.cjs +46 -0
- package/dist/chunk-V56632LA.cjs +141 -0
- package/dist/chunk-V7KTQR4C.cjs +15 -0
- package/dist/chunk-VCFBQFOV.mjs +1093 -0
- package/dist/chunk-VDLF2DJA.cjs +11947 -0
- package/dist/chunk-VE3FWJBO.mjs +46 -0
- package/dist/chunk-VFXE6NWR.mjs +87 -0
- package/dist/chunk-VHIXGZYH.mjs +9 -0
- package/dist/chunk-VISQDC6W.mjs +10 -0
- package/dist/chunk-VIXTAVEA.mjs +59 -0
- package/dist/chunk-VJXLUTBM.mjs +894 -0
- package/dist/chunk-VM57CK74.cjs +42 -0
- package/dist/chunk-VOQ7XZZT.cjs +157 -0
- package/dist/chunk-VR4SEDEM.mjs +1457 -0
- package/dist/chunk-VR6QLTTX.mjs +59 -0
- package/dist/chunk-VSLM6BHX.cjs +2250 -0
- package/dist/chunk-VU3MYZPO.mjs +432 -0
- package/dist/chunk-VXCFJWK5.cjs +59 -0
- package/dist/chunk-VZY7MAVS.cjs +432 -0
- package/dist/chunk-WB6XES4V.mjs +161 -0
- package/dist/chunk-WCLLPR6H.mjs +35 -0
- package/dist/chunk-WEGAVN37.cjs +45 -0
- package/dist/chunk-WJFFPXCV.cjs +1357 -0
- package/dist/chunk-WNDAISB7.mjs +51 -0
- package/dist/chunk-WNLPQW7W.mjs +19 -0
- package/dist/chunk-WQGRD5BJ.cjs +239 -0
- package/dist/chunk-WT6RAN2I.cjs +41 -0
- package/dist/chunk-WUEDTW6E.cjs +135 -0
- package/dist/chunk-WXFY5JIY.mjs +20 -0
- package/dist/chunk-WYL4ODZ4.mjs +38 -0
- package/dist/chunk-X333W5KV.cjs +31 -0
- package/dist/chunk-X3XUZWRB.mjs +141 -0
- package/dist/chunk-XGJVRPYL.cjs +141 -0
- package/dist/chunk-XLLVWLWO.mjs +100 -0
- package/dist/chunk-XLYXG73A.mjs +87 -0
- package/dist/chunk-XN2MB4QZ.cjs +206 -0
- package/dist/chunk-XO6WL6NL.mjs +462 -0
- package/dist/chunk-XQ4DPO4G.mjs +13 -0
- package/dist/chunk-XQSYOVCW.cjs +417 -0
- package/dist/chunk-XR2ZIBQK.mjs +57 -0
- package/dist/chunk-XURDCXNH.cjs +48 -0
- package/dist/chunk-XXB37YET.cjs +40 -0
- package/dist/chunk-Y3WG64CP.cjs +9 -0
- package/dist/chunk-Y6FXYEAI.mjs +10 -0
- package/dist/chunk-Y7NN63LS.mjs +40 -0
- package/dist/chunk-YDXLC4DW.cjs +54 -0
- package/dist/chunk-YP7YO3S3.mjs +17 -0
- package/dist/chunk-YQGZLCT4.cjs +368 -0
- package/dist/chunk-YSPMY4B7.cjs +8609 -0
- package/dist/chunk-YT3SLLZK.mjs +242 -0
- package/dist/chunk-YTVSWXEZ.cjs +168 -0
- package/dist/chunk-YVJV7Q2X.mjs +35 -0
- package/dist/chunk-YWPNIYUP.mjs +41 -0
- package/dist/chunk-YX6AFPXC.mjs +8 -0
- package/dist/chunk-Z5MZDFX4.cjs +159 -0
- package/dist/chunk-ZBS3GOQZ.cjs +222 -0
- package/dist/chunk-ZGS3ZDF7.cjs +489 -0
- package/dist/chunk-ZSIGEHSE.cjs +1181 -0
- package/dist/chunk-ZXK2EYQW.cjs +8 -0
- package/dist/client/lifecycle.cjs +3 -3
- package/dist/client/lifecycle.mjs +2 -2
- package/dist/client-plugins-BlEzV5FO.d.mts +3920 -0
- package/dist/client-plugins-DqjCsKMN.d.ts +3920 -0
- package/dist/client-plugins.cjs +3 -3
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client-plugins.mjs +2 -2
- package/dist/client.cjs +41 -41
- package/dist/client.d.mts +5 -5
- package/dist/client.d.ts +5 -5
- package/dist/client.mjs +42 -42
- package/dist/config.cjs +3 -3
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.mjs +2 -2
- package/dist/cron.cjs +9 -9
- package/dist/cron.mjs +8 -8
- package/dist/deferred.cjs +3 -3
- package/dist/deferred.mjs +2 -2
- package/dist/deployment.cjs +3 -3
- package/dist/deployment.mjs +2 -2
- package/dist/desktop.cjs +13 -0
- package/dist/desktop.d.mts +120 -0
- package/dist/desktop.d.ts +120 -0
- package/dist/desktop.mjs +13 -0
- package/dist/dev-guard-4NQ3LFO5.cjs +57 -0
- package/dist/dev-guard-MPZUJFIV.mjs +57 -0
- package/dist/devtools-A37WWJZL.cjs +463 -0
- package/dist/devtools-BLKHPY3C.mjs +463 -0
- package/dist/devtools-client-SU4XH46J.mjs +250 -0
- package/dist/devtools-client-X5OQCXDF.cjs +250 -0
- package/dist/devtools-ui-CYBVFLPH.mjs +1265 -0
- package/dist/devtools-ui-SYRUXUA7.cjs +1265 -0
- package/dist/docs.cjs +64 -64
- package/dist/docs.d.mts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.mjs +63 -63
- package/dist/env-types.cjs +4 -4
- package/dist/env-types.mjs +3 -3
- package/dist/env.cjs +4 -4
- package/dist/env.mjs +3 -3
- package/dist/environment/vite.cjs +7 -7
- package/dist/environment/vite.mjs +6 -6
- package/dist/environment.cjs +3 -3
- package/dist/environment.mjs +2 -2
- package/dist/font.cjs +3 -3
- package/dist/font.mjs +2 -2
- package/dist/headers.cjs +6 -6
- package/dist/headers.mjs +5 -5
- package/dist/i18n/client.cjs +19 -30
- package/dist/i18n/client.mjs +9 -20
- package/dist/i18n/index.cjs +6 -6
- package/dist/i18n/index.mjs +5 -5
- package/dist/i18n/server.cjs +10 -10
- package/dist/i18n/server.mjs +9 -9
- package/dist/image/server.cjs +6 -6
- package/dist/image/server.mjs +5 -5
- package/dist/image/sharp.cjs +15 -21
- package/dist/image/sharp.mjs +7 -13
- package/dist/image.cjs +9 -18
- package/dist/image.mjs +4 -13
- package/dist/index-CMigAr9f.d.mts +54 -0
- package/dist/index-n3hjOvVC.d.ts +54 -0
- package/dist/index.cjs +187 -196
- package/dist/index.d.mts +15 -15
- package/dist/index.d.ts +15 -15
- package/dist/index.mjs +217 -226
- package/dist/instrumentation.cjs +5 -5
- package/dist/instrumentation.mjs +4 -4
- package/dist/integration-orm-52GPGTHO.cjs +14 -0
- package/dist/integration-orm-CO23MSFE.mjs +14 -0
- package/dist/integrations.cjs +20 -20
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/integrations.mjs +19 -19
- package/dist/internal/app-markdown-runtime.cjs +12 -13
- package/dist/internal/app-markdown-runtime.d.mts +2 -2
- package/dist/internal/app-markdown-runtime.d.ts +2 -2
- package/dist/internal/app-markdown-runtime.mjs +11 -12
- package/dist/internal/build-runtime.cjs +152 -149
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +135 -132
- package/dist/internal/cli-runtime.cjs +88 -88
- package/dist/internal/cli-runtime.mjs +87 -87
- package/dist/internal/client-error-overlay.cjs +18 -49
- package/dist/internal/client-error-overlay.mjs +14 -45
- package/dist/internal/client-runtime.cjs +39 -53
- package/dist/internal/client-runtime.mjs +36 -50
- package/dist/internal/compression-runtime.cjs +4 -4
- package/dist/internal/compression-runtime.d.mts +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/compression-runtime.mjs +3 -3
- package/dist/internal/config-runtime.cjs +85 -69
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +73 -57
- package/dist/internal/desktop-guard.cjs +17 -0
- package/dist/internal/desktop-guard.d.mts +45 -0
- package/dist/internal/desktop-guard.d.ts +45 -0
- package/dist/internal/desktop-guard.mjs +17 -0
- package/dist/internal/docs-precompiled-runtime.cjs +5 -17
- package/dist/internal/docs-precompiled-runtime.mjs +4 -16
- package/dist/internal/form-actions-client.cjs +1 -5
- package/dist/internal/form-actions-client.mjs +1 -5
- package/dist/internal/form-actions.cjs +10 -10
- package/dist/internal/form-actions.mjs +9 -9
- package/dist/internal/infra-analytics-runtime.cjs +22 -8
- package/dist/internal/infra-analytics-runtime.mjs +20 -6
- package/dist/internal/island-codec.cjs +4 -4
- package/dist/internal/island-codec.mjs +3 -3
- package/dist/internal/island-value-store.cjs +1 -4
- package/dist/internal/island-value-store.mjs +1 -4
- package/dist/internal/islands-runtime.cjs +46 -21
- package/dist/internal/islands-runtime.d.mts +31 -19
- package/dist/internal/islands-runtime.d.ts +31 -19
- package/dist/internal/islands-runtime.mjs +41 -16
- package/dist/internal/islands-server.cjs +6 -9
- package/dist/internal/islands-server.mjs +5 -8
- package/dist/internal/islx-client.cjs +1 -1
- package/dist/internal/islx-react.cjs +1 -1
- package/dist/internal/islx-server.cjs +1 -1
- package/dist/internal/isolated-boundary.cjs +5 -5
- package/dist/internal/isolated-boundary.mjs +4 -4
- package/dist/internal/metadata-image-runtime.cjs +8 -8
- package/dist/internal/metadata-image-runtime.d.mts +6 -1
- package/dist/internal/metadata-image-runtime.d.ts +6 -1
- package/dist/internal/metadata-image-runtime.mjs +7 -7
- package/dist/internal/product-telemetry-runtime.cjs +5 -17
- package/dist/internal/product-telemetry-runtime.mjs +3 -15
- package/dist/internal/production-node-env.cjs +3 -3
- package/dist/internal/production-node-env.mjs +2 -2
- package/dist/internal/production-runtime.cjs +102 -103
- package/dist/internal/production-runtime.d.mts +42 -11
- package/dist/internal/production-runtime.d.ts +42 -11
- package/dist/internal/production-runtime.mjs +114 -115
- package/dist/internal/request-cookies.cjs +3 -3
- package/dist/internal/request-cookies.mjs +2 -2
- package/dist/internal/server-tree.cjs +5 -5
- package/dist/internal/server-tree.mjs +4 -4
- package/dist/json-ld.cjs +3 -16
- package/dist/json-ld.mjs +3 -16
- package/dist/layers-DMRXRL7F.cjs +18 -0
- package/dist/layers-T55SA47E.mjs +18 -0
- package/dist/manager-2LUKNX2N.cjs +14 -0
- package/dist/manager-H5ZM3HAM.mjs +14 -0
- package/dist/markdown.cjs +11 -12
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/markdown.mjs +10 -11
- package/dist/middleware.cjs +31 -31
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/middleware.mjs +30 -30
- package/dist/navigation.cjs +22 -22
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/navigation.mjs +21 -21
- package/dist/nitro-BIXIKJZS.cjs +650 -0
- package/dist/nitro-UT2J5A5D.mjs +650 -0
- package/dist/node-module-bundle-7JHPPF6B.mjs +11 -0
- package/dist/node-module-bundle-YJGYBOGK.cjs +11 -0
- package/dist/observability.cjs +3 -3
- package/dist/observability.mjs +2 -2
- package/dist/og.cjs +1 -1
- package/dist/og.mjs +1 -1
- package/dist/platform.cjs +28 -0
- package/dist/platform.d.mts +23 -0
- package/dist/platform.d.ts +23 -0
- package/dist/platform.mjs +28 -0
- package/dist/plugin-4KYXV7BB.mjs +32 -0
- package/dist/plugin-WBANOZQM.cjs +32 -0
- package/dist/plugin.cjs +147 -144
- package/dist/plugin.d.mts +3 -3
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.mjs +127 -124
- package/dist/production-runtime-YVDGYWBG.d.ts +123 -0
- package/dist/production-runtime-bWZJMcQb.d.mts +123 -0
- package/dist/programmatic-routes-client-BFKOTEXN.d.mts +184 -0
- package/dist/programmatic-routes-client-DviwGeAv.d.ts +184 -0
- package/dist/query/client.cjs +59 -70
- package/dist/query/client.mjs +49 -60
- package/dist/query/index.cjs +4 -4
- package/dist/query/index.mjs +3 -3
- package/dist/query/parsers.cjs +3 -3
- package/dist/query/parsers.mjs +2 -2
- package/dist/query/server.cjs +5 -11
- package/dist/query/server.mjs +3 -9
- package/dist/render-plan-CS8l0zaK.d.mts +25 -0
- package/dist/render-plan-DqWXo3-B.d.ts +25 -0
- package/dist/renderer/react/client.cjs +1 -1
- package/dist/renderer/react/client.mjs +1 -1
- package/dist/renderer/react/server.cjs +10 -15
- package/dist/renderer/react/server.mjs +10 -15
- package/dist/renderer/react/vite.cjs +1 -4
- package/dist/renderer/react/vite.mjs +1 -4
- package/dist/renderer-client.cjs +67 -79
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +44 -56
- package/dist/renderer.cjs +3 -3
- package/dist/renderer.mjs +2 -2
- package/dist/request-CBrHpaCC.d.ts +24 -0
- package/dist/request-D4XqmnJF.d.mts +24 -0
- package/dist/request.cjs +4 -4
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/request.mjs +3 -3
- package/dist/route-rendering-3pRPtyO2.d.mts +44 -0
- package/dist/route-rendering-Bltnu8a3.d.ts +44 -0
- package/dist/router-BFSmKGtI.d.mts +50 -0
- package/dist/router-DDT7bkg7.d.ts +50 -0
- package/dist/router.cjs +5 -5
- package/dist/router.mjs +4 -4
- package/dist/routes.cjs +13 -13
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/routes.mjs +12 -12
- package/dist/rsc-pipeline-4KOITP64.cjs +80 -0
- package/dist/rsc-pipeline-ULFIB3UT.mjs +80 -0
- package/dist/runtime-C6yG64je.d.ts +69 -0
- package/dist/runtime-Cpylaypt.d.mts +69 -0
- package/dist/schema-dev-notice-O3I5HLXK.mjs +54 -0
- package/dist/schema-dev-notice-Z73J3NJ6.cjs +54 -0
- package/dist/schema.cjs +3 -3
- package/dist/schema.mjs +2 -2
- package/dist/search-client-BTXL5XWD.mjs +13 -0
- package/dist/search-client-QCYAL6AY.cjs +13 -0
- package/dist/server-action-security.cjs +8 -8
- package/dist/server-action-security.mjs +7 -7
- package/dist/server-fn-client.cjs +4 -4
- package/dist/server-fn-client.mjs +3 -3
- package/dist/server-fn.cjs +15 -15
- package/dist/server-fn.mjs +14 -14
- package/dist/server-plugins.cjs +15 -15
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server-plugins.mjs +14 -14
- package/dist/server-query-client.cjs +8 -8
- package/dist/server-query-client.mjs +7 -7
- package/dist/server-query.cjs +17 -17
- package/dist/server-query.mjs +16 -16
- package/dist/server.cjs +215 -219
- package/dist/server.d.mts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +178 -182
- package/dist/spa-router-CKuS81mi.d.ts +239 -0
- package/dist/spa-router-CkTPnA4L.d.mts +239 -0
- package/dist/storage.cjs +3 -3
- package/dist/storage.mjs +2 -2
- package/dist/testing.cjs +57 -77
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +46 -66
- package/dist/theme/client.cjs +5 -5
- package/dist/theme/client.mjs +4 -4
- package/dist/theme/index.cjs +3 -3
- package/dist/theme/index.mjs +2 -2
- package/dist/theme/runtime.cjs +3 -3
- package/dist/theme/runtime.mjs +2 -2
- package/dist/theme/server.cjs +8 -8
- package/dist/theme/server.mjs +7 -7
- package/dist/utils-C0ORLYXc.d.ts +48 -0
- package/dist/utils-IA9wVkef.d.mts +48 -0
- package/dist/version.cjs +3 -3
- package/dist/version.mjs +2 -2
- package/dist/vite.cjs +152 -149
- package/dist/vite.d.mts +4 -4
- package/dist/vite.d.ts +4 -4
- package/dist/vite.mjs +127 -124
- package/dist/workflows.cjs +14 -14
- package/dist/workflows.mjs +13 -13
- package/package.json +26 -2
- package/dist/agent-mcp-BtK_KZ1m.d.ts +0 -115
- package/dist/agent-mcp-Cc-ypyNi.d.mts +0 -115
- package/dist/agent-mcp-handler-HVV5LNXF.mjs +0 -19
- package/dist/agent-mcp-handler-YKG7KVCY.cjs +0 -19
- package/dist/app-2SBLAaNq.d.mts +0 -554
- package/dist/app-BlXGEpdA.d.ts +0 -554
- package/dist/app-manifest-D1Tgp8ya.d.ts +0 -120
- package/dist/app-manifest-nZHIvS3a.d.mts +0 -120
- package/dist/chunk-25LPIZSX.cjs +0 -576
- package/dist/chunk-26CXZR6L.mjs +0 -1242
- package/dist/chunk-26RUNDIR.mjs +0 -2355
- package/dist/chunk-2A3EQHXX.mjs +0 -173
- package/dist/chunk-2CQ74SP6.cjs +0 -13
- package/dist/chunk-2DZFF7F7.cjs +0 -11810
- package/dist/chunk-2FUIT2G2.cjs +0 -85
- package/dist/chunk-2GVF3C2F.cjs +0 -616
- package/dist/chunk-2J7W2WND.mjs +0 -149
- package/dist/chunk-2NROIAA6.cjs +0 -6066
- package/dist/chunk-2NXO5SBY.mjs +0 -57
- package/dist/chunk-2PQNJXFM.mjs +0 -20
- package/dist/chunk-2SJ4RQ6P.cjs +0 -57
- package/dist/chunk-2SLWGLZ7.mjs +0 -8620
- package/dist/chunk-2UC36WAC.mjs +0 -22
- package/dist/chunk-2VQKKQ6D.mjs +0 -51
- package/dist/chunk-2Y3JRYVG.mjs +0 -71
- package/dist/chunk-37VKVISD.mjs +0 -2042
- package/dist/chunk-3BROEWFY.cjs +0 -39
- package/dist/chunk-3HEQSCVV.mjs +0 -9
- package/dist/chunk-3SAWHWDH.cjs +0 -186
- package/dist/chunk-3XEMGDBF.cjs +0 -1242
- package/dist/chunk-44SYJEG3.mjs +0 -13
- package/dist/chunk-45QJHGZM.cjs +0 -1063
- package/dist/chunk-45ZSJLDT.mjs +0 -183
- package/dist/chunk-4GP3XZ4Z.mjs +0 -595
- package/dist/chunk-4JCQDWPX.mjs +0 -24
- package/dist/chunk-4KQDHTWX.mjs +0 -487
- package/dist/chunk-4OOBRCJX.mjs +0 -300
- package/dist/chunk-4PPEPOZZ.cjs +0 -21
- package/dist/chunk-4RB44K6Z.mjs +0 -94
- package/dist/chunk-4SIYUGRY.mjs +0 -93
- package/dist/chunk-4TLUFAIP.cjs +0 -92
- package/dist/chunk-4U5XZDLG.cjs +0 -80
- package/dist/chunk-4ZZNPK25.mjs +0 -178
- package/dist/chunk-53ZV6K65.mjs +0 -241
- package/dist/chunk-54UPOYFS.mjs +0 -35
- package/dist/chunk-55YI3RRB.mjs +0 -192
- package/dist/chunk-5LPHJZSI.cjs +0 -241
- package/dist/chunk-5NAVKJCZ.cjs +0 -435
- package/dist/chunk-5NIWBWDD.mjs +0 -97
- package/dist/chunk-5QIKR7RR.cjs +0 -224
- package/dist/chunk-5WI2S4CO.mjs +0 -20
- package/dist/chunk-63H6BKXG.cjs +0 -389
- package/dist/chunk-64SBBZDU.cjs +0 -102
- package/dist/chunk-666CKENS.mjs +0 -49
- package/dist/chunk-6BWKJ6QS.cjs +0 -43
- package/dist/chunk-6D24SDKO.cjs +0 -145
- package/dist/chunk-6EODJYCX.cjs +0 -183
- package/dist/chunk-6EXBPJ24.cjs +0 -434
- package/dist/chunk-6IZWX6ES.cjs +0 -74
- package/dist/chunk-6LVRDOAW.mjs +0 -74
- package/dist/chunk-6MVFHNYZ.cjs +0 -1033
- package/dist/chunk-6NT6S2VQ.mjs +0 -180
- package/dist/chunk-6QOLZITB.cjs +0 -22
- package/dist/chunk-6QQDAAAZ.cjs +0 -38
- package/dist/chunk-72ADZ6GQ.cjs +0 -19
- package/dist/chunk-72AK62H5.mjs +0 -55
- package/dist/chunk-73WX6PRY.mjs +0 -575
- package/dist/chunk-75RZHGLS.cjs +0 -135
- package/dist/chunk-7GNWGLWB.mjs +0 -14
- package/dist/chunk-7IQQIPRZ.mjs +0 -55
- package/dist/chunk-7LTCDQRS.mjs +0 -166
- package/dist/chunk-7P475T2X.mjs +0 -11809
- package/dist/chunk-7RNAKBWF.cjs +0 -40
- package/dist/chunk-7UEEHAW7.mjs +0 -576
- package/dist/chunk-7W3CPVXS.cjs +0 -24
- package/dist/chunk-A6WIQH5Z.cjs +0 -31
- package/dist/chunk-AELACLOB.mjs +0 -47
- package/dist/chunk-AI7QMY7O.cjs +0 -41
- package/dist/chunk-ALPWLT27.cjs +0 -291
- package/dist/chunk-AMDMVWMI.cjs +0 -39
- package/dist/chunk-APDGOKKE.cjs +0 -148
- package/dist/chunk-ARJWXNQL.cjs +0 -256
- package/dist/chunk-AZBSVLRM.cjs +0 -132
- package/dist/chunk-B2GSRB3P.mjs +0 -1033
- package/dist/chunk-B6XAA7V6.cjs +0 -2042
- package/dist/chunk-BCMSYSN2.mjs +0 -183
- package/dist/chunk-BIDYX3SL.cjs +0 -91
- package/dist/chunk-BJIYRUGQ.mjs +0 -35
- package/dist/chunk-BMOBTMDR.cjs +0 -178
- package/dist/chunk-BOYNDCZL.mjs +0 -54
- package/dist/chunk-BPNRQ5BA.mjs +0 -690
- package/dist/chunk-BRYHOB4X.mjs +0 -18
- package/dist/chunk-BTHHUD7Q.mjs +0 -51
- package/dist/chunk-BUGNQIHC.mjs +0 -449
- package/dist/chunk-C4NCTZLM.mjs +0 -22
- package/dist/chunk-C5GUTBZK.cjs +0 -173
- package/dist/chunk-CALY6QG6.mjs +0 -963
- package/dist/chunk-CBBLJMR5.mjs +0 -74
- package/dist/chunk-CBXBGM72.cjs +0 -212
- package/dist/chunk-CEDPEDNW.cjs +0 -98
- package/dist/chunk-CGR525MJ.cjs +0 -357
- package/dist/chunk-CGVPXIRN.cjs +0 -472
- package/dist/chunk-CMGMGHUZ.cjs +0 -27
- package/dist/chunk-CNOQY6Z7.mjs +0 -156
- package/dist/chunk-COABSY3U.mjs +0 -196
- package/dist/chunk-CQ6OSQ3K.mjs +0 -36
- package/dist/chunk-CU625VAY.mjs +0 -13
- package/dist/chunk-CW6SNEN2.cjs +0 -727
- package/dist/chunk-CXP5U3RW.cjs +0 -54
- package/dist/chunk-CY2ZQ5C6.cjs +0 -56
- package/dist/chunk-CZS6OACQ.mjs +0 -63
- package/dist/chunk-D4ROBNTK.cjs +0 -1378
- package/dist/chunk-D5IHNDHI.cjs +0 -367
- package/dist/chunk-D5RFPV2H.mjs +0 -148
- package/dist/chunk-D64OPY6A.cjs +0 -710
- package/dist/chunk-D7JTOLFK.cjs +0 -285
- package/dist/chunk-DAATZTKJ.mjs +0 -220
- package/dist/chunk-DMRPN25V.mjs +0 -701
- package/dist/chunk-DVM4FKZL.cjs +0 -169
- package/dist/chunk-E22SWCXB.cjs +0 -144
- package/dist/chunk-EMLAPBEM.mjs +0 -256
- package/dist/chunk-ETPEZLS3.mjs +0 -367
- package/dist/chunk-F3VB7ONA.mjs +0 -338
- package/dist/chunk-F646BZ4Y.mjs +0 -581
- package/dist/chunk-FA2W42OV.mjs +0 -25
- package/dist/chunk-FEYQCYT7.cjs +0 -823
- package/dist/chunk-FGH3ZXTP.mjs +0 -1063
- package/dist/chunk-FIAPD365.mjs +0 -85
- package/dist/chunk-FJ3M4CUX.cjs +0 -46
- package/dist/chunk-FK6GO24V.cjs +0 -54
- package/dist/chunk-FP2INE7H.mjs +0 -113
- package/dist/chunk-FQUKOELE.mjs +0 -6066
- package/dist/chunk-FVPXT2JR.cjs +0 -63
- package/dist/chunk-FWCGUVVL.mjs +0 -86
- package/dist/chunk-FXFKIJDA.cjs +0 -168
- package/dist/chunk-G2KY33I6.mjs +0 -202
- package/dist/chunk-G2Z5DGMS.cjs +0 -581
- package/dist/chunk-G4MWPDSE.mjs +0 -19
- package/dist/chunk-G643DQCH.cjs +0 -13
- package/dist/chunk-G7HXGLEC.cjs +0 -175
- package/dist/chunk-GB7LDGY5.cjs +0 -2355
- package/dist/chunk-GC3EM6H4.mjs +0 -80
- package/dist/chunk-GCXWJJKH.mjs +0 -169
- package/dist/chunk-GHFS7RUB.mjs +0 -152
- package/dist/chunk-GS3WR5HX.cjs +0 -595
- package/dist/chunk-GZTUT75U.mjs +0 -293
- package/dist/chunk-GZWHCWLB.mjs +0 -186
- package/dist/chunk-H3EGVQE5.mjs +0 -22
- package/dist/chunk-H4AMB6ZE.mjs +0 -421
- package/dist/chunk-H4LXPWI2.mjs +0 -46
- package/dist/chunk-H77NVNJ2.mjs +0 -57
- package/dist/chunk-H7BLEEAE.cjs +0 -57
- package/dist/chunk-HANGSYMB.mjs +0 -67
- package/dist/chunk-HJ64F4GS.mjs +0 -537
- package/dist/chunk-HKFBMHCD.mjs +0 -291
- package/dist/chunk-HLJ6MBUZ.cjs +0 -183
- package/dist/chunk-HREOKQWT.cjs +0 -45
- package/dist/chunk-I2BHUNBU.mjs +0 -14
- package/dist/chunk-I57LW5VZ.cjs +0 -94
- package/dist/chunk-I5MG3TKE.cjs +0 -487
- package/dist/chunk-I6UVKUYK.mjs +0 -1378
- package/dist/chunk-IE7XCHH3.cjs +0 -85
- package/dist/chunk-IF4NU2NG.mjs +0 -314
- package/dist/chunk-IFWSR7YZ.cjs +0 -416
- package/dist/chunk-IHQIOZLC.mjs +0 -65
- package/dist/chunk-IK6LVLKC.cjs +0 -51
- package/dist/chunk-IM7DY3ED.mjs +0 -40
- package/dist/chunk-IN6RCKLL.mjs +0 -396
- package/dist/chunk-INQ64HTJ.mjs +0 -696
- package/dist/chunk-IOAUK4OI.cjs +0 -2162
- package/dist/chunk-IOEH4VWN.mjs +0 -202
- package/dist/chunk-IOMVXBLZ.mjs +0 -144
- package/dist/chunk-IXFOBGLQ.cjs +0 -1120
- package/dist/chunk-J7FSKED3.cjs +0 -93
- package/dist/chunk-J7K2NZD6.mjs +0 -56
- package/dist/chunk-JAXDRRRC.cjs +0 -701
- package/dist/chunk-JBSVKMC5.mjs +0 -28
- package/dist/chunk-JDNHKPTD.cjs +0 -22
- package/dist/chunk-JEIG3EWE.cjs +0 -690
- package/dist/chunk-JEZO6VUR.cjs +0 -35
- package/dist/chunk-JGHCKIRI.mjs +0 -580
- package/dist/chunk-JGLC4TO3.cjs +0 -192
- package/dist/chunk-JM5XPKWH.mjs +0 -41
- package/dist/chunk-JNZ4TDWM.mjs +0 -445
- package/dist/chunk-JOW4HDJO.mjs +0 -179
- package/dist/chunk-JPLUGGRV.mjs +0 -230
- package/dist/chunk-JVXW76I7.mjs +0 -727
- package/dist/chunk-KCMTCM6I.cjs +0 -53
- package/dist/chunk-KEXK442I.cjs +0 -696
- package/dist/chunk-KF6VDJH7.cjs +0 -86
- package/dist/chunk-KFZZFZ7J.cjs +0 -46
- package/dist/chunk-KGB5UXJJ.mjs +0 -27
- package/dist/chunk-KGZIORNL.cjs +0 -43
- package/dist/chunk-KI3MESHB.mjs +0 -224
- package/dist/chunk-KNBBQHO2.cjs +0 -51
- package/dist/chunk-KNHBTJP6.mjs +0 -472
- package/dist/chunk-KQANE4Q4.mjs +0 -1210
- package/dist/chunk-KR6CKSXT.cjs +0 -15
- package/dist/chunk-KYN5ODF6.mjs +0 -62
- package/dist/chunk-L3KT7IXV.mjs +0 -91
- package/dist/chunk-L5H2GSUC.cjs +0 -49
- package/dist/chunk-L6A26QT5.cjs +0 -537
- package/dist/chunk-LCCBO7PJ.cjs +0 -46
- package/dist/chunk-LFHCG2DU.mjs +0 -43
- package/dist/chunk-LIUGYUX3.cjs +0 -22
- package/dist/chunk-LIZTLA5F.cjs +0 -396
- package/dist/chunk-LLUA2LSC.mjs +0 -157
- package/dist/chunk-LPE3ED4R.cjs +0 -929
- package/dist/chunk-LPEX4YW6.mjs +0 -13
- package/dist/chunk-LRJRXXQZ.cjs +0 -109
- package/dist/chunk-LTNGXMQ6.cjs +0 -55
- package/dist/chunk-LYLEZIG3.cjs +0 -73
- package/dist/chunk-LYV44OIR.mjs +0 -256
- package/dist/chunk-LZESP4IR.cjs +0 -575
- package/dist/chunk-M2L4MYDQ.cjs +0 -14
- package/dist/chunk-M3BXTWJM.mjs +0 -467
- package/dist/chunk-M7MKQXAF.cjs +0 -87
- package/dist/chunk-MEASUNVY.mjs +0 -440
- package/dist/chunk-MGMF4VP7.mjs +0 -102
- package/dist/chunk-MHHCLYXU.mjs +0 -236
- package/dist/chunk-MN4TQJ3W.cjs +0 -157
- package/dist/chunk-MQ3H6LT5.cjs +0 -202
- package/dist/chunk-MWSK6C4J.cjs +0 -18
- package/dist/chunk-MWWVKDW3.cjs +0 -169
- package/dist/chunk-MY5PZYAD.cjs +0 -2083
- package/dist/chunk-N46M65CI.mjs +0 -54
- package/dist/chunk-N4UOK6ZI.cjs +0 -256
- package/dist/chunk-NBPNUQYO.cjs +0 -179
- package/dist/chunk-NFG4PUPI.cjs +0 -64
- package/dist/chunk-NFME7OKZ.cjs +0 -109
- package/dist/chunk-NO3WWW3N.cjs +0 -192
- package/dist/chunk-NPC7VWJE.mjs +0 -277
- package/dist/chunk-NYJMY3JA.cjs +0 -156
- package/dist/chunk-NZKJGRB3.cjs +0 -230
- package/dist/chunk-O6BCQV2T.mjs +0 -46
- package/dist/chunk-O7BH5O46.mjs +0 -175
- package/dist/chunk-O7USYJ4U.mjs +0 -64
- package/dist/chunk-OF4TXHM4.cjs +0 -9
- package/dist/chunk-OHY2ZWUG.cjs +0 -25
- package/dist/chunk-OI6CMLWX.cjs +0 -47
- package/dist/chunk-OILHPMFX.cjs +0 -580
- package/dist/chunk-OJ7JP7RJ.mjs +0 -212
- package/dist/chunk-ONUEYC6N.mjs +0 -27
- package/dist/chunk-OT6ZEW74.mjs +0 -139
- package/dist/chunk-OX6O6WVA.cjs +0 -74
- package/dist/chunk-OYEUREB6.cjs +0 -35
- package/dist/chunk-OYZGFRPA.mjs +0 -714
- package/dist/chunk-OZVEHHMA.cjs +0 -194
- package/dist/chunk-P2UJF4SS.mjs +0 -823
- package/dist/chunk-P4TYB4SF.cjs +0 -417
- package/dist/chunk-P7XDC7UJ.mjs +0 -92
- package/dist/chunk-PCOTGFSM.cjs +0 -139
- package/dist/chunk-PDU4P2IC.cjs +0 -467
- package/dist/chunk-PJ42JESY.cjs +0 -87
- package/dist/chunk-PJEHUSHA.mjs +0 -229
- package/dist/chunk-PNGWZFUQ.mjs +0 -39
- package/dist/chunk-PSV6XKPO.cjs +0 -220
- package/dist/chunk-PZYCPSCC.cjs +0 -35
- package/dist/chunk-Q5B3KJBP.cjs +0 -152
- package/dist/chunk-Q5F32A26.cjs +0 -8621
- package/dist/chunk-QBK2AA4U.cjs +0 -445
- package/dist/chunk-QCFBDFRS.mjs +0 -169
- package/dist/chunk-QCVE2OCI.cjs +0 -169
- package/dist/chunk-QCVIRVHE.mjs +0 -87
- package/dist/chunk-QE6VAKLT.mjs +0 -85
- package/dist/chunk-QGH2RQVF.mjs +0 -132
- package/dist/chunk-QHSH7IH4.mjs +0 -35
- package/dist/chunk-QIBP5EFA.cjs +0 -476
- package/dist/chunk-QNPEUFHQ.cjs +0 -27
- package/dist/chunk-QSG2IX4A.mjs +0 -109
- package/dist/chunk-QVKYGNVM.mjs +0 -27
- package/dist/chunk-QVYLBY73.mjs +0 -93
- package/dist/chunk-R3DS7A2T.mjs +0 -21
- package/dist/chunk-R3ZFQJEF.mjs +0 -616
- package/dist/chunk-R5A5KNVX.cjs +0 -20
- package/dist/chunk-R5JIFR6B.cjs +0 -42
- package/dist/chunk-RHAZ22ZN.mjs +0 -87
- package/dist/chunk-S34OBRMZ.mjs +0 -109
- package/dist/chunk-S3A45T7F.cjs +0 -166
- package/dist/chunk-S3FNNQHR.mjs +0 -31
- package/dist/chunk-S3JO3N4H.cjs +0 -17
- package/dist/chunk-S3ZEMCE6.mjs +0 -1120
- package/dist/chunk-S67OYZU7.mjs +0 -711
- package/dist/chunk-S6ENKNNG.mjs +0 -168
- package/dist/chunk-S6FJO323.cjs +0 -65
- package/dist/chunk-S7MTDRYA.cjs +0 -394
- package/dist/chunk-SAXPH6G5.mjs +0 -169
- package/dist/chunk-SBH2JLLF.cjs +0 -55
- package/dist/chunk-SEJ5N6SL.mjs +0 -38
- package/dist/chunk-SFGWNC43.mjs +0 -97
- package/dist/chunk-SGB4IW7K.mjs +0 -710
- package/dist/chunk-SGBZPZUW.mjs +0 -75
- package/dist/chunk-SHB3GYXI.mjs +0 -285
- package/dist/chunk-SK35NQKK.cjs +0 -27
- package/dist/chunk-SKK6UF5P.cjs +0 -755
- package/dist/chunk-SKNL7VA2.mjs +0 -42
- package/dist/chunk-SLQCDJSO.mjs +0 -18
- package/dist/chunk-SOR334EB.cjs +0 -149
- package/dist/chunk-SU7MH53P.cjs +0 -180
- package/dist/chunk-SVRTJOUF.cjs +0 -113
- package/dist/chunk-SZLNU3GJ.cjs +0 -293
- package/dist/chunk-T76H22WI.mjs +0 -2162
- package/dist/chunk-TFQG7TBC.mjs +0 -43
- package/dist/chunk-TI7UANHI.cjs +0 -77
- package/dist/chunk-TIWHTW3Q.cjs +0 -24
- package/dist/chunk-TKJZFIML.cjs +0 -20
- package/dist/chunk-TVGP4BBZ.mjs +0 -45
- package/dist/chunk-UFDAAQFX.cjs +0 -169
- package/dist/chunk-UFDV5N3C.cjs +0 -711
- package/dist/chunk-UIDWEU7M.mjs +0 -357
- package/dist/chunk-ULQOP5UI.mjs +0 -54
- package/dist/chunk-UP4CW6WP.mjs +0 -169
- package/dist/chunk-UQUEANTY.mjs +0 -2083
- package/dist/chunk-UQZ4AYTH.cjs +0 -168
- package/dist/chunk-US2QVW3E.cjs +0 -36
- package/dist/chunk-UXHS27O6.cjs +0 -75
- package/dist/chunk-UYIHRDE4.cjs +0 -97
- package/dist/chunk-V2FTMRS7.mjs +0 -223
- package/dist/chunk-VB6UCX3V.cjs +0 -421
- package/dist/chunk-VDRM36QB.cjs +0 -963
- package/dist/chunk-VEKFLAQM.cjs +0 -300
- package/dist/chunk-VHRS3MCW.cjs +0 -196
- package/dist/chunk-VNPXKF3G.cjs +0 -314
- package/dist/chunk-VQDBNVOO.cjs +0 -14
- package/dist/chunk-VQGKD7RV.mjs +0 -25
- package/dist/chunk-VTBXE6QG.mjs +0 -476
- package/dist/chunk-W3B4PKAW.mjs +0 -28
- package/dist/chunk-W4E7WMXE.cjs +0 -71
- package/dist/chunk-WBKEZXWE.cjs +0 -449
- package/dist/chunk-WDMIW6Q6.mjs +0 -145
- package/dist/chunk-WLHA5USH.cjs +0 -1514
- package/dist/chunk-WMAPPDMM.cjs +0 -28
- package/dist/chunk-WMBRZI5V.mjs +0 -416
- package/dist/chunk-WMHG64DA.mjs +0 -417
- package/dist/chunk-WMOGFOUJ.cjs +0 -223
- package/dist/chunk-WNSDDRNU.mjs +0 -24
- package/dist/chunk-WPJQN64R.mjs +0 -755
- package/dist/chunk-WROEFVNO.cjs +0 -236
- package/dist/chunk-WU7ZS3EM.cjs +0 -440
- package/dist/chunk-WWYXIECF.mjs +0 -929
- package/dist/chunk-X3GMHKO3.cjs +0 -62
- package/dist/chunk-X3NGFVRF.mjs +0 -237
- package/dist/chunk-XIZO5VDA.cjs +0 -1210
- package/dist/chunk-XJJVLDM6.mjs +0 -194
- package/dist/chunk-XJXBIP67.cjs +0 -277
- package/dist/chunk-XNPDONUH.mjs +0 -389
- package/dist/chunk-XSIRSMAS.cjs +0 -339
- package/dist/chunk-XUC6CFLE.mjs +0 -1514
- package/dist/chunk-XUGFRFD2.mjs +0 -39
- package/dist/chunk-XZNTNMHT.mjs +0 -15
- package/dist/chunk-Y5RG6B7S.mjs +0 -77
- package/dist/chunk-YFILVET3.mjs +0 -192
- package/dist/chunk-YFPGHF5F.cjs +0 -202
- package/dist/chunk-YHOCRI4H.mjs +0 -434
- package/dist/chunk-YJRZR7VU.cjs +0 -28
- package/dist/chunk-YKUEJ3MG.cjs +0 -229
- package/dist/chunk-YN2QEMMO.cjs +0 -714
- package/dist/chunk-YOZYCI6Z.mjs +0 -73
- package/dist/chunk-YWCYV7QC.cjs +0 -54
- package/dist/chunk-YX3DBN4M.cjs +0 -18
- package/dist/chunk-YYQVGKO5.mjs +0 -394
- package/dist/chunk-YZAKIXRL.cjs +0 -67
- package/dist/chunk-Z2RZJZIZ.mjs +0 -168
- package/dist/chunk-Z3HATSKO.mjs +0 -46
- package/dist/chunk-ZEG3OPIB.cjs +0 -93
- package/dist/chunk-ZLAT2CWY.mjs +0 -135
- package/dist/chunk-ZQRCSUSB.cjs +0 -25
- package/dist/chunk-ZTP3BJG6.cjs +0 -237
- package/dist/chunk-ZZGQD7A4.mjs +0 -435
- package/dist/chunk-ZZSRYEYU.mjs +0 -53
- package/dist/client-plugins-DEmIQo5R.d.mts +0 -3801
- package/dist/client-plugins-br48Hpmk.d.ts +0 -3801
- package/dist/devtools-5Q7VRKVH.cjs +0 -478
- package/dist/devtools-LJ4IGYGW.mjs +0 -478
- package/dist/devtools-client-CXQ6PXI6.cjs +0 -254
- package/dist/devtools-client-HJS2T34Y.mjs +0 -254
- package/dist/devtools-ui-5GBDIGMK.cjs +0 -1296
- package/dist/devtools-ui-5KDAVPIF.mjs +0 -1296
- package/dist/index-CyD9Rfso.d.ts +0 -48
- package/dist/index-_nhUt_dh.d.mts +0 -48
- package/dist/integration-orm-P2II2EBK.cjs +0 -14
- package/dist/integration-orm-RBKCIQYZ.mjs +0 -14
- package/dist/layers-UTB43B7A.mjs +0 -18
- package/dist/layers-VUWIOFEO.cjs +0 -18
- package/dist/manager-RT733VRK.mjs +0 -14
- package/dist/manager-XZ5TX7AO.cjs +0 -14
- package/dist/nitro-KDACKNHU.mjs +0 -654
- package/dist/nitro-NPGU6VBT.cjs +0 -654
- package/dist/node-module-bundle-L5L7JCZ4.mjs +0 -11
- package/dist/node-module-bundle-VAFZOXMJ.cjs +0 -11
- package/dist/plugin-DBBZ4JI2.cjs +0 -32
- package/dist/plugin-SYMK7PQ2.mjs +0 -32
- package/dist/production-runtime-BEbIyIUe.d.mts +0 -123
- package/dist/production-runtime-DsHjccVI.d.ts +0 -123
- package/dist/programmatic-routes-client-DlMKstmL.d.ts +0 -184
- package/dist/programmatic-routes-client-Dqr6tHND.d.mts +0 -184
- package/dist/render-plan-Bu6XOxNg.d.mts +0 -25
- package/dist/render-plan-MefW_fLC.d.ts +0 -25
- package/dist/request-BBe1B8Bk.d.mts +0 -24
- package/dist/request-CMsRJQK3.d.ts +0 -24
- package/dist/route-rendering-DTLNruPw.d.ts +0 -44
- package/dist/route-rendering-Do8tuYgh.d.mts +0 -44
- package/dist/router-BJreOZ-k.d.ts +0 -50
- package/dist/router-o2mZB9Y4.d.mts +0 -50
- package/dist/rsc-pipeline-4ZJ6GUVQ.cjs +0 -78
- package/dist/rsc-pipeline-KK6GFDET.mjs +0 -78
- package/dist/runtime-Cp5YZNz4.d.mts +0 -69
- package/dist/runtime-Da57KD8F.d.ts +0 -69
- package/dist/schema-dev-notice-77ZL23PL.cjs +0 -58
- package/dist/schema-dev-notice-BLXOS6U2.mjs +0 -58
- package/dist/search-client-G3RICOFU.cjs +0 -13
- package/dist/search-client-KR7YRIVR.mjs +0 -13
- package/dist/spa-router-CN2vc0GY.d.ts +0 -239
- package/dist/spa-router-COZLIB7k.d.mts +0 -239
- package/dist/utils-BAtVIHfw.d.mts +0 -48
- package/dist/utils-Y8MZrj4b.d.ts +0 -48
|
@@ -0,0 +1,800 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_ERROR_STYLES
|
|
3
|
+
} from "./chunk-XAXTTBUT.mjs";
|
|
4
|
+
import {
|
|
5
|
+
serializeFarmLlmsTxt
|
|
6
|
+
} from "./chunk-LAZK6UV7.mjs";
|
|
7
|
+
import {
|
|
8
|
+
stampFarmCspNonce
|
|
9
|
+
} from "./chunk-22W4FNTG.mjs";
|
|
10
|
+
import {
|
|
11
|
+
resolveFarmThemeConfig
|
|
12
|
+
} from "./chunk-YWPNIYUP.mjs";
|
|
13
|
+
import {
|
|
14
|
+
emitFarmAgentRead
|
|
15
|
+
} from "./chunk-N77JBPLC.mjs";
|
|
16
|
+
import {
|
|
17
|
+
integrationMiddlewareMayHandlePath
|
|
18
|
+
} from "./chunk-F6TLUMH7.mjs";
|
|
19
|
+
import {
|
|
20
|
+
compileMiddlewareConfig,
|
|
21
|
+
matchesCompiledMiddlewareConfig,
|
|
22
|
+
matchesMiddlewareRoute
|
|
23
|
+
} from "./chunk-EDPENAVO.mjs";
|
|
24
|
+
import {
|
|
25
|
+
omitFarmResponseBody
|
|
26
|
+
} from "./chunk-D7Y63SOY.mjs";
|
|
27
|
+
import {
|
|
28
|
+
createFarmAPIMiddlewarePathnames
|
|
29
|
+
} from "./chunk-LM2YOGDK.mjs";
|
|
30
|
+
import {
|
|
31
|
+
matchSegmentParts,
|
|
32
|
+
normalizePathname,
|
|
33
|
+
parseRoutePattern,
|
|
34
|
+
splitNormalizedPathname
|
|
35
|
+
} from "./chunk-MFQGU5CC.mjs";
|
|
36
|
+
import {
|
|
37
|
+
localizeFarmPathname
|
|
38
|
+
} from "./chunk-7S7AAK2D.mjs";
|
|
39
|
+
|
|
40
|
+
// src/routing/route-groups.ts
|
|
41
|
+
function isRouteGroupSegment(part) {
|
|
42
|
+
return part.startsWith("(") && part.endsWith(")");
|
|
43
|
+
}
|
|
44
|
+
function formatRouteSegment(segment) {
|
|
45
|
+
if (!segment.isDynamic) return segment.segment;
|
|
46
|
+
if (segment.isCatchAll) {
|
|
47
|
+
return segment.isOptional ? `[[...${segment.segment}]]` : `[...${segment.segment}]`;
|
|
48
|
+
}
|
|
49
|
+
return `[${segment.segment}]`;
|
|
50
|
+
}
|
|
51
|
+
function createRouteDirectoryPattern(route) {
|
|
52
|
+
const parts = route.filePath.replace(/\\/g, "/").split("/").filter(Boolean);
|
|
53
|
+
parts.pop();
|
|
54
|
+
if (parts.length === 0) return "/";
|
|
55
|
+
let segmentIndex = 0;
|
|
56
|
+
const directory = parts.map((part) => {
|
|
57
|
+
if (isRouteGroupSegment(part)) return part;
|
|
58
|
+
const segment = route.segments[segmentIndex++];
|
|
59
|
+
return segment ? formatRouteSegment(segment) : part;
|
|
60
|
+
});
|
|
61
|
+
return `/${directory.join("/")}`;
|
|
62
|
+
}
|
|
63
|
+
function stripRouteGroups(pattern) {
|
|
64
|
+
if (!pattern.includes("(")) return pattern;
|
|
65
|
+
const parts = pattern.split("/").filter((part) => part && !isRouteGroupSegment(part));
|
|
66
|
+
return parts.length === 0 ? "/" : `/${parts.join("/")}`;
|
|
67
|
+
}
|
|
68
|
+
function getRouteGroupScope(pattern) {
|
|
69
|
+
if (!pattern.includes("(")) return null;
|
|
70
|
+
const parts = pattern.split("/");
|
|
71
|
+
for (let index = parts.length - 1; index > 0; index--) {
|
|
72
|
+
if (isRouteGroupSegment(parts[index])) return parts.slice(0, index + 1).join("/");
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
function isInRouteGroupScope(directory, scope) {
|
|
77
|
+
if (scope === null) return true;
|
|
78
|
+
if (typeof directory !== "string") return false;
|
|
79
|
+
return directory === scope || directory.startsWith(`${scope}/`);
|
|
80
|
+
}
|
|
81
|
+
function getRouteDirectoryDepth(pattern) {
|
|
82
|
+
return pattern.split("/").filter(Boolean).length;
|
|
83
|
+
}
|
|
84
|
+
function routeBoundaryCoversDirectory(boundaryPattern, directory) {
|
|
85
|
+
const boundaryUrl = stripRouteGroups(boundaryPattern);
|
|
86
|
+
const routeUrl = stripRouteGroups(directory);
|
|
87
|
+
return (boundaryUrl === "/" || routeUrl === boundaryUrl || routeUrl.startsWith(`${boundaryUrl.replace(/\/$/, "")}/`)) && isInRouteGroupScope(directory, getRouteGroupScope(boundaryPattern));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// src/routing/layout-selector.ts
|
|
91
|
+
function createFarmLayoutSelector(layouts, resolveRouteDirectory) {
|
|
92
|
+
const prepared = layouts.map((layout) => {
|
|
93
|
+
const segments = layout.pattern === "/" ? [] : parseRoutePattern(layout.pattern);
|
|
94
|
+
return {
|
|
95
|
+
layout,
|
|
96
|
+
segments: segments.length === 0 ? null : segments,
|
|
97
|
+
groupScope: getRouteGroupScope(layout.pattern)
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
return (pathname, routeDirectory) => {
|
|
101
|
+
const applicable = [];
|
|
102
|
+
let parts;
|
|
103
|
+
let directory = routeDirectory;
|
|
104
|
+
for (const { layout, segments, groupScope } of prepared) {
|
|
105
|
+
if (segments !== null) {
|
|
106
|
+
parts ?? (parts = splitNormalizedPathname(normalizePathname(pathname.replace(/\/$/, "") || "/")));
|
|
107
|
+
if (matchSegmentParts(segments, parts, true) === null) continue;
|
|
108
|
+
}
|
|
109
|
+
if (groupScope !== null) {
|
|
110
|
+
if (directory === void 0) directory = resolveRouteDirectory?.(pathname) ?? null;
|
|
111
|
+
if (!isInRouteGroupScope(directory, groupScope)) continue;
|
|
112
|
+
}
|
|
113
|
+
applicable.push(layout);
|
|
114
|
+
}
|
|
115
|
+
return applicable;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function layoutsCanCoverSamePage(a, b) {
|
|
119
|
+
const scopeA = getRouteGroupScope(a);
|
|
120
|
+
const scopeB = getRouteGroupScope(b);
|
|
121
|
+
if (scopeA !== null && scopeB !== null && !isInRouteGroupScope(scopeA, scopeB) && !isInRouteGroupScope(scopeB, scopeA)) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
const segmentsA = a === "/" ? [] : parseRoutePattern(a);
|
|
125
|
+
const segmentsB = b === "/" ? [] : parseRoutePattern(b);
|
|
126
|
+
const length = Math.min(segmentsA.length, segmentsB.length);
|
|
127
|
+
for (let index = 0; index < length; index++) {
|
|
128
|
+
const segmentA = segmentsA[index];
|
|
129
|
+
const segmentB = segmentsB[index];
|
|
130
|
+
if (segmentA.type === "dynamic" && segmentA.catchAll) return true;
|
|
131
|
+
if (segmentB.type === "dynamic" && segmentB.catchAll) return true;
|
|
132
|
+
if (segmentA.type === "dynamic" || segmentB.type === "dynamic") continue;
|
|
133
|
+
if (segmentA.value !== segmentB.value) return false;
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
function getFarmServerTreeLayoutPatterns(layouts) {
|
|
138
|
+
const hydrating = layouts.filter((layout) => layout.shouldHydrate).map((layout) => layout.pattern);
|
|
139
|
+
const patterns = /* @__PURE__ */ new Set();
|
|
140
|
+
for (const layout of layouts) {
|
|
141
|
+
if (layout.serverTreeLayout || !layout.shouldHydrate && hydrating.some((pattern) => layoutsCanCoverSamePage(layout.pattern, pattern))) {
|
|
142
|
+
patterns.add(layout.pattern);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return patterns;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/navigation/render-plan.ts
|
|
149
|
+
function createFarmRouteRenderPlan(input = {}) {
|
|
150
|
+
const pageShouldHydrate = input.pageShouldHydrate === true;
|
|
151
|
+
const layoutShouldHydrate = input.layoutShouldHydrate === true;
|
|
152
|
+
const hydration = pageShouldHydrate ? layoutShouldHydrate ? "route-and-layout-islands" : "route-island" : layoutShouldHydrate ? "layout-island" : "none";
|
|
153
|
+
const rendering = input.rendering;
|
|
154
|
+
const cache = rendering?.ssg ? typeof rendering.revalidate === "number" && rendering.revalidate > 0 ? { mode: "revalidate", revalidate: rendering.revalidate } : { mode: "static" } : { mode: "dynamic" };
|
|
155
|
+
return {
|
|
156
|
+
version: 1,
|
|
157
|
+
output: "html",
|
|
158
|
+
navigation: "html-fragment",
|
|
159
|
+
hydration,
|
|
160
|
+
islandStrategy: hydration === "none" ? null : input.islandStrategy ?? "load",
|
|
161
|
+
cache
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function getFarmFragmentCacheControl(plan) {
|
|
165
|
+
if (plan.cache.mode === "static") {
|
|
166
|
+
return "public, max-age=0, s-maxage=31536000, immutable";
|
|
167
|
+
}
|
|
168
|
+
if (plan.cache.mode === "revalidate") {
|
|
169
|
+
const seconds = Math.max(1, plan.cache.revalidate ?? 1);
|
|
170
|
+
return `public, max-age=0, s-maxage=${seconds}, stale-while-revalidate=${seconds}`;
|
|
171
|
+
}
|
|
172
|
+
return "private, max-age=0";
|
|
173
|
+
}
|
|
174
|
+
function parseFarmLayoutChainHeader(value) {
|
|
175
|
+
if (!value || value.length > 8192) return [];
|
|
176
|
+
try {
|
|
177
|
+
const parsed = JSON.parse(value);
|
|
178
|
+
if (!Array.isArray(parsed) || parsed.length > 64) return [];
|
|
179
|
+
return parsed.filter(
|
|
180
|
+
(pattern) => typeof pattern === "string" && pattern.startsWith("/") && pattern.length <= 512
|
|
181
|
+
);
|
|
182
|
+
} catch {
|
|
183
|
+
return [];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function getSharedLayoutPrefixLength(current, next) {
|
|
187
|
+
let index = 0;
|
|
188
|
+
while (index < current.length && index < next.length && current[index] === next[index]) {
|
|
189
|
+
index++;
|
|
190
|
+
}
|
|
191
|
+
return index;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// src/server/full-document.ts
|
|
195
|
+
var CONTENTS_WRAPPER = /^<div\b[^>]*style="display\s*:\s*contents;?\s*"[^>]*>/i;
|
|
196
|
+
var HOISTED_HEAD_ELEMENT = /^(?:<(?:meta|link|base)\b[^>]*>|<title\b[^>]*>[\s\S]*?<\/title>|<script\b[^>]*\basync\b[^>]*><\/script>|<style\b[^>]*\bdata-precedence\b[^>]*>[\s\S]*?<\/style>)/i;
|
|
197
|
+
function peelDocumentPrefix(markup) {
|
|
198
|
+
let inner = markup.replace(/^\s+/, "");
|
|
199
|
+
let hoisted = "";
|
|
200
|
+
let match;
|
|
201
|
+
while (match = CONTENTS_WRAPPER.exec(inner) ?? HOISTED_HEAD_ELEMENT.exec(inner)) {
|
|
202
|
+
if (!/^<div/i.test(match[0])) hoisted += match[0];
|
|
203
|
+
inner = inner.slice(match[0].length).replace(/^\s+/, "");
|
|
204
|
+
}
|
|
205
|
+
return { inner, hoisted };
|
|
206
|
+
}
|
|
207
|
+
function restoreHoistedHead(document, hoisted) {
|
|
208
|
+
if (!hoisted) return document;
|
|
209
|
+
if (/<head[\s>]/i.test(document)) {
|
|
210
|
+
return document.replace(/<head\b[^>]*>/i, (open) => open + hoisted);
|
|
211
|
+
}
|
|
212
|
+
return document.replace(/<html\b[^>]*>/i, (open) => `${open}<head>${hoisted}</head>`);
|
|
213
|
+
}
|
|
214
|
+
function extractFarmFullDocument(markup) {
|
|
215
|
+
const { inner, hoisted } = peelDocumentPrefix(markup);
|
|
216
|
+
if (!/^<!doctype/i.test(inner) && !/^<html[\s>]/i.test(inner)) return null;
|
|
217
|
+
const start = markup.search(/<!doctype|<html[\s>]/i);
|
|
218
|
+
const lower = markup.toLowerCase();
|
|
219
|
+
let closeIndex = lower.lastIndexOf("</html>");
|
|
220
|
+
if (lower.length !== markup.length) {
|
|
221
|
+
closeIndex = -1;
|
|
222
|
+
const closing = /<\/html>/gi;
|
|
223
|
+
let match;
|
|
224
|
+
while (match = closing.exec(markup)) closeIndex = match.index;
|
|
225
|
+
}
|
|
226
|
+
if (start < 0 || closeIndex < 0) return null;
|
|
227
|
+
const closeEnd = closeIndex + "</html>".length;
|
|
228
|
+
let document = markup.slice(start, closeEnd);
|
|
229
|
+
const streamedTail = markup.slice(closeEnd).replace(/^(?:\s*<\/div>)+/i, "").trim();
|
|
230
|
+
if (streamedTail) {
|
|
231
|
+
document = document.replace(/<\/body>/i, () => `${streamedTail}</body>`);
|
|
232
|
+
}
|
|
233
|
+
return restoreHoistedHead(document, hoisted);
|
|
234
|
+
}
|
|
235
|
+
function classifyFarmDocumentPrefix(markup) {
|
|
236
|
+
const { inner } = peelDocumentPrefix(markup);
|
|
237
|
+
if (/^<!doctype/i.test(inner) || /^<html[\s>]/i.test(inner)) return "document";
|
|
238
|
+
return inner === "" ? "pending" : "fragment";
|
|
239
|
+
}
|
|
240
|
+
function ensureFarmDocumentHead(markup) {
|
|
241
|
+
if (/<head[\s>]/i.test(markup)) return markup;
|
|
242
|
+
return markup.replace(/<html([^>]*)>/i, (_match, attributes) => {
|
|
243
|
+
return `<html${attributes}><head></head>`;
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function ensureFarmDocumentRoot(markup) {
|
|
247
|
+
if (/<body\b[^>]*>\s*<div\b[^>]*\sid=["']root["']/i.test(markup)) return markup;
|
|
248
|
+
return markup.replace(
|
|
249
|
+
/<body\b([^>]*)>/i,
|
|
250
|
+
(_match, attributes) => `<body${attributes}><div id="root">`
|
|
251
|
+
).replace(/<\/body>/i, () => "</div></body>");
|
|
252
|
+
}
|
|
253
|
+
function hasFarmDocumentIcon(markup) {
|
|
254
|
+
return /<link\b[^>]*\brel=["']?(?:shortcut )?icon\b/i.test(markup);
|
|
255
|
+
}
|
|
256
|
+
function removeFarmDocumentTitles(markup) {
|
|
257
|
+
return markup.replace(/<title\b[^>]*>[\s\S]*?<\/title>\s*/gi, "");
|
|
258
|
+
}
|
|
259
|
+
function ensureFarmDocumentMeta(markup, viewport = "") {
|
|
260
|
+
const head = /<head\b[^>]*>([\s\S]*?)<\/head>/i.exec(markup)?.[1] ?? "";
|
|
261
|
+
const hasNamedMeta = (name) => new RegExp(`<meta\\b[^>]*\\bname=["']?${name}(?=["'\\s/>])`, "i").test(head);
|
|
262
|
+
const tags = [
|
|
263
|
+
/<meta\b[^>]*\bcharset\s*=/i.test(head) ? "" : '<meta charset="utf-8">',
|
|
264
|
+
...(viewport.match(/<meta\b[^>]*>/gi) ?? []).filter((tag) => {
|
|
265
|
+
const name = /\bname="([\w-]+)"/.exec(tag)?.[1];
|
|
266
|
+
return !name || !hasNamedMeta(name);
|
|
267
|
+
})
|
|
268
|
+
].filter(Boolean);
|
|
269
|
+
if (tags.length === 0) return markup;
|
|
270
|
+
return markup.replace(/<head\b[^>]*>/i, (open) => `${open}${tags.join("")}`);
|
|
271
|
+
}
|
|
272
|
+
function composeFarmFullDocument(documentHtml, assets) {
|
|
273
|
+
let html = ensureFarmDocumentMeta(ensureFarmDocumentHead(documentHtml), assets.viewport);
|
|
274
|
+
if (assets.htmlAttributes) {
|
|
275
|
+
html = html.replace(/<html\b([^>]*)>/i, (_match, attrs) => {
|
|
276
|
+
let nextAttributes = attrs;
|
|
277
|
+
for (const name of assets.replaceHtmlAttributes ?? []) {
|
|
278
|
+
const escapedName = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
279
|
+
nextAttributes = nextAttributes.replace(
|
|
280
|
+
new RegExp("\\s+" + escapedName + `=(?:"[^"]*"|'[^']*'|[^\\s>]+)`, "gi"),
|
|
281
|
+
""
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
return `<html${nextAttributes}${assets.htmlAttributes}>`;
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
html = ensureFarmDocumentRoot(html);
|
|
288
|
+
const headAssets = [
|
|
289
|
+
assets.fallbackIcon && !hasFarmDocumentIcon(html) ? '<link rel="icon" href="data:,">' : "",
|
|
290
|
+
assets.headAssets
|
|
291
|
+
].filter(Boolean).join("\n ");
|
|
292
|
+
if (headAssets) {
|
|
293
|
+
html = html.replace(/<\/head>/i, () => ` ${headAssets}
|
|
294
|
+
</head>`);
|
|
295
|
+
}
|
|
296
|
+
if (assets.bodyFooter) {
|
|
297
|
+
html = html.replace(/<\/body>/i, () => ` ${assets.bodyFooter}
|
|
298
|
+
</body>`);
|
|
299
|
+
}
|
|
300
|
+
return /^\s*<!doctype/i.test(html) ? html : `<!DOCTYPE html>
|
|
301
|
+
${html}`;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// src/middleware/may-handle.ts
|
|
305
|
+
function hasFarmMiddlewareConfig(config) {
|
|
306
|
+
if (!config) return false;
|
|
307
|
+
if (Array.isArray(config)) return config.length > 0;
|
|
308
|
+
const configRecord = config;
|
|
309
|
+
return Boolean(
|
|
310
|
+
configRecord.matcher || configRecord.exclude || configRecord.runtime || configRecord.handler || Array.isArray(configRecord.handlers) && configRecord.handlers.length > 0
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
function configMiddlewareMayHandlePath(config, pathname) {
|
|
314
|
+
if (!hasFarmMiddlewareConfig(config)) return false;
|
|
315
|
+
const entries = Array.isArray(config) ? config : [config];
|
|
316
|
+
return entries.some((entry) => {
|
|
317
|
+
if (!entry.matcher && !entry.exclude) return true;
|
|
318
|
+
const matchers = entry.matcher ? (Array.isArray(entry.matcher) ? entry.matcher : [entry.matcher]).map(
|
|
319
|
+
(matcher) => (
|
|
320
|
+
// A request-aware matcher cannot be proven safe at build time.
|
|
321
|
+
typeof matcher === "function" ? () => true : matcher
|
|
322
|
+
)
|
|
323
|
+
) : void 0;
|
|
324
|
+
const compiled = compileMiddlewareConfig({ matcher: matchers, exclude: entry.exclude });
|
|
325
|
+
return matchesCompiledMiddlewareConfig(pathname, compiled, {}).matched;
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
function appMiddlewareMayHandlePath(middlewareRoutes, pathname) {
|
|
329
|
+
return middlewareRoutes.some((route) => matchesMiddlewareRoute(pathname, route).matched);
|
|
330
|
+
}
|
|
331
|
+
var CATCH_ALL_PROBE = "/__farm-listing-probe__/0";
|
|
332
|
+
function isPathSpecificMatcher(matcher) {
|
|
333
|
+
if (typeof matcher === "function") return false;
|
|
334
|
+
const compiled = compileMiddlewareConfig({ matcher });
|
|
335
|
+
return !matchesCompiledMiddlewareConfig(CATCH_ALL_PROBE, compiled, {}).matched;
|
|
336
|
+
}
|
|
337
|
+
function pathSpecificConfigMiddlewareCovers(config, pathname) {
|
|
338
|
+
if (!hasFarmMiddlewareConfig(config)) return false;
|
|
339
|
+
const entries = Array.isArray(config) ? config : [config];
|
|
340
|
+
return entries.some((entry) => {
|
|
341
|
+
if (!entry.matcher) return false;
|
|
342
|
+
const matchers = (Array.isArray(entry.matcher) ? entry.matcher : [entry.matcher]).filter(
|
|
343
|
+
isPathSpecificMatcher
|
|
344
|
+
);
|
|
345
|
+
if (matchers.length === 0) return false;
|
|
346
|
+
const compiled = compileMiddlewareConfig({ matcher: matchers, exclude: entry.exclude });
|
|
347
|
+
return matchesCompiledMiddlewareConfig(pathname, compiled, {}).matched;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
function farmPathGuardCoversPage(options, pathname) {
|
|
351
|
+
return appMiddlewareMayHandlePath(
|
|
352
|
+
options.middlewareRoutes.filter((route) => route.path !== "/"),
|
|
353
|
+
pathname
|
|
354
|
+
) || pathSpecificConfigMiddlewareCovers(options.config.middleware, pathname) || integrationMiddlewareMayHandlePath(options.config.integrations, pathname, CATCH_ALL_PROBE);
|
|
355
|
+
}
|
|
356
|
+
function farmPathGuardCoversEndpoint(options, path, apiServerBasePath) {
|
|
357
|
+
return createFarmAPIMiddlewarePathnames(apiServerBasePath)(path).some(
|
|
358
|
+
(pathname) => farmPathGuardCoversPage(options, pathname)
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// src/i18n/alternates.ts
|
|
363
|
+
function renderFarmLocaleAlternateLinks(pathname, config, options = {}) {
|
|
364
|
+
if (config.routing === "none") return "";
|
|
365
|
+
const base = resolveAlternateBase(options);
|
|
366
|
+
const link = (hreflang, locale) => `<link rel="alternate" hreflang="${escapeHtmlAttribute(hreflang)}" href="${escapeHtmlAttribute(
|
|
367
|
+
resolveAlternateHref(localizeFarmPathname(pathname, locale, config), base)
|
|
368
|
+
)}">`;
|
|
369
|
+
const links = config.locales.map((locale) => link(locale, locale));
|
|
370
|
+
links.push(link("x-default", config.defaultLocale));
|
|
371
|
+
return links.join("");
|
|
372
|
+
}
|
|
373
|
+
function resolveAlternateBase(options) {
|
|
374
|
+
for (const candidate of [options.metadataBase, options.origin]) {
|
|
375
|
+
if (typeof candidate !== "string" && !(candidate instanceof URL)) continue;
|
|
376
|
+
try {
|
|
377
|
+
const url = new URL(candidate);
|
|
378
|
+
if (url.protocol === "http:" || url.protocol === "https:") return url;
|
|
379
|
+
} catch {
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return void 0;
|
|
383
|
+
}
|
|
384
|
+
function resolveAlternateHref(pathname, base) {
|
|
385
|
+
if (!base) return pathname;
|
|
386
|
+
return new URL(pathname.replace(/^[/\\]+/, "/"), base).href;
|
|
387
|
+
}
|
|
388
|
+
function escapeHtmlAttribute(value) {
|
|
389
|
+
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// src/navigation/late-navigation-recovery.ts
|
|
393
|
+
var PAGE_CONTAINER_ID = "__farm_page__";
|
|
394
|
+
var TEMPLATE_ID = "__farm_late_not_found__";
|
|
395
|
+
function serializeForInlineScript(value) {
|
|
396
|
+
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
397
|
+
}
|
|
398
|
+
function isLateRedirectTarget(url) {
|
|
399
|
+
try {
|
|
400
|
+
const protocol = new URL(url, "https://farm.invalid").protocol;
|
|
401
|
+
return protocol === "http:" || protocol === "https:";
|
|
402
|
+
} catch {
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
function createLateRedirectRecovery(url, nonce) {
|
|
407
|
+
if (!isLateRedirectTarget(url)) return "";
|
|
408
|
+
return stampFarmCspNonce(
|
|
409
|
+
`<script>window.location.replace(${serializeForInlineScript(url)})</script>`,
|
|
410
|
+
nonce
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
function createLateNotFoundRecovery(content, nonce) {
|
|
414
|
+
return `<template id="${TEMPLATE_ID}">${content}</template>` + stampFarmCspNonce(
|
|
415
|
+
`<script>(function(){var t=document.getElementById("${TEMPLATE_ID}");var p=document.getElementById("${PAGE_CONTAINER_ID}");if(t&&p){p.replaceChildren(t.content.cloneNode(true));}if(t)t.remove();document.documentElement.dataset.farmLateNotFound="true";var m=document.createElement("meta");m.name="robots";m.content="noindex";document.head.appendChild(m);})();</script>`,
|
|
416
|
+
nonce
|
|
417
|
+
);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// src/metadata-route.ts
|
|
421
|
+
function isResponse(value) {
|
|
422
|
+
return typeof Response !== "undefined" && (value instanceof Response || Boolean(
|
|
423
|
+
value && typeof value === "object" && typeof value.arrayBuffer === "function" && value.headers
|
|
424
|
+
));
|
|
425
|
+
}
|
|
426
|
+
function isRecord(value) {
|
|
427
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
428
|
+
}
|
|
429
|
+
function resolveCacheControl(revalidate) {
|
|
430
|
+
if (revalidate === false) {
|
|
431
|
+
return "public, max-age=31536000, immutable";
|
|
432
|
+
}
|
|
433
|
+
if (typeof revalidate === "number" && Number.isFinite(revalidate) && revalidate > 0) {
|
|
434
|
+
return `public, s-maxage=${Math.floor(revalidate)}, stale-while-revalidate=300`;
|
|
435
|
+
}
|
|
436
|
+
return "public, max-age=0, must-revalidate";
|
|
437
|
+
}
|
|
438
|
+
function escapeXml(value) {
|
|
439
|
+
return String(value).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
440
|
+
}
|
|
441
|
+
function serializeSitemap(value) {
|
|
442
|
+
if (!Array.isArray(value)) {
|
|
443
|
+
throw new TypeError("sitemap.ts must return an array or a Response");
|
|
444
|
+
}
|
|
445
|
+
const entries = value.map((candidate, index) => {
|
|
446
|
+
if (!isRecord(candidate) || typeof candidate.url !== "string" || !candidate.url) {
|
|
447
|
+
throw new TypeError(`sitemap.ts entry ${index} must include a non-empty url`);
|
|
448
|
+
}
|
|
449
|
+
return candidate;
|
|
450
|
+
});
|
|
451
|
+
const hasLanguageAlternates = entries.some(
|
|
452
|
+
(entry) => entry.alternates?.languages && Object.keys(entry.alternates.languages).length > 0
|
|
453
|
+
);
|
|
454
|
+
const namespace = hasLanguageAlternates ? ' xmlns:xhtml="http://www.w3.org/1999/xhtml"' : "";
|
|
455
|
+
const lines = [
|
|
456
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
457
|
+
`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"${namespace}>`
|
|
458
|
+
];
|
|
459
|
+
for (const entry of entries) {
|
|
460
|
+
lines.push(" <url>", ` <loc>${escapeXml(entry.url)}</loc>`);
|
|
461
|
+
if (entry.lastModified !== void 0) {
|
|
462
|
+
const lastModified = entry.lastModified instanceof Date ? entry.lastModified.toISOString() : entry.lastModified;
|
|
463
|
+
lines.push(` <lastmod>${escapeXml(lastModified)}</lastmod>`);
|
|
464
|
+
}
|
|
465
|
+
if (entry.changeFrequency) {
|
|
466
|
+
lines.push(` <changefreq>${escapeXml(entry.changeFrequency)}</changefreq>`);
|
|
467
|
+
}
|
|
468
|
+
if (entry.priority !== void 0) {
|
|
469
|
+
lines.push(` <priority>${escapeXml(entry.priority)}</priority>`);
|
|
470
|
+
}
|
|
471
|
+
for (const [language, href] of Object.entries(entry.alternates?.languages || {})) {
|
|
472
|
+
lines.push(
|
|
473
|
+
` <xhtml:link rel="alternate" hreflang="${escapeXml(language)}" href="${escapeXml(href)}" />`
|
|
474
|
+
);
|
|
475
|
+
}
|
|
476
|
+
lines.push(" </url>");
|
|
477
|
+
}
|
|
478
|
+
lines.push("</urlset>");
|
|
479
|
+
return `${lines.join("\n")}
|
|
480
|
+
`;
|
|
481
|
+
}
|
|
482
|
+
function toArray(value) {
|
|
483
|
+
return value === void 0 ? [] : Array.isArray(value) ? value : [value];
|
|
484
|
+
}
|
|
485
|
+
function serializeRobots(value) {
|
|
486
|
+
if (!isRecord(value)) {
|
|
487
|
+
throw new TypeError("robots.ts must return a robots object or a Response");
|
|
488
|
+
}
|
|
489
|
+
const robots = value;
|
|
490
|
+
const rules = toArray(robots.rules);
|
|
491
|
+
if (rules.length === 0) {
|
|
492
|
+
throw new TypeError("robots.ts must return at least one rule");
|
|
493
|
+
}
|
|
494
|
+
const sections = rules.map((rule, index) => {
|
|
495
|
+
if (!isRecord(rule)) {
|
|
496
|
+
throw new TypeError(`robots.ts rule ${index} must be an object`);
|
|
497
|
+
}
|
|
498
|
+
const userAgents = toArray(rule.userAgent).filter(
|
|
499
|
+
(userAgent) => typeof userAgent === "string" && Boolean(userAgent)
|
|
500
|
+
);
|
|
501
|
+
if (userAgents.length === 0) {
|
|
502
|
+
throw new TypeError(`robots.ts rule ${index} must include a userAgent`);
|
|
503
|
+
}
|
|
504
|
+
const lines = userAgents.map((userAgent) => `User-agent: ${userAgent}`);
|
|
505
|
+
for (const allow of toArray(rule.allow)) lines.push(`Allow: ${allow}`);
|
|
506
|
+
for (const disallow of toArray(rule.disallow)) lines.push(`Disallow: ${disallow}`);
|
|
507
|
+
if (rule.crawlDelay !== void 0) lines.push(`Crawl-delay: ${rule.crawlDelay}`);
|
|
508
|
+
return lines.join("\n");
|
|
509
|
+
});
|
|
510
|
+
const globalLines = [
|
|
511
|
+
...toArray(robots.sitemap).map((sitemap) => `Sitemap: ${sitemap}`),
|
|
512
|
+
...robots.host ? [`Host: ${robots.host}`] : []
|
|
513
|
+
];
|
|
514
|
+
return `${[...sections, ...globalLines.length ? [globalLines.join("\n")] : []].join("\n\n")}
|
|
515
|
+
`;
|
|
516
|
+
}
|
|
517
|
+
function serializeManifest(value) {
|
|
518
|
+
if (!isRecord(value)) {
|
|
519
|
+
throw new TypeError("manifest.ts must return a manifest object or a Response");
|
|
520
|
+
}
|
|
521
|
+
return `${JSON.stringify(value, null, 2)}
|
|
522
|
+
`;
|
|
523
|
+
}
|
|
524
|
+
function createFarmMetadataRouteResponse(kind, value, routeModule = {}, options = {}) {
|
|
525
|
+
const method = (options.method || "GET").toUpperCase();
|
|
526
|
+
if (method !== "GET" && method !== "HEAD") {
|
|
527
|
+
return new Response(null, { status: 405, headers: { Allow: "GET, HEAD" } });
|
|
528
|
+
}
|
|
529
|
+
if ((kind === "llms" || kind === "llms-full") && options.request) {
|
|
530
|
+
emitFarmAgentRead(options.request, kind, isResponse(value) ? value.status : 200);
|
|
531
|
+
}
|
|
532
|
+
if (isResponse(value)) {
|
|
533
|
+
return method === "HEAD" ? omitFarmResponseBody(value) : value;
|
|
534
|
+
}
|
|
535
|
+
const body = kind === "sitemap" ? serializeSitemap(value) : kind === "robots" ? serializeRobots(value) : kind === "llms" || kind === "llms-full" ? serializeFarmLlmsTxt(value) : serializeManifest(value);
|
|
536
|
+
const contentType = kind === "sitemap" ? "application/xml; charset=utf-8" : kind === "robots" || kind === "llms" || kind === "llms-full" ? "text/plain; charset=utf-8" : "application/manifest+json; charset=utf-8";
|
|
537
|
+
return new Response(method === "HEAD" ? null : body, {
|
|
538
|
+
headers: {
|
|
539
|
+
"Content-Type": contentType,
|
|
540
|
+
"Cache-Control": resolveCacheControl(routeModule.revalidate),
|
|
541
|
+
"X-Content-Type-Options": "nosniff"
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
// src/components/error-page.ts
|
|
547
|
+
var ERROR_STATUS_TEXT = {
|
|
548
|
+
400: "Bad Request",
|
|
549
|
+
401: "Unauthorized",
|
|
550
|
+
402: "Payment Required",
|
|
551
|
+
403: "Forbidden",
|
|
552
|
+
404: "Not Found",
|
|
553
|
+
405: "Method Not Allowed",
|
|
554
|
+
406: "Not Acceptable",
|
|
555
|
+
408: "Request Timeout",
|
|
556
|
+
409: "Conflict",
|
|
557
|
+
410: "Gone",
|
|
558
|
+
411: "Length Required",
|
|
559
|
+
412: "Precondition Failed",
|
|
560
|
+
413: "Content Too Large",
|
|
561
|
+
414: "URI Too Long",
|
|
562
|
+
415: "Unsupported Media Type",
|
|
563
|
+
416: "Range Not Satisfiable",
|
|
564
|
+
418: "I'm a Teapot",
|
|
565
|
+
422: "Unprocessable Content",
|
|
566
|
+
423: "Locked",
|
|
567
|
+
424: "Failed Dependency",
|
|
568
|
+
425: "Too Early",
|
|
569
|
+
426: "Upgrade Required",
|
|
570
|
+
428: "Precondition Required",
|
|
571
|
+
429: "Too Many Requests",
|
|
572
|
+
431: "Request Header Fields Too Large",
|
|
573
|
+
451: "Unavailable For Legal Reasons",
|
|
574
|
+
500: "Internal Server Error",
|
|
575
|
+
501: "Not Implemented",
|
|
576
|
+
502: "Bad Gateway",
|
|
577
|
+
503: "Service Unavailable",
|
|
578
|
+
504: "Gateway Timeout",
|
|
579
|
+
505: "HTTP Version Not Supported",
|
|
580
|
+
506: "Variant Also Negotiates",
|
|
581
|
+
507: "Insufficient Storage",
|
|
582
|
+
508: "Loop Detected",
|
|
583
|
+
510: "Not Extended",
|
|
584
|
+
511: "Network Authentication Required"
|
|
585
|
+
};
|
|
586
|
+
var ERROR_TITLES = {
|
|
587
|
+
400: "This request could not be completed",
|
|
588
|
+
401: "Authentication is required",
|
|
589
|
+
403: "You do not have access to this page",
|
|
590
|
+
404: "This page could not be found",
|
|
591
|
+
405: "This request method is not supported",
|
|
592
|
+
408: "The request took too long",
|
|
593
|
+
409: "The request conflicts with the current state",
|
|
594
|
+
410: "This resource is no longer available",
|
|
595
|
+
413: "The request is too large",
|
|
596
|
+
422: "The request could not be processed",
|
|
597
|
+
429: "Too many requests were sent",
|
|
598
|
+
500: "Something went wrong",
|
|
599
|
+
501: "This operation is not implemented",
|
|
600
|
+
502: "An upstream service returned an invalid response",
|
|
601
|
+
503: "The service is temporarily unavailable",
|
|
602
|
+
504: "An upstream service took too long to respond"
|
|
603
|
+
};
|
|
604
|
+
var ERROR_PUBLIC_MESSAGES = {
|
|
605
|
+
400: "Check the request details, then try again.",
|
|
606
|
+
401: "Sign in and try this request again.",
|
|
607
|
+
403: "Use an account with the required permissions or return home.",
|
|
608
|
+
404: "Check the address or return to the home page.",
|
|
609
|
+
405: "Use a supported request method and try again.",
|
|
610
|
+
408: "Try the request again in a moment.",
|
|
611
|
+
409: "Refresh the page, review the latest state, and try again.",
|
|
612
|
+
410: "Return home to continue browsing.",
|
|
613
|
+
413: "Reduce the request size and try again.",
|
|
614
|
+
422: "Review the request data and try again.",
|
|
615
|
+
429: "Wait a moment before trying again.",
|
|
616
|
+
500: "The application ran into an unexpected problem. Try again in a moment.",
|
|
617
|
+
501: "This operation is not available yet.",
|
|
618
|
+
502: "Try again after the upstream service recovers.",
|
|
619
|
+
503: "Try again in a moment.",
|
|
620
|
+
504: "Try again after the upstream service recovers."
|
|
621
|
+
};
|
|
622
|
+
function escapeHtml(value) {
|
|
623
|
+
return String(value ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
624
|
+
}
|
|
625
|
+
function serializeJsonForHtml(value) {
|
|
626
|
+
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
627
|
+
}
|
|
628
|
+
function normalizeErrorStatus(status) {
|
|
629
|
+
const value = typeof status === "string" && status.trim() ? Number(status) : status;
|
|
630
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 400 && value <= 599 ? value : void 0;
|
|
631
|
+
}
|
|
632
|
+
function resolveDefaultErrorStatus(error) {
|
|
633
|
+
if (error && typeof error === "object") {
|
|
634
|
+
const candidate = error;
|
|
635
|
+
return normalizeErrorStatus(candidate.status) ?? normalizeErrorStatus(candidate.statusCode) ?? 500;
|
|
636
|
+
}
|
|
637
|
+
return 500;
|
|
638
|
+
}
|
|
639
|
+
function getDefaultErrorStatusText(statusCode) {
|
|
640
|
+
return ERROR_STATUS_TEXT[statusCode] || (statusCode >= 500 ? "Server Error" : "Request Error");
|
|
641
|
+
}
|
|
642
|
+
function getDefaultErrorTitle(statusCode) {
|
|
643
|
+
return ERROR_TITLES[statusCode] || (statusCode >= 500 ? "The server could not complete the request" : "The request could not be completed");
|
|
644
|
+
}
|
|
645
|
+
function getDefaultErrorPublicMessage(statusCode) {
|
|
646
|
+
return ERROR_PUBLIC_MESSAGES[statusCode] || "Try again or return to the home page.";
|
|
647
|
+
}
|
|
648
|
+
function createSourceFrameMarkup(sourceFrame) {
|
|
649
|
+
if (!sourceFrame) {
|
|
650
|
+
return `<p class="farm-default-error__details-empty">Source location is unavailable. Copy the debug report to inspect the filtered stack trace.</p>`;
|
|
651
|
+
}
|
|
652
|
+
const lines = sourceFrame.lines.map(
|
|
653
|
+
(line) => `<span class="farm-default-error__source-line${line.highlight ? " farm-default-error__source-line--active" : ""}"><span class="farm-default-error__source-gutter">${line.highlight ? ">" : " "} ${line.number}</span><span class="farm-default-error__source-text">${escapeHtml(line.content || " ")}</span></span>`
|
|
654
|
+
).join("\n");
|
|
655
|
+
return `<div class="farm-default-error__source"><p class="farm-default-error__source-path">${escapeHtml(sourceFrame.file)}:${sourceFrame.line}:${sourceFrame.column}</p><pre class="farm-default-error__source-code" tabindex="0"><code>${lines}</code></pre></div>`;
|
|
656
|
+
}
|
|
657
|
+
function createDebugReport(options) {
|
|
658
|
+
const statusText = options.statusText || getDefaultErrorStatusText(options.statusCode);
|
|
659
|
+
const sourceFrame = options.sourceFrame;
|
|
660
|
+
const source = sourceFrame ? [
|
|
661
|
+
`\`${sourceFrame.file}:${sourceFrame.line}:${sourceFrame.column}\``,
|
|
662
|
+
"",
|
|
663
|
+
"```text",
|
|
664
|
+
...sourceFrame.lines.map(
|
|
665
|
+
(line) => `${line.highlight ? ">" : " "} ${String(line.number).padStart(4, " ")} | ${line.content}`
|
|
666
|
+
),
|
|
667
|
+
"```"
|
|
668
|
+
].join("\n") : "Source frame unavailable.";
|
|
669
|
+
return [
|
|
670
|
+
"# Farm.js debug report",
|
|
671
|
+
"",
|
|
672
|
+
"## Error",
|
|
673
|
+
`- Status: ${options.statusCode} ${statusText}`,
|
|
674
|
+
`- Name: ${options.errorName || "Error"}`,
|
|
675
|
+
`- Message: ${options.message || getDefaultErrorPublicMessage(options.statusCode)}`,
|
|
676
|
+
`- Request: ${(options.method || "GET").toUpperCase()} ${options.requestPath || "/"}`,
|
|
677
|
+
"",
|
|
678
|
+
"## Runtime",
|
|
679
|
+
`- Farm.js: ${options.farmVersion || "unknown"}`,
|
|
680
|
+
`- Node.js: ${options.nodeVersion || "unknown"}`,
|
|
681
|
+
`- Mode: ${options.mode || "development"}`,
|
|
682
|
+
"",
|
|
683
|
+
"## Source",
|
|
684
|
+
source,
|
|
685
|
+
"",
|
|
686
|
+
"## Filtered stack",
|
|
687
|
+
"```text",
|
|
688
|
+
options.stack || "Stack trace unavailable.",
|
|
689
|
+
"```"
|
|
690
|
+
].join("\n");
|
|
691
|
+
}
|
|
692
|
+
var ERROR_PAGE_SCRIPT = `<script>(function(){var root=document.querySelector("[data-farm-default-error]");if(!root)return;var retry=root.querySelector("[data-farm-error-retry]");var back=root.querySelector("[data-farm-error-back]");if(retry)retry.addEventListener("click",function(){window.location.reload()});if(back)back.addEventListener("click",function(){if(window.history.length>1){window.history.back()}else{window.location.assign("/")}})})();</script>`;
|
|
693
|
+
var ERROR_COPY_SCRIPT = `<script>(function(){var root=document.querySelector("[data-farm-default-error]");var copy=root&&root.querySelector("[data-farm-error-copy]");var report=document.getElementById("farm-default-error-report");if(!copy||!report)return;copy.addEventListener("click",async function(){var value="";try{value=JSON.parse(report.textContent||'""')}catch(_error){value=report.textContent||""}try{if(navigator.clipboard&&window.isSecureContext){await navigator.clipboard.writeText(value)}else{var area=document.createElement("textarea");area.value=value;area.setAttribute("readonly","");area.style.position="fixed";area.style.opacity="0";document.body.appendChild(area);area.select();document.execCommand("copy");area.remove()}var label=copy.querySelector("[data-farm-error-copy-label]");var status=copy.querySelector("[data-farm-error-copy-status]");if(label)label.textContent="COPIED";if(status)status.textContent="Debug report copied";window.setTimeout(function(){if(label)label.textContent="COPY DEBUG REPORT";if(status)status.textContent=""},1800)}catch(_error){var status=copy.querySelector("[data-farm-error-copy-status]");if(status)status.textContent="Unable to copy the debug report"}})})();</script>`;
|
|
694
|
+
var ERROR_DOCS_ICON = `<svg class="farm-default-error__docs-icon" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M2.75 2.75h3.5A1.75 1.75 0 0 1 8 4.5v8.75a1.75 1.75 0 0 0-1.75-1.75h-3.5v-8.75Z"/><path d="M13.25 2.75h-3.5A1.75 1.75 0 0 0 8 4.5v8.75a1.75 1.75 0 0 1 1.75-1.75h3.5v-8.75Z"/></svg>`;
|
|
695
|
+
function createDefaultErrorMarkup(options = {}) {
|
|
696
|
+
const statusCode = normalizeErrorStatus(options.statusCode) ?? 500;
|
|
697
|
+
const statusText = options.statusText || getDefaultErrorStatusText(statusCode);
|
|
698
|
+
const development = options.development === true;
|
|
699
|
+
const title = getDefaultErrorTitle(statusCode);
|
|
700
|
+
const message = development && options.message ? options.message : getDefaultErrorPublicMessage(statusCode);
|
|
701
|
+
const requestPath = options.requestPath || "/";
|
|
702
|
+
const method = (options.method || "GET").toUpperCase();
|
|
703
|
+
const isServerError = statusCode >= 500;
|
|
704
|
+
const details = development ? `<section class="farm-default-error__details" aria-labelledby="farm-default-error-details-title"><div class="farm-default-error__details-header"><h2 id="farm-default-error-details-title" class="farm-default-error__details-title">Technical details</h2></div>${createSourceFrameMarkup(options.sourceFrame)}<p class="farm-default-error__meta">Farm.js v${escapeHtml(options.farmVersion || "unknown")} \xB7 ${escapeHtml(options.mode || "development")} \xB7 Node.js ${escapeHtml(options.nodeVersion || "unknown")}</p></section>` : "";
|
|
705
|
+
const report = development ? `<script id="farm-default-error-report" type="application/json">${serializeJsonForHtml(createDebugReport({ ...options, statusCode, statusText, requestPath, method }))}</script>${ERROR_COPY_SCRIPT}` : "";
|
|
706
|
+
const primaryAction = isServerError ? `<button class="farm-default-error__action farm-default-error__action--primary" type="button" data-farm-error-retry>TRY AGAIN</button>` : `<button class="farm-default-error__action farm-default-error__action--primary" type="button" data-farm-error-back>GO BACK</button>`;
|
|
707
|
+
const debugAction = development ? `<span class="farm-default-error__footer-divider" aria-hidden="true">/</span><button class="farm-default-error__footer-action" type="button" data-farm-error-copy><span data-farm-error-copy-label>COPY DEBUG REPORT</span><span class="farm-default-error__sr-only" aria-live="polite" data-farm-error-copy-status></span></button>` : "";
|
|
708
|
+
return `<style>${DEFAULT_ERROR_STYLES}</style><main class="farm-default-error${development ? " farm-default-error--development" : ""}" data-farm-default-error role="alert" aria-labelledby="farm-default-error-title" aria-describedby="farm-default-error-description"><div class="farm-default-error__frame"><div class="farm-default-error__brand" aria-hidden="true"><span>FARM.JS</span><span class="farm-default-error__brand-divider">/</span><span>ERROR</span></div><div class="farm-default-error__content"><p class="farm-default-error__status"><span class="farm-default-error__status-mark" aria-hidden="true"></span><span>${statusCode}</span><span class="farm-default-error__status-divider" aria-hidden="true">/</span><span>${escapeHtml(statusText)}</span></p><header class="farm-default-error__summary"><h1 id="farm-default-error-title" class="farm-default-error__title">${escapeHtml(title)}</h1><p id="farm-default-error-description" class="farm-default-error__message">${escapeHtml(message)}</p></header><div class="farm-default-error__actions">${primaryAction}<a class="farm-default-error__action" href="/">RETURN HOME</a></div><section class="farm-default-error__panel" aria-label="Error information"><div class="farm-default-error__row"><span class="farm-default-error__label">Request</span><span class="farm-default-error__value">${escapeHtml(method)} ${escapeHtml(requestPath)}</span></div><div class="farm-default-error__row"><span class="farm-default-error__label">Status</span><span class="farm-default-error__value">${statusCode} ${escapeHtml(statusText)}</span></div>${details}</section></div><footer class="farm-default-error__footer"><a class="farm-default-error__footer-action" href="https://farmjs.dev/docs" target="_blank" rel="noopener noreferrer">${ERROR_DOCS_ICON}<span>VIEW DOCUMENTATION</span></a>${debugAction}</footer></div>${report}${ERROR_PAGE_SCRIPT}</main>`;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
// src/theme/server-runtime.ts
|
|
712
|
+
var THEME_SCRIPT_ID = "farm-theme-script";
|
|
713
|
+
var THEME_STYLE_ID = "farm-theme-style";
|
|
714
|
+
function createFarmThemeDocumentParts(input, basePath = "/", serverTheme) {
|
|
715
|
+
const config = resolveFarmThemeConfig(input, basePath);
|
|
716
|
+
if (!config.enabled) return { attributes: "", head: "" };
|
|
717
|
+
const hydrationTheme = serverTheme ?? config.default;
|
|
718
|
+
const initialTheme = hydrationTheme === "system" ? "light" : hydrationTheme;
|
|
719
|
+
const script = createFarmThemeBootstrapScript(config, hydrationTheme);
|
|
720
|
+
return {
|
|
721
|
+
attributes: ` data-theme="${initialTheme}"`,
|
|
722
|
+
head: stampFarmCspNonce(
|
|
723
|
+
`<style id="${THEME_STYLE_ID}">:root[data-theme="light"]{color-scheme:light}:root[data-theme="dark"]{color-scheme:dark}</style><script id="${THEME_SCRIPT_ID}">${script}</script>`
|
|
724
|
+
)
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
function createFarmThemeBootstrapScript(config, serverTheme = config.default) {
|
|
728
|
+
return `(function(config,serverTheme){
|
|
729
|
+
var isTheme=function(value){return value==="light"||value==="dark"||value==="system";};
|
|
730
|
+
var decode=function(value){try{return decodeURIComponent(value);}catch(_error){return value;}};
|
|
731
|
+
var readCookie=function(){var entries=document.cookie.split(";");for(var index=0;index<entries.length;index++){var entry=entries[index];var separator=entry.indexOf("=");if(separator<0)continue;if(decode(entry.slice(0,separator).trim())===config.storageKey)return decode(entry.slice(separator+1).trim());}};
|
|
732
|
+
var media=window.matchMedia("(prefers-color-scheme: dark)");
|
|
733
|
+
var resolveTheme=function(theme){return theme==="system"?(media.matches?"dark":"light"):theme;};
|
|
734
|
+
var storedTheme=readCookie();
|
|
735
|
+
var preference=isTheme(storedTheme)?storedTheme:config.default;
|
|
736
|
+
var serverSnapshot={theme:serverTheme,resolvedTheme:serverTheme==="system"?undefined:serverTheme,mounted:false};
|
|
737
|
+
var apply=function(){var resolvedTheme=resolveTheme(preference);document.documentElement.dataset.theme=resolvedTheme;var snapshot={theme:preference,resolvedTheme:resolvedTheme,mounted:true};if(window.__FARM_THEME__)window.__FARM_THEME__.snapshot=snapshot;return snapshot;};
|
|
738
|
+
var emit=function(){var snapshot=apply();window.dispatchEvent(new CustomEvent("farm:themechange",{detail:snapshot}));};
|
|
739
|
+
var persist=function(theme){var secure=window.location.protocol==="https:"?"; Secure":"";document.cookie=encodeURIComponent(config.storageKey)+"="+encodeURIComponent(theme)+"; Path="+config.cookiePath+"; Max-Age=31536000; SameSite=Lax"+secure;try{localStorage.setItem(config.storageKey,theme);}catch(_error){}};
|
|
740
|
+
var setTheme=function(theme){if(!isTheme(theme))throw new TypeError("Unknown FARMJS theme: "+String(theme));preference=theme;persist(theme);emit();};
|
|
741
|
+
var initialSnapshot={theme:preference,resolvedTheme:resolveTheme(preference),mounted:true};
|
|
742
|
+
window.__FARM_THEME__={config:config,serverSnapshot:serverSnapshot,snapshot:initialSnapshot,setTheme:setTheme};
|
|
743
|
+
document.documentElement.dataset.theme=initialSnapshot.resolvedTheme;
|
|
744
|
+
var handleSystemChange=function(){if(preference==="system")emit();};
|
|
745
|
+
if(typeof media.addEventListener==="function")media.addEventListener("change",handleSystemChange);else if(typeof media.addListener==="function")media.addListener(handleSystemChange);
|
|
746
|
+
window.addEventListener("storage",function(event){if(event.key!==config.storageKey||!isTheme(event.newValue))return;preference=event.newValue;persist(preference);emit();});
|
|
747
|
+
})(${serializeInlineValue(config)},${serializeInlineValue(serverTheme)});`;
|
|
748
|
+
}
|
|
749
|
+
function applyFarmThemeDocument(html, input, basePath = "/", serverTheme) {
|
|
750
|
+
const parts = createFarmThemeDocumentParts(input, basePath, serverTheme);
|
|
751
|
+
if (!parts.head) return html;
|
|
752
|
+
let output = html.replace(/<html([^>]*)>/i, (_match, attributes) => {
|
|
753
|
+
const nextAttributes = attributes.replace(/\sdata-theme=(?:"[^"]*"|'[^']*'|[^\s>]+)/i, "");
|
|
754
|
+
return `<html${nextAttributes}${parts.attributes}>`;
|
|
755
|
+
});
|
|
756
|
+
if (!output.includes(`id="${THEME_SCRIPT_ID}"`)) {
|
|
757
|
+
output = output.replace(/<head([^>]*)>/i, `<head$1>${parts.head}`);
|
|
758
|
+
}
|
|
759
|
+
return output;
|
|
760
|
+
}
|
|
761
|
+
function serializeInlineValue(value) {
|
|
762
|
+
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
export {
|
|
766
|
+
formatRouteSegment,
|
|
767
|
+
createRouteDirectoryPattern,
|
|
768
|
+
stripRouteGroups,
|
|
769
|
+
getRouteGroupScope,
|
|
770
|
+
isInRouteGroupScope,
|
|
771
|
+
getRouteDirectoryDepth,
|
|
772
|
+
routeBoundaryCoversDirectory,
|
|
773
|
+
createFarmLayoutSelector,
|
|
774
|
+
layoutsCanCoverSamePage,
|
|
775
|
+
getFarmServerTreeLayoutPatterns,
|
|
776
|
+
createFarmRouteRenderPlan,
|
|
777
|
+
getFarmFragmentCacheControl,
|
|
778
|
+
parseFarmLayoutChainHeader,
|
|
779
|
+
getSharedLayoutPrefixLength,
|
|
780
|
+
HOISTED_HEAD_ELEMENT,
|
|
781
|
+
extractFarmFullDocument,
|
|
782
|
+
classifyFarmDocumentPrefix,
|
|
783
|
+
removeFarmDocumentTitles,
|
|
784
|
+
ensureFarmDocumentMeta,
|
|
785
|
+
composeFarmFullDocument,
|
|
786
|
+
hasFarmMiddlewareConfig,
|
|
787
|
+
configMiddlewareMayHandlePath,
|
|
788
|
+
appMiddlewareMayHandlePath,
|
|
789
|
+
farmPathGuardCoversPage,
|
|
790
|
+
farmPathGuardCoversEndpoint,
|
|
791
|
+
renderFarmLocaleAlternateLinks,
|
|
792
|
+
createLateRedirectRecovery,
|
|
793
|
+
createLateNotFoundRecovery,
|
|
794
|
+
createFarmMetadataRouteResponse,
|
|
795
|
+
resolveDefaultErrorStatus,
|
|
796
|
+
getDefaultErrorStatusText,
|
|
797
|
+
createDefaultErrorMarkup,
|
|
798
|
+
createFarmThemeDocumentParts,
|
|
799
|
+
applyFarmThemeDocument
|
|
800
|
+
};
|