@farm.js/core 0.1.41 → 0.1.43
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-BOqIxJLI.d.mts → agent-mcp-3KDz4hr9.d.mts} +1 -1
- package/dist/{agent-mcp-D0eZKfci.d.ts → agent-mcp-6yRebHk7.d.ts} +1 -1
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/runtime.d.mts +2 -2
- package/dist/api/runtime.d.ts +2 -2
- package/dist/api.cjs +2 -2
- package/dist/api.d.mts +8 -3
- package/dist/api.d.ts +8 -3
- package/dist/api.mjs +1 -1
- package/dist/{app-DM8e1z3G.d.ts → app-8Db1zR-2.d.ts} +8 -4
- package/dist/{app-CzTSMJaf.d.mts → app-DlTWv4cn.d.mts} +8 -4
- package/dist/app-manifest-TRzS7ZZ9.d.mts +120 -0
- package/dist/app-manifest-cO2jkG1F.d.ts +120 -0
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/{chunk-ECKF2BAM.cjs → chunk-2GVF3C2F.cjs} +255 -42
- package/dist/chunk-2NXO5SBY.mjs +57 -0
- package/dist/chunk-3BROEWFY.cjs +39 -0
- package/dist/{chunk-ENOBPDKZ.mjs → chunk-4MRQ5OKQ.mjs} +14 -9
- package/dist/{chunk-R65GCA6A.mjs → chunk-4OCEMK72.mjs} +260 -49
- package/dist/{chunk-6PKXK4TY.mjs → chunk-53ZV6K65.mjs} +1 -1
- package/dist/{chunk-LYIZHJTK.cjs → chunk-5LPHJZSI.cjs} +14 -14
- package/dist/chunk-5NIWBWDD.mjs +97 -0
- package/dist/{chunk-NRDBW4MP.mjs → chunk-7IQQIPRZ.mjs} +10 -0
- package/dist/{chunk-FJGIVDA5.mjs → chunk-7SCCY6SI.mjs} +80 -177
- package/dist/chunk-APDGOKKE.cjs +148 -0
- package/dist/chunk-AZBSVLRM.cjs +132 -0
- package/dist/{chunk-PN676AZF.cjs → chunk-BKPXWRTT.cjs} +6 -6
- package/dist/chunk-CEDPEDNW.cjs +98 -0
- package/dist/chunk-D5RFPV2H.mjs +148 -0
- package/dist/{chunk-BYQVROIP.mjs → chunk-DMRPN25V.mjs} +69 -0
- package/dist/{chunk-724JLMS4.mjs → chunk-F646BZ4Y.mjs} +4 -2
- package/dist/{chunk-C5KVWHIH.cjs → chunk-G2Z5DGMS.cjs} +5 -3
- package/dist/{chunk-L6HYACBE.cjs → chunk-GVNCWSQV.cjs} +145 -127
- package/dist/{chunk-24SP5TGU.mjs → chunk-H4LXPWI2.mjs} +2 -2
- package/dist/chunk-H7BLEEAE.cjs +57 -0
- package/dist/{chunk-JOTUZIM4.cjs → chunk-HUMEHX24.cjs} +2 -2
- package/dist/{chunk-BD3D7EZV.cjs → chunk-IXFOBGLQ.cjs} +9 -3
- package/dist/{chunk-3TB5QGUW.cjs → chunk-JAXDRRRC.cjs} +70 -1
- package/dist/{chunk-32TZ3QTP.cjs → chunk-JDJAPCR2.cjs} +421 -210
- package/dist/{chunk-MHN4UR5U.cjs → chunk-KFZZFZ7J.cjs} +7 -7
- package/dist/chunk-LRJRXXQZ.cjs +109 -0
- package/dist/{chunk-EX4MKHXN.cjs → chunk-LVABUXLA.cjs} +22 -17
- package/dist/{chunk-HCSVR4YZ.mjs → chunk-M3BXTWJM.mjs} +18 -0
- package/dist/{chunk-PYHPXPSW.mjs → chunk-NXO75WY4.mjs} +1 -1
- package/dist/{chunk-BGGWKZ2V.mjs → chunk-OYSGGV6O.mjs} +137 -167
- package/dist/{chunk-JR4QCLJY.cjs → chunk-PDU4P2IC.cjs} +19 -1
- package/dist/chunk-PJEHUSHA.mjs +229 -0
- package/dist/chunk-QGH2RQVF.mjs +132 -0
- package/dist/{chunk-YWMZUGIS.mjs → chunk-R3ZFQJEF.mjs} +247 -34
- package/dist/{chunk-ROQ4C4LJ.cjs → chunk-RACQTC7K.cjs} +274 -371
- package/dist/{chunk-WSOBCAYO.cjs → chunk-RQYTOFQM.cjs} +23 -23
- package/dist/chunk-S34OBRMZ.mjs +109 -0
- package/dist/{chunk-TS4JHGUJ.mjs → chunk-S3ZEMCE6.mjs} +9 -3
- package/dist/{chunk-WWFTAUFG.cjs → chunk-SBH2JLLF.cjs} +12 -2
- package/dist/{chunk-YSLWRWWP.cjs → chunk-SKK6UF5P.cjs} +200 -46
- package/dist/chunk-T7J7E63D.cjs +144 -0
- package/dist/{chunk-SVPGWJZF.mjs → chunk-TESO7EFU.mjs} +125 -107
- package/dist/{chunk-OQ4YXWH4.cjs → chunk-VIVQERJ5.cjs} +320 -351
- package/dist/{chunk-JIYYX7WU.mjs → chunk-VLXNGUKO.mjs} +1 -1
- package/dist/{chunk-OFZUJMCU.mjs → chunk-WPJQN64R.mjs} +195 -41
- package/dist/chunk-XARSG2TG.mjs +144 -0
- package/dist/chunk-XUGFRFD2.mjs +39 -0
- package/dist/{chunk-EH3464KF.cjs → chunk-YBDSTNMH.cjs} +1 -1
- package/dist/{chunk-VLPII2JJ.mjs → chunk-YGZH4T2X.mjs} +1 -1
- package/dist/chunk-YKUEJ3MG.cjs +229 -0
- package/dist/{chunk-4C7KTKX7.mjs → chunk-ZYWJIPKQ.mjs} +1 -1
- package/dist/{client-plugins-CkYwvDJ0.d.mts → client-plugins-Cv0OJtnM.d.mts} +98 -7
- package/dist/{client-plugins-DfeKd0sD.d.ts → client-plugins-kwQuZcWq.d.ts} +98 -7
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client.cjs +4 -3
- package/dist/client.d.mts +5 -5
- package/dist/client.d.ts +5 -5
- package/dist/client.mjs +3 -2
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/{devtools-N3QLRIQU.mjs → devtools-M22FEFPK.mjs} +4 -4
- package/dist/{devtools-2YHAJYH6.cjs → devtools-MLB3JJMC.cjs} +5 -5
- package/dist/docs.cjs +6 -6
- package/dist/docs.d.mts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.mjs +5 -5
- package/dist/index-CQOp8EmB.d.mts +48 -0
- package/dist/index-DAl0QTZS.d.ts +48 -0
- package/dist/index.cjs +41 -24
- package/dist/index.d.mts +15 -14
- package/dist/index.d.ts +15 -14
- package/dist/index.mjs +46 -29
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/internal/app-markdown-runtime.d.mts +2 -2
- package/dist/internal/app-markdown-runtime.d.ts +2 -2
- package/dist/internal/build-runtime.cjs +29 -15
- package/dist/internal/build-runtime.d.mts +12 -16
- package/dist/internal/build-runtime.d.ts +12 -16
- package/dist/internal/build-runtime.mjs +28 -14
- package/dist/internal/cli-runtime.cjs +23 -11
- package/dist/internal/cli-runtime.mjs +23 -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 +5 -1
- package/dist/internal/client-runtime.d.mts +1 -0
- package/dist/internal/client-runtime.d.ts +1 -0
- package/dist/internal/client-runtime.mjs +4 -0
- package/dist/internal/compression-runtime.d.mts +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/config-runtime.cjs +5 -5
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +4 -4
- package/dist/internal/form-actions-client.cjs +18 -0
- package/dist/internal/form-actions-client.d.mts +5 -0
- package/dist/internal/form-actions-client.d.ts +5 -0
- package/dist/internal/form-actions-client.mjs +18 -0
- package/dist/internal/form-actions.cjs +18 -0
- package/dist/internal/form-actions.d.mts +14 -0
- package/dist/internal/form-actions.d.ts +14 -0
- package/dist/internal/form-actions.mjs +18 -0
- package/dist/internal/island-codec.cjs +22 -0
- package/dist/internal/island-codec.d.mts +29 -0
- package/dist/internal/island-codec.d.ts +29 -0
- package/dist/internal/island-codec.mjs +22 -0
- package/dist/internal/island-value-store.cjs +13 -0
- package/dist/internal/island-value-store.d.mts +6 -0
- package/dist/internal/island-value-store.d.ts +6 -0
- package/dist/internal/island-value-store.mjs +13 -0
- package/dist/internal/islands-runtime.cjs +77 -0
- package/dist/internal/islands-runtime.d.mts +57 -0
- package/dist/internal/islands-runtime.d.ts +57 -0
- package/dist/internal/islands-runtime.mjs +77 -0
- package/dist/internal/islands-server.cjs +19 -0
- package/dist/internal/islands-server.d.mts +3 -0
- package/dist/internal/islands-server.d.ts +3 -0
- package/dist/internal/islands-server.mjs +19 -0
- package/dist/internal/islx-client.cjs +5 -0
- package/dist/internal/islx-client.d.mts +2 -0
- package/dist/internal/islx-client.d.ts +2 -0
- package/dist/internal/islx-client.mjs +3 -0
- package/dist/internal/islx-react.cjs +4 -0
- package/dist/internal/islx-react.d.mts +1 -0
- package/dist/internal/islx-react.d.ts +1 -0
- package/dist/internal/islx-react.mjs +2 -0
- package/dist/internal/islx-server.cjs +5 -0
- package/dist/internal/islx-server.d.mts +2 -0
- package/dist/internal/islx-server.d.ts +2 -0
- package/dist/internal/islx-server.mjs +3 -0
- package/dist/internal/isolated-boundary.cjs +4 -3
- package/dist/internal/isolated-boundary.d.mts +13 -1
- package/dist/internal/isolated-boundary.d.ts +13 -1
- package/dist/internal/isolated-boundary.mjs +3 -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 +24 -7
- package/dist/internal/production-runtime.d.mts +20 -127
- package/dist/internal/production-runtime.d.ts +20 -127
- package/dist/internal/production-runtime.mjs +24 -7
- package/dist/internal/server-tree.cjs +6 -3
- package/dist/internal/server-tree.d.mts +25 -2
- package/dist/internal/server-tree.d.ts +25 -2
- package/dist/internal/server-tree.mjs +7 -4
- package/dist/island-value-protocol-BRayRghM.d.mts +12 -0
- package/dist/island-value-protocol-BRayRghM.d.ts +12 -0
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/navigation.cjs +5 -4
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/navigation.mjs +4 -3
- package/dist/og.d.mts +5 -0
- package/dist/og.d.ts +5 -0
- package/dist/plugin.cjs +18 -12
- package/dist/plugin.d.mts +3 -3
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.mjs +17 -11
- package/dist/{production-runtime-DFC7pgbp.d.ts → production-runtime-5nArjFpn.d.ts} +1 -1
- package/dist/{production-runtime-BTkXQdYy.d.mts → production-runtime-BzsF2z5F.d.mts} +1 -1
- package/dist/query/client.cjs +6 -5
- package/dist/query/client.mjs +2 -1
- package/dist/{render-plan-5rFeWmk7.d.mts → render-plan-B9yQorV4.d.mts} +4 -2
- package/dist/{render-plan-BoAK9xFC.d.ts → render-plan-fg6E_HvL.d.ts} +4 -2
- package/dist/renderer/react/server.cjs +7 -6
- package/dist/renderer/react/server.d.mts +3 -1
- package/dist/renderer/react/server.d.ts +3 -1
- package/dist/renderer/react/server.mjs +5 -4
- package/dist/renderer-client.cjs +5 -4
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +2 -1
- package/dist/renderer.d.mts +3 -1
- package/dist/renderer.d.ts +3 -1
- package/dist/{request-BxBWigtl.d.mts → request-C4j_g-BH.d.mts} +1 -1
- package/dist/{request-fciwmd3n.d.ts → request-gz8vFK0n.d.ts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/{route-rendering-BLZT0IP0.d.ts → route-rendering-DamyKVi3.d.ts} +1 -1
- package/dist/{route-rendering-BCM1QzEf.d.mts → route-rendering-iTTOwz1f.d.mts} +1 -1
- package/dist/{router-DyZJWc1_.d.mts → router-EoSzHlos.d.mts} +1 -1
- package/dist/{router-CkheNX3-.d.ts → router-OVjDqVo8.d.ts} +1 -1
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/rsc-pipeline-LK4K5JFK.mjs +77 -0
- package/dist/rsc-pipeline-YCDRJME4.cjs +77 -0
- package/dist/{runtime-DfU4sKa5.d.ts → runtime-CwiuozLd.d.ts} +1 -1
- package/dist/{runtime-wexvUN5J.d.mts → runtime-DDH4tiuF.d.mts} +1 -1
- package/dist/{schema-dev-notice-5JPE67AI.cjs → schema-dev-notice-77ZL23PL.cjs} +4 -4
- package/dist/{schema-dev-notice-WLPZ6WKU.mjs → schema-dev-notice-BLXOS6U2.mjs} +2 -2
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server.cjs +56 -38
- package/dist/server.d.mts +15 -10
- package/dist/server.d.ts +15 -10
- package/dist/server.mjs +36 -18
- package/dist/{spa-router-DgsMXqfX.d.mts → spa-router-Br4qFCWf.d.mts} +8 -3
- package/dist/{spa-router-CcejECnG.d.ts → spa-router-BsWUKH73.d.ts} +8 -3
- package/dist/{ssg-1FGaFISl.d.ts → ssg-Csy2vwpi.d.ts} +2 -2
- package/dist/{ssg-Bg4bMMhM.d.mts → ssg-Donyfcxy.d.mts} +2 -2
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/{utils-Dxbh6Hgj.d.ts → utils-Luk72LXC.d.ts} +1 -1
- package/dist/{utils-8wtTYiH4.d.mts → utils-d_k1ZZw0.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +18 -12
- package/dist/vite.d.mts +6 -4
- package/dist/vite.d.ts +6 -4
- package/dist/vite.mjs +17 -11
- package/package.json +53 -1
- package/dist/{chunk-35WS7P2V.mjs → chunk-26CXZR6L.mjs} +3 -3
- package/dist/{chunk-QEILRWVV.cjs → chunk-3XEMGDBF.cjs} +2 -2
- package/dist/{chunk-BPOTSHDO.cjs → chunk-IOAUK4OI.cjs} +2 -2
- package/dist/{chunk-BYR3RQPB.mjs → chunk-T76H22WI.mjs} +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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
3
|
var _chunkUXHS27O6cjs = require('./chunk-UXHS27O6.cjs');
|
|
4
4
|
|
|
@@ -58,8 +58,10 @@ var _chunkNO3WWW3Ncjs = require('./chunk-NO3WWW3N.cjs');
|
|
|
58
58
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
59
59
|
|
|
60
60
|
// src/api/vite-plugin.ts
|
|
61
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
61
62
|
function farmApiPlugin(options = {}) {
|
|
62
63
|
const srcDir = _nullishCoalesce(options.srcDir, () => ( "src"));
|
|
64
|
+
const apiDirFromRoot = _nullishCoalesce(options.apiDir, () => ( _path2.default.join(srcDir, "api")));
|
|
63
65
|
const debug = _nullishCoalesce(options.debug, () => ( false));
|
|
64
66
|
const bodySizeLimit = _chunk5NAVKJCZcjs.resolveFarmServerConfig.call(void 0, {
|
|
65
67
|
bodySizeLimit: options.bodySizeLimit
|
|
@@ -356,7 +358,7 @@ function farmApiPlugin(options = {}) {
|
|
|
356
358
|
}, "discoverProgrammaticRoutes");
|
|
357
359
|
const initializeDiscovery = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async () => {
|
|
358
360
|
const path = await import("path");
|
|
359
|
-
const apiDir = path.join(server.config.root,
|
|
361
|
+
const apiDir = path.join(server.config.root, apiDirFromRoot);
|
|
360
362
|
log(`Discovering API routes in: ${apiDir}`);
|
|
361
363
|
await discoverFileRoutes(apiDir);
|
|
362
364
|
await discoverRootRoutes();
|
|
@@ -541,7 +543,7 @@ function farmApiPlugin(options = {}) {
|
|
|
541
543
|
const previousState = snapshotRouteState();
|
|
542
544
|
try {
|
|
543
545
|
const path = await import("path");
|
|
544
|
-
const apiDir = path.join(server.config.root,
|
|
546
|
+
const apiDir = path.join(server.config.root, apiDirFromRoot);
|
|
545
547
|
const relativePath = path.relative(apiDir, path.dirname(file));
|
|
546
548
|
const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
|
|
547
549
|
const fs = await import("fs");
|
|
@@ -6,6 +6,9 @@ var _chunkBMOBTMDRcjs = require('./chunk-BMOBTMDR.cjs');
|
|
|
6
6
|
var _chunkOWOUTKIJcjs = require('./chunk-OWOUTKIJ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
var _chunkJAXDRRRCcjs = require('./chunk-JAXDRRRC.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
9
12
|
var _chunkD5IHNDHIcjs = require('./chunk-D5IHNDHI.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
@@ -42,7 +45,7 @@ var _chunkKNBBQHO2cjs = require('./chunk-KNBBQHO2.cjs');
|
|
|
42
45
|
var _chunk5NAVKJCZcjs = require('./chunk-5NAVKJCZ.cjs');
|
|
43
46
|
|
|
44
47
|
|
|
45
|
-
var
|
|
48
|
+
var _chunkYBDSTNMHcjs = require('./chunk-YBDSTNMH.cjs');
|
|
46
49
|
|
|
47
50
|
|
|
48
51
|
var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
|
|
@@ -53,6 +56,56 @@ var _chunkI57LW5VZcjs = require('./chunk-I57LW5VZ.cjs');
|
|
|
53
56
|
|
|
54
57
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
55
58
|
|
|
59
|
+
// src/navigation/render-plan.ts
|
|
60
|
+
function createFarmRouteRenderPlan(input = {}) {
|
|
61
|
+
const pageShouldHydrate = input.pageShouldHydrate === true;
|
|
62
|
+
const layoutShouldHydrate = input.layoutShouldHydrate === true;
|
|
63
|
+
const hydration = pageShouldHydrate ? layoutShouldHydrate ? "route-and-layout-islands" : "route-island" : layoutShouldHydrate ? "layout-island" : "none";
|
|
64
|
+
const rendering = input.rendering;
|
|
65
|
+
const cache = _optionalChain([rendering, 'optionalAccess', _ => _.ssg]) ? typeof rendering.revalidate === "number" && rendering.revalidate > 0 ? { mode: "revalidate", revalidate: rendering.revalidate } : { mode: "static" } : { mode: "dynamic" };
|
|
66
|
+
return {
|
|
67
|
+
version: 1,
|
|
68
|
+
output: "html",
|
|
69
|
+
navigation: "html-fragment",
|
|
70
|
+
hydration,
|
|
71
|
+
islandStrategy: hydration === "none" ? null : _nullishCoalesce(input.islandStrategy, () => ( "load")),
|
|
72
|
+
cache
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmRouteRenderPlan, "createFarmRouteRenderPlan");
|
|
76
|
+
function getFarmFragmentCacheControl(plan) {
|
|
77
|
+
if (plan.cache.mode === "static") {
|
|
78
|
+
return "public, max-age=0, s-maxage=31536000, immutable";
|
|
79
|
+
}
|
|
80
|
+
if (plan.cache.mode === "revalidate") {
|
|
81
|
+
const seconds = Math.max(1, _nullishCoalesce(plan.cache.revalidate, () => ( 1)));
|
|
82
|
+
return `public, max-age=0, s-maxage=${seconds}, stale-while-revalidate=${seconds}`;
|
|
83
|
+
}
|
|
84
|
+
return "private, max-age=0";
|
|
85
|
+
}
|
|
86
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getFarmFragmentCacheControl, "getFarmFragmentCacheControl");
|
|
87
|
+
function parseFarmLayoutChainHeader(value) {
|
|
88
|
+
if (!value || value.length > 8192) return [];
|
|
89
|
+
try {
|
|
90
|
+
const parsed = JSON.parse(value);
|
|
91
|
+
if (!Array.isArray(parsed) || parsed.length > 64) return [];
|
|
92
|
+
return parsed.filter(
|
|
93
|
+
(pattern) => typeof pattern === "string" && pattern.startsWith("/") && pattern.length <= 512
|
|
94
|
+
);
|
|
95
|
+
} catch (e) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, parseFarmLayoutChainHeader, "parseFarmLayoutChainHeader");
|
|
100
|
+
function getSharedLayoutPrefixLength(current, next) {
|
|
101
|
+
let index = 0;
|
|
102
|
+
while (index < current.length && index < next.length && current[index] === next[index]) {
|
|
103
|
+
index++;
|
|
104
|
+
}
|
|
105
|
+
return index;
|
|
106
|
+
}
|
|
107
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getSharedLayoutPrefixLength, "getSharedLayoutPrefixLength");
|
|
108
|
+
|
|
56
109
|
// src/routing/route-groups.ts
|
|
57
110
|
function isRouteGroupSegment(part) {
|
|
58
111
|
return part.startsWith("(") && part.endsWith(")");
|
|
@@ -185,12 +238,12 @@ function removeFarmDocumentTitles(markup) {
|
|
|
185
238
|
}
|
|
186
239
|
_chunkS3JO3N4Hcjs.__name.call(void 0, removeFarmDocumentTitles, "removeFarmDocumentTitles");
|
|
187
240
|
function ensureFarmDocumentMeta(markup, viewport = "") {
|
|
188
|
-
const head = _nullishCoalesce(_optionalChain([/<head\b[^>]*>([\s\S]*?)<\/head>/i, 'access',
|
|
241
|
+
const head = _nullishCoalesce(_optionalChain([/<head\b[^>]*>([\s\S]*?)<\/head>/i, 'access', _2 => _2.exec, 'call', _3 => _3(markup), 'optionalAccess', _4 => _4[1]]), () => ( ""));
|
|
189
242
|
const hasNamedMeta = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (name) => new RegExp(`<meta\\b[^>]*\\bname=["']?${name}(?=["'\\s/>])`, "i").test(head), "hasNamedMeta");
|
|
190
243
|
const tags = [
|
|
191
244
|
/<meta\b[^>]*\bcharset\s*=/i.test(head) ? "" : '<meta charset="utf-8">',
|
|
192
245
|
...(_nullishCoalesce(viewport.match(/<meta\b[^>]*>/gi), () => ( []))).filter((tag) => {
|
|
193
|
-
const name = _optionalChain([/\bname="([\w-]+)"/, 'access',
|
|
246
|
+
const name = _optionalChain([/\bname="([\w-]+)"/, 'access', _5 => _5.exec, 'call', _6 => _6(tag), 'optionalAccess', _7 => _7[1]]);
|
|
194
247
|
return !name || !hasNamedMeta(name);
|
|
195
248
|
})
|
|
196
249
|
].filter(Boolean);
|
|
@@ -314,7 +367,7 @@ function resolveAlternateBase(options) {
|
|
|
314
367
|
try {
|
|
315
368
|
const url = new URL(candidate);
|
|
316
369
|
if (url.protocol === "http:" || url.protocol === "https:") return url;
|
|
317
|
-
} catch (
|
|
370
|
+
} catch (e2) {
|
|
318
371
|
}
|
|
319
372
|
}
|
|
320
373
|
return void 0;
|
|
@@ -341,7 +394,7 @@ function isLateRedirectTarget(url) {
|
|
|
341
394
|
try {
|
|
342
395
|
const protocol = new URL(url, "https://farm.invalid").protocol;
|
|
343
396
|
return protocol === "http:" || protocol === "https:";
|
|
344
|
-
} catch (
|
|
397
|
+
} catch (e3) {
|
|
345
398
|
return false;
|
|
346
399
|
}
|
|
347
400
|
}
|
|
@@ -398,7 +451,7 @@ function serializeSitemap(value) {
|
|
|
398
451
|
return candidate;
|
|
399
452
|
});
|
|
400
453
|
const hasLanguageAlternates = entries.some(
|
|
401
|
-
(entry) => _optionalChain([entry, 'access',
|
|
454
|
+
(entry) => _optionalChain([entry, 'access', _8 => _8.alternates, 'optionalAccess', _9 => _9.languages]) && Object.keys(entry.alternates.languages).length > 0
|
|
402
455
|
);
|
|
403
456
|
const namespace = hasLanguageAlternates ? ' xmlns:xhtml="http://www.w3.org/1999/xhtml"' : "";
|
|
404
457
|
const lines = [
|
|
@@ -417,7 +470,7 @@ function serializeSitemap(value) {
|
|
|
417
470
|
if (entry.priority !== void 0) {
|
|
418
471
|
lines.push(` <priority>${escapeXml(entry.priority)}</priority>`);
|
|
419
472
|
}
|
|
420
|
-
for (const [language, href] of Object.entries(_optionalChain([entry, 'access',
|
|
473
|
+
for (const [language, href] of Object.entries(_optionalChain([entry, 'access', _10 => _10.alternates, 'optionalAccess', _11 => _11.languages]) || {})) {
|
|
421
474
|
lines.push(
|
|
422
475
|
` <xhtml:link rel="alternate" hreflang="${escapeXml(language)}" href="${escapeXml(href)}" />`
|
|
423
476
|
);
|
|
@@ -513,7 +566,7 @@ function listFarmMCPServerSources(input) {
|
|
|
513
566
|
if (sources.has(endpoint)) continue;
|
|
514
567
|
sources.set(endpoint, {
|
|
515
568
|
...server,
|
|
516
|
-
protocolVersions: _optionalChain([details, 'optionalAccess',
|
|
569
|
+
protocolVersions: _optionalChain([details, 'optionalAccess', _12 => _12.protocolVersions]),
|
|
517
570
|
endpoint,
|
|
518
571
|
local: true
|
|
519
572
|
});
|
|
@@ -543,7 +596,7 @@ function listFarmMCPServerCards(origin, input = {}) {
|
|
|
543
596
|
const endpointUrl = server.local ? `${origin}${server.endpoint}` : server.endpoint;
|
|
544
597
|
const cardPath = server.local ? serverCardLocation(server.endpoint) : void 0;
|
|
545
598
|
const slug = cardSlug(server.name);
|
|
546
|
-
const description = truncate(_optionalChain([server, 'access',
|
|
599
|
+
const description = truncate(_optionalChain([server, 'access', _13 => _13.description, 'optionalAccess', _14 => _14.trim, 'call', _15 => _15()]) || `MCP server for ${host}`);
|
|
547
600
|
const card = {
|
|
548
601
|
$schema: SERVER_CARD_SCHEMA,
|
|
549
602
|
// The card's name is reverse-DNS; a plain server name is namespaced by the host.
|
|
@@ -556,7 +609,7 @@ function listFarmMCPServerCards(origin, input = {}) {
|
|
|
556
609
|
{
|
|
557
610
|
type: "streamable-http",
|
|
558
611
|
url: endpointUrl,
|
|
559
|
-
..._optionalChain([server, 'access',
|
|
612
|
+
..._optionalChain([server, 'access', _16 => _16.protocolVersions, 'optionalAccess', _17 => _17.length]) ? { supportedProtocolVersions: [...server.protocolVersions] } : {}
|
|
560
613
|
}
|
|
561
614
|
]
|
|
562
615
|
};
|
|
@@ -596,7 +649,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
|
|
|
596
649
|
let url;
|
|
597
650
|
try {
|
|
598
651
|
url = _nullishCoalesce(requestUrl, () => ( new URL(request.url)));
|
|
599
|
-
} catch (
|
|
652
|
+
} catch (e4) {
|
|
600
653
|
return null;
|
|
601
654
|
}
|
|
602
655
|
const { pathname } = url;
|
|
@@ -900,8 +953,8 @@ function resolveFarmApiCatalogInput(config) {
|
|
|
900
953
|
const mcp = config.mcp && config.mcp.enabled !== false ? config.mcp : void 0;
|
|
901
954
|
return {
|
|
902
955
|
basePath: config.basePath,
|
|
903
|
-
apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access',
|
|
904
|
-
openapi: _optionalChain([config, 'access',
|
|
956
|
+
apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access', _18 => _18.openapi, 'optionalAccess', _19 => _19.servers, 'optionalAccess', _20 => _20[0], 'optionalAccess', _21 => _21.url]), () => ( config.api.baseURL)),
|
|
957
|
+
openapi: _optionalChain([config, 'access', _22 => _22.openapi, 'optionalAccess', _23 => _23.enabled]) ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
|
|
905
958
|
mcpPath: mcp ? _chunkKNBBQHO2cjs.resolveFarmAPIServerRoutePath.call(void 0,
|
|
906
959
|
_nullishCoalesce(mcp.path, () => ( "/api/mcp")),
|
|
907
960
|
_chunkKNBBQHO2cjs.resolveFarmAPIServerBasePath.call(void 0, config.api)
|
|
@@ -913,8 +966,8 @@ function createFarmApiCatalog(input) {
|
|
|
913
966
|
const appPath = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (path) => _chunkI57LW5VZcjs.applyFarmBasePath.call(void 0, path, input.basePath), "appPath");
|
|
914
967
|
const items = [];
|
|
915
968
|
const contexts = [];
|
|
916
|
-
const specRoute = _optionalChain([input, 'access',
|
|
917
|
-
const reference = _optionalChain([input, 'access',
|
|
969
|
+
const specRoute = _optionalChain([input, 'access', _24 => _24.openapi, 'optionalAccess', _25 => _25.specRoute]);
|
|
970
|
+
const reference = _optionalChain([input, 'access', _26 => _26.openapi, 'optionalAccess', _27 => _27.route]);
|
|
918
971
|
if (specRoute || reference) {
|
|
919
972
|
const api = { anchor: input.apiBaseURL };
|
|
920
973
|
if (specRoute) {
|
|
@@ -961,30 +1014,28 @@ function isFarmAppManifestPath(pathname) {
|
|
|
961
1014
|
return pathname === FARM_APP_MANIFEST_PATH || pathname === FARM_APP_MANIFEST_LEGACY_PATH;
|
|
962
1015
|
}
|
|
963
1016
|
_chunkS3JO3N4Hcjs.__name.call(void 0, isFarmAppManifestPath, "isFarmAppManifestPath");
|
|
964
|
-
var FARM_INFRA_SIGNATURE_HEADER = "farmjs-infra-signature";
|
|
965
|
-
var SIGNED_PURPOSE = "farmjs-manifest-v1";
|
|
966
|
-
var SIGNATURE_WINDOW_SECONDS = 300;
|
|
967
1017
|
function resolveFarmAppManifestInput(config, extra) {
|
|
968
|
-
const llms = _optionalChain([config, 'access',
|
|
1018
|
+
const llms = _optionalChain([config, 'access', _28 => _28.agent, 'optionalAccess', _29 => _29.llmsTxt]);
|
|
969
1019
|
const plugins = (_nullishCoalesce(config.plugins, () => ( []))).map(({ name }) => name);
|
|
970
1020
|
const webmcp = plugins.includes("farm:webmcp");
|
|
1021
|
+
const sections = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, _optionalChain([config, 'access', _30 => _30.agent, 'optionalAccess', _31 => _31.manifest]));
|
|
971
1022
|
return {
|
|
972
|
-
renderer: _nullishCoalesce(_optionalChain([config, 'access',
|
|
1023
|
+
renderer: _nullishCoalesce(_optionalChain([config, 'access', _32 => _32.renderer, 'optionalAccess', _33 => _33.name]), () => ( "react")),
|
|
973
1024
|
basePath: config.basePath || "/",
|
|
974
1025
|
build: extra.build,
|
|
975
1026
|
packages: extra.packages,
|
|
976
1027
|
webmcp: { enabled: webmcp, tools: webmcp ? _nullishCoalesce(extra.webmcpTools, () => ( [])) : [] },
|
|
977
1028
|
integrations: Object.entries(_nullishCoalesce(config.integrations, () => ( {}))).flatMap(([key, integration]) => {
|
|
978
|
-
const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess',
|
|
1029
|
+
const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess', _34 => _34.category]), () => ( _optionalChain([integration, 'optionalAccess', _35 => _35.slot])));
|
|
979
1030
|
return integration && category && integration.type ? [{ key, category, type: integration.type }] : [];
|
|
980
1031
|
}),
|
|
981
1032
|
agent: {
|
|
982
|
-
apiCatalog: _optionalChain([config, 'access',
|
|
1033
|
+
apiCatalog: _optionalChain([config, 'access', _36 => _36.agent, 'optionalAccess', _37 => _37.apiCatalog]) ? "/.well-known/api-catalog" : null,
|
|
983
1034
|
llmsTxt: llms === true || typeof llms === "object" && llms !== null && llms.enabled !== false,
|
|
984
|
-
openapi: _optionalChain([config, 'access',
|
|
1035
|
+
openapi: _optionalChain([config, 'access', _38 => _38.openapi, 'optionalAccess', _39 => _39.enabled]) && config.openapi.specRoute ? config.openapi.specRoute : null
|
|
985
1036
|
},
|
|
986
1037
|
plugins,
|
|
987
|
-
|
|
1038
|
+
...sections ? { sections } : {}
|
|
988
1039
|
};
|
|
989
1040
|
}
|
|
990
1041
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmAppManifestInput, "resolveFarmAppManifestInput");
|
|
@@ -993,58 +1044,73 @@ var SOURCES = {
|
|
|
993
1044
|
standalone: "defineTool",
|
|
994
1045
|
serverFunction: "serverFunction"
|
|
995
1046
|
};
|
|
996
|
-
|
|
997
|
-
|
|
1047
|
+
var DEFAULT_SECTIONS = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, void 0);
|
|
1048
|
+
function createFarmAppManifest(input) {
|
|
1049
|
+
const sections = _nullishCoalesce(input.sections, () => ( DEFAULT_SECTIONS));
|
|
1050
|
+
const { app, mcp, webmcp } = sections;
|
|
1051
|
+
return {
|
|
998
1052
|
schemaVersion: 1,
|
|
999
|
-
app: {
|
|
1000
|
-
farm:
|
|
1001
|
-
renderer: input.renderer,
|
|
1053
|
+
app: app ? {
|
|
1054
|
+
...app.version ? { farm: _chunkYBDSTNMHcjs.FARM_VERSION } : {},
|
|
1055
|
+
...app.renderer ? { renderer: input.renderer } : {},
|
|
1002
1056
|
basePath: input.basePath,
|
|
1003
|
-
build: input.build
|
|
1004
|
-
},
|
|
1005
|
-
packages: input.packages,
|
|
1006
|
-
mcp: {
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
authorization: open ? "none" : "required",
|
|
1015
|
-
resources: listed ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _40 => _40.resources]), () => ( []))] : [],
|
|
1016
|
-
prompts: listed ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _41 => _41.prompts]), () => ( []))] : [],
|
|
1017
|
-
tools: (listed ? tools : []).map((tool) => {
|
|
1018
|
-
const schemas = _optionalChain([details, 'optionalAccess', _42 => _42.schemas, 'optionalAccess', _43 => _43[tool.name]]);
|
|
1019
|
-
const hints = Object.fromEntries(
|
|
1020
|
-
["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"].filter((hint) => typeof tool[hint] === "boolean").map((hint) => [hint, tool[hint]])
|
|
1021
|
-
);
|
|
1022
|
-
return {
|
|
1023
|
-
name: tool.name,
|
|
1024
|
-
...tool.title ? { title: tool.title } : {},
|
|
1025
|
-
...tool.description ? { description: tool.description } : {},
|
|
1026
|
-
source: SOURCES[tool.kind],
|
|
1027
|
-
// MCP clients never see the route behind a tool; only Infra's view names it.
|
|
1028
|
-
...full && tool.kind === "endpoint" ? { method: tool.method, path: tool.path } : {},
|
|
1029
|
-
...hints,
|
|
1030
|
-
...schemas ? { inputSchema: schemas.input } : {},
|
|
1031
|
-
..._optionalChain([schemas, 'optionalAccess', _44 => _44.output]) ? { outputSchema: schemas.output } : {}
|
|
1032
|
-
};
|
|
1033
|
-
})
|
|
1034
|
-
};
|
|
1035
|
-
})
|
|
1036
|
-
},
|
|
1037
|
-
webmcp: input.webmcp,
|
|
1038
|
-
integrations: input.integrations,
|
|
1039
|
-
agent: input.agent,
|
|
1040
|
-
plugins: input.plugins
|
|
1057
|
+
...app.build ? { build: input.build } : {}
|
|
1058
|
+
} : null,
|
|
1059
|
+
packages: sections.packages === "names" ? Object.fromEntries(Object.keys(input.packages).map((name) => [name, null])) : sections.packages ? input.packages : null,
|
|
1060
|
+
mcp: mcp ? { servers: listServers(input, mcp) } : null,
|
|
1061
|
+
webmcp: webmcp ? {
|
|
1062
|
+
enabled: input.webmcp.enabled,
|
|
1063
|
+
tools: input.webmcp.tools.filter((tool) => !webmcp.hide.includes(tool.name))
|
|
1064
|
+
} : null,
|
|
1065
|
+
integrations: sections.integrations ? input.integrations : null,
|
|
1066
|
+
agent: sections.agent ? input.agent : null,
|
|
1067
|
+
plugins: sections.plugins ? input.plugins : null
|
|
1041
1068
|
};
|
|
1042
|
-
manifest.mcp.servers.push(...listDefaultServer(input));
|
|
1043
|
-
return manifest;
|
|
1044
1069
|
}
|
|
1045
1070
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifest, "createFarmAppManifest");
|
|
1071
|
+
function listServers(input, mcp) {
|
|
1072
|
+
const servers = _chunk75RZHGLScjs._listFarmMCPCatalogs.call(void 0, ).map(({ server, tools, details }) => {
|
|
1073
|
+
const open = _optionalChain([details, 'optionalAccess', _40 => _40.public]) === true && !_optionalChain([input, 'access', _41 => _41.guardCoversPath, 'optionalCall', _42 => _42(server.path)]);
|
|
1074
|
+
return {
|
|
1075
|
+
name: server.name,
|
|
1076
|
+
version: server.version,
|
|
1077
|
+
path: server.path,
|
|
1078
|
+
authorization: open ? "none" : "required",
|
|
1079
|
+
resources: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _43 => _43.resources]), () => ( []))] : [],
|
|
1080
|
+
prompts: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _44 => _44.prompts]), () => ( []))] : [],
|
|
1081
|
+
tools: (open ? tools : []).map((tool) => {
|
|
1082
|
+
const schemas = _optionalChain([details, 'optionalAccess', _45 => _45.schemas, 'optionalAccess', _46 => _46[tool.name]]);
|
|
1083
|
+
const hints = Object.fromEntries(
|
|
1084
|
+
["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"].filter((hint) => typeof tool[hint] === "boolean").map((hint) => [hint, tool[hint]])
|
|
1085
|
+
);
|
|
1086
|
+
return {
|
|
1087
|
+
name: tool.name,
|
|
1088
|
+
...tool.title ? { title: tool.title } : {},
|
|
1089
|
+
...tool.description ? { description: tool.description } : {},
|
|
1090
|
+
source: SOURCES[tool.kind],
|
|
1091
|
+
...hints,
|
|
1092
|
+
...schemas ? { inputSchema: schemas.input } : {},
|
|
1093
|
+
..._optionalChain([schemas, 'optionalAccess', _47 => _47.output]) ? { outputSchema: schemas.output } : {}
|
|
1094
|
+
};
|
|
1095
|
+
})
|
|
1096
|
+
};
|
|
1097
|
+
});
|
|
1098
|
+
return [...servers, ...listDefaultServer(input)].filter((server) => !mcp.hide.includes(server.name)).map((server) => ({
|
|
1099
|
+
...server,
|
|
1100
|
+
tools: server.tools.filter((tool) => !mcp.hide.includes(`${server.name}/${tool.name}`)).map((tool) => mcp.schemas ? tool : withoutSchemas(tool))
|
|
1101
|
+
}));
|
|
1102
|
+
}
|
|
1103
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, listServers, "listServers");
|
|
1104
|
+
function withoutSchemas({
|
|
1105
|
+
inputSchema: _input,
|
|
1106
|
+
outputSchema: _output,
|
|
1107
|
+
...tool
|
|
1108
|
+
}) {
|
|
1109
|
+
return tool;
|
|
1110
|
+
}
|
|
1111
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, withoutSchemas, "withoutSchemas");
|
|
1046
1112
|
function listDefaultServer(input) {
|
|
1047
|
-
const server = _optionalChain([input, 'access',
|
|
1113
|
+
const server = _optionalChain([input, 'access', _48 => _48.defaultMCP, 'optionalCall', _49 => _49()]);
|
|
1048
1114
|
if (!server) return [];
|
|
1049
1115
|
return [
|
|
1050
1116
|
{
|
|
@@ -1068,57 +1134,13 @@ function listDefaultServer(input) {
|
|
|
1068
1134
|
];
|
|
1069
1135
|
}
|
|
1070
1136
|
_chunkS3JO3N4Hcjs.__name.call(void 0, listDefaultServer, "listDefaultServer");
|
|
1071
|
-
var encoder = new TextEncoder();
|
|
1072
|
-
var hex = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (bytes) => [...new Uint8Array(bytes)].map((byte) => byte.toString(16).padStart(2, "0")).join(""), "hex");
|
|
1073
|
-
async function sha256Hex(value) {
|
|
1074
|
-
return hex(await crypto.subtle.digest("SHA-256", encoder.encode(value)));
|
|
1075
|
-
}
|
|
1076
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, sha256Hex, "sha256Hex");
|
|
1077
|
-
async function hmacHex(secret, message) {
|
|
1078
|
-
const key = await crypto.subtle.importKey(
|
|
1079
|
-
"raw",
|
|
1080
|
-
encoder.encode(secret),
|
|
1081
|
-
{ name: "HMAC", hash: "SHA-256" },
|
|
1082
|
-
false,
|
|
1083
|
-
["sign"]
|
|
1084
|
-
);
|
|
1085
|
-
return hex(await crypto.subtle.sign("HMAC", key, encoder.encode(message)));
|
|
1086
|
-
}
|
|
1087
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, hmacHex, "hmacHex");
|
|
1088
|
-
function sameHex(a, b) {
|
|
1089
|
-
if (a.length !== b.length) return false;
|
|
1090
|
-
let difference = 0;
|
|
1091
|
-
for (let index = 0; index < a.length; index++)
|
|
1092
|
-
difference |= a.charCodeAt(index) ^ b.charCodeAt(index);
|
|
1093
|
-
return difference === 0;
|
|
1094
|
-
}
|
|
1095
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, sameHex, "sameHex");
|
|
1096
|
-
async function verifyFarmInfraManifestSignature(header, key, now = Date.now()) {
|
|
1097
|
-
if (!header || header.length > 2048) return false;
|
|
1098
|
-
const parts = header.split(",").map((part) => part.trim());
|
|
1099
|
-
const timestamp = Number(
|
|
1100
|
-
_optionalChain([/^t=(\d{1,12})$/, 'access', _47 => _47.exec, 'call', _48 => _48(_nullishCoalesce(parts.find((part) => part.startsWith("t=")), () => ( ""))), 'optionalAccess', _49 => _49[1]])
|
|
1101
|
-
);
|
|
1102
|
-
if (!Number.isSafeInteger(timestamp)) return false;
|
|
1103
|
-
if (Math.abs(now / 1e3 - timestamp) > SIGNATURE_WINDOW_SECONDS) return false;
|
|
1104
|
-
const signatures = parts.filter((part) => part.startsWith("v1=")).map((part) => part.slice(3)).filter((value) => /^[0-9a-f]{64}$/.test(value));
|
|
1105
|
-
if (!signatures.length || signatures.length > 8) return false;
|
|
1106
|
-
const expected = await hmacHex(await sha256Hex(key), `${SIGNED_PURPOSE}
|
|
1107
|
-
${timestamp}`);
|
|
1108
|
-
return signatures.some((signature) => sameHex(signature, expected));
|
|
1109
|
-
}
|
|
1110
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, verifyFarmInfraManifestSignature, "verifyFarmInfraManifestSignature");
|
|
1111
|
-
function processEnv() {
|
|
1112
|
-
return _nullishCoalesce(_optionalChain([globalThis, 'access', _50 => _50.process, 'optionalAccess', _51 => _51.env]), () => ( {}));
|
|
1113
|
-
}
|
|
1114
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, processEnv, "processEnv");
|
|
1115
1137
|
var CORS_HEADERS = {
|
|
1116
1138
|
"access-control-allow-origin": "*",
|
|
1117
1139
|
"access-control-allow-methods": "GET, HEAD, OPTIONS",
|
|
1118
|
-
"access-control-allow-headers":
|
|
1140
|
+
"access-control-allow-headers": "If-None-Match",
|
|
1119
1141
|
"access-control-expose-headers": "ETag"
|
|
1120
1142
|
};
|
|
1121
|
-
async function createFarmAppManifestResponse(request, input
|
|
1143
|
+
async function createFarmAppManifestResponse(request, input) {
|
|
1122
1144
|
const method = request.method.toUpperCase();
|
|
1123
1145
|
if (method === "OPTIONS") return new Response(null, { status: 204, headers: CORS_HEADERS });
|
|
1124
1146
|
if (method !== "GET" && method !== "HEAD") {
|
|
@@ -1127,23 +1149,16 @@ async function createFarmAppManifestResponse(request, input, options = {}) {
|
|
|
1127
1149
|
headers: { ...CORS_HEADERS, allow: "GET, HEAD, OPTIONS", "content-type": "text/plain" }
|
|
1128
1150
|
});
|
|
1129
1151
|
}
|
|
1130
|
-
const
|
|
1131
|
-
const key = input.analytics ? _optionalChain([(_nullishCoalesce(options.env, () => ( processEnv()))), 'access', _52 => _52.FARMJS_API_KEY, 'optionalAccess', _53 => _53.trim, 'call', _54 => _54()]) : void 0;
|
|
1132
|
-
const full = Boolean(
|
|
1133
|
-
signature && key && await verifyFarmInfraManifestSignature(signature, key)
|
|
1134
|
-
);
|
|
1135
|
-
const body = JSON.stringify(createFarmAppManifest(input, { full }));
|
|
1152
|
+
const body = JSON.stringify(createFarmAppManifest(input));
|
|
1136
1153
|
const etag = _chunk5NAVKJCZcjs.createFarmWeakETag.call(void 0, body);
|
|
1137
1154
|
const headers = {
|
|
1138
1155
|
...CORS_HEADERS,
|
|
1139
1156
|
"content-type": "application/json; charset=utf-8",
|
|
1140
|
-
|
|
1141
|
-
"cache-control": full ? "private, no-store" : "public, max-age=0, must-revalidate",
|
|
1142
|
-
vary: FARM_INFRA_SIGNATURE_HEADER,
|
|
1157
|
+
"cache-control": "public, max-age=0, must-revalidate",
|
|
1143
1158
|
etag,
|
|
1144
1159
|
"x-content-type-options": "nosniff"
|
|
1145
1160
|
};
|
|
1146
|
-
if (
|
|
1161
|
+
if (_chunk5NAVKJCZcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
|
|
1147
1162
|
return new Response(null, { status: 304, headers });
|
|
1148
1163
|
}
|
|
1149
1164
|
return new Response(method === "HEAD" ? null : body, { status: 200, headers });
|
|
@@ -1189,4 +1204,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifestResponse, "createFarm
|
|
|
1189
1204
|
|
|
1190
1205
|
|
|
1191
1206
|
|
|
1192
|
-
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
exports.createFarmRouteRenderPlan = createFarmRouteRenderPlan; exports.getFarmFragmentCacheControl = getFarmFragmentCacheControl; exports.parseFarmLayoutChainHeader = parseFarmLayoutChainHeader; exports.getSharedLayoutPrefixLength = getSharedLayoutPrefixLength; exports.formatRouteSegment = formatRouteSegment; exports.createRouteDirectoryPattern = createRouteDirectoryPattern; exports.stripRouteGroups = stripRouteGroups; exports.getRouteGroupScope = getRouteGroupScope; exports.isInRouteGroupScope = isInRouteGroupScope; exports.getRouteDirectoryDepth = getRouteDirectoryDepth; exports.routeBoundaryCoversDirectory = routeBoundaryCoversDirectory; exports.HOISTED_HEAD_ELEMENT = HOISTED_HEAD_ELEMENT; exports.extractFarmFullDocument = extractFarmFullDocument; exports.classifyFarmDocumentPrefix = classifyFarmDocumentPrefix; exports.removeFarmDocumentTitles = removeFarmDocumentTitles; exports.ensureFarmDocumentMeta = ensureFarmDocumentMeta; exports.composeFarmFullDocument = composeFarmFullDocument; exports.hasFarmMiddlewareConfig = hasFarmMiddlewareConfig; exports.configMiddlewareMayHandlePath = configMiddlewareMayHandlePath; exports.appMiddlewareMayHandlePath = appMiddlewareMayHandlePath; exports.farmPathGuardCoversPage = farmPathGuardCoversPage; exports.farmPathGuardCoversEndpoint = farmPathGuardCoversEndpoint; exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.listFarmMCPLlmsTxtLinks = listFarmMCPLlmsTxtLinks; exports.createFarmAiCatalogResponse = createFarmAiCatalogResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse; exports.FARM_APP_MANIFEST_PATH = FARM_APP_MANIFEST_PATH; exports.FARM_APP_MANIFEST_LEGACY_PATH = FARM_APP_MANIFEST_LEGACY_PATH; exports.isFarmAppManifestPath = isFarmAppManifestPath; exports.resolveFarmAppManifestInput = resolveFarmAppManifestInput; exports.createFarmAppManifestResponse = createFarmAppManifestResponse;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
4
|
+
|
|
5
|
+
// src/client/island-value-protocol.ts
|
|
6
|
+
var FARM_ISLAND_ELEMENT = "f-island";
|
|
7
|
+
var FARM_PROPS_SCRIPT_TYPE = "f/props";
|
|
8
|
+
var FARM_VALUE_SCRIPT_TYPE = "f/value";
|
|
9
|
+
var FARM_SLOT_ELEMENT = "f-slot";
|
|
10
|
+
var FARM_TAG = "$";
|
|
11
|
+
var FARM_TAG_VALUE = "v";
|
|
12
|
+
var FARM_REFERENCE_TAG = "r";
|
|
13
|
+
var FARM_SLOT_TAG = "s";
|
|
14
|
+
var FARM_ACTION_TAG = "a";
|
|
15
|
+
var FARM_OBJECT_TAG = "o";
|
|
16
|
+
var FARM_VALUES_HEADER = "F-Values";
|
|
17
|
+
function getFarmTag(value) {
|
|
18
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
|
|
19
|
+
const tag = value[FARM_TAG];
|
|
20
|
+
if (typeof tag !== "string") return void 0;
|
|
21
|
+
const keys = Object.keys(value);
|
|
22
|
+
return keys.length === 1 || keys.length === 2 && FARM_TAG_VALUE in value ? tag : void 0;
|
|
23
|
+
}
|
|
24
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getFarmTag, "getFarmTag");
|
|
25
|
+
var FARM_VALUE_KEY_PATTERN = /^[0-9a-z]{14}$/;
|
|
26
|
+
var FARM_MAX_HELD_VALUES = 128;
|
|
27
|
+
var FARM_ISLAND_VALUE_STORE_KEY = /* @__PURE__ */ Symbol.for("islx.values");
|
|
28
|
+
var ISLAND_VALUES_SERVER_KEY = /* @__PURE__ */ Symbol.for("farm.island-values.server");
|
|
29
|
+
function getFarmIslandValuesServer() {
|
|
30
|
+
return globalThis[ISLAND_VALUES_SERVER_KEY];
|
|
31
|
+
}
|
|
32
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getFarmIslandValuesServer, "getFarmIslandValuesServer");
|
|
33
|
+
function getFarmIslandValueHeaders() {
|
|
34
|
+
const scope = globalThis;
|
|
35
|
+
const held = _optionalChain([scope, 'access', _ => _[FARM_ISLAND_VALUE_STORE_KEY], 'optionalAccess', _2 => _2.heldHeader, 'call', _3 => _3()]);
|
|
36
|
+
return held ? { [FARM_VALUES_HEADER]: held } : {};
|
|
37
|
+
}
|
|
38
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getFarmIslandValueHeaders, "getFarmIslandValueHeaders");
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
exports.FARM_ISLAND_ELEMENT = FARM_ISLAND_ELEMENT; exports.FARM_PROPS_SCRIPT_TYPE = FARM_PROPS_SCRIPT_TYPE; exports.FARM_VALUE_SCRIPT_TYPE = FARM_VALUE_SCRIPT_TYPE; exports.FARM_SLOT_ELEMENT = FARM_SLOT_ELEMENT; exports.FARM_TAG = FARM_TAG; exports.FARM_TAG_VALUE = FARM_TAG_VALUE; exports.FARM_REFERENCE_TAG = FARM_REFERENCE_TAG; exports.FARM_SLOT_TAG = FARM_SLOT_TAG; exports.FARM_ACTION_TAG = FARM_ACTION_TAG; exports.FARM_OBJECT_TAG = FARM_OBJECT_TAG; exports.FARM_VALUES_HEADER = FARM_VALUES_HEADER; exports.getFarmTag = getFarmTag; exports.FARM_VALUE_KEY_PATTERN = FARM_VALUE_KEY_PATTERN; exports.FARM_MAX_HELD_VALUES = FARM_MAX_HELD_VALUES; exports.getFarmIslandValuesServer = getFarmIslandValuesServer; exports.getFarmIslandValueHeaders = getFarmIslandValueHeaders;
|
|
@@ -11,7 +11,7 @@ var _chunkMY5PZYADcjs = require('./chunk-MY5PZYAD.cjs');
|
|
|
11
11
|
var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkLVABUXLAcjs = require('./chunk-LVABUXLA.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -564,7 +564,7 @@ async function resolveAPIContext(options) {
|
|
|
564
564
|
config: options.config,
|
|
565
565
|
configPath: options.configPath
|
|
566
566
|
}));
|
|
567
|
-
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await
|
|
567
|
+
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkLVABUXLAcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
|
|
568
568
|
const guardedPaths = new Set(_nullishCoalesce(_optionalChain([runtimeConfig, 'optionalAccess', _20 => _20.guardedPaths]), () => ( [])));
|
|
569
569
|
return {
|
|
570
570
|
root,
|
|
@@ -20,6 +20,9 @@ var _chunkJ7FSKED3cjs = require('./chunk-J7FSKED3.cjs');
|
|
|
20
20
|
var _chunkLZESP4IRcjs = require('./chunk-LZESP4IR.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
var _chunkH7BLEEAEcjs = require('./chunk-H7BLEEAE.cjs');
|
|
24
|
+
|
|
25
|
+
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
var _chunkC5GUTBZKcjs = require('./chunk-C5GUTBZK.cjs');
|
|
@@ -300,7 +303,8 @@ var _SPARouter = class _SPARouter {
|
|
|
300
303
|
replace,
|
|
301
304
|
scroll,
|
|
302
305
|
state,
|
|
303
|
-
url
|
|
306
|
+
url,
|
|
307
|
+
refresh
|
|
304
308
|
}) : Promise.resolve()
|
|
305
309
|
);
|
|
306
310
|
if (!this.isCurrentNavigation(navigation, clientNavigation)) return;
|
|
@@ -527,7 +531,7 @@ var _SPARouter = class _SPARouter {
|
|
|
527
531
|
this.updateDocumentMetadata(options.pageData.metadata);
|
|
528
532
|
_chunkS6FJO323cjs._hydrateFarmI18n.call(void 0, options.pageData.i18n);
|
|
529
533
|
if (this.onNavigate) {
|
|
530
|
-
await this.onNavigate(options.pageData);
|
|
534
|
+
await this.onNavigate(options.pageData, { refresh: options.refresh === true });
|
|
531
535
|
}
|
|
532
536
|
if (options.scroll) {
|
|
533
537
|
if (options.url.hash) {
|
|
@@ -629,7 +633,9 @@ var _SPARouter = class _SPARouter {
|
|
|
629
633
|
Accept: "application/x-farm-deferred+json, application/json",
|
|
630
634
|
"X-Farm-SPA": "1",
|
|
631
635
|
...activeLayoutChain ? { "X-Farm-Layout-Chain": activeLayoutChain } : {},
|
|
632
|
-
...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {}
|
|
636
|
+
...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {},
|
|
637
|
+
// Islands mode: the server leaves out island values this browser holds.
|
|
638
|
+
..._chunkH7BLEEAEcjs.getFarmIslandValueHeaders.call(void 0, )
|
|
633
639
|
})
|
|
634
640
|
});
|
|
635
641
|
if (_chunkC5GUTBZKcjs.isFarmDeploymentMismatchResponse.call(void 0, response, this.options.deploymentId)) {
|