@farm.js/core 0.1.16 → 0.1.18

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 (390) hide show
  1. package/dist/after.cjs +12 -225
  2. package/dist/agent-runtime.cjs +83 -2800
  3. package/dist/agent-runtime.d.mts +3 -3
  4. package/dist/agent-runtime.d.ts +3 -3
  5. package/dist/api/client.cjs +17 -4026
  6. package/dist/api/client.d.mts +3 -3
  7. package/dist/api/client.d.ts +3 -3
  8. package/dist/api/client.mjs +3 -3
  9. package/dist/api/route-manager.cjs +34 -4317
  10. package/dist/api/route-manager.d.mts +3 -3
  11. package/dist/api/route-manager.d.ts +3 -3
  12. package/dist/api/route-manager.mjs +5 -5
  13. package/dist/api/runtime.cjs +29 -2660
  14. package/dist/api/runtime.d.mts +3 -3
  15. package/dist/api/runtime.d.ts +3 -3
  16. package/dist/api/runtime.mjs +6 -3
  17. package/dist/{api-client-B-n3pm_Q.d.mts → api-client-Cx54IR5g.d.mts} +2 -2
  18. package/dist/{api-client-C0_NZEBl.d.ts → api-client-DykpaKcY.d.ts} +2 -2
  19. package/dist/api.cjs +88 -8361
  20. package/dist/api.d.mts +5 -5
  21. package/dist/api.d.ts +5 -5
  22. package/dist/api.mjs +8 -8
  23. package/dist/{app-AyjEsCBq.d.ts → app-BHY_10Lm.d.ts} +3 -3
  24. package/dist/{app-CYPHeOo_.d.mts → app-BMk0do23.d.mts} +3 -3
  25. package/dist/app-markdown.cjs +39 -280
  26. package/dist/app-markdown.d.mts +4 -4
  27. package/dist/app-markdown.d.ts +4 -4
  28. package/dist/app-markdown.mjs +3 -3
  29. package/dist/cache.cjs +38 -1526
  30. package/dist/cache.d.mts +11 -1
  31. package/dist/cache.d.ts +11 -1
  32. package/dist/cache.mjs +1 -1
  33. package/dist/chunk-22GUSVNJ.cjs +351 -0
  34. package/dist/chunk-2CQ74SP6.cjs +13 -0
  35. package/dist/chunk-2SJ4RQ6P.cjs +57 -0
  36. package/dist/chunk-3376ZTRC.cjs +1 -0
  37. package/dist/{chunk-IL5RWYK7.mjs → chunk-3XG26Z3J.mjs} +1 -1
  38. package/dist/{chunk-7HDZYYS4.mjs → chunk-4OOBRCJX.mjs} +27 -5
  39. package/dist/chunk-4PNUXIVU.cjs +472 -0
  40. package/dist/chunk-4PPEPOZZ.cjs +21 -0
  41. package/dist/chunk-4ZFL5GFN.cjs +520 -0
  42. package/dist/{chunk-B76DT5Y6.mjs → chunk-57J3Y7Y3.mjs} +1 -1
  43. package/dist/chunk-5OVTOKGH.cjs +65 -0
  44. package/dist/chunk-5QIKR7RR.cjs +224 -0
  45. package/dist/{chunk-MOQNHLTS.mjs → chunk-5QOEPUYE.mjs} +5 -2
  46. package/dist/{chunk-HKLRP3BN.mjs → chunk-5SPPCN5J.mjs} +1 -1
  47. package/dist/chunk-5ZSWG4UX.cjs +127 -0
  48. package/dist/chunk-62YJ2IEB.cjs +238 -0
  49. package/dist/chunk-6EODJYCX.cjs +183 -0
  50. package/dist/chunk-6EXBPJ24.cjs +434 -0
  51. package/dist/chunk-6QQDAAAZ.cjs +38 -0
  52. package/dist/chunk-6V4TDWEC.cjs +455 -0
  53. package/dist/{chunk-LUC2FAGW.mjs → chunk-6VQIKZZO.mjs} +1 -1
  54. package/dist/chunk-72ADZ6GQ.cjs +19 -0
  55. package/dist/chunk-75BRBIFP.cjs +172 -0
  56. package/dist/{chunk-7ZWL7XOU.mjs → chunk-76DG3LF3.mjs} +1 -1
  57. package/dist/chunk-7W3CPVXS.cjs +24 -0
  58. package/dist/chunk-A6WIQH5Z.cjs +31 -0
  59. package/dist/{chunk-EWDK36MM.mjs → chunk-A72YEUZ3.mjs} +1 -1
  60. package/dist/chunk-AFOD3LYZ.cjs +377 -0
  61. package/dist/chunk-AMDMVWMI.cjs +39 -0
  62. package/dist/chunk-AORPIPNB.cjs +552 -0
  63. package/dist/chunk-ARJWXNQL.cjs +256 -0
  64. package/dist/{chunk-ZHOIQC6U.mjs → chunk-ATERBVHQ.mjs} +2 -2
  65. package/dist/chunk-AWRISO2H.cjs +2199 -0
  66. package/dist/chunk-AYJR42WX.cjs +711 -0
  67. package/dist/chunk-B4CH33IG.cjs +644 -0
  68. package/dist/chunk-BIDYX3SL.cjs +91 -0
  69. package/dist/chunk-BSTRERPP.cjs +40 -0
  70. package/dist/chunk-BYODCJD6.cjs +663 -0
  71. package/dist/chunk-C3VRMB6H.cjs +85 -0
  72. package/dist/chunk-C5GUTBZK.cjs +173 -0
  73. package/dist/chunk-CIAGU2X4.cjs +337 -0
  74. package/dist/chunk-CMGMGHUZ.cjs +27 -0
  75. package/dist/chunk-CXP5U3RW.cjs +54 -0
  76. package/dist/chunk-D2ULAULS.cjs +166 -0
  77. package/dist/chunk-D7JTOLFK.cjs +285 -0
  78. package/dist/chunk-DVM4FKZL.cjs +169 -0
  79. package/dist/chunk-DYEJQTDN.cjs +49 -0
  80. package/dist/chunk-E2BMSZ2W.cjs +151 -0
  81. package/dist/chunk-E3UK5IIB.cjs +593 -0
  82. package/dist/chunk-EM6SBQKM.cjs +470 -0
  83. package/dist/{chunk-27JNCYEK.mjs → chunk-EN7WTEAY.mjs} +2 -2
  84. package/dist/{chunk-IGO2HEV7.mjs → chunk-F6SJAKFJ.mjs} +62 -28
  85. package/dist/{chunk-GSDIZACQ.mjs → chunk-FG5H2VCJ.mjs} +2 -2
  86. package/dist/chunk-FJSWYIR7.cjs +482 -0
  87. package/dist/chunk-FK6GO24V.cjs +54 -0
  88. package/dist/chunk-FXUUWYAX.cjs +654 -0
  89. package/dist/chunk-G3HRIVEY.cjs +395 -0
  90. package/dist/chunk-G643DQCH.cjs +13 -0
  91. package/dist/chunk-G7HXGLEC.cjs +175 -0
  92. package/dist/chunk-GDSHDTJ4.cjs +152 -0
  93. package/dist/chunk-GNEO2XOF.cjs +2040 -0
  94. package/dist/{chunk-NHHKW2T6.mjs → chunk-GYKJCFTS.mjs} +170 -52
  95. package/dist/chunk-H6G5INWM.cjs +1094 -0
  96. package/dist/chunk-HBTUGXHS.cjs +180 -0
  97. package/dist/chunk-HREOKQWT.cjs +45 -0
  98. package/dist/chunk-I4J452B7.cjs +435 -0
  99. package/dist/chunk-I57LW5VZ.cjs +94 -0
  100. package/dist/chunk-I7PUUDGY.cjs +389 -0
  101. package/dist/chunk-IAMRBF3Z.cjs +86 -0
  102. package/dist/chunk-IKNRN4VS.cjs +14214 -0
  103. package/dist/chunk-IQXFRNY2.cjs +169 -0
  104. package/dist/chunk-IXTFU4PL.cjs +2355 -0
  105. package/dist/chunk-J2OP5GG3.cjs +725 -0
  106. package/dist/chunk-J3LOGE4T.cjs +42 -0
  107. package/dist/chunk-J7FSKED3.cjs +93 -0
  108. package/dist/chunk-JDNHKPTD.cjs +22 -0
  109. package/dist/chunk-JSROZYYO.cjs +164 -0
  110. package/dist/chunk-K6FNHVDR.cjs +696 -0
  111. package/dist/chunk-KGZIORNL.cjs +43 -0
  112. package/dist/{chunk-LZK5CXDW.mjs → chunk-KLSSO6YD.mjs} +2 -2
  113. package/dist/{chunk-TYVVIQ5M.mjs → chunk-KPNVGRBL.mjs} +32 -25
  114. package/dist/chunk-KR6CKSXT.cjs +15 -0
  115. package/dist/chunk-KROWKCUH.cjs +185 -0
  116. package/dist/chunk-KVFPGF2M.cjs +46 -0
  117. package/dist/{chunk-KUO3GBPK.mjs → chunk-L6V3P73N.mjs} +1 -1
  118. package/dist/chunk-LCCBO7PJ.cjs +46 -0
  119. package/dist/chunk-LIUGYUX3.cjs +22 -0
  120. package/dist/chunk-LTNGXMQ6.cjs +55 -0
  121. package/dist/chunk-M2L4MYDQ.cjs +14 -0
  122. package/dist/chunk-MCJLA63J.cjs +1 -0
  123. package/dist/chunk-MKB2EGIR.cjs +148 -0
  124. package/dist/chunk-MQ3H6LT5.cjs +202 -0
  125. package/dist/chunk-MT763TDW.cjs +43 -0
  126. package/dist/chunk-MWSK6C4J.cjs +18 -0
  127. package/dist/chunk-MWWVKDW3.cjs +169 -0
  128. package/dist/{chunk-KTGFMHET.mjs → chunk-N6UROPT7.mjs} +1 -1
  129. package/dist/chunk-NO3WWW3N.cjs +192 -0
  130. package/dist/{chunk-NDD2YVGU.mjs → chunk-NRVGEI5I.mjs} +10 -3
  131. package/dist/chunk-NV3A5DXM.cjs +862 -0
  132. package/dist/chunk-NWOD6NIT.cjs +9 -0
  133. package/dist/chunk-NZKJGRB3.cjs +230 -0
  134. package/dist/chunk-OAVTUMJP.cjs +1496 -0
  135. package/dist/chunk-OHY2ZWUG.cjs +25 -0
  136. package/dist/chunk-OI6CMLWX.cjs +47 -0
  137. package/dist/chunk-OIEOCXKG.cjs +453 -0
  138. package/dist/chunk-OWOUTKIJ.cjs +558 -0
  139. package/dist/chunk-OX6O6WVA.cjs +74 -0
  140. package/dist/chunk-OXSIH4D6.cjs +476 -0
  141. package/dist/chunk-OYEUREB6.cjs +35 -0
  142. package/dist/chunk-PCOTGFSM.cjs +139 -0
  143. package/dist/chunk-PZYCPSCC.cjs +35 -0
  144. package/dist/chunk-QBK2AA4U.cjs +445 -0
  145. package/dist/chunk-QBPXNZGV.cjs +487 -0
  146. package/dist/{chunk-IXTEENRS.mjs → chunk-QGVJVSNX.mjs} +5 -5
  147. package/dist/chunk-QNPEUFHQ.cjs +27 -0
  148. package/dist/chunk-QZRVZSPN.cjs +236 -0
  149. package/dist/chunk-R5A5KNVX.cjs +20 -0
  150. package/dist/chunk-R5JIFR6B.cjs +42 -0
  151. package/dist/chunk-R6AIILII.cjs +193 -0
  152. package/dist/chunk-RG3ZOTG5.cjs +34 -0
  153. package/dist/chunk-ROUTX2E5.cjs +390 -0
  154. package/dist/chunk-RTHIVJ2G.cjs +54 -0
  155. package/dist/chunk-S3A45T7F.cjs +166 -0
  156. package/dist/chunk-S3JO3N4H.cjs +17 -0
  157. package/dist/chunk-SK35NQKK.cjs +27 -0
  158. package/dist/chunk-SU7MH53P.cjs +180 -0
  159. package/dist/chunk-SVRTJOUF.cjs +113 -0
  160. package/dist/chunk-SWN467MP.cjs +18 -0
  161. package/dist/{chunk-6SCB2MXB.mjs → chunk-SXHV42UQ.mjs} +16 -1
  162. package/dist/{chunk-OWTIOHON.mjs → chunk-SYGGPS4A.mjs} +2 -2
  163. package/dist/chunk-SYQ3MOWW.cjs +73 -0
  164. package/dist/chunk-T5CERMEH.cjs +417 -0
  165. package/dist/chunk-TFAXUHWX.cjs +206 -0
  166. package/dist/chunk-TIWHTW3Q.cjs +24 -0
  167. package/dist/chunk-TKJZFIML.cjs +20 -0
  168. package/dist/chunk-TKNSDBBN.cjs +193 -0
  169. package/dist/{chunk-NC333MFA.mjs → chunk-TSWW5BVH.mjs} +7 -4
  170. package/dist/chunk-TWGMSEHX.cjs +525 -0
  171. package/dist/chunk-TYQUSXUG.cjs +1357 -0
  172. package/dist/chunk-U4KT7QP3.cjs +23 -0
  173. package/dist/{chunk-LK6FGAQR.mjs → chunk-UDBJCUPA.mjs} +7 -4
  174. package/dist/chunk-UJ2C4ICS.cjs +277 -0
  175. package/dist/chunk-UN5GHC5V.cjs +10244 -0
  176. package/dist/chunk-UQZ4AYTH.cjs +168 -0
  177. package/dist/chunk-US2QVW3E.cjs +36 -0
  178. package/dist/{chunk-NUD6XBMO.mjs → chunk-UTBVHYS3.mjs} +2 -2
  179. package/dist/{chunk-76MNRHTS.mjs → chunk-UUYF3CHN.mjs} +2 -2
  180. package/dist/chunk-VB6UCX3V.cjs +421 -0
  181. package/dist/chunk-VEKFLAQM.cjs +300 -0
  182. package/dist/chunk-VQDBNVOO.cjs +14 -0
  183. package/dist/chunk-W4E7WMXE.cjs +71 -0
  184. package/dist/{chunk-VVTREAG5.mjs → chunk-WD4YXVLV.mjs} +11 -3
  185. package/dist/{chunk-UQZPTIML.mjs → chunk-WD5PNSOB.mjs} +2 -2
  186. package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
  187. package/dist/chunk-WMAPPDMM.cjs +28 -0
  188. package/dist/chunk-WMOGFOUJ.cjs +223 -0
  189. package/dist/chunk-WPYFSQKK.cjs +37 -0
  190. package/dist/chunk-WZMNW2IW.cjs +1415 -0
  191. package/dist/chunk-XGC343EY.cjs +443 -0
  192. package/dist/{chunk-DPZUDPVJ.mjs → chunk-XP777LRD.mjs} +1 -1
  193. package/dist/chunk-XSKZORAS.cjs +727 -0
  194. package/dist/chunk-XWAWFQFS.cjs +82 -0
  195. package/dist/{chunk-KATQ6I56.mjs → chunk-XWAYMDLB.mjs} +1 -1
  196. package/dist/chunk-Y4YMF2NQ.cjs +460 -0
  197. package/dist/chunk-Y4YWHNKU.cjs +250 -0
  198. package/dist/chunk-Y53ZSFN6.cjs +504 -0
  199. package/dist/chunk-YA6LLTIJ.cjs +411 -0
  200. package/dist/chunk-YFPGHF5F.cjs +202 -0
  201. package/dist/chunk-YJRZR7VU.cjs +28 -0
  202. package/dist/chunk-YTAABQEV.cjs +1 -0
  203. package/dist/chunk-YX3DBN4M.cjs +18 -0
  204. package/dist/chunk-YZTASLPQ.cjs +64 -0
  205. package/dist/chunk-Z5HIWVDP.cjs +2173 -0
  206. package/dist/{chunk-Q3MDL7TM.mjs → chunk-ZCNJKLA2.mjs} +30 -11
  207. package/dist/chunk-ZEG3OPIB.cjs +93 -0
  208. package/dist/chunk-ZMN3H73H.cjs +155 -0
  209. package/dist/client/lifecycle.cjs +6 -35
  210. package/dist/{client-plugins-CqVtZi5X.d.ts → client-plugins-C089bQhN.d.ts} +2 -2
  211. package/dist/{client-plugins-CIPRtSsW.d.mts → client-plugins-JXXmZliS.d.mts} +2 -2
  212. package/dist/client-plugins.cjs +7 -448
  213. package/dist/client-plugins.d.mts +3 -3
  214. package/dist/client-plugins.d.ts +3 -3
  215. package/dist/client.cjs +171 -9774
  216. package/dist/client.d.mts +8 -8
  217. package/dist/client.d.ts +8 -8
  218. package/dist/client.mjs +6 -6
  219. package/dist/config.cjs +8 -36
  220. package/dist/config.d.mts +3 -3
  221. package/dist/config.d.ts +3 -3
  222. package/dist/cron.cjs +24 -491
  223. package/dist/cron.mjs +2 -2
  224. package/dist/deferred.cjs +26 -475
  225. package/dist/deployment.cjs +39 -210
  226. package/dist/devtools-OUIPHVV6.cjs +388 -0
  227. package/dist/{devtools-IU7LKZOH.mjs → devtools-UFVTMQX5.mjs} +7 -7
  228. package/dist/devtools-client-4WAPJY5L.cjs +254 -0
  229. package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
  230. package/dist/docs.cjs +46 -5649
  231. package/dist/docs.mjs +9 -9
  232. package/dist/{endpoint-kSAxE52R.d.ts → endpoint-1zA994xL.d.ts} +1 -1
  233. package/dist/{endpoint-Bu3XgeMK.d.mts → endpoint-DAc96i93.d.mts} +1 -1
  234. package/dist/env-types.cjs +5 -226
  235. package/dist/env.cjs +23 -306
  236. package/dist/env.d.mts +5 -3
  237. package/dist/env.d.ts +5 -3
  238. package/dist/env.mjs +2 -1
  239. package/dist/environment/vite.cjs +8 -372
  240. package/dist/environment.cjs +12 -94
  241. package/dist/font.cjs +13 -63
  242. package/dist/headers.cjs +7 -123
  243. package/dist/i18n/client.cjs +55 -294
  244. package/dist/i18n/index.cjs +22 -209
  245. package/dist/i18n/server.cjs +22 -745
  246. package/dist/image/server.cjs +13 -729
  247. package/dist/image/sharp.cjs +33 -171
  248. package/dist/image.cjs +41 -85
  249. package/dist/index.cjs +1151 -67862
  250. package/dist/index.d.mts +14 -14
  251. package/dist/index.d.ts +14 -14
  252. package/dist/index.mjs +34 -34
  253. package/dist/instrumentation.cjs +12 -138
  254. package/dist/integration-orm-55F7CII5.cjs +13 -0
  255. package/dist/integrations.cjs +55 -4090
  256. package/dist/integrations.d.mts +3 -3
  257. package/dist/integrations.d.ts +3 -3
  258. package/dist/internal/app-markdown-runtime.cjs +27 -224
  259. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  260. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  261. package/dist/internal/app-markdown-runtime.mjs +2 -2
  262. package/dist/internal/build-runtime.cjs +120 -52038
  263. package/dist/internal/build-runtime.d.mts +5 -5
  264. package/dist/internal/build-runtime.d.ts +5 -5
  265. package/dist/internal/build-runtime.mjs +23 -23
  266. package/dist/internal/cli-runtime.cjs +67 -13765
  267. package/dist/internal/cli-runtime.mjs +13 -13
  268. package/dist/internal/client-error-overlay.cjs +80 -733
  269. package/dist/internal/client-error-overlay.mjs +1 -1
  270. package/dist/internal/client-runtime.cjs +81 -913
  271. package/dist/internal/compression-runtime.cjs +8 -214
  272. package/dist/internal/compression-runtime.d.mts +3 -3
  273. package/dist/internal/compression-runtime.d.ts +3 -3
  274. package/dist/internal/config-runtime.cjs +42 -6535
  275. package/dist/internal/config-runtime.d.mts +4 -4
  276. package/dist/internal/config-runtime.d.ts +4 -4
  277. package/dist/internal/config-runtime.mjs +7 -7
  278. package/dist/internal/docs-precompiled-runtime.cjs +26 -46
  279. package/dist/internal/infra-analytics-runtime.cjs +10 -536
  280. package/dist/internal/isolated-boundary.cjs +14 -414
  281. package/dist/internal/metadata-image-runtime.cjs +7 -285
  282. package/dist/internal/product-telemetry-runtime.cjs +42 -97
  283. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  284. package/dist/internal/production-node-env.cjs +6 -63
  285. package/dist/internal/production-runtime.cjs +418 -7073
  286. package/dist/internal/production-runtime.d.mts +9 -9
  287. package/dist/internal/production-runtime.d.ts +9 -9
  288. package/dist/internal/production-runtime.mjs +6 -6
  289. package/dist/internal/request-cookies.cjs +6 -54
  290. package/dist/json-ld.cjs +24 -50
  291. package/dist/layers-E4WPJNY5.cjs +17 -0
  292. package/dist/manager-G4B2IPYE.cjs +14 -0
  293. package/dist/markdown.cjs +21 -532
  294. package/dist/markdown.mjs +1 -1
  295. package/dist/{metadata-8g__AMPM.d.ts → metadata-BcNJP4fq.d.ts} +1 -1
  296. package/dist/{metadata-OMX6wFNf.d.mts → metadata-C1Z9vLbb.d.mts} +1 -1
  297. package/dist/middleware.cjs +36 -2988
  298. package/dist/middleware.d.mts +5 -5
  299. package/dist/middleware.d.ts +5 -5
  300. package/dist/middleware.mjs +4 -4
  301. package/dist/navigation.cjs +22 -2588
  302. package/dist/nitro-4I2MYLY2.cjs +652 -0
  303. package/dist/{nitro-3N4ZXRYM.mjs → nitro-CVZ36JM5.mjs} +4 -4
  304. package/dist/observability.cjs +22 -614
  305. package/dist/og.cjs +5 -28
  306. package/dist/plugin.cjs +106 -37291
  307. package/dist/plugin.d.mts +3 -3
  308. package/dist/plugin.d.ts +3 -3
  309. package/dist/plugin.mjs +19 -19
  310. package/dist/{production-runtime-W3M0eNDV.d.mts → production-runtime-jcrTlRTb.d.mts} +1 -1
  311. package/dist/{production-runtime-BJh7o6Cr.d.ts → production-runtime-oKmC0WU-.d.ts} +1 -1
  312. package/dist/query/client.cjs +113 -449
  313. package/dist/query/index.cjs +26 -288
  314. package/dist/query/parsers.cjs +23 -247
  315. package/dist/query/server.cjs +36 -298
  316. package/dist/{render-plan-io7pvDNc.d.mts → render-plan-BLIfc4jt.d.mts} +1 -1
  317. package/dist/{render-plan-Be4ZGTJP.d.ts → render-plan-DOB9cV-h.d.ts} +1 -1
  318. package/dist/renderer/react/client.cjs +9 -43
  319. package/dist/renderer/react/server.cjs +40 -103
  320. package/dist/renderer/react/vite.cjs +7 -29
  321. package/dist/renderer-client.cjs +126 -4261
  322. package/dist/renderer-client.d.mts +5 -5
  323. package/dist/renderer-client.d.ts +5 -5
  324. package/dist/renderer-client.mjs +3 -3
  325. package/dist/renderer.cjs +31 -249
  326. package/dist/{request-DZkHYQ89.d.mts → request-Cr53NRHr.d.mts} +1 -1
  327. package/dist/{request-G8JhKr4F.d.ts → request-Dt2gNuQD.d.ts} +1 -1
  328. package/dist/request.cjs +5 -68
  329. package/dist/request.d.mts +4 -4
  330. package/dist/request.d.ts +4 -4
  331. package/dist/{route-C_eLaFTZ.d.mts → route-B0XrsrFk.d.mts} +1 -1
  332. package/dist/{route-BxNJT447.d.ts → route-DOEpbyWZ.d.ts} +1 -1
  333. package/dist/{route-rendering-BcLLPJgN.d.ts → route-rendering-CWYd8Mv1.d.ts} +1 -1
  334. package/dist/{route-rendering-CbAKr1TY.d.mts → route-rendering-CeFBEAoZ.d.mts} +1 -1
  335. package/dist/router.cjs +11 -474
  336. package/dist/routes.cjs +42 -2424
  337. package/dist/routes.d.mts +4 -4
  338. package/dist/routes.d.ts +4 -4
  339. package/dist/routes.mjs +2 -2
  340. package/dist/schema-dev-notice-MXSZMVDG.cjs +56 -0
  341. package/dist/schema.cjs +6 -33
  342. package/dist/search-client-G3RICOFU.cjs +13 -0
  343. package/dist/server-action-security.cjs +25 -541
  344. package/dist/server-fn-client.cjs +6 -337
  345. package/dist/server-fn-client.d.mts +3 -3
  346. package/dist/server-fn-client.d.ts +3 -3
  347. package/dist/server-fn.cjs +32 -1799
  348. package/dist/server-fn.d.mts +1 -1
  349. package/dist/server-fn.d.ts +1 -1
  350. package/dist/server-fn.mjs +2 -2
  351. package/dist/server-plugins.cjs +15 -884
  352. package/dist/server-plugins.d.mts +4 -4
  353. package/dist/server-plugins.d.ts +4 -4
  354. package/dist/server-query-client.cjs +15 -1849
  355. package/dist/server-query-client.d.mts +1 -1
  356. package/dist/server-query-client.d.ts +1 -1
  357. package/dist/server-query-client.mjs +4 -4
  358. package/dist/server-query.cjs +16 -1796
  359. package/dist/server-query.d.mts +1 -1
  360. package/dist/server-query.d.ts +1 -1
  361. package/dist/server-query.mjs +3 -3
  362. package/dist/server.cjs +296 -44522
  363. package/dist/server.d.mts +9 -9
  364. package/dist/server.d.ts +9 -9
  365. package/dist/server.mjs +22 -22
  366. package/dist/{spa-router-BcS_4nqm.d.mts → spa-router-CQWiYGxS.d.mts} +2 -2
  367. package/dist/{spa-router-BzFBUJkn.d.ts → spa-router-Wjiw-8hB.d.ts} +2 -2
  368. package/dist/storage.cjs +57 -576
  369. package/dist/testing.cjs +92 -3148
  370. package/dist/testing.d.mts +3 -3
  371. package/dist/testing.d.ts +3 -3
  372. package/dist/testing.mjs +11 -7
  373. package/dist/theme/client.cjs +13 -108
  374. package/dist/theme/index.cjs +6 -68
  375. package/dist/theme/runtime.cjs +13 -78
  376. package/dist/theme/server.cjs +10 -179
  377. package/dist/{utils-C4yrAhNc.d.ts → utils-B0XJmG_b.d.ts} +1 -1
  378. package/dist/{utils-5kQP1mFR.d.mts → utils-uUxF0K0P.d.mts} +1 -1
  379. package/dist/version.cjs +4 -32
  380. package/dist/version.mjs +1 -1
  381. package/dist/vite.cjs +119 -37622
  382. package/dist/vite.d.mts +3 -3
  383. package/dist/vite.d.ts +3 -3
  384. package/dist/vite.mjs +19 -19
  385. package/dist/workflows.cjs +19 -1040
  386. package/dist/workflows.mjs +2 -2
  387. package/package.json +2 -2
  388. package/dist/{chunk-VO5SCWF5.mjs → chunk-BNGS6KJ6.mjs} +0 -0
  389. package/dist/{chunk-MUUZJLCI.mjs → chunk-EGJDUF4Q.mjs} +3 -3
  390. package/dist/{chunk-4L7SZOHZ.mjs → chunk-YHOCRI4H.mjs} +3 -3
@@ -0,0 +1,85 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+ var _chunkY4YWHNKUcjs = require('./chunk-Y4YWHNKU.cjs');
6
+
7
+
8
+ var _chunkI7PUUDGYcjs = require('./chunk-I7PUUDGY.cjs');
9
+
10
+
11
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
12
+
13
+ // src/server-query-client.ts
14
+ var _react = require('react');
15
+ function useServerQuery(query, input, options = {}) {
16
+ const cache = _chunkI7PUUDGYcjs.getFarmClientDataCache.call(void 0, );
17
+ const key = _chunkY4YWHNKUcjs.createServerQueryCallKey.call(void 0, query, input);
18
+ const inputRef = _react.useRef.call(void 0, input);
19
+ const optionsRef = _react.useRef.call(void 0, options);
20
+ const mountedKeyRef = _react.useRef.call(void 0, void 0);
21
+ const pendingInvalidationRef = _react.useRef.call(void 0, false);
22
+ inputRef.current = input;
23
+ optionsRef.current = options;
24
+ const subscribe = _react.useCallback.call(void 0,
25
+ (listener) => cache.subscribe(key, (event) => {
26
+ if (event === "invalidate") pendingInvalidationRef.current = true;
27
+ else if (_optionalChain([cache, 'access', _ => _.get, 'call', _2 => _2(key), 'optionalAccess', _3 => _3.fetching])) {
28
+ pendingInvalidationRef.current = false;
29
+ }
30
+ listener();
31
+ }),
32
+ [cache, key]
33
+ );
34
+ const getSnapshot = _react.useCallback.call(void 0, () => cache.get(key), [cache, key]);
35
+ const entry = _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, () => void 0);
36
+ const run = _react.useCallback.call(void 0,
37
+ (force = false) => {
38
+ pendingInvalidationRef.current = false;
39
+ return _chunkY4YWHNKUcjs.fetchServerQuery.call(void 0, query, inputRef.current, {
40
+ ...optionsRef.current,
41
+ force
42
+ });
43
+ },
44
+ [query]
45
+ );
46
+ _react.useEffect.call(void 0, () => {
47
+ if (options.enabled === false) {
48
+ mountedKeyRef.current = void 0;
49
+ return;
50
+ }
51
+ const firstReadForKey = mountedKeyRef.current !== key;
52
+ if (firstReadForKey) mountedKeyRef.current = key;
53
+ if (firstReadForKey && (!entry || cache.isStale(key)) || pendingInvalidationRef.current && _optionalChain([entry, 'optionalAccess', _4 => _4.invalidatedAt]) !== void 0 && !entry.fetching) {
54
+ void run().catch(() => void 0);
55
+ }
56
+ }, [cache, entry, key, options.enabled, run]);
57
+ _react.useEffect.call(void 0, () => {
58
+ if (options.enabled === false) return;
59
+ return _chunkY4YWHNKUcjs.attachRevalidationListeners.call(void 0,
60
+ () => {
61
+ if (cache.isStale(key)) void run().catch(() => void 0);
62
+ },
63
+ {
64
+ refetchOnWindowFocus: options.refetchOnWindowFocus,
65
+ refetchOnReconnect: options.refetchOnReconnect
66
+ }
67
+ );
68
+ }, [cache, key, options.enabled, options.refetchOnReconnect, options.refetchOnWindowFocus, run]);
69
+ const status = _nullishCoalesce(_optionalChain([entry, 'optionalAccess', _5 => _5.status]), () => ( (entry ? "success" : "idle")));
70
+ const fetching = _nullishCoalesce(_optionalChain([entry, 'optionalAccess', _6 => _6.fetching]), () => ( false));
71
+ return {
72
+ data: _optionalChain([entry, 'optionalAccess', _7 => _7.data]),
73
+ error: _nullishCoalesce(_optionalChain([entry, 'optionalAccess', _8 => _8.error]), () => ( null)),
74
+ status,
75
+ pending: status === "pending" && (_nullishCoalesce(_optionalChain([entry, 'optionalAccess', _9 => _9.updatedAt]), () => ( 0))) === 0,
76
+ fetching,
77
+ stale: cache.isStale(key),
78
+ refetch: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => run(true), "refetch")
79
+ };
80
+ }
81
+ _chunkS3JO3N4Hcjs.__name.call(void 0, useServerQuery, "useServerQuery");
82
+
83
+
84
+
85
+ exports.useServerQuery = useServerQuery;
@@ -0,0 +1,173 @@
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/deployment.ts
6
+ var FARM_DEPLOYMENT_ID_HEADER = "x-farm-deployment-id";
7
+ var FARM_DEPLOYMENT_MISMATCH_HEADER = "x-farm-deployment-mismatch";
8
+ var FARM_DEPLOYMENT_COOKIE = "__farm_deployment";
9
+ var FARM_DEPLOYMENT_MISMATCH_CODE = "FARM_DEPLOYMENT_MISMATCH";
10
+ var FARM_DEPLOYMENT_MISMATCH_STATUS = 409;
11
+ function getFarmPresetRuntime(preset) {
12
+ if (preset === "cloudflare" || preset === "cloudflare-pages" || preset === "cloudflare-module" || preset === "netlify-edge" || preset === "vercel-edge" || preset === "deno") {
13
+ return "edge";
14
+ }
15
+ if (preset === "node-server" || preset === "vercel" || preset === "netlify" || preset === "aws-lambda" || preset === "azure" || preset === "firebase" || preset === "bun" || preset === "self-host" || preset === "farm") {
16
+ return "node";
17
+ }
18
+ return "unknown";
19
+ }
20
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmPresetRuntime, "getFarmPresetRuntime");
21
+ var _FarmDeploymentMismatchError = class _FarmDeploymentMismatchError extends Error {
22
+ constructor(clientDeploymentId, serverDeploymentId) {
23
+ super("The application was updated while this page was open. Refresh before trying again.");
24
+ this.clientDeploymentId = clientDeploymentId;
25
+ this.serverDeploymentId = serverDeploymentId;
26
+ this.name = "FarmDeploymentMismatchError";
27
+ this.code = FARM_DEPLOYMENT_MISMATCH_CODE;
28
+ this.retryable = false;
29
+ }
30
+ };
31
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _FarmDeploymentMismatchError, "FarmDeploymentMismatchError");
32
+ var FarmDeploymentMismatchError = _FarmDeploymentMismatchError;
33
+ function normalizeFarmDeploymentId(value) {
34
+ if (typeof value !== "string" || value.trim() === "") {
35
+ throw new TypeError("Farm deploymentId must be a non-empty string");
36
+ }
37
+ const normalized = value.trim();
38
+ if (normalized.length > 200 || /[\u0000-\u001f\u007f]/.test(normalized)) {
39
+ throw new TypeError("Farm deploymentId must be at most 200 characters without control bytes");
40
+ }
41
+ return normalized;
42
+ }
43
+ _chunkS3JO3N4Hcjs.__name.call(void 0, normalizeFarmDeploymentId, "normalizeFarmDeploymentId");
44
+ function createFarmDeploymentRequestHeaders(deploymentId, init) {
45
+ const headers = new Headers(init);
46
+ if (deploymentId) {
47
+ headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);
48
+ }
49
+ return headers;
50
+ }
51
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDeploymentRequestHeaders, "createFarmDeploymentRequestHeaders");
52
+ function getFarmRequestDeploymentId(request) {
53
+ const headerValue = _optionalChain([request, 'access', _ => _.headers, 'access', _2 => _2.get, 'call', _3 => _3(FARM_DEPLOYMENT_ID_HEADER), 'optionalAccess', _4 => _4.trim, 'call', _5 => _5()]);
54
+ if (headerValue) return headerValue;
55
+ if (isSafeRequestMethod(request.method)) return void 0;
56
+ return readCookie(request.headers.get("cookie"), FARM_DEPLOYMENT_COOKIE);
57
+ }
58
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmRequestDeploymentId, "getFarmRequestDeploymentId");
59
+ function getFarmDeploymentMismatch(request, serverDeploymentId) {
60
+ if (!serverDeploymentId) return null;
61
+ const clientDeploymentId = getFarmRequestDeploymentId(request);
62
+ if (!clientDeploymentId || clientDeploymentId === serverDeploymentId) return null;
63
+ return { clientDeploymentId, serverDeploymentId };
64
+ }
65
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmDeploymentMismatch, "getFarmDeploymentMismatch");
66
+ function createFarmDeploymentMismatchResponse(mismatch) {
67
+ return new Response(
68
+ JSON.stringify({
69
+ error: FARM_DEPLOYMENT_MISMATCH_CODE,
70
+ message: "The application deployment changed. Refresh before retrying this request."
71
+ }),
72
+ {
73
+ status: FARM_DEPLOYMENT_MISMATCH_STATUS,
74
+ headers: {
75
+ "Cache-Control": "no-store",
76
+ "Content-Type": "application/json; charset=utf-8",
77
+ [FARM_DEPLOYMENT_ID_HEADER]: mismatch.serverDeploymentId,
78
+ [FARM_DEPLOYMENT_MISMATCH_HEADER]: "1"
79
+ }
80
+ }
81
+ );
82
+ }
83
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDeploymentMismatchResponse, "createFarmDeploymentMismatchResponse");
84
+ function withFarmDeploymentResponse(response, deploymentId, options = {}) {
85
+ if (!deploymentId) return response;
86
+ const headers = new Headers(response.headers);
87
+ headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);
88
+ if (options.setCookie) {
89
+ headers.append(
90
+ "Set-Cookie",
91
+ createFarmDeploymentCookie(
92
+ deploymentId,
93
+ _nullishCoalesce(options.cookiePath, () => ( "/")),
94
+ _nullishCoalesce(options.secureCookie, () => ( false))
95
+ )
96
+ );
97
+ }
98
+ return new Response(response.body, {
99
+ status: response.status,
100
+ statusText: response.statusText,
101
+ headers
102
+ });
103
+ }
104
+ _chunkS3JO3N4Hcjs.__name.call(void 0, withFarmDeploymentResponse, "withFarmDeploymentResponse");
105
+ function getFarmResponseDeploymentId(response) {
106
+ return _optionalChain([response, 'access', _6 => _6.headers, 'access', _7 => _7.get, 'call', _8 => _8(FARM_DEPLOYMENT_ID_HEADER), 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]) || void 0;
107
+ }
108
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmResponseDeploymentId, "getFarmResponseDeploymentId");
109
+ function isFarmDeploymentMismatchResponse(response, clientDeploymentId) {
110
+ const serverDeploymentId = getFarmResponseDeploymentId(response);
111
+ if (clientDeploymentId && serverDeploymentId && clientDeploymentId !== serverDeploymentId) {
112
+ return true;
113
+ }
114
+ return response.status === FARM_DEPLOYMENT_MISMATCH_STATUS && response.headers.get(FARM_DEPLOYMENT_MISMATCH_HEADER) === "1";
115
+ }
116
+ _chunkS3JO3N4Hcjs.__name.call(void 0, isFarmDeploymentMismatchResponse, "isFarmDeploymentMismatchResponse");
117
+ function createFarmDeploymentMismatchError(response, clientDeploymentId) {
118
+ return new FarmDeploymentMismatchError(
119
+ clientDeploymentId,
120
+ getFarmResponseDeploymentId(response) || "unknown"
121
+ );
122
+ }
123
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDeploymentMismatchError, "createFarmDeploymentMismatchError");
124
+ function createFarmDeploymentCookie(deploymentId, path = "/", secure = false) {
125
+ const normalizedPath = path.startsWith("/") ? path : `/${path}`;
126
+ return [
127
+ `${FARM_DEPLOYMENT_COOKIE}=${encodeURIComponent(deploymentId)}`,
128
+ `Path=${normalizedPath}`,
129
+ "HttpOnly",
130
+ "SameSite=Lax",
131
+ secure ? "Secure" : ""
132
+ ].filter(Boolean).join("; ");
133
+ }
134
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDeploymentCookie, "createFarmDeploymentCookie");
135
+ function readCookie(cookieHeader, name) {
136
+ if (!cookieHeader) return void 0;
137
+ for (const part of cookieHeader.split(";")) {
138
+ const separator = part.indexOf("=");
139
+ if (separator === -1 || part.slice(0, separator).trim() !== name) continue;
140
+ const value = part.slice(separator + 1).trim();
141
+ try {
142
+ return decodeURIComponent(value);
143
+ } catch (e) {
144
+ return value;
145
+ }
146
+ }
147
+ return void 0;
148
+ }
149
+ _chunkS3JO3N4Hcjs.__name.call(void 0, readCookie, "readCookie");
150
+ function isSafeRequestMethod(method) {
151
+ return ["GET", "HEAD", "OPTIONS", "QUERY"].includes(method.toUpperCase());
152
+ }
153
+ _chunkS3JO3N4Hcjs.__name.call(void 0, isSafeRequestMethod, "isSafeRequestMethod");
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+ exports.FARM_DEPLOYMENT_ID_HEADER = FARM_DEPLOYMENT_ID_HEADER; exports.FARM_DEPLOYMENT_MISMATCH_HEADER = FARM_DEPLOYMENT_MISMATCH_HEADER; exports.FARM_DEPLOYMENT_COOKIE = FARM_DEPLOYMENT_COOKIE; exports.FARM_DEPLOYMENT_MISMATCH_CODE = FARM_DEPLOYMENT_MISMATCH_CODE; exports.FARM_DEPLOYMENT_MISMATCH_STATUS = FARM_DEPLOYMENT_MISMATCH_STATUS; exports.getFarmPresetRuntime = getFarmPresetRuntime; exports.FarmDeploymentMismatchError = FarmDeploymentMismatchError; exports.normalizeFarmDeploymentId = normalizeFarmDeploymentId; exports.createFarmDeploymentRequestHeaders = createFarmDeploymentRequestHeaders; exports.getFarmRequestDeploymentId = getFarmRequestDeploymentId; exports.getFarmDeploymentMismatch = getFarmDeploymentMismatch; exports.createFarmDeploymentMismatchResponse = createFarmDeploymentMismatchResponse; exports.withFarmDeploymentResponse = withFarmDeploymentResponse; exports.getFarmResponseDeploymentId = getFarmResponseDeploymentId; exports.isFarmDeploymentMismatchResponse = isFarmDeploymentMismatchResponse; exports.createFarmDeploymentMismatchError = createFarmDeploymentMismatchError; exports.createFarmDeploymentCookie = createFarmDeploymentCookie;
@@ -0,0 +1,337 @@
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 _chunkTIWHTW3Qcjs = require('./chunk-TIWHTW3Q.cjs');
4
+
5
+
6
+ var _chunk2CQ74SP6cjs = require('./chunk-2CQ74SP6.cjs');
7
+
8
+
9
+ var _chunkWMAPPDMMcjs = require('./chunk-WMAPPDMM.cjs');
10
+
11
+
12
+
13
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
14
+
15
+ // src/type-generator.ts
16
+ var _fs = require('fs');
17
+ var _module = require('module');
18
+ var _path = require('path');
19
+ var _esmodulelexer = require('es-module-lexer');
20
+ var moduleLexerInitialized = false;
21
+ var JSX_ROUTE_LOADERS = { ".jsx": "jsx", ".tsx": "tsx" };
22
+ var esbuildTransformSync;
23
+ function transformJSXRoute(content, loader, filePath) {
24
+ _nullishCoalesce(esbuildTransformSync, () => ( (esbuildTransformSync = _module.createRequire.call(void 0, typeof __filename === "string" ? __filename : _chunkS3JO3N4Hcjs.define_import_meta_default.url)(
25
+ "esbuild"
26
+ ).transformSync)));
27
+ return esbuildTransformSync(content, { loader, sourcefile: filePath }).code;
28
+ }
29
+ _chunkS3JO3N4Hcjs.__name.call(void 0, transformJSXRoute, "transformJSXRoute");
30
+ var API_CLIENT_METHOD_SEGMENTS = /* @__PURE__ */ new Set([
31
+ "get",
32
+ "head",
33
+ "query",
34
+ "post",
35
+ "put",
36
+ "delete",
37
+ "patch",
38
+ "options"
39
+ ]);
40
+ var _APITypeGenerator = class _APITypeGenerator {
41
+ constructor(appDir) {
42
+ this.appDirs = Array.isArray(appDir) ? [...appDir] : [appDir];
43
+ }
44
+ /**
45
+ * Scan all API route files and extract route information
46
+ */
47
+ scanAPIRoutes() {
48
+ const methodSources = /* @__PURE__ */ new Map();
49
+ for (const appDir of this.appDirs) {
50
+ const apiDir = _path.join.call(void 0, appDir, "api");
51
+ if (!_fs.existsSync.call(void 0, apiDir)) continue;
52
+ const discovered = [];
53
+ this.scanDirectory(apiDir, appDir, discovered);
54
+ for (const route of discovered) {
55
+ const routeMethods = _nullishCoalesce(methodSources.get(route.path), () => ( /* @__PURE__ */ new Map()));
56
+ for (const method of route.methods) {
57
+ routeMethods.set(method, route);
58
+ }
59
+ methodSources.set(route.path, routeMethods);
60
+ }
61
+ }
62
+ const routes = [];
63
+ for (const [routePath, methods] of methodSources) {
64
+ const routesByFile = /* @__PURE__ */ new Map();
65
+ for (const [method, route] of methods) {
66
+ const existing = routesByFile.get(route.filePath);
67
+ if (existing) {
68
+ existing.methods.push(method);
69
+ } else {
70
+ routesByFile.set(route.filePath, {
71
+ ...route,
72
+ path: routePath,
73
+ methods: [method]
74
+ });
75
+ }
76
+ }
77
+ routes.push(...routesByFile.values());
78
+ }
79
+ return routes.sort(
80
+ (left, right) => left.path.localeCompare(right.path) || left.filePath.localeCompare(right.filePath)
81
+ );
82
+ }
83
+ scanDirectory(dir, appDir, routes, basePath = "") {
84
+ const items = _fs.readdirSync.call(void 0, dir, { withFileTypes: true });
85
+ for (const item of items) {
86
+ const fullPath = _path.join.call(void 0, dir, item.name);
87
+ if (item.isDirectory()) {
88
+ const newBasePath = basePath ? `${basePath}/${item.name}` : item.name;
89
+ this.scanDirectory(fullPath, appDir, routes, newBasePath);
90
+ } else if (_chunk2CQ74SP6cjs.isFarmAPIRouteFileName.call(void 0, item.name)) {
91
+ const routeInfo = this.extractRouteInfo(fullPath, appDir, basePath);
92
+ if (routeInfo) {
93
+ routes.push(routeInfo);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ extractRouteInfo(filePath, appDir, basePath) {
99
+ try {
100
+ const content = _fs.readFileSync.call(void 0, filePath, "utf-8");
101
+ const methods = this.extractExportedMethods(content, filePath);
102
+ if (methods.length === 0) {
103
+ return null;
104
+ }
105
+ const relativePath = _path.relative.call(void 0, appDir, filePath);
106
+ const apiPath = basePath ? `/api/${basePath}` : "/api";
107
+ return {
108
+ path: apiPath,
109
+ methods,
110
+ filePath,
111
+ relativePath
112
+ };
113
+ } catch (error) {
114
+ console.warn(`Failed to read route file ${filePath}:`, error);
115
+ return null;
116
+ }
117
+ }
118
+ extractExportedMethods(content, filePath) {
119
+ if (!moduleLexerInitialized) {
120
+ _esmodulelexer.initSync.call(void 0, );
121
+ moduleLexerInitialized = true;
122
+ }
123
+ const httpMethods = ["GET", "HEAD", "QUERY", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"];
124
+ const loader = JSX_ROUTE_LOADERS[_path.extname.call(void 0, filePath)];
125
+ const source = loader ? transformJSXRoute(content, loader, filePath) : content;
126
+ const [, exports] = _esmodulelexer.parse.call(void 0, source);
127
+ const valueExports = new Set(
128
+ exports.filter((specifier) => !this.isTypeOnlyExportSpecifier(source, specifier.s)).map((specifier) => specifier.n)
129
+ );
130
+ return httpMethods.filter((method) => valueExports.has(method));
131
+ }
132
+ isTypeOnlyExportSpecifier(content, exportNameStart) {
133
+ let cursor = exportNameStart - 1;
134
+ while (cursor >= 0) {
135
+ while (cursor >= 0 && /\s/.test(content[cursor])) cursor--;
136
+ if (content.slice(cursor - 1, cursor + 1) === "*/") {
137
+ const commentStart = content.lastIndexOf("/*", cursor - 1);
138
+ if (commentStart >= 0) {
139
+ cursor = commentStart - 1;
140
+ continue;
141
+ }
142
+ }
143
+ const lineStart = content.lastIndexOf("\n", cursor) + 1;
144
+ const lineCommentStart = content.indexOf("//", lineStart);
145
+ if (lineCommentStart >= 0 && lineCommentStart <= cursor) {
146
+ cursor = lineCommentStart - 1;
147
+ continue;
148
+ }
149
+ break;
150
+ }
151
+ const tokenEnd = cursor + 1;
152
+ while (cursor >= 0 && /[A-Za-z0-9_$]/.test(content[cursor])) cursor--;
153
+ return content.slice(cursor + 1, tokenEnd) === "type";
154
+ }
155
+ /**
156
+ * Generate TypeScript code for the API router
157
+ */
158
+ generateAPIRouter(routes, options = {}) {
159
+ const imports = [];
160
+ const pluginTypes = [];
161
+ if (_optionalChain([options, 'access', _ => _.pluginConfigs, 'optionalAccess', _2 => _2.length])) {
162
+ imports.push('import type { PluginAPIRouter } from "@farm.js/core/api";');
163
+ options.pluginConfigs.forEach((filePath, index) => {
164
+ const importPath = this.getRouteImportPath({ filePath }, options.outFile);
165
+ imports.push(`import type FarmPluginConfig${index} from ${JSON.stringify(importPath)};`);
166
+ pluginTypes.push(`PluginAPIRouter<typeof FarmPluginConfig${index}>`);
167
+ });
168
+ }
169
+ const routeGroups = /* @__PURE__ */ new Map();
170
+ for (const route of routes) {
171
+ const key = route.path;
172
+ if (!routeGroups.has(key)) {
173
+ routeGroups.set(key, []);
174
+ }
175
+ routeGroups.get(key).push(route);
176
+ }
177
+ const routeMethodsByPath = /* @__PURE__ */ new Map();
178
+ for (const [routePath, routeList] of routeGroups) {
179
+ const cleanPath = routePath === "/api" ? "" : routePath.replace(/^\/api\//, "");
180
+ routeMethodsByPath.set(
181
+ cleanPath,
182
+ new Set(routeList.flatMap((route) => route.methods.map((method) => method.toLowerCase())))
183
+ );
184
+ }
185
+ for (const route of _nullishCoalesce(options.pluginRoutes, () => ( []))) {
186
+ const cleanPath = route.path === "/api" ? "" : route.path.replace(/^\/api\//, "");
187
+ const methods = _nullishCoalesce(routeMethodsByPath.get(cleanPath), () => ( /* @__PURE__ */ new Set()));
188
+ methods.add(route.method.toLowerCase());
189
+ routeMethodsByPath.set(cleanPath, methods);
190
+ }
191
+ const createRouteTreeNode = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => /* @__PURE__ */ Object.create(null), "createRouteTreeNode");
192
+ const nestedStructure = createRouteTreeNode();
193
+ const usedRouteNames = /* @__PURE__ */ new Map();
194
+ for (const [path, routeList] of routeGroups) {
195
+ const routeName = this.uniqueRouteName(path, usedRouteNames);
196
+ const cleanPath = path === "/api" ? "" : path.replace(/^\/api\//, "");
197
+ const parts = cleanPath ? cleanPath.split("/") : [];
198
+ const methodSources = /* @__PURE__ */ new Map();
199
+ for (const route of routeList) {
200
+ for (const method of route.methods) methodSources.set(method, route);
201
+ }
202
+ const allMethods = [...methodSources.keys()];
203
+ for (const method of allMethods) {
204
+ const importPath = this.getRouteImportPath(methodSources.get(method), options.outFile);
205
+ const importName = `${method}_${routeName}`;
206
+ imports.push(
207
+ `import type { ${method} as ${importName} } from ${JSON.stringify(importPath)};`
208
+ );
209
+ }
210
+ if (parts.length === 0) {
211
+ for (const method of allMethods) {
212
+ const importName = `${method}_${routeName}`;
213
+ const methodName = method.toLowerCase();
214
+ nestedStructure[methodName] = `typeof ${importName}`;
215
+ }
216
+ } else {
217
+ const hasMethodCollision = parts.some((part, index) => {
218
+ if (part === "$params" || index === 0 && part === "integrations") return true;
219
+ if (!API_CLIENT_METHOD_SEGMENTS.has(part)) return false;
220
+ const parentPath = parts.slice(0, index).join("/");
221
+ return _optionalChain([routeMethodsByPath, 'access', _3 => _3.get, 'call', _4 => _4(parentPath), 'optionalAccess', _5 => _5.has, 'call', _6 => _6(part)]) === true;
222
+ });
223
+ const typePath = hasMethodCollision ? [`/${cleanPath}`] : parts;
224
+ let current = nestedStructure;
225
+ for (let i = 0; i < typePath.length; i++) {
226
+ const part = typePath[i];
227
+ if (i === typePath.length - 1) {
228
+ current[part] = createRouteTreeNode();
229
+ for (const method of allMethods) {
230
+ const importName = `${method}_${routeName}`;
231
+ const methodName = method.toLowerCase();
232
+ current[part][methodName] = `typeof ${importName}`;
233
+ }
234
+ } else {
235
+ if (!Object.prototype.hasOwnProperty.call(current, part)) {
236
+ current[part] = createRouteTreeNode();
237
+ }
238
+ current = current[part];
239
+ }
240
+ }
241
+ }
242
+ }
243
+ const typeExports = this.structureToTypeString(nestedStructure, 1);
244
+ const manifest = /* @__PURE__ */ new Map();
245
+ const shapes = /* @__PURE__ */ new Map();
246
+ for (const route of routes) {
247
+ _chunkWMAPPDMMcjs.registerAPIRouteShape.call(void 0, shapes, route.path, route.filePath, "app");
248
+ const methods = _nullishCoalesce(manifest.get(route.path), () => ( /* @__PURE__ */ new Set()));
249
+ for (const method of route.methods) methods.add(method);
250
+ manifest.set(route.path, methods);
251
+ }
252
+ for (const route of _nullishCoalesce(options.pluginRoutes, () => ( []))) {
253
+ _chunkWMAPPDMMcjs.registerAPIRouteShape.call(void 0, shapes, route.path, `plugin:${route.path}`, "app");
254
+ const methods = _nullishCoalesce(manifest.get(route.path), () => ( /* @__PURE__ */ new Set()));
255
+ if (methods.has(route.method))
256
+ throw new Error(`Duplicate API route for ${route.method} ${route.path}`);
257
+ methods.add(route.method);
258
+ manifest.set(route.path, methods);
259
+ }
260
+ const routeManifest = [...manifest].sort(([a], [b]) => a.localeCompare(b)).map(([path, methods]) => ({ path, methods: [...methods].sort() }));
261
+ const manifestSource = routeManifest.length ? `[
262
+ ${routeManifest.map(
263
+ ({ path, methods }) => ` {
264
+ path: ${JSON.stringify(path)},
265
+ methods: [${methods.map((method) => JSON.stringify(method)).join(", ")}],
266
+ },`
267
+ ).join("\n")}
268
+ ]` : "[]";
269
+ return `/**
270
+ * Auto-generated API router types
271
+ * This file is automatically generated - do not edit manually
272
+ *
273
+ * Server modules are imported only as types. Runtime data contains paths and methods only.
274
+ */
275
+
276
+ ${imports.join("\n")}
277
+
278
+ // Type-only representation of your API routes
279
+ export type APIRouter = ${pluginTypes.length ? `${pluginTypes.join(" & ")} & ` : ""}{
280
+ ${typeExports}
281
+ };
282
+
283
+ // Pass this schema-free manifest to createApiClients({ routes: apiRoutes }).
284
+ export const apiRoutes = ${manifestSource} as const;
285
+ `;
286
+ }
287
+ getRouteImportPath(route, outFile) {
288
+ if (!outFile) {
289
+ return `../app/${route.relativePath.replace(/\\/g, "/").replace(/\.(ts|tsx|js|jsx)$/, "")}`;
290
+ }
291
+ const relativeImport = _path.relative.call(void 0, _path.dirname.call(void 0, outFile), route.filePath).replace(/\\/g, "/").replace(/\.(ts|tsx|js|jsx)$/, "");
292
+ return relativeImport.startsWith(".") ? relativeImport : `./${relativeImport}`;
293
+ }
294
+ pathToRouteName(path) {
295
+ return (path === "/api" ? "root" : path.replace(/^\/api\//, "")).replace(/\//g, "_").replace(/[^a-zA-Z0-9_]/g, "_");
296
+ }
297
+ uniqueRouteName(path, usedNames) {
298
+ const base = this.pathToRouteName(path);
299
+ const seen = usedNames.get(base);
300
+ usedNames.set(base, (_nullishCoalesce(seen, () => ( 0))) + 1);
301
+ return seen ? `${base}_${seen + 1}` : base;
302
+ }
303
+ structureToTypeString(obj, indent) {
304
+ const spaces = " ".repeat(indent);
305
+ const lines = [];
306
+ for (const [key, value] of Object.entries(obj)) {
307
+ const propertyKey = this.toTypePropertyKey(key);
308
+ if (typeof value === "string") {
309
+ lines.push(`${spaces}${propertyKey}: ${value};`);
310
+ } else if (typeof value === "object") {
311
+ lines.push(`${spaces}${propertyKey}: {`);
312
+ lines.push(this.structureToTypeString(value, indent + 1));
313
+ lines.push(`${spaces}};`);
314
+ }
315
+ }
316
+ return lines.join("\n");
317
+ }
318
+ toTypePropertyKey(key) {
319
+ return /^[$A-Z_][0-9A-Z_$]*$/i.test(key) ? key : JSON.stringify(key);
320
+ }
321
+ /**
322
+ * Generate the API index file
323
+ */
324
+ generateAPIIndex(outputPath) {
325
+ const routes = this.scanAPIRoutes();
326
+ const content = this.generateAPIRouter(routes, { outFile: outputPath });
327
+ _fs.mkdirSync.call(void 0, _path.dirname.call(void 0, outputPath), { recursive: true });
328
+ _chunkTIWHTW3Qcjs.writeFileIfChanged.call(void 0, outputPath, content);
329
+ console.log(`\u2705 Generated API types for ${routes.length} routes`);
330
+ }
331
+ };
332
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _APITypeGenerator, "APITypeGenerator");
333
+ var APITypeGenerator = _APITypeGenerator;
334
+
335
+
336
+
337
+ exports.APITypeGenerator = APITypeGenerator;
@@ -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/utils/runtime-env.ts
6
+ function getFarmRuntimeBindings() {
7
+ const runtimeBindings = globalThis.__env__;
8
+ return runtimeBindings && typeof runtimeBindings === "object" ? runtimeBindings : void 0;
9
+ }
10
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmRuntimeBindings, "getFarmRuntimeBindings");
11
+ function readFarmEnvironmentValue(name) {
12
+ const runtimeValue = _optionalChain([getFarmRuntimeBindings, 'call', _ => _(), 'optionalAccess', _2 => _2[name]]);
13
+ if (typeof runtimeValue === "string") return runtimeValue;
14
+ return typeof process !== "undefined" ? _optionalChain([process, 'access', _3 => _3.env, 'optionalAccess', _4 => _4[name]]) : void 0;
15
+ }
16
+ _chunkS3JO3N4Hcjs.__name.call(void 0, readFarmEnvironmentValue, "readFarmEnvironmentValue");
17
+ function isFarmDeployedRuntime() {
18
+ if (getFarmRuntimeBindings()) return true;
19
+ return readFarmEnvironmentValue("NODE_ENV") === "production";
20
+ }
21
+ _chunkS3JO3N4Hcjs.__name.call(void 0, isFarmDeployedRuntime, "isFarmDeployedRuntime");
22
+
23
+
24
+
25
+
26
+
27
+ exports.getFarmRuntimeBindings = getFarmRuntimeBindings; exports.readFarmEnvironmentValue = readFarmEnvironmentValue; exports.isFarmDeployedRuntime = isFarmDeployedRuntime;