@farm.js/core 0.1.31 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/agent-runtime.cjs +69 -14
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/agent-runtime.mjs +58 -3
- package/dist/api/route-manager.cjs +16 -13
- package/dist/api/route-manager.d.mts +1 -1
- package/dist/api/route-manager.d.ts +1 -1
- package/dist/api/route-manager.mjs +15 -12
- package/dist/api/runtime.cjs +9 -7
- package/dist/api/runtime.d.mts +1 -1
- package/dist/api/runtime.d.ts +1 -1
- package/dist/api/runtime.mjs +8 -6
- package/dist/api.cjs +19 -16
- package/dist/api.d.mts +2 -2
- package/dist/api.d.ts +2 -2
- package/dist/api.mjs +18 -15
- package/dist/{app-sUJ3jnTZ.d.ts → app-DgotYGbq.d.ts} +3 -3
- package/dist/app-markdown.cjs +8 -6
- package/dist/app-markdown.d.mts +3 -3
- package/dist/app-markdown.d.ts +3 -3
- package/dist/app-markdown.mjs +7 -5
- package/dist/{app-DAuUTIZf.d.mts → app-q4rmZlXK.d.mts} +3 -3
- package/dist/cache.cjs +2 -2
- package/dist/cache.d.mts +10 -1
- package/dist/cache.d.ts +10 -1
- package/dist/cache.mjs +1 -1
- package/dist/{chunk-YZTASLPQ.cjs → chunk-27ZWSI3W.cjs} +2 -2
- package/dist/{chunk-WBIH66JK.mjs → chunk-2ELDTQRN.mjs} +5 -2
- package/dist/{chunk-K7CELQLK.cjs → chunk-2F2ER724.cjs} +54 -29
- package/dist/{chunk-NRVGEI5I.mjs → chunk-2NNMOPDN.mjs} +4 -210
- package/dist/chunk-2NQQ5H5G.cjs +86 -0
- package/dist/{chunk-IFI5FXEZ.cjs → chunk-36MK5YCW.cjs} +334 -163
- package/dist/chunk-3BU22U3M.cjs +237 -0
- package/dist/{chunk-MM5D6VLP.mjs → chunk-3KZS4SUS.mjs} +33 -14
- package/dist/chunk-3SDFA7UF.cjs +701 -0
- package/dist/{chunk-4IEPYMHF.mjs → chunk-3UEVPCGW.mjs} +1 -1
- package/dist/{chunk-5LJCOSKT.mjs → chunk-3VSKDFAT.mjs} +1 -1
- package/dist/{chunk-5HGR3W6O.mjs → chunk-5SJWVY6R.mjs} +8 -0
- package/dist/{chunk-X7WVQMIB.mjs → chunk-657WJNRY.mjs} +10 -4
- package/dist/{chunk-MKMBQSNQ.mjs → chunk-6VVL3MHY.mjs} +3 -3
- package/dist/{chunk-QZRVZSPN.cjs → chunk-77GNHH2Z.cjs} +3 -3
- package/dist/{chunk-KZLND3D2.cjs → chunk-7BT4H4P7.cjs} +7 -5
- package/dist/{chunk-A777V5WU.cjs → chunk-7M52YUMY.cjs} +2 -2
- package/dist/{chunk-VUMAE7NC.mjs → chunk-7Y6ZNFPX.mjs} +81 -30
- package/dist/{chunk-MXDTKXO6.cjs → chunk-A5FGU2WU.cjs} +74 -23
- package/dist/{chunk-7QOCTYBS.mjs → chunk-AGC75XAE.mjs} +37 -1
- package/dist/{chunk-4ZQQL4IU.mjs → chunk-AHGECQEW.mjs} +1 -1
- package/dist/{chunk-RG3ZOTG5.cjs → chunk-AI7QMY7O.cjs} +10 -3
- package/dist/{chunk-O3DTUAX2.mjs → chunk-AQZFOP7S.mjs} +6 -77
- package/dist/{chunk-WNLBF77X.cjs → chunk-ATK2R4CH.cjs} +14 -12
- package/dist/{chunk-SORB3MAR.cjs → chunk-AWC4VUZL.cjs} +17 -17
- package/dist/{chunk-YMCXWPWK.mjs → chunk-BCMSYSN2.mjs} +4 -1
- package/dist/{chunk-FYRBX5IY.cjs → chunk-BTAG7LI7.cjs} +2 -2
- package/dist/{chunk-I6XDAKWQ.mjs → chunk-BTHHUD7Q.mjs} +14 -0
- package/dist/chunk-C4SPBWFM.cjs +26 -0
- package/dist/{chunk-JATSG2ZO.mjs → chunk-CLJYVZAD.mjs} +4 -2
- package/dist/{chunk-J3LOGE4T.cjs → chunk-DQQOKWYA.cjs} +5 -5
- package/dist/{chunk-JLRDISQL.cjs → chunk-DZ4DTRJ5.cjs} +7 -7
- package/dist/chunk-E5GNDG5F.mjs +701 -0
- package/dist/{chunk-E76XC6ZG.mjs → chunk-EZDQRNQ7.mjs} +2 -2
- package/dist/{chunk-TOVMYGYW.mjs → chunk-F2SE2VDO.mjs} +1 -1
- package/dist/{chunk-BSPQVJ4A.mjs → chunk-FDR64H6B.mjs} +13 -0
- package/dist/{chunk-5OVTOKGH.cjs → chunk-FFFW3OQ7.cjs} +2 -2
- package/dist/{chunk-D4JE5NNV.cjs → chunk-FNO7A7CM.cjs} +5 -5
- package/dist/chunk-FZ6YYU2W.mjs +65 -0
- package/dist/{chunk-PZNCMPJF.cjs → chunk-G26MUMKL.cjs} +14 -8
- package/dist/{chunk-IXUY2F5U.mjs → chunk-GCXWJJKH.mjs} +4 -7
- package/dist/{chunk-JLCQGPXE.mjs → chunk-GNSDTTWZ.mjs} +50 -61
- package/dist/{chunk-TEN4FIZU.mjs → chunk-GOABMOX3.mjs} +151 -3
- package/dist/{chunk-HBTUGXHS.cjs → chunk-HLJ6MBUZ.cjs} +7 -4
- package/dist/{chunk-GZYH4OER.mjs → chunk-HR5KPHC2.mjs} +1 -1
- package/dist/{chunk-ZCU4NZ3M.cjs → chunk-IE7XCHH3.cjs} +4 -4
- package/dist/{chunk-I26CZYPV.cjs → chunk-IHNIDL6H.cjs} +50 -7
- package/dist/{chunk-2FQHH5SC.mjs → chunk-IHNMMXHV.mjs} +49 -24
- package/dist/{chunk-VHJGDMCG.cjs → chunk-IWZKTWHZ.cjs} +2 -2
- package/dist/{chunk-DGXN3L4D.mjs → chunk-JDPAKVS4.mjs} +4 -4
- package/dist/chunk-JG6DJF5A.mjs +238 -0
- package/dist/{chunk-5TISYEQF.mjs → chunk-JM5XPKWH.mjs} +10 -3
- package/dist/{chunk-BJJATPEC.mjs → chunk-KN7K4VQN.mjs} +1 -1
- package/dist/{chunk-WPYFSQKK.cjs → chunk-KNBBQHO2.cjs} +15 -1
- package/dist/{chunk-XWAWFQFS.cjs → chunk-KXWRO25S.cjs} +7 -4
- package/dist/{chunk-QG5HNS7P.mjs → chunk-LHODW25H.mjs} +2 -2
- package/dist/{chunk-BXFWA23T.mjs → chunk-LMJ7VRHZ.mjs} +3 -3
- package/dist/{chunk-WG2KHOMN.mjs → chunk-LR5QSC2P.mjs} +380 -209
- package/dist/chunk-LSKZMJMP.cjs +65 -0
- package/dist/{chunk-2N5PX3LS.mjs → chunk-LYV44OIR.mjs} +7 -1
- package/dist/{chunk-5MKEDGLD.cjs → chunk-M64YUMA4.cjs} +11 -6
- package/dist/{chunk-EXLKRR4U.cjs → chunk-MIDIZJZC.cjs} +12 -12
- package/dist/{chunk-ES4B2IXW.cjs → chunk-MOKLYNHV.cjs} +2 -2
- package/dist/{chunk-IV6CQY7O.mjs → chunk-MSSFIQGM.mjs} +63 -13
- package/dist/{chunk-KH7BN726.cjs → chunk-N4UOK6ZI.cjs} +8 -2
- package/dist/{chunk-6VYZOPOT.mjs → chunk-NGVORZVZ.mjs} +1 -1
- package/dist/{chunk-JNGIWIY6.mjs → chunk-NPC7VWJE.mjs} +2 -2
- package/dist/{chunk-ILWLPEVO.mjs → chunk-NRSN7G7E.mjs} +2 -2
- package/dist/{chunk-AHAJGAYD.mjs → chunk-O27L4YAA.mjs} +1 -1
- package/dist/{chunk-VYZSOYR4.cjs → chunk-ODBZYBAB.cjs} +1 -1
- package/dist/{chunk-YVGAEAA5.cjs → chunk-P64MIF5B.cjs} +154 -6
- package/dist/{chunk-DFLLARUK.cjs → chunk-PQDFUSXD.cjs} +14 -14
- package/dist/{chunk-F6XEGFHO.mjs → chunk-PXKIEXZD.mjs} +10 -0
- package/dist/{chunk-S5GDHOE4.mjs → chunk-PZNL3WEG.mjs} +48 -5
- package/dist/{chunk-FV45CKBC.mjs → chunk-QCFBDFRS.mjs} +1 -1
- package/dist/{chunk-75BRBIFP.cjs → chunk-QCVE2OCI.cjs} +5 -8
- package/dist/{chunk-6ZCMSZ5U.mjs → chunk-QE6VAKLT.mjs} +1 -1
- package/dist/{chunk-75DYEVXI.cjs → chunk-QGYRXFU2.cjs} +9 -9
- package/dist/{chunk-CTV2TTNP.cjs → chunk-QJ3J6MZT.cjs} +16 -87
- package/dist/{chunk-O6XNAMBV.mjs → chunk-QLQ32WC4.mjs} +8 -3
- package/dist/{chunk-IMB4PIAR.cjs → chunk-SJVKK4JE.cjs} +839 -420
- package/dist/{chunk-3FCFQP5V.cjs → chunk-TA5G2HWD.cjs} +21 -21
- package/dist/{chunk-Z5HIWVDP.cjs → chunk-TDFPACVX.cjs} +62 -73
- package/dist/{chunk-ND224OE2.cjs → chunk-TKSCR644.cjs} +34 -15
- package/dist/{chunk-UAFSBWNT.mjs → chunk-U4PTAHW3.mjs} +64 -13
- package/dist/{chunk-ZHVYQL3H.cjs → chunk-U74I55WB.cjs} +86 -35
- package/dist/chunk-UBO4SGH4.mjs +86 -0
- package/dist/{chunk-IQXFRNY2.cjs → chunk-UFDAAQFX.cjs} +2 -2
- package/dist/{chunk-X7KZBF63.cjs → chunk-UX5S4JEO.cjs} +40 -4
- package/dist/{chunk-5ZSWG4UX.cjs → chunk-UXFQ3UDA.cjs} +14 -1
- package/dist/{chunk-L4DVIHOC.mjs → chunk-VCCUOMQN.mjs} +1 -1
- package/dist/{chunk-4V7GIE2U.mjs → chunk-VHANUNEG.mjs} +2 -2
- package/dist/{chunk-FXUUWYAX.cjs → chunk-VKNHTSAP.cjs} +10 -0
- package/dist/{chunk-2AKFKCHA.mjs → chunk-W7LF2J2S.mjs} +1 -1
- package/dist/{chunk-MNUGPHLN.mjs → chunk-WNNYOOIB.mjs} +5 -3
- package/dist/{chunk-VA62MHFV.mjs → chunk-X242HVD5.mjs} +1 -1
- package/dist/{chunk-UJ2C4ICS.cjs → chunk-XJXBIP67.cjs} +4 -4
- package/dist/{chunk-6L6DQR5W.mjs → chunk-XV5DJTBX.mjs} +539 -121
- package/dist/{chunk-KJ2TIHZZ.cjs → chunk-XXJU7FCC.cjs} +3 -2
- package/dist/{chunk-DYEJQTDN.cjs → chunk-YSCV4SJF.cjs} +4 -4
- package/dist/{chunk-2SDO73HK.cjs → chunk-YWN746US.cjs} +64 -14
- package/dist/chunk-Z2HLU4IX.cjs +238 -0
- package/dist/{chunk-2FXWWUE5.cjs → chunk-Z2YLTERK.cjs} +4 -4
- package/dist/{chunk-CUMINO7Z.cjs → chunk-ZHPHJPQP.cjs} +4 -4
- package/dist/{chunk-FJZ3DQLK.mjs → chunk-ZKP7C2B6.mjs} +4 -4
- package/dist/{chunk-JBC2FKRW.mjs → chunk-ZUSJDQ2Q.mjs} +2 -1
- package/dist/{client-plugins-BX2ptm4H.d.mts → client-plugins-CLObcuCq.d.mts} +26 -2
- package/dist/{client-plugins-BmxM5KW_.d.ts → client-plugins-DZjHC4Mi.d.ts} +26 -2
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client.cjs +8 -8
- package/dist/client.d.mts +5 -5
- package/dist/client.d.ts +5 -5
- package/dist/client.mjs +7 -7
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/{devtools-EWRDHCD5.cjs → devtools-HU6Y2MNV.cjs} +11 -9
- package/dist/{devtools-BPBCYOU6.mjs → devtools-RNXCTS4R.mjs} +10 -8
- package/dist/docs.cjs +13 -11
- package/dist/docs.d.mts +5 -0
- package/dist/docs.d.ts +5 -0
- package/dist/docs.mjs +12 -10
- package/dist/environment/vite.cjs +2 -2
- package/dist/environment/vite.mjs +1 -1
- package/dist/headers.cjs +4 -4
- package/dist/headers.mjs +3 -3
- package/dist/i18n/client.cjs +14 -13
- package/dist/i18n/client.mjs +5 -4
- package/dist/i18n/index.cjs +3 -2
- package/dist/i18n/index.mjs +2 -1
- package/dist/i18n/server.cjs +6 -5
- package/dist/i18n/server.mjs +5 -4
- package/dist/image/server.cjs +2 -2
- package/dist/image/server.mjs +1 -1
- package/dist/image/sharp.cjs +9 -9
- package/dist/image/sharp.mjs +1 -1
- package/dist/index.cjs +67 -55
- package/dist/index.d.mts +14 -14
- package/dist/index.d.ts +14 -14
- package/dist/index.mjs +70 -58
- package/dist/integrations.cjs +6 -3
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/integrations.mjs +7 -4
- package/dist/internal/app-markdown-runtime.cjs +7 -5
- package/dist/internal/app-markdown-runtime.d.mts +14 -3
- package/dist/internal/app-markdown-runtime.d.ts +14 -3
- package/dist/internal/app-markdown-runtime.mjs +6 -4
- package/dist/internal/build-runtime.cjs +38 -35
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +37 -34
- package/dist/internal/cli-runtime.cjs +20 -17
- package/dist/internal/cli-runtime.mjs +19 -16
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +4 -2
- package/dist/internal/client-runtime.d.mts +9 -1
- package/dist/internal/client-runtime.d.ts +9 -1
- package/dist/internal/client-runtime.mjs +3 -1
- package/dist/internal/compression-runtime.d.mts +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/config-runtime.cjs +11 -9
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +10 -8
- package/dist/internal/infra-analytics-runtime.cjs +4 -4
- package/dist/internal/infra-analytics-runtime.mjs +2 -2
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +20 -14
- package/dist/internal/production-runtime.d.mts +115 -8
- package/dist/internal/production-runtime.d.ts +115 -8
- package/dist/internal/production-runtime.mjs +19 -13
- package/dist/internal/request-cookies.cjs +4 -2
- package/dist/internal/request-cookies.d.mts +9 -1
- package/dist/internal/request-cookies.d.ts +9 -1
- package/dist/internal/request-cookies.mjs +3 -1
- package/dist/markdown.cjs +4 -4
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/markdown.mjs +3 -3
- package/dist/{metadata-DsEaK7mQ.d.mts → metadata-2HSU2i_w.d.mts} +1 -1
- package/dist/{metadata-fwZ3gfG6.d.ts → metadata-Cjs8JMRM.d.ts} +1 -1
- package/dist/middleware.cjs +18 -8
- package/dist/middleware.d.mts +24 -5
- package/dist/middleware.d.ts +24 -5
- package/dist/middleware.mjs +18 -8
- package/dist/navigation.cjs +6 -6
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/navigation.mjs +5 -5
- package/dist/{nitro-NAKCRVHX.mjs → nitro-4XGPNIK4.mjs} +3 -3
- package/dist/{nitro-VYDZGYFY.cjs → nitro-HSAQFXSS.cjs} +4 -4
- package/dist/plugin.cjs +33 -30
- package/dist/plugin.d.mts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.mjs +32 -29
- package/dist/{production-runtime-DNkpFnmg.d.ts → production-runtime-BU5ETAK9.d.ts} +8 -1
- package/dist/{production-runtime-Baqgwtvc.d.mts → production-runtime-CysZl3EV.d.mts} +8 -1
- package/dist/query/client.cjs +7 -7
- package/dist/query/client.mjs +3 -3
- package/dist/{render-plan-DhwQnmmX.d.mts → render-plan-CKr4ltOd.d.mts} +1 -1
- package/dist/{render-plan-rkIK9wd9.d.ts → render-plan-D72O1qm4.d.ts} +1 -1
- package/dist/renderer-client.cjs +39 -19
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +28 -8
- package/dist/{request-CFy1BltJ.d.mts → request-Be83WafN.d.mts} +7 -2
- package/dist/{request-BcY4RYPC.d.ts → request-DbyOYI2j.d.ts} +7 -2
- package/dist/request.cjs +2 -2
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/request.mjs +1 -1
- package/dist/{route-rendering-BkS0TBlB.d.mts → route-rendering-BG56SzvJ.d.mts} +1 -1
- package/dist/{route-rendering-D4XpMjam.d.ts → route-rendering-CtVMpV-k.d.ts} +1 -1
- package/dist/{router-C4zPlC3V.d.mts → router-ALUvm8gC.d.mts} +1 -1
- package/dist/{router-Cq7BcZxg.d.ts → router-D94-SDlW.d.ts} +1 -1
- package/dist/routes.cjs +3 -3
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/routes.mjs +2 -2
- package/dist/server-fn.cjs +3 -3
- package/dist/server-fn.mjs +2 -2
- package/dist/server-plugins.cjs +4 -4
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server-plugins.mjs +3 -3
- package/dist/server-query-client.cjs +3 -3
- package/dist/server-query-client.mjs +2 -2
- package/dist/server-query.cjs +4 -4
- package/dist/server-query.mjs +3 -3
- package/dist/server.cjs +60 -57
- package/dist/server.d.mts +7 -7
- package/dist/server.d.ts +7 -7
- package/dist/server.mjs +37 -34
- package/dist/{spa-router-B1HI3X9k.d.ts → spa-router-CxK3USIz.d.ts} +2 -2
- package/dist/{spa-router-DzPZH-AO.d.mts → spa-router-DbxNRKOB.d.mts} +2 -2
- package/dist/testing.cjs +19 -17
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +16 -14
- package/dist/theme/server.cjs +4 -3
- package/dist/theme/server.mjs +3 -2
- package/dist/{utils-DMD1Hzta.d.ts → utils-311Y8eoK.d.ts} +1 -1
- package/dist/{utils-CEBktlBG.d.mts → utils-4wVRcpOw.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +33 -30
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.mjs +32 -29
- package/package.json +2 -2
- package/dist/chunk-22GUSVNJ.cjs +0 -351
- package/dist/chunk-SWN467MP.cjs +0 -18
- package/dist/chunk-XGC343EY.cjs +0 -443
- package/dist/chunk-ZSH2Y4LN.mjs +0 -351
- /package/dist/{chunk-SUIBNSNO.cjs → chunk-SJNMVDDF.cjs} +0 -0
- /package/dist/{chunk-LNZ7JZUS.mjs → chunk-UDNPLXW7.mjs} +0 -0
|
@@ -3,6 +3,13 @@ import {
|
|
|
3
3
|
} from "./chunk-LPEX4YW6.mjs";
|
|
4
4
|
|
|
5
5
|
// src/client/navigation-url.ts
|
|
6
|
+
var FARM_NAVIGATION_PROTOCOLS = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:"]);
|
|
7
|
+
function isFarmBlockedNavigationURL(url) {
|
|
8
|
+
if (FARM_NAVIGATION_PROTOCOLS.has(url.protocol)) return false;
|
|
9
|
+
console.error(`[Farm.js] Blocked navigation to a ${url.protocol} URL as a security precaution.`);
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
__name(isFarmBlockedNavigationURL, "isFarmBlockedNavigationURL");
|
|
6
13
|
function isFarmExternalNavigationURL(url, currentOrigin) {
|
|
7
14
|
return url.protocol !== "http:" && url.protocol !== "https:" || url.origin !== currentOrigin;
|
|
8
15
|
}
|
|
@@ -13,6 +20,7 @@ function resolveFarmNavigationURL(href, documentUrl) {
|
|
|
13
20
|
__name(resolveFarmNavigationURL, "resolveFarmNavigationURL");
|
|
14
21
|
|
|
15
22
|
export {
|
|
23
|
+
isFarmBlockedNavigationURL,
|
|
16
24
|
isFarmExternalNavigationURL,
|
|
17
25
|
resolveFarmNavigationURL
|
|
18
26
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isEndpointFailure,
|
|
3
3
|
resolvePluginRoutes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3UEVPCGW.mjs";
|
|
5
5
|
import {
|
|
6
6
|
registerAPIRouteShape
|
|
7
7
|
} from "./chunk-W3B4PKAW.mjs";
|
|
@@ -9,13 +9,16 @@ import {
|
|
|
9
9
|
omitFarmResponseBody
|
|
10
10
|
} from "./chunk-5WI2S4CO.mjs";
|
|
11
11
|
import {
|
|
12
|
-
|
|
13
|
-
} from "./chunk-
|
|
12
|
+
validateIntegrationRequestOrigin
|
|
13
|
+
} from "./chunk-FZ6YYU2W.mjs";
|
|
14
14
|
import {
|
|
15
15
|
DEFAULT_FARM_SERVER_BODY_SIZE_LIMIT,
|
|
16
16
|
bufferFarmRequestBody,
|
|
17
17
|
createFarmRequestBodyErrorResponse
|
|
18
18
|
} from "./chunk-XF7Q24PF.mjs";
|
|
19
|
+
import {
|
|
20
|
+
resolveFarmAPICanonicalPathname
|
|
21
|
+
} from "./chunk-BTHHUD7Q.mjs";
|
|
19
22
|
import {
|
|
20
23
|
createStaticAPIRouteMatcher,
|
|
21
24
|
matchAPIRoute
|
|
@@ -31,7 +34,7 @@ import {
|
|
|
31
34
|
} from "./chunk-4SIYUGRY.mjs";
|
|
32
35
|
import {
|
|
33
36
|
_runWithCurrentRequest
|
|
34
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-FDR64H6B.mjs";
|
|
35
38
|
import {
|
|
36
39
|
__name
|
|
37
40
|
} from "./chunk-LPEX4YW6.mjs";
|
|
@@ -388,6 +391,9 @@ async function readRequestBody(request) {
|
|
|
388
391
|
}
|
|
389
392
|
if (!text) return { body: void 0 };
|
|
390
393
|
if (contentType === void 0) {
|
|
394
|
+
if (!validateIntegrationRequestOrigin(request, { requireOriginMetadata: false }).ok) {
|
|
395
|
+
return { body: void 0 };
|
|
396
|
+
}
|
|
391
397
|
try {
|
|
392
398
|
return { body: JSON.parse(text) };
|
|
393
399
|
} catch {
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
notifyHistoryChange,
|
|
8
8
|
readPageState,
|
|
9
9
|
subscribeHistoryChange
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-CLJYVZAD.mjs";
|
|
11
11
|
import {
|
|
12
12
|
getFarmI18nClientState
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-F2SE2VDO.mjs";
|
|
14
14
|
import {
|
|
15
15
|
_resolveCurrentRequest
|
|
16
16
|
} from "./chunk-IZY3V5XW.mjs";
|
|
@@ -196,7 +196,7 @@ function readRouterState(basePath, routeMatcher) {
|
|
|
196
196
|
}
|
|
197
197
|
const pathname = normalizeClientPathname(url.pathname, basePath);
|
|
198
198
|
const i18n = getFarmI18nClientState();
|
|
199
|
-
const routePathname = i18n ? stripFarmLocaleFromPathname(pathname, i18n) : pathname;
|
|
199
|
+
const routePathname = i18n ? stripFarmLocaleFromPathname(pathname, { ...i18n, basePath: "/" }) : pathname;
|
|
200
200
|
return {
|
|
201
201
|
pathname,
|
|
202
202
|
searchParams: url.searchParams,
|
|
@@ -12,7 +12,7 @@ var _chunkDVM4FKZLcjs = require('./chunk-DVM4FKZL.cjs');
|
|
|
12
12
|
var _chunkOX6O6WVAcjs = require('./chunk-OX6O6WVA.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkUXFQ3UDAcjs = require('./chunk-UXFQ3UDA.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -41,7 +41,7 @@ function createRedirectsPlugin(redirects, {
|
|
|
41
41
|
if (overrideBeforeRequest) {
|
|
42
42
|
await overrideBeforeRequest(req, res, context);
|
|
43
43
|
}
|
|
44
|
-
const url =
|
|
44
|
+
const url = _chunkUXFQ3UDAcjs.resolveFarmRequestURL.call(void 0, req);
|
|
45
45
|
const routePath = _chunkDVM4FKZLcjs.resolveConfigRoutePathname.call(void 0, url.pathname, i18n);
|
|
46
46
|
const pathname = routePath.pathname;
|
|
47
47
|
for (const { redirect, pattern } of compiledRedirects) {
|
|
@@ -153,7 +153,7 @@ function createHeadersPlugin(headers, {
|
|
|
153
153
|
if (overrideBeforeRequest) {
|
|
154
154
|
await overrideBeforeRequest(req, res, context);
|
|
155
155
|
}
|
|
156
|
-
const url =
|
|
156
|
+
const url = _chunkUXFQ3UDAcjs.resolveFarmRequestURL.call(void 0, req);
|
|
157
157
|
const pathname = _chunkDVM4FKZLcjs.resolveConfigRoutePathname.call(void 0, url.pathname, i18n).pathname;
|
|
158
158
|
const matchedHeaders = compiledHeaders.filter(({ pattern }) => pattern.regex.test(pathname)).map(({ config }) => config.headers);
|
|
159
159
|
applyResponseHeaders(res, matchedHeaders);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkU74I55WBcjs = require('./chunk-U74I55WB.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkHLJ6MBUZcjs = require('./chunk-HLJ6MBUZ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -410,16 +410,18 @@ function farmMiddlewarePlugin(options = {}) {
|
|
|
410
410
|
let discoveryComplete = false;
|
|
411
411
|
let discoveryPromise = null;
|
|
412
412
|
const discover = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (server) => {
|
|
413
|
-
const i18n =
|
|
413
|
+
const i18n = _chunkHLJ6MBUZcjs.resolveFarmI18nConfig.call(void 0, false, {
|
|
414
414
|
root: server.config.root,
|
|
415
415
|
mode: server.config.mode === "production" ? "production" : "development",
|
|
416
416
|
basePath: _nullishCoalesce(options.basePath, () => ( "/"))
|
|
417
417
|
});
|
|
418
|
-
manager = new (0,
|
|
418
|
+
manager = new (0, _chunkU74I55WBcjs.MiddlewareManager)(
|
|
419
419
|
getMiddlewareAppDirectory(server.config.root, srcDir),
|
|
420
420
|
server,
|
|
421
|
+
options.middleware,
|
|
422
|
+
i18n,
|
|
421
423
|
void 0,
|
|
422
|
-
|
|
424
|
+
options.apiBasePath
|
|
423
425
|
);
|
|
424
426
|
await manager.discover();
|
|
425
427
|
discoveryComplete = true;
|
|
@@ -27,7 +27,7 @@ var _chunkE2ROOWQCcjs = require('./chunk-E2ROOWQC.cjs');
|
|
|
27
27
|
var _chunkJSROZYYOcjs = require('./chunk-JSROZYYO.cjs');
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunkTDFPACVXcjs = require('./chunk-TDFPACVX.cjs');
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -119,7 +119,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, withTimeout, "withTimeout");
|
|
|
119
119
|
var formatSeconds = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (ms) => ms < 1e3 ? `${ms}ms` : `${Number((ms / 1e3).toFixed(1))}s`, "formatSeconds");
|
|
120
120
|
function collectSchemaOwners(config) {
|
|
121
121
|
const owners = [];
|
|
122
|
-
const integrationSchemas =
|
|
122
|
+
const integrationSchemas = _chunkTDFPACVXcjs.getIntegrationSchemas.call(void 0, config.integrations);
|
|
123
123
|
let integrationClient;
|
|
124
124
|
for (const [name, schema] of Object.entries(integrationSchemas)) {
|
|
125
125
|
owners.push({
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
matchesMiddlewareRoute,
|
|
2
|
+
isRouteSlotSegment
|
|
3
|
+
} from "./chunk-UBO4SGH4.mjs";
|
|
4
|
+
import {
|
|
6
5
|
normalizeMiddlewareModule,
|
|
7
6
|
parseMiddlewareCookieHeader,
|
|
8
7
|
serializeMiddlewareCookie,
|
|
9
8
|
serializeMiddlewareCookieDeletion
|
|
10
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2NNMOPDN.mjs";
|
|
10
|
+
import {
|
|
11
|
+
compileMiddlewareConfig,
|
|
12
|
+
compileMiddlewareRoute,
|
|
13
|
+
matchesMiddlewareConfigAt,
|
|
14
|
+
matchesMiddlewareRouteAt
|
|
15
|
+
} from "./chunk-JG6DJF5A.mjs";
|
|
11
16
|
import {
|
|
12
17
|
createCliColors
|
|
13
18
|
} from "./chunk-I2BHUNBU.mjs";
|
|
@@ -18,6 +23,9 @@ import {
|
|
|
18
23
|
import {
|
|
19
24
|
logger
|
|
20
25
|
} from "./chunk-KI3MESHB.mjs";
|
|
26
|
+
import {
|
|
27
|
+
createFarmAPIMiddlewarePathnames
|
|
28
|
+
} from "./chunk-BTHHUD7Q.mjs";
|
|
21
29
|
import {
|
|
22
30
|
emitFarmEvent
|
|
23
31
|
} from "./chunk-FUZEBRP3.mjs";
|
|
@@ -31,7 +39,7 @@ import {
|
|
|
31
39
|
} from "./chunk-CBBLJMR5.mjs";
|
|
32
40
|
import {
|
|
33
41
|
resolveFarmRequestURL
|
|
34
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-FDR64H6B.mjs";
|
|
35
43
|
import {
|
|
36
44
|
stripFarmLocaleFromPathname
|
|
37
45
|
} from "./chunk-L3KT7IXV.mjs";
|
|
@@ -185,12 +193,24 @@ import * as path from "path";
|
|
|
185
193
|
|
|
186
194
|
// src/middleware/path.ts
|
|
187
195
|
function appendMiddlewareRoutePath(routePath, directoryName) {
|
|
188
|
-
if (directoryName.startsWith("(") && directoryName.endsWith(")")) {
|
|
196
|
+
if (directoryName.startsWith("(") && directoryName.endsWith(")") || isRouteSlotSegment(directoryName)) {
|
|
189
197
|
return routePath;
|
|
190
198
|
}
|
|
191
199
|
return routePath === "/" ? `/${directoryName}` : `${routePath}/${directoryName}`;
|
|
192
200
|
}
|
|
193
201
|
__name(appendMiddlewareRoutePath, "appendMiddlewareRoutePath");
|
|
202
|
+
function appendMiddlewareDirectory(directory, directoryName) {
|
|
203
|
+
return directory === "" ? directoryName : `${directory}/${directoryName}`;
|
|
204
|
+
}
|
|
205
|
+
__name(appendMiddlewareDirectory, "appendMiddlewareDirectory");
|
|
206
|
+
function countSegments(value) {
|
|
207
|
+
return value.split("/").filter(Boolean).length;
|
|
208
|
+
}
|
|
209
|
+
__name(countSegments, "countSegments");
|
|
210
|
+
function compareMiddlewareRouteLocations(left, right) {
|
|
211
|
+
return countSegments(left.path) - countSegments(right.path) || left.path.localeCompare(right.path) || countSegments(left.directory) - countSegments(right.directory) || left.directory.localeCompare(right.directory);
|
|
212
|
+
}
|
|
213
|
+
__name(compareMiddlewareRouteLocations, "compareMiddlewareRouteLocations");
|
|
194
214
|
|
|
195
215
|
// src/middleware/manager.ts
|
|
196
216
|
function isMiddlewareResponse(value) {
|
|
@@ -198,13 +218,14 @@ function isMiddlewareResponse(value) {
|
|
|
198
218
|
}
|
|
199
219
|
__name(isMiddlewareResponse, "isMiddlewareResponse");
|
|
200
220
|
var _MiddlewareManager = class _MiddlewareManager {
|
|
201
|
-
constructor(appDir, viteServer, config, i18n, server) {
|
|
221
|
+
constructor(appDir, viteServer, config, i18n, server, apiBasePath) {
|
|
202
222
|
this.middleware = [];
|
|
203
223
|
this.configMiddleware = [];
|
|
204
224
|
this.appDirs = Array.isArray(appDir) ? [...appDir] : [appDir];
|
|
205
225
|
this.viteServer = viteServer;
|
|
206
226
|
this.i18n = i18n;
|
|
207
227
|
this.server = server;
|
|
228
|
+
this.toMiddlewarePathnames = createFarmAPIMiddlewarePathnames(apiBasePath);
|
|
208
229
|
this.configure(config);
|
|
209
230
|
}
|
|
210
231
|
configure(config) {
|
|
@@ -233,21 +254,16 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
233
254
|
* Discover all middleware.ts files
|
|
234
255
|
*/
|
|
235
256
|
async discover() {
|
|
236
|
-
const
|
|
257
|
+
const middlewareByDirectory = /* @__PURE__ */ new Map();
|
|
237
258
|
for (const appDir of this.appDirs) {
|
|
238
259
|
const discovered = [];
|
|
239
|
-
await this.discoverInDirectory(appDir, "/", discovered);
|
|
240
|
-
for (const
|
|
241
|
-
compileMiddlewareRoute(middleware);
|
|
242
|
-
|
|
260
|
+
await this.discoverInDirectory(appDir, "/", "", discovered);
|
|
261
|
+
for (const entry of discovered) {
|
|
262
|
+
compileMiddlewareRoute(entry.middleware);
|
|
263
|
+
middlewareByDirectory.set(entry.location.directory, entry);
|
|
243
264
|
}
|
|
244
265
|
}
|
|
245
|
-
this.middleware = Array.from(
|
|
246
|
-
this.middleware.sort((a, b) => {
|
|
247
|
-
const depthA = a.path.split("/").filter(Boolean).length;
|
|
248
|
-
const depthB = b.path.split("/").filter(Boolean).length;
|
|
249
|
-
return depthA - depthB;
|
|
250
|
-
});
|
|
266
|
+
this.middleware = Array.from(middlewareByDirectory.values()).sort((left, right) => compareMiddlewareRouteLocations(left.location, right.location)).map((entry) => entry.middleware);
|
|
251
267
|
if (process.env.FARM_VERBOSE && this.middleware.length > 0) {
|
|
252
268
|
logger.success(`Discovered ${this.middleware.length} middleware files`);
|
|
253
269
|
for (const mw of this.middleware) {
|
|
@@ -258,7 +274,7 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
258
274
|
/**
|
|
259
275
|
* Recursively discover middleware files
|
|
260
276
|
*/
|
|
261
|
-
async discoverInDirectory(dir, routePath, discovered) {
|
|
277
|
+
async discoverInDirectory(dir, routePath, directory, discovered) {
|
|
262
278
|
if (!fs.existsSync(dir)) {
|
|
263
279
|
return;
|
|
264
280
|
}
|
|
@@ -266,15 +282,18 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
266
282
|
if (middlewareFile) {
|
|
267
283
|
const middleware = await this.loadMiddleware(middlewareFile, routePath);
|
|
268
284
|
if (middleware) {
|
|
269
|
-
discovered.push(middleware);
|
|
285
|
+
discovered.push({ location: { path: routePath, directory }, middleware });
|
|
270
286
|
}
|
|
271
287
|
}
|
|
272
288
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
273
289
|
for (const entry of entries) {
|
|
274
290
|
if (entry.isDirectory() && !entry.name.startsWith(".") && !entry.name.startsWith("_")) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
291
|
+
await this.discoverInDirectory(
|
|
292
|
+
path.join(dir, entry.name),
|
|
293
|
+
appendMiddlewareRoutePath(routePath, entry.name),
|
|
294
|
+
appendMiddlewareDirectory(directory, entry.name),
|
|
295
|
+
discovered
|
|
296
|
+
);
|
|
278
297
|
}
|
|
279
298
|
}
|
|
280
299
|
}
|
|
@@ -329,7 +348,9 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
329
348
|
async execute(req, res) {
|
|
330
349
|
const url = resolveFarmRequestURL(req, { trustProxy: this.server?.trustProxy });
|
|
331
350
|
const pathname = url.pathname;
|
|
332
|
-
const
|
|
351
|
+
const toRoutePathname = /* @__PURE__ */ __name((value) => this.i18n?.enabled ? stripFarmLocaleFromPathname(value, this.i18n) : stripFarmBasePath(value, this.i18n?.basePath ?? "/"), "toRoutePathname");
|
|
352
|
+
const routePathname = toRoutePathname(pathname);
|
|
353
|
+
const toMiddlewarePathnames = this.toMiddlewarePathnames;
|
|
333
354
|
const method = req.method || "GET";
|
|
334
355
|
const startTime = Date.now();
|
|
335
356
|
let parentData;
|
|
@@ -345,7 +366,10 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
345
366
|
}
|
|
346
367
|
const applicable = [
|
|
347
368
|
...this.configMiddleware.map((mw) => ({ mw, routeMatch: { matched: true } })),
|
|
348
|
-
...this.middleware.map((mw) => ({
|
|
369
|
+
...this.middleware.map((mw) => ({
|
|
370
|
+
mw,
|
|
371
|
+
routeMatch: matchesMiddlewareRouteAt(toMiddlewarePathnames(routePathname), mw)
|
|
372
|
+
})).filter((entry) => entry.routeMatch.matched)
|
|
349
373
|
];
|
|
350
374
|
if (applicable.length === 0) {
|
|
351
375
|
return false;
|
|
@@ -360,12 +384,37 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
360
384
|
pc.dim(` (${(Date.now() - startTime).toFixed(2)}ms)`)
|
|
361
385
|
].join(" ");
|
|
362
386
|
console.log(log);
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
387
|
+
const ran = /* @__PURE__ */ new Set();
|
|
388
|
+
const allMiddleware = [...this.configMiddleware, ...this.middleware];
|
|
389
|
+
const globalConfig = this.globalConfig;
|
|
390
|
+
const trustProxy = this.server?.trustProxy;
|
|
391
|
+
function* applicableMiddleware() {
|
|
392
|
+
let passPathname = routePathname;
|
|
393
|
+
let pass = applicable;
|
|
394
|
+
for (; ; ) {
|
|
395
|
+
for (const entry of pass) yield { ...entry, pathname: passPathname };
|
|
396
|
+
const rewrittenPathname = toRoutePathname(
|
|
397
|
+
resolveFarmRequestURL(req, { trustProxy }).pathname
|
|
398
|
+
);
|
|
399
|
+
if (rewrittenPathname === passPathname) return;
|
|
400
|
+
passPathname = rewrittenPathname;
|
|
401
|
+
const passPathnames = toMiddlewarePathnames(passPathname);
|
|
402
|
+
if (globalConfig && !matchesMiddlewareConfigAt(passPathnames, globalConfig, ctx).matched) {
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
pass = allMiddleware.filter((mw) => !ran.has(mw)).map((mw) => ({
|
|
406
|
+
mw,
|
|
407
|
+
routeMatch: mw.source === "config" ? { matched: true } : matchesMiddlewareRouteAt(passPathnames, mw)
|
|
408
|
+
})).filter((entry) => entry.routeMatch.matched);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
__name(applicableMiddleware, "applicableMiddleware");
|
|
412
|
+
for (const { mw, routeMatch, pathname: passPathname } of applicableMiddleware()) {
|
|
413
|
+
const configMatch = mw.config ? this.matchesConfig(passPathname, mw.config, ctx) : { matched: true };
|
|
366
414
|
if (!configMatch.matched) {
|
|
367
415
|
continue;
|
|
368
416
|
}
|
|
417
|
+
ran.add(mw);
|
|
369
418
|
if (routeMatch.params) {
|
|
370
419
|
ctx.params = { ...ctx.params, ...routeMatch.params };
|
|
371
420
|
}
|
|
@@ -466,7 +515,7 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
466
515
|
* Check if pathname matches middleware config
|
|
467
516
|
*/
|
|
468
517
|
matchesConfig(pathname, config, ctx) {
|
|
469
|
-
return
|
|
518
|
+
return matchesMiddlewareConfigAt(this.toMiddlewarePathnames(pathname), config, ctx);
|
|
470
519
|
}
|
|
471
520
|
/**
|
|
472
521
|
* Reload middleware (for HMR)
|
|
@@ -501,5 +550,7 @@ var MiddlewareManager = _MiddlewareManager;
|
|
|
501
550
|
export {
|
|
502
551
|
createContext,
|
|
503
552
|
appendMiddlewareRoutePath,
|
|
553
|
+
appendMiddlewareDirectory,
|
|
554
|
+
compareMiddlewareRouteLocations,
|
|
504
555
|
MiddlewareManager
|
|
505
556
|
};
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkZ2YLTERKcjs = require('./chunk-Z2YLTERK.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkPQDFUSXDcjs = require('./chunk-PQDFUSXD.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
var _chunk75WGQVQAcjs = require('./chunk-75WGQVQA.cjs');
|
|
@@ -39,7 +39,7 @@ function createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig) {
|
|
|
39
39
|
...moduleConfig ? { ...moduleConfig, ...docs.configOverrides } : _nullishCoalesce(docs.runtimeConfig, () => ( docs.config)),
|
|
40
40
|
entry: docs.config.entry || docs.entry.replace(/^\/+|\/+$/g, "") || "docs",
|
|
41
41
|
docsPath: docs.entry,
|
|
42
|
-
contentDir:
|
|
42
|
+
contentDir: _chunkZ2YLTERKcjs.resolveFarmDocsContentDir.call(void 0, docs, options)
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAdapterRuntimeConfig, "createFarmDocsAdapterRuntimeConfig");
|
|
@@ -124,6 +124,7 @@ async function createFarmDocsAdapterHandler(docs, options) {
|
|
|
124
124
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAdapterHandler, "createFarmDocsAdapterHandler");
|
|
125
125
|
|
|
126
126
|
// src/docs/api.ts
|
|
127
|
+
|
|
127
128
|
function isRecord(value) {
|
|
128
129
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
129
130
|
}
|
|
@@ -274,25 +275,25 @@ function getDocsDescription(docs) {
|
|
|
274
275
|
}
|
|
275
276
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getDocsDescription, "getDocsDescription");
|
|
276
277
|
function getLoadedDocsPages(context) {
|
|
277
|
-
return
|
|
278
|
+
return _chunkZ2YLTERKcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).map((page) => _chunkZ2YLTERKcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, page.slug)).filter((page) => Boolean(page));
|
|
278
279
|
}
|
|
279
280
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getLoadedDocsPages, "getLoadedDocsPages");
|
|
280
281
|
function toDocsSourcePage(page) {
|
|
281
282
|
return {
|
|
282
|
-
...
|
|
283
|
+
..._chunkZ2YLTERKcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
283
284
|
sourcePath: page.sourcePath
|
|
284
285
|
};
|
|
285
286
|
}
|
|
286
287
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSourcePage, "toDocsSourcePage");
|
|
287
288
|
function toDocsSitemapPage(page) {
|
|
288
289
|
return {
|
|
289
|
-
...
|
|
290
|
+
..._chunkZ2YLTERKcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
290
291
|
sourcePath: page.sourcePath
|
|
291
292
|
};
|
|
292
293
|
}
|
|
293
294
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSitemapPage, "toDocsSitemapPage");
|
|
294
295
|
function toDocsLlmsPage(page) {
|
|
295
|
-
return
|
|
296
|
+
return _chunkZ2YLTERKcjs.toFarmDocsMarkdownPage.call(void 0, page);
|
|
296
297
|
}
|
|
297
298
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsLlmsPage, "toDocsLlmsPage");
|
|
298
299
|
function getDocsLlmsOptions(context, request) {
|
|
@@ -386,7 +387,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, renderAgentsDocument, "renderAgentsDocumen
|
|
|
386
387
|
function buildAgentSpec(context, request) {
|
|
387
388
|
const url = new URL(request.url);
|
|
388
389
|
const origin = url.origin;
|
|
389
|
-
const pages =
|
|
390
|
+
const pages = _chunkZ2YLTERKcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
|
|
390
391
|
const spec = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsAgentDiscoverySpec(getDocsDiscoveryOptions(context, request));
|
|
391
392
|
const title = getDocsTitle(context.docs);
|
|
392
393
|
return {
|
|
@@ -423,12 +424,66 @@ function buildAgentSpec(context, request) {
|
|
|
423
424
|
robots: spec.capabilities.robots,
|
|
424
425
|
post: false
|
|
425
426
|
},
|
|
426
|
-
|
|
427
|
+
// Same root-relative source paths the precompiled runtime serves.
|
|
428
|
+
pages: pages.map(({ sourcePath, ...page }) => {
|
|
429
|
+
const publicSourcePath = toPublicDocsPath(sourcePath, context.root);
|
|
430
|
+
return publicSourcePath ? { ...page, sourcePath: `./${publicSourcePath}` } : page;
|
|
431
|
+
})
|
|
427
432
|
};
|
|
428
433
|
}
|
|
429
434
|
_chunkS3JO3N4Hcjs.__name.call(void 0, buildAgentSpec, "buildAgentSpec");
|
|
435
|
+
var REDACTED_DOCS_CONFIG_VALUE = "[redacted]";
|
|
436
|
+
function isSecretDocsConfigKey(key) {
|
|
437
|
+
const normalized = key.replace(/[-_]/g, "").toLowerCase();
|
|
438
|
+
if (!normalized || normalized.endsWith("env")) return false;
|
|
439
|
+
return /apikey|token|secret|password|authorization|credential/.test(normalized);
|
|
440
|
+
}
|
|
441
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isSecretDocsConfigKey, "isSecretDocsConfigKey");
|
|
442
|
+
function redactDocsConfigValue(value, key, inHeaders) {
|
|
443
|
+
if (Array.isArray(value)) {
|
|
444
|
+
return value.map((entry) => redactDocsConfigValue(entry, key, inHeaders));
|
|
445
|
+
}
|
|
446
|
+
if (isRecord(value) && !(value instanceof Date) && !(value instanceof URL)) {
|
|
447
|
+
const headers = inHeaders || key.toLowerCase() === "headers";
|
|
448
|
+
return Object.fromEntries(
|
|
449
|
+
Object.entries(value).map(([childKey, child]) => [
|
|
450
|
+
childKey,
|
|
451
|
+
redactDocsConfigValue(child, childKey, headers)
|
|
452
|
+
])
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
if (value === null || value === void 0 || typeof value === "function") return value;
|
|
456
|
+
return inHeaders || isSecretDocsConfigKey(key) ? REDACTED_DOCS_CONFIG_VALUE : value;
|
|
457
|
+
}
|
|
458
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, redactDocsConfigValue, "redactDocsConfigValue");
|
|
459
|
+
function toPublicDocsPath(value, root) {
|
|
460
|
+
if (typeof value !== "string" || !value) return void 0;
|
|
461
|
+
if (!_path2.default.isAbsolute(value)) return value;
|
|
462
|
+
const relative = _path2.default.relative(root, value);
|
|
463
|
+
if (_path2.default.isAbsolute(relative) || relative === ".." || relative.startsWith(`..${_path2.default.sep}`)) {
|
|
464
|
+
return void 0;
|
|
465
|
+
}
|
|
466
|
+
return relative.split(_path2.default.sep).join("/") || ".";
|
|
467
|
+
}
|
|
468
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, toPublicDocsPath, "toPublicDocsPath");
|
|
469
|
+
function buildPublicConfig(context) {
|
|
470
|
+
const redacted = redactDocsConfigValue(context.docs.config, "", false);
|
|
471
|
+
const contentDir = toPublicDocsPath(redacted.contentDir, context.root);
|
|
472
|
+
const publicInput = { ...redacted, contentDir };
|
|
473
|
+
const map = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsConfigMap(publicInput, {
|
|
474
|
+
file: toPublicDocsPath(context.docs.configPath, context.root) || "farm.config.ts"
|
|
475
|
+
});
|
|
476
|
+
const config = Object.fromEntries(Object.keys(map.values).map((key) => [key, publicInput[key]]));
|
|
477
|
+
return {
|
|
478
|
+
entry: context.docs.entry,
|
|
479
|
+
contentDir: toPublicDocsPath(context.docs.contentDir, context.root) || contentDir || null,
|
|
480
|
+
config,
|
|
481
|
+
map
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, buildPublicConfig, "buildPublicConfig");
|
|
430
485
|
function buildDiagnostics(context) {
|
|
431
|
-
const pages =
|
|
486
|
+
const pages = _chunkZ2YLTERKcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
|
|
432
487
|
const diagnostics = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsDiagnostics(context.docs.config, {
|
|
433
488
|
entry: context.docs.entry,
|
|
434
489
|
mcp: {
|
|
@@ -500,12 +555,13 @@ async function resolveAPIContext(options) {
|
|
|
500
555
|
config: options.config,
|
|
501
556
|
configPath: options.configPath
|
|
502
557
|
}));
|
|
503
|
-
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await
|
|
558
|
+
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkPQDFUSXDcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
|
|
504
559
|
return {
|
|
505
560
|
root,
|
|
506
561
|
srcDir,
|
|
507
562
|
docs,
|
|
508
|
-
contentDir:
|
|
563
|
+
contentDir: _chunkZ2YLTERKcjs.resolveFarmDocsContentDir.call(void 0, docs, { root, srcDir }),
|
|
564
|
+
diagnostics: options.diagnostics === true
|
|
509
565
|
};
|
|
510
566
|
}
|
|
511
567
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveAPIContext, "resolveAPIContext");
|
|
@@ -517,21 +573,16 @@ async function handleDocsAPIGet(request, context) {
|
|
|
517
573
|
const format = getDocsAPIFormat(request);
|
|
518
574
|
const pathTarget = getDocsAPIPathTarget(request);
|
|
519
575
|
if (format === "config" || format === "docs-config") {
|
|
520
|
-
return json(
|
|
521
|
-
entry: context.docs.entry,
|
|
522
|
-
contentDir: context.docs.contentDir || context.docs.config.contentDir || null,
|
|
523
|
-
config: context.docs.config,
|
|
524
|
-
map: _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsConfigMap(context.docs.config, {
|
|
525
|
-
file: context.docs.configPath || "farm.config.ts"
|
|
526
|
-
})
|
|
527
|
-
});
|
|
576
|
+
return json(buildPublicConfig(context));
|
|
528
577
|
}
|
|
529
578
|
if (format === "skill")
|
|
530
579
|
return text(renderSkillDocument(context, request), "text/markdown; charset=utf-8");
|
|
531
580
|
if (format === "agents")
|
|
532
581
|
return text(renderAgentsDocument(context, request), "text/markdown; charset=utf-8");
|
|
533
582
|
if (format === "agent" || format === "agent-spec") return json(buildAgentSpec(context, request));
|
|
534
|
-
if (format === "diagnostics")
|
|
583
|
+
if (format === "diagnostics") {
|
|
584
|
+
return context.diagnostics ? json(buildDiagnostics(context)) : json({ error: "Docs diagnostics are only available in development" }, { status: 404 });
|
|
585
|
+
}
|
|
535
586
|
if (format === "llms")
|
|
536
587
|
return text(renderLlmsTxt(context, request, false), "text/plain; charset=utf-8");
|
|
537
588
|
if (format === "llms-full")
|
|
@@ -568,10 +619,10 @@ async function handleDocsAPIGet(request, context) {
|
|
|
568
619
|
if (format === "markdown" || url.pathname.endsWith(".md")) {
|
|
569
620
|
const pathParam = url.searchParams.get("path") || url.searchParams.get("slug");
|
|
570
621
|
const slug = normalizeDocsApiSlug(_nullishCoalesce(_nullishCoalesce(pathParam, () => ( pathTarget.slug)), () => ( "")), context.docs);
|
|
571
|
-
const page =
|
|
622
|
+
const page = _chunkZ2YLTERKcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, slug);
|
|
572
623
|
if (!page) return text("Docs page not found\n", "text/plain; charset=utf-8", { status: 404 });
|
|
573
624
|
return text(
|
|
574
|
-
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(
|
|
625
|
+
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(_chunkZ2YLTERKcjs.toFarmDocsMarkdownPage.call(void 0, page), {
|
|
575
626
|
origin: new URL(request.url).origin,
|
|
576
627
|
llms: getDocsLlmsOptions(context, request),
|
|
577
628
|
sitemap: context.docs.config.sitemap
|