@farm.js/core 0.1.36 → 0.1.38
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/{agent-mcp-BVExL8rZ.d.mts → agent-mcp-BwKlpnc7.d.mts} +1 -1
- package/dist/{agent-mcp-luzfXK-P.d.ts → agent-mcp-De1imoMS.d.ts} +1 -1
- package/dist/{agent-mcp-handler-SJAHFSPI.cjs → agent-mcp-handler-MRGP3WJ3.cjs} +5 -5
- package/dist/{agent-mcp-handler-LPJ2CADR.mjs → agent-mcp-handler-OLRMZONF.mjs} +4 -4
- package/dist/agent-runtime.cjs +3 -3
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/agent-runtime.mjs +2 -2
- package/dist/api/client.cjs +3 -3
- package/dist/api/client.mjs +2 -2
- package/dist/api/route-manager.cjs +6 -6
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/route-manager.mjs +5 -5
- package/dist/api/runtime.cjs +4 -4
- package/dist/api/runtime.d.mts +2 -2
- package/dist/api/runtime.d.ts +2 -2
- package/dist/api/runtime.mjs +3 -3
- package/dist/api.cjs +9 -8
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.mjs +8 -7
- package/dist/{app-BukwkFIu.d.mts → app-CFZt-srr.d.mts} +21 -3
- package/dist/{app-Yfa2dsFy.d.ts → app-kT_QXTdx.d.ts} +21 -3
- package/dist/app-markdown.cjs +6 -4
- package/dist/app-markdown.d.mts +3 -3
- package/dist/app-markdown.d.ts +3 -3
- package/dist/app-markdown.mjs +5 -3
- package/dist/{chunk-ADEA7PN3.cjs → chunk-2DD4JMQC.cjs} +113 -22
- package/dist/chunk-2ZYGC6SS.cjs +576 -0
- package/dist/{chunk-JZVADIOD.cjs → chunk-34UCJRQO.cjs} +2 -2
- package/dist/{chunk-D2BB47NB.cjs → chunk-3LOLJTFV.cjs} +6 -6
- package/dist/{chunk-KXWRO25S.cjs → chunk-472NCAZ7.cjs} +3 -3
- package/dist/chunk-4E5QXOCL.cjs +109 -0
- package/dist/{chunk-Z2HLU4IX.cjs → chunk-4GWRFP22.cjs} +23 -2
- package/dist/{chunk-VQLJWDVW.cjs → chunk-4IE345DM.cjs} +37 -19
- package/dist/{chunk-O6WAEAX3.mjs → chunk-5BWWFHR2.mjs} +70 -15
- package/dist/{chunk-JNUWCDTF.cjs → chunk-5D2JIPLH.cjs} +2 -2
- package/dist/{chunk-BO36SELV.cjs → chunk-5OKBARDN.cjs} +2 -2
- package/dist/{chunk-AO6RYU5N.cjs → chunk-5PWXMJOH.cjs} +30 -22
- package/dist/{chunk-AHGECQEW.mjs → chunk-666CKENS.mjs} +1 -1
- package/dist/chunk-6BK3K2GB.mjs +318 -0
- package/dist/{chunk-O6I6VWKK.mjs → chunk-6HB6V3R7.mjs} +1 -1
- package/dist/{chunk-UXFQ3UDA.cjs → chunk-6XWDE2P2.cjs} +61 -4
- package/dist/{chunk-VILIPRS6.mjs → chunk-7FPTZLKH.mjs} +1 -1
- package/dist/{chunk-SC2WYWPF.mjs → chunk-7PEP3BUT.mjs} +3 -3
- package/dist/{chunk-4E5AEDKY.mjs → chunk-A3EAIURZ.mjs} +25 -7
- package/dist/{chunk-YDQZGSDS.mjs → chunk-ARC7I3O2.mjs} +1 -1
- package/dist/{chunk-LSZAVSGY.mjs → chunk-B6G5CKMC.mjs} +101 -10
- package/dist/{chunk-3KZS4SUS.mjs → chunk-BZHXGVMA.mjs} +1 -1
- package/dist/{chunk-KN7K4VQN.mjs → chunk-CNNOLE4O.mjs} +1 -1
- package/dist/{chunk-4GLOOWKE.mjs → chunk-CQMVIOYP.mjs} +1 -1
- package/dist/{chunk-2ELDTQRN.mjs → chunk-CUM5NYL5.mjs} +1 -1
- package/dist/{chunk-HITLGIAO.cjs → chunk-CY2ZQ5C6.cjs} +7 -6
- package/dist/{chunk-PZNL3WEG.mjs → chunk-DMEPTZTI.mjs} +22 -11
- package/dist/{chunk-QORUJDIV.mjs → chunk-DRLKAXDM.mjs} +2 -2
- package/dist/{chunk-DQQOKWYA.cjs → chunk-EIPC3FDA.cjs} +12 -4
- package/dist/{chunk-HOXTWRGB.mjs → chunk-EKF7KDFD.mjs} +5 -2
- package/dist/{chunk-42NHY7HW.cjs → chunk-EKN7NSZO.cjs} +62 -14
- package/dist/{chunk-YKX5BK66.cjs → chunk-EMO6K4YY.cjs} +7 -7
- package/dist/{chunk-6SJ2KJTA.mjs → chunk-EPYU2EBL.mjs} +1 -1
- package/dist/{chunk-D227TIEN.cjs → chunk-FWE7LEQC.cjs} +13 -13
- package/dist/{chunk-PTZ2TVNE.cjs → chunk-H5CLOUZS.cjs} +5 -5
- package/dist/{chunk-DTSROJ5J.mjs → chunk-HD5CF3OE.mjs} +1 -1
- package/dist/{chunk-35GKZR22.mjs → chunk-HXRYZWTA.mjs} +1 -1
- package/dist/{chunk-JG6DJF5A.mjs → chunk-HZFM2LWQ.mjs} +22 -1
- package/dist/{chunk-MKYBIIAQ.mjs → chunk-IBUQWVYA.mjs} +17 -1
- package/dist/{chunk-F2SE2VDO.mjs → chunk-IHQIOZLC.mjs} +1 -1
- package/dist/{chunk-W7LF2J2S.mjs → chunk-INL3THCU.mjs} +1 -1
- package/dist/{chunk-WZ77PUAM.mjs → chunk-IVLZZZEI.mjs} +1 -1
- package/dist/{chunk-ENLZ4R3Y.mjs → chunk-J7K2NZD6.mjs} +7 -6
- package/dist/{chunk-BPOF5U4N.mjs → chunk-JCKYH4LG.mjs} +10 -7
- package/dist/{chunk-77GNHH2Z.cjs → chunk-JCYYXBAJ.cjs} +3 -3
- package/dist/{chunk-C4SPBWFM.cjs → chunk-JEZO6VUR.cjs} +10 -1
- package/dist/{chunk-ZWM5KGAA.cjs → chunk-KCQBAKIY.cjs} +23 -20
- package/dist/{chunk-OTC5BDGO.mjs → chunk-KHKLMNI5.mjs} +12 -7
- package/dist/{chunk-DZ5ZVB2K.cjs → chunk-KKSTAEMY.cjs} +1 -1
- package/dist/{chunk-N2NAS2AM.cjs → chunk-L4DD7ODZ.cjs} +2 -2
- package/dist/{chunk-YSCV4SJF.cjs → chunk-L5H2GSUC.cjs} +4 -4
- package/dist/{chunk-OO7GXVSR.mjs → chunk-LI2F57NI.mjs} +1 -1
- package/dist/{chunk-NRSN7G7E.mjs → chunk-MLY2RP5R.mjs} +10 -2
- package/dist/{chunk-BPMATOP2.cjs → chunk-N32CC42M.cjs} +25 -20
- package/dist/{chunk-FNO7A7CM.cjs → chunk-NBBEQLOK.cjs} +34 -16
- package/dist/{chunk-XCMCS4DA.mjs → chunk-ND2CWPOD.mjs} +2 -2
- package/dist/{chunk-GQRWBCWK.mjs → chunk-OAHTRMIC.mjs} +13 -5
- package/dist/{chunk-35WV46VL.mjs → chunk-OCIEZME4.mjs} +876 -685
- package/dist/{chunk-UH6QN5NL.mjs → chunk-P664ZVTV.mjs} +2 -2
- package/dist/{chunk-TE2G5ION.cjs → chunk-PGZDEPTM.cjs} +88 -33
- package/dist/{chunk-FDR64H6B.mjs → chunk-POSPE3IO.mjs} +59 -2
- package/dist/{chunk-UVW64BCB.cjs → chunk-Q3NXS4MU.cjs} +16 -14
- package/dist/{chunk-4WCZJQUO.mjs → chunk-QFW2IH5E.mjs} +57 -9
- package/dist/{chunk-5SJWVY6R.mjs → chunk-QHSH7IH4.mjs} +9 -0
- package/dist/chunk-QRKIMN7T.mjs +48 -0
- package/dist/chunk-QTXBII4Z.cjs +632 -0
- package/dist/{chunk-CI6E3UOH.cjs → chunk-RG4A6LB2.cjs} +7 -7
- package/dist/{chunk-BJPBQNIE.cjs → chunk-RW63BOV7.cjs} +2 -2
- package/dist/{chunk-FO427P6I.cjs → chunk-RWFLWR5J.cjs} +10 -10
- package/dist/{chunk-FFFW3OQ7.cjs → chunk-S6FJO323.cjs} +2 -2
- package/dist/{chunk-EUV4YR3V.cjs → chunk-SGBJ247Q.cjs} +18 -2
- package/dist/chunk-SGBZPZUW.mjs +75 -0
- package/dist/{chunk-2NNMOPDN.mjs → chunk-SKVTP5PR.mjs} +4 -1
- package/dist/{chunk-2YTDKNH3.cjs → chunk-TGFQVLLF.cjs} +956 -765
- package/dist/{chunk-IHNIDL6H.cjs → chunk-TO4GJ56K.cjs} +22 -11
- package/dist/{chunk-276VJSM6.mjs → chunk-TUBTR2OP.mjs} +250 -118
- package/dist/{chunk-GQ3Z3IZI.cjs → chunk-TYJALEHQ.cjs} +18 -18
- package/dist/chunk-TYMMBFN2.mjs +109 -0
- package/dist/chunk-U6QLDL3G.mjs +576 -0
- package/dist/{chunk-U4KT7QP3.cjs → chunk-ULASELLA.cjs} +26 -1
- package/dist/chunk-UXHS27O6.cjs +75 -0
- package/dist/{chunk-WWIKMBRN.mjs → chunk-VNGH5MLF.mjs} +17 -1
- package/dist/{chunk-EZDQRNQ7.mjs → chunk-VT4WFRHA.mjs} +23 -5
- package/dist/{chunk-CBJJH36A.cjs → chunk-VU6AAZVY.cjs} +20 -4
- package/dist/{chunk-27ZWSI3W.cjs → chunk-VXEEATVD.cjs} +2 -2
- package/dist/{chunk-EWET4D2Y.mjs → chunk-W36M2BQ4.mjs} +3 -3
- package/dist/{chunk-4WQ6PGSJ.cjs → chunk-WEW2JVA4.cjs} +4 -4
- package/dist/{chunk-4E5WBPEG.mjs → chunk-WFRT7JPX.mjs} +8 -533
- package/dist/{chunk-T4OGRVNS.mjs → chunk-WLL43JMO.mjs} +2 -2
- package/dist/chunk-WW46B6HA.cjs +318 -0
- package/dist/{chunk-TKSCR644.cjs → chunk-WXJLNP33.cjs} +2 -2
- package/dist/{chunk-S6VYG6XU.cjs → chunk-XKG2BLFN.cjs} +2 -2
- package/dist/{chunk-4NU4GGTC.cjs → chunk-XKVVMZP5.cjs} +6 -3
- package/dist/{chunk-NMHWYWDR.cjs → chunk-YR2VBEMO.cjs} +658 -526
- package/dist/{chunk-OHLSEQ57.mjs → chunk-ZJD2PN6Z.mjs} +10 -8
- package/dist/{chunk-3BU22U3M.cjs → chunk-ZXH4TS3F.cjs} +5 -2
- package/dist/{client-plugins-r1mOtSC1.d.ts → client-plugins-BvlNhGEB.d.ts} +54 -7
- package/dist/{client-plugins-C3mK9Pol.d.mts → client-plugins-DUrIYX9B.d.mts} +54 -7
- 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-ERIKFEXX.mjs → devtools-JYJNOLPQ.mjs} +8 -6
- package/dist/{devtools-JZJJY5CK.cjs → devtools-VQWJANJV.cjs} +9 -7
- package/dist/docs.cjs +12 -10
- package/dist/docs.d.mts +20 -2
- package/dist/docs.d.ts +20 -2
- package/dist/docs.mjs +11 -9
- package/dist/headers.cjs +6 -4
- package/dist/headers.d.mts +11 -1
- package/dist/headers.d.ts +11 -1
- package/dist/headers.mjs +5 -3
- package/dist/i18n/client.cjs +11 -11
- package/dist/i18n/client.mjs +3 -3
- package/dist/index.cjs +62 -46
- package/dist/index.d.mts +16 -16
- package/dist/index.d.ts +16 -16
- package/dist/index.mjs +62 -46
- package/dist/integrations.cjs +5 -3
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/integrations.mjs +4 -2
- package/dist/internal/app-markdown-runtime.cjs +5 -3
- package/dist/internal/app-markdown-runtime.d.mts +19 -5
- package/dist/internal/app-markdown-runtime.d.ts +19 -5
- package/dist/internal/app-markdown-runtime.mjs +4 -2
- package/dist/internal/build-runtime.cjs +33 -30
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +32 -29
- package/dist/internal/cli-runtime.cjs +14 -12
- package/dist/internal/cli-runtime.mjs +13 -11
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +2 -2
- package/dist/internal/client-runtime.mjs +1 -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 +9 -7
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +8 -6
- package/dist/internal/docs-precompiled-runtime.cjs +19 -13
- package/dist/internal/docs-precompiled-runtime.d.mts +5 -0
- package/dist/internal/docs-precompiled-runtime.d.ts +5 -0
- package/dist/internal/docs-precompiled-runtime.mjs +14 -8
- package/dist/internal/infra-analytics-runtime.cjs +5 -5
- package/dist/internal/infra-analytics-runtime.mjs +3 -3
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-node-env.cjs +6 -2
- package/dist/internal/production-node-env.d.mts +10 -1
- package/dist/internal/production-node-env.d.ts +10 -1
- package/dist/internal/production-node-env.mjs +5 -1
- package/dist/internal/production-runtime.cjs +39 -54
- package/dist/internal/production-runtime.d.mts +51 -11
- package/dist/internal/production-runtime.d.ts +51 -11
- package/dist/internal/production-runtime.mjs +39 -54
- package/dist/markdown.cjs +8 -2
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/markdown.mjs +7 -1
- package/dist/middleware.cjs +10 -8
- package/dist/middleware.d.mts +27 -5
- package/dist/middleware.d.ts +27 -5
- package/dist/middleware.mjs +10 -8
- package/dist/navigation.cjs +7 -7
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/navigation.mjs +6 -6
- package/dist/plugin.cjs +25 -23
- package/dist/plugin.d.mts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.mjs +24 -22
- package/dist/{production-runtime-CCeVZXst.d.mts → production-runtime-BQ4_WLwQ.d.mts} +1 -1
- package/dist/{production-runtime-DPnsggY3.d.ts → production-runtime-D2aMyzjr.d.ts} +1 -1
- package/dist/query/client.cjs +9 -9
- package/dist/query/client.mjs +4 -4
- package/dist/{render-plan-Cw4f5E_R.d.ts → render-plan-25p4hrj4.d.ts} +1 -1
- package/dist/{render-plan-BuGaPFe6.d.mts → render-plan-DtkXMN8D.d.mts} +1 -1
- package/dist/renderer-client.cjs +12 -12
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +4 -4
- package/dist/renderer.d.mts +13 -4
- package/dist/renderer.d.ts +13 -4
- package/dist/{request-CsGARcAw.d.mts → request-DgCkIdcn.d.mts} +4 -2
- package/dist/{request-Bkg-hERy.d.ts → request-jF4jwx8f.d.ts} +4 -2
- package/dist/request.cjs +3 -3
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/request.mjs +2 -2
- package/dist/{route-rendering-BUZMH_64.d.ts → route-rendering-Bji6S6a_.d.ts} +1 -1
- package/dist/{route-rendering-f11yh5dp.d.mts → route-rendering-CSBF78Ya.d.mts} +1 -1
- package/dist/{router-Cp6yRE8A.d.mts → router-B09Ui3Qm.d.mts} +1 -1
- package/dist/{router-B8CR9GbD.d.ts → router-CPB9cXtG.d.ts} +1 -1
- package/dist/routes.cjs +2 -2
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/routes.mjs +1 -1
- package/dist/{runtime-CAEv36S_.d.mts → runtime-CM6E6yuI.d.mts} +1 -1
- package/dist/{runtime-CQVsT330.d.ts → runtime-EDMwLdjv.d.ts} +1 -1
- package/dist/server-fn.cjs +3 -3
- package/dist/server-fn.mjs +2 -2
- package/dist/server-plugins.cjs +5 -5
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server-plugins.mjs +4 -4
- package/dist/server-query.cjs +4 -4
- package/dist/server-query.mjs +3 -3
- package/dist/server.cjs +51 -49
- package/dist/server.d.mts +7 -7
- package/dist/server.d.ts +7 -7
- package/dist/server.mjs +29 -27
- package/dist/{spa-router-BuciWGCZ.d.ts → spa-router-B_N8XgVu.d.ts} +2 -2
- package/dist/{spa-router-DwbqGkGj.d.mts → spa-router-Cgimzfbi.d.mts} +2 -2
- package/dist/testing.cjs +8 -8
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +6 -6
- package/dist/theme/server.cjs +4 -4
- package/dist/theme/server.mjs +3 -3
- package/dist/{utils-CaoWKtYM.d.ts → utils-BNxAKAuT.d.ts} +1 -1
- package/dist/{utils-B9V0S_yL.d.mts → utils-DZciYXYl.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +25 -23
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.mjs +24 -22
- package/package.json +1 -1
- package/types/middleware.d.ts +5 -1
- package/dist/chunk-655RLQQL.mjs +0 -43
- package/dist/chunk-FXEF4PPL.mjs +0 -47
- package/dist/chunk-IZY3V5XW.mjs +0 -23
- package/dist/chunk-MRMI32SN.cjs +0 -1157
- package/dist/chunk-MT763TDW.cjs +0 -43
- package/dist/chunk-XD32KALF.cjs +0 -47
- /package/dist/{chunk-SJNMVDDF.cjs → chunk-FUCSUGDM.cjs} +0 -0
- /package/dist/{chunk-UDNPLXW7.mjs → chunk-MYIZXDZA.mjs} +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkPCOTGFSMcjs = require('./chunk-PCOTGFSM.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunk2DD4JMQCcjs = require('./chunk-2DD4JMQC.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
14
|
+
|
|
15
|
+
// src/nitro/native-mcp-source.ts
|
|
16
|
+
function generateNativeMCPPluginSource(mcp) {
|
|
17
|
+
if (_optionalChain([mcp, 'optionalAccess', _ => _.enabled]) !== true) {
|
|
18
|
+
return { importSource: "", registerSource: "", pluginSource: "" };
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
importSource: `import { createFarmMCPPlugin as __farmCreateMCPPlugin } from "@farm.js/mcp/internal";`,
|
|
22
|
+
registerSource: `function __farmMCPIsPlainObject(value) {
|
|
23
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
24
|
+
const prototype = Object.getPrototypeOf(value);
|
|
25
|
+
return prototype === Object.prototype || prototype === null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function __farmMergeMCPConfig(base, override) {
|
|
29
|
+
const output = { ...base };
|
|
30
|
+
for (const [key, value] of Object.entries(override)) {
|
|
31
|
+
if (value === undefined) continue;
|
|
32
|
+
output[key] =
|
|
33
|
+
__farmMCPIsPlainObject(output[key]) && __farmMCPIsPlainObject(value)
|
|
34
|
+
? __farmMergeMCPConfig(output[key], value)
|
|
35
|
+
: value;
|
|
36
|
+
}
|
|
37
|
+
return output;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const farmNativeMCPConfig = farmRuntimeConfigs.reduce((merged, runtimeConfig) => {
|
|
41
|
+
const value = runtimeConfig?.mcp;
|
|
42
|
+
if (value === undefined) return merged;
|
|
43
|
+
if (value === false) return false;
|
|
44
|
+
return __farmMergeMCPConfig(merged && merged !== false ? merged : {}, value);
|
|
45
|
+
}, undefined);
|
|
46
|
+
const farmNativeMCPPlugin =
|
|
47
|
+
farmNativeMCPConfig && farmNativeMCPConfig.enabled !== false
|
|
48
|
+
? __farmCreateMCPPlugin(farmNativeMCPConfig)
|
|
49
|
+
: null;`,
|
|
50
|
+
pluginSource: `...(farmNativeMCPPlugin ? [farmNativeMCPPlugin] : []),`
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, generateNativeMCPPluginSource, "generateNativeMCPPluginSource");
|
|
54
|
+
|
|
55
|
+
// src/routing/layout-selector.ts
|
|
56
|
+
function createFarmLayoutSelector(layouts, resolveRouteDirectory) {
|
|
57
|
+
const prepared = layouts.map((layout) => {
|
|
58
|
+
const segments = layout.pattern === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, layout.pattern);
|
|
59
|
+
return {
|
|
60
|
+
layout,
|
|
61
|
+
segments: segments.length === 0 ? null : segments,
|
|
62
|
+
groupScope: _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, layout.pattern)
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
return (pathname, routeDirectory) => {
|
|
66
|
+
const applicable = [];
|
|
67
|
+
let parts;
|
|
68
|
+
let directory = routeDirectory;
|
|
69
|
+
for (const { layout, segments, groupScope } of prepared) {
|
|
70
|
+
if (segments !== null) {
|
|
71
|
+
_nullishCoalesce(parts, () => ( (parts = _chunkPCOTGFSMcjs.splitNormalizedPathname.call(void 0, _chunkPCOTGFSMcjs.normalizePathname.call(void 0, pathname.replace(/\/$/, "") || "/")))));
|
|
72
|
+
if (_chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, segments, parts, true) === null) continue;
|
|
73
|
+
}
|
|
74
|
+
if (groupScope !== null) {
|
|
75
|
+
if (directory === void 0) directory = _nullishCoalesce(_optionalChain([resolveRouteDirectory, 'optionalCall', _2 => _2(pathname)]), () => ( null));
|
|
76
|
+
if (!_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, directory, groupScope)) continue;
|
|
77
|
+
}
|
|
78
|
+
applicable.push(layout);
|
|
79
|
+
}
|
|
80
|
+
return applicable;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmLayoutSelector, "createFarmLayoutSelector");
|
|
84
|
+
function layoutsCanCoverSamePage(a, b) {
|
|
85
|
+
const scopeA = _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, a);
|
|
86
|
+
const scopeB = _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, b);
|
|
87
|
+
if (scopeA !== null && scopeB !== null && !_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, scopeA, scopeB) && !_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, scopeB, scopeA)) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
const segmentsA = a === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, a);
|
|
91
|
+
const segmentsB = b === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, b);
|
|
92
|
+
const length = Math.min(segmentsA.length, segmentsB.length);
|
|
93
|
+
for (let index = 0; index < length; index++) {
|
|
94
|
+
const segmentA = segmentsA[index];
|
|
95
|
+
const segmentB = segmentsB[index];
|
|
96
|
+
if (segmentA.type === "dynamic" && segmentA.catchAll) return true;
|
|
97
|
+
if (segmentB.type === "dynamic" && segmentB.catchAll) return true;
|
|
98
|
+
if (segmentA.type === "dynamic" || segmentB.type === "dynamic") continue;
|
|
99
|
+
if (segmentA.value !== segmentB.value) return false;
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, layoutsCanCoverSamePage, "layoutsCanCoverSamePage");
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
exports.generateNativeMCPPluginSource = generateNativeMCPPluginSource; exports.createFarmLayoutSelector = createFarmLayoutSelector; exports.layoutsCanCoverSamePage = layoutsCanCoverSamePage;
|
|
@@ -183,6 +183,25 @@ function matchPattern(pattern, pathname) {
|
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
185
|
_chunkS3JO3N4Hcjs.__name.call(void 0, matchPattern, "matchPattern");
|
|
186
|
+
function withRoutePathname(ctx, routePathname) {
|
|
187
|
+
return new Proxy(ctx, {
|
|
188
|
+
get(target, key) {
|
|
189
|
+
return key === "pathname" || key === "routePathname" ? routePathname : Reflect.get(target, key, target);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, withRoutePathname, "withRoutePathname");
|
|
194
|
+
function matchesMiddlewarePredicate(predicate, ctx, getRoutePathname = () => ctx.routePathname) {
|
|
195
|
+
if (predicate(ctx)) return true;
|
|
196
|
+
const routePathname = getRoutePathname();
|
|
197
|
+
if (routePathname === void 0 || routePathname === ctx.pathname) return false;
|
|
198
|
+
return Boolean(predicate(withRoutePathname(ctx, routePathname)));
|
|
199
|
+
}
|
|
200
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewarePredicate, "matchesMiddlewarePredicate");
|
|
201
|
+
function toMiddlewareRoutePathname(pathname, toRoutePathname = (value) => value) {
|
|
202
|
+
return _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, toRoutePathname(pathname));
|
|
203
|
+
}
|
|
204
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, toMiddlewareRoutePathname, "toMiddlewareRoutePathname");
|
|
186
205
|
function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
|
|
187
206
|
let canonicalPathname;
|
|
188
207
|
const getCanonicalPathname = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => _nullishCoalesce(canonicalPathname, () => ( (canonicalPathname = _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, pathname)))), "getCanonicalPathname");
|
|
@@ -196,7 +215,7 @@ function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
|
|
|
196
215
|
if (config.matcher) {
|
|
197
216
|
for (const matcher of config.matcher) {
|
|
198
217
|
if (typeof matcher === "function") {
|
|
199
|
-
if (matcher
|
|
218
|
+
if (matchesMiddlewarePredicate(matcher, ctx, getCanonicalPathname)) {
|
|
200
219
|
return { matched: true };
|
|
201
220
|
}
|
|
202
221
|
continue;
|
|
@@ -235,4 +254,6 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareConfigAt, "matchesMiddlew
|
|
|
235
254
|
|
|
236
255
|
|
|
237
256
|
|
|
238
|
-
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesMiddlewarePredicate = matchesMiddlewarePredicate; exports.toMiddlewareRoutePathname = toMiddlewareRoutePathname; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
|
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
var _chunkPGZDEPTMcjs = require('./chunk-PGZDEPTM.cjs');
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
11
12
|
|
|
12
13
|
|
|
13
|
-
var
|
|
14
|
+
var _chunkQ3NXS4MUcjs = require('./chunk-Q3NXS4MU.cjs');
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
var
|
|
18
|
+
var _chunkCY2ZQ5C6cjs = require('./chunk-CY2ZQ5C6.cjs');
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -27,8 +28,17 @@ function hasFarmDocsRuntimeAdapter(docs) {
|
|
|
27
28
|
return Boolean(_optionalChain([docs, 'optionalAccess', _ => _.enabled]) && _optionalChain([docs, 'access', _2 => _2.adapter, 'optionalAccess', _3 => _3.server]) && docs.adapter.react);
|
|
28
29
|
}
|
|
29
30
|
_chunkS3JO3N4Hcjs.__name.call(void 0, hasFarmDocsRuntimeAdapter, "hasFarmDocsRuntimeAdapter");
|
|
31
|
+
function assertFarmDocsAdapterServesNoGuardedPages(docs, options, isPathGuarded) {
|
|
32
|
+
if (!isPathGuarded || !hasFarmDocsRuntimeAdapter(docs)) return;
|
|
33
|
+
const guarded = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, options), docs).filter((page) => isPathGuarded(page.href) || isPathGuarded(_chunkPGZDEPTMcjs.getFarmDocsMarkdownPath.call(void 0, page.href))).map((page) => page.href);
|
|
34
|
+
if (guarded.length === 0) return;
|
|
35
|
+
throw new Error(
|
|
36
|
+
`Docs pages behind a path guard (${guarded.join(", ")}) would be public: the docs adapter ${JSON.stringify(docs.adapter.id)} serves their content in llms-full.txt, search, Markdown, and MCP without running the app's guards. Move those pages out of the docs content directory, or set docs.adapter = false to use Farm's built-in docs runtime, which keeps guarded pages off anonymous surfaces.`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, assertFarmDocsAdapterServesNoGuardedPages, "assertFarmDocsAdapterServesNoGuardedPages");
|
|
30
40
|
async function loadFarmDocsConfigModule(docs, loadModule) {
|
|
31
|
-
const configModule =
|
|
41
|
+
const configModule = _chunkCY2ZQ5C6cjs.getFarmDocsAdapterConfigModule.call(void 0, docs);
|
|
32
42
|
if (!configModule) return void 0;
|
|
33
43
|
const loaded = await loadModule(configModule);
|
|
34
44
|
const config = _nullishCoalesce(_optionalChain([loaded, 'optionalAccess', _4 => _4.default]), () => ( loaded));
|
|
@@ -40,7 +50,7 @@ function createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig) {
|
|
|
40
50
|
...moduleConfig ? { ...moduleConfig, ...docs.configOverrides } : _nullishCoalesce(docs.runtimeConfig, () => ( docs.config)),
|
|
41
51
|
entry: docs.config.entry || docs.entry.replace(/^\/+|\/+$/g, "") || "docs",
|
|
42
52
|
docsPath: docs.entry,
|
|
43
|
-
contentDir:
|
|
53
|
+
contentDir: _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, options)
|
|
44
54
|
};
|
|
45
55
|
}
|
|
46
56
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAdapterRuntimeConfig, "createFarmDocsAdapterRuntimeConfig");
|
|
@@ -99,6 +109,7 @@ async function createFarmDocsAdapterHandler(docs, options) {
|
|
|
99
109
|
if (!hasFarmDocsRuntimeAdapter(docs)) {
|
|
100
110
|
throw new Error("Farm docs adapter requires server and react runtime entrypoints.");
|
|
101
111
|
}
|
|
112
|
+
assertFarmDocsAdapterServesNoGuardedPages(docs, options, options.isPathGuarded);
|
|
102
113
|
const serverModule = await options.loadModule(
|
|
103
114
|
docs.adapter.server
|
|
104
115
|
);
|
|
@@ -277,25 +288,25 @@ function getDocsDescription(docs) {
|
|
|
277
288
|
}
|
|
278
289
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getDocsDescription, "getDocsDescription");
|
|
279
290
|
function getLoadedDocsPages(context) {
|
|
280
|
-
return
|
|
291
|
+
return _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).filter((page) => !context.isPathGuarded(page.href)).map((page) => _chunkPGZDEPTMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, page.slug)).filter((page) => Boolean(page));
|
|
281
292
|
}
|
|
282
293
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getLoadedDocsPages, "getLoadedDocsPages");
|
|
283
294
|
function toDocsSourcePage(page) {
|
|
284
295
|
return {
|
|
285
|
-
...
|
|
296
|
+
..._chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
286
297
|
sourcePath: page.sourcePath
|
|
287
298
|
};
|
|
288
299
|
}
|
|
289
300
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSourcePage, "toDocsSourcePage");
|
|
290
301
|
function toDocsSitemapPage(page) {
|
|
291
302
|
return {
|
|
292
|
-
...
|
|
303
|
+
..._chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
293
304
|
sourcePath: page.sourcePath
|
|
294
305
|
};
|
|
295
306
|
}
|
|
296
307
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSitemapPage, "toDocsSitemapPage");
|
|
297
308
|
function toDocsLlmsPage(page) {
|
|
298
|
-
return
|
|
309
|
+
return _chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page);
|
|
299
310
|
}
|
|
300
311
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsLlmsPage, "toDocsLlmsPage");
|
|
301
312
|
function getDocsLlmsOptions(context, request) {
|
|
@@ -389,7 +400,9 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, renderAgentsDocument, "renderAgentsDocumen
|
|
|
389
400
|
function buildAgentSpec(context, request) {
|
|
390
401
|
const url = new URL(request.url);
|
|
391
402
|
const origin = url.origin;
|
|
392
|
-
const pages =
|
|
403
|
+
const pages = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).filter(
|
|
404
|
+
(page) => !context.isPathGuarded(page.href)
|
|
405
|
+
);
|
|
393
406
|
const spec = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsAgentDiscoverySpec(getDocsDiscoveryOptions(context, request));
|
|
394
407
|
const title = getDocsTitle(context.docs);
|
|
395
408
|
return {
|
|
@@ -449,7 +462,7 @@ function redactDocsConfigValue(value, key, inHeaders) {
|
|
|
449
462
|
);
|
|
450
463
|
}
|
|
451
464
|
if (value === null || value === void 0 || typeof value === "function") return value;
|
|
452
|
-
return inHeaders ||
|
|
465
|
+
return inHeaders || _chunkCY2ZQ5C6cjs.isSecretDocsConfigKey.call(void 0, key) ? REDACTED_DOCS_CONFIG_VALUE : value;
|
|
453
466
|
}
|
|
454
467
|
_chunkS3JO3N4Hcjs.__name.call(void 0, redactDocsConfigValue, "redactDocsConfigValue");
|
|
455
468
|
function toPublicDocsPath(value, root) {
|
|
@@ -479,7 +492,7 @@ function buildPublicConfig(context) {
|
|
|
479
492
|
}
|
|
480
493
|
_chunkS3JO3N4Hcjs.__name.call(void 0, buildPublicConfig, "buildPublicConfig");
|
|
481
494
|
function buildDiagnostics(context) {
|
|
482
|
-
const pages =
|
|
495
|
+
const pages = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
|
|
483
496
|
const diagnostics = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsDiagnostics(context.docs.config, {
|
|
484
497
|
entry: context.docs.entry,
|
|
485
498
|
mcp: {
|
|
@@ -551,13 +564,15 @@ async function resolveAPIContext(options) {
|
|
|
551
564
|
config: options.config,
|
|
552
565
|
configPath: options.configPath
|
|
553
566
|
}));
|
|
554
|
-
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await
|
|
567
|
+
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkQ3NXS4MUcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
|
|
568
|
+
const guardedPaths = new Set(_nullishCoalesce(_optionalChain([runtimeConfig, 'optionalAccess', _20 => _20.guardedPaths]), () => ( [])));
|
|
555
569
|
return {
|
|
556
570
|
root,
|
|
557
571
|
srcDir,
|
|
558
572
|
docs,
|
|
559
|
-
contentDir:
|
|
560
|
-
diagnostics: options.diagnostics === true
|
|
573
|
+
contentDir: _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, { root, srcDir }),
|
|
574
|
+
diagnostics: options.diagnostics === true,
|
|
575
|
+
isPathGuarded: _nullishCoalesce(options.isPathGuarded, () => ( ((pathname) => guardedPaths.has(pathname))))
|
|
561
576
|
};
|
|
562
577
|
}
|
|
563
578
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveAPIContext, "resolveAPIContext");
|
|
@@ -615,10 +630,12 @@ async function handleDocsAPIGet(request, context) {
|
|
|
615
630
|
if (format === "markdown" || url.pathname.endsWith(".md")) {
|
|
616
631
|
const pathParam = url.searchParams.get("path") || url.searchParams.get("slug");
|
|
617
632
|
const slug = normalizeDocsApiSlug(_nullishCoalesce(_nullishCoalesce(pathParam, () => ( pathTarget.slug)), () => ( "")), context.docs);
|
|
618
|
-
const page =
|
|
619
|
-
if (!page
|
|
633
|
+
const page = _chunkPGZDEPTMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, slug);
|
|
634
|
+
if (!page || context.isPathGuarded(page.href)) {
|
|
635
|
+
return text("Docs page not found\n", "text/plain; charset=utf-8", { status: 404 });
|
|
636
|
+
}
|
|
620
637
|
return text(
|
|
621
|
-
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(
|
|
638
|
+
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(_chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page), {
|
|
622
639
|
origin: new URL(request.url).origin,
|
|
623
640
|
llms: getDocsLlmsOptions(context, request),
|
|
624
641
|
sitemap: context.docs.config.sitemap
|
|
@@ -693,4 +710,5 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAPIHandler, "createFarmDocsA
|
|
|
693
710
|
|
|
694
711
|
|
|
695
712
|
|
|
696
|
-
|
|
713
|
+
|
|
714
|
+
exports.hasFarmDocsRuntimeAdapter = hasFarmDocsRuntimeAdapter; exports.assertFarmDocsAdapterServesNoGuardedPages = assertFarmDocsAdapterServesNoGuardedPages; exports.compileFarmDocsAdapterEdgeManifest = compileFarmDocsAdapterEdgeManifest; exports.createFarmDocsAdapterHandler = createFarmDocsAdapterHandler; exports.isFarmDocsAPIRequest = isFarmDocsAPIRequest; exports.createDocsAPI = createDocsAPI; exports.createFarmDocsAPIHandler = createFarmDocsAPIHandler;
|
|
@@ -13,9 +13,12 @@ import {
|
|
|
13
13
|
resolveFarmDocsFontAssets,
|
|
14
14
|
toFarmDocsPublicFontAssets
|
|
15
15
|
} from "./chunk-TVGP4BBZ.mjs";
|
|
16
|
+
import {
|
|
17
|
+
stampFarmCspNonce
|
|
18
|
+
} from "./chunk-U6QLDL3G.mjs";
|
|
16
19
|
import {
|
|
17
20
|
farmAcceptQuality
|
|
18
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-VNGH5MLF.mjs";
|
|
19
22
|
import {
|
|
20
23
|
matchesFarmIfNoneMatch
|
|
21
24
|
} from "./chunk-ZMMBIVQM.mjs";
|
|
@@ -24,7 +27,13 @@ import {
|
|
|
24
27
|
} from "./chunk-LPEX4YW6.mjs";
|
|
25
28
|
|
|
26
29
|
// src/docs/handler.ts
|
|
27
|
-
import {
|
|
30
|
+
import {
|
|
31
|
+
existsSync as existsSync2,
|
|
32
|
+
readdirSync as readdirSync2,
|
|
33
|
+
readFileSync as readFileSync2,
|
|
34
|
+
realpathSync as realpathSync2,
|
|
35
|
+
statSync as statSync2
|
|
36
|
+
} from "fs";
|
|
28
37
|
import path2 from "path";
|
|
29
38
|
import { marked, Renderer } from "marked";
|
|
30
39
|
import { highlight } from "sugar-high";
|
|
@@ -718,15 +727,46 @@ function getRequestSlug(docs, request) {
|
|
|
718
727
|
return normalizeSlug(pathname.slice(entry.length));
|
|
719
728
|
}
|
|
720
729
|
__name(getRequestSlug, "getRequestSlug");
|
|
730
|
+
function isDiscoverableDocsEntryName(name) {
|
|
731
|
+
return Boolean(name) && !name.startsWith(".") && name !== "node_modules";
|
|
732
|
+
}
|
|
733
|
+
__name(isDiscoverableDocsEntryName, "isDiscoverableDocsEntryName");
|
|
734
|
+
function isDiscoverableDocsFile(contentDir, filePath) {
|
|
735
|
+
const segments = path2.relative(contentDir, filePath).split(path2.sep);
|
|
736
|
+
let dir = contentDir;
|
|
737
|
+
for (const [index, name] of segments.entries()) {
|
|
738
|
+
if (!isDiscoverableDocsEntryName(name)) return false;
|
|
739
|
+
let entry;
|
|
740
|
+
try {
|
|
741
|
+
entry = readdirSync2(dir, { withFileTypes: true }).find(
|
|
742
|
+
(candidate) => candidate.name === name
|
|
743
|
+
);
|
|
744
|
+
} catch {
|
|
745
|
+
return false;
|
|
746
|
+
}
|
|
747
|
+
const isLast = index === segments.length - 1;
|
|
748
|
+
if (!entry || !(isLast ? entry.isFile() : entry.isDirectory())) return false;
|
|
749
|
+
dir = path2.join(dir, name);
|
|
750
|
+
}
|
|
751
|
+
return true;
|
|
752
|
+
}
|
|
753
|
+
__name(isDiscoverableDocsFile, "isDiscoverableDocsFile");
|
|
721
754
|
function findDocsPageFile(contentDir, slug) {
|
|
722
|
-
const
|
|
723
|
-
|
|
755
|
+
const canonicalSlug = trimSlashes(slug);
|
|
756
|
+
const segments = canonicalSlug ? canonicalSlug.split("/") : [];
|
|
757
|
+
if (!segments.every((segment) => isSafeSegment(segment) && isDiscoverableDocsEntryName(segment))) {
|
|
758
|
+
return null;
|
|
759
|
+
}
|
|
724
760
|
const slugDir = path2.join(contentDir, ...segments);
|
|
725
761
|
const candidates = segments.length === 0 ? DOCS_FILE_NAMES.map((filename) => path2.join(contentDir, filename)) : [
|
|
726
762
|
...DOCS_FILE_NAMES.map((filename) => path2.join(slugDir, filename)),
|
|
727
|
-
...DOCS_FILE_EXTENSIONS2.map(
|
|
763
|
+
...DOCS_FILE_EXTENSIONS2.map(
|
|
764
|
+
(extension) => path2.join(contentDir, `${canonicalSlug}${extension}`)
|
|
765
|
+
)
|
|
728
766
|
];
|
|
729
767
|
for (const candidate of candidates) {
|
|
768
|
+
if (pathToSlug(contentDir, candidate) !== canonicalSlug) continue;
|
|
769
|
+
if (!isDiscoverableDocsFile(contentDir, candidate)) continue;
|
|
730
770
|
const safePath = resolveExistingFileInside(contentDir, candidate);
|
|
731
771
|
if (safePath) {
|
|
732
772
|
return safePath;
|
|
@@ -784,6 +824,10 @@ function loadFarmDocsPage(contentDir, docs, slug) {
|
|
|
784
824
|
};
|
|
785
825
|
}
|
|
786
826
|
__name(loadFarmDocsPage, "loadFarmDocsPage");
|
|
827
|
+
function getFarmDocsMarkdownPath(href) {
|
|
828
|
+
return href === "/" ? "/.md" : `${href}.md`;
|
|
829
|
+
}
|
|
830
|
+
__name(getFarmDocsMarkdownPath, "getFarmDocsMarkdownPath");
|
|
787
831
|
function createDocsHref(entry, slug) {
|
|
788
832
|
const normalizedEntry = normalizeEntry2(entry);
|
|
789
833
|
const normalizedSlug = trimSlashes(slug);
|
|
@@ -861,8 +905,8 @@ function getDocsDescription(docs) {
|
|
|
861
905
|
return docs.config.metadata?.description;
|
|
862
906
|
}
|
|
863
907
|
__name(getDocsDescription, "getDocsDescription");
|
|
864
|
-
function getLoadedDocsPages(contentDir, docs) {
|
|
865
|
-
return discoverFarmDocsPages(contentDir, docs).map((page) => loadFarmDocsPage(contentDir, docs, page.slug)).filter((page) => Boolean(page));
|
|
908
|
+
function getLoadedDocsPages(contentDir, docs, isPathGuarded) {
|
|
909
|
+
return discoverFarmDocsPages(contentDir, docs).filter((page) => !isPathGuarded?.(page.href)).map((page) => loadFarmDocsPage(contentDir, docs, page.slug)).filter((page) => Boolean(page));
|
|
866
910
|
}
|
|
867
911
|
__name(getLoadedDocsPages, "getLoadedDocsPages");
|
|
868
912
|
function toDocsLlmsPage(page) {
|
|
@@ -1057,10 +1101,10 @@ function getDocsDiscoveryOptions(docs, request) {
|
|
|
1057
1101
|
};
|
|
1058
1102
|
}
|
|
1059
1103
|
__name(getDocsDiscoveryOptions, "getDocsDiscoveryOptions");
|
|
1060
|
-
function createFarmDocsPublicResponse(contentDir, docs, request) {
|
|
1104
|
+
function createFarmDocsPublicResponse(contentDir, docs, request, isPathGuarded) {
|
|
1061
1105
|
const url = new URL(request.url);
|
|
1062
1106
|
let loadedPages;
|
|
1063
|
-
const getPages = /* @__PURE__ */ __name(() => loadedPages ?? (loadedPages = getLoadedDocsPages(contentDir, docs)), "getPages");
|
|
1107
|
+
const getPages = /* @__PURE__ */ __name(() => loadedPages ?? (loadedPages = getLoadedDocsPages(contentDir, docs, isPathGuarded)), "getPages");
|
|
1064
1108
|
const sitemapManifest = /* @__PURE__ */ __name(() => docsEngine().buildDocsSitemapManifest({
|
|
1065
1109
|
pages: getPages().map(toDocsSitemapPage),
|
|
1066
1110
|
entry: docs.entry,
|
|
@@ -1786,11 +1830,11 @@ function renderDocsSearchTrigger(showIcon = true, className = "") {
|
|
|
1786
1830
|
__name(renderDocsSearchTrigger, "renderDocsSearchTrigger");
|
|
1787
1831
|
function renderDocsSearchMount(clientEntry) {
|
|
1788
1832
|
return `<div id="farm-docs-search-root" data-farm-docs-search-root data-api="/api/docs"></div>
|
|
1789
|
-
|
|
1833
|
+
${stampFarmCspNonce(`<script type="module" src="${escapeAttribute(clientEntry)}"></script>`)}`;
|
|
1790
1834
|
}
|
|
1791
1835
|
__name(renderDocsSearchMount, "renderDocsSearchMount");
|
|
1792
1836
|
function renderDocsSearchBootstrapScript() {
|
|
1793
|
-
return `<script>${generateFarmDocsSearchBootstrapRuntime()}</script
|
|
1837
|
+
return stampFarmCspNonce(`<script>${generateFarmDocsSearchBootstrapRuntime()}</script>`);
|
|
1794
1838
|
}
|
|
1795
1839
|
__name(renderDocsSearchBootstrapScript, "renderDocsSearchBootstrapScript");
|
|
1796
1840
|
function renderPixelToc(items) {
|
|
@@ -1820,9 +1864,9 @@ function renderDocsHashRuntimeScript() {
|
|
|
1820
1864
|
}
|
|
1821
1865
|
__name(renderDocsHashRuntimeScript, "renderDocsHashRuntimeScript");
|
|
1822
1866
|
function renderDocsRuntimeScripts(docs) {
|
|
1823
|
-
return `${renderDocsRuntimeScript(docs)}
|
|
1867
|
+
return stampFarmCspNonce(`${renderDocsRuntimeScript(docs)}
|
|
1824
1868
|
${renderDocsHashRuntimeScript()}
|
|
1825
|
-
${renderDocsPageActionsRuntimeScript()}
|
|
1869
|
+
${renderDocsPageActionsRuntimeScript()}`);
|
|
1826
1870
|
}
|
|
1827
1871
|
__name(renderDocsRuntimeScripts, "renderDocsRuntimeScripts");
|
|
1828
1872
|
function renderFarmDocsFontPreloads(fontAssets) {
|
|
@@ -1934,7 +1978,9 @@ function createFarmDocsHandler(docs, options) {
|
|
|
1934
1978
|
const socialImageSlug = getFarmDocsSocialImageSlug(docs, requestUrl);
|
|
1935
1979
|
if (socialImageSlug !== null) {
|
|
1936
1980
|
const socialImagePage = loadFarmDocsPage(contentDir, docs, socialImageSlug);
|
|
1937
|
-
if (!socialImagePage ||
|
|
1981
|
+
if (!socialImagePage || // The image sits outside the page's URL, where its guard does not reach, and
|
|
1982
|
+
// draws the page's title.
|
|
1983
|
+
options.isPathGuarded?.(socialImagePage.href) || !isFarmDocsSocialImageEnabled(socialImagePage, docs) || getFarmDocsCustomSocialImage(socialImagePage)) {
|
|
1938
1984
|
return null;
|
|
1939
1985
|
}
|
|
1940
1986
|
const descriptor = createFarmDocsSocialImageDescriptor(socialImagePage, docs, requestUrl);
|
|
@@ -1953,12 +1999,20 @@ function createFarmDocsHandler(docs, options) {
|
|
|
1953
1999
|
if (request.method === "HEAD") return new Response(null, { status: 200, headers });
|
|
1954
2000
|
return new Response(renderFarmDocsSocialImageSvg(descriptor), { status: 200, headers });
|
|
1955
2001
|
}
|
|
1956
|
-
const publicResponse = createFarmDocsPublicResponse(
|
|
2002
|
+
const publicResponse = createFarmDocsPublicResponse(
|
|
2003
|
+
contentDir,
|
|
2004
|
+
docs,
|
|
2005
|
+
request,
|
|
2006
|
+
options.isPathGuarded
|
|
2007
|
+
);
|
|
1957
2008
|
if (publicResponse) return omitFarmDocsHeadBody(request, publicResponse);
|
|
1958
2009
|
if (!isFarmDocsRequest(docs, request)) return null;
|
|
1959
2010
|
const page = loadPage(contentDir, docs, request);
|
|
1960
2011
|
if (!page) return null;
|
|
1961
2012
|
const negotiatesAccept = !requestUrl.pathname.endsWith(".md");
|
|
2013
|
+
if (!negotiatesAccept && options.isPathGuarded?.(page.href) && !options.isPathGuarded(getFarmDocsMarkdownPath(page.href))) {
|
|
2014
|
+
return null;
|
|
2015
|
+
}
|
|
1962
2016
|
if (shouldReturnMarkdown(request)) {
|
|
1963
2017
|
const origin = new URL(request.url).origin;
|
|
1964
2018
|
return omitFarmDocsHeadBody(
|
|
@@ -2022,6 +2076,7 @@ export {
|
|
|
2022
2076
|
getFarmDocsRouteTypeEntries,
|
|
2023
2077
|
getFarmDocsDocumentNavigationMatchers,
|
|
2024
2078
|
loadFarmDocsPage,
|
|
2079
|
+
getFarmDocsMarkdownPath,
|
|
2025
2080
|
discoverFarmDocsPages,
|
|
2026
2081
|
toFarmDocsMarkdownPage,
|
|
2027
2082
|
createFarmDocsHandler
|
|
@@ -29,7 +29,7 @@ var _chunkPSV6XKPOcjs = require('./chunk-PSV6XKPO.cjs');
|
|
|
29
29
|
var _chunkM7MKQXAFcjs = require('./chunk-M7MKQXAF.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _chunkFUCSUGDMcjs = require('./chunk-FUCSUGDM.cjs');
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
var _chunkUFDAAQFXcjs = require('./chunk-UFDAAQFX.cjs');
|
|
@@ -736,7 +736,7 @@ async function createRouteTypeDeclarations(options, outPath) {
|
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
|
-
for (const route of await
|
|
739
|
+
for (const route of await _chunkFUCSUGDMcjs.discoverProgrammaticRoutePaths.call(void 0, source.root, source.srcDir)) {
|
|
740
740
|
patterns.add(route);
|
|
741
741
|
routeModulePatterns.add(route);
|
|
742
742
|
}
|
|
@@ -13,7 +13,7 @@ var _chunkYWN746UScjs = require('./chunk-YWN746US.cjs');
|
|
|
13
13
|
var _chunkOX6O6WVAcjs = require('./chunk-OX6O6WVA.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunkULASELLAcjs = require('./chunk-ULASELLA.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -118,7 +118,7 @@ function createServerFn(options) {
|
|
|
118
118
|
throw labelInputErrors && isSchemaValidationFailure(cause) ? new ServerFnInputError(cause) : cause;
|
|
119
119
|
}
|
|
120
120
|
const executionContext = _chunkT5OJPTVNcjs.getServerActionExecutionContext.call(void 0, );
|
|
121
|
-
const request = _nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.request]), () => (
|
|
121
|
+
const request = _nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.request]), () => ( _chunkULASELLAcjs._resolveCurrentRequestForApp.call(void 0, )));
|
|
122
122
|
const signal = _nullishCoalesce(_nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _2 => _2.signal]), () => ( _optionalChain([request, 'optionalAccess', _3 => _3.signal]))), () => ( _chunkT5OJPTVNcjs.getServerActionSignal.call(void 0, )));
|
|
123
123
|
const handlerContext = {
|
|
124
124
|
input,
|