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

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 (447) hide show
  1. package/dist/after.cjs +227 -0
  2. package/dist/after.cjs.map +1 -0
  3. package/dist/after.d.mts +25 -0
  4. package/dist/after.d.ts +25 -0
  5. package/dist/after.mjs +14 -0
  6. package/dist/after.mjs.map +1 -0
  7. package/dist/agent-runtime.cjs +2379 -0
  8. package/dist/agent-runtime.cjs.map +1 -0
  9. package/dist/agent-runtime.d.mts +94 -0
  10. package/dist/agent-runtime.d.ts +94 -0
  11. package/dist/agent-runtime.mjs +479 -0
  12. package/dist/agent-runtime.mjs.map +1 -0
  13. package/dist/api/route-manager.d.mts +66 -0
  14. package/dist/api/route-manager.d.ts +66 -0
  15. package/dist/api/runtime.d.mts +3 -0
  16. package/dist/api/runtime.d.ts +3 -0
  17. package/dist/api.cjs +4100 -0
  18. package/dist/api.cjs.map +1 -0
  19. package/dist/api.d.mts +48 -0
  20. package/dist/api.d.ts +48 -0
  21. package/dist/api.mjs +93 -0
  22. package/dist/api.mjs.map +1 -0
  23. package/dist/app-BWtqQu3R.d.mts +302 -0
  24. package/dist/app-markdown.cjs +244 -0
  25. package/dist/app-markdown.cjs.map +1 -0
  26. package/dist/app-markdown.d.mts +22 -0
  27. package/dist/app-markdown.d.ts +22 -0
  28. package/dist/app-markdown.mjs +27 -0
  29. package/dist/app-markdown.mjs.map +1 -0
  30. package/dist/app-xltejvLY.d.ts +302 -0
  31. package/dist/cache.cjs +945 -0
  32. package/dist/cache.cjs.map +1 -0
  33. package/dist/cache.d.mts +192 -0
  34. package/dist/cache.d.ts +192 -0
  35. package/dist/cache.mjs +46 -0
  36. package/dist/cache.mjs.map +1 -0
  37. package/dist/chunk-2ED5Q2GH.mjs +422 -0
  38. package/dist/chunk-2ED5Q2GH.mjs.map +1 -0
  39. package/dist/chunk-32W4QEJP.mjs +158 -0
  40. package/dist/chunk-32W4QEJP.mjs.map +1 -0
  41. package/dist/chunk-3XNTL3FQ.mjs +452 -0
  42. package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
  43. package/dist/chunk-44ZCFSKE.mjs +84 -0
  44. package/dist/chunk-44ZCFSKE.mjs.map +1 -0
  45. package/dist/chunk-4S3ORGFA.mjs +44 -0
  46. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  47. package/dist/chunk-5BY76U2M.mjs +1 -0
  48. package/dist/chunk-5BY76U2M.mjs.map +1 -0
  49. package/dist/chunk-5VYHFKWE.mjs +7787 -0
  50. package/dist/chunk-5VYHFKWE.mjs.map +1 -0
  51. package/dist/chunk-5ZGPRGWV.mjs +136 -0
  52. package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
  53. package/dist/chunk-65A7QIKI.mjs +142 -0
  54. package/dist/chunk-65A7QIKI.mjs.map +1 -0
  55. package/dist/chunk-6F5OI5GA.mjs +10 -0
  56. package/dist/chunk-6F5OI5GA.mjs.map +1 -0
  57. package/dist/chunk-74YTBPTY.mjs +450 -0
  58. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  59. package/dist/chunk-7FBJLMQH.mjs +338 -0
  60. package/dist/chunk-7FBJLMQH.mjs.map +1 -0
  61. package/dist/chunk-7HO6AEOP.mjs +74 -0
  62. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  63. package/dist/chunk-7MABZJIM.mjs +29 -0
  64. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  65. package/dist/chunk-7N62DNSO.mjs +41 -0
  66. package/dist/chunk-7N62DNSO.mjs.map +1 -0
  67. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  68. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  69. package/dist/chunk-ALCLXXTY.mjs +187 -0
  70. package/dist/chunk-ALCLXXTY.mjs.map +1 -0
  71. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  72. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  73. package/dist/chunk-B232I2GP.mjs +163 -0
  74. package/dist/chunk-B232I2GP.mjs.map +1 -0
  75. package/dist/chunk-B4W3BNTL.mjs +483 -0
  76. package/dist/chunk-B4W3BNTL.mjs.map +1 -0
  77. package/dist/chunk-C2ROET2V.mjs +718 -0
  78. package/dist/chunk-C2ROET2V.mjs.map +1 -0
  79. package/dist/chunk-CGILA3WO.mjs +14 -0
  80. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  81. package/dist/chunk-CGIXMLSY.mjs +184 -0
  82. package/dist/chunk-CGIXMLSY.mjs.map +1 -0
  83. package/dist/chunk-DJSGLHCN.mjs +597 -0
  84. package/dist/chunk-DJSGLHCN.mjs.map +1 -0
  85. package/dist/chunk-E2MPIBRE.mjs +149 -0
  86. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  87. package/dist/chunk-E6EPN5BT.mjs +203 -0
  88. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  89. package/dist/chunk-EJ7T4TPB.mjs +622 -0
  90. package/dist/chunk-EJ7T4TPB.mjs.map +1 -0
  91. package/dist/chunk-FQYDHKKU.mjs +128 -0
  92. package/dist/chunk-FQYDHKKU.mjs.map +1 -0
  93. package/dist/chunk-FRPWCMMG.mjs +299 -0
  94. package/dist/chunk-FRPWCMMG.mjs.map +1 -0
  95. package/dist/chunk-GFMBXLGP.mjs +6277 -0
  96. package/dist/chunk-GFMBXLGP.mjs.map +1 -0
  97. package/dist/chunk-GN72QAIH.mjs +146 -0
  98. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  99. package/dist/chunk-GQVGIUSN.mjs +149 -0
  100. package/dist/chunk-GQVGIUSN.mjs.map +1 -0
  101. package/dist/chunk-GS6K5OCM.mjs +407 -0
  102. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  103. package/dist/chunk-GXASWWJU.mjs +364 -0
  104. package/dist/chunk-GXASWWJU.mjs.map +1 -0
  105. package/dist/chunk-GY2STC2S.mjs +180 -0
  106. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  107. package/dist/chunk-H2FA2SBS.mjs +51 -0
  108. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  109. package/dist/chunk-I4CUBGVF.mjs +93 -0
  110. package/dist/chunk-I4CUBGVF.mjs.map +1 -0
  111. package/dist/chunk-ITN462YM.mjs +98 -0
  112. package/dist/chunk-ITN462YM.mjs.map +1 -0
  113. package/dist/chunk-J23HNLFY.mjs +72 -0
  114. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  115. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  116. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  117. package/dist/chunk-J5YWQVI5.mjs +211 -0
  118. package/dist/chunk-J5YWQVI5.mjs.map +1 -0
  119. package/dist/chunk-JDEOUK5V.mjs +427 -0
  120. package/dist/chunk-JDEOUK5V.mjs.map +1 -0
  121. package/dist/chunk-JK25YEN6.mjs +219 -0
  122. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  123. package/dist/chunk-K4667E2Q.mjs +1916 -0
  124. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  125. package/dist/chunk-LGHEOHBU.mjs +218 -0
  126. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  127. package/dist/chunk-LM2YNO4U.mjs +24 -0
  128. package/dist/chunk-LM2YNO4U.mjs.map +1 -0
  129. package/dist/chunk-ME4MO2RJ.mjs +3540 -0
  130. package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
  131. package/dist/chunk-MIUW47JX.mjs +639 -0
  132. package/dist/chunk-MIUW47JX.mjs.map +1 -0
  133. package/dist/chunk-NNLCAVB6.mjs +391 -0
  134. package/dist/chunk-NNLCAVB6.mjs.map +1 -0
  135. package/dist/chunk-P7QDS5AT.mjs +191 -0
  136. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  137. package/dist/chunk-PFE6GMNE.mjs +603 -0
  138. package/dist/chunk-PFE6GMNE.mjs.map +1 -0
  139. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  140. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  141. package/dist/chunk-QKVUNGAH.mjs +39 -0
  142. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  143. package/dist/chunk-QM746KUO.mjs +56 -0
  144. package/dist/chunk-QM746KUO.mjs.map +1 -0
  145. package/dist/chunk-QTZZ2ISQ.mjs +753 -0
  146. package/dist/chunk-QTZZ2ISQ.mjs.map +1 -0
  147. package/dist/chunk-RBRLLZL5.mjs +81 -0
  148. package/dist/chunk-RBRLLZL5.mjs.map +1 -0
  149. package/dist/chunk-RHIFZZUI.mjs +69 -0
  150. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  151. package/dist/chunk-RQ633A5I.mjs +187 -0
  152. package/dist/chunk-RQ633A5I.mjs.map +1 -0
  153. package/dist/chunk-SCFX4UTD.mjs +28 -0
  154. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  155. package/dist/chunk-SL6HTIOK.mjs +66 -0
  156. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  157. package/dist/chunk-SPBBQLXI.mjs +207 -0
  158. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  159. package/dist/chunk-T4QJQK76.mjs +459 -0
  160. package/dist/chunk-T4QJQK76.mjs.map +1 -0
  161. package/dist/chunk-TQAEEJB4.mjs +157 -0
  162. package/dist/chunk-TQAEEJB4.mjs.map +1 -0
  163. package/dist/chunk-UB5UOSHB.mjs +458 -0
  164. package/dist/chunk-UB5UOSHB.mjs.map +1 -0
  165. package/dist/chunk-USWZZUEH.mjs +25 -0
  166. package/dist/chunk-USWZZUEH.mjs.map +1 -0
  167. package/dist/chunk-UVCIEUJC.mjs +16 -0
  168. package/dist/chunk-UVCIEUJC.mjs.map +1 -0
  169. package/dist/chunk-UXUAWNO5.mjs +396 -0
  170. package/dist/chunk-UXUAWNO5.mjs.map +1 -0
  171. package/dist/chunk-V3XURYJO.mjs +756 -0
  172. package/dist/chunk-V3XURYJO.mjs.map +1 -0
  173. package/dist/chunk-V6WE6JSZ.mjs +352 -0
  174. package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
  175. package/dist/chunk-V7RBCSDJ.mjs +170 -0
  176. package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
  177. package/dist/chunk-VCANOYFI.mjs +588 -0
  178. package/dist/chunk-VCANOYFI.mjs.map +1 -0
  179. package/dist/chunk-VY2UYN5R.mjs +224 -0
  180. package/dist/chunk-VY2UYN5R.mjs.map +1 -0
  181. package/dist/chunk-W2CRQFF6.mjs +1352 -0
  182. package/dist/chunk-W2CRQFF6.mjs.map +1 -0
  183. package/dist/chunk-WDU6QXNK.mjs +872 -0
  184. package/dist/chunk-WDU6QXNK.mjs.map +1 -0
  185. package/dist/chunk-WZ5QFROO.mjs +23 -0
  186. package/dist/chunk-WZ5QFROO.mjs.map +1 -0
  187. package/dist/chunk-XIVV5IWN.mjs +541 -0
  188. package/dist/chunk-XIVV5IWN.mjs.map +1 -0
  189. package/dist/chunk-YW7OBE6Q.mjs +119 -0
  190. package/dist/chunk-YW7OBE6Q.mjs.map +1 -0
  191. package/dist/chunk-Z5CQMP54.mjs +365 -0
  192. package/dist/chunk-Z5CQMP54.mjs.map +1 -0
  193. package/dist/chunk-ZBE6MLHL.mjs +230 -0
  194. package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
  195. package/dist/chunk-ZVWA4ZQ3.mjs +189 -0
  196. package/dist/chunk-ZVWA4ZQ3.mjs.map +1 -0
  197. package/dist/chunk-ZZ57EH5Z.mjs +173 -0
  198. package/dist/chunk-ZZ57EH5Z.mjs.map +1 -0
  199. package/dist/client-BT1mFQas.d.mts +447 -0
  200. package/dist/client-Nn0q4eO4.d.ts +447 -0
  201. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  202. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  203. package/dist/client-plugins-BI2R6Eae.d.mts +1926 -0
  204. package/dist/client-plugins-DU9oMspX.d.ts +1926 -0
  205. package/dist/client-plugins.cjs +415 -0
  206. package/dist/client-plugins.cjs.map +1 -0
  207. package/dist/client-plugins.d.mts +22 -0
  208. package/dist/client-plugins.d.ts +22 -0
  209. package/dist/client-plugins.mjs +10 -0
  210. package/dist/client-plugins.mjs.map +1 -0
  211. package/dist/client.cjs +5402 -0
  212. package/dist/client.cjs.map +1 -0
  213. package/dist/client.d.mts +447 -0
  214. package/dist/client.d.ts +447 -0
  215. package/dist/client.mjs +110 -0
  216. package/dist/client.mjs.map +1 -0
  217. package/dist/config.cjs +38 -0
  218. package/dist/config.cjs.map +1 -0
  219. package/dist/config.d.mts +29 -0
  220. package/dist/config.d.ts +29 -0
  221. package/dist/config.mjs +10 -0
  222. package/dist/config.mjs.map +1 -0
  223. package/dist/cron.cjs +406 -0
  224. package/dist/cron.cjs.map +1 -0
  225. package/dist/cron.d.mts +78 -0
  226. package/dist/cron.d.ts +78 -0
  227. package/dist/cron.mjs +30 -0
  228. package/dist/cron.mjs.map +1 -0
  229. package/dist/deferred.cjs +438 -0
  230. package/dist/deferred.cjs.map +1 -0
  231. package/dist/deferred.d.mts +42 -0
  232. package/dist/deferred.d.ts +42 -0
  233. package/dist/deferred.mjs +28 -0
  234. package/dist/deferred.mjs.map +1 -0
  235. package/dist/deployment.cjs +199 -0
  236. package/dist/deployment.cjs.map +1 -0
  237. package/dist/deployment.d.mts +34 -0
  238. package/dist/deployment.d.ts +34 -0
  239. package/dist/deployment.mjs +38 -0
  240. package/dist/deployment.mjs.map +1 -0
  241. package/dist/devtools-REQTS3I7.mjs +371 -0
  242. package/dist/devtools-REQTS3I7.mjs.map +1 -0
  243. package/dist/devtools-client-3XRTBND5.mjs +216 -0
  244. package/dist/devtools-client-3XRTBND5.mjs.map +1 -0
  245. package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
  246. package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
  247. package/dist/docs.cjs +5548 -0
  248. package/dist/docs.cjs.map +1 -0
  249. package/dist/docs.d.mts +69 -0
  250. package/dist/docs.d.ts +69 -0
  251. package/dist/docs.mjs +47 -0
  252. package/dist/docs.mjs.map +1 -0
  253. package/dist/env-types.cjs +232 -0
  254. package/dist/env-types.cjs.map +1 -0
  255. package/dist/env-types.d.mts +12 -0
  256. package/dist/env-types.d.ts +12 -0
  257. package/dist/env-types.mjs +11 -0
  258. package/dist/env-types.mjs.map +1 -0
  259. package/dist/env.cjs +215 -0
  260. package/dist/env.cjs.map +1 -0
  261. package/dist/env.d.mts +45 -0
  262. package/dist/env.d.ts +45 -0
  263. package/dist/env.mjs +22 -0
  264. package/dist/env.mjs.map +1 -0
  265. package/dist/environment/vite.d.mts +22 -0
  266. package/dist/environment/vite.d.ts +22 -0
  267. package/dist/environment.cjs +96 -0
  268. package/dist/environment.cjs.map +1 -0
  269. package/dist/environment.d.mts +18 -0
  270. package/dist/environment.d.ts +18 -0
  271. package/dist/environment.mjs +14 -0
  272. package/dist/environment.mjs.map +1 -0
  273. package/dist/headers.cjs +126 -0
  274. package/dist/headers.cjs.map +1 -0
  275. package/dist/headers.d.mts +22 -0
  276. package/dist/headers.d.ts +22 -0
  277. package/dist/headers.mjs +12 -0
  278. package/dist/headers.mjs.map +1 -0
  279. package/dist/i18n/client.d.mts +32 -0
  280. package/dist/i18n/client.d.ts +32 -0
  281. package/dist/i18n/index.d.mts +20 -0
  282. package/dist/i18n/index.d.ts +20 -0
  283. package/dist/i18n/server.d.mts +30 -0
  284. package/dist/i18n/server.d.ts +30 -0
  285. package/dist/image/server.d.mts +37 -0
  286. package/dist/image/server.d.ts +37 -0
  287. package/dist/image/sharp.d.mts +7 -0
  288. package/dist/image/sharp.d.ts +7 -0
  289. package/dist/image-config-Duob7wER.d.mts +50 -0
  290. package/dist/image-config-Duob7wER.d.ts +50 -0
  291. package/dist/image.cjs +209 -0
  292. package/dist/image.cjs.map +1 -0
  293. package/dist/image.d.mts +39 -0
  294. package/dist/image.d.ts +39 -0
  295. package/dist/image.mjs +165 -0
  296. package/dist/image.mjs.map +1 -0
  297. package/dist/index.cjs +42186 -0
  298. package/dist/index.cjs.map +1 -0
  299. package/dist/index.d.mts +453 -0
  300. package/dist/index.d.ts +453 -0
  301. package/dist/index.mjs +980 -0
  302. package/dist/index.mjs.map +1 -0
  303. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  304. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  305. package/dist/integration-orm-GQLGU66X.mjs +13 -0
  306. package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
  307. package/dist/integrations.cjs +2820 -0
  308. package/dist/integrations.cjs.map +1 -0
  309. package/dist/integrations.d.mts +22 -0
  310. package/dist/integrations.d.ts +22 -0
  311. package/dist/integrations.mjs +51 -0
  312. package/dist/integrations.mjs.map +1 -0
  313. package/dist/internal/build-runtime.cjs +643 -322
  314. package/dist/internal/build-runtime.cjs.map +1 -1
  315. package/dist/internal/build-runtime.d.mts +39 -0
  316. package/dist/internal/build-runtime.d.ts +39 -0
  317. package/dist/internal/build-runtime.mjs +11 -10
  318. package/dist/internal/client-runtime.d.mts +2 -0
  319. package/dist/internal/client-runtime.d.ts +2 -0
  320. package/dist/internal/config-runtime.cjs +135 -39
  321. package/dist/internal/config-runtime.cjs.map +1 -1
  322. package/dist/internal/config-runtime.d.mts +39 -0
  323. package/dist/internal/config-runtime.d.ts +39 -0
  324. package/dist/internal/config-runtime.mjs +5 -4
  325. package/dist/internal/production-node-env.d.mts +12 -0
  326. package/dist/internal/production-node-env.d.ts +12 -0
  327. package/dist/internal/production-runtime.d.mts +39 -0
  328. package/dist/internal/production-runtime.d.ts +39 -0
  329. package/dist/layers-VWVDTPUZ.mjs +16 -0
  330. package/dist/layers-VWVDTPUZ.mjs.map +1 -0
  331. package/dist/manager-THKFTOFE.mjs +10 -0
  332. package/dist/manager-THKFTOFE.mjs.map +1 -0
  333. package/dist/markdown.cjs +364 -0
  334. package/dist/markdown.cjs.map +1 -0
  335. package/dist/markdown.d.mts +60 -0
  336. package/dist/markdown.d.ts +60 -0
  337. package/dist/markdown.mjs +18 -0
  338. package/dist/markdown.mjs.map +1 -0
  339. package/dist/metadata-Cm9ujH4I.d.ts +22 -0
  340. package/dist/metadata-DacXbnLA.d.mts +22 -0
  341. package/dist/middleware.cjs +2148 -0
  342. package/dist/middleware.cjs.map +1 -0
  343. package/dist/middleware.d.mts +164 -0
  344. package/dist/middleware.d.ts +164 -0
  345. package/dist/middleware.mjs +49 -0
  346. package/dist/middleware.mjs.map +1 -0
  347. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  348. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  349. package/dist/navigation.cjs +1329 -0
  350. package/dist/navigation.cjs.map +1 -0
  351. package/dist/navigation.d.mts +14 -0
  352. package/dist/navigation.d.ts +14 -0
  353. package/dist/navigation.mjs +33 -0
  354. package/dist/navigation.mjs.map +1 -0
  355. package/dist/nitro-QO5LV6QK.mjs +689 -0
  356. package/dist/nitro-QO5LV6QK.mjs.map +1 -0
  357. package/dist/observability.cjs +186 -0
  358. package/dist/observability.cjs.map +1 -0
  359. package/dist/observability.d.mts +335 -0
  360. package/dist/observability.d.ts +335 -0
  361. package/dist/observability.mjs +16 -0
  362. package/dist/observability.mjs.map +1 -0
  363. package/dist/params-BALtrRim.d.ts +15 -0
  364. package/dist/params-ry-lxqmy.d.mts +15 -0
  365. package/dist/plugin-BJDf43dc.d.mts +165 -0
  366. package/dist/plugin-BJDf43dc.d.ts +165 -0
  367. package/dist/plugin.cjs +23470 -0
  368. package/dist/plugin.cjs.map +1 -1
  369. package/dist/plugin.d.mts +22 -0
  370. package/dist/plugin.d.ts +22 -0
  371. package/dist/plugin.mjs +8 -7
  372. package/dist/production-runtime-4KKq1AVC.d.mts +79 -0
  373. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  374. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  375. package/dist/production-runtime-DRsWDN2x.d.ts +79 -0
  376. package/dist/query/client.d.mts +61 -0
  377. package/dist/query/client.d.ts +61 -0
  378. package/dist/query/index.d.mts +90 -0
  379. package/dist/query/index.d.ts +90 -0
  380. package/dist/query/parsers.d.mts +25 -0
  381. package/dist/query/parsers.d.ts +25 -0
  382. package/dist/query/server.d.mts +55 -0
  383. package/dist/query/server.d.ts +55 -0
  384. package/dist/request-Dsq4kGW0.d.mts +6 -0
  385. package/dist/request-udtobOLv.d.ts +6 -0
  386. package/dist/request.d.mts +2 -0
  387. package/dist/request.d.ts +2 -0
  388. package/dist/resolver-DJqjLMg_.d.mts +14 -0
  389. package/dist/resolver-IH4RmPEl.d.ts +14 -0
  390. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  391. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  392. package/dist/router.d.mts +36 -0
  393. package/dist/router.d.ts +36 -0
  394. package/dist/routes.d.mts +224 -0
  395. package/dist/routes.d.ts +224 -0
  396. package/dist/runtime-9nQjVM7X.d.mts +206 -0
  397. package/dist/runtime-Cxpq6xZN.d.mts +27 -0
  398. package/dist/runtime-DgeS2skB.d.ts +206 -0
  399. package/dist/runtime-bv63eUiO.d.ts +27 -0
  400. package/dist/server-action-security.d.mts +43 -0
  401. package/dist/server-action-security.d.ts +43 -0
  402. package/dist/server-fn-client.d.mts +32 -0
  403. package/dist/server-fn-client.d.ts +32 -0
  404. package/dist/server-fn.d.mts +93 -0
  405. package/dist/server-fn.d.ts +93 -0
  406. package/dist/server-plugins.d.mts +55 -0
  407. package/dist/server-plugins.d.ts +55 -0
  408. package/dist/server-query-client.d.mts +50 -0
  409. package/dist/server-query-client.d.ts +50 -0
  410. package/dist/server-query.d.mts +36 -0
  411. package/dist/server-query.d.ts +36 -0
  412. package/dist/server.cjs +731 -447
  413. package/dist/server.cjs.map +1 -1
  414. package/dist/server.d.mts +48 -0
  415. package/dist/server.d.ts +48 -0
  416. package/dist/server.mjs +9 -8
  417. package/dist/server.mjs.map +1 -1
  418. package/dist/storage.d.mts +52 -0
  419. package/dist/storage.d.ts +52 -0
  420. package/dist/testing.d.mts +101 -0
  421. package/dist/testing.d.ts +101 -0
  422. package/dist/transport-BmbGTXA5.d.mts +49 -0
  423. package/dist/transport-BmbGTXA5.d.ts +49 -0
  424. package/dist/types-BMxWr97v.d.mts +81 -0
  425. package/dist/types-BMxWr97v.d.ts +81 -0
  426. package/dist/types-C9N-nk5R.d.mts +53 -0
  427. package/dist/types-C9N-nk5R.d.ts +53 -0
  428. package/dist/types-D1A6-XvH.d.mts +73 -0
  429. package/dist/types-D1A6-XvH.d.ts +73 -0
  430. package/dist/utils-B-cUHwoK.d.ts +23 -0
  431. package/dist/utils-Cm41AefV.d.mts +23 -0
  432. package/dist/version.cjs +1 -1
  433. package/dist/version.cjs.map +1 -1
  434. package/dist/version.d.mts +3 -0
  435. package/dist/version.d.ts +3 -0
  436. package/dist/version.mjs +1 -1
  437. package/dist/vite.cjs +682 -437
  438. package/dist/vite.cjs.map +1 -1
  439. package/dist/vite.d.mts +22 -0
  440. package/dist/vite.d.ts +22 -0
  441. package/dist/vite.mjs +6 -5
  442. package/dist/workflows.d.mts +110 -0
  443. package/dist/workflows.d.ts +110 -0
  444. package/package.json +3 -2
  445. package/types/client.d.ts +1 -1
  446. package/types/image.d.ts +4 -0
  447. package/types/images.d.ts +59 -0
@@ -0,0 +1,146 @@
1
+ import {
2
+ localizeFarmPathname,
3
+ resolveFarmLocalePath
4
+ } from "./chunk-44ZCFSKE.mjs";
5
+ import {
6
+ __name
7
+ } from "./chunk-CGILA3WO.mjs";
8
+
9
+ // src/i18n/resolver.ts
10
+ function getFarmLocaleVaryHeaders(config, resolution) {
11
+ if (!config.enabled || resolution.source === "url") return [];
12
+ const headers = [];
13
+ if (config.detection.includes("cookie")) headers.push("Cookie");
14
+ if (config.detection.includes("accept-language")) headers.push("Accept-Language");
15
+ return headers;
16
+ }
17
+ __name(getFarmLocaleVaryHeaders, "getFarmLocaleVaryHeaders");
18
+ function resolveFarmLocaleRequest(request, config, options = {}) {
19
+ const url = new URL(request.url);
20
+ if (!config.enabled) {
21
+ return {
22
+ locale: config.defaultLocale,
23
+ source: "default",
24
+ pathname: url.pathname,
25
+ persist: false
26
+ };
27
+ }
28
+ const pathMatch = resolveFarmLocalePath(url.pathname, config);
29
+ if (pathMatch.explicit && pathMatch.locale) {
30
+ const canonicalPath = localizeFarmPathname(pathMatch.pathname, pathMatch.locale, config);
31
+ const redirect = options.redirect !== false && canonicalPath !== url.pathname ? `${canonicalPath}${url.search}${url.hash}` : void 0;
32
+ return {
33
+ locale: pathMatch.locale,
34
+ source: "url",
35
+ pathname: pathMatch.pathname,
36
+ redirect,
37
+ // Locale-prefixed pages are canonical and can be cached publicly. Locale
38
+ // switchers persist the same choice before navigating in the browser.
39
+ persist: false
40
+ };
41
+ }
42
+ const detected = detectLocale(request, config);
43
+ const shouldRedirect = options.redirect !== false && !isInternalOrApiPath(url.pathname) && config.routing !== "none" && (config.routing === "prefix-always" || detected.locale !== config.defaultLocale);
44
+ return {
45
+ locale: detected.locale,
46
+ source: detected.source,
47
+ pathname: pathMatch.pathname,
48
+ redirect: shouldRedirect ? `${localizeFarmPathname(pathMatch.pathname, detected.locale, config)}${url.search}${url.hash}` : void 0,
49
+ persist: detected.source !== "default"
50
+ };
51
+ }
52
+ __name(resolveFarmLocaleRequest, "resolveFarmLocaleRequest");
53
+ function createFarmLocaleCookie(locale, config) {
54
+ const cookie = config.cookie;
55
+ let value = `${encodeURIComponent(cookie.name)}=${encodeURIComponent(locale)}`;
56
+ value += `; Max-Age=${cookie.maxAge}`;
57
+ value += `; Path=${cookie.path}`;
58
+ value += `; SameSite=${capitalize(cookie.sameSite)}`;
59
+ if (cookie.secure) value += "; Secure";
60
+ return value;
61
+ }
62
+ __name(createFarmLocaleCookie, "createFarmLocaleCookie");
63
+ function matchFarmLocale(requested, locales) {
64
+ if (!requested) return void 0;
65
+ let canonical;
66
+ try {
67
+ canonical = Intl.getCanonicalLocales(requested)[0];
68
+ } catch {
69
+ return void 0;
70
+ }
71
+ const exact = locales.find((locale) => locale.toLowerCase() === canonical.toLowerCase());
72
+ if (exact) return exact;
73
+ const language = canonical.split("-")[0]?.toLowerCase();
74
+ return locales.find((locale) => locale.split("-")[0]?.toLowerCase() === language);
75
+ }
76
+ __name(matchFarmLocale, "matchFarmLocale");
77
+ function detectLocale(request, config) {
78
+ for (const signal of config.detection) {
79
+ if (signal === "url") continue;
80
+ if (signal === "cookie") {
81
+ const locale = matchFarmLocale(
82
+ readCookie(request.headers.get("cookie"), config.cookie.name),
83
+ config.locales
84
+ );
85
+ if (locale) return { locale, source: "cookie" };
86
+ }
87
+ if (signal === "accept-language") {
88
+ const locale = resolveAcceptLanguage(request.headers.get("accept-language"), config.locales);
89
+ if (locale) return { locale, source: "accept-language" };
90
+ }
91
+ }
92
+ return { locale: config.defaultLocale, source: "default" };
93
+ }
94
+ __name(detectLocale, "detectLocale");
95
+ function resolveAcceptLanguage(header, locales) {
96
+ if (!header) return void 0;
97
+ const candidates = header.split(",").map((entry, index) => {
98
+ const [locale = "", ...parameters] = entry.trim().split(";");
99
+ const qualityValue = parameters.map((parameter) => parameter.trim()).find((parameter) => parameter.startsWith("q="));
100
+ const quality = qualityValue ? Number(qualityValue.slice(2)) : 1;
101
+ return { locale, quality: Number.isFinite(quality) ? quality : 0, index };
102
+ }).filter((candidate) => candidate.locale && candidate.locale !== "*" && candidate.quality > 0).sort((a, b) => b.quality - a.quality || a.index - b.index);
103
+ for (const candidate of candidates) {
104
+ const locale = matchFarmLocale(candidate.locale, locales);
105
+ if (locale) return locale;
106
+ }
107
+ return void 0;
108
+ }
109
+ __name(resolveAcceptLanguage, "resolveAcceptLanguage");
110
+ function readCookie(header, name) {
111
+ if (!header) return void 0;
112
+ for (const part of header.split(";")) {
113
+ const separator = part.indexOf("=");
114
+ if (separator < 0) continue;
115
+ let key;
116
+ try {
117
+ key = decodeURIComponent(part.slice(0, separator).trim());
118
+ } catch {
119
+ continue;
120
+ }
121
+ if (key !== name) continue;
122
+ try {
123
+ return decodeURIComponent(part.slice(separator + 1).trim());
124
+ } catch {
125
+ return part.slice(separator + 1).trim();
126
+ }
127
+ }
128
+ return void 0;
129
+ }
130
+ __name(readCookie, "readCookie");
131
+ function isInternalOrApiPath(pathname) {
132
+ return pathname === "/api" || pathname.startsWith("/api/") || pathname.startsWith("/__farm/") || pathname.startsWith("/_farm/");
133
+ }
134
+ __name(isInternalOrApiPath, "isInternalOrApiPath");
135
+ function capitalize(value) {
136
+ return value.charAt(0).toUpperCase() + value.slice(1);
137
+ }
138
+ __name(capitalize, "capitalize");
139
+
140
+ export {
141
+ getFarmLocaleVaryHeaders,
142
+ resolveFarmLocaleRequest,
143
+ createFarmLocaleCookie,
144
+ matchFarmLocale
145
+ };
146
+ //# sourceMappingURL=chunk-GN72QAIH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/resolver.ts"],"sourcesContent":["import { localizeFarmPathname, resolveFarmLocalePath } from \"./routing\";\nimport type { FarmI18nLocaleSource, ResolvedFarmI18nConfig } from \"./types\";\n\nexport interface FarmLocaleResolution {\n locale: string;\n source: FarmI18nLocaleSource;\n pathname: string;\n redirect?: string;\n persist: boolean;\n}\n\nexport function getFarmLocaleVaryHeaders(\n config: ResolvedFarmI18nConfig,\n resolution: FarmLocaleResolution,\n): string[] {\n if (!config.enabled || resolution.source === \"url\") return [];\n\n const headers: string[] = [];\n if (config.detection.includes(\"cookie\")) headers.push(\"Cookie\");\n if (config.detection.includes(\"accept-language\")) headers.push(\"Accept-Language\");\n return headers;\n}\n\nexport function resolveFarmLocaleRequest(\n request: Request,\n config: ResolvedFarmI18nConfig,\n options: { redirect?: boolean } = {},\n): FarmLocaleResolution {\n const url = new URL(request.url);\n if (!config.enabled) {\n return {\n locale: config.defaultLocale,\n source: \"default\",\n pathname: url.pathname,\n persist: false,\n };\n }\n\n const pathMatch = resolveFarmLocalePath(url.pathname, config);\n if (pathMatch.explicit && pathMatch.locale) {\n const canonicalPath = localizeFarmPathname(pathMatch.pathname, pathMatch.locale, config);\n const redirect =\n options.redirect !== false && canonicalPath !== url.pathname\n ? `${canonicalPath}${url.search}${url.hash}`\n : undefined;\n return {\n locale: pathMatch.locale,\n source: \"url\",\n pathname: pathMatch.pathname,\n redirect,\n // Locale-prefixed pages are canonical and can be cached publicly. Locale\n // switchers persist the same choice before navigating in the browser.\n persist: false,\n };\n }\n\n const detected = detectLocale(request, config);\n const shouldRedirect =\n options.redirect !== false &&\n !isInternalOrApiPath(url.pathname) &&\n config.routing !== \"none\" &&\n (config.routing === \"prefix-always\" || detected.locale !== config.defaultLocale);\n\n return {\n locale: detected.locale,\n source: detected.source,\n pathname: pathMatch.pathname,\n redirect: shouldRedirect\n ? `${localizeFarmPathname(pathMatch.pathname, detected.locale, config)}${url.search}${url.hash}`\n : undefined,\n persist: detected.source !== \"default\",\n };\n}\n\nexport function createFarmLocaleCookie(\n locale: string,\n config: Pick<ResolvedFarmI18nConfig, \"cookie\">,\n): string {\n const cookie = config.cookie;\n let value = `${encodeURIComponent(cookie.name)}=${encodeURIComponent(locale)}`;\n value += `; Max-Age=${cookie.maxAge}`;\n value += `; Path=${cookie.path}`;\n value += `; SameSite=${capitalize(cookie.sameSite)}`;\n if (cookie.secure) value += \"; Secure\";\n return value;\n}\n\nexport function matchFarmLocale(\n requested: string | null | undefined,\n locales: readonly string[],\n): string | undefined {\n if (!requested) return undefined;\n let canonical: string;\n try {\n canonical = Intl.getCanonicalLocales(requested)[0]!;\n } catch {\n return undefined;\n }\n\n const exact = locales.find((locale) => locale.toLowerCase() === canonical.toLowerCase());\n if (exact) return exact;\n\n const language = canonical.split(\"-\")[0]?.toLowerCase();\n return locales.find((locale) => locale.split(\"-\")[0]?.toLowerCase() === language);\n}\n\nfunction detectLocale(\n request: Request,\n config: ResolvedFarmI18nConfig,\n): { locale: string; source: FarmI18nLocaleSource } {\n for (const signal of config.detection) {\n if (signal === \"url\") continue;\n\n if (signal === \"cookie\") {\n const locale = matchFarmLocale(\n readCookie(request.headers.get(\"cookie\"), config.cookie.name),\n config.locales,\n );\n if (locale) return { locale, source: \"cookie\" };\n }\n\n if (signal === \"accept-language\") {\n const locale = resolveAcceptLanguage(request.headers.get(\"accept-language\"), config.locales);\n if (locale) return { locale, source: \"accept-language\" };\n }\n }\n\n return { locale: config.defaultLocale, source: \"default\" };\n}\n\nfunction resolveAcceptLanguage(\n header: string | null,\n locales: readonly string[],\n): string | undefined {\n if (!header) return undefined;\n const candidates = header\n .split(\",\")\n .map((entry, index) => {\n const [locale = \"\", ...parameters] = entry.trim().split(\";\");\n const qualityValue = parameters\n .map((parameter) => parameter.trim())\n .find((parameter) => parameter.startsWith(\"q=\"));\n const quality = qualityValue ? Number(qualityValue.slice(2)) : 1;\n return { locale, quality: Number.isFinite(quality) ? quality : 0, index };\n })\n .filter((candidate) => candidate.locale && candidate.locale !== \"*\" && candidate.quality > 0)\n .sort((a, b) => b.quality - a.quality || a.index - b.index);\n\n for (const candidate of candidates) {\n const locale = matchFarmLocale(candidate.locale, locales);\n if (locale) return locale;\n }\n return undefined;\n}\n\nfunction readCookie(header: string | null, name: string): string | undefined {\n if (!header) return undefined;\n for (const part of header.split(\";\")) {\n const separator = part.indexOf(\"=\");\n if (separator < 0) continue;\n let key: string;\n try {\n key = decodeURIComponent(part.slice(0, separator).trim());\n } catch {\n continue;\n }\n if (key !== name) continue;\n try {\n return decodeURIComponent(part.slice(separator + 1).trim());\n } catch {\n return part.slice(separator + 1).trim();\n }\n }\n return undefined;\n}\n\nfunction isInternalOrApiPath(pathname: string): boolean {\n return (\n pathname === \"/api\" ||\n pathname.startsWith(\"/api/\") ||\n pathname.startsWith(\"/__farm/\") ||\n pathname.startsWith(\"/_farm/\")\n );\n}\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,149 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/route-runtime.ts
6
+ function normalizeFarmRouteRuntimeConfig(value, source = "Route configuration") {
7
+ if (!value) return {};
8
+ const normalized = {};
9
+ if (value.runtime !== void 0) {
10
+ if (value.runtime !== "auto" && value.runtime !== "node" && value.runtime !== "edge") {
11
+ throw new TypeError(`${source} runtime must be "auto", "node", or "edge"`);
12
+ }
13
+ normalized.runtime = value.runtime;
14
+ }
15
+ if (value.regions !== void 0) {
16
+ if (value.regions === "auto") {
17
+ normalized.regions = "auto";
18
+ } else {
19
+ if (!Array.isArray(value.regions) || value.regions.length === 0) {
20
+ throw new TypeError(`${source} regions must be "auto" or a non-empty string array`);
21
+ }
22
+ const regions = Array.from(
23
+ new Set(
24
+ value.regions.map((region) => {
25
+ if (typeof region !== "string" || !region.trim() || /[\u0000-\u001f\u007f]/.test(region)) {
26
+ throw new TypeError(`${source} regions must contain non-empty region identifiers`);
27
+ }
28
+ return region.trim();
29
+ })
30
+ )
31
+ );
32
+ normalized.regions = regions;
33
+ }
34
+ }
35
+ if (value.maxDuration !== void 0) {
36
+ if (value.maxDuration === "auto") {
37
+ normalized.maxDuration = "auto";
38
+ } else if (typeof value.maxDuration !== "number" || !Number.isInteger(value.maxDuration) || value.maxDuration <= 0) {
39
+ throw new TypeError(`${source} maxDuration must be "auto" or a positive integer in seconds`);
40
+ } else {
41
+ normalized.maxDuration = value.maxDuration;
42
+ }
43
+ }
44
+ return normalized;
45
+ }
46
+ __name(normalizeFarmRouteRuntimeConfig, "normalizeFarmRouteRuntimeConfig");
47
+ function mergeFarmRouteRuntimeConfigs(...configs) {
48
+ const merged = {};
49
+ for (const config of configs) {
50
+ if (!config) continue;
51
+ if (config.runtime !== void 0) merged.runtime = config.runtime;
52
+ if (config.regions !== void 0) merged.regions = config.regions;
53
+ if (config.maxDuration !== void 0) merged.maxDuration = config.maxDuration;
54
+ }
55
+ return merged;
56
+ }
57
+ __name(mergeFarmRouteRuntimeConfigs, "mergeFarmRouteRuntimeConfigs");
58
+ function resolveFarmRouteRuntimeConfig(config, source) {
59
+ const normalized = normalizeFarmRouteRuntimeConfig(config, source);
60
+ return {
61
+ runtime: normalized.runtime ?? "auto",
62
+ ...normalized.regions && normalized.regions !== "auto" ? { regions: [...normalized.regions] } : {},
63
+ ...typeof normalized.maxDuration === "number" ? { maxDuration: normalized.maxDuration } : {}
64
+ };
65
+ }
66
+ __name(resolveFarmRouteRuntimeConfig, "resolveFarmRouteRuntimeConfig");
67
+ function hasFarmRouteRuntimeControls(config) {
68
+ return Boolean(
69
+ config && (config.runtime !== void 0 || config.regions !== void 0 || config.maxDuration !== void 0)
70
+ );
71
+ }
72
+ __name(hasFarmRouteRuntimeControls, "hasFarmRouteRuntimeControls");
73
+ function getFarmRouteRuntimeConfig(value) {
74
+ if (!value || typeof value !== "object") return {};
75
+ const route = value;
76
+ return {
77
+ ...route.runtime !== void 0 ? { runtime: route.runtime } : {},
78
+ ...route.regions !== void 0 ? { regions: route.regions } : {},
79
+ ...route.maxDuration !== void 0 ? { maxDuration: route.maxDuration } : {}
80
+ };
81
+ }
82
+ __name(getFarmRouteRuntimeConfig, "getFarmRouteRuntimeConfig");
83
+ function createFarmRouteRuntimeKey(config) {
84
+ return JSON.stringify({
85
+ runtime: config.runtime,
86
+ regions: config.regions || null,
87
+ maxDuration: config.maxDuration || null
88
+ });
89
+ }
90
+ __name(createFarmRouteRuntimeKey, "createFarmRouteRuntimeKey");
91
+ function resolveFarmRouteRuleRuntimeConfig(pathname, routeRules) {
92
+ if (!routeRules) return {};
93
+ const matches = Object.entries(routeRules).filter(
94
+ ([pattern, rule]) => hasFarmRouteRuntimeControls(rule) && farmRouteRuleMatches(pattern, pathname)
95
+ ).sort(([left], [right]) => compareFarmRouteRuleSpecificity(left, right));
96
+ return mergeFarmRouteRuntimeConfigs(...matches.map(([, rule]) => rule));
97
+ }
98
+ __name(resolveFarmRouteRuleRuntimeConfig, "resolveFarmRouteRuleRuntimeConfig");
99
+ function farmRouteRuleMatches(pattern, pathname) {
100
+ const normalizedPattern = normalizeRoutePattern(pattern);
101
+ const normalizedPathname = normalizeRoutePattern(pathname);
102
+ if (normalizedPattern === normalizedPathname) return true;
103
+ const expression = normalizedPattern.split("/").filter(Boolean).map((segment) => {
104
+ if (segment === "**") return ".*";
105
+ if (segment === "*") return "[^/]+";
106
+ if (/^\[\[\.\.\..+\]\]$/.test(segment)) return ".*";
107
+ if (/^\[\.\.\..+\]$/.test(segment)) return ".+";
108
+ if (/^\[.+\]$/.test(segment) || /^:.+$/.test(segment)) return "[^/]+";
109
+ return escapeRegExp(segment);
110
+ }).join("/");
111
+ return new RegExp(`^/${expression}/?$`).test(normalizedPathname);
112
+ }
113
+ __name(farmRouteRuleMatches, "farmRouteRuleMatches");
114
+ function compareFarmRouteRuleSpecificity(left, right) {
115
+ const leftScore = getFarmRouteRuleSpecificity(left);
116
+ const rightScore = getFarmRouteRuleSpecificity(right);
117
+ return leftScore - rightScore || left.localeCompare(right);
118
+ }
119
+ __name(compareFarmRouteRuleSpecificity, "compareFarmRouteRuleSpecificity");
120
+ function getFarmRouteRuleSpecificity(pattern) {
121
+ return normalizeRoutePattern(pattern).split("/").filter(Boolean).reduce((score, segment) => {
122
+ if (segment === "**" || segment.startsWith("[[...")) return score + 1;
123
+ if (segment === "*" || segment.startsWith("[...")) return score + 10;
124
+ if (/^\[.+\]$/.test(segment) || /^:.+$/.test(segment)) return score + 50;
125
+ return score + 100;
126
+ }, 0);
127
+ }
128
+ __name(getFarmRouteRuleSpecificity, "getFarmRouteRuleSpecificity");
129
+ function normalizeRoutePattern(value) {
130
+ const withSlash = value.trim().startsWith("/") ? value.trim() : `/${value.trim()}`;
131
+ return withSlash.length > 1 ? withSlash.replace(/\/+$/, "") : withSlash;
132
+ }
133
+ __name(normalizeRoutePattern, "normalizeRoutePattern");
134
+ function escapeRegExp(value) {
135
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
136
+ }
137
+ __name(escapeRegExp, "escapeRegExp");
138
+
139
+ export {
140
+ normalizeFarmRouteRuntimeConfig,
141
+ mergeFarmRouteRuntimeConfigs,
142
+ resolveFarmRouteRuntimeConfig,
143
+ hasFarmRouteRuntimeControls,
144
+ getFarmRouteRuntimeConfig,
145
+ createFarmRouteRuntimeKey,
146
+ resolveFarmRouteRuleRuntimeConfig,
147
+ farmRouteRuleMatches
148
+ };
149
+ //# sourceMappingURL=chunk-GQVGIUSN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/route-runtime.ts"],"sourcesContent":["export type FarmRouteRuntime = \"auto\" | \"node\" | \"edge\";\nexport type FarmRouteRegions = \"auto\" | readonly string[];\nexport type FarmRouteMaxDuration = \"auto\" | number;\n\n/** Portable execution controls shared by file, programmatic, and config routes. */\nexport interface FarmRouteRuntimeConfig {\n runtime?: FarmRouteRuntime;\n regions?: FarmRouteRegions;\n maxDuration?: FarmRouteMaxDuration;\n}\n\nexport interface ResolvedFarmRouteRuntimeConfig {\n runtime: FarmRouteRuntime;\n regions?: string[];\n maxDuration?: number;\n}\n\nexport type FarmRouteRuntimeEntryKind = \"page\" | \"api\" | \"rule\";\nexport type FarmRouteRenderingMode = \"static\" | \"dynamic\";\n\nexport interface FarmRouteRuntimeManifestEntry extends ResolvedFarmRouteRuntimeConfig {\n kind: FarmRouteRuntimeEntryKind;\n pattern: string;\n rendering: FarmRouteRenderingMode;\n source?: string;\n}\n\nexport interface FarmRouteRuntimeManifest {\n version: 1;\n routes: FarmRouteRuntimeManifestEntry[];\n}\n\nexport function normalizeFarmRouteRuntimeConfig(\n value: FarmRouteRuntimeConfig | null | undefined,\n source = \"Route configuration\",\n): FarmRouteRuntimeConfig {\n if (!value) return {};\n\n const normalized: FarmRouteRuntimeConfig = {};\n\n if (value.runtime !== undefined) {\n if (value.runtime !== \"auto\" && value.runtime !== \"node\" && value.runtime !== \"edge\") {\n throw new TypeError(`${source} runtime must be \"auto\", \"node\", or \"edge\"`);\n }\n normalized.runtime = value.runtime;\n }\n\n if (value.regions !== undefined) {\n if (value.regions === \"auto\") {\n normalized.regions = \"auto\";\n } else {\n if (!Array.isArray(value.regions) || value.regions.length === 0) {\n throw new TypeError(`${source} regions must be \"auto\" or a non-empty string array`);\n }\n\n const regions = Array.from(\n new Set(\n value.regions.map((region) => {\n if (\n typeof region !== \"string\" ||\n !region.trim() ||\n /[\\u0000-\\u001f\\u007f]/.test(region)\n ) {\n throw new TypeError(`${source} regions must contain non-empty region identifiers`);\n }\n return region.trim();\n }),\n ),\n );\n\n normalized.regions = regions;\n }\n }\n\n if (value.maxDuration !== undefined) {\n if (value.maxDuration === \"auto\") {\n normalized.maxDuration = \"auto\";\n } else if (\n typeof value.maxDuration !== \"number\" ||\n !Number.isInteger(value.maxDuration) ||\n value.maxDuration <= 0\n ) {\n throw new TypeError(`${source} maxDuration must be \"auto\" or a positive integer in seconds`);\n } else {\n normalized.maxDuration = value.maxDuration;\n }\n }\n\n return normalized;\n}\n\n/** Merge from lowest to highest precedence. Explicit \"auto\" values reset inherited hints. */\nexport function mergeFarmRouteRuntimeConfigs(\n ...configs: Array<FarmRouteRuntimeConfig | null | undefined>\n): FarmRouteRuntimeConfig {\n const merged: FarmRouteRuntimeConfig = {};\n\n for (const config of configs) {\n if (!config) continue;\n if (config.runtime !== undefined) merged.runtime = config.runtime;\n if (config.regions !== undefined) merged.regions = config.regions;\n if (config.maxDuration !== undefined) merged.maxDuration = config.maxDuration;\n }\n\n return merged;\n}\n\nexport function resolveFarmRouteRuntimeConfig(\n config: FarmRouteRuntimeConfig | null | undefined,\n source?: string,\n): ResolvedFarmRouteRuntimeConfig {\n const normalized = normalizeFarmRouteRuntimeConfig(config, source);\n\n return {\n runtime: normalized.runtime ?? \"auto\",\n ...(normalized.regions && normalized.regions !== \"auto\"\n ? { regions: [...normalized.regions] }\n : {}),\n ...(typeof normalized.maxDuration === \"number\" ? { maxDuration: normalized.maxDuration } : {}),\n };\n}\n\nexport function hasFarmRouteRuntimeControls(\n config: FarmRouteRuntimeConfig | null | undefined,\n): boolean {\n return Boolean(\n config &&\n (config.runtime !== undefined ||\n config.regions !== undefined ||\n config.maxDuration !== undefined),\n );\n}\n\nexport function getFarmRouteRuntimeConfig(value: unknown): FarmRouteRuntimeConfig {\n if (!value || typeof value !== \"object\") return {};\n const route = value as FarmRouteRuntimeConfig;\n return {\n ...(route.runtime !== undefined ? { runtime: route.runtime } : {}),\n ...(route.regions !== undefined ? { regions: route.regions } : {}),\n ...(route.maxDuration !== undefined ? { maxDuration: route.maxDuration } : {}),\n };\n}\n\nexport function createFarmRouteRuntimeKey(config: ResolvedFarmRouteRuntimeConfig): string {\n return JSON.stringify({\n runtime: config.runtime,\n regions: config.regions || null,\n maxDuration: config.maxDuration || null,\n });\n}\n\n/** Resolve matching route rules from broadest to most specific. */\nexport function resolveFarmRouteRuleRuntimeConfig(\n pathname: string,\n routeRules: Record<string, FarmRouteRuntimeConfig> | null | undefined,\n): FarmRouteRuntimeConfig {\n if (!routeRules) return {};\n\n const matches = Object.entries(routeRules)\n .filter(\n ([pattern, rule]) =>\n hasFarmRouteRuntimeControls(rule) && farmRouteRuleMatches(pattern, pathname),\n )\n .sort(([left], [right]) => compareFarmRouteRuleSpecificity(left, right));\n\n return mergeFarmRouteRuntimeConfigs(...matches.map(([, rule]) => rule));\n}\n\nexport function farmRouteRuleMatches(pattern: string, pathname: string): boolean {\n const normalizedPattern = normalizeRoutePattern(pattern);\n const normalizedPathname = normalizeRoutePattern(pathname);\n if (normalizedPattern === normalizedPathname) return true;\n\n const expression = normalizedPattern\n .split(\"/\")\n .filter(Boolean)\n .map((segment) => {\n if (segment === \"**\") return \".*\";\n if (segment === \"*\") return \"[^/]+\";\n if (/^\\[\\[\\.\\.\\..+\\]\\]$/.test(segment)) return \".*\";\n if (/^\\[\\.\\.\\..+\\]$/.test(segment)) return \".+\";\n if (/^\\[.+\\]$/.test(segment) || /^:.+$/.test(segment)) return \"[^/]+\";\n return escapeRegExp(segment);\n })\n .join(\"/\");\n\n return new RegExp(`^/${expression}/?$`).test(normalizedPathname);\n}\n\nfunction compareFarmRouteRuleSpecificity(left: string, right: string): number {\n const leftScore = getFarmRouteRuleSpecificity(left);\n const rightScore = getFarmRouteRuleSpecificity(right);\n return leftScore - rightScore || left.localeCompare(right);\n}\n\nfunction getFarmRouteRuleSpecificity(pattern: string): number {\n return normalizeRoutePattern(pattern)\n .split(\"/\")\n .filter(Boolean)\n .reduce((score, segment) => {\n if (segment === \"**\" || segment.startsWith(\"[[...\")) return score + 1;\n if (segment === \"*\" || segment.startsWith(\"[...\")) return score + 10;\n if (/^\\[.+\\]$/.test(segment) || /^:.+$/.test(segment)) return score + 50;\n return score + 100;\n }, 0);\n}\n\nfunction normalizeRoutePattern(value: string): string {\n const withSlash = value.trim().startsWith(\"/\") ? value.trim() : `/${value.trim()}`;\n return withSlash.length > 1 ? withSlash.replace(/\\/+$/, \"\") : withSlash;\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n"],"mappings":"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","names":[]}