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

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-4MGVSBRP.mjs +7787 -0
  46. package/dist/chunk-4MGVSBRP.mjs.map +1 -0
  47. package/dist/chunk-4S3ORGFA.mjs +44 -0
  48. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  49. package/dist/chunk-5BY76U2M.mjs +1 -0
  50. package/dist/chunk-5BY76U2M.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-74YTBPTY.mjs +450 -0
  56. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  57. package/dist/chunk-7FBJLMQH.mjs +338 -0
  58. package/dist/chunk-7FBJLMQH.mjs.map +1 -0
  59. package/dist/chunk-7HO6AEOP.mjs +74 -0
  60. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  61. package/dist/chunk-7MABZJIM.mjs +29 -0
  62. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  63. package/dist/chunk-7N62DNSO.mjs +41 -0
  64. package/dist/chunk-7N62DNSO.mjs.map +1 -0
  65. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  66. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  67. package/dist/chunk-ALCLXXTY.mjs +187 -0
  68. package/dist/chunk-ALCLXXTY.mjs.map +1 -0
  69. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  70. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  71. package/dist/chunk-B232I2GP.mjs +163 -0
  72. package/dist/chunk-B232I2GP.mjs.map +1 -0
  73. package/dist/chunk-B4W3BNTL.mjs +483 -0
  74. package/dist/chunk-B4W3BNTL.mjs.map +1 -0
  75. package/dist/chunk-C2ROET2V.mjs +718 -0
  76. package/dist/chunk-C2ROET2V.mjs.map +1 -0
  77. package/dist/chunk-CGILA3WO.mjs +14 -0
  78. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  79. package/dist/chunk-CGIXMLSY.mjs +184 -0
  80. package/dist/chunk-CGIXMLSY.mjs.map +1 -0
  81. package/dist/chunk-DJSGLHCN.mjs +597 -0
  82. package/dist/chunk-DJSGLHCN.mjs.map +1 -0
  83. package/dist/chunk-E2MPIBRE.mjs +149 -0
  84. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  85. package/dist/chunk-E6EPN5BT.mjs +203 -0
  86. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  87. package/dist/chunk-EI43C4RA.mjs +6277 -0
  88. package/dist/chunk-EI43C4RA.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-GN72QAIH.mjs +146 -0
  96. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  97. package/dist/chunk-GQVGIUSN.mjs +149 -0
  98. package/dist/chunk-GQVGIUSN.mjs.map +1 -0
  99. package/dist/chunk-GS6K5OCM.mjs +407 -0
  100. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  101. package/dist/chunk-GXASWWJU.mjs +364 -0
  102. package/dist/chunk-GXASWWJU.mjs.map +1 -0
  103. package/dist/chunk-GY2STC2S.mjs +180 -0
  104. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  105. package/dist/chunk-H2FA2SBS.mjs +51 -0
  106. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  107. package/dist/chunk-I4CUBGVF.mjs +93 -0
  108. package/dist/chunk-I4CUBGVF.mjs.map +1 -0
  109. package/dist/chunk-ITN462YM.mjs +98 -0
  110. package/dist/chunk-ITN462YM.mjs.map +1 -0
  111. package/dist/chunk-J23HNLFY.mjs +72 -0
  112. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  113. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  114. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  115. package/dist/chunk-J5YWQVI5.mjs +211 -0
  116. package/dist/chunk-J5YWQVI5.mjs.map +1 -0
  117. package/dist/chunk-JDEOUK5V.mjs +427 -0
  118. package/dist/chunk-JDEOUK5V.mjs.map +1 -0
  119. package/dist/chunk-JK25YEN6.mjs +219 -0
  120. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  121. package/dist/chunk-K4667E2Q.mjs +1916 -0
  122. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  123. package/dist/chunk-LGHEOHBU.mjs +218 -0
  124. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  125. package/dist/chunk-LM2YNO4U.mjs +24 -0
  126. package/dist/chunk-LM2YNO4U.mjs.map +1 -0
  127. package/dist/chunk-ME4MO2RJ.mjs +3540 -0
  128. package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
  129. package/dist/chunk-MIUW47JX.mjs +639 -0
  130. package/dist/chunk-MIUW47JX.mjs.map +1 -0
  131. package/dist/chunk-NNLCAVB6.mjs +391 -0
  132. package/dist/chunk-NNLCAVB6.mjs.map +1 -0
  133. package/dist/chunk-P7QDS5AT.mjs +191 -0
  134. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  135. package/dist/chunk-PFE6GMNE.mjs +603 -0
  136. package/dist/chunk-PFE6GMNE.mjs.map +1 -0
  137. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  138. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  139. package/dist/chunk-QKVUNGAH.mjs +39 -0
  140. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  141. package/dist/chunk-QM746KUO.mjs +56 -0
  142. package/dist/chunk-QM746KUO.mjs.map +1 -0
  143. package/dist/chunk-QTZZ2ISQ.mjs +753 -0
  144. package/dist/chunk-QTZZ2ISQ.mjs.map +1 -0
  145. package/dist/chunk-RBRLLZL5.mjs +81 -0
  146. package/dist/chunk-RBRLLZL5.mjs.map +1 -0
  147. package/dist/chunk-RHIFZZUI.mjs +69 -0
  148. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  149. package/dist/chunk-RQ633A5I.mjs +187 -0
  150. package/dist/chunk-RQ633A5I.mjs.map +1 -0
  151. package/dist/chunk-SCFX4UTD.mjs +28 -0
  152. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  153. package/dist/chunk-SL6HTIOK.mjs +66 -0
  154. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  155. package/dist/chunk-SPBBQLXI.mjs +207 -0
  156. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  157. package/dist/chunk-SSA7THPX.mjs +10 -0
  158. package/dist/chunk-SSA7THPX.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 +454 -0
  300. package/dist/index.d.ts +454 -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,753 @@
1
+ import {
2
+ _hydrateFarmI18n,
3
+ getFarmI18nClientState,
4
+ isFarmLocaleChangeHref
5
+ } from "./chunk-ITN462YM.mjs";
6
+ import {
7
+ createFarmDeploymentMismatchError,
8
+ createFarmDeploymentRequestHeaders,
9
+ isFarmDeploymentMismatchResponse
10
+ } from "./chunk-B232I2GP.mjs";
11
+ import {
12
+ readDeferredDataResponse
13
+ } from "./chunk-GS6K5OCM.mjs";
14
+ import {
15
+ stripFarmLocaleFromPathname
16
+ } from "./chunk-44ZCFSKE.mjs";
17
+ import {
18
+ createFarmRouter
19
+ } from "./chunk-ZBE6MLHL.mjs";
20
+ import {
21
+ __name
22
+ } from "./chunk-CGILA3WO.mjs";
23
+
24
+ // src/client/spa-router.ts
25
+ var FARM_PAGE_STATE_KEY = "__farmPageState";
26
+ var FARM_INTERCEPT_FROM_KEY = "__farmInterceptFrom";
27
+ var IDLE_NAVIGATION_STATE = {
28
+ state: "idle",
29
+ pending: false,
30
+ from: null,
31
+ to: null,
32
+ action: null,
33
+ startedAt: null
34
+ };
35
+ var routerInstance = null;
36
+ var _SPARouter = class _SPARouter {
37
+ constructor(options = {}) {
38
+ this.cache = /* @__PURE__ */ new Map();
39
+ this.prefetchingUrls = /* @__PURE__ */ new Set();
40
+ this.observers = /* @__PURE__ */ new Map();
41
+ this.blockers = /* @__PURE__ */ new Set();
42
+ this.navigationListeners = /* @__PURE__ */ new Set();
43
+ this.navigationState = IDLE_NAVIGATION_STATE;
44
+ this.scrollElements = /* @__PURE__ */ new Map();
45
+ this.options = {
46
+ prefetchTimeout: options.prefetchTimeout ?? 100,
47
+ cacheMaxAge: options.cacheMaxAge ?? 3e4,
48
+ // 30 seconds
49
+ scrollRestoration: options.scrollRestoration ?? true,
50
+ shouldUseDocumentNavigation: options.shouldUseDocumentNavigation ?? (() => false),
51
+ deploymentId: options.deploymentId ?? readBrowserDeploymentId()
52
+ };
53
+ if (typeof window !== "undefined") {
54
+ window.addEventListener("popstate", this.handlePopState.bind(this));
55
+ window.addEventListener("beforeunload", (event) => {
56
+ if (this.blockers.size > 0) {
57
+ event.preventDefault();
58
+ event.returnValue = "";
59
+ }
60
+ this.saveScrollPosition(window.location.pathname);
61
+ });
62
+ }
63
+ }
64
+ /**
65
+ * Set the navigation handler that updates React
66
+ */
67
+ setNavigationHandler(handler) {
68
+ this.onNavigate = handler;
69
+ }
70
+ /**
71
+ * Connect Farm's browser plugin lifecycle to SPA navigation.
72
+ */
73
+ setClientPluginManager(manager) {
74
+ this.clientPlugins = manager;
75
+ }
76
+ /**
77
+ * Navigate to a new URL
78
+ */
79
+ async navigate(href, options = {}) {
80
+ const { replace = false, scroll = true, state, viewTransition = false } = options;
81
+ const url = new URL(href, window.location.origin);
82
+ const pathname = url.pathname;
83
+ const search = url.search;
84
+ const fullPath = pathname + search;
85
+ if (isFarmLocaleChangeHref(url.toString()) || this.options.shouldUseDocumentNavigation(pathname)) {
86
+ if (replace) window.location.replace(url.toString());
87
+ else window.location.assign(url.toString());
88
+ return;
89
+ }
90
+ if (pathname === window.location.pathname && search === window.location.search) {
91
+ if (url.hash) {
92
+ window.location.hash = url.hash;
93
+ }
94
+ return;
95
+ }
96
+ const from = window.location.pathname + window.location.search;
97
+ if (await this.shouldBlockNavigation({
98
+ from,
99
+ to: fullPath,
100
+ action: replace ? "replace" : "push"
101
+ })) {
102
+ return;
103
+ }
104
+ if (this.options.scrollRestoration) {
105
+ this.saveScrollPosition(window.location.pathname);
106
+ }
107
+ this.startNavigation({
108
+ from,
109
+ to: createNavigationLocation(url),
110
+ action: replace ? "replace" : "push"
111
+ });
112
+ let clientNavigation;
113
+ try {
114
+ clientNavigation = await this.clientPlugins?.beginNavigation({
115
+ from,
116
+ to: url,
117
+ action: replace ? "replace" : "push"
118
+ });
119
+ const pageData = await this.fetchPageData(fullPath, true, from);
120
+ if (clientNavigation) {
121
+ await this.clientPlugins?.markNavigationLoaded(clientNavigation, pageData);
122
+ }
123
+ if (pageData.isClientComponent === false && !pageData.interception) {
124
+ this.finishNavigation();
125
+ window.location.assign(pageData.canonicalPath || fullPath);
126
+ return;
127
+ }
128
+ await this.runViewTransition(
129
+ viewTransition,
130
+ () => this.commitNavigation({
131
+ fullPath,
132
+ pageData,
133
+ pathname,
134
+ replace,
135
+ scroll,
136
+ state,
137
+ url
138
+ })
139
+ );
140
+ if (clientNavigation) {
141
+ await this.clientPlugins?.resolveNavigation(clientNavigation);
142
+ void this.clientPlugins?.scheduleNavigationRendered(clientNavigation);
143
+ }
144
+ this.finishNavigation();
145
+ } catch (error) {
146
+ if (clientNavigation) {
147
+ await this.clientPlugins?.failNavigation(clientNavigation, error);
148
+ }
149
+ this.finishNavigation();
150
+ console.error("[Farm.js] Navigation error:", error);
151
+ window.location.href = href;
152
+ }
153
+ }
154
+ /**
155
+ * Prefetch a URL
156
+ */
157
+ async prefetch(href) {
158
+ if (isFarmLocaleChangeHref(href)) return;
159
+ const url = new URL(href, window.location.origin);
160
+ const fullPath = url.pathname + url.search;
161
+ const interceptFrom = window.location.pathname + window.location.search;
162
+ if (this.prefetchingUrls.has(fullPath)) return;
163
+ if (this.isCached(fullPath, interceptFrom)) return;
164
+ this.prefetchingUrls.add(fullPath);
165
+ try {
166
+ await this.fetchPageData(fullPath, false, interceptFrom);
167
+ } catch (error) {
168
+ console.warn("[Farm.js] Prefetch failed:", href, error);
169
+ } finally {
170
+ this.prefetchingUrls.delete(fullPath);
171
+ }
172
+ }
173
+ /**
174
+ * Observe an element for viewport intersection (prefetch when visible)
175
+ */
176
+ observeForPrefetch(element) {
177
+ if (typeof IntersectionObserver === "undefined") return;
178
+ const href = element.getAttribute("href");
179
+ if (!href || this.isExternalUrl(href)) return;
180
+ const observer = new IntersectionObserver(
181
+ (entries) => {
182
+ for (const entry of entries) {
183
+ if (entry.isIntersecting) {
184
+ setTimeout(() => {
185
+ this.prefetch(href);
186
+ }, this.options.prefetchTimeout);
187
+ observer.unobserve(element);
188
+ this.observers.delete(element);
189
+ }
190
+ }
191
+ },
192
+ { rootMargin: "200px" }
193
+ // Start prefetching when 200px from viewport
194
+ );
195
+ observer.observe(element);
196
+ this.observers.set(element, observer);
197
+ }
198
+ /**
199
+ * Stop observing an element
200
+ */
201
+ unobserveForPrefetch(element) {
202
+ const observer = this.observers.get(element);
203
+ if (observer) {
204
+ observer.unobserve(element);
205
+ this.observers.delete(element);
206
+ }
207
+ }
208
+ addBlocker(blocker) {
209
+ this.blockers.add(blocker);
210
+ return () => {
211
+ this.blockers.delete(blocker);
212
+ };
213
+ }
214
+ getNavigationState() {
215
+ return this.navigationState;
216
+ }
217
+ subscribeNavigation(listener) {
218
+ this.navigationListeners.add(listener);
219
+ listener(this.navigationState);
220
+ return () => {
221
+ this.navigationListeners.delete(listener);
222
+ };
223
+ }
224
+ registerScrollElement(key, element) {
225
+ this.scrollElements.set(key, element);
226
+ this.restoreScrollElement(window.location.pathname, key, element);
227
+ return () => {
228
+ if (this.scrollElements.get(key) === element) {
229
+ this.scrollElements.delete(key);
230
+ }
231
+ };
232
+ }
233
+ pushState(state, href) {
234
+ this.writePageState("push", state, href);
235
+ }
236
+ replaceState(state, href) {
237
+ this.writePageState("replace", state, href);
238
+ }
239
+ async commitNavigation(options) {
240
+ const historyPath = options.pageData.canonicalPath || options.fullPath;
241
+ const historyState = createHistoryState(
242
+ historyPath,
243
+ options.state,
244
+ void 0,
245
+ options.pageData.interception?.from ?? null
246
+ );
247
+ if (options.replace) {
248
+ window.history.replaceState(historyState, "", historyPath);
249
+ } else {
250
+ window.history.pushState(historyState, "", historyPath);
251
+ }
252
+ if (options.pageData.metadata?.title) {
253
+ document.title = options.pageData.metadata.title;
254
+ }
255
+ if (options.pageData.metadata?.description) {
256
+ let metaDesc = document.querySelector('meta[name="description"]');
257
+ if (!metaDesc) {
258
+ metaDesc = document.createElement("meta");
259
+ metaDesc.setAttribute("name", "description");
260
+ document.head.appendChild(metaDesc);
261
+ }
262
+ metaDesc.setAttribute("content", options.pageData.metadata.description);
263
+ }
264
+ _hydrateFarmI18n(options.pageData.i18n);
265
+ if (this.onNavigate) {
266
+ await this.onNavigate(options.pageData);
267
+ }
268
+ if (options.scroll) {
269
+ if (options.url.hash) {
270
+ const element = document.querySelector(options.url.hash);
271
+ if (element) {
272
+ element.scrollIntoView();
273
+ }
274
+ } else {
275
+ window.scrollTo(0, 0);
276
+ }
277
+ } else if (this.options.scrollRestoration) {
278
+ this.restoreScrollPosition(options.pathname);
279
+ }
280
+ }
281
+ async runViewTransition(mode, callback) {
282
+ if (!mode || typeof document === "undefined") {
283
+ await callback();
284
+ return;
285
+ }
286
+ const startViewTransition = document.startViewTransition;
287
+ if (typeof startViewTransition !== "function") {
288
+ await callback();
289
+ return;
290
+ }
291
+ const transition = startViewTransition.call(document, () => callback());
292
+ const updateDone = transition?.updateCallbackDone || transition?.ready;
293
+ if (updateDone && typeof updateDone.then === "function") {
294
+ await updateDone;
295
+ }
296
+ transition?.finished?.catch?.(() => void 0);
297
+ }
298
+ /**
299
+ * Fetch page data from cache or server
300
+ */
301
+ async fetchPageData(path, recover = true, interceptFrom) {
302
+ const cacheKey = getPageDataCacheKey(path, interceptFrom);
303
+ const cached = this.cache.get(cacheKey);
304
+ if (cached && Date.now() - cached.timestamp < this.options.cacheMaxAge) {
305
+ return cached.data;
306
+ }
307
+ const response = await fetch(`/__farm/page-data?path=${encodeURIComponent(path)}`, {
308
+ headers: createFarmDeploymentRequestHeaders(this.options.deploymentId, {
309
+ Accept: "application/x-farm-deferred+json, application/json",
310
+ "X-Farm-SPA": "1",
311
+ ...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {}
312
+ })
313
+ });
314
+ if (isFarmDeploymentMismatchResponse(response, this.options.deploymentId)) {
315
+ const error = createFarmDeploymentMismatchError(
316
+ response,
317
+ this.options.deploymentId || "unknown"
318
+ );
319
+ dispatchDeploymentMismatch(error);
320
+ if (recover) {
321
+ window.location.assign(path);
322
+ }
323
+ throw error;
324
+ }
325
+ if (!response.ok) {
326
+ throw new Error(`Failed to fetch page data: ${response.status}`);
327
+ }
328
+ const data = await readDeferredDataResponse(response);
329
+ this.cache.set(cacheKey, {
330
+ data,
331
+ timestamp: Date.now()
332
+ });
333
+ return data;
334
+ }
335
+ /**
336
+ * Handle browser back/forward navigation
337
+ */
338
+ async handlePopState(event) {
339
+ if (document.documentElement.dataset.farmDocsRuntime === "true") return;
340
+ const path = window.location.pathname + window.location.search;
341
+ if (await this.shouldBlockNavigation({
342
+ from: event.state?.path || path,
343
+ to: path,
344
+ action: "pop"
345
+ })) {
346
+ return;
347
+ }
348
+ this.startNavigation({
349
+ from: event.state?.path || path,
350
+ to: createNavigationLocation(new URL(window.location.href)),
351
+ action: "pop"
352
+ });
353
+ let clientNavigation;
354
+ try {
355
+ clientNavigation = await this.clientPlugins?.beginNavigation({
356
+ from: null,
357
+ to: window.location.href,
358
+ action: "pop"
359
+ });
360
+ const interceptFrom = typeof event.state?.[FARM_INTERCEPT_FROM_KEY] === "string" ? event.state[FARM_INTERCEPT_FROM_KEY] : void 0;
361
+ const pageData = await this.fetchPageData(path, true, interceptFrom);
362
+ if (clientNavigation) {
363
+ await this.clientPlugins?.markNavigationLoaded(clientNavigation, pageData);
364
+ }
365
+ if (pageData.metadata?.title) {
366
+ document.title = pageData.metadata.title;
367
+ }
368
+ _hydrateFarmI18n(pageData.i18n);
369
+ if (this.onNavigate) {
370
+ await this.onNavigate(pageData);
371
+ }
372
+ if (this.options.scrollRestoration) {
373
+ this.restoreScrollPosition(window.location.pathname);
374
+ }
375
+ if (clientNavigation) {
376
+ await this.clientPlugins?.resolveNavigation(clientNavigation);
377
+ void this.clientPlugins?.scheduleNavigationRendered(clientNavigation);
378
+ }
379
+ this.finishNavigation();
380
+ } catch (error) {
381
+ if (clientNavigation) {
382
+ await this.clientPlugins?.failNavigation(clientNavigation, error);
383
+ }
384
+ this.finishNavigation();
385
+ console.error("[Farm.js] Popstate navigation error:", error);
386
+ window.location.reload();
387
+ }
388
+ }
389
+ /**
390
+ * Check if URL is cached
391
+ */
392
+ isCached(path, interceptFrom) {
393
+ const cached = this.cache.get(getPageDataCacheKey(path, interceptFrom));
394
+ return cached !== void 0 && Date.now() - cached.timestamp < this.options.cacheMaxAge;
395
+ }
396
+ /**
397
+ * Check if URL is external
398
+ */
399
+ isExternalUrl(href) {
400
+ return href.startsWith("http://") || href.startsWith("https://") || href.startsWith("//");
401
+ }
402
+ async shouldBlockNavigation(context) {
403
+ for (const blocker of this.blockers) {
404
+ if (await blocker(context)) {
405
+ return true;
406
+ }
407
+ }
408
+ return false;
409
+ }
410
+ startNavigation(options) {
411
+ this.setNavigationState({
412
+ state: "loading",
413
+ pending: true,
414
+ from: options.from,
415
+ to: options.to,
416
+ action: options.action,
417
+ startedAt: Date.now()
418
+ });
419
+ }
420
+ finishNavigation() {
421
+ this.setNavigationState(IDLE_NAVIGATION_STATE);
422
+ }
423
+ setNavigationState(state) {
424
+ this.navigationState = state;
425
+ for (const listener of this.navigationListeners) {
426
+ listener(state);
427
+ }
428
+ }
429
+ writePageState(action, state, href) {
430
+ if (typeof window === "undefined") return;
431
+ const url = href ? new URL(href, window.location.origin).toString() : window.location.href;
432
+ const nextState = createHistoryState(
433
+ new URL(url).pathname + new URL(url).search,
434
+ state,
435
+ window.history.state
436
+ );
437
+ if (action === "replace") {
438
+ window.history.replaceState(nextState, "", url);
439
+ } else {
440
+ window.history.pushState(nextState, "", url);
441
+ }
442
+ window.dispatchEvent(new PopStateEvent("popstate", { state: nextState }));
443
+ }
444
+ /**
445
+ * Save scroll position for a path
446
+ */
447
+ saveScrollPosition(path) {
448
+ try {
449
+ sessionStorage.setItem(
450
+ `farm-scroll-${path}`,
451
+ JSON.stringify({ x: window.scrollX, y: window.scrollY })
452
+ );
453
+ for (const [key, element] of this.scrollElements) {
454
+ sessionStorage.setItem(
455
+ getScrollElementStorageKey(path, key),
456
+ JSON.stringify({ x: element.scrollLeft, y: element.scrollTop })
457
+ );
458
+ }
459
+ } catch {
460
+ }
461
+ }
462
+ /**
463
+ * Restore scroll position for a path
464
+ */
465
+ restoreScrollPosition(path) {
466
+ try {
467
+ const saved = sessionStorage.getItem(`farm-scroll-${path}`);
468
+ if (saved) {
469
+ const { x, y } = JSON.parse(saved);
470
+ setTimeout(() => window.scrollTo(x, y), 0);
471
+ }
472
+ for (const [key, element] of this.scrollElements) {
473
+ this.restoreScrollElement(path, key, element);
474
+ }
475
+ } catch {
476
+ }
477
+ }
478
+ restoreScrollElement(path, key, element) {
479
+ try {
480
+ const saved = sessionStorage.getItem(getScrollElementStorageKey(path, key));
481
+ if (!saved) return;
482
+ const { x, y } = JSON.parse(saved);
483
+ setTimeout(() => {
484
+ element.scrollLeft = x;
485
+ element.scrollTop = y;
486
+ }, 0);
487
+ } catch {
488
+ }
489
+ }
490
+ /**
491
+ * Clear the page cache
492
+ */
493
+ clearCache() {
494
+ this.cache.clear();
495
+ }
496
+ };
497
+ __name(_SPARouter, "SPARouter");
498
+ var SPARouter = _SPARouter;
499
+ function readBrowserDeploymentId() {
500
+ if (typeof window === "undefined") return void 0;
501
+ const runtimeId = window.__FARM_DEPLOYMENT_ID__;
502
+ if (typeof runtimeId === "string" && runtimeId) return runtimeId;
503
+ return document.querySelector('meta[name="farm-deployment-id"]')?.content;
504
+ }
505
+ __name(readBrowserDeploymentId, "readBrowserDeploymentId");
506
+ function dispatchDeploymentMismatch(error) {
507
+ if (typeof window === "undefined" || typeof CustomEvent === "undefined") return;
508
+ window.dispatchEvent(new CustomEvent("farm:deployment-mismatch", { detail: error }));
509
+ }
510
+ __name(dispatchDeploymentMismatch, "dispatchDeploymentMismatch");
511
+ function getRouter() {
512
+ if (typeof window === "undefined") {
513
+ return new SPARouter();
514
+ }
515
+ const installedRouter = window.__FARM_SPA_ROUTER__;
516
+ if (installedRouter) {
517
+ routerInstance = installedRouter;
518
+ return installedRouter;
519
+ }
520
+ if (!routerInstance) {
521
+ routerInstance = new SPARouter();
522
+ }
523
+ return routerInstance;
524
+ }
525
+ __name(getRouter, "getRouter");
526
+ function navigateTo(href, options) {
527
+ return getRouter().navigate(href, options);
528
+ }
529
+ __name(navigateTo, "navigateTo");
530
+ function prefetch(href) {
531
+ return getRouter().prefetch(href);
532
+ }
533
+ __name(prefetch, "prefetch");
534
+ function pushState(state, href) {
535
+ getRouter().pushState(state, href);
536
+ }
537
+ __name(pushState, "pushState");
538
+ function replaceState(state, href) {
539
+ getRouter().replaceState(state, href);
540
+ }
541
+ __name(replaceState, "replaceState");
542
+ function readPageState() {
543
+ if (typeof window === "undefined") return null;
544
+ const state = window.history.state;
545
+ if (!state || typeof state !== "object") return null;
546
+ return state[FARM_PAGE_STATE_KEY] ?? null;
547
+ }
548
+ __name(readPageState, "readPageState");
549
+ function createHistoryState(path, pageState, currentState, interceptFrom) {
550
+ const base = currentState && typeof currentState === "object" ? { ...currentState } : {};
551
+ const nextState = {
552
+ ...base,
553
+ path,
554
+ [FARM_PAGE_STATE_KEY]: pageState
555
+ };
556
+ if (interceptFrom === null) {
557
+ delete nextState[FARM_INTERCEPT_FROM_KEY];
558
+ } else if (interceptFrom) {
559
+ nextState[FARM_INTERCEPT_FROM_KEY] = interceptFrom;
560
+ }
561
+ return nextState;
562
+ }
563
+ __name(createHistoryState, "createHistoryState");
564
+ function getPageDataCacheKey(path, interceptFrom) {
565
+ return interceptFrom ? `${path}
566
+ intercept:${interceptFrom}` : path;
567
+ }
568
+ __name(getPageDataCacheKey, "getPageDataCacheKey");
569
+ function createNavigationLocation(url) {
570
+ return {
571
+ href: url.href,
572
+ pathname: url.pathname,
573
+ search: url.search,
574
+ hash: url.hash
575
+ };
576
+ }
577
+ __name(createNavigationLocation, "createNavigationLocation");
578
+ function getScrollElementStorageKey(path, key) {
579
+ return `farm-scroll-${path}:${key}`;
580
+ }
581
+ __name(getScrollElementStorageKey, "getScrollElementStorageKey");
582
+
583
+ // src/client/router.ts
584
+ import { useEffect, useMemo, useRef, useState } from "react";
585
+ function useRouter(options = {}) {
586
+ const basePath = options.basePath || "";
587
+ const routes = options.routes;
588
+ const routeKey = routes?.map((route) => typeof route === "string" ? route : route.path).join("\n") || "";
589
+ const routeMatcher = useMemo(
590
+ () => routeKey ? createFarmRouter(routeKey.split("\n")) : null,
591
+ [routeKey]
592
+ );
593
+ const [state, setState] = useState(() => {
594
+ return readRouterState(basePath, routeMatcher);
595
+ });
596
+ useEffect(() => {
597
+ if (typeof window === "undefined") return;
598
+ const handlePopState = /* @__PURE__ */ __name(() => {
599
+ setState(readRouterState(basePath, routeMatcher));
600
+ }, "handlePopState");
601
+ handlePopState();
602
+ window.addEventListener("popstate", handlePopState);
603
+ return () => window.removeEventListener("popstate", handlePopState);
604
+ }, [basePath, routeMatcher]);
605
+ const push = /* @__PURE__ */ __name((href) => {
606
+ if (typeof window === "undefined") return;
607
+ const url = href.startsWith("/") ? basePath + href : href;
608
+ window.history.pushState(null, "", url);
609
+ window.dispatchEvent(new PopStateEvent("popstate"));
610
+ }, "push");
611
+ const replace = /* @__PURE__ */ __name((href) => {
612
+ if (typeof window === "undefined") return;
613
+ const url = href.startsWith("/") ? basePath + href : href;
614
+ window.history.replaceState(null, "", url);
615
+ window.dispatchEvent(new PopStateEvent("popstate"));
616
+ }, "replace");
617
+ const pushState2 = /* @__PURE__ */ __name((pageState, href) => {
618
+ if (typeof window === "undefined") return;
619
+ getRouter().pushState(pageState, resolveClientHref(href, basePath));
620
+ }, "pushState");
621
+ const replaceState2 = /* @__PURE__ */ __name((pageState, href) => {
622
+ if (typeof window === "undefined") return;
623
+ getRouter().replaceState(pageState, resolveClientHref(href, basePath));
624
+ }, "replaceState");
625
+ const back = /* @__PURE__ */ __name(() => {
626
+ if (typeof window !== "undefined") {
627
+ window.history.back();
628
+ }
629
+ }, "back");
630
+ const forward = /* @__PURE__ */ __name(() => {
631
+ if (typeof window !== "undefined") {
632
+ window.history.forward();
633
+ }
634
+ }, "forward");
635
+ return {
636
+ ...state,
637
+ push,
638
+ replace,
639
+ pushState: pushState2,
640
+ replaceState: replaceState2,
641
+ back,
642
+ forward
643
+ };
644
+ }
645
+ __name(useRouter, "useRouter");
646
+ function usePageState() {
647
+ const [state, setState] = useState(() => readPageState());
648
+ useEffect(() => {
649
+ if (typeof window === "undefined") return;
650
+ const handlePopState = /* @__PURE__ */ __name(() => {
651
+ setState(readPageState());
652
+ }, "handlePopState");
653
+ handlePopState();
654
+ window.addEventListener("popstate", handlePopState);
655
+ return () => window.removeEventListener("popstate", handlePopState);
656
+ }, []);
657
+ return state;
658
+ }
659
+ __name(usePageState, "usePageState");
660
+ function useNavigation() {
661
+ const [state, setState] = useState(
662
+ () => getRouter().getNavigationState()
663
+ );
664
+ useEffect(() => {
665
+ if (typeof window === "undefined") return;
666
+ return getRouter().subscribeNavigation(setState);
667
+ }, []);
668
+ return state;
669
+ }
670
+ __name(useNavigation, "useNavigation");
671
+ function useBlocker(options) {
672
+ const optionsRef = useRef(options);
673
+ optionsRef.current = options;
674
+ const active = Boolean(options.when);
675
+ useEffect(() => {
676
+ if (typeof window === "undefined" || !active) {
677
+ return;
678
+ }
679
+ return getRouter().addBlocker(async (context) => {
680
+ const current = optionsRef.current;
681
+ const when = typeof current.when === "function" ? current.when(context) : current.when;
682
+ if (!when) return false;
683
+ if (current.shouldBlock && !await current.shouldBlock(context)) {
684
+ return false;
685
+ }
686
+ if (current.message && typeof window.confirm === "function") {
687
+ return !window.confirm(current.message);
688
+ }
689
+ return true;
690
+ });
691
+ }, [active]);
692
+ return { active };
693
+ }
694
+ __name(useBlocker, "useBlocker");
695
+ function useScrollRestoration(key) {
696
+ const ref = useRef(null);
697
+ useEffect(() => {
698
+ const element = ref.current;
699
+ if (!element) return;
700
+ return getRouter().registerScrollElement(key, element);
701
+ }, [key]);
702
+ return ref;
703
+ }
704
+ __name(useScrollRestoration, "useScrollRestoration");
705
+ function readRouterState(basePath, routeMatcher) {
706
+ if (typeof window === "undefined") {
707
+ return {
708
+ pathname: "/",
709
+ searchParams: new URLSearchParams(),
710
+ params: {},
711
+ pageState: null
712
+ };
713
+ }
714
+ const url = new URL(window.location.href);
715
+ const pathname = normalizeClientPathname(url.pathname, basePath);
716
+ const i18n = getFarmI18nClientState();
717
+ const routePathname = i18n ? stripFarmLocaleFromPathname(pathname, i18n) : pathname;
718
+ return {
719
+ pathname,
720
+ searchParams: url.searchParams,
721
+ params: routeMatcher?.match(routePathname)?.params || {},
722
+ pageState: readPageState()
723
+ };
724
+ }
725
+ __name(readRouterState, "readRouterState");
726
+ function normalizeClientPathname(pathname, basePath) {
727
+ const normalizedBase = basePath.replace(/\/+$/, "");
728
+ const isUnderBase = normalizedBase && (pathname === normalizedBase || pathname.startsWith(`${normalizedBase}/`));
729
+ const withoutBase = isUnderBase ? pathname.slice(normalizedBase.length) || "/" : pathname;
730
+ return withoutBase || "/";
731
+ }
732
+ __name(normalizeClientPathname, "normalizeClientPathname");
733
+ function resolveClientHref(href, basePath) {
734
+ if (!href) return void 0;
735
+ return href.startsWith("/") ? basePath + href : href;
736
+ }
737
+ __name(resolveClientHref, "resolveClientHref");
738
+
739
+ export {
740
+ SPARouter,
741
+ getRouter,
742
+ navigateTo,
743
+ prefetch,
744
+ pushState,
745
+ replaceState,
746
+ readPageState,
747
+ useRouter,
748
+ usePageState,
749
+ useNavigation,
750
+ useBlocker,
751
+ useScrollRestoration
752
+ };
753
+ //# sourceMappingURL=chunk-QTZZ2ISQ.mjs.map