@farm.js/core 0.1.0-beta.0

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 (549) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +11 -0
  3. package/dist/after.cjs +227 -0
  4. package/dist/after.cjs.map +1 -0
  5. package/dist/after.d.mts +25 -0
  6. package/dist/after.d.ts +25 -0
  7. package/dist/after.mjs +14 -0
  8. package/dist/after.mjs.map +1 -0
  9. package/dist/agent-runtime.cjs +2379 -0
  10. package/dist/agent-runtime.cjs.map +1 -0
  11. package/dist/agent-runtime.d.mts +93 -0
  12. package/dist/agent-runtime.d.ts +93 -0
  13. package/dist/agent-runtime.mjs +479 -0
  14. package/dist/agent-runtime.mjs.map +1 -0
  15. package/dist/api/route-manager.cjs +1196 -0
  16. package/dist/api/route-manager.cjs.map +1 -0
  17. package/dist/api/route-manager.d.mts +64 -0
  18. package/dist/api/route-manager.d.ts +64 -0
  19. package/dist/api/route-manager.mjs +34 -0
  20. package/dist/api/route-manager.mjs.map +1 -0
  21. package/dist/api/runtime.cjs +272 -0
  22. package/dist/api/runtime.cjs.map +1 -0
  23. package/dist/api/runtime.d.mts +16 -0
  24. package/dist/api/runtime.d.ts +16 -0
  25. package/dist/api/runtime.mjs +16 -0
  26. package/dist/api/runtime.mjs.map +1 -0
  27. package/dist/api.cjs +3199 -0
  28. package/dist/api.cjs.map +1 -0
  29. package/dist/api.d.mts +190 -0
  30. package/dist/api.d.ts +190 -0
  31. package/dist/api.mjs +63 -0
  32. package/dist/api.mjs.map +1 -0
  33. package/dist/app-BiX4qb-d.d.mts +265 -0
  34. package/dist/app-CFRNJXP1.d.ts +265 -0
  35. package/dist/app-markdown.cjs +220 -0
  36. package/dist/app-markdown.cjs.map +1 -0
  37. package/dist/app-markdown.d.mts +21 -0
  38. package/dist/app-markdown.d.ts +21 -0
  39. package/dist/app-markdown.mjs +26 -0
  40. package/dist/app-markdown.mjs.map +1 -0
  41. package/dist/cache.cjs +543 -0
  42. package/dist/cache.cjs.map +1 -0
  43. package/dist/cache.d.mts +78 -0
  44. package/dist/cache.d.ts +78 -0
  45. package/dist/cache.mjs +38 -0
  46. package/dist/cache.mjs.map +1 -0
  47. package/dist/chunk-25D7G34K.mjs +142 -0
  48. package/dist/chunk-25D7G34K.mjs.map +1 -0
  49. package/dist/chunk-3QJO55ZF.mjs +3548 -0
  50. package/dist/chunk-3QJO55ZF.mjs.map +1 -0
  51. package/dist/chunk-3XNTL3FQ.mjs +452 -0
  52. package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
  53. package/dist/chunk-44ZCFSKE.mjs +84 -0
  54. package/dist/chunk-44ZCFSKE.mjs.map +1 -0
  55. package/dist/chunk-4PTK6KT4.mjs +364 -0
  56. package/dist/chunk-4PTK6KT4.mjs.map +1 -0
  57. package/dist/chunk-4S3ORGFA.mjs +44 -0
  58. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  59. package/dist/chunk-5BY76U2M.mjs +1 -0
  60. package/dist/chunk-5BY76U2M.mjs.map +1 -0
  61. package/dist/chunk-5ZGPRGWV.mjs +136 -0
  62. package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
  63. package/dist/chunk-6XDUHOEM.mjs +157 -0
  64. package/dist/chunk-6XDUHOEM.mjs.map +1 -0
  65. package/dist/chunk-74YTBPTY.mjs +450 -0
  66. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  67. package/dist/chunk-7HO6AEOP.mjs +74 -0
  68. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  69. package/dist/chunk-7MABZJIM.mjs +29 -0
  70. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  71. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  72. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  73. package/dist/chunk-AGS7UJ52.mjs +446 -0
  74. package/dist/chunk-AGS7UJ52.mjs.map +1 -0
  75. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  76. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  77. package/dist/chunk-B232I2GP.mjs +163 -0
  78. package/dist/chunk-B232I2GP.mjs.map +1 -0
  79. package/dist/chunk-B6N4ZB2H.mjs +718 -0
  80. package/dist/chunk-B6N4ZB2H.mjs.map +1 -0
  81. package/dist/chunk-BHG3LVHH.mjs +176 -0
  82. package/dist/chunk-BHG3LVHH.mjs.map +1 -0
  83. package/dist/chunk-C3DLZMBU.mjs +597 -0
  84. package/dist/chunk-C3DLZMBU.mjs.map +1 -0
  85. package/dist/chunk-CGILA3WO.mjs +14 -0
  86. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  87. package/dist/chunk-CHFHNEMO.mjs +7088 -0
  88. package/dist/chunk-CHFHNEMO.mjs.map +1 -0
  89. package/dist/chunk-E2MPIBRE.mjs +149 -0
  90. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  91. package/dist/chunk-E6EPN5BT.mjs +203 -0
  92. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  93. package/dist/chunk-EVGBEZDF.mjs +215 -0
  94. package/dist/chunk-EVGBEZDF.mjs.map +1 -0
  95. package/dist/chunk-FQYDHKKU.mjs +128 -0
  96. package/dist/chunk-FQYDHKKU.mjs.map +1 -0
  97. package/dist/chunk-G3B5BRDY.mjs +5763 -0
  98. package/dist/chunk-G3B5BRDY.mjs.map +1 -0
  99. package/dist/chunk-GN72QAIH.mjs +146 -0
  100. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  101. package/dist/chunk-GS6K5OCM.mjs +407 -0
  102. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  103. package/dist/chunk-GY2STC2S.mjs +180 -0
  104. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  105. package/dist/chunk-GZP5W4K3.mjs +158 -0
  106. package/dist/chunk-GZP5W4K3.mjs.map +1 -0
  107. package/dist/chunk-H2FA2SBS.mjs +51 -0
  108. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  109. package/dist/chunk-HXP3ZSPC.mjs +211 -0
  110. package/dist/chunk-HXP3ZSPC.mjs.map +1 -0
  111. package/dist/chunk-ITN462YM.mjs +98 -0
  112. package/dist/chunk-ITN462YM.mjs.map +1 -0
  113. package/dist/chunk-J23HNLFY.mjs +72 -0
  114. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  115. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  116. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  117. package/dist/chunk-JK25YEN6.mjs +219 -0
  118. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  119. package/dist/chunk-JLWMCADZ.mjs +204 -0
  120. package/dist/chunk-JLWMCADZ.mjs.map +1 -0
  121. package/dist/chunk-JN3UU635.mjs +622 -0
  122. package/dist/chunk-JN3UU635.mjs.map +1 -0
  123. package/dist/chunk-K4667E2Q.mjs +1916 -0
  124. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  125. package/dist/chunk-LGHEOHBU.mjs +218 -0
  126. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  127. package/dist/chunk-LLC7BNXW.mjs +275 -0
  128. package/dist/chunk-LLC7BNXW.mjs.map +1 -0
  129. package/dist/chunk-LM2YNO4U.mjs +24 -0
  130. package/dist/chunk-LM2YNO4U.mjs.map +1 -0
  131. package/dist/chunk-NNLCAVB6.mjs +391 -0
  132. package/dist/chunk-NNLCAVB6.mjs.map +1 -0
  133. package/dist/chunk-O3HADRW6.mjs +639 -0
  134. package/dist/chunk-O3HADRW6.mjs.map +1 -0
  135. package/dist/chunk-OYXO65LI.mjs +119 -0
  136. package/dist/chunk-OYXO65LI.mjs.map +1 -0
  137. package/dist/chunk-P7QDS5AT.mjs +191 -0
  138. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  139. package/dist/chunk-PRNYWD7K.mjs +599 -0
  140. package/dist/chunk-PRNYWD7K.mjs.map +1 -0
  141. package/dist/chunk-QF4PHCMA.mjs +422 -0
  142. package/dist/chunk-QF4PHCMA.mjs.map +1 -0
  143. package/dist/chunk-QFQRHRZS.mjs +1224 -0
  144. package/dist/chunk-QFQRHRZS.mjs.map +1 -0
  145. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  146. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  147. package/dist/chunk-QKVUNGAH.mjs +39 -0
  148. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  149. package/dist/chunk-QM6VV26B.mjs +149 -0
  150. package/dist/chunk-QM6VV26B.mjs.map +1 -0
  151. package/dist/chunk-RHIFZZUI.mjs +69 -0
  152. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  153. package/dist/chunk-RKI6TN3A.mjs +49 -0
  154. package/dist/chunk-RKI6TN3A.mjs.map +1 -0
  155. package/dist/chunk-RSKVYESE.mjs +187 -0
  156. package/dist/chunk-RSKVYESE.mjs.map +1 -0
  157. package/dist/chunk-S2XHZS7W.mjs +180 -0
  158. package/dist/chunk-S2XHZS7W.mjs.map +1 -0
  159. package/dist/chunk-SCFX4UTD.mjs +28 -0
  160. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  161. package/dist/chunk-SL6HTIOK.mjs +66 -0
  162. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  163. package/dist/chunk-SOU3Q3ZA.mjs +173 -0
  164. package/dist/chunk-SOU3Q3ZA.mjs.map +1 -0
  165. package/dist/chunk-SPBBQLXI.mjs +207 -0
  166. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  167. package/dist/chunk-SXZTEK3V.mjs +396 -0
  168. package/dist/chunk-SXZTEK3V.mjs.map +1 -0
  169. package/dist/chunk-T4QJQK76.mjs +459 -0
  170. package/dist/chunk-T4QJQK76.mjs.map +1 -0
  171. package/dist/chunk-TRORP7E4.mjs +41 -0
  172. package/dist/chunk-TRORP7E4.mjs.map +1 -0
  173. package/dist/chunk-TU4YJICB.mjs +728 -0
  174. package/dist/chunk-TU4YJICB.mjs.map +1 -0
  175. package/dist/chunk-TXCFGOHW.mjs +42 -0
  176. package/dist/chunk-TXCFGOHW.mjs.map +1 -0
  177. package/dist/chunk-UHE2TTLK.mjs +466 -0
  178. package/dist/chunk-UHE2TTLK.mjs.map +1 -0
  179. package/dist/chunk-UREJA4GZ.mjs +364 -0
  180. package/dist/chunk-UREJA4GZ.mjs.map +1 -0
  181. package/dist/chunk-USWZZUEH.mjs +25 -0
  182. package/dist/chunk-USWZZUEH.mjs.map +1 -0
  183. package/dist/chunk-UVCIEUJC.mjs +16 -0
  184. package/dist/chunk-UVCIEUJC.mjs.map +1 -0
  185. package/dist/chunk-V6WE6JSZ.mjs +352 -0
  186. package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
  187. package/dist/chunk-V7RBCSDJ.mjs +170 -0
  188. package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
  189. package/dist/chunk-VCANOYFI.mjs +588 -0
  190. package/dist/chunk-VCANOYFI.mjs.map +1 -0
  191. package/dist/chunk-WZ5QFROO.mjs +23 -0
  192. package/dist/chunk-WZ5QFROO.mjs.map +1 -0
  193. package/dist/chunk-Y2OJJD7R.mjs +543 -0
  194. package/dist/chunk-Y2OJJD7R.mjs.map +1 -0
  195. package/dist/chunk-Y7A27276.mjs +538 -0
  196. package/dist/chunk-Y7A27276.mjs.map +1 -0
  197. package/dist/chunk-YHU7SS6L.mjs +365 -0
  198. package/dist/chunk-YHU7SS6L.mjs.map +1 -0
  199. package/dist/chunk-ZBE6MLHL.mjs +230 -0
  200. package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
  201. package/dist/chunk-ZJQNATYV.mjs +299 -0
  202. package/dist/chunk-ZJQNATYV.mjs.map +1 -0
  203. package/dist/client-D_yUjVhe.d.mts +402 -0
  204. package/dist/client-Dkc03WP8.d.ts +402 -0
  205. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  206. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  207. package/dist/client-plugins-BZnpeTGA.d.ts +1848 -0
  208. package/dist/client-plugins-g4bzuCmo.d.mts +1848 -0
  209. package/dist/client-plugins.cjs +415 -0
  210. package/dist/client-plugins.cjs.map +1 -0
  211. package/dist/client-plugins.d.mts +21 -0
  212. package/dist/client-plugins.d.ts +21 -0
  213. package/dist/client-plugins.mjs +10 -0
  214. package/dist/client-plugins.mjs.map +1 -0
  215. package/dist/client.cjs +4571 -0
  216. package/dist/client.cjs.map +1 -0
  217. package/dist/client.d.mts +329 -0
  218. package/dist/client.d.ts +329 -0
  219. package/dist/client.mjs +103 -0
  220. package/dist/client.mjs.map +1 -0
  221. package/dist/config.cjs +38 -0
  222. package/dist/config.cjs.map +1 -0
  223. package/dist/config.d.mts +28 -0
  224. package/dist/config.d.ts +28 -0
  225. package/dist/config.mjs +10 -0
  226. package/dist/config.mjs.map +1 -0
  227. package/dist/cron.cjs +406 -0
  228. package/dist/cron.cjs.map +1 -0
  229. package/dist/cron.d.mts +78 -0
  230. package/dist/cron.d.ts +78 -0
  231. package/dist/cron.mjs +30 -0
  232. package/dist/cron.mjs.map +1 -0
  233. package/dist/deferred.cjs +438 -0
  234. package/dist/deferred.cjs.map +1 -0
  235. package/dist/deferred.d.mts +42 -0
  236. package/dist/deferred.d.ts +42 -0
  237. package/dist/deferred.mjs +28 -0
  238. package/dist/deferred.mjs.map +1 -0
  239. package/dist/deployment.cjs +199 -0
  240. package/dist/deployment.cjs.map +1 -0
  241. package/dist/deployment.d.mts +34 -0
  242. package/dist/deployment.d.ts +34 -0
  243. package/dist/deployment.mjs +38 -0
  244. package/dist/deployment.mjs.map +1 -0
  245. package/dist/devtools-AE4RVXCM.mjs +370 -0
  246. package/dist/devtools-AE4RVXCM.mjs.map +1 -0
  247. package/dist/devtools-client-6WPY2AQU.mjs +225 -0
  248. package/dist/devtools-client-6WPY2AQU.mjs.map +1 -0
  249. package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
  250. package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
  251. package/dist/docs.cjs +5541 -0
  252. package/dist/docs.cjs.map +1 -0
  253. package/dist/docs.d.mts +69 -0
  254. package/dist/docs.d.ts +69 -0
  255. package/dist/docs.mjs +46 -0
  256. package/dist/docs.mjs.map +1 -0
  257. package/dist/env-types.cjs +223 -0
  258. package/dist/env-types.cjs.map +1 -0
  259. package/dist/env-types.d.mts +11 -0
  260. package/dist/env-types.d.ts +11 -0
  261. package/dist/env-types.mjs +9 -0
  262. package/dist/env-types.mjs.map +1 -0
  263. package/dist/env.cjs +215 -0
  264. package/dist/env.cjs.map +1 -0
  265. package/dist/env.d.mts +45 -0
  266. package/dist/env.d.ts +45 -0
  267. package/dist/env.mjs +22 -0
  268. package/dist/env.mjs.map +1 -0
  269. package/dist/environment/vite.cjs +374 -0
  270. package/dist/environment/vite.cjs.map +1 -0
  271. package/dist/environment/vite.d.mts +22 -0
  272. package/dist/environment/vite.d.ts +22 -0
  273. package/dist/environment/vite.mjs +10 -0
  274. package/dist/environment/vite.mjs.map +1 -0
  275. package/dist/environment.cjs +96 -0
  276. package/dist/environment.cjs.map +1 -0
  277. package/dist/environment.d.mts +18 -0
  278. package/dist/environment.d.ts +18 -0
  279. package/dist/environment.mjs +14 -0
  280. package/dist/environment.mjs.map +1 -0
  281. package/dist/headers.cjs +126 -0
  282. package/dist/headers.cjs.map +1 -0
  283. package/dist/headers.d.mts +22 -0
  284. package/dist/headers.d.ts +22 -0
  285. package/dist/headers.mjs +12 -0
  286. package/dist/headers.mjs.map +1 -0
  287. package/dist/i18n/client.cjs +283 -0
  288. package/dist/i18n/client.cjs.map +1 -0
  289. package/dist/i18n/client.d.mts +32 -0
  290. package/dist/i18n/client.d.ts +32 -0
  291. package/dist/i18n/client.mjs +121 -0
  292. package/dist/i18n/client.mjs.map +1 -0
  293. package/dist/i18n/index.cjs +130 -0
  294. package/dist/i18n/index.cjs.map +1 -0
  295. package/dist/i18n/index.d.mts +20 -0
  296. package/dist/i18n/index.d.ts +20 -0
  297. package/dist/i18n/index.mjs +22 -0
  298. package/dist/i18n/index.mjs.map +1 -0
  299. package/dist/i18n/server.cjs +637 -0
  300. package/dist/i18n/server.cjs.map +1 -0
  301. package/dist/i18n/server.d.mts +30 -0
  302. package/dist/i18n/server.d.ts +30 -0
  303. package/dist/i18n/server.mjs +32 -0
  304. package/dist/i18n/server.mjs.map +1 -0
  305. package/dist/image/server.cjs +477 -0
  306. package/dist/image/server.cjs.map +1 -0
  307. package/dist/image/server.d.mts +37 -0
  308. package/dist/image/server.d.ts +37 -0
  309. package/dist/image/server.mjs +16 -0
  310. package/dist/image/server.mjs.map +1 -0
  311. package/dist/image/sharp.cjs +135 -0
  312. package/dist/image/sharp.cjs.map +1 -0
  313. package/dist/image/sharp.d.mts +7 -0
  314. package/dist/image/sharp.d.ts +7 -0
  315. package/dist/image/sharp.mjs +75 -0
  316. package/dist/image/sharp.mjs.map +1 -0
  317. package/dist/image-config-Duob7wER.d.mts +50 -0
  318. package/dist/image-config-Duob7wER.d.ts +50 -0
  319. package/dist/image.cjs +209 -0
  320. package/dist/image.cjs.map +1 -0
  321. package/dist/image.d.mts +39 -0
  322. package/dist/image.d.ts +39 -0
  323. package/dist/image.mjs +165 -0
  324. package/dist/image.mjs.map +1 -0
  325. package/dist/index.cjs +39433 -0
  326. package/dist/index.cjs.map +1 -0
  327. package/dist/index.d.mts +451 -0
  328. package/dist/index.d.ts +451 -0
  329. package/dist/index.mjs +930 -0
  330. package/dist/index.mjs.map +1 -0
  331. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  332. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  333. package/dist/integration-orm-GQLGU66X.mjs +13 -0
  334. package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
  335. package/dist/integrations.cjs +2820 -0
  336. package/dist/integrations.cjs.map +1 -0
  337. package/dist/integrations.d.mts +21 -0
  338. package/dist/integrations.d.ts +21 -0
  339. package/dist/integrations.mjs +51 -0
  340. package/dist/integrations.mjs.map +1 -0
  341. package/dist/internal/build-runtime.cjs +31340 -0
  342. package/dist/internal/build-runtime.cjs.map +1 -0
  343. package/dist/internal/build-runtime.d.mts +38 -0
  344. package/dist/internal/build-runtime.d.ts +38 -0
  345. package/dist/internal/build-runtime.mjs +73 -0
  346. package/dist/internal/build-runtime.mjs.map +1 -0
  347. package/dist/internal/client-runtime.cjs +579 -0
  348. package/dist/internal/client-runtime.cjs.map +1 -0
  349. package/dist/internal/client-runtime.d.mts +2 -0
  350. package/dist/internal/client-runtime.d.ts +2 -0
  351. package/dist/internal/client-runtime.mjs +12 -0
  352. package/dist/internal/client-runtime.mjs.map +1 -0
  353. package/dist/internal/config-runtime.cjs +4172 -0
  354. package/dist/internal/config-runtime.cjs.map +1 -0
  355. package/dist/internal/config-runtime.d.mts +38 -0
  356. package/dist/internal/config-runtime.d.ts +38 -0
  357. package/dist/internal/config-runtime.mjs +38 -0
  358. package/dist/internal/config-runtime.mjs.map +1 -0
  359. package/dist/internal/production-node-env.cjs +65 -0
  360. package/dist/internal/production-node-env.cjs.map +1 -0
  361. package/dist/internal/production-node-env.d.mts +12 -0
  362. package/dist/internal/production-node-env.d.ts +12 -0
  363. package/dist/internal/production-node-env.mjs +8 -0
  364. package/dist/internal/production-node-env.mjs.map +1 -0
  365. package/dist/internal/production-runtime.cjs +1896 -0
  366. package/dist/internal/production-runtime.cjs.map +1 -0
  367. package/dist/internal/production-runtime.d.mts +39 -0
  368. package/dist/internal/production-runtime.d.ts +39 -0
  369. package/dist/internal/production-runtime.mjs +79 -0
  370. package/dist/internal/production-runtime.mjs.map +1 -0
  371. package/dist/layers-VWVDTPUZ.mjs +16 -0
  372. package/dist/layers-VWVDTPUZ.mjs.map +1 -0
  373. package/dist/manager-THKFTOFE.mjs +10 -0
  374. package/dist/manager-THKFTOFE.mjs.map +1 -0
  375. package/dist/markdown.cjs +299 -0
  376. package/dist/markdown.cjs.map +1 -0
  377. package/dist/markdown.d.mts +43 -0
  378. package/dist/markdown.d.ts +43 -0
  379. package/dist/markdown.mjs +14 -0
  380. package/dist/markdown.mjs.map +1 -0
  381. package/dist/metadata-C9NZxMDW.d.mts +22 -0
  382. package/dist/metadata-DAXRaOHx.d.ts +22 -0
  383. package/dist/middleware.cjs +2148 -0
  384. package/dist/middleware.cjs.map +1 -0
  385. package/dist/middleware.d.mts +163 -0
  386. package/dist/middleware.d.ts +163 -0
  387. package/dist/middleware.mjs +49 -0
  388. package/dist/middleware.mjs.map +1 -0
  389. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  390. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  391. package/dist/navigation.cjs +1304 -0
  392. package/dist/navigation.cjs.map +1 -0
  393. package/dist/navigation.d.mts +14 -0
  394. package/dist/navigation.d.ts +14 -0
  395. package/dist/navigation.mjs +33 -0
  396. package/dist/navigation.mjs.map +1 -0
  397. package/dist/nitro-KME62MWG.mjs +691 -0
  398. package/dist/nitro-KME62MWG.mjs.map +1 -0
  399. package/dist/observability.cjs +186 -0
  400. package/dist/observability.cjs.map +1 -0
  401. package/dist/observability.d.mts +335 -0
  402. package/dist/observability.d.ts +335 -0
  403. package/dist/observability.mjs +16 -0
  404. package/dist/observability.mjs.map +1 -0
  405. package/dist/params-BALtrRim.d.ts +15 -0
  406. package/dist/params-ry-lxqmy.d.mts +15 -0
  407. package/dist/plugin-BJDf43dc.d.mts +165 -0
  408. package/dist/plugin-BJDf43dc.d.ts +165 -0
  409. package/dist/plugin.cjs +22285 -0
  410. package/dist/plugin.cjs.map +1 -0
  411. package/dist/plugin.d.mts +21 -0
  412. package/dist/plugin.d.ts +21 -0
  413. package/dist/plugin.mjs +60 -0
  414. package/dist/plugin.mjs.map +1 -0
  415. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  416. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  417. package/dist/production-runtime-DRkCHUvJ.d.ts +79 -0
  418. package/dist/production-runtime-flrjp_nC.d.mts +79 -0
  419. package/dist/query/client.cjs +560 -0
  420. package/dist/query/client.cjs.map +1 -0
  421. package/dist/query/client.d.mts +61 -0
  422. package/dist/query/client.d.ts +61 -0
  423. package/dist/query/client.mjs +364 -0
  424. package/dist/query/client.mjs.map +1 -0
  425. package/dist/query/index.cjs +226 -0
  426. package/dist/query/index.cjs.map +1 -0
  427. package/dist/query/index.d.mts +90 -0
  428. package/dist/query/index.d.ts +90 -0
  429. package/dist/query/index.mjs +31 -0
  430. package/dist/query/index.mjs.map +1 -0
  431. package/dist/query/parsers.cjs +178 -0
  432. package/dist/query/parsers.cjs.map +1 -0
  433. package/dist/query/parsers.d.mts +25 -0
  434. package/dist/query/parsers.d.ts +25 -0
  435. package/dist/query/parsers.mjs +24 -0
  436. package/dist/query/parsers.mjs.map +1 -0
  437. package/dist/query/server.cjs +301 -0
  438. package/dist/query/server.cjs.map +1 -0
  439. package/dist/query/server.d.mts +55 -0
  440. package/dist/query/server.d.ts +55 -0
  441. package/dist/query/server.mjs +105 -0
  442. package/dist/query/server.mjs.map +1 -0
  443. package/dist/request-BrFBuc8G.d.mts +6 -0
  444. package/dist/request-BslSZIRz.d.ts +6 -0
  445. package/dist/request.cjs +71 -0
  446. package/dist/request.cjs.map +1 -0
  447. package/dist/request.d.mts +2 -0
  448. package/dist/request.d.ts +2 -0
  449. package/dist/request.mjs +9 -0
  450. package/dist/request.mjs.map +1 -0
  451. package/dist/resolver-C6iecsDV.d.ts +14 -0
  452. package/dist/resolver-DlOPpjkB.d.mts +14 -0
  453. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  454. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  455. package/dist/router.cjs +254 -0
  456. package/dist/router.cjs.map +1 -0
  457. package/dist/router.d.mts +36 -0
  458. package/dist/router.d.ts +36 -0
  459. package/dist/router.mjs +14 -0
  460. package/dist/router.mjs.map +1 -0
  461. package/dist/routes.cjs +1213 -0
  462. package/dist/routes.cjs.map +1 -0
  463. package/dist/routes.d.mts +224 -0
  464. package/dist/routes.d.ts +224 -0
  465. package/dist/routes.mjs +52 -0
  466. package/dist/routes.mjs.map +1 -0
  467. package/dist/runtime-B6GvwDS1.d.ts +27 -0
  468. package/dist/runtime-DeAAZ6gO.d.mts +27 -0
  469. package/dist/search-client-6OXIBNYQ.mjs +14 -0
  470. package/dist/search-client-6OXIBNYQ.mjs.map +1 -0
  471. package/dist/server-action-security.cjs +492 -0
  472. package/dist/server-action-security.cjs.map +1 -0
  473. package/dist/server-action-security.d.mts +42 -0
  474. package/dist/server-action-security.d.ts +42 -0
  475. package/dist/server-action-security.mjs +29 -0
  476. package/dist/server-action-security.mjs.map +1 -0
  477. package/dist/server-fn-client.cjs +180 -0
  478. package/dist/server-fn-client.cjs.map +1 -0
  479. package/dist/server-fn-client.d.mts +31 -0
  480. package/dist/server-fn-client.d.ts +31 -0
  481. package/dist/server-fn-client.mjs +9 -0
  482. package/dist/server-fn-client.mjs.map +1 -0
  483. package/dist/server-fn.cjs +284 -0
  484. package/dist/server-fn.cjs.map +1 -0
  485. package/dist/server-fn.d.mts +84 -0
  486. package/dist/server-fn.d.ts +84 -0
  487. package/dist/server-fn.mjs +17 -0
  488. package/dist/server-fn.mjs.map +1 -0
  489. package/dist/server-plugins.cjs +235 -0
  490. package/dist/server-plugins.cjs.map +1 -0
  491. package/dist/server-plugins.d.mts +54 -0
  492. package/dist/server-plugins.d.ts +54 -0
  493. package/dist/server-plugins.mjs +18 -0
  494. package/dist/server-plugins.mjs.map +1 -0
  495. package/dist/server-query-client.cjs +792 -0
  496. package/dist/server-query-client.cjs.map +1 -0
  497. package/dist/server-query-client.d.mts +50 -0
  498. package/dist/server-query-client.d.ts +50 -0
  499. package/dist/server-query-client.mjs +23 -0
  500. package/dist/server-query-client.mjs.map +1 -0
  501. package/dist/server-query.cjs +804 -0
  502. package/dist/server-query.cjs.map +1 -0
  503. package/dist/server-query.d.mts +36 -0
  504. package/dist/server-query.d.ts +36 -0
  505. package/dist/server-query.mjs +18 -0
  506. package/dist/server-query.mjs.map +1 -0
  507. package/dist/server.cjs +25739 -0
  508. package/dist/server.cjs.map +1 -0
  509. package/dist/server.d.mts +47 -0
  510. package/dist/server.d.ts +47 -0
  511. package/dist/server.mjs +511 -0
  512. package/dist/server.mjs.map +1 -0
  513. package/dist/storage.cjs +515 -0
  514. package/dist/storage.cjs.map +1 -0
  515. package/dist/storage.d.mts +52 -0
  516. package/dist/storage.d.ts +52 -0
  517. package/dist/storage.mjs +58 -0
  518. package/dist/storage.mjs.map +1 -0
  519. package/dist/testing.cjs +1882 -0
  520. package/dist/testing.cjs.map +1 -0
  521. package/dist/testing.d.mts +100 -0
  522. package/dist/testing.d.ts +100 -0
  523. package/dist/testing.mjs +324 -0
  524. package/dist/testing.mjs.map +1 -0
  525. package/dist/types-BH1lhg5G.d.mts +81 -0
  526. package/dist/types-BH1lhg5G.d.ts +81 -0
  527. package/dist/types-C9N-nk5R.d.mts +53 -0
  528. package/dist/types-C9N-nk5R.d.ts +53 -0
  529. package/dist/types-D1A6-XvH.d.mts +73 -0
  530. package/dist/types-D1A6-XvH.d.ts +73 -0
  531. package/dist/utils-DA1yo54_.d.ts +23 -0
  532. package/dist/utils-DOXXivjL.d.mts +23 -0
  533. package/dist/vite.cjs +22684 -0
  534. package/dist/vite.cjs.map +1 -0
  535. package/dist/vite.d.mts +21 -0
  536. package/dist/vite.d.ts +21 -0
  537. package/dist/vite.mjs +59 -0
  538. package/dist/vite.mjs.map +1 -0
  539. package/dist/workflows.cjs +586 -0
  540. package/dist/workflows.cjs.map +1 -0
  541. package/dist/workflows.d.mts +110 -0
  542. package/dist/workflows.d.ts +110 -0
  543. package/dist/workflows.mjs +32 -0
  544. package/dist/workflows.mjs.map +1 -0
  545. package/package.json +523 -0
  546. package/types/api.d.ts +88 -0
  547. package/types/client.d.ts +1171 -0
  548. package/types/index.d.ts +17 -0
  549. package/types/middleware.d.ts +266 -0
@@ -0,0 +1,49 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/server/vite-config.ts
6
+ function mergeNoExternal(farmValue, userValue) {
7
+ if (farmValue === true || userValue === true) return true;
8
+ const normalize = /* @__PURE__ */ __name((value) => value == null ? [] : Array.isArray(value) ? value : [value], "normalize");
9
+ return Array.from(/* @__PURE__ */ new Set([...normalize(farmValue), ...normalize(userValue)]));
10
+ }
11
+ __name(mergeNoExternal, "mergeNoExternal");
12
+ function mergeFarmViteConfig(farmConfig, userConfig = {}) {
13
+ return {
14
+ ...farmConfig,
15
+ ...userConfig,
16
+ plugins: [...farmConfig.plugins || [], ...userConfig.plugins || []],
17
+ server: {
18
+ ...farmConfig.server,
19
+ ...userConfig.server
20
+ },
21
+ optimizeDeps: {
22
+ ...farmConfig.optimizeDeps,
23
+ ...userConfig.optimizeDeps,
24
+ include: Array.from(
25
+ /* @__PURE__ */ new Set([
26
+ ...farmConfig.optimizeDeps?.include || [],
27
+ ...userConfig.optimizeDeps?.include || []
28
+ ])
29
+ ),
30
+ exclude: Array.from(
31
+ /* @__PURE__ */ new Set([
32
+ ...farmConfig.optimizeDeps?.exclude || [],
33
+ ...userConfig.optimizeDeps?.exclude || []
34
+ ])
35
+ )
36
+ },
37
+ ssr: {
38
+ ...farmConfig.ssr,
39
+ ...userConfig.ssr,
40
+ noExternal: mergeNoExternal(farmConfig.ssr?.noExternal, userConfig.ssr?.noExternal)
41
+ }
42
+ };
43
+ }
44
+ __name(mergeFarmViteConfig, "mergeFarmViteConfig");
45
+
46
+ export {
47
+ mergeFarmViteConfig
48
+ };
49
+ //# sourceMappingURL=chunk-RKI6TN3A.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/vite-config.ts"],"sourcesContent":["import type { UserConfig as ViteUserConfig } from \"vite\";\n\ntype ViteNoExternal = NonNullable<NonNullable<ViteUserConfig[\"ssr\"]>[\"noExternal\"]>;\n\nfunction mergeNoExternal(\n farmValue: ViteNoExternal | undefined,\n userValue: ViteNoExternal | undefined,\n): ViteNoExternal {\n if (farmValue === true || userValue === true) return true;\n\n const normalize = (value: ViteNoExternal | undefined) =>\n value == null ? [] : Array.isArray(value) ? value : [value];\n\n return Array.from(new Set([...normalize(farmValue), ...normalize(userValue)]));\n}\n\nexport function mergeFarmViteConfig(\n farmConfig: ViteUserConfig,\n userConfig: ViteUserConfig = {},\n): ViteUserConfig {\n return {\n ...farmConfig,\n ...userConfig,\n plugins: [...(farmConfig.plugins || []), ...(userConfig.plugins || [])],\n server: {\n ...farmConfig.server,\n ...userConfig.server,\n },\n optimizeDeps: {\n ...farmConfig.optimizeDeps,\n ...userConfig.optimizeDeps,\n include: Array.from(\n new Set([\n ...(farmConfig.optimizeDeps?.include || []),\n ...(userConfig.optimizeDeps?.include || []),\n ]),\n ),\n exclude: Array.from(\n new Set([\n ...(farmConfig.optimizeDeps?.exclude || []),\n ...(userConfig.optimizeDeps?.exclude || []),\n ]),\n ),\n },\n ssr: {\n ...farmConfig.ssr,\n ...userConfig.ssr,\n noExternal: mergeNoExternal(farmConfig.ssr?.noExternal, userConfig.ssr?.noExternal),\n },\n };\n}\n"],"mappings":";;;;;AAIA,SAAS,gBACP,WACA,WACgB;AAChB,MAAI,cAAc,QAAQ,cAAc,KAAM,QAAO;AAErD,QAAM,YAAY,wBAAC,UACjB,SAAS,OAAO,CAAC,IAAI,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAD1C;AAGlB,SAAO,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAG,UAAU,SAAS,GAAG,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;AAC/E;AAVS;AAYF,SAAS,oBACd,YACA,aAA6B,CAAC,GACd;AAChB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,SAAS,CAAC,GAAI,WAAW,WAAW,CAAC,GAAI,GAAI,WAAW,WAAW,CAAC,CAAE;AAAA,IACtE,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,IAChB;AAAA,IACA,cAAc;AAAA,MACZ,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,MACd,SAAS,MAAM;AAAA,QACb,oBAAI,IAAI;AAAA,UACN,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,UACzC,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,MACA,SAAS,MAAM;AAAA,QACb,oBAAI,IAAI;AAAA,UACN,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,UACzC,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,MACd,YAAY,gBAAgB,WAAW,KAAK,YAAY,WAAW,KAAK,UAAU;AAAA,IACpF;AAAA,EACF;AACF;AAlCgB;","names":[]}
@@ -0,0 +1,187 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/env.ts
6
+ var FARM_ENV_SYMBOL = /* @__PURE__ */ Symbol.for("farm.env");
7
+ var farmEnvGlobal = globalThis;
8
+ var currentEnv = getInitialEnv();
9
+ function resolveEnv(config, source = getProcessEnv()) {
10
+ const resolved = {
11
+ server: resolveEnvScope(config?.server, source, "server"),
12
+ public: resolveEnvScope(config?.public, source, "public")
13
+ };
14
+ return resolved;
15
+ }
16
+ __name(resolveEnv, "resolveEnv");
17
+ function setEnv(env2) {
18
+ currentEnv = normalizeResolvedEnv(env2);
19
+ if (typeof window === "undefined") {
20
+ farmEnvGlobal[FARM_ENV_SYMBOL] = currentEnv;
21
+ }
22
+ }
23
+ __name(setEnv, "setEnv");
24
+ function getResolvedEnv() {
25
+ return getCurrentEnv();
26
+ }
27
+ __name(getResolvedEnv, "getResolvedEnv");
28
+ function getEnv(key) {
29
+ assertServerEnvAccess();
30
+ if (key === void 0) {
31
+ return getCurrentEnv().server;
32
+ }
33
+ return getCurrentEnv().server[key];
34
+ }
35
+ __name(getEnv, "getEnv");
36
+ function getPublicEnv(key) {
37
+ if (key === void 0) {
38
+ return getCurrentEnv().public;
39
+ }
40
+ return getCurrentEnv().public[key];
41
+ }
42
+ __name(getPublicEnv, "getPublicEnv");
43
+ var env = createEnvProxy("server");
44
+ var serverEnv = env;
45
+ var publicEnv = createEnvProxy("public");
46
+ function resolveEnvScope(shape, source, scope) {
47
+ if (!shape) {
48
+ return {};
49
+ }
50
+ const resolved = {};
51
+ for (const [key, parser] of Object.entries(shape)) {
52
+ try {
53
+ resolved[key] = parseEnvValue(parser, source[key], key, scope);
54
+ } catch (error) {
55
+ const message = error instanceof Error ? error.message : String(error);
56
+ throw new Error(`Invalid ${scope} env "${key}": ${message}`);
57
+ }
58
+ }
59
+ return resolved;
60
+ }
61
+ __name(resolveEnvScope, "resolveEnvScope");
62
+ function parseEnvValue(parser, value, key, scope) {
63
+ if (typeof parser === "function") {
64
+ return parser(value, { key, scope });
65
+ }
66
+ if (parser && typeof parser.parse === "function") {
67
+ return parser.parse(value);
68
+ }
69
+ throw new Error("expected a parser function or schema with parse()");
70
+ }
71
+ __name(parseEnvValue, "parseEnvValue");
72
+ function createEnvProxy(scope) {
73
+ return new Proxy(
74
+ {},
75
+ {
76
+ get(_target, property) {
77
+ if (typeof property === "symbol") {
78
+ return void 0;
79
+ }
80
+ const env2 = getEnvScope(scope);
81
+ return env2[property];
82
+ },
83
+ ownKeys() {
84
+ return Reflect.ownKeys(getEnvScope(scope));
85
+ },
86
+ getOwnPropertyDescriptor(_target, property) {
87
+ const env2 = getEnvScope(scope);
88
+ if (!(property in env2)) {
89
+ return void 0;
90
+ }
91
+ return {
92
+ enumerable: true,
93
+ configurable: true,
94
+ value: env2[property]
95
+ };
96
+ },
97
+ has(_target, property) {
98
+ return property in getEnvScope(scope);
99
+ }
100
+ }
101
+ );
102
+ }
103
+ __name(createEnvProxy, "createEnvProxy");
104
+ function getEnvScope(scope) {
105
+ if (scope === "server") {
106
+ assertServerEnvAccess();
107
+ }
108
+ return getCurrentEnv()[scope] || {};
109
+ }
110
+ __name(getEnvScope, "getEnvScope");
111
+ function assertServerEnvAccess() {
112
+ if (typeof window !== "undefined") {
113
+ throw new Error("Farm server env is not available in the browser. Use publicEnv.");
114
+ }
115
+ }
116
+ __name(assertServerEnvAccess, "assertServerEnvAccess");
117
+ function getInitialEnv() {
118
+ const injectedEnv = getInjectedEnv();
119
+ if (injectedEnv) {
120
+ return injectedEnv;
121
+ }
122
+ if (typeof window === "undefined" && farmEnvGlobal[FARM_ENV_SYMBOL]) {
123
+ return normalizeResolvedEnv(farmEnvGlobal[FARM_ENV_SYMBOL]);
124
+ }
125
+ return {
126
+ server: {},
127
+ public: getInjectedPublicEnv()
128
+ };
129
+ }
130
+ __name(getInitialEnv, "getInitialEnv");
131
+ function getCurrentEnv() {
132
+ if (typeof window === "undefined" && farmEnvGlobal[FARM_ENV_SYMBOL]) {
133
+ return farmEnvGlobal[FARM_ENV_SYMBOL];
134
+ }
135
+ return currentEnv;
136
+ }
137
+ __name(getCurrentEnv, "getCurrentEnv");
138
+ function getInjectedEnv() {
139
+ try {
140
+ if (typeof __FARM_ENV__ !== "undefined" && __FARM_ENV__) {
141
+ return normalizeResolvedEnv(__FARM_ENV__);
142
+ }
143
+ } catch {
144
+ }
145
+ return null;
146
+ }
147
+ __name(getInjectedEnv, "getInjectedEnv");
148
+ function getInjectedPublicEnv() {
149
+ try {
150
+ if (typeof __FARM_PUBLIC_ENV__ !== "undefined" && __FARM_PUBLIC_ENV__) {
151
+ return __FARM_PUBLIC_ENV__;
152
+ }
153
+ } catch {
154
+ }
155
+ return {};
156
+ }
157
+ __name(getInjectedPublicEnv, "getInjectedPublicEnv");
158
+ function normalizeResolvedEnv(env2) {
159
+ return {
160
+ server: isRecord(env2.server) ? env2.server : {},
161
+ public: isRecord(env2.public) ? env2.public : {}
162
+ };
163
+ }
164
+ __name(normalizeResolvedEnv, "normalizeResolvedEnv");
165
+ function isRecord(value) {
166
+ return !!value && typeof value === "object" && !Array.isArray(value);
167
+ }
168
+ __name(isRecord, "isRecord");
169
+ function getProcessEnv() {
170
+ if (typeof process !== "undefined" && process.env) {
171
+ return process.env;
172
+ }
173
+ return {};
174
+ }
175
+ __name(getProcessEnv, "getProcessEnv");
176
+
177
+ export {
178
+ resolveEnv,
179
+ setEnv,
180
+ getResolvedEnv,
181
+ getEnv,
182
+ getPublicEnv,
183
+ env,
184
+ serverEnv,
185
+ publicEnv
186
+ };
187
+ //# sourceMappingURL=chunk-RSKVYESE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/env.ts"],"sourcesContent":["export interface EnvSchema<TOutput = unknown> {\n parse(value: unknown): TOutput;\n}\n\nexport type EnvParser<TOutput = unknown> =\n | EnvSchema<TOutput>\n | ((value: string | undefined, context: { key: string; scope: \"server\" | \"public\" }) => TOutput);\n\nexport type EnvShape = Record<string, EnvParser<any>>;\n\nexport type InferEnvParser<TParser> =\n TParser extends EnvSchema<infer TOutput>\n ? TOutput\n : TParser extends (value: string | undefined, context: any) => infer TOutput\n ? TOutput\n : never;\n\nexport type InferEnvShape<TShape> = TShape extends EnvShape\n ? { [K in keyof TShape]: InferEnvParser<TShape[K]> }\n : {};\n\nexport interface FarmEnvConfig<\n TServer extends EnvShape = EnvShape,\n TPublic extends EnvShape = EnvShape,\n> {\n server?: TServer;\n public?: TPublic;\n}\n\nexport interface ResolvedFarmEnv<\n TServer extends Record<string, any> = Record<string, unknown>,\n TPublic extends Record<string, any> = Record<string, unknown>,\n> {\n server: TServer;\n public: TPublic;\n}\n\nexport type InferEnv<TConfig> =\n TConfig extends FarmEnvConfig<infer TServer, infer TPublic>\n ? ResolvedFarmEnv<InferEnvShape<TServer>, InferEnvShape<TPublic>>\n : ResolvedFarmEnv;\n\n/**\n * Augmented by generated src/farm-env.d.ts for project-specific autocomplete.\n */\nexport interface FarmEnvTypes {}\n\nexport type FarmServerEnv = FarmEnvTypes extends { server: infer TServer }\n ? TServer extends Record<string, any>\n ? TServer\n : Record<string, unknown>\n : Record<string, unknown>;\n\nexport type FarmPublicEnv = FarmEnvTypes extends { public: infer TPublic }\n ? TPublic extends Record<string, any>\n ? TPublic\n : Record<string, unknown>\n : Record<string, unknown>;\n\nexport type FarmTypedEnv = ResolvedFarmEnv<FarmServerEnv, FarmPublicEnv>;\n\ndeclare const __FARM_PUBLIC_ENV__: Record<string, unknown> | undefined;\ndeclare const __FARM_ENV__: ResolvedFarmEnv | undefined;\n\nconst FARM_ENV_SYMBOL = Symbol.for(\"farm.env\");\nconst farmEnvGlobal = globalThis as typeof globalThis & {\n [FARM_ENV_SYMBOL]?: ResolvedFarmEnv;\n};\nlet currentEnv: ResolvedFarmEnv = getInitialEnv();\n\nexport function resolveEnv<TConfig extends FarmEnvConfig<any, any> | undefined>(\n config: TConfig,\n source: Record<string, string | undefined> = getProcessEnv(),\n): InferEnv<NonNullable<TConfig>> {\n const resolved = {\n server: resolveEnvScope(config?.server, source, \"server\"),\n public: resolveEnvScope(config?.public, source, \"public\"),\n } as InferEnv<NonNullable<TConfig>>;\n\n return resolved;\n}\n\nexport function setEnv(env: ResolvedFarmEnv): void {\n currentEnv = normalizeResolvedEnv(env);\n if (typeof window === \"undefined\") {\n farmEnvGlobal[FARM_ENV_SYMBOL] = currentEnv;\n }\n}\n\nexport function getResolvedEnv<TEnv extends ResolvedFarmEnv = FarmTypedEnv>(): TEnv {\n return getCurrentEnv() as TEnv;\n}\n\nexport function getEnv<TServer extends Record<string, any> = FarmServerEnv>(): TServer;\nexport function getEnv<TKey extends Extract<keyof FarmServerEnv, string>>(\n key: TKey,\n): FarmServerEnv[TKey];\nexport function getEnv(key?: string): unknown {\n assertServerEnvAccess();\n if (key === undefined) {\n return getCurrentEnv().server;\n }\n\n return getCurrentEnv().server[key];\n}\n\nexport function getPublicEnv<TPublic extends Record<string, any> = FarmPublicEnv>(): TPublic;\nexport function getPublicEnv<TKey extends Extract<keyof FarmPublicEnv, string>>(\n key: TKey,\n): FarmPublicEnv[TKey];\nexport function getPublicEnv(key?: string): unknown {\n if (key === undefined) {\n return getCurrentEnv().public;\n }\n\n return getCurrentEnv().public[key];\n}\n\nexport const env = createEnvProxy(\"server\") as FarmServerEnv;\nexport const serverEnv = env;\nexport const publicEnv = createEnvProxy(\"public\") as FarmPublicEnv;\n\nfunction resolveEnvScope(\n shape: EnvShape | undefined,\n source: Record<string, string | undefined>,\n scope: \"server\" | \"public\",\n): Record<string, unknown> {\n if (!shape) {\n return {};\n }\n\n const resolved: Record<string, unknown> = {};\n\n for (const [key, parser] of Object.entries(shape)) {\n try {\n resolved[key] = parseEnvValue(parser, source[key], key, scope);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid ${scope} env \"${key}\": ${message}`);\n }\n }\n\n return resolved;\n}\n\nfunction parseEnvValue(\n parser: EnvParser<any>,\n value: string | undefined,\n key: string,\n scope: \"server\" | \"public\",\n): unknown {\n if (typeof parser === \"function\") {\n return parser(value, { key, scope });\n }\n\n if (parser && typeof parser.parse === \"function\") {\n return parser.parse(value);\n }\n\n throw new Error(\"expected a parser function or schema with parse()\");\n}\n\nfunction createEnvProxy(scope: \"server\" | \"public\"): Record<string, unknown> {\n return new Proxy(\n {},\n {\n get(_target, property) {\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n const env = getEnvScope(scope);\n return env[property];\n },\n ownKeys() {\n return Reflect.ownKeys(getEnvScope(scope));\n },\n getOwnPropertyDescriptor(_target, property) {\n const env = getEnvScope(scope);\n if (!(property in env)) {\n return undefined;\n }\n\n return {\n enumerable: true,\n configurable: true,\n value: env[property as keyof typeof env],\n };\n },\n has(_target, property) {\n return property in getEnvScope(scope);\n },\n },\n );\n}\n\nfunction getEnvScope(scope: \"server\" | \"public\"): Record<string, unknown> {\n if (scope === \"server\") {\n assertServerEnvAccess();\n }\n\n return getCurrentEnv()[scope] || {};\n}\n\nfunction assertServerEnvAccess(): void {\n if (typeof window !== \"undefined\") {\n throw new Error(\"Farm server env is not available in the browser. Use publicEnv.\");\n }\n}\n\nfunction getInitialEnv(): ResolvedFarmEnv {\n const injectedEnv = getInjectedEnv();\n if (injectedEnv) {\n return injectedEnv;\n }\n\n if (typeof window === \"undefined\" && farmEnvGlobal[FARM_ENV_SYMBOL]) {\n return normalizeResolvedEnv(farmEnvGlobal[FARM_ENV_SYMBOL]);\n }\n\n return {\n server: {},\n public: getInjectedPublicEnv(),\n };\n}\n\nfunction getCurrentEnv(): ResolvedFarmEnv {\n if (typeof window === \"undefined\" && farmEnvGlobal[FARM_ENV_SYMBOL]) {\n return farmEnvGlobal[FARM_ENV_SYMBOL];\n }\n\n return currentEnv;\n}\n\nfunction getInjectedEnv(): ResolvedFarmEnv | null {\n try {\n if (typeof __FARM_ENV__ !== \"undefined\" && __FARM_ENV__) {\n return normalizeResolvedEnv(__FARM_ENV__);\n }\n } catch {\n // The compile-time global is only defined in Farm server bundles.\n }\n\n return null;\n}\n\nfunction getInjectedPublicEnv(): Record<string, unknown> {\n try {\n if (typeof __FARM_PUBLIC_ENV__ !== \"undefined\" && __FARM_PUBLIC_ENV__) {\n return __FARM_PUBLIC_ENV__;\n }\n } catch {\n // The compile-time global is only defined in Farm browser bundles.\n }\n\n return {};\n}\n\nfunction normalizeResolvedEnv(env: ResolvedFarmEnv): ResolvedFarmEnv {\n return {\n server: isRecord(env.server) ? env.server : {},\n public: isRecord(env.public) ? env.public : {},\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction getProcessEnv(): Record<string, string | undefined> {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env;\n }\n\n return {};\n}\n"],"mappings":"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","names":["env"]}
@@ -0,0 +1,180 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/app-markdown.ts
6
+ import React from "react";
7
+ import { readFile } from "fs/promises";
8
+ import path from "path";
9
+ import { pathToFileURL } from "url";
10
+ function resolveMdxConfig(config) {
11
+ return {
12
+ components: config?.components,
13
+ markdownRoutes: config?.markdownRoutes ?? true,
14
+ className: config?.className ?? "farm-markdown"
15
+ };
16
+ }
17
+ __name(resolveMdxConfig, "resolveMdxConfig");
18
+ function isFarmMarkdownPageFile(filePath) {
19
+ return /(^|[/\\])page\.mdx?$/i.test(filePath);
20
+ }
21
+ __name(isFarmMarkdownPageFile, "isFarmMarkdownPageFile");
22
+ function normalizeFarmMarkdownRoutePath(pathname) {
23
+ const withoutExtension = pathname.replace(/\.md$/i, "");
24
+ const normalized = withoutExtension.startsWith("/") ? withoutExtension : `/${withoutExtension}`;
25
+ return normalized === "/index" ? "/" : normalized.replace(/\/+$/g, "") || "/";
26
+ }
27
+ __name(normalizeFarmMarkdownRoutePath, "normalizeFarmMarkdownRoutePath");
28
+ function parseMarkdownFrontmatter(source) {
29
+ if (!source.startsWith("---")) {
30
+ return { frontmatter: {}, body: source };
31
+ }
32
+ const endIndex = source.indexOf("\n---", 3);
33
+ if (endIndex === -1) {
34
+ return { frontmatter: {}, body: source };
35
+ }
36
+ const frontmatterSource = source.slice(3, endIndex).trim();
37
+ const closingFenceEnd = endIndex + "\n---".length;
38
+ const bodyStart = source.slice(closingFenceEnd, closingFenceEnd + 2) === "\r\n" ? closingFenceEnd + 2 : source[closingFenceEnd] === "\n" ? closingFenceEnd + 1 : closingFenceEnd;
39
+ const body = source.slice(bodyStart);
40
+ const frontmatter = {};
41
+ for (const line of frontmatterSource.split(/\r?\n/)) {
42
+ const separator = line.indexOf(":");
43
+ if (separator === -1) continue;
44
+ const key = line.slice(0, separator).trim();
45
+ const value = line.slice(separator + 1).trim().replace(/^["']|["']$/g, "");
46
+ if (key && value) frontmatter[key] = value;
47
+ }
48
+ return { frontmatter, body };
49
+ }
50
+ __name(parseMarkdownFrontmatter, "parseMarkdownFrontmatter");
51
+ function titleFromMarkdown(body, fallback) {
52
+ return body.match(/^#\s+(.+)$/m)?.[1]?.trim() || fallback;
53
+ }
54
+ __name(titleFromMarkdown, "titleFromMarkdown");
55
+ function createMarkdownMetadata(source, filePath) {
56
+ const { frontmatter, body } = parseMarkdownFrontmatter(source);
57
+ const routeTitle = titleFromMarkdown(body);
58
+ const title = frontmatter.title || routeTitle;
59
+ const description = frontmatter.description;
60
+ if (!title && !description) {
61
+ return void 0;
62
+ }
63
+ return {
64
+ ...title ? { title } : {},
65
+ ...description ? { description } : {},
66
+ source: filePath
67
+ };
68
+ }
69
+ __name(createMarkdownMetadata, "createMarkdownMetadata");
70
+ async function evaluateMdxSource(source, filePath) {
71
+ const [{ evaluate }, runtime, remarkGfmModule] = await Promise.all([
72
+ import("@mdx-js/mdx"),
73
+ import("react/jsx-runtime"),
74
+ import("remark-gfm")
75
+ ]);
76
+ const remarkGfm = remarkGfmModule.default;
77
+ return evaluate(source, {
78
+ ...runtime,
79
+ baseUrl: pathToFileURL(filePath),
80
+ remarkPlugins: [remarkGfm]
81
+ });
82
+ }
83
+ __name(evaluateMdxSource, "evaluateMdxSource");
84
+ function createFarmMarkdownRouteModule(input) {
85
+ const { body } = parseMarkdownFrontmatter(input.source);
86
+ const components = input.components || {};
87
+ const className = input.config?.className || "farm-markdown";
88
+ let evaluatedPromise;
89
+ const loadContent = /* @__PURE__ */ __name(async () => {
90
+ evaluatedPromise ?? (evaluatedPromise = evaluateMdxSource(body, input.filePath));
91
+ return evaluatedPromise;
92
+ }, "loadContent");
93
+ async function FarmMarkdownPage(props) {
94
+ const evaluated = await loadContent();
95
+ const MDXContent = evaluated.default;
96
+ return React.createElement(
97
+ "article",
98
+ { className, "data-farm-markdown-page": "" },
99
+ React.createElement(MDXContent, {
100
+ ...props,
101
+ components: {
102
+ ...components,
103
+ ...props?.components || {}
104
+ }
105
+ })
106
+ );
107
+ }
108
+ __name(FarmMarkdownPage, "FarmMarkdownPage");
109
+ return {
110
+ default: FarmMarkdownPage,
111
+ metadata: createMarkdownMetadata(input.source, input.filePath),
112
+ source: input.source
113
+ };
114
+ }
115
+ __name(createFarmMarkdownRouteModule, "createFarmMarkdownRouteModule");
116
+ async function createFarmMarkdownRouteModuleFromFile(filePath, options = {}) {
117
+ const source = await readFile(filePath, "utf8");
118
+ return createFarmMarkdownRouteModule({
119
+ source,
120
+ filePath,
121
+ components: options.components,
122
+ config: options.config
123
+ });
124
+ }
125
+ __name(createFarmMarkdownRouteModuleFromFile, "createFarmMarkdownRouteModuleFromFile");
126
+ async function loadFarmMdxComponents(config, options) {
127
+ const configured = config?.components;
128
+ if (!configured) {
129
+ return {};
130
+ }
131
+ if (typeof configured !== "string") {
132
+ return configured;
133
+ }
134
+ const modulePath = path.isAbsolute(configured) ? configured : path.join(options.root, configured);
135
+ const mod = options.loadModule ? await options.loadModule(modulePath) : await import(pathToFileURL(modulePath).href);
136
+ const maybeModule = mod;
137
+ return maybeModule.components || maybeModule.default || {};
138
+ }
139
+ __name(loadFarmMdxComponents, "loadFarmMdxComponents");
140
+ async function createFarmMarkdownSourceResponse(options) {
141
+ if (options.request.method !== "GET" && options.request.method !== "HEAD") {
142
+ return null;
143
+ }
144
+ if (options.config?.markdownRoutes === false) {
145
+ return null;
146
+ }
147
+ const url = new URL(options.request.url);
148
+ if (!url.pathname.endsWith(".md")) {
149
+ return null;
150
+ }
151
+ const targetPathname = normalizeFarmMarkdownRoutePath(url.pathname);
152
+ const source = await options.resolveSource(targetPathname);
153
+ if (!source) {
154
+ return null;
155
+ }
156
+ return new Response(options.request.method === "HEAD" ? null : source.source, {
157
+ status: 200,
158
+ headers: {
159
+ "Content-Type": "text/markdown; charset=utf-8",
160
+ "Cache-Control": "public, s-maxage=60, stale-while-revalidate=300",
161
+ "X-Farm-Markdown-Route": targetPathname,
162
+ "X-Farm-Markdown-Source": source.filePath
163
+ }
164
+ });
165
+ }
166
+ __name(createFarmMarkdownSourceResponse, "createFarmMarkdownSourceResponse");
167
+
168
+ export {
169
+ resolveMdxConfig,
170
+ isFarmMarkdownPageFile,
171
+ normalizeFarmMarkdownRoutePath,
172
+ parseMarkdownFrontmatter,
173
+ titleFromMarkdown,
174
+ createMarkdownMetadata,
175
+ createFarmMarkdownRouteModule,
176
+ createFarmMarkdownRouteModuleFromFile,
177
+ loadFarmMdxComponents,
178
+ createFarmMarkdownSourceResponse
179
+ };
180
+ //# sourceMappingURL=chunk-S2XHZS7W.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app-markdown.ts"],"sourcesContent":["import React from \"react\";\nimport { readFile } from \"fs/promises\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport type { Metadata, RouteModule } from \"./types\";\n\nexport type FarmMdxComponent = React.ComponentType<any> | keyof React.JSX.IntrinsicElements;\nexport type FarmMdxComponents = Record<string, FarmMdxComponent>;\n\nexport interface FarmMdxUserConfig {\n /**\n * Component map or module path that exports `components` or a default component map.\n * Relative paths resolve from the project root.\n */\n components?: string | FarmMdxComponents;\n /**\n * Serve source-authored markdown pages at `/route.md`.\n * Enabled by default for `page.md` and `page.mdx`.\n */\n markdownRoutes?: boolean;\n /**\n * Class name used for the wrapper around rendered markdown content.\n */\n className?: string;\n}\n\nexport interface FarmMdxResolvedConfig {\n components?: string | FarmMdxComponents;\n markdownRoutes: boolean;\n className: string;\n}\n\nexport interface FarmMarkdownPageSource {\n source: string;\n filePath: string;\n}\n\nexport interface FarmMarkdownPageModuleInput extends FarmMarkdownPageSource {\n components?: FarmMdxComponents;\n config?: FarmMdxResolvedConfig;\n}\n\nexport function resolveMdxConfig(config: FarmMdxUserConfig | undefined): FarmMdxResolvedConfig {\n return {\n components: config?.components,\n markdownRoutes: config?.markdownRoutes ?? true,\n className: config?.className ?? \"farm-markdown\",\n };\n}\n\nexport function isFarmMarkdownPageFile(filePath: string): boolean {\n return /(^|[/\\\\])page\\.mdx?$/i.test(filePath);\n}\n\nexport function normalizeFarmMarkdownRoutePath(pathname: string): string {\n const withoutExtension = pathname.replace(/\\.md$/i, \"\");\n const normalized = withoutExtension.startsWith(\"/\") ? withoutExtension : `/${withoutExtension}`;\n return normalized === \"/index\" ? \"/\" : normalized.replace(/\\/+$/g, \"\") || \"/\";\n}\n\nexport function parseMarkdownFrontmatter(source: string): {\n frontmatter: Record<string, string>;\n body: string;\n} {\n if (!source.startsWith(\"---\")) {\n return { frontmatter: {}, body: source };\n }\n\n const endIndex = source.indexOf(\"\\n---\", 3);\n if (endIndex === -1) {\n return { frontmatter: {}, body: source };\n }\n\n const frontmatterSource = source.slice(3, endIndex).trim();\n const closingFenceEnd = endIndex + \"\\n---\".length;\n const bodyStart =\n source.slice(closingFenceEnd, closingFenceEnd + 2) === \"\\r\\n\"\n ? closingFenceEnd + 2\n : source[closingFenceEnd] === \"\\n\"\n ? closingFenceEnd + 1\n : closingFenceEnd;\n const body = source.slice(bodyStart);\n const frontmatter: Record<string, string> = {};\n\n for (const line of frontmatterSource.split(/\\r?\\n/)) {\n const separator = line.indexOf(\":\");\n if (separator === -1) continue;\n const key = line.slice(0, separator).trim();\n const value = line\n .slice(separator + 1)\n .trim()\n .replace(/^[\"']|[\"']$/g, \"\");\n if (key && value) frontmatter[key] = value;\n }\n\n return { frontmatter, body };\n}\n\nexport function titleFromMarkdown(body: string, fallback?: string): string | undefined {\n return body.match(/^#\\s+(.+)$/m)?.[1]?.trim() || fallback;\n}\n\nexport function createMarkdownMetadata(\n source: string,\n filePath: string,\n): (Metadata & Record<string, any>) | undefined {\n const { frontmatter, body } = parseMarkdownFrontmatter(source);\n const routeTitle = titleFromMarkdown(body);\n const title = frontmatter.title || routeTitle;\n const description = frontmatter.description;\n\n if (!title && !description) {\n return undefined;\n }\n\n return {\n ...(title ? { title } : {}),\n ...(description ? { description } : {}),\n source: filePath,\n };\n}\n\nasync function evaluateMdxSource(source: string, filePath: string) {\n const [{ evaluate }, runtime, remarkGfmModule] = await Promise.all([\n import(\"@mdx-js/mdx\"),\n import(\"react/jsx-runtime\"),\n import(\"remark-gfm\"),\n ]);\n const remarkGfm = remarkGfmModule.default;\n\n return evaluate(source, {\n ...runtime,\n baseUrl: pathToFileURL(filePath),\n remarkPlugins: [remarkGfm],\n });\n}\n\nexport function createFarmMarkdownRouteModule(\n input: FarmMarkdownPageModuleInput,\n): RouteModule & { source: string } {\n const { body } = parseMarkdownFrontmatter(input.source);\n const components = input.components || {};\n const className = input.config?.className || \"farm-markdown\";\n let evaluatedPromise: Promise<{ default: React.ComponentType<any> }> | undefined;\n\n const loadContent = async () => {\n evaluatedPromise ??= evaluateMdxSource(body, input.filePath) as Promise<{\n default: React.ComponentType<any>;\n }>;\n return evaluatedPromise;\n };\n\n async function FarmMarkdownPage(props: any) {\n const evaluated = await loadContent();\n const MDXContent = evaluated.default;\n return React.createElement(\n \"article\",\n { className, \"data-farm-markdown-page\": \"\" },\n React.createElement(MDXContent, {\n ...props,\n components: {\n ...components,\n ...(props?.components || {}),\n },\n }),\n );\n }\n\n return {\n default: FarmMarkdownPage as unknown as RouteModule[\"default\"],\n metadata: createMarkdownMetadata(input.source, input.filePath),\n source: input.source,\n };\n}\n\nexport async function createFarmMarkdownRouteModuleFromFile(\n filePath: string,\n options: {\n components?: FarmMdxComponents;\n config?: FarmMdxResolvedConfig;\n } = {},\n) {\n const source = await readFile(filePath, \"utf8\");\n return createFarmMarkdownRouteModule({\n source,\n filePath,\n components: options.components,\n config: options.config,\n });\n}\n\nexport async function loadFarmMdxComponents(\n config: FarmMdxResolvedConfig | undefined,\n options: {\n root: string;\n loadModule?: (modulePath: string) => Promise<unknown>;\n },\n): Promise<FarmMdxComponents> {\n const configured = config?.components;\n if (!configured) {\n return {};\n }\n\n if (typeof configured !== \"string\") {\n return configured;\n }\n\n const modulePath = path.isAbsolute(configured) ? configured : path.join(options.root, configured);\n const mod = options.loadModule\n ? await options.loadModule(modulePath)\n : await import(pathToFileURL(modulePath).href);\n const maybeModule = mod as {\n components?: FarmMdxComponents;\n default?: FarmMdxComponents;\n };\n\n return maybeModule.components || maybeModule.default || {};\n}\n\nexport async function createFarmMarkdownSourceResponse(options: {\n request: Request;\n config?: FarmMdxResolvedConfig;\n resolveSource: (\n pathname: string,\n ) => Promise<FarmMarkdownPageSource | null> | FarmMarkdownPageSource | null;\n}): Promise<Response | null> {\n if (options.request.method !== \"GET\" && options.request.method !== \"HEAD\") {\n return null;\n }\n if (options.config?.markdownRoutes === false) {\n return null;\n }\n\n const url = new URL(options.request.url);\n if (!url.pathname.endsWith(\".md\")) {\n return null;\n }\n\n const targetPathname = normalizeFarmMarkdownRoutePath(url.pathname);\n const source = await options.resolveSource(targetPathname);\n if (!source) {\n return null;\n }\n\n return new Response(options.request.method === \"HEAD\" ? null : source.source, {\n status: 200,\n headers: {\n \"Content-Type\": \"text/markdown; charset=utf-8\",\n \"Cache-Control\": \"public, s-maxage=60, stale-while-revalidate=300\",\n \"X-Farm-Markdown-Route\": targetPathname,\n \"X-Farm-Markdown-Source\": source.filePath,\n },\n });\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,28 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
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
+ __name(createFarmServerQueryResult, "createFarmServerQueryResult");
17
+ function isFarmServerQueryResult(value) {
18
+ if (!value || typeof value !== "object") return false;
19
+ const metadata = value.__farmServerQuery;
20
+ return metadata?.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
+ __name(isFarmServerQueryResult, "isFarmServerQueryResult");
23
+
24
+ export {
25
+ createFarmServerQueryResult,
26
+ isFarmServerQueryResult
27
+ };
28
+ //# sourceMappingURL=chunk-SCFX4UTD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server-query-protocol.ts"],"sourcesContent":["export const FARM_SERVER_QUERY_RESULT_VERSION = 1 as const;\n\nexport type FarmServerQueryResult<TData> = {\n __farmServerQuery: {\n version: typeof FARM_SERVER_QUERY_RESULT_VERSION;\n key: string;\n staleTime: number | false;\n updatedAt: number;\n };\n data: TData;\n};\n\nexport function createFarmServerQueryResult<TData>(\n data: TData,\n metadata: Omit<FarmServerQueryResult<TData>[\"__farmServerQuery\"], \"version\">,\n): FarmServerQueryResult<TData> {\n return {\n __farmServerQuery: {\n version: FARM_SERVER_QUERY_RESULT_VERSION,\n ...metadata,\n },\n data,\n };\n}\n\nexport function isFarmServerQueryResult(value: unknown): value is FarmServerQueryResult<unknown> {\n if (!value || typeof value !== \"object\") return false;\n\n const metadata = (value as Partial<FarmServerQueryResult<unknown>>).__farmServerQuery;\n return (\n metadata?.version === FARM_SERVER_QUERY_RESULT_VERSION &&\n typeof metadata.key === \"string\" &&\n (metadata.staleTime === false || typeof metadata.staleTime === \"number\") &&\n typeof metadata.updatedAt === \"number\" &&\n \"data\" in value\n );\n}\n"],"mappings":";;;;;AAAO,IAAM,mCAAmC;AAYzC,SAAS,4BACd,MACA,UAC8B;AAC9B,SAAO;AAAA,IACL,mBAAmB;AAAA,MACjB,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAXgB;AAaT,SAAS,wBAAwB,OAAyD;AAC/F,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAEhD,QAAM,WAAY,MAAkD;AACpE,SACE,UAAU,YAAY,oCACtB,OAAO,SAAS,QAAQ,aACvB,SAAS,cAAc,SAAS,OAAO,SAAS,cAAc,aAC/D,OAAO,SAAS,cAAc,YAC9B,UAAU;AAEd;AAXgB;","names":[]}
@@ -0,0 +1,66 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/build/production-vite.ts
6
+ function canUseRolldownForRouteDiscovery(viteConfig) {
7
+ return !viteConfig || Object.keys(viteConfig).length === 0;
8
+ }
9
+ __name(canUseRolldownForRouteDiscovery, "canUseRolldownForRouteDiscovery");
10
+ function supportsRolldownVite(nodeVersion = process.versions.node) {
11
+ const [major = 0, minor = 0] = nodeVersion.split(".").map(Number);
12
+ return major === 20 && minor >= 19 || major > 22 || major === 22 && minor >= 12;
13
+ }
14
+ __name(supportsRolldownVite, "supportsRolldownVite");
15
+ function requestedProductionViteBuilder() {
16
+ const requested = process.env.FARM_VITE_BUILDER?.trim().toLowerCase();
17
+ if (!requested) return void 0;
18
+ if (requested === "rollup" || requested === "rolldown") return requested;
19
+ throw new Error('FARM_VITE_BUILDER must be either "rolldown" or "rollup"');
20
+ }
21
+ __name(requestedProductionViteBuilder, "requestedProductionViteBuilder");
22
+ async function loadRollupVite() {
23
+ const runtime = await import("vite");
24
+ return {
25
+ build: runtime.build,
26
+ createServer: runtime.createServer,
27
+ loadEnv: runtime.loadEnv,
28
+ builder: "rollup"
29
+ };
30
+ }
31
+ __name(loadRollupVite, "loadRollupVite");
32
+ async function loadFarmProductionVite() {
33
+ const requested = requestedProductionViteBuilder();
34
+ if (requested === "rollup" || !supportsRolldownVite()) {
35
+ if (requested === "rolldown") {
36
+ throw new Error(
37
+ "FARM_VITE_BUILDER=rolldown requires Node 20.19+, Node 22.12+, or a newer release"
38
+ );
39
+ }
40
+ return loadRollupVite();
41
+ }
42
+ try {
43
+ const runtime = await import("vite-rolldown");
44
+ return {
45
+ build: runtime.build,
46
+ createServer: runtime.createServer,
47
+ loadEnv: runtime.loadEnv,
48
+ builder: "rolldown"
49
+ };
50
+ } catch (error) {
51
+ if (requested === "rolldown") {
52
+ const detail = error instanceof Error ? `: ${error.message}` : "";
53
+ throw new Error(
54
+ `FARM_VITE_BUILDER=rolldown was requested, but the optional Vite Rolldown runtime could not be loaded${detail}`
55
+ );
56
+ }
57
+ return loadRollupVite();
58
+ }
59
+ }
60
+ __name(loadFarmProductionVite, "loadFarmProductionVite");
61
+
62
+ export {
63
+ canUseRolldownForRouteDiscovery,
64
+ loadFarmProductionVite
65
+ };
66
+ //# sourceMappingURL=chunk-SL6HTIOK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/build/production-vite.ts"],"sourcesContent":["import type {\n build as viteBuild,\n createServer as createViteServer,\n loadEnv as viteLoadEnv,\n} from \"vite\";\n\nexport type FarmProductionViteBuilder = \"rollup\" | \"rolldown\";\n\nexport interface FarmProductionViteRuntime {\n build: typeof viteBuild;\n createServer: typeof createViteServer;\n loadEnv: typeof viteLoadEnv;\n builder: FarmProductionViteBuilder;\n}\n\nexport function canUseRolldownForRouteDiscovery(viteConfig: object | undefined): boolean {\n return !viteConfig || Object.keys(viteConfig).length === 0;\n}\n\nexport function supportsRolldownVite(nodeVersion = process.versions.node): boolean {\n const [major = 0, minor = 0] = nodeVersion.split(\".\").map(Number);\n return (major === 20 && minor >= 19) || major > 22 || (major === 22 && minor >= 12);\n}\n\nfunction requestedProductionViteBuilder(): FarmProductionViteBuilder | undefined {\n const requested = process.env.FARM_VITE_BUILDER?.trim().toLowerCase();\n if (!requested) return undefined;\n if (requested === \"rollup\" || requested === \"rolldown\") return requested;\n throw new Error('FARM_VITE_BUILDER must be either \"rolldown\" or \"rollup\"');\n}\n\nasync function loadRollupVite(): Promise<FarmProductionViteRuntime> {\n const runtime = await import(\"vite\");\n return {\n build: runtime.build,\n createServer: runtime.createServer,\n loadEnv: runtime.loadEnv,\n builder: \"rollup\",\n };\n}\n\n/**\n * Prefer Vite's Rolldown-powered production builder on supported Node releases.\n * Vite 5 remains the compatibility path for Node 18, --no-optional installs,\n * and projects that explicitly request Rollup.\n */\nexport async function loadFarmProductionVite(): Promise<FarmProductionViteRuntime> {\n const requested = requestedProductionViteBuilder();\n if (requested === \"rollup\" || !supportsRolldownVite()) {\n if (requested === \"rolldown\") {\n throw new Error(\n \"FARM_VITE_BUILDER=rolldown requires Node 20.19+, Node 22.12+, or a newer release\",\n );\n }\n return loadRollupVite();\n }\n\n try {\n const runtime = (await import(\"vite-rolldown\")) as unknown as typeof import(\"vite\");\n return {\n build: runtime.build,\n createServer: runtime.createServer,\n loadEnv: runtime.loadEnv,\n builder: \"rolldown\",\n };\n } catch (error) {\n if (requested === \"rolldown\") {\n const detail = error instanceof Error ? `: ${error.message}` : \"\";\n throw new Error(\n `FARM_VITE_BUILDER=rolldown was requested, but the optional Vite Rolldown runtime could not be loaded${detail}`,\n );\n }\n return loadRollupVite();\n }\n}\n"],"mappings":";;;;;AAeO,SAAS,gCAAgC,YAAyC;AACvF,SAAO,CAAC,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AAC3D;AAFgB;AAIT,SAAS,qBAAqB,cAAc,QAAQ,SAAS,MAAe;AACjF,QAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,YAAY,MAAM,GAAG,EAAE,IAAI,MAAM;AAChE,SAAQ,UAAU,MAAM,SAAS,MAAO,QAAQ,MAAO,UAAU,MAAM,SAAS;AAClF;AAHgB;AAKhB,SAAS,iCAAwE;AAC/E,QAAM,YAAY,QAAQ,IAAI,mBAAmB,KAAK,EAAE,YAAY;AACpE,MAAI,CAAC,UAAW,QAAO;AACvB,MAAI,cAAc,YAAY,cAAc,WAAY,QAAO;AAC/D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AALS;AAOT,eAAe,iBAAqD;AAClE,QAAM,UAAU,MAAM,OAAO,MAAM;AACnC,SAAO;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,cAAc,QAAQ;AAAA,IACtB,SAAS,QAAQ;AAAA,IACjB,SAAS;AAAA,EACX;AACF;AARe;AAef,eAAsB,yBAA6D;AACjF,QAAM,YAAY,+BAA+B;AACjD,MAAI,cAAc,YAAY,CAAC,qBAAqB,GAAG;AACrD,QAAI,cAAc,YAAY;AAC5B,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe;AAAA,EACxB;AAEA,MAAI;AACF,UAAM,UAAW,MAAM,OAAO,eAAe;AAC7C,WAAO;AAAA,MACL,OAAO,QAAQ;AAAA,MACf,cAAc,QAAQ;AAAA,MACtB,SAAS,QAAQ;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,EACF,SAAS,OAAO;AACd,QAAI,cAAc,YAAY;AAC5B,YAAM,SAAS,iBAAiB,QAAQ,KAAK,MAAM,OAAO,KAAK;AAC/D,YAAM,IAAI;AAAA,QACR,uGAAuG,MAAM;AAAA,MAC/G;AAAA,IACF;AACA,WAAO,eAAe;AAAA,EACxB;AACF;AA5BsB;","names":[]}