@farm.js/core 0.1.17 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/after.cjs +12 -225
- package/dist/agent-runtime.cjs +83 -2800
- package/dist/api/client.cjs +17 -4060
- package/dist/api/route-manager.cjs +34 -4354
- package/dist/api/runtime.cjs +29 -2696
- package/dist/api.cjs +88 -8434
- package/dist/app-markdown.cjs +39 -280
- package/dist/app-markdown.mjs +3 -3
- package/dist/cache.cjs +38 -1560
- package/dist/chunk-22GUSVNJ.cjs +351 -0
- package/dist/{chunk-EN7WTEAY.mjs → chunk-2ANEVVF7.mjs} +1 -1
- package/dist/chunk-2CQ74SP6.cjs +13 -0
- package/dist/{chunk-YD4J4XCI.mjs → chunk-2GNATDDE.mjs} +1 -1
- package/dist/chunk-2SJ4RQ6P.cjs +57 -0
- package/dist/chunk-3376ZTRC.cjs +1 -0
- package/dist/chunk-4PNUXIVU.cjs +472 -0
- package/dist/chunk-4PPEPOZZ.cjs +21 -0
- package/dist/chunk-4ZFL5GFN.cjs +520 -0
- package/dist/chunk-5OVTOKGH.cjs +65 -0
- package/dist/chunk-5QIKR7RR.cjs +224 -0
- package/dist/chunk-5ZSWG4UX.cjs +127 -0
- package/dist/chunk-62YJ2IEB.cjs +238 -0
- package/dist/chunk-6EODJYCX.cjs +183 -0
- package/dist/chunk-6EXBPJ24.cjs +434 -0
- package/dist/chunk-6QQDAAAZ.cjs +38 -0
- package/dist/chunk-6V4TDWEC.cjs +455 -0
- package/dist/chunk-72ADZ6GQ.cjs +19 -0
- package/dist/chunk-75BRBIFP.cjs +172 -0
- package/dist/{chunk-ZCNJKLA2.mjs → chunk-7BC6GAL7.mjs} +1 -1
- package/dist/chunk-7W3CPVXS.cjs +24 -0
- package/dist/chunk-A6WIQH5Z.cjs +31 -0
- package/dist/chunk-A777V5WU.cjs +725 -0
- package/dist/chunk-AFOD3LYZ.cjs +377 -0
- package/dist/chunk-AH7HOAQ3.cjs +151 -0
- package/dist/chunk-AMDMVWMI.cjs +39 -0
- package/dist/chunk-AORPIPNB.cjs +552 -0
- package/dist/chunk-ARJWXNQL.cjs +256 -0
- package/dist/chunk-AYJR42WX.cjs +711 -0
- package/dist/chunk-BBVSJVBZ.cjs +600 -0
- package/dist/chunk-BIDYX3SL.cjs +91 -0
- package/dist/chunk-BYODCJD6.cjs +663 -0
- package/dist/chunk-C3VRMB6H.cjs +85 -0
- package/dist/chunk-C5GUTBZK.cjs +173 -0
- package/dist/chunk-CIAGU2X4.cjs +337 -0
- package/dist/chunk-CMGMGHUZ.cjs +27 -0
- package/dist/chunk-CXP5U3RW.cjs +54 -0
- package/dist/chunk-D2ULAULS.cjs +166 -0
- package/dist/chunk-D7JTOLFK.cjs +285 -0
- package/dist/chunk-DVM4FKZL.cjs +169 -0
- package/dist/chunk-DYEJQTDN.cjs +49 -0
- package/dist/chunk-E2ROOWQC.cjs +2225 -0
- package/dist/chunk-E3UK5IIB.cjs +593 -0
- package/dist/chunk-EM6SBQKM.cjs +470 -0
- package/dist/chunk-FJSWYIR7.cjs +482 -0
- package/dist/chunk-FK6GO24V.cjs +54 -0
- package/dist/{chunk-MVIWBEJF.mjs → chunk-FVZGEVTO.mjs} +7 -7
- package/dist/chunk-FXUUWYAX.cjs +654 -0
- package/dist/chunk-G3HRIVEY.cjs +395 -0
- package/dist/chunk-G643DQCH.cjs +13 -0
- package/dist/chunk-G7HXGLEC.cjs +175 -0
- package/dist/chunk-GDSHDTJ4.cjs +152 -0
- package/dist/chunk-GPVTX3HT.cjs +1415 -0
- package/dist/chunk-H6G5INWM.cjs +1094 -0
- package/dist/{chunk-DHDVMXYK.mjs → chunk-HALDNTIV.mjs} +30 -4
- package/dist/chunk-HBTUGXHS.cjs +180 -0
- package/dist/chunk-HREOKQWT.cjs +45 -0
- package/dist/{chunk-5QOEPUYE.mjs → chunk-HSDL2AUR.mjs} +1 -1
- package/dist/chunk-I4J452B7.cjs +435 -0
- package/dist/chunk-I57LW5VZ.cjs +94 -0
- package/dist/chunk-I5YBCWQ6.cjs +40 -0
- package/dist/chunk-I7PUUDGY.cjs +389 -0
- package/dist/chunk-IAMRBF3Z.cjs +86 -0
- package/dist/chunk-IQXFRNY2.cjs +169 -0
- package/dist/chunk-ISTFC3MZ.cjs +1357 -0
- package/dist/chunk-IXTFU4PL.cjs +2355 -0
- package/dist/chunk-J3LOGE4T.cjs +42 -0
- package/dist/chunk-J7FSKED3.cjs +93 -0
- package/dist/chunk-JDNHKPTD.cjs +22 -0
- package/dist/chunk-JSROZYYO.cjs +164 -0
- package/dist/chunk-K6FNHVDR.cjs +696 -0
- package/dist/chunk-KGZIORNL.cjs +43 -0
- package/dist/chunk-KR6CKSXT.cjs +15 -0
- package/dist/chunk-KROWKCUH.cjs +185 -0
- package/dist/chunk-KVFPGF2M.cjs +46 -0
- package/dist/{chunk-TNBAYAWO.mjs → chunk-L4DVIHOC.mjs} +1 -1
- package/dist/chunk-LCCBO7PJ.cjs +46 -0
- package/dist/chunk-LIUGYUX3.cjs +22 -0
- package/dist/chunk-LTNGXMQ6.cjs +55 -0
- package/dist/chunk-M2L4MYDQ.cjs +14 -0
- package/dist/chunk-MCJLA63J.cjs +1 -0
- package/dist/chunk-MKB2EGIR.cjs +148 -0
- package/dist/chunk-MQ3H6LT5.cjs +202 -0
- package/dist/chunk-MT763TDW.cjs +43 -0
- package/dist/{chunk-XWAYMDLB.mjs → chunk-MVUREHPN.mjs} +1 -1
- package/dist/chunk-MWSK6C4J.cjs +18 -0
- package/dist/chunk-MWWVKDW3.cjs +169 -0
- package/dist/{chunk-6VQIKZZO.mjs → chunk-N255VYFP.mjs} +1 -1
- package/dist/chunk-NBAHDVOJ.cjs +2040 -0
- package/dist/chunk-NO3WWW3N.cjs +192 -0
- package/dist/chunk-NSFC3LHB.cjs +10244 -0
- package/dist/chunk-NZKJGRB3.cjs +230 -0
- package/dist/chunk-OAVTUMJP.cjs +1496 -0
- package/dist/{chunk-SXHV42UQ.mjs → chunk-OFEY6KHO.mjs} +88 -13
- package/dist/chunk-OHY2ZWUG.cjs +25 -0
- package/dist/chunk-OI6CMLWX.cjs +47 -0
- package/dist/chunk-OWOUTKIJ.cjs +558 -0
- package/dist/chunk-OX6O6WVA.cjs +74 -0
- package/dist/chunk-OXSIH4D6.cjs +476 -0
- package/dist/chunk-OYDRPBBV.cjs +453 -0
- package/dist/chunk-OYEUREB6.cjs +35 -0
- package/dist/chunk-PCOTGFSM.cjs +139 -0
- package/dist/{chunk-76DG3LF3.mjs → chunk-PGQBL5DN.mjs} +1 -1
- package/dist/chunk-PZYCPSCC.cjs +35 -0
- package/dist/chunk-QBK2AA4U.cjs +445 -0
- package/dist/{chunk-UTBVHYS3.mjs → chunk-QBPKKQTD.mjs} +2 -2
- package/dist/chunk-QBPXNZGV.cjs +487 -0
- package/dist/chunk-QNPEUFHQ.cjs +27 -0
- package/dist/chunk-QZRVZSPN.cjs +236 -0
- package/dist/chunk-R5A5KNVX.cjs +20 -0
- package/dist/chunk-R5JIFR6B.cjs +42 -0
- package/dist/chunk-R6AIILII.cjs +193 -0
- package/dist/chunk-RFYO7QUD.cjs +9 -0
- package/dist/chunk-RG3ZOTG5.cjs +34 -0
- package/dist/chunk-ROUTX2E5.cjs +390 -0
- package/dist/chunk-RTHIVJ2G.cjs +54 -0
- package/dist/chunk-S27FMYAM.cjs +644 -0
- package/dist/chunk-S3A45T7F.cjs +166 -0
- package/dist/chunk-S3JO3N4H.cjs +17 -0
- package/dist/chunk-SK35NQKK.cjs +27 -0
- package/dist/chunk-SU7MH53P.cjs +180 -0
- package/dist/chunk-SVRTJOUF.cjs +113 -0
- package/dist/chunk-SWN467MP.cjs +18 -0
- package/dist/chunk-SYQ3MOWW.cjs +73 -0
- package/dist/chunk-T5CERMEH.cjs +417 -0
- package/dist/chunk-TFAXUHWX.cjs +206 -0
- package/dist/chunk-TIWHTW3Q.cjs +24 -0
- package/dist/chunk-TKJZFIML.cjs +20 -0
- package/dist/chunk-TKNSDBBN.cjs +193 -0
- package/dist/chunk-U4KT7QP3.cjs +23 -0
- package/dist/chunk-U5BMPGS3.cjs +862 -0
- package/dist/chunk-UJ2C4ICS.cjs +277 -0
- package/dist/chunk-UQZ4AYTH.cjs +168 -0
- package/dist/chunk-US2QVW3E.cjs +36 -0
- package/dist/{chunk-QGVJVSNX.mjs → chunk-V4AICMQA.mjs} +2 -2
- package/dist/chunk-VB6UCX3V.cjs +421 -0
- package/dist/chunk-VEKFLAQM.cjs +300 -0
- package/dist/chunk-VQDBNVOO.cjs +14 -0
- package/dist/chunk-W4E7WMXE.cjs +71 -0
- package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
- package/dist/chunk-WMAPPDMM.cjs +28 -0
- package/dist/chunk-WMOGFOUJ.cjs +223 -0
- package/dist/chunk-WPYFSQKK.cjs +37 -0
- package/dist/{chunk-56DAX2BE.mjs → chunk-WZXN4R5Y.mjs} +24 -13
- package/dist/chunk-XDGMADQM.cjs +14225 -0
- package/dist/chunk-XGC343EY.cjs +443 -0
- package/dist/chunk-XSKZORAS.cjs +727 -0
- package/dist/chunk-XWAWFQFS.cjs +82 -0
- package/dist/chunk-Y4YMF2NQ.cjs +460 -0
- package/dist/chunk-Y4YWHNKU.cjs +250 -0
- package/dist/chunk-Y53ZSFN6.cjs +504 -0
- package/dist/chunk-YA6LLTIJ.cjs +411 -0
- package/dist/chunk-YFPGHF5F.cjs +202 -0
- package/dist/chunk-YJRZR7VU.cjs +28 -0
- package/dist/chunk-YTAABQEV.cjs +1 -0
- package/dist/chunk-YX3DBN4M.cjs +18 -0
- package/dist/chunk-YZTASLPQ.cjs +64 -0
- package/dist/chunk-Z5HIWVDP.cjs +2173 -0
- package/dist/chunk-ZEG3OPIB.cjs +93 -0
- package/dist/chunk-ZMN3H73H.cjs +155 -0
- package/dist/client/lifecycle.cjs +6 -35
- package/dist/client-plugins.cjs +7 -448
- package/dist/client.cjs +171 -9808
- package/dist/config.cjs +8 -36
- package/dist/cron.cjs +24 -491
- package/dist/deferred.cjs +26 -475
- package/dist/deployment.cjs +39 -210
- package/dist/devtools-5KGPDVKL.cjs +388 -0
- package/dist/{devtools-UFVTMQX5.mjs → devtools-FY5R7TQ4.mjs} +3 -3
- package/dist/devtools-client-4WAPJY5L.cjs +254 -0
- package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
- package/dist/docs.cjs +46 -5657
- package/dist/docs.mjs +5 -5
- package/dist/env-types.cjs +5 -226
- package/dist/env.cjs +21 -338
- package/dist/environment/vite.cjs +8 -372
- package/dist/environment.cjs +12 -94
- package/dist/font.cjs +13 -63
- package/dist/headers.cjs +7 -123
- package/dist/i18n/client.cjs +55 -294
- package/dist/i18n/index.cjs +22 -209
- package/dist/i18n/server.cjs +22 -745
- package/dist/image/server.cjs +13 -729
- package/dist/image/sharp.cjs +33 -171
- package/dist/image.cjs +41 -85
- package/dist/index.cjs +1151 -68080
- package/dist/index.mjs +14 -14
- package/dist/instrumentation.cjs +12 -138
- package/dist/integration-orm-55F7CII5.cjs +13 -0
- package/dist/integrations.cjs +55 -4090
- package/dist/internal/app-markdown-runtime.cjs +27 -224
- package/dist/internal/app-markdown-runtime.mjs +2 -2
- package/dist/internal/build-runtime.cjs +120 -52259
- package/dist/internal/build-runtime.mjs +13 -13
- package/dist/internal/cli-runtime.cjs +67 -13811
- package/dist/internal/cli-runtime.mjs +7 -7
- package/dist/internal/client-error-overlay.cjs +80 -733
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +81 -913
- package/dist/internal/compression-runtime.cjs +8 -214
- package/dist/internal/config-runtime.cjs +42 -6547
- package/dist/internal/config-runtime.mjs +3 -3
- package/dist/internal/docs-precompiled-runtime.cjs +26 -46
- package/dist/internal/infra-analytics-runtime.cjs +10 -536
- package/dist/internal/isolated-boundary.cjs +14 -414
- package/dist/internal/metadata-image-runtime.cjs +7 -285
- package/dist/internal/product-telemetry-runtime.cjs +42 -97
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-node-env.cjs +6 -63
- package/dist/internal/production-runtime.cjs +418 -7133
- package/dist/internal/production-runtime.mjs +3 -3
- package/dist/internal/request-cookies.cjs +6 -54
- package/dist/json-ld.cjs +24 -50
- package/dist/layers-E4WPJNY5.cjs +17 -0
- package/dist/manager-G4B2IPYE.cjs +14 -0
- package/dist/markdown.cjs +21 -547
- package/dist/markdown.mjs +1 -1
- package/dist/middleware.cjs +36 -2995
- package/dist/navigation.cjs +22 -2588
- package/dist/nitro-4I2MYLY2.cjs +652 -0
- package/dist/observability.cjs +22 -614
- package/dist/og.cjs +5 -28
- package/dist/plugin.cjs +106 -37442
- package/dist/plugin.mjs +9 -9
- package/dist/query/client.cjs +113 -449
- package/dist/query/index.cjs +26 -288
- package/dist/query/parsers.cjs +23 -247
- package/dist/query/server.cjs +36 -298
- package/dist/renderer/react/client.cjs +9 -43
- package/dist/renderer/react/server.cjs +40 -103
- package/dist/renderer/react/vite.cjs +7 -29
- package/dist/renderer-client.cjs +126 -4295
- package/dist/renderer.cjs +31 -249
- package/dist/request.cjs +5 -68
- package/dist/router.cjs +11 -474
- package/dist/routes.cjs +42 -2461
- package/dist/{schema-dev-notice-2IE2F2XI.mjs → schema-dev-notice-O67CPXJ6.mjs} +1 -1
- package/dist/schema-dev-notice-Y7MQEFGN.cjs +56 -0
- package/dist/schema.cjs +6 -33
- package/dist/search-client-G3RICOFU.cjs +13 -0
- package/dist/server-action-security.cjs +25 -541
- package/dist/server-fn-client.cjs +6 -337
- package/dist/server-fn.cjs +32 -1841
- package/dist/server-plugins.cjs +15 -884
- package/dist/server-query-client.cjs +15 -1883
- package/dist/server-query.cjs +16 -1838
- package/dist/server.cjs +296 -44681
- package/dist/server.mjs +11 -11
- package/dist/storage.cjs +57 -576
- package/dist/testing.cjs +89 -3186
- package/dist/theme/client.cjs +13 -108
- package/dist/theme/index.cjs +6 -68
- package/dist/theme/runtime.cjs +13 -78
- package/dist/theme/server.cjs +10 -179
- package/dist/version.cjs +4 -32
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +119 -37773
- package/dist/vite.mjs +9 -9
- package/dist/workflows.cjs +19 -1040
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
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
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
4
|
+
|
|
5
|
+
// src/api/config.ts
|
|
6
|
+
var DEFAULT_FARM_API_BASE_PATH = "/api";
|
|
7
|
+
async function resolveFarmAPIConfig(config, context) {
|
|
8
|
+
const configuredBasePath = await resolveConfigValue(_optionalChain([config, 'optionalAccess', _ => _.basePath]), context, "api.basePath");
|
|
9
|
+
const basePath = normalizeFarmAPIBasePath(_nullishCoalesce(configuredBasePath, () => ( DEFAULT_FARM_API_BASE_PATH)));
|
|
10
|
+
const configuredBaseURL = await resolveConfigValue(_optionalChain([config, 'optionalAccess', _2 => _2.baseURL]), context, "api.baseURL");
|
|
11
|
+
return normalizeFarmAPIConfig({ baseURL: configuredBaseURL, basePath });
|
|
12
|
+
}
|
|
13
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmAPIConfig, "resolveFarmAPIConfig");
|
|
14
|
+
function normalizeFarmAPIConfig(config) {
|
|
15
|
+
const basePath = normalizeFarmAPIBasePath(_nullishCoalesce(_optionalChain([config, 'optionalAccess', _3 => _3.basePath]), () => ( DEFAULT_FARM_API_BASE_PATH)));
|
|
16
|
+
const baseURL = _optionalChain([config, 'optionalAccess', _4 => _4.baseURL, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]);
|
|
17
|
+
if (!baseURL) {
|
|
18
|
+
return { baseURL: basePath, basePath };
|
|
19
|
+
}
|
|
20
|
+
if (baseURL.startsWith("//")) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'Farm api.baseURL must be an absolute URL or a root-relative path such as "/api", not a network-path reference.'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
if (baseURL.startsWith("/")) {
|
|
26
|
+
const url2 = parseRootRelativeBaseURL(baseURL);
|
|
27
|
+
if (url2.pathname !== "/") {
|
|
28
|
+
const effectivePath = normalizeFarmAPIBasePath(url2.pathname);
|
|
29
|
+
return { baseURL: effectivePath, basePath: effectivePath };
|
|
30
|
+
}
|
|
31
|
+
return { baseURL: basePath, basePath };
|
|
32
|
+
}
|
|
33
|
+
let url;
|
|
34
|
+
try {
|
|
35
|
+
url = new URL(baseURL);
|
|
36
|
+
} catch (e) {
|
|
37
|
+
throw new Error(
|
|
38
|
+
'Farm api.baseURL must be an absolute URL or a root-relative path such as "/api".'
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
42
|
+
throw new Error("Farm api.baseURL must use http or https.");
|
|
43
|
+
}
|
|
44
|
+
if (url.search || url.hash) {
|
|
45
|
+
throw new Error("Farm api.baseURL cannot contain a query string or hash.");
|
|
46
|
+
}
|
|
47
|
+
if (url.pathname !== "/") {
|
|
48
|
+
const effectivePath = normalizeFarmAPIBasePath(url.pathname);
|
|
49
|
+
return {
|
|
50
|
+
baseURL: `${url.origin}${effectivePath}`,
|
|
51
|
+
basePath: effectivePath
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
baseURL: basePath === "/" ? url.origin : `${url.origin}${basePath}`,
|
|
56
|
+
basePath
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, normalizeFarmAPIConfig, "normalizeFarmAPIConfig");
|
|
60
|
+
function normalizeFarmAPIBasePath(value) {
|
|
61
|
+
const hasUnstableCharacters = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (candidate) => candidate.includes("\\") || Array.from(candidate).some((character) => {
|
|
62
|
+
const code = character.charCodeAt(0);
|
|
63
|
+
return code <= 31 || code >= 127 && code <= 159;
|
|
64
|
+
}), "hasUnstableCharacters");
|
|
65
|
+
if (hasUnstableCharacters(value)) {
|
|
66
|
+
throw new Error("Farm api.basePath cannot contain backslashes or control characters.");
|
|
67
|
+
}
|
|
68
|
+
const path = value.trim();
|
|
69
|
+
if (!path) {
|
|
70
|
+
throw new Error("Farm api.basePath cannot be empty.");
|
|
71
|
+
}
|
|
72
|
+
if (path.includes("?") || path.includes("#")) {
|
|
73
|
+
throw new Error("Farm api.basePath cannot contain a query string or hash.");
|
|
74
|
+
}
|
|
75
|
+
if (path.startsWith("//")) {
|
|
76
|
+
throw new Error('Farm api.basePath must be a pathname such as "/api", not a URL.');
|
|
77
|
+
}
|
|
78
|
+
for (const segment of path.split("/")) {
|
|
79
|
+
let decoded = segment;
|
|
80
|
+
try {
|
|
81
|
+
decoded = decodeURIComponent(segment);
|
|
82
|
+
} catch (e2) {
|
|
83
|
+
}
|
|
84
|
+
if (hasUnstableCharacters(decoded)) {
|
|
85
|
+
throw new Error("Farm api.basePath cannot contain backslashes or control characters.");
|
|
86
|
+
}
|
|
87
|
+
if (decoded.includes("/")) {
|
|
88
|
+
throw new Error("Farm api.basePath cannot contain percent-encoded path separators.");
|
|
89
|
+
}
|
|
90
|
+
if (decoded === "." || decoded === "..") {
|
|
91
|
+
throw new Error('Farm api.basePath cannot contain "." or ".." path segments.');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const normalized = `/${path.replace(/^\/+|\/+$/g, "")}`;
|
|
95
|
+
return normalized === "/" ? "/" : normalized;
|
|
96
|
+
}
|
|
97
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, normalizeFarmAPIBasePath, "normalizeFarmAPIBasePath");
|
|
98
|
+
function getFarmAPIBaseURL() {
|
|
99
|
+
if (typeof __FARM_API_BASE_URL__ !== "undefined" && __FARM_API_BASE_URL__) {
|
|
100
|
+
return __FARM_API_BASE_URL__;
|
|
101
|
+
}
|
|
102
|
+
return DEFAULT_FARM_API_BASE_PATH;
|
|
103
|
+
}
|
|
104
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getFarmAPIBaseURL, "getFarmAPIBaseURL");
|
|
105
|
+
function resolveFarmAPIRequestURL(routePath, baseURL = getFarmAPIBaseURL(), fallbackOrigin = getDefaultOrigin()) {
|
|
106
|
+
const base = new URL(baseURL, fallbackOrigin);
|
|
107
|
+
if (base.pathname === "/") {
|
|
108
|
+
return new URL(routePath, base);
|
|
109
|
+
}
|
|
110
|
+
const route = new URL(routePath, fallbackOrigin);
|
|
111
|
+
const suffix = stripCanonicalAPIBasePath(route.pathname);
|
|
112
|
+
const joinedPath = joinURLPath(base.pathname, suffix);
|
|
113
|
+
base.pathname = joinedPath;
|
|
114
|
+
base.search = route.search;
|
|
115
|
+
base.hash = route.hash;
|
|
116
|
+
return base;
|
|
117
|
+
}
|
|
118
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmAPIRequestURL, "resolveFarmAPIRequestURL");
|
|
119
|
+
async function resolveConfigValue(value, context, name) {
|
|
120
|
+
const resolved = typeof value === "function" ? await value(context) : value;
|
|
121
|
+
if (resolved === void 0) return void 0;
|
|
122
|
+
if (typeof resolved !== "string") {
|
|
123
|
+
throw new Error(`Farm ${name} must resolve to a string or undefined.`);
|
|
124
|
+
}
|
|
125
|
+
if (!resolved.trim()) {
|
|
126
|
+
throw new Error(`Farm ${name} cannot be empty.`);
|
|
127
|
+
}
|
|
128
|
+
return resolved;
|
|
129
|
+
}
|
|
130
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveConfigValue, "resolveConfigValue");
|
|
131
|
+
function parseRootRelativeBaseURL(value) {
|
|
132
|
+
const url = new URL(value, "http://farm.local");
|
|
133
|
+
if (url.search || url.hash) {
|
|
134
|
+
throw new Error("Farm api.baseURL cannot contain a query string or hash.");
|
|
135
|
+
}
|
|
136
|
+
return url;
|
|
137
|
+
}
|
|
138
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, parseRootRelativeBaseURL, "parseRootRelativeBaseURL");
|
|
139
|
+
function stripCanonicalAPIBasePath(pathname) {
|
|
140
|
+
if (pathname === DEFAULT_FARM_API_BASE_PATH) return "";
|
|
141
|
+
if (pathname.startsWith(`${DEFAULT_FARM_API_BASE_PATH}/`)) {
|
|
142
|
+
return pathname.slice(DEFAULT_FARM_API_BASE_PATH.length + 1);
|
|
143
|
+
}
|
|
144
|
+
return pathname.replace(/^\/+/, "");
|
|
145
|
+
}
|
|
146
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, stripCanonicalAPIBasePath, "stripCanonicalAPIBasePath");
|
|
147
|
+
function joinURLPath(basePath, suffix) {
|
|
148
|
+
const normalizedBase = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
|
|
149
|
+
const normalizedSuffix = suffix.replace(/^\/+/, "");
|
|
150
|
+
if (!normalizedSuffix) return normalizedBase || "/";
|
|
151
|
+
return `${normalizedBase}/${normalizedSuffix}`;
|
|
152
|
+
}
|
|
153
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, joinURLPath, "joinURLPath");
|
|
154
|
+
function getDefaultOrigin() {
|
|
155
|
+
return typeof window !== "undefined" ? window.location.origin : "http://localhost:3000";
|
|
156
|
+
}
|
|
157
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getDefaultOrigin, "getDefaultOrigin");
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
exports.DEFAULT_FARM_API_BASE_PATH = DEFAULT_FARM_API_BASE_PATH; exports.resolveFarmAPIConfig = resolveFarmAPIConfig; exports.normalizeFarmAPIConfig = normalizeFarmAPIConfig; exports.normalizeFarmAPIBasePath = normalizeFarmAPIBasePath; exports.getFarmAPIBaseURL = getFarmAPIBaseURL; exports.resolveFarmAPIRequestURL = resolveFarmAPIRequestURL;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
4
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
5
|
+
}) : x)(function(x) {
|
|
6
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
7
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
// <define:import.meta>
|
|
11
|
+
var define_import_meta_default = {};
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
exports.__name = __name; exports.__require = __require; exports.define_import_meta_default = define_import_meta_default;
|
|
@@ -0,0 +1,27 @@
|
|
|
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/server-query-protocol.ts
|
|
6
|
+
var FARM_SERVER_QUERY_RESULT_VERSION = 1;
|
|
7
|
+
function createFarmServerQueryResult(data, metadata) {
|
|
8
|
+
return {
|
|
9
|
+
__farmServerQuery: {
|
|
10
|
+
version: FARM_SERVER_QUERY_RESULT_VERSION,
|
|
11
|
+
...metadata
|
|
12
|
+
},
|
|
13
|
+
data
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmServerQueryResult, "createFarmServerQueryResult");
|
|
17
|
+
function isFarmServerQueryResult(value) {
|
|
18
|
+
if (!value || typeof value !== "object") return false;
|
|
19
|
+
const metadata = value.__farmServerQuery;
|
|
20
|
+
return _optionalChain([metadata, 'optionalAccess', _ => _.version]) === FARM_SERVER_QUERY_RESULT_VERSION && typeof metadata.key === "string" && (metadata.staleTime === false || typeof metadata.staleTime === "number") && typeof metadata.updatedAt === "number" && "data" in value;
|
|
21
|
+
}
|
|
22
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isFarmServerQueryResult, "isFarmServerQueryResult");
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
exports.createFarmServerQueryResult = createFarmServerQueryResult; exports.isFarmServerQueryResult = isFarmServerQueryResult;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkPCOTGFSMcjs = require('./chunk-PCOTGFSM.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkNO3WWW3Ncjs = require('./chunk-NO3WWW3N.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
17
|
+
|
|
18
|
+
// src/router.ts
|
|
19
|
+
function createFarmRouter(routes) {
|
|
20
|
+
const normalizedRoutes = routes.map(normalizeRouteInput);
|
|
21
|
+
const patternsByShape = /* @__PURE__ */ new Map();
|
|
22
|
+
for (const entry of normalizedRoutes) {
|
|
23
|
+
const shape = _chunkNO3WWW3Ncjs.getRoutePatternShape.call(void 0, entry.route.path, "router");
|
|
24
|
+
const existingPattern = patternsByShape.get(shape);
|
|
25
|
+
if (existingPattern) {
|
|
26
|
+
throw new (0, _chunkNO3WWW3Ncjs.AmbiguousRouteError)(
|
|
27
|
+
`Ambiguous route patterns "${existingPattern}" and "${entry.route.path}" match the same URLs. Keep only one route for this URL shape.`
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
patternsByShape.set(shape, entry.route.path);
|
|
31
|
+
}
|
|
32
|
+
normalizedRoutes.sort(compareRoutes);
|
|
33
|
+
const exactRoutes = /* @__PURE__ */ new Map();
|
|
34
|
+
for (const entry of normalizedRoutes) {
|
|
35
|
+
if (entry.segments.every((segment) => segment.type === "static")) {
|
|
36
|
+
const pathname = entry.segments.length ? `/${entry.segments.map((segment) => encodePathSegment(segment.value)).join("/")}` : "/";
|
|
37
|
+
exactRoutes.set(pathname, entry);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
routes: normalizedRoutes.map((entry) => entry.route),
|
|
42
|
+
match(pathname) {
|
|
43
|
+
const normalizedPathname = _chunkPCOTGFSMcjs.normalizePathname.call(void 0, pathname);
|
|
44
|
+
const exactRoute = exactRoutes.get(normalizedPathname);
|
|
45
|
+
if (exactRoute) {
|
|
46
|
+
return {
|
|
47
|
+
route: exactRoute.route,
|
|
48
|
+
pathname: normalizedPathname,
|
|
49
|
+
params: {}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const parts = _chunkPCOTGFSMcjs.splitNormalizedPathname.call(void 0, normalizedPathname);
|
|
53
|
+
for (const entry of normalizedRoutes) {
|
|
54
|
+
const params = _chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, entry.segments, parts);
|
|
55
|
+
if (params) {
|
|
56
|
+
return {
|
|
57
|
+
route: entry.route,
|
|
58
|
+
pathname: normalizedPathname,
|
|
59
|
+
params
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
},
|
|
65
|
+
build: buildFarmRoutePath,
|
|
66
|
+
isActive: isFarmRouteActive
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmRouter, "createFarmRouter");
|
|
70
|
+
function matchFarmRoute(pattern, pathname) {
|
|
71
|
+
return matchSegments(_chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, pattern), _chunkPCOTGFSMcjs.normalizePathname.call(void 0, pathname));
|
|
72
|
+
}
|
|
73
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchFarmRoute, "matchFarmRoute");
|
|
74
|
+
function buildFarmRoutePath(pattern, params = {}, options = {}) {
|
|
75
|
+
const parts = [];
|
|
76
|
+
for (const segment of _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, pattern)) {
|
|
77
|
+
if (segment.type === "static") {
|
|
78
|
+
parts.push(encodePathSegment(segment.value));
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const value = params[segment.name];
|
|
82
|
+
const values = Array.isArray(value) ? value : value == null ? [] : [value];
|
|
83
|
+
if (values.length === 0) {
|
|
84
|
+
if (segment.optional) continue;
|
|
85
|
+
throw new Error(`Missing route param "${segment.name}" for ${pattern}.`);
|
|
86
|
+
}
|
|
87
|
+
if (!segment.catchAll && values.length > 1) {
|
|
88
|
+
throw new Error(`Route param "${segment.name}" for ${pattern} expects a single value.`);
|
|
89
|
+
}
|
|
90
|
+
const encodedValues = values.map((item) => {
|
|
91
|
+
const value2 = String(item);
|
|
92
|
+
if (!value2) {
|
|
93
|
+
throw new Error(
|
|
94
|
+
`Route param "${segment.name}" for ${pattern} cannot contain an empty path segment.`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
return encodePathSegment(value2);
|
|
98
|
+
});
|
|
99
|
+
parts.push(...encodedValues);
|
|
100
|
+
}
|
|
101
|
+
let pathname = parts.length ? `/${parts.join("/")}` : "/";
|
|
102
|
+
if (options.trailingSlash && pathname !== "/") {
|
|
103
|
+
pathname = `${pathname}/`;
|
|
104
|
+
}
|
|
105
|
+
return appendQueryAndHash(pathname, options);
|
|
106
|
+
}
|
|
107
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, buildFarmRoutePath, "buildFarmRoutePath");
|
|
108
|
+
function isFarmRouteActive(pattern, pathname, options = {}) {
|
|
109
|
+
const normalizedPathname = _chunkPCOTGFSMcjs.normalizePathname.call(void 0, pathname);
|
|
110
|
+
const segments = _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, pattern);
|
|
111
|
+
const parts = _chunkPCOTGFSMcjs.splitNormalizedPathname.call(void 0, normalizedPathname);
|
|
112
|
+
if (_chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, segments, parts)) return true;
|
|
113
|
+
if (options.exact !== false) return false;
|
|
114
|
+
if (segments.length === 0) return normalizedPathname === "/";
|
|
115
|
+
return _chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, segments, parts, true) !== null;
|
|
116
|
+
}
|
|
117
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isFarmRouteActive, "isFarmRouteActive");
|
|
118
|
+
function normalizeRouteInput(input, index) {
|
|
119
|
+
const route = typeof input === "string" ? { path: input } : input;
|
|
120
|
+
const segments = _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, route.path);
|
|
121
|
+
const path = _chunkPCOTGFSMcjs.normalizeRoutePattern.call(void 0, route.path);
|
|
122
|
+
return {
|
|
123
|
+
route: {
|
|
124
|
+
...route,
|
|
125
|
+
path
|
|
126
|
+
},
|
|
127
|
+
segments,
|
|
128
|
+
specificity: segments.map(getRouterSegmentSpecificity),
|
|
129
|
+
index
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, normalizeRouteInput, "normalizeRouteInput");
|
|
133
|
+
function matchSegments(segments, pathname, allowTrailingSegments = false) {
|
|
134
|
+
return _chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, segments, _chunkPCOTGFSMcjs.splitPathname.call(void 0, pathname), allowTrailingSegments);
|
|
135
|
+
}
|
|
136
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchSegments, "matchSegments");
|
|
137
|
+
function compareRoutes(left, right) {
|
|
138
|
+
const specificity = _chunkNO3WWW3Ncjs.compareRouteSpecificity.call(void 0, left.specificity, right.specificity);
|
|
139
|
+
if (specificity !== 0) return specificity;
|
|
140
|
+
return left.index - right.index;
|
|
141
|
+
}
|
|
142
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, compareRoutes, "compareRoutes");
|
|
143
|
+
function getRouterSegmentSpecificity(segment) {
|
|
144
|
+
if (segment.type === "static") return "static";
|
|
145
|
+
if (!segment.catchAll) return "dynamic";
|
|
146
|
+
return segment.optional ? "optional-catch-all" : "catch-all";
|
|
147
|
+
}
|
|
148
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getRouterSegmentSpecificity, "getRouterSegmentSpecificity");
|
|
149
|
+
function encodePathSegment(value) {
|
|
150
|
+
return encodeURIComponent(value);
|
|
151
|
+
}
|
|
152
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, encodePathSegment, "encodePathSegment");
|
|
153
|
+
function appendQueryAndHash(pathname, options) {
|
|
154
|
+
const search = createSearchParams(options.query);
|
|
155
|
+
const hash = options.hash ? `#${options.hash.replace(/^#/, "")}` : "";
|
|
156
|
+
const query = search.toString();
|
|
157
|
+
return `${pathname}${query ? `?${query}` : ""}${hash}`;
|
|
158
|
+
}
|
|
159
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, appendQueryAndHash, "appendQueryAndHash");
|
|
160
|
+
function createSearchParams(query) {
|
|
161
|
+
if (query instanceof URLSearchParams) return query;
|
|
162
|
+
const search = new URLSearchParams();
|
|
163
|
+
if (!query) return search;
|
|
164
|
+
for (const [key, value] of Object.entries(query)) {
|
|
165
|
+
const values = Array.isArray(value) ? value : [value];
|
|
166
|
+
for (const item of values) {
|
|
167
|
+
if (item == null) continue;
|
|
168
|
+
search.append(key, String(item));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return search;
|
|
172
|
+
}
|
|
173
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createSearchParams, "createSearchParams");
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
exports.createFarmRouter = createFarmRouter; exports.matchFarmRoute = matchFarmRoute; exports.buildFarmRoutePath = buildFarmRoutePath; exports.isFarmRouteActive = isFarmRouteActive;
|
|
@@ -0,0 +1,113 @@
|
|
|
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/request-origin.ts
|
|
6
|
+
function getRequestSourceOrigin(request) {
|
|
7
|
+
const origin = _optionalChain([request, 'access', _ => _.headers, 'access', _2 => _2.get, 'call', _3 => _3("origin"), 'optionalAccess', _4 => _4.trim, 'call', _5 => _5()]);
|
|
8
|
+
if (origin) {
|
|
9
|
+
return parseSourceOrigin(origin);
|
|
10
|
+
}
|
|
11
|
+
const referer = _optionalChain([request, 'access', _6 => _6.headers, 'access', _7 => _7.get, 'call', _8 => _8("referer"), 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]);
|
|
12
|
+
if (referer) {
|
|
13
|
+
return parseSourceOrigin(referer);
|
|
14
|
+
}
|
|
15
|
+
return { ok: true, origin: null };
|
|
16
|
+
}
|
|
17
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getRequestSourceOrigin, "getRequestSourceOrigin");
|
|
18
|
+
function parseSourceOrigin(value) {
|
|
19
|
+
if (value === "null") {
|
|
20
|
+
return { ok: false, reason: "opaque-origin" };
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const parsed = new URL(value);
|
|
24
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
25
|
+
return { ok: false, reason: "invalid-origin" };
|
|
26
|
+
}
|
|
27
|
+
return { ok: true, origin: parsed.origin };
|
|
28
|
+
} catch (e) {
|
|
29
|
+
return { ok: false, reason: "invalid-origin" };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, parseSourceOrigin, "parseSourceOrigin");
|
|
33
|
+
function matchesHostHeader(sourceOrigin, request) {
|
|
34
|
+
const host = _optionalChain([request, 'access', _11 => _11.headers, 'access', _12 => _12.get, 'call', _13 => _13("host"), 'optionalAccess', _14 => _14.trim, 'call', _15 => _15(), 'access', _16 => _16.toLowerCase, 'call', _17 => _17()]);
|
|
35
|
+
if (!host) return false;
|
|
36
|
+
try {
|
|
37
|
+
const source = new URL(sourceOrigin);
|
|
38
|
+
const target = new URL(request.url);
|
|
39
|
+
return source.protocol === target.protocol && source.host.toLowerCase() === host;
|
|
40
|
+
} catch (e2) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchesHostHeader, "matchesHostHeader");
|
|
45
|
+
function matchesAllowedOrigin(sourceOrigin, pattern) {
|
|
46
|
+
const source = new URL(sourceOrigin);
|
|
47
|
+
if (!pattern.includes("*")) {
|
|
48
|
+
return pattern.includes("://") ? source.origin === pattern : source.host === pattern;
|
|
49
|
+
}
|
|
50
|
+
const schemeEnd = pattern.indexOf("://");
|
|
51
|
+
const scheme = schemeEnd === -1 ? null : pattern.slice(0, schemeEnd + 1);
|
|
52
|
+
const hostPattern = pattern.slice(schemeEnd === -1 ? 0 : schemeEnd + 3);
|
|
53
|
+
const [wildcardHost, port] = splitHostAndPort(hostPattern);
|
|
54
|
+
const baseHost = wildcardHost.slice(2);
|
|
55
|
+
if (scheme && source.protocol !== scheme) return false;
|
|
56
|
+
if (port && getEffectivePort(source) !== port) return false;
|
|
57
|
+
if (!port && source.port) return false;
|
|
58
|
+
return source.hostname.endsWith(`.${baseHost}`) && source.hostname !== baseHost;
|
|
59
|
+
}
|
|
60
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, matchesAllowedOrigin, "matchesAllowedOrigin");
|
|
61
|
+
function normalizeAllowedOriginPattern(value, label) {
|
|
62
|
+
const pattern = value.trim().toLowerCase();
|
|
63
|
+
if (!pattern) {
|
|
64
|
+
throw new TypeError(`${label} cannot contain empty values`);
|
|
65
|
+
}
|
|
66
|
+
if (pattern.includes("*")) {
|
|
67
|
+
if (!/^(?:https?:\/\/)?\*\.[a-z0-9.-]+(?::\d+)?$/.test(pattern)) {
|
|
68
|
+
throw new TypeError(`Invalid ${label} pattern: ${JSON.stringify(value)}`);
|
|
69
|
+
}
|
|
70
|
+
return pattern;
|
|
71
|
+
}
|
|
72
|
+
if (pattern.includes("://")) {
|
|
73
|
+
let parsed;
|
|
74
|
+
try {
|
|
75
|
+
parsed = new URL(pattern);
|
|
76
|
+
} catch (e3) {
|
|
77
|
+
throw new TypeError(`Invalid ${label} value: ${JSON.stringify(value)}`);
|
|
78
|
+
}
|
|
79
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:" || parsed.username || parsed.password || parsed.pathname !== "/" || parsed.search || parsed.hash) {
|
|
80
|
+
throw new TypeError(`${label} must contain origins without paths: ${JSON.stringify(value)}`);
|
|
81
|
+
}
|
|
82
|
+
return parsed.origin;
|
|
83
|
+
}
|
|
84
|
+
if (/[/@?#]/.test(pattern)) {
|
|
85
|
+
throw new TypeError(`${label} must contain origins or hosts: ${JSON.stringify(value)}`);
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
return new URL(`http://${pattern}`).host;
|
|
89
|
+
} catch (e4) {
|
|
90
|
+
throw new TypeError(`Invalid ${label} value: ${JSON.stringify(value)}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, normalizeAllowedOriginPattern, "normalizeAllowedOriginPattern");
|
|
94
|
+
function splitHostAndPort(value) {
|
|
95
|
+
const separator = value.lastIndexOf(":");
|
|
96
|
+
if (separator === -1) return [value, null];
|
|
97
|
+
return [value.slice(0, separator), value.slice(separator + 1)];
|
|
98
|
+
}
|
|
99
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, splitHostAndPort, "splitHostAndPort");
|
|
100
|
+
function getEffectivePort(url) {
|
|
101
|
+
if (url.port) return url.port;
|
|
102
|
+
if (url.protocol === "https:") return "443";
|
|
103
|
+
if (url.protocol === "http:") return "80";
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, getEffectivePort, "getEffectivePort");
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
exports.getRequestSourceOrigin = getRequestSourceOrigin; exports.matchesHostHeader = matchesHostHeader; exports.matchesAllowedOrigin = matchesAllowedOrigin; exports.normalizeAllowedOriginPattern = normalizeAllowedOriginPattern;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
4
|
+
|
|
5
|
+
// src/client/navigation-url.ts
|
|
6
|
+
function isFarmExternalNavigationURL(url, currentOrigin) {
|
|
7
|
+
return url.protocol !== "http:" && url.protocol !== "https:" || url.origin !== currentOrigin;
|
|
8
|
+
}
|
|
9
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isFarmExternalNavigationURL, "isFarmExternalNavigationURL");
|
|
10
|
+
function resolveFarmNavigationURL(href, documentUrl) {
|
|
11
|
+
return new URL(href, documentUrl);
|
|
12
|
+
}
|
|
13
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmNavigationURL, "resolveFarmNavigationURL");
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
exports.isFarmExternalNavigationURL = isFarmExternalNavigationURL; exports.resolveFarmNavigationURL = resolveFarmNavigationURL;
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
4
|
+
|
|
5
|
+
// src/route-rendering.ts
|
|
6
|
+
function normalizeDynamicMode(value) {
|
|
7
|
+
switch (value) {
|
|
8
|
+
case "auto":
|
|
9
|
+
case "force-static":
|
|
10
|
+
case "force-dynamic":
|
|
11
|
+
case "error":
|
|
12
|
+
return value;
|
|
13
|
+
default:
|
|
14
|
+
return void 0;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, normalizeDynamicMode, "normalizeDynamicMode");
|
|
18
|
+
function mergeRouteRenderingDirectiveConfig(directiveConfig, mod, options) {
|
|
19
|
+
const pprEnabled = _optionalChain([options, 'optionalAccess', _ => _.experimentalPPR]) === true;
|
|
20
|
+
let ssg = _nullishCoalesce(_optionalChain([directiveConfig, 'optionalAccess', _2 => _2.ssg]), () => ( false));
|
|
21
|
+
let requestedPPR = _nullishCoalesce(_optionalChain([directiveConfig, 'optionalAccess', _3 => _3.ppr]), () => ( false));
|
|
22
|
+
let revalidate = _optionalChain([directiveConfig, 'optionalAccess', _4 => _4.revalidate]);
|
|
23
|
+
const moduleDynamic = normalizeDynamicMode(_optionalChain([mod, 'optionalAccess', _5 => _5.dynamic]));
|
|
24
|
+
const dynamic = _nullishCoalesce(moduleDynamic, () => ( _optionalChain([directiveConfig, 'optionalAccess', _6 => _6.dynamic])));
|
|
25
|
+
const hasExplicitSsg = typeof _optionalChain([mod, 'optionalAccess', _7 => _7.ssg]) === "boolean";
|
|
26
|
+
const hasExplicitPPR = typeof _optionalChain([mod, 'optionalAccess', _8 => _8.ppr]) === "boolean" || typeof _optionalChain([mod, 'optionalAccess', _9 => _9.experimental_ppr]) === "boolean";
|
|
27
|
+
if (hasExplicitSsg) {
|
|
28
|
+
ssg = mod.ssg === true;
|
|
29
|
+
}
|
|
30
|
+
if (hasExplicitPPR) {
|
|
31
|
+
requestedPPR = _optionalChain([mod, 'optionalAccess', _10 => _10.ppr]) === true || _optionalChain([mod, 'optionalAccess', _11 => _11.experimental_ppr]) === true;
|
|
32
|
+
}
|
|
33
|
+
if (typeof _optionalChain([mod, 'optionalAccess', _12 => _12.revalidate]) === "number") {
|
|
34
|
+
if (mod.revalidate > 0) {
|
|
35
|
+
revalidate = mod.revalidate;
|
|
36
|
+
if (!hasExplicitSsg && !requestedPPR) {
|
|
37
|
+
ssg = true;
|
|
38
|
+
}
|
|
39
|
+
} else {
|
|
40
|
+
revalidate = void 0;
|
|
41
|
+
if (!hasExplicitSsg) {
|
|
42
|
+
ssg = false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
} else if (_optionalChain([mod, 'optionalAccess', _13 => _13.revalidate]) === false) {
|
|
46
|
+
revalidate = void 0;
|
|
47
|
+
}
|
|
48
|
+
if (moduleDynamic === "force-static" || moduleDynamic === "error") {
|
|
49
|
+
ssg = true;
|
|
50
|
+
requestedPPR = false;
|
|
51
|
+
} else if (moduleDynamic === "force-dynamic") {
|
|
52
|
+
ssg = false;
|
|
53
|
+
requestedPPR = false;
|
|
54
|
+
revalidate = void 0;
|
|
55
|
+
}
|
|
56
|
+
if (_optionalChain([directiveConfig, 'optionalAccess', _14 => _14.requestBound]) && ssg) {
|
|
57
|
+
ssg = false;
|
|
58
|
+
revalidate = void 0;
|
|
59
|
+
}
|
|
60
|
+
const ppr = pprEnabled && !ssg && requestedPPR;
|
|
61
|
+
return {
|
|
62
|
+
ssg,
|
|
63
|
+
ppr,
|
|
64
|
+
revalidate: ssg || ppr ? revalidate : void 0,
|
|
65
|
+
dynamic,
|
|
66
|
+
directive: _optionalChain([directiveConfig, 'optionalAccess', _15 => _15.directive])
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, mergeRouteRenderingDirectiveConfig, "mergeRouteRenderingDirectiveConfig");
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
exports.mergeRouteRenderingDirectiveConfig = mergeRouteRenderingDirectiveConfig;
|