@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.
Files changed (269) hide show
  1. package/dist/after.cjs +12 -225
  2. package/dist/agent-runtime.cjs +83 -2800
  3. package/dist/api/client.cjs +17 -4060
  4. package/dist/api/route-manager.cjs +34 -4354
  5. package/dist/api/runtime.cjs +29 -2696
  6. package/dist/api.cjs +88 -8434
  7. package/dist/app-markdown.cjs +39 -280
  8. package/dist/app-markdown.mjs +3 -3
  9. package/dist/cache.cjs +38 -1560
  10. package/dist/chunk-22GUSVNJ.cjs +351 -0
  11. package/dist/{chunk-EN7WTEAY.mjs → chunk-2ANEVVF7.mjs} +1 -1
  12. package/dist/chunk-2CQ74SP6.cjs +13 -0
  13. package/dist/{chunk-YD4J4XCI.mjs → chunk-2GNATDDE.mjs} +1 -1
  14. package/dist/chunk-2SJ4RQ6P.cjs +57 -0
  15. package/dist/chunk-3376ZTRC.cjs +1 -0
  16. package/dist/chunk-4PNUXIVU.cjs +472 -0
  17. package/dist/chunk-4PPEPOZZ.cjs +21 -0
  18. package/dist/chunk-4ZFL5GFN.cjs +520 -0
  19. package/dist/chunk-5OVTOKGH.cjs +65 -0
  20. package/dist/chunk-5QIKR7RR.cjs +224 -0
  21. package/dist/chunk-5ZSWG4UX.cjs +127 -0
  22. package/dist/chunk-62YJ2IEB.cjs +238 -0
  23. package/dist/chunk-6EODJYCX.cjs +183 -0
  24. package/dist/chunk-6EXBPJ24.cjs +434 -0
  25. package/dist/chunk-6QQDAAAZ.cjs +38 -0
  26. package/dist/chunk-6V4TDWEC.cjs +455 -0
  27. package/dist/chunk-72ADZ6GQ.cjs +19 -0
  28. package/dist/chunk-75BRBIFP.cjs +172 -0
  29. package/dist/{chunk-ZCNJKLA2.mjs → chunk-7BC6GAL7.mjs} +1 -1
  30. package/dist/chunk-7W3CPVXS.cjs +24 -0
  31. package/dist/chunk-A6WIQH5Z.cjs +31 -0
  32. package/dist/chunk-A777V5WU.cjs +725 -0
  33. package/dist/chunk-AFOD3LYZ.cjs +377 -0
  34. package/dist/chunk-AH7HOAQ3.cjs +151 -0
  35. package/dist/chunk-AMDMVWMI.cjs +39 -0
  36. package/dist/chunk-AORPIPNB.cjs +552 -0
  37. package/dist/chunk-ARJWXNQL.cjs +256 -0
  38. package/dist/chunk-AYJR42WX.cjs +711 -0
  39. package/dist/chunk-BBVSJVBZ.cjs +600 -0
  40. package/dist/chunk-BIDYX3SL.cjs +91 -0
  41. package/dist/chunk-BYODCJD6.cjs +663 -0
  42. package/dist/chunk-C3VRMB6H.cjs +85 -0
  43. package/dist/chunk-C5GUTBZK.cjs +173 -0
  44. package/dist/chunk-CIAGU2X4.cjs +337 -0
  45. package/dist/chunk-CMGMGHUZ.cjs +27 -0
  46. package/dist/chunk-CXP5U3RW.cjs +54 -0
  47. package/dist/chunk-D2ULAULS.cjs +166 -0
  48. package/dist/chunk-D7JTOLFK.cjs +285 -0
  49. package/dist/chunk-DVM4FKZL.cjs +169 -0
  50. package/dist/chunk-DYEJQTDN.cjs +49 -0
  51. package/dist/chunk-E2ROOWQC.cjs +2225 -0
  52. package/dist/chunk-E3UK5IIB.cjs +593 -0
  53. package/dist/chunk-EM6SBQKM.cjs +470 -0
  54. package/dist/chunk-FJSWYIR7.cjs +482 -0
  55. package/dist/chunk-FK6GO24V.cjs +54 -0
  56. package/dist/{chunk-MVIWBEJF.mjs → chunk-FVZGEVTO.mjs} +7 -7
  57. package/dist/chunk-FXUUWYAX.cjs +654 -0
  58. package/dist/chunk-G3HRIVEY.cjs +395 -0
  59. package/dist/chunk-G643DQCH.cjs +13 -0
  60. package/dist/chunk-G7HXGLEC.cjs +175 -0
  61. package/dist/chunk-GDSHDTJ4.cjs +152 -0
  62. package/dist/chunk-GPVTX3HT.cjs +1415 -0
  63. package/dist/chunk-H6G5INWM.cjs +1094 -0
  64. package/dist/{chunk-DHDVMXYK.mjs → chunk-HALDNTIV.mjs} +30 -4
  65. package/dist/chunk-HBTUGXHS.cjs +180 -0
  66. package/dist/chunk-HREOKQWT.cjs +45 -0
  67. package/dist/{chunk-5QOEPUYE.mjs → chunk-HSDL2AUR.mjs} +1 -1
  68. package/dist/chunk-I4J452B7.cjs +435 -0
  69. package/dist/chunk-I57LW5VZ.cjs +94 -0
  70. package/dist/chunk-I5YBCWQ6.cjs +40 -0
  71. package/dist/chunk-I7PUUDGY.cjs +389 -0
  72. package/dist/chunk-IAMRBF3Z.cjs +86 -0
  73. package/dist/chunk-IQXFRNY2.cjs +169 -0
  74. package/dist/chunk-ISTFC3MZ.cjs +1357 -0
  75. package/dist/chunk-IXTFU4PL.cjs +2355 -0
  76. package/dist/chunk-J3LOGE4T.cjs +42 -0
  77. package/dist/chunk-J7FSKED3.cjs +93 -0
  78. package/dist/chunk-JDNHKPTD.cjs +22 -0
  79. package/dist/chunk-JSROZYYO.cjs +164 -0
  80. package/dist/chunk-K6FNHVDR.cjs +696 -0
  81. package/dist/chunk-KGZIORNL.cjs +43 -0
  82. package/dist/chunk-KR6CKSXT.cjs +15 -0
  83. package/dist/chunk-KROWKCUH.cjs +185 -0
  84. package/dist/chunk-KVFPGF2M.cjs +46 -0
  85. package/dist/{chunk-TNBAYAWO.mjs → chunk-L4DVIHOC.mjs} +1 -1
  86. package/dist/chunk-LCCBO7PJ.cjs +46 -0
  87. package/dist/chunk-LIUGYUX3.cjs +22 -0
  88. package/dist/chunk-LTNGXMQ6.cjs +55 -0
  89. package/dist/chunk-M2L4MYDQ.cjs +14 -0
  90. package/dist/chunk-MCJLA63J.cjs +1 -0
  91. package/dist/chunk-MKB2EGIR.cjs +148 -0
  92. package/dist/chunk-MQ3H6LT5.cjs +202 -0
  93. package/dist/chunk-MT763TDW.cjs +43 -0
  94. package/dist/{chunk-XWAYMDLB.mjs → chunk-MVUREHPN.mjs} +1 -1
  95. package/dist/chunk-MWSK6C4J.cjs +18 -0
  96. package/dist/chunk-MWWVKDW3.cjs +169 -0
  97. package/dist/{chunk-6VQIKZZO.mjs → chunk-N255VYFP.mjs} +1 -1
  98. package/dist/chunk-NBAHDVOJ.cjs +2040 -0
  99. package/dist/chunk-NO3WWW3N.cjs +192 -0
  100. package/dist/chunk-NSFC3LHB.cjs +10244 -0
  101. package/dist/chunk-NZKJGRB3.cjs +230 -0
  102. package/dist/chunk-OAVTUMJP.cjs +1496 -0
  103. package/dist/{chunk-SXHV42UQ.mjs → chunk-OFEY6KHO.mjs} +88 -13
  104. package/dist/chunk-OHY2ZWUG.cjs +25 -0
  105. package/dist/chunk-OI6CMLWX.cjs +47 -0
  106. package/dist/chunk-OWOUTKIJ.cjs +558 -0
  107. package/dist/chunk-OX6O6WVA.cjs +74 -0
  108. package/dist/chunk-OXSIH4D6.cjs +476 -0
  109. package/dist/chunk-OYDRPBBV.cjs +453 -0
  110. package/dist/chunk-OYEUREB6.cjs +35 -0
  111. package/dist/chunk-PCOTGFSM.cjs +139 -0
  112. package/dist/{chunk-76DG3LF3.mjs → chunk-PGQBL5DN.mjs} +1 -1
  113. package/dist/chunk-PZYCPSCC.cjs +35 -0
  114. package/dist/chunk-QBK2AA4U.cjs +445 -0
  115. package/dist/{chunk-UTBVHYS3.mjs → chunk-QBPKKQTD.mjs} +2 -2
  116. package/dist/chunk-QBPXNZGV.cjs +487 -0
  117. package/dist/chunk-QNPEUFHQ.cjs +27 -0
  118. package/dist/chunk-QZRVZSPN.cjs +236 -0
  119. package/dist/chunk-R5A5KNVX.cjs +20 -0
  120. package/dist/chunk-R5JIFR6B.cjs +42 -0
  121. package/dist/chunk-R6AIILII.cjs +193 -0
  122. package/dist/chunk-RFYO7QUD.cjs +9 -0
  123. package/dist/chunk-RG3ZOTG5.cjs +34 -0
  124. package/dist/chunk-ROUTX2E5.cjs +390 -0
  125. package/dist/chunk-RTHIVJ2G.cjs +54 -0
  126. package/dist/chunk-S27FMYAM.cjs +644 -0
  127. package/dist/chunk-S3A45T7F.cjs +166 -0
  128. package/dist/chunk-S3JO3N4H.cjs +17 -0
  129. package/dist/chunk-SK35NQKK.cjs +27 -0
  130. package/dist/chunk-SU7MH53P.cjs +180 -0
  131. package/dist/chunk-SVRTJOUF.cjs +113 -0
  132. package/dist/chunk-SWN467MP.cjs +18 -0
  133. package/dist/chunk-SYQ3MOWW.cjs +73 -0
  134. package/dist/chunk-T5CERMEH.cjs +417 -0
  135. package/dist/chunk-TFAXUHWX.cjs +206 -0
  136. package/dist/chunk-TIWHTW3Q.cjs +24 -0
  137. package/dist/chunk-TKJZFIML.cjs +20 -0
  138. package/dist/chunk-TKNSDBBN.cjs +193 -0
  139. package/dist/chunk-U4KT7QP3.cjs +23 -0
  140. package/dist/chunk-U5BMPGS3.cjs +862 -0
  141. package/dist/chunk-UJ2C4ICS.cjs +277 -0
  142. package/dist/chunk-UQZ4AYTH.cjs +168 -0
  143. package/dist/chunk-US2QVW3E.cjs +36 -0
  144. package/dist/{chunk-QGVJVSNX.mjs → chunk-V4AICMQA.mjs} +2 -2
  145. package/dist/chunk-VB6UCX3V.cjs +421 -0
  146. package/dist/chunk-VEKFLAQM.cjs +300 -0
  147. package/dist/chunk-VQDBNVOO.cjs +14 -0
  148. package/dist/chunk-W4E7WMXE.cjs +71 -0
  149. package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
  150. package/dist/chunk-WMAPPDMM.cjs +28 -0
  151. package/dist/chunk-WMOGFOUJ.cjs +223 -0
  152. package/dist/chunk-WPYFSQKK.cjs +37 -0
  153. package/dist/{chunk-56DAX2BE.mjs → chunk-WZXN4R5Y.mjs} +24 -13
  154. package/dist/chunk-XDGMADQM.cjs +14225 -0
  155. package/dist/chunk-XGC343EY.cjs +443 -0
  156. package/dist/chunk-XSKZORAS.cjs +727 -0
  157. package/dist/chunk-XWAWFQFS.cjs +82 -0
  158. package/dist/chunk-Y4YMF2NQ.cjs +460 -0
  159. package/dist/chunk-Y4YWHNKU.cjs +250 -0
  160. package/dist/chunk-Y53ZSFN6.cjs +504 -0
  161. package/dist/chunk-YA6LLTIJ.cjs +411 -0
  162. package/dist/chunk-YFPGHF5F.cjs +202 -0
  163. package/dist/chunk-YJRZR7VU.cjs +28 -0
  164. package/dist/chunk-YTAABQEV.cjs +1 -0
  165. package/dist/chunk-YX3DBN4M.cjs +18 -0
  166. package/dist/chunk-YZTASLPQ.cjs +64 -0
  167. package/dist/chunk-Z5HIWVDP.cjs +2173 -0
  168. package/dist/chunk-ZEG3OPIB.cjs +93 -0
  169. package/dist/chunk-ZMN3H73H.cjs +155 -0
  170. package/dist/client/lifecycle.cjs +6 -35
  171. package/dist/client-plugins.cjs +7 -448
  172. package/dist/client.cjs +171 -9808
  173. package/dist/config.cjs +8 -36
  174. package/dist/cron.cjs +24 -491
  175. package/dist/deferred.cjs +26 -475
  176. package/dist/deployment.cjs +39 -210
  177. package/dist/devtools-5KGPDVKL.cjs +388 -0
  178. package/dist/{devtools-UFVTMQX5.mjs → devtools-FY5R7TQ4.mjs} +3 -3
  179. package/dist/devtools-client-4WAPJY5L.cjs +254 -0
  180. package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
  181. package/dist/docs.cjs +46 -5657
  182. package/dist/docs.mjs +5 -5
  183. package/dist/env-types.cjs +5 -226
  184. package/dist/env.cjs +21 -338
  185. package/dist/environment/vite.cjs +8 -372
  186. package/dist/environment.cjs +12 -94
  187. package/dist/font.cjs +13 -63
  188. package/dist/headers.cjs +7 -123
  189. package/dist/i18n/client.cjs +55 -294
  190. package/dist/i18n/index.cjs +22 -209
  191. package/dist/i18n/server.cjs +22 -745
  192. package/dist/image/server.cjs +13 -729
  193. package/dist/image/sharp.cjs +33 -171
  194. package/dist/image.cjs +41 -85
  195. package/dist/index.cjs +1151 -68080
  196. package/dist/index.mjs +14 -14
  197. package/dist/instrumentation.cjs +12 -138
  198. package/dist/integration-orm-55F7CII5.cjs +13 -0
  199. package/dist/integrations.cjs +55 -4090
  200. package/dist/internal/app-markdown-runtime.cjs +27 -224
  201. package/dist/internal/app-markdown-runtime.mjs +2 -2
  202. package/dist/internal/build-runtime.cjs +120 -52259
  203. package/dist/internal/build-runtime.mjs +13 -13
  204. package/dist/internal/cli-runtime.cjs +67 -13811
  205. package/dist/internal/cli-runtime.mjs +7 -7
  206. package/dist/internal/client-error-overlay.cjs +80 -733
  207. package/dist/internal/client-error-overlay.mjs +1 -1
  208. package/dist/internal/client-runtime.cjs +81 -913
  209. package/dist/internal/compression-runtime.cjs +8 -214
  210. package/dist/internal/config-runtime.cjs +42 -6547
  211. package/dist/internal/config-runtime.mjs +3 -3
  212. package/dist/internal/docs-precompiled-runtime.cjs +26 -46
  213. package/dist/internal/infra-analytics-runtime.cjs +10 -536
  214. package/dist/internal/isolated-boundary.cjs +14 -414
  215. package/dist/internal/metadata-image-runtime.cjs +7 -285
  216. package/dist/internal/product-telemetry-runtime.cjs +42 -97
  217. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  218. package/dist/internal/production-node-env.cjs +6 -63
  219. package/dist/internal/production-runtime.cjs +418 -7133
  220. package/dist/internal/production-runtime.mjs +3 -3
  221. package/dist/internal/request-cookies.cjs +6 -54
  222. package/dist/json-ld.cjs +24 -50
  223. package/dist/layers-E4WPJNY5.cjs +17 -0
  224. package/dist/manager-G4B2IPYE.cjs +14 -0
  225. package/dist/markdown.cjs +21 -547
  226. package/dist/markdown.mjs +1 -1
  227. package/dist/middleware.cjs +36 -2995
  228. package/dist/navigation.cjs +22 -2588
  229. package/dist/nitro-4I2MYLY2.cjs +652 -0
  230. package/dist/observability.cjs +22 -614
  231. package/dist/og.cjs +5 -28
  232. package/dist/plugin.cjs +106 -37442
  233. package/dist/plugin.mjs +9 -9
  234. package/dist/query/client.cjs +113 -449
  235. package/dist/query/index.cjs +26 -288
  236. package/dist/query/parsers.cjs +23 -247
  237. package/dist/query/server.cjs +36 -298
  238. package/dist/renderer/react/client.cjs +9 -43
  239. package/dist/renderer/react/server.cjs +40 -103
  240. package/dist/renderer/react/vite.cjs +7 -29
  241. package/dist/renderer-client.cjs +126 -4295
  242. package/dist/renderer.cjs +31 -249
  243. package/dist/request.cjs +5 -68
  244. package/dist/router.cjs +11 -474
  245. package/dist/routes.cjs +42 -2461
  246. package/dist/{schema-dev-notice-2IE2F2XI.mjs → schema-dev-notice-O67CPXJ6.mjs} +1 -1
  247. package/dist/schema-dev-notice-Y7MQEFGN.cjs +56 -0
  248. package/dist/schema.cjs +6 -33
  249. package/dist/search-client-G3RICOFU.cjs +13 -0
  250. package/dist/server-action-security.cjs +25 -541
  251. package/dist/server-fn-client.cjs +6 -337
  252. package/dist/server-fn.cjs +32 -1841
  253. package/dist/server-plugins.cjs +15 -884
  254. package/dist/server-query-client.cjs +15 -1883
  255. package/dist/server-query.cjs +16 -1838
  256. package/dist/server.cjs +296 -44681
  257. package/dist/server.mjs +11 -11
  258. package/dist/storage.cjs +57 -576
  259. package/dist/testing.cjs +89 -3186
  260. package/dist/theme/client.cjs +13 -108
  261. package/dist/theme/index.cjs +6 -68
  262. package/dist/theme/runtime.cjs +13 -78
  263. package/dist/theme/server.cjs +10 -179
  264. package/dist/version.cjs +4 -32
  265. package/dist/version.mjs +1 -1
  266. package/dist/vite.cjs +119 -37773
  267. package/dist/vite.mjs +9 -9
  268. package/dist/workflows.cjs +19 -1040
  269. 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;