@farm.js/core 0.1.0-beta.5 → 0.1.0-beta.6

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 (424) hide show
  1. package/package.json +1 -1
  2. package/dist/after.cjs +0 -227
  3. package/dist/after.cjs.map +0 -1
  4. package/dist/after.d.mts +0 -25
  5. package/dist/after.d.ts +0 -25
  6. package/dist/after.mjs +0 -14
  7. package/dist/after.mjs.map +0 -1
  8. package/dist/agent-runtime.cjs +0 -2379
  9. package/dist/agent-runtime.cjs.map +0 -1
  10. package/dist/agent-runtime.d.mts +0 -94
  11. package/dist/agent-runtime.d.ts +0 -94
  12. package/dist/agent-runtime.mjs +0 -479
  13. package/dist/agent-runtime.mjs.map +0 -1
  14. package/dist/api/route-manager.d.mts +0 -66
  15. package/dist/api/route-manager.d.ts +0 -66
  16. package/dist/api/runtime.d.mts +0 -3
  17. package/dist/api/runtime.d.ts +0 -3
  18. package/dist/api.cjs +0 -4100
  19. package/dist/api.cjs.map +0 -1
  20. package/dist/api.d.mts +0 -48
  21. package/dist/api.d.ts +0 -48
  22. package/dist/api.mjs +0 -93
  23. package/dist/api.mjs.map +0 -1
  24. package/dist/app-BjN-da13.d.ts +0 -300
  25. package/dist/app-CakAr8Be.d.mts +0 -300
  26. package/dist/app-markdown.cjs +0 -220
  27. package/dist/app-markdown.cjs.map +0 -1
  28. package/dist/app-markdown.d.mts +0 -22
  29. package/dist/app-markdown.d.ts +0 -22
  30. package/dist/app-markdown.mjs +0 -26
  31. package/dist/app-markdown.mjs.map +0 -1
  32. package/dist/cache.cjs +0 -945
  33. package/dist/cache.cjs.map +0 -1
  34. package/dist/cache.d.mts +0 -192
  35. package/dist/cache.d.ts +0 -192
  36. package/dist/cache.mjs +0 -46
  37. package/dist/cache.mjs.map +0 -1
  38. package/dist/chunk-2CUKEMVR.mjs +0 -872
  39. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  40. package/dist/chunk-2ED5Q2GH.mjs +0 -422
  41. package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
  42. package/dist/chunk-2NHCNRF6.mjs +0 -6241
  43. package/dist/chunk-2NHCNRF6.mjs.map +0 -1
  44. package/dist/chunk-32W4QEJP.mjs +0 -158
  45. package/dist/chunk-32W4QEJP.mjs.map +0 -1
  46. package/dist/chunk-3XNTL3FQ.mjs +0 -452
  47. package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
  48. package/dist/chunk-44ZCFSKE.mjs +0 -84
  49. package/dist/chunk-44ZCFSKE.mjs.map +0 -1
  50. package/dist/chunk-4S3ORGFA.mjs +0 -44
  51. package/dist/chunk-4S3ORGFA.mjs.map +0 -1
  52. package/dist/chunk-5BY76U2M.mjs +0 -1
  53. package/dist/chunk-5BY76U2M.mjs.map +0 -1
  54. package/dist/chunk-5ZGPRGWV.mjs +0 -136
  55. package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
  56. package/dist/chunk-65A7QIKI.mjs +0 -142
  57. package/dist/chunk-65A7QIKI.mjs.map +0 -1
  58. package/dist/chunk-74YTBPTY.mjs +0 -450
  59. package/dist/chunk-74YTBPTY.mjs.map +0 -1
  60. package/dist/chunk-7HO6AEOP.mjs +0 -74
  61. package/dist/chunk-7HO6AEOP.mjs.map +0 -1
  62. package/dist/chunk-7MABZJIM.mjs +0 -29
  63. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  64. package/dist/chunk-7N62DNSO.mjs +0 -41
  65. package/dist/chunk-7N62DNSO.mjs.map +0 -1
  66. package/dist/chunk-7ZY5AIJO.mjs +0 -161
  67. package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
  68. package/dist/chunk-A2LUXHD2.mjs +0 -7631
  69. package/dist/chunk-A2LUXHD2.mjs.map +0 -1
  70. package/dist/chunk-ALCLXXTY.mjs +0 -187
  71. package/dist/chunk-ALCLXXTY.mjs.map +0 -1
  72. package/dist/chunk-AZ7YUVNR.mjs +0 -65
  73. package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
  74. package/dist/chunk-B232I2GP.mjs +0 -163
  75. package/dist/chunk-B232I2GP.mjs.map +0 -1
  76. package/dist/chunk-BHG3LVHH.mjs +0 -176
  77. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  78. package/dist/chunk-C2ROET2V.mjs +0 -718
  79. package/dist/chunk-C2ROET2V.mjs.map +0 -1
  80. package/dist/chunk-C3DLZMBU.mjs +0 -597
  81. package/dist/chunk-C3DLZMBU.mjs.map +0 -1
  82. package/dist/chunk-CGILA3WO.mjs +0 -14
  83. package/dist/chunk-CGILA3WO.mjs.map +0 -1
  84. package/dist/chunk-E2MPIBRE.mjs +0 -149
  85. package/dist/chunk-E2MPIBRE.mjs.map +0 -1
  86. package/dist/chunk-E6EPN5BT.mjs +0 -203
  87. package/dist/chunk-E6EPN5BT.mjs.map +0 -1
  88. package/dist/chunk-EEABSBKK.mjs +0 -10
  89. package/dist/chunk-EEABSBKK.mjs.map +0 -1
  90. package/dist/chunk-EJ7T4TPB.mjs +0 -622
  91. package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
  92. package/dist/chunk-FQYDHKKU.mjs +0 -128
  93. package/dist/chunk-FQYDHKKU.mjs.map +0 -1
  94. package/dist/chunk-FRPWCMMG.mjs +0 -299
  95. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  96. package/dist/chunk-GN72QAIH.mjs +0 -146
  97. package/dist/chunk-GN72QAIH.mjs.map +0 -1
  98. package/dist/chunk-GQVGIUSN.mjs +0 -149
  99. package/dist/chunk-GQVGIUSN.mjs.map +0 -1
  100. package/dist/chunk-GS6K5OCM.mjs +0 -407
  101. package/dist/chunk-GS6K5OCM.mjs.map +0 -1
  102. package/dist/chunk-GXASWWJU.mjs +0 -364
  103. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  104. package/dist/chunk-GY2STC2S.mjs +0 -180
  105. package/dist/chunk-GY2STC2S.mjs.map +0 -1
  106. package/dist/chunk-H2FA2SBS.mjs +0 -51
  107. package/dist/chunk-H2FA2SBS.mjs.map +0 -1
  108. package/dist/chunk-HNIQFZKB.mjs +0 -3550
  109. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  110. package/dist/chunk-ITN462YM.mjs +0 -98
  111. package/dist/chunk-ITN462YM.mjs.map +0 -1
  112. package/dist/chunk-J23HNLFY.mjs +0 -72
  113. package/dist/chunk-J23HNLFY.mjs.map +0 -1
  114. package/dist/chunk-J4FNJ5IU.mjs +0 -179
  115. package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
  116. package/dist/chunk-J5YWQVI5.mjs +0 -211
  117. package/dist/chunk-J5YWQVI5.mjs.map +0 -1
  118. package/dist/chunk-JDEOUK5V.mjs +0 -427
  119. package/dist/chunk-JDEOUK5V.mjs.map +0 -1
  120. package/dist/chunk-JK25YEN6.mjs +0 -219
  121. package/dist/chunk-JK25YEN6.mjs.map +0 -1
  122. package/dist/chunk-K4667E2Q.mjs +0 -1916
  123. package/dist/chunk-K4667E2Q.mjs.map +0 -1
  124. package/dist/chunk-LGHEOHBU.mjs +0 -218
  125. package/dist/chunk-LGHEOHBU.mjs.map +0 -1
  126. package/dist/chunk-LLC7BNXW.mjs +0 -275
  127. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  128. package/dist/chunk-LM2YNO4U.mjs +0 -24
  129. package/dist/chunk-LM2YNO4U.mjs.map +0 -1
  130. package/dist/chunk-MIUW47JX.mjs +0 -639
  131. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  132. package/dist/chunk-NM3CRAAL.mjs +0 -467
  133. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  134. package/dist/chunk-NNLCAVB6.mjs +0 -391
  135. package/dist/chunk-NNLCAVB6.mjs.map +0 -1
  136. package/dist/chunk-P7QDS5AT.mjs +0 -191
  137. package/dist/chunk-P7QDS5AT.mjs.map +0 -1
  138. package/dist/chunk-PFE6GMNE.mjs +0 -603
  139. package/dist/chunk-PFE6GMNE.mjs.map +0 -1
  140. package/dist/chunk-QGOHVJ6J.mjs +0 -63
  141. package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
  142. package/dist/chunk-QGQX7SFC.mjs +0 -180
  143. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  144. package/dist/chunk-QKVUNGAH.mjs +0 -39
  145. package/dist/chunk-QKVUNGAH.mjs.map +0 -1
  146. package/dist/chunk-QM746KUO.mjs +0 -56
  147. package/dist/chunk-QM746KUO.mjs.map +0 -1
  148. package/dist/chunk-QTZZ2ISQ.mjs +0 -753
  149. package/dist/chunk-QTZZ2ISQ.mjs.map +0 -1
  150. package/dist/chunk-RBRLLZL5.mjs +0 -81
  151. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  152. package/dist/chunk-RHIFZZUI.mjs +0 -69
  153. package/dist/chunk-RHIFZZUI.mjs.map +0 -1
  154. package/dist/chunk-RSKVYESE.mjs +0 -187
  155. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  156. package/dist/chunk-SCFX4UTD.mjs +0 -28
  157. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  158. package/dist/chunk-SL6HTIOK.mjs +0 -66
  159. package/dist/chunk-SL6HTIOK.mjs.map +0 -1
  160. package/dist/chunk-SPBBQLXI.mjs +0 -207
  161. package/dist/chunk-SPBBQLXI.mjs.map +0 -1
  162. package/dist/chunk-T4QJQK76.mjs +0 -459
  163. package/dist/chunk-T4QJQK76.mjs.map +0 -1
  164. package/dist/chunk-TQAEEJB4.mjs +0 -157
  165. package/dist/chunk-TQAEEJB4.mjs.map +0 -1
  166. package/dist/chunk-UB5UOSHB.mjs +0 -458
  167. package/dist/chunk-UB5UOSHB.mjs.map +0 -1
  168. package/dist/chunk-USWZZUEH.mjs +0 -25
  169. package/dist/chunk-USWZZUEH.mjs.map +0 -1
  170. package/dist/chunk-UVCIEUJC.mjs +0 -16
  171. package/dist/chunk-UVCIEUJC.mjs.map +0 -1
  172. package/dist/chunk-UXUAWNO5.mjs +0 -396
  173. package/dist/chunk-UXUAWNO5.mjs.map +0 -1
  174. package/dist/chunk-V3XURYJO.mjs +0 -756
  175. package/dist/chunk-V3XURYJO.mjs.map +0 -1
  176. package/dist/chunk-V6WE6JSZ.mjs +0 -352
  177. package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
  178. package/dist/chunk-V7RBCSDJ.mjs +0 -170
  179. package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
  180. package/dist/chunk-VCANOYFI.mjs +0 -588
  181. package/dist/chunk-VCANOYFI.mjs.map +0 -1
  182. package/dist/chunk-VY2UYN5R.mjs +0 -224
  183. package/dist/chunk-VY2UYN5R.mjs.map +0 -1
  184. package/dist/chunk-W2CRQFF6.mjs +0 -1352
  185. package/dist/chunk-W2CRQFF6.mjs.map +0 -1
  186. package/dist/chunk-WZ5QFROO.mjs +0 -23
  187. package/dist/chunk-WZ5QFROO.mjs.map +0 -1
  188. package/dist/chunk-XIVV5IWN.mjs +0 -541
  189. package/dist/chunk-XIVV5IWN.mjs.map +0 -1
  190. package/dist/chunk-YW7OBE6Q.mjs +0 -119
  191. package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
  192. package/dist/chunk-Z5CQMP54.mjs +0 -365
  193. package/dist/chunk-Z5CQMP54.mjs.map +0 -1
  194. package/dist/chunk-ZBE6MLHL.mjs +0 -230
  195. package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
  196. package/dist/chunk-ZZ57EH5Z.mjs +0 -173
  197. package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
  198. package/dist/client-BT1mFQas.d.mts +0 -447
  199. package/dist/client-Nn0q4eO4.d.ts +0 -447
  200. package/dist/client-cache-CIlyBlmx.d.ts +0 -6
  201. package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
  202. package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
  203. package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
  204. package/dist/client-plugins.cjs +0 -415
  205. package/dist/client-plugins.cjs.map +0 -1
  206. package/dist/client-plugins.d.mts +0 -22
  207. package/dist/client-plugins.d.ts +0 -22
  208. package/dist/client-plugins.mjs +0 -10
  209. package/dist/client-plugins.mjs.map +0 -1
  210. package/dist/client.cjs +0 -5402
  211. package/dist/client.cjs.map +0 -1
  212. package/dist/client.d.mts +0 -447
  213. package/dist/client.d.ts +0 -447
  214. package/dist/client.mjs +0 -110
  215. package/dist/client.mjs.map +0 -1
  216. package/dist/config.cjs +0 -38
  217. package/dist/config.cjs.map +0 -1
  218. package/dist/config.d.mts +0 -29
  219. package/dist/config.d.ts +0 -29
  220. package/dist/config.mjs +0 -10
  221. package/dist/config.mjs.map +0 -1
  222. package/dist/cron.cjs +0 -406
  223. package/dist/cron.cjs.map +0 -1
  224. package/dist/cron.d.mts +0 -78
  225. package/dist/cron.d.ts +0 -78
  226. package/dist/cron.mjs +0 -30
  227. package/dist/cron.mjs.map +0 -1
  228. package/dist/deferred.cjs +0 -438
  229. package/dist/deferred.cjs.map +0 -1
  230. package/dist/deferred.d.mts +0 -42
  231. package/dist/deferred.d.ts +0 -42
  232. package/dist/deferred.mjs +0 -28
  233. package/dist/deferred.mjs.map +0 -1
  234. package/dist/deployment.cjs +0 -199
  235. package/dist/deployment.cjs.map +0 -1
  236. package/dist/deployment.d.mts +0 -34
  237. package/dist/deployment.d.ts +0 -34
  238. package/dist/deployment.mjs +0 -38
  239. package/dist/deployment.mjs.map +0 -1
  240. package/dist/devtools-LVC3VB5P.mjs +0 -370
  241. package/dist/devtools-LVC3VB5P.mjs.map +0 -1
  242. package/dist/devtools-client-3XRTBND5.mjs +0 -216
  243. package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
  244. package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
  245. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  246. package/dist/docs.cjs +0 -5553
  247. package/dist/docs.cjs.map +0 -1
  248. package/dist/docs.d.mts +0 -69
  249. package/dist/docs.d.ts +0 -69
  250. package/dist/docs.mjs +0 -46
  251. package/dist/docs.mjs.map +0 -1
  252. package/dist/env-types.cjs +0 -223
  253. package/dist/env-types.cjs.map +0 -1
  254. package/dist/env-types.d.mts +0 -11
  255. package/dist/env-types.d.ts +0 -11
  256. package/dist/env-types.mjs +0 -9
  257. package/dist/env-types.mjs.map +0 -1
  258. package/dist/env.cjs +0 -215
  259. package/dist/env.cjs.map +0 -1
  260. package/dist/env.d.mts +0 -45
  261. package/dist/env.d.ts +0 -45
  262. package/dist/env.mjs +0 -22
  263. package/dist/env.mjs.map +0 -1
  264. package/dist/environment/vite.d.mts +0 -22
  265. package/dist/environment/vite.d.ts +0 -22
  266. package/dist/environment.cjs +0 -96
  267. package/dist/environment.cjs.map +0 -1
  268. package/dist/environment.d.mts +0 -18
  269. package/dist/environment.d.ts +0 -18
  270. package/dist/environment.mjs +0 -14
  271. package/dist/environment.mjs.map +0 -1
  272. package/dist/headers.cjs +0 -126
  273. package/dist/headers.cjs.map +0 -1
  274. package/dist/headers.d.mts +0 -22
  275. package/dist/headers.d.ts +0 -22
  276. package/dist/headers.mjs +0 -12
  277. package/dist/headers.mjs.map +0 -1
  278. package/dist/i18n/client.d.mts +0 -32
  279. package/dist/i18n/client.d.ts +0 -32
  280. package/dist/i18n/index.d.mts +0 -20
  281. package/dist/i18n/index.d.ts +0 -20
  282. package/dist/i18n/server.d.mts +0 -30
  283. package/dist/i18n/server.d.ts +0 -30
  284. package/dist/image/server.d.mts +0 -37
  285. package/dist/image/server.d.ts +0 -37
  286. package/dist/image/sharp.d.mts +0 -7
  287. package/dist/image/sharp.d.ts +0 -7
  288. package/dist/image-config-Duob7wER.d.mts +0 -50
  289. package/dist/image-config-Duob7wER.d.ts +0 -50
  290. package/dist/image.cjs +0 -209
  291. package/dist/image.cjs.map +0 -1
  292. package/dist/image.d.mts +0 -39
  293. package/dist/image.d.ts +0 -39
  294. package/dist/image.mjs +0 -165
  295. package/dist/image.mjs.map +0 -1
  296. package/dist/index.cjs +0 -41822
  297. package/dist/index.cjs.map +0 -1
  298. package/dist/index.d.mts +0 -451
  299. package/dist/index.d.ts +0 -451
  300. package/dist/index.mjs +0 -973
  301. package/dist/index.mjs.map +0 -1
  302. package/dist/integration-api-CHT2OKAf.d.mts +0 -93
  303. package/dist/integration-api-CHT2OKAf.d.ts +0 -93
  304. package/dist/integration-orm-GQLGU66X.mjs +0 -13
  305. package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
  306. package/dist/integrations.cjs +0 -2820
  307. package/dist/integrations.cjs.map +0 -1
  308. package/dist/integrations.d.mts +0 -22
  309. package/dist/integrations.d.ts +0 -22
  310. package/dist/integrations.mjs +0 -51
  311. package/dist/integrations.mjs.map +0 -1
  312. package/dist/internal/build-runtime.d.mts +0 -39
  313. package/dist/internal/build-runtime.d.ts +0 -39
  314. package/dist/internal/client-runtime.d.mts +0 -2
  315. package/dist/internal/client-runtime.d.ts +0 -2
  316. package/dist/internal/config-runtime.d.mts +0 -39
  317. package/dist/internal/config-runtime.d.ts +0 -39
  318. package/dist/internal/production-node-env.d.mts +0 -12
  319. package/dist/internal/production-node-env.d.ts +0 -12
  320. package/dist/internal/production-runtime.d.mts +0 -39
  321. package/dist/internal/production-runtime.d.ts +0 -39
  322. package/dist/layers-VWVDTPUZ.mjs +0 -16
  323. package/dist/layers-VWVDTPUZ.mjs.map +0 -1
  324. package/dist/manager-THKFTOFE.mjs +0 -10
  325. package/dist/manager-THKFTOFE.mjs.map +0 -1
  326. package/dist/markdown.cjs +0 -299
  327. package/dist/markdown.cjs.map +0 -1
  328. package/dist/markdown.d.mts +0 -43
  329. package/dist/markdown.d.ts +0 -43
  330. package/dist/markdown.mjs +0 -14
  331. package/dist/markdown.mjs.map +0 -1
  332. package/dist/metadata-BAPg_Nmo.d.ts +0 -22
  333. package/dist/metadata-_6i9oFG3.d.mts +0 -22
  334. package/dist/middleware.cjs +0 -2148
  335. package/dist/middleware.cjs.map +0 -1
  336. package/dist/middleware.d.mts +0 -164
  337. package/dist/middleware.d.ts +0 -164
  338. package/dist/middleware.mjs +0 -49
  339. package/dist/middleware.mjs.map +0 -1
  340. package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
  341. package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
  342. package/dist/navigation.cjs +0 -1329
  343. package/dist/navigation.cjs.map +0 -1
  344. package/dist/navigation.d.mts +0 -14
  345. package/dist/navigation.d.ts +0 -14
  346. package/dist/navigation.mjs +0 -33
  347. package/dist/navigation.mjs.map +0 -1
  348. package/dist/nitro-QO5LV6QK.mjs +0 -689
  349. package/dist/nitro-QO5LV6QK.mjs.map +0 -1
  350. package/dist/observability.cjs +0 -186
  351. package/dist/observability.cjs.map +0 -1
  352. package/dist/observability.d.mts +0 -335
  353. package/dist/observability.d.ts +0 -335
  354. package/dist/observability.mjs +0 -16
  355. package/dist/observability.mjs.map +0 -1
  356. package/dist/params-BALtrRim.d.ts +0 -15
  357. package/dist/params-ry-lxqmy.d.mts +0 -15
  358. package/dist/plugin-BJDf43dc.d.mts +0 -165
  359. package/dist/plugin-BJDf43dc.d.ts +0 -165
  360. package/dist/plugin.cjs +0 -23225
  361. package/dist/plugin.d.mts +0 -22
  362. package/dist/plugin.d.ts +0 -22
  363. package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
  364. package/dist/production-runtime-C_B79w2P.d.mts +0 -28
  365. package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
  366. package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
  367. package/dist/query/client.d.mts +0 -61
  368. package/dist/query/client.d.ts +0 -61
  369. package/dist/query/index.d.mts +0 -90
  370. package/dist/query/index.d.ts +0 -90
  371. package/dist/query/parsers.d.mts +0 -25
  372. package/dist/query/parsers.d.ts +0 -25
  373. package/dist/query/server.d.mts +0 -55
  374. package/dist/query/server.d.ts +0 -55
  375. package/dist/request-BrFBuc8G.d.mts +0 -6
  376. package/dist/request-BslSZIRz.d.ts +0 -6
  377. package/dist/request.d.mts +0 -2
  378. package/dist/request.d.ts +0 -2
  379. package/dist/resolver-C6iecsDV.d.ts +0 -14
  380. package/dist/resolver-DlOPpjkB.d.mts +0 -14
  381. package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
  382. package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
  383. package/dist/router.d.mts +0 -36
  384. package/dist/router.d.ts +0 -36
  385. package/dist/routes.d.mts +0 -224
  386. package/dist/routes.d.ts +0 -224
  387. package/dist/runtime-9nQjVM7X.d.mts +0 -206
  388. package/dist/runtime-B6GvwDS1.d.ts +0 -27
  389. package/dist/runtime-DeAAZ6gO.d.mts +0 -27
  390. package/dist/runtime-DgeS2skB.d.ts +0 -206
  391. package/dist/server-action-security.d.mts +0 -43
  392. package/dist/server-action-security.d.ts +0 -43
  393. package/dist/server-fn-client.d.mts +0 -32
  394. package/dist/server-fn-client.d.ts +0 -32
  395. package/dist/server-fn.d.mts +0 -93
  396. package/dist/server-fn.d.ts +0 -93
  397. package/dist/server-plugins.d.mts +0 -55
  398. package/dist/server-plugins.d.ts +0 -55
  399. package/dist/server-query-client.d.mts +0 -50
  400. package/dist/server-query-client.d.ts +0 -50
  401. package/dist/server-query.d.mts +0 -36
  402. package/dist/server-query.d.ts +0 -36
  403. package/dist/server.d.mts +0 -48
  404. package/dist/server.d.ts +0 -48
  405. package/dist/storage.d.mts +0 -52
  406. package/dist/storage.d.ts +0 -52
  407. package/dist/testing.d.mts +0 -101
  408. package/dist/testing.d.ts +0 -101
  409. package/dist/transport-BmbGTXA5.d.mts +0 -49
  410. package/dist/transport-BmbGTXA5.d.ts +0 -49
  411. package/dist/types-BH1lhg5G.d.mts +0 -81
  412. package/dist/types-BH1lhg5G.d.ts +0 -81
  413. package/dist/types-C9N-nk5R.d.mts +0 -53
  414. package/dist/types-C9N-nk5R.d.ts +0 -53
  415. package/dist/types-D1A6-XvH.d.mts +0 -73
  416. package/dist/types-D1A6-XvH.d.ts +0 -73
  417. package/dist/utils-CHXlMDkg.d.mts +0 -23
  418. package/dist/utils-Drsyz1Vj.d.ts +0 -23
  419. package/dist/version.d.mts +0 -3
  420. package/dist/version.d.ts +0 -3
  421. package/dist/vite.d.mts +0 -22
  422. package/dist/vite.d.ts +0 -22
  423. package/dist/workflows.d.mts +0 -110
  424. package/dist/workflows.d.ts +0 -110
@@ -1,119 +0,0 @@
1
- import {
2
- normalizeFarmRouteRuntimeConfig
3
- } from "./chunk-GQVGIUSN.mjs";
4
- import {
5
- __name
6
- } from "./chunk-CGILA3WO.mjs";
7
-
8
- // src/route-rules.ts
9
- function normalizeRouteRules(routeRules) {
10
- if (!routeRules) return {};
11
- const normalized = {};
12
- for (const [source, rule] of Object.entries(routeRules)) {
13
- if (!source || !rule) continue;
14
- const normalizedSource = normalizeRuleSource(source);
15
- normalized[normalizedSource] = {
16
- ...rule,
17
- ...normalizeFarmRouteRuntimeConfig(rule, `Route rule "${normalizedSource}"`)
18
- };
19
- }
20
- return normalized;
21
- }
22
- __name(normalizeRouteRules, "normalizeRouteRules");
23
- function routeRulesToRedirects(routeRules) {
24
- return Object.entries(routeRules).filter(
25
- (entry) => Boolean(entry[1].redirect)
26
- ).map(([source, rule]) => {
27
- const redirect = typeof rule.redirect === "string" ? { to: rule.redirect } : rule.redirect;
28
- return {
29
- source,
30
- destination: redirect.to,
31
- permanent: redirect.permanent,
32
- statusCode: redirect.statusCode ?? (redirect.permanent === true ? 308 : void 0)
33
- };
34
- });
35
- }
36
- __name(routeRulesToRedirects, "routeRulesToRedirects");
37
- function routeRulesToHeaders(routeRules) {
38
- const configs = [];
39
- for (const [source, rule] of Object.entries(routeRules)) {
40
- const headers = {
41
- ...normalizeCorsHeaders(rule.cors),
42
- ...rule.headers
43
- };
44
- const entries = Object.entries(headers);
45
- if (entries.length === 0) continue;
46
- configs.push({
47
- source,
48
- headers: entries.map(([key, value]) => ({ key, value }))
49
- });
50
- }
51
- return configs;
52
- }
53
- __name(routeRulesToHeaders, "routeRulesToHeaders");
54
- function routeRulesToNitroRouteRules(routeRules) {
55
- const nitroRules = {};
56
- for (const [source, rule] of Object.entries(routeRules)) {
57
- const nitroRule = { ...rule };
58
- if (rule.render === "static") {
59
- nitroRule.prerender = true;
60
- } else if (rule.render === "dynamic") {
61
- nitroRule.prerender = false;
62
- }
63
- if (rule.redirect && typeof rule.redirect !== "string") {
64
- nitroRule.redirect = rule.redirect.to;
65
- if (rule.redirect.statusCode) {
66
- nitroRule.statusCode = rule.redirect.statusCode;
67
- }
68
- }
69
- if (rule.cors) {
70
- nitroRule.cors = true;
71
- nitroRule.headers = {
72
- ...normalizeCorsHeaders(rule.cors),
73
- ...rule.headers
74
- };
75
- }
76
- delete nitroRule.render;
77
- delete nitroRule.runtime;
78
- delete nitroRule.regions;
79
- delete nitroRule.maxDuration;
80
- nitroRules[source] = nitroRule;
81
- }
82
- return nitroRules;
83
- }
84
- __name(routeRulesToNitroRouteRules, "routeRulesToNitroRouteRules");
85
- function normalizeCorsHeaders(cors) {
86
- if (!cors) return {};
87
- if (cors === true) {
88
- return {
89
- "Access-Control-Allow-Origin": "*",
90
- "Access-Control-Allow-Methods": "*",
91
- "Access-Control-Allow-Headers": "*"
92
- };
93
- }
94
- return {
95
- "Access-Control-Allow-Origin": cors.origin ?? "*",
96
- "Access-Control-Allow-Methods": normalizeList(cors.methods) ?? "*",
97
- "Access-Control-Allow-Headers": normalizeList(cors.headers) ?? "*"
98
- };
99
- }
100
- __name(normalizeCorsHeaders, "normalizeCorsHeaders");
101
- function normalizeList(value) {
102
- if (!value || typeof value === "string") return value;
103
- return value.join(", ");
104
- }
105
- __name(normalizeList, "normalizeList");
106
- function normalizeRuleSource(source) {
107
- const trimmed = source.trim();
108
- if (!trimmed) return "/";
109
- return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
110
- }
111
- __name(normalizeRuleSource, "normalizeRuleSource");
112
-
113
- export {
114
- normalizeRouteRules,
115
- routeRulesToRedirects,
116
- routeRulesToHeaders,
117
- routeRulesToNitroRouteRules
118
- };
119
- //# sourceMappingURL=chunk-YW7OBE6Q.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/route-rules.ts"],"sourcesContent":["import type { HeaderConfig, RedirectConfig } from \"./config\";\nimport type { FarmRouteRuntimeConfig } from \"./route-runtime\";\nimport { normalizeFarmRouteRuntimeConfig } from \"./route-runtime\";\n\nexport type FarmRouteRuleRenderMode = \"static\" | \"dynamic\";\n\nexport type FarmRouteRuleRedirect =\n | string\n | {\n to: string;\n statusCode?: number;\n permanent?: boolean;\n };\n\nexport type FarmRouteRuleCors =\n | boolean\n | {\n origin?: string;\n methods?: string | readonly string[];\n headers?: string | readonly string[];\n };\n\nexport interface FarmRouteRule extends FarmRouteRuntimeConfig {\n prerender?: boolean;\n render?: FarmRouteRuleRenderMode;\n ssr?: boolean;\n swr?: boolean | number;\n isr?: boolean | number;\n cors?: FarmRouteRuleCors;\n headers?: Record<string, string>;\n redirect?: FarmRouteRuleRedirect;\n}\n\nexport type FarmRouteRules = Record<string, FarmRouteRule>;\n\nexport function normalizeRouteRules(routeRules: FarmRouteRules | undefined): FarmRouteRules {\n if (!routeRules) return {};\n\n const normalized: FarmRouteRules = {};\n for (const [source, rule] of Object.entries(routeRules)) {\n if (!source || !rule) continue;\n const normalizedSource = normalizeRuleSource(source);\n normalized[normalizedSource] = {\n ...rule,\n ...normalizeFarmRouteRuntimeConfig(rule, `Route rule \"${normalizedSource}\"`),\n };\n }\n return normalized;\n}\n\nexport function routeRulesToRedirects(routeRules: FarmRouteRules): RedirectConfig[] {\n return Object.entries(routeRules)\n .filter((entry): entry is [string, FarmRouteRule & { redirect: FarmRouteRuleRedirect }] =>\n Boolean(entry[1].redirect),\n )\n .map(([source, rule]) => {\n const redirect = typeof rule.redirect === \"string\" ? { to: rule.redirect } : rule.redirect;\n return {\n source,\n destination: redirect.to,\n permanent: redirect.permanent,\n statusCode: redirect.statusCode ?? (redirect.permanent === true ? 308 : undefined),\n };\n });\n}\n\nexport function routeRulesToHeaders(routeRules: FarmRouteRules): HeaderConfig[] {\n const configs: HeaderConfig[] = [];\n\n for (const [source, rule] of Object.entries(routeRules)) {\n const headers = {\n ...normalizeCorsHeaders(rule.cors),\n ...rule.headers,\n };\n\n const entries = Object.entries(headers);\n if (entries.length === 0) continue;\n\n configs.push({\n source,\n headers: entries.map(([key, value]) => ({ key, value })),\n });\n }\n\n return configs;\n}\n\nexport function routeRulesToNitroRouteRules(routeRules: FarmRouteRules): Record<string, any> {\n const nitroRules: Record<string, any> = {};\n\n for (const [source, rule] of Object.entries(routeRules)) {\n const nitroRule: Record<string, any> = { ...rule };\n\n if (rule.render === \"static\") {\n nitroRule.prerender = true;\n } else if (rule.render === \"dynamic\") {\n nitroRule.prerender = false;\n }\n\n if (rule.redirect && typeof rule.redirect !== \"string\") {\n nitroRule.redirect = rule.redirect.to;\n if (rule.redirect.statusCode) {\n nitroRule.statusCode = rule.redirect.statusCode;\n }\n }\n\n if (rule.cors) {\n nitroRule.cors = true;\n nitroRule.headers = {\n ...normalizeCorsHeaders(rule.cors),\n ...rule.headers,\n };\n }\n\n delete nitroRule.render;\n delete nitroRule.runtime;\n delete nitroRule.regions;\n delete nitroRule.maxDuration;\n nitroRules[source] = nitroRule;\n }\n\n return nitroRules;\n}\n\nfunction normalizeCorsHeaders(cors: FarmRouteRuleCors | undefined): Record<string, string> {\n if (!cors) return {};\n\n if (cors === true) {\n return {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"*\",\n \"Access-Control-Allow-Headers\": \"*\",\n };\n }\n\n return {\n \"Access-Control-Allow-Origin\": cors.origin ?? \"*\",\n \"Access-Control-Allow-Methods\": normalizeList(cors.methods) ?? \"*\",\n \"Access-Control-Allow-Headers\": normalizeList(cors.headers) ?? \"*\",\n };\n}\n\nfunction normalizeList(value: string | readonly string[] | undefined): string | undefined {\n if (!value || typeof value === \"string\") return value;\n return value.join(\", \");\n}\n\nfunction normalizeRuleSource(source: string): string {\n const trimmed = source.trim();\n if (!trimmed) return \"/\";\n return trimmed.startsWith(\"/\") ? trimmed : `/${trimmed}`;\n}\n"],"mappings":"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","names":[]}
@@ -1,365 +0,0 @@
1
- import {
2
- _runWithFarmI18nRequest
3
- } from "./chunk-2ED5Q2GH.mjs";
4
- import {
5
- PROGRAMMATIC_ROUTE_FILE_NAMES,
6
- createProgrammaticRouteModuleId,
7
- getProgrammaticRouteManifest,
8
- scanProgrammaticPagePaths
9
- } from "./chunk-C2ROET2V.mjs";
10
- import {
11
- getFarmRouteRuntimeConfig,
12
- normalizeFarmRouteRuntimeConfig
13
- } from "./chunk-GQVGIUSN.mjs";
14
- import {
15
- logger
16
- } from "./chunk-J4FNJ5IU.mjs";
17
- import {
18
- invokeAPIRouteEndpoint,
19
- matchAPIRoute
20
- } from "./chunk-PFE6GMNE.mjs";
21
- import {
22
- __name
23
- } from "./chunk-CGILA3WO.mjs";
24
-
25
- // src/api/route-manager.ts
26
- import * as fs from "fs";
27
- import * as path from "path";
28
-
29
- // src/routes.server.ts
30
- import { existsSync, readFileSync } from "fs";
31
- import { join } from "path";
32
- async function loadProgrammaticRouteManifests(options) {
33
- const manifests = [];
34
- for (const filePath of findProgrammaticRouteFiles(options.root, options.srcDir)) {
35
- const mod = await options.loadModule(filePath);
36
- const manifest = getProgrammaticRouteManifest(mod);
37
- if (manifest) {
38
- manifests.push({ filePath, manifest });
39
- }
40
- }
41
- return manifests;
42
- }
43
- __name(loadProgrammaticRouteManifests, "loadProgrammaticRouteManifests");
44
- function findProgrammaticRouteFiles(root, srcDir = "src") {
45
- return findProgrammaticRouteFilesInDir(join(root, srcDir));
46
- }
47
- __name(findProgrammaticRouteFiles, "findProgrammaticRouteFiles");
48
- function findProgrammaticRouteFilesInDir(srcRoot) {
49
- const files = [];
50
- for (const fileName of PROGRAMMATIC_ROUTE_FILE_NAMES) {
51
- const filePath = join(srcRoot, fileName);
52
- if (existsSync(filePath)) {
53
- files.push(filePath);
54
- }
55
- }
56
- return files;
57
- }
58
- __name(findProgrammaticRouteFilesInDir, "findProgrammaticRouteFilesInDir");
59
- async function discoverProgrammaticRoutePaths(root, srcDir = "src") {
60
- const paths = /* @__PURE__ */ new Set();
61
- const files = /* @__PURE__ */ new Set([
62
- ...findProgrammaticRouteFiles(root, srcDir),
63
- ...await findProgrammaticRouteSourceFiles(join(root, srcDir))
64
- ]);
65
- for (const filePath of files) {
66
- const source = readFileSync(filePath, "utf8");
67
- for (const routePath of scanProgrammaticPagePaths(source)) {
68
- paths.add(routePath);
69
- }
70
- }
71
- return Array.from(paths).sort();
72
- }
73
- __name(discoverProgrammaticRoutePaths, "discoverProgrammaticRoutePaths");
74
- async function findProgrammaticRouteSourceFiles(srcRoot) {
75
- if (!existsSync(srcRoot)) {
76
- return [];
77
- }
78
- try {
79
- const glob = await import("fast-glob");
80
- return await glob.default("**/*.{ts,tsx,js,jsx}", {
81
- cwd: srcRoot,
82
- absolute: true,
83
- ignore: [
84
- "**/*.d.ts",
85
- "**/node_modules/**",
86
- "**/.*/**",
87
- "farm-routes.d.ts",
88
- "farm-env.d.ts",
89
- "lib/api.generated.ts"
90
- ]
91
- });
92
- } catch {
93
- return [];
94
- }
95
- }
96
- __name(findProgrammaticRouteSourceFiles, "findProgrammaticRouteSourceFiles");
97
-
98
- // src/api/route-manager.ts
99
- var API_ROUTE_METHODS = [
100
- "GET",
101
- "HEAD",
102
- "POST",
103
- "PUT",
104
- "DELETE",
105
- "PATCH",
106
- "OPTIONS"
107
- ];
108
- var _APIRouteManager = class _APIRouteManager {
109
- constructor(appDir, viteServer, options = {}) {
110
- this.routes = /* @__PURE__ */ new Map();
111
- this.appDirs = Array.isArray(appDir) ? [...appDir] : [appDir];
112
- this.viteServer = viteServer;
113
- this.throwOnLoadError = options.throwOnLoadError === true;
114
- this.i18n = options.i18n;
115
- }
116
- /**
117
- * Discover route.ts files in /app/api and explicit endpoints in root routes.ts
118
- */
119
- async discoverRoutes() {
120
- this.routes.clear();
121
- for (const appDir of this.appDirs) {
122
- const apiDir = path.join(appDir, "api");
123
- let routeFiles = [];
124
- if (fs.existsSync(apiDir)) {
125
- routeFiles = this.findRouteFiles(apiDir);
126
- }
127
- for (const filePath of routeFiles) {
128
- await this.loadRoute(filePath, appDir);
129
- }
130
- await this.loadRootRoutes(appDir);
131
- await this.loadProgrammaticApiRoutes(appDir);
132
- }
133
- if (process.env.FARM_VERBOSE) {
134
- logger.success(`Discovered ${this.routes.size} API routes`);
135
- for (const [routePath, route] of this.routes) {
136
- logger.info(` ${route.methods.join(", ")} ${routePath}`);
137
- }
138
- }
139
- }
140
- /**
141
- * Recursively find all route.ts files
142
- */
143
- findRouteFiles(dir) {
144
- const files = [];
145
- if (!fs.existsSync(dir)) {
146
- return files;
147
- }
148
- const entries = fs.readdirSync(dir, { withFileTypes: true });
149
- for (const entry of entries) {
150
- const fullPath = path.join(dir, entry.name);
151
- if (entry.isDirectory()) {
152
- files.push(...this.findRouteFiles(fullPath));
153
- } else if (entry.name === "route.ts" || entry.name === "route.tsx" || entry.name === "route.js") {
154
- files.push(fullPath);
155
- }
156
- }
157
- return files;
158
- }
159
- /**
160
- * Load a route.ts file and extract HTTP method exports
161
- */
162
- async loadRoute(filePath, appDir) {
163
- try {
164
- const apiDir = path.join(appDir, "api");
165
- const relativePath = path.relative(apiDir, path.dirname(filePath));
166
- const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
167
- const routeModule = await this.loadModule(filePath);
168
- const endpoints = {};
169
- const availableMethods = [];
170
- for (const method of API_ROUTE_METHODS) {
171
- if (routeModule[method]) {
172
- endpoints[method] = routeModule[method];
173
- availableMethods.push(method);
174
- }
175
- }
176
- if (availableMethods.length > 0) {
177
- const runtimeConfig = normalizeFarmRouteRuntimeConfig(
178
- getFarmRouteRuntimeConfig(routeModule),
179
- `API route "${routePath}"`
180
- );
181
- this.routes.set(routePath, {
182
- path: routePath,
183
- filePath,
184
- methods: availableMethods,
185
- endpoints,
186
- ...runtimeConfig
187
- });
188
- }
189
- } catch (error) {
190
- this.handleLoadError(`Error loading route ${filePath}`, error);
191
- }
192
- }
193
- /**
194
- * Load explicit-path endpoints from src/routes.ts-style files.
195
- */
196
- async loadRootRoutes(appDir) {
197
- const routesFile = this.findRootRoutesFile(appDir);
198
- if (!routesFile) {
199
- return;
200
- }
201
- try {
202
- const routesModule = await this.loadModule(routesFile);
203
- for (const exportValue of Object.values(routesModule)) {
204
- const endpoint = exportValue;
205
- if (!endpoint?.__path) {
206
- continue;
207
- }
208
- const method = String(endpoint.__method || "GET").toUpperCase();
209
- this.addEndpoint(endpoint.__path, routesFile, method, endpoint);
210
- }
211
- } catch (error) {
212
- this.handleLoadError(`Error loading root API routes ${routesFile}`, error);
213
- }
214
- }
215
- async loadProgrammaticApiRoutes(appDir) {
216
- const candidateRoots = [path.dirname(appDir), appDir];
217
- const routeFiles = Array.from(
218
- new Set(candidateRoots.flatMap((srcRoot) => findProgrammaticRouteFilesInDir(srcRoot)))
219
- );
220
- for (const routeFile of routeFiles) {
221
- try {
222
- const routesModule = await this.loadModule(routeFile);
223
- const manifest = getProgrammaticRouteManifest(routesModule);
224
- if (!manifest) continue;
225
- for (const definition of manifest.routes) {
226
- if (definition.kind !== "api") continue;
227
- this.addProgrammaticApiRoute(routeFile, definition);
228
- }
229
- } catch (error) {
230
- this.handleLoadError(`Error loading programmatic API routes ${routeFile}`, error);
231
- }
232
- }
233
- }
234
- handleLoadError(message, error) {
235
- logger.error(`${message}: ${error}`);
236
- if (this.throwOnLoadError) {
237
- throw error;
238
- }
239
- }
240
- findRootRoutesFile(appDir) {
241
- const routeNames = ["routes.ts", "routes.tsx", "routes.js"];
242
- const candidateDirs = [path.dirname(appDir), appDir];
243
- const seen = /* @__PURE__ */ new Set();
244
- for (const dir of candidateDirs) {
245
- for (const routeName of routeNames) {
246
- const routesFile = path.join(dir, routeName);
247
- if (seen.has(routesFile)) {
248
- continue;
249
- }
250
- seen.add(routesFile);
251
- if (fs.existsSync(routesFile)) {
252
- return routesFile;
253
- }
254
- }
255
- }
256
- return null;
257
- }
258
- async loadModule(filePath) {
259
- if (this.viteServer) {
260
- return await this.viteServer.ssrLoadModule(filePath);
261
- }
262
- const fileUrl = `file://${filePath}`;
263
- return await import(
264
- /* @vite-ignore */
265
- fileUrl
266
- );
267
- }
268
- addEndpoint(routePath, filePath, method, endpoint, runtimeConfig = {}) {
269
- const normalizedMethod = method.toUpperCase();
270
- const existingRoute = this.routes.get(routePath);
271
- if (existingRoute) {
272
- if (!existingRoute.methods.includes(normalizedMethod)) {
273
- existingRoute.methods.push(normalizedMethod);
274
- }
275
- existingRoute.endpoints[normalizedMethod] = endpoint;
276
- Object.assign(existingRoute, runtimeConfig);
277
- return;
278
- }
279
- this.routes.set(routePath, {
280
- path: routePath,
281
- filePath,
282
- methods: [normalizedMethod],
283
- endpoints: { [normalizedMethod]: endpoint },
284
- ...runtimeConfig
285
- });
286
- }
287
- addProgrammaticApiRoute(filePath, route) {
288
- const modulePath = createProgrammaticRouteModuleId(filePath, "api", route.path);
289
- const runtimeConfig = normalizeFarmRouteRuntimeConfig(route, `API route "${route.path}"`);
290
- for (const [method, endpoint] of Object.entries(route.methods)) {
291
- if (endpoint) {
292
- this.addEndpoint(route.path, modulePath, method, endpoint, runtimeConfig);
293
- }
294
- }
295
- }
296
- /**
297
- * Get the handler that directly invokes endpoint handlers
298
- */
299
- getHandler() {
300
- if (this.routes.size === 0) {
301
- return null;
302
- }
303
- return async (request) => {
304
- const url = new URL(request.url);
305
- const pathname = url.pathname;
306
- const method = request.method.toUpperCase();
307
- const match = matchAPIRoute(this.routes, pathname);
308
- if (!match) {
309
- return new Response(JSON.stringify({ error: "Not Found" }), {
310
- status: 404,
311
- headers: { "Content-Type": "application/json" }
312
- });
313
- }
314
- const { route, params } = match;
315
- const endpoint = route.endpoints[method];
316
- if (!endpoint) {
317
- return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
318
- status: 405,
319
- headers: { "Content-Type": "application/json" }
320
- });
321
- }
322
- const invoke = /* @__PURE__ */ __name(async () => {
323
- try {
324
- return await invokeAPIRouteEndpoint(endpoint, request, params);
325
- } catch (error) {
326
- console.error(`[API Error] ${pathname}:`, error);
327
- return new Response(JSON.stringify({ error: "Internal Server Error" }), {
328
- status: 500,
329
- headers: { "Content-Type": "application/json" }
330
- });
331
- }
332
- }, "invoke");
333
- return this.i18n?.config.enabled ? _runWithFarmI18nRequest(this.i18n, request, invoke, {
334
- redirect: false
335
- }) : invoke();
336
- };
337
- }
338
- /**
339
- * Check if a path is an API route
340
- */
341
- isAPIRoute(pathname) {
342
- return Boolean(this.matchRoute(pathname));
343
- }
344
- matchRoute(pathname) {
345
- return matchAPIRoute(this.routes, pathname);
346
- }
347
- /**
348
- * Get all routes for client type generation
349
- */
350
- getRoutes() {
351
- return this.routes;
352
- }
353
- };
354
- __name(_APIRouteManager, "APIRouteManager");
355
- var APIRouteManager = _APIRouteManager;
356
-
357
- export {
358
- loadProgrammaticRouteManifests,
359
- findProgrammaticRouteFiles,
360
- findProgrammaticRouteFilesInDir,
361
- discoverProgrammaticRoutePaths,
362
- API_ROUTE_METHODS,
363
- APIRouteManager
364
- };
365
- //# sourceMappingURL=chunk-Z5CQMP54.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/route-manager.ts","../src/routes.server.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport type { ViteDevServer } from \"vite\";\nimport { logger } from \"../utils\";\nimport {\n createProgrammaticRouteModuleId,\n getProgrammaticRouteManifest,\n type ProgrammaticApiRoute,\n} from \"../routes\";\nimport { findProgrammaticRouteFilesInDir } from \"../routes.server\";\nimport {\n getFarmRouteRuntimeConfig,\n normalizeFarmRouteRuntimeConfig,\n type FarmRouteRuntimeConfig,\n} from \"../route-runtime\";\nimport { _runWithFarmI18nRequest, type FarmI18nRuntime } from \"../i18n/server\";\nimport { invokeAPIRouteEndpoint, matchAPIRoute, type APIRouteMatch } from \"./runtime\";\n\nexport interface APIRoute extends FarmRouteRuntimeConfig {\n path: string;\n filePath: string;\n methods: string[];\n endpoints: Record<string, any>;\n}\n\nexport interface APIRouteManagerOptions {\n throwOnLoadError?: boolean;\n i18n?: FarmI18nRuntime;\n}\n\nexport const API_ROUTE_METHODS = [\n \"GET\",\n \"HEAD\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\",\n \"OPTIONS\",\n] as const;\n\nexport class APIRouteManager {\n private routes: Map<string, APIRoute> = new Map();\n private viteServer?: ViteDevServer;\n private appDirs: string[];\n private throwOnLoadError: boolean;\n private i18n?: FarmI18nRuntime;\n\n constructor(\n appDir: string | readonly string[],\n viteServer?: ViteDevServer,\n options: APIRouteManagerOptions = {},\n ) {\n this.appDirs = Array.isArray(appDir) ? [...appDir] : [appDir as string];\n this.viteServer = viteServer;\n this.throwOnLoadError = options.throwOnLoadError === true;\n this.i18n = options.i18n;\n }\n\n /**\n * Discover route.ts files in /app/api and explicit endpoints in root routes.ts\n */\n async discoverRoutes(): Promise<void> {\n this.routes.clear();\n\n for (const appDir of this.appDirs) {\n const apiDir = path.join(appDir, \"api\");\n let routeFiles: string[] = [];\n\n if (fs.existsSync(apiDir)) {\n routeFiles = this.findRouteFiles(apiDir);\n }\n\n for (const filePath of routeFiles) {\n await this.loadRoute(filePath, appDir);\n }\n\n await this.loadRootRoutes(appDir);\n await this.loadProgrammaticApiRoutes(appDir);\n }\n\n if (process.env.FARM_VERBOSE) {\n logger.success(`Discovered ${this.routes.size} API routes`);\n for (const [routePath, route] of this.routes) {\n logger.info(` ${route.methods.join(\", \")} ${routePath}`);\n }\n }\n }\n\n /**\n * Recursively find all route.ts files\n */\n private findRouteFiles(dir: string): string[] {\n const files: string[] = [];\n\n if (!fs.existsSync(dir)) {\n return files;\n }\n\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n if (entry.isDirectory()) {\n files.push(...this.findRouteFiles(fullPath));\n } else if (\n entry.name === \"route.ts\" ||\n entry.name === \"route.tsx\" ||\n entry.name === \"route.js\"\n ) {\n files.push(fullPath);\n }\n }\n\n return files;\n }\n\n /**\n * Load a route.ts file and extract HTTP method exports\n */\n private async loadRoute(filePath: string, appDir: string): Promise<void> {\n try {\n // Convert file path to API route path\n // /app/api/auth/login/route.ts -> /api/auth/login\n const apiDir = path.join(appDir, \"api\");\n const relativePath = path.relative(apiDir, path.dirname(filePath));\n const routePath = \"/api/\" + (relativePath === \".\" ? \"\" : relativePath.replace(/\\\\/g, \"/\"));\n\n const routeModule = await this.loadModule(filePath);\n\n const endpoints: Record<string, any> = {};\n const availableMethods: string[] = [];\n\n for (const method of API_ROUTE_METHODS) {\n if (routeModule[method]) {\n endpoints[method] = routeModule[method];\n availableMethods.push(method);\n }\n }\n\n if (availableMethods.length > 0) {\n const runtimeConfig = normalizeFarmRouteRuntimeConfig(\n getFarmRouteRuntimeConfig(routeModule),\n `API route \"${routePath}\"`,\n );\n this.routes.set(routePath, {\n path: routePath,\n filePath,\n methods: availableMethods,\n endpoints,\n ...runtimeConfig,\n });\n }\n } catch (error) {\n this.handleLoadError(`Error loading route ${filePath}`, error);\n }\n }\n\n /**\n * Load explicit-path endpoints from src/routes.ts-style files.\n */\n private async loadRootRoutes(appDir: string): Promise<void> {\n const routesFile = this.findRootRoutesFile(appDir);\n if (!routesFile) {\n return;\n }\n\n try {\n const routesModule = await this.loadModule(routesFile);\n\n for (const exportValue of Object.values(routesModule)) {\n const endpoint = exportValue as any;\n if (!endpoint?.__path) {\n continue;\n }\n\n const method = String(endpoint.__method || \"GET\").toUpperCase();\n this.addEndpoint(endpoint.__path, routesFile, method, endpoint);\n }\n } catch (error) {\n this.handleLoadError(`Error loading root API routes ${routesFile}`, error);\n }\n }\n\n private async loadProgrammaticApiRoutes(appDir: string): Promise<void> {\n const candidateRoots = [path.dirname(appDir), appDir];\n const routeFiles = Array.from(\n new Set(candidateRoots.flatMap((srcRoot) => findProgrammaticRouteFilesInDir(srcRoot))),\n );\n\n for (const routeFile of routeFiles) {\n try {\n const routesModule = await this.loadModule(routeFile);\n const manifest = getProgrammaticRouteManifest(routesModule);\n if (!manifest) continue;\n\n for (const definition of manifest.routes) {\n if (definition.kind !== \"api\") continue;\n this.addProgrammaticApiRoute(routeFile, definition);\n }\n } catch (error) {\n this.handleLoadError(`Error loading programmatic API routes ${routeFile}`, error);\n }\n }\n }\n\n private handleLoadError(message: string, error: unknown): void {\n logger.error(`${message}: ${error}`);\n if (this.throwOnLoadError) {\n throw error;\n }\n }\n\n private findRootRoutesFile(appDir: string): string | null {\n const routeNames = [\"routes.ts\", \"routes.tsx\", \"routes.js\"];\n const candidateDirs = [path.dirname(appDir), appDir];\n const seen = new Set<string>();\n\n for (const dir of candidateDirs) {\n for (const routeName of routeNames) {\n const routesFile = path.join(dir, routeName);\n if (seen.has(routesFile)) {\n continue;\n }\n seen.add(routesFile);\n\n if (fs.existsSync(routesFile)) {\n return routesFile;\n }\n }\n }\n\n return null;\n }\n\n private async loadModule(filePath: string): Promise<Record<string, unknown>> {\n if (this.viteServer) {\n return await this.viteServer.ssrLoadModule(filePath);\n }\n\n const fileUrl = `file://${filePath}`;\n return await import(/* @vite-ignore */ fileUrl);\n }\n\n private addEndpoint(\n routePath: string,\n filePath: string,\n method: string,\n endpoint: any,\n runtimeConfig: FarmRouteRuntimeConfig = {},\n ): void {\n const normalizedMethod = method.toUpperCase();\n const existingRoute = this.routes.get(routePath);\n\n if (existingRoute) {\n if (!existingRoute.methods.includes(normalizedMethod)) {\n existingRoute.methods.push(normalizedMethod);\n }\n existingRoute.endpoints[normalizedMethod] = endpoint;\n Object.assign(existingRoute, runtimeConfig);\n return;\n }\n\n this.routes.set(routePath, {\n path: routePath,\n filePath,\n methods: [normalizedMethod],\n endpoints: { [normalizedMethod]: endpoint },\n ...runtimeConfig,\n });\n }\n\n private addProgrammaticApiRoute(filePath: string, route: ProgrammaticApiRoute): void {\n const modulePath = createProgrammaticRouteModuleId(filePath, \"api\", route.path);\n const runtimeConfig = normalizeFarmRouteRuntimeConfig(route, `API route \"${route.path}\"`);\n for (const [method, endpoint] of Object.entries(route.methods)) {\n if (endpoint) {\n this.addEndpoint(route.path, modulePath, method, endpoint, runtimeConfig);\n }\n }\n }\n\n /**\n * Get the handler that directly invokes endpoint handlers\n */\n getHandler(): ((req: Request) => Promise<Response>) | null {\n if (this.routes.size === 0) {\n return null;\n }\n\n return async (request: Request): Promise<Response> => {\n const url = new URL(request.url);\n const pathname = url.pathname;\n const method = request.method.toUpperCase();\n\n // Find matching route\n const match = matchAPIRoute(this.routes, pathname);\n if (!match) {\n return new Response(JSON.stringify({ error: \"Not Found\" }), {\n status: 404,\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n\n // Check if method is supported\n const { route, params } = match;\n const endpoint = route.endpoints[method];\n if (!endpoint) {\n return new Response(JSON.stringify({ error: \"Method Not Allowed\" }), {\n status: 405,\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n\n const invoke = async () => {\n try {\n return await invokeAPIRouteEndpoint(endpoint, request, params);\n } catch (error: any) {\n console.error(`[API Error] ${pathname}:`, error);\n return new Response(JSON.stringify({ error: \"Internal Server Error\" }), {\n status: 500,\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n };\n\n return this.i18n?.config.enabled\n ? _runWithFarmI18nRequest(this.i18n, request, invoke, {\n redirect: false,\n })\n : invoke();\n };\n }\n\n /**\n * Check if a path is an API route\n */\n isAPIRoute(pathname: string): boolean {\n return Boolean(this.matchRoute(pathname));\n }\n\n matchRoute(pathname: string): APIRouteMatch<APIRoute> | null {\n return matchAPIRoute(this.routes, pathname);\n }\n\n /**\n * Get all routes for client type generation\n */\n getRoutes(): Map<string, APIRoute> {\n return this.routes;\n }\n}\n\nexport {\n invokeAPIRouteEndpoint,\n isWebResponse,\n matchAPIRoute,\n normalizeRouteResponse,\n} from \"./runtime\";\nexport type { APIRouteMatch, APIRouteParams, APIRouteParamValue } from \"./runtime\";\n","import { existsSync, readFileSync } from \"fs\";\nimport { join } from \"path\";\nimport {\n PROGRAMMATIC_ROUTE_FILE_NAMES,\n getProgrammaticRouteManifest,\n scanProgrammaticPagePaths,\n type ProgrammaticRouteManifest,\n} from \"./routes\";\n\nexport interface LoadedProgrammaticRouteManifest {\n filePath: string;\n manifest: ProgrammaticRouteManifest;\n}\n\nexport async function loadProgrammaticRouteManifests(options: {\n root: string;\n srcDir?: string;\n loadModule: (filePath: string) => Promise<Record<string, any>>;\n}): Promise<LoadedProgrammaticRouteManifest[]> {\n const manifests: LoadedProgrammaticRouteManifest[] = [];\n\n for (const filePath of findProgrammaticRouteFiles(options.root, options.srcDir)) {\n const mod = await options.loadModule(filePath);\n const manifest = getProgrammaticRouteManifest(mod);\n if (manifest) {\n manifests.push({ filePath, manifest });\n }\n }\n\n return manifests;\n}\n\nexport function findProgrammaticRouteFiles(root: string, srcDir = \"src\"): string[] {\n return findProgrammaticRouteFilesInDir(join(root, srcDir));\n}\n\nexport function findProgrammaticRouteFilesInDir(srcRoot: string): string[] {\n const files: string[] = [];\n\n for (const fileName of PROGRAMMATIC_ROUTE_FILE_NAMES) {\n const filePath = join(srcRoot, fileName);\n if (existsSync(filePath)) {\n files.push(filePath);\n }\n }\n\n return files;\n}\n\nexport async function discoverProgrammaticRoutePaths(\n root: string,\n srcDir = \"src\",\n): Promise<string[]> {\n const paths = new Set<string>();\n const files = new Set([\n ...findProgrammaticRouteFiles(root, srcDir),\n ...(await findProgrammaticRouteSourceFiles(join(root, srcDir))),\n ]);\n\n for (const filePath of files) {\n const source = readFileSync(filePath, \"utf8\");\n for (const routePath of scanProgrammaticPagePaths(source)) {\n paths.add(routePath);\n }\n }\n\n return Array.from(paths).sort();\n}\n\nasync function findProgrammaticRouteSourceFiles(srcRoot: string): Promise<string[]> {\n if (!existsSync(srcRoot)) {\n return [];\n }\n\n try {\n const glob = await import(\"fast-glob\");\n return await glob.default(\"**/*.{ts,tsx,js,jsx}\", {\n cwd: srcRoot,\n absolute: true,\n ignore: [\n \"**/*.d.ts\",\n \"**/node_modules/**\",\n \"**/.*/**\",\n \"farm-routes.d.ts\",\n \"farm-env.d.ts\",\n \"lib/api.generated.ts\",\n ],\n });\n } catch {\n return [];\n }\n}\n"],"mappings":"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","names":[]}