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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/dist/internal/build-runtime.cjs +1 -1
  2. package/dist/internal/build-runtime.cjs.map +1 -1
  3. package/dist/internal/build-runtime.mjs +5 -5
  4. package/dist/plugin.cjs.map +1 -1
  5. package/dist/plugin.mjs +4 -4
  6. package/dist/server-query-client.cjs +1 -1
  7. package/dist/server-query-client.cjs.map +1 -1
  8. package/dist/server-query-client.mjs +1 -1
  9. package/dist/server.cjs +1 -1
  10. package/dist/server.cjs.map +1 -1
  11. package/dist/server.mjs +4 -4
  12. package/dist/version.cjs +1 -1
  13. package/dist/version.cjs.map +1 -1
  14. package/dist/version.mjs +1 -1
  15. package/dist/vite.cjs +1 -1
  16. package/dist/vite.cjs.map +1 -1
  17. package/dist/vite.mjs +4 -4
  18. package/package.json +1 -1
  19. package/dist/after.cjs +0 -227
  20. package/dist/after.cjs.map +0 -1
  21. package/dist/after.d.mts +0 -25
  22. package/dist/after.d.ts +0 -25
  23. package/dist/after.mjs +0 -14
  24. package/dist/after.mjs.map +0 -1
  25. package/dist/agent-runtime.cjs +0 -2379
  26. package/dist/agent-runtime.cjs.map +0 -1
  27. package/dist/agent-runtime.d.mts +0 -94
  28. package/dist/agent-runtime.d.ts +0 -94
  29. package/dist/agent-runtime.mjs +0 -479
  30. package/dist/agent-runtime.mjs.map +0 -1
  31. package/dist/api/route-manager.d.mts +0 -66
  32. package/dist/api/route-manager.d.ts +0 -66
  33. package/dist/api/runtime.d.mts +0 -3
  34. package/dist/api/runtime.d.ts +0 -3
  35. package/dist/api.cjs +0 -4100
  36. package/dist/api.cjs.map +0 -1
  37. package/dist/api.d.mts +0 -48
  38. package/dist/api.d.ts +0 -48
  39. package/dist/api.mjs +0 -93
  40. package/dist/api.mjs.map +0 -1
  41. package/dist/app-BjN-da13.d.ts +0 -300
  42. package/dist/app-CakAr8Be.d.mts +0 -300
  43. package/dist/app-markdown.cjs +0 -220
  44. package/dist/app-markdown.cjs.map +0 -1
  45. package/dist/app-markdown.d.mts +0 -22
  46. package/dist/app-markdown.d.ts +0 -22
  47. package/dist/app-markdown.mjs +0 -26
  48. package/dist/app-markdown.mjs.map +0 -1
  49. package/dist/cache.cjs +0 -945
  50. package/dist/cache.cjs.map +0 -1
  51. package/dist/cache.d.mts +0 -192
  52. package/dist/cache.d.ts +0 -192
  53. package/dist/cache.mjs +0 -46
  54. package/dist/cache.mjs.map +0 -1
  55. package/dist/chunk-2CUKEMVR.mjs +0 -872
  56. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  57. package/dist/chunk-2ED5Q2GH.mjs +0 -422
  58. package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
  59. package/dist/chunk-32W4QEJP.mjs +0 -158
  60. package/dist/chunk-32W4QEJP.mjs.map +0 -1
  61. package/dist/chunk-3U3ZUQAQ.mjs +0 -41
  62. package/dist/chunk-3U3ZUQAQ.mjs.map +0 -1
  63. package/dist/chunk-3XNTL3FQ.mjs +0 -452
  64. package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
  65. package/dist/chunk-44ZCFSKE.mjs +0 -84
  66. package/dist/chunk-44ZCFSKE.mjs.map +0 -1
  67. package/dist/chunk-4S3ORGFA.mjs +0 -44
  68. package/dist/chunk-4S3ORGFA.mjs.map +0 -1
  69. package/dist/chunk-5BY76U2M.mjs +0 -1
  70. package/dist/chunk-5BY76U2M.mjs.map +0 -1
  71. package/dist/chunk-5ZGPRGWV.mjs +0 -136
  72. package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
  73. package/dist/chunk-65A7QIKI.mjs +0 -142
  74. package/dist/chunk-65A7QIKI.mjs.map +0 -1
  75. package/dist/chunk-74YTBPTY.mjs +0 -450
  76. package/dist/chunk-74YTBPTY.mjs.map +0 -1
  77. package/dist/chunk-7HO6AEOP.mjs +0 -74
  78. package/dist/chunk-7HO6AEOP.mjs.map +0 -1
  79. package/dist/chunk-7MABZJIM.mjs +0 -29
  80. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  81. package/dist/chunk-7ZY5AIJO.mjs +0 -161
  82. package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
  83. package/dist/chunk-AJWRO5WE.mjs +0 -6241
  84. package/dist/chunk-AJWRO5WE.mjs.map +0 -1
  85. package/dist/chunk-ALCLXXTY.mjs +0 -187
  86. package/dist/chunk-ALCLXXTY.mjs.map +0 -1
  87. package/dist/chunk-AOBXKNS5.mjs +0 -7631
  88. package/dist/chunk-AOBXKNS5.mjs.map +0 -1
  89. package/dist/chunk-AZ7YUVNR.mjs +0 -65
  90. package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
  91. package/dist/chunk-B232I2GP.mjs +0 -163
  92. package/dist/chunk-B232I2GP.mjs.map +0 -1
  93. package/dist/chunk-BHG3LVHH.mjs +0 -176
  94. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  95. package/dist/chunk-C2ROET2V.mjs +0 -718
  96. package/dist/chunk-C2ROET2V.mjs.map +0 -1
  97. package/dist/chunk-C3DLZMBU.mjs +0 -597
  98. package/dist/chunk-C3DLZMBU.mjs.map +0 -1
  99. package/dist/chunk-CGILA3WO.mjs +0 -14
  100. package/dist/chunk-CGILA3WO.mjs.map +0 -1
  101. package/dist/chunk-E2MPIBRE.mjs +0 -149
  102. package/dist/chunk-E2MPIBRE.mjs.map +0 -1
  103. package/dist/chunk-E6EPN5BT.mjs +0 -203
  104. package/dist/chunk-E6EPN5BT.mjs.map +0 -1
  105. package/dist/chunk-EJ7T4TPB.mjs +0 -622
  106. package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
  107. package/dist/chunk-FQYDHKKU.mjs +0 -128
  108. package/dist/chunk-FQYDHKKU.mjs.map +0 -1
  109. package/dist/chunk-FRPWCMMG.mjs +0 -299
  110. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  111. package/dist/chunk-GN72QAIH.mjs +0 -146
  112. package/dist/chunk-GN72QAIH.mjs.map +0 -1
  113. package/dist/chunk-GQVGIUSN.mjs +0 -149
  114. package/dist/chunk-GQVGIUSN.mjs.map +0 -1
  115. package/dist/chunk-GS6K5OCM.mjs +0 -407
  116. package/dist/chunk-GS6K5OCM.mjs.map +0 -1
  117. package/dist/chunk-GXASWWJU.mjs +0 -364
  118. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  119. package/dist/chunk-GY2STC2S.mjs +0 -180
  120. package/dist/chunk-GY2STC2S.mjs.map +0 -1
  121. package/dist/chunk-H2FA2SBS.mjs +0 -51
  122. package/dist/chunk-H2FA2SBS.mjs.map +0 -1
  123. package/dist/chunk-HNIQFZKB.mjs +0 -3550
  124. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  125. package/dist/chunk-ITN462YM.mjs +0 -98
  126. package/dist/chunk-ITN462YM.mjs.map +0 -1
  127. package/dist/chunk-J23HNLFY.mjs +0 -72
  128. package/dist/chunk-J23HNLFY.mjs.map +0 -1
  129. package/dist/chunk-J4FNJ5IU.mjs +0 -179
  130. package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
  131. package/dist/chunk-JDEOUK5V.mjs +0 -427
  132. package/dist/chunk-JDEOUK5V.mjs.map +0 -1
  133. package/dist/chunk-JK25YEN6.mjs +0 -219
  134. package/dist/chunk-JK25YEN6.mjs.map +0 -1
  135. package/dist/chunk-K4667E2Q.mjs +0 -1916
  136. package/dist/chunk-K4667E2Q.mjs.map +0 -1
  137. package/dist/chunk-LGHEOHBU.mjs +0 -218
  138. package/dist/chunk-LGHEOHBU.mjs.map +0 -1
  139. package/dist/chunk-LLC7BNXW.mjs +0 -275
  140. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  141. package/dist/chunk-LM2YNO4U.mjs +0 -24
  142. package/dist/chunk-LM2YNO4U.mjs.map +0 -1
  143. package/dist/chunk-MIUW47JX.mjs +0 -639
  144. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  145. package/dist/chunk-NM3CRAAL.mjs +0 -467
  146. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  147. package/dist/chunk-NNLCAVB6.mjs +0 -391
  148. package/dist/chunk-NNLCAVB6.mjs.map +0 -1
  149. package/dist/chunk-P7QDS5AT.mjs +0 -191
  150. package/dist/chunk-P7QDS5AT.mjs.map +0 -1
  151. package/dist/chunk-PFE6GMNE.mjs +0 -603
  152. package/dist/chunk-PFE6GMNE.mjs.map +0 -1
  153. package/dist/chunk-QGOHVJ6J.mjs +0 -63
  154. package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
  155. package/dist/chunk-QGQX7SFC.mjs +0 -180
  156. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  157. package/dist/chunk-QKVUNGAH.mjs +0 -39
  158. package/dist/chunk-QKVUNGAH.mjs.map +0 -1
  159. package/dist/chunk-QM746KUO.mjs +0 -56
  160. package/dist/chunk-QM746KUO.mjs.map +0 -1
  161. package/dist/chunk-RBRLLZL5.mjs +0 -81
  162. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  163. package/dist/chunk-RHIFZZUI.mjs +0 -69
  164. package/dist/chunk-RHIFZZUI.mjs.map +0 -1
  165. package/dist/chunk-RSKVYESE.mjs +0 -187
  166. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  167. package/dist/chunk-SADGIRS2.mjs +0 -211
  168. package/dist/chunk-SADGIRS2.mjs.map +0 -1
  169. package/dist/chunk-SCFX4UTD.mjs +0 -28
  170. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  171. package/dist/chunk-SL6HTIOK.mjs +0 -66
  172. package/dist/chunk-SL6HTIOK.mjs.map +0 -1
  173. package/dist/chunk-SPBBQLXI.mjs +0 -207
  174. package/dist/chunk-SPBBQLXI.mjs.map +0 -1
  175. package/dist/chunk-T4QJQK76.mjs +0 -459
  176. package/dist/chunk-T4QJQK76.mjs.map +0 -1
  177. package/dist/chunk-TQAEEJB4.mjs +0 -157
  178. package/dist/chunk-TQAEEJB4.mjs.map +0 -1
  179. package/dist/chunk-UB5UOSHB.mjs +0 -458
  180. package/dist/chunk-UB5UOSHB.mjs.map +0 -1
  181. package/dist/chunk-USWZZUEH.mjs +0 -25
  182. package/dist/chunk-USWZZUEH.mjs.map +0 -1
  183. package/dist/chunk-UVCIEUJC.mjs +0 -16
  184. package/dist/chunk-UVCIEUJC.mjs.map +0 -1
  185. package/dist/chunk-UXUAWNO5.mjs +0 -396
  186. package/dist/chunk-UXUAWNO5.mjs.map +0 -1
  187. package/dist/chunk-V3XURYJO.mjs +0 -756
  188. package/dist/chunk-V3XURYJO.mjs.map +0 -1
  189. package/dist/chunk-V6WE6JSZ.mjs +0 -352
  190. package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
  191. package/dist/chunk-V7RBCSDJ.mjs +0 -170
  192. package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
  193. package/dist/chunk-VCANOYFI.mjs +0 -588
  194. package/dist/chunk-VCANOYFI.mjs.map +0 -1
  195. package/dist/chunk-VVKWFZAH.mjs +0 -753
  196. package/dist/chunk-VVKWFZAH.mjs.map +0 -1
  197. package/dist/chunk-VY2UYN5R.mjs +0 -224
  198. package/dist/chunk-VY2UYN5R.mjs.map +0 -1
  199. package/dist/chunk-W2CRQFF6.mjs +0 -1352
  200. package/dist/chunk-W2CRQFF6.mjs.map +0 -1
  201. package/dist/chunk-W4UIVMVI.mjs +0 -10
  202. package/dist/chunk-W4UIVMVI.mjs.map +0 -1
  203. package/dist/chunk-WZ5QFROO.mjs +0 -23
  204. package/dist/chunk-WZ5QFROO.mjs.map +0 -1
  205. package/dist/chunk-XIVV5IWN.mjs +0 -541
  206. package/dist/chunk-XIVV5IWN.mjs.map +0 -1
  207. package/dist/chunk-YW7OBE6Q.mjs +0 -119
  208. package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
  209. package/dist/chunk-Z5CQMP54.mjs +0 -365
  210. package/dist/chunk-Z5CQMP54.mjs.map +0 -1
  211. package/dist/chunk-ZBE6MLHL.mjs +0 -230
  212. package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
  213. package/dist/chunk-ZZ57EH5Z.mjs +0 -173
  214. package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
  215. package/dist/client-BT1mFQas.d.mts +0 -447
  216. package/dist/client-Nn0q4eO4.d.ts +0 -447
  217. package/dist/client-cache-CIlyBlmx.d.ts +0 -6
  218. package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
  219. package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
  220. package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
  221. package/dist/client-plugins.cjs +0 -415
  222. package/dist/client-plugins.cjs.map +0 -1
  223. package/dist/client-plugins.d.mts +0 -22
  224. package/dist/client-plugins.d.ts +0 -22
  225. package/dist/client-plugins.mjs +0 -10
  226. package/dist/client-plugins.mjs.map +0 -1
  227. package/dist/client.cjs +0 -5402
  228. package/dist/client.cjs.map +0 -1
  229. package/dist/client.d.mts +0 -447
  230. package/dist/client.d.ts +0 -447
  231. package/dist/client.mjs +0 -110
  232. package/dist/client.mjs.map +0 -1
  233. package/dist/config.cjs +0 -38
  234. package/dist/config.cjs.map +0 -1
  235. package/dist/config.d.mts +0 -29
  236. package/dist/config.d.ts +0 -29
  237. package/dist/config.mjs +0 -10
  238. package/dist/config.mjs.map +0 -1
  239. package/dist/cron.cjs +0 -406
  240. package/dist/cron.cjs.map +0 -1
  241. package/dist/cron.d.mts +0 -78
  242. package/dist/cron.d.ts +0 -78
  243. package/dist/cron.mjs +0 -30
  244. package/dist/cron.mjs.map +0 -1
  245. package/dist/deferred.cjs +0 -438
  246. package/dist/deferred.cjs.map +0 -1
  247. package/dist/deferred.d.mts +0 -42
  248. package/dist/deferred.d.ts +0 -42
  249. package/dist/deferred.mjs +0 -28
  250. package/dist/deferred.mjs.map +0 -1
  251. package/dist/deployment.cjs +0 -199
  252. package/dist/deployment.cjs.map +0 -1
  253. package/dist/deployment.d.mts +0 -34
  254. package/dist/deployment.d.ts +0 -34
  255. package/dist/deployment.mjs +0 -38
  256. package/dist/deployment.mjs.map +0 -1
  257. package/dist/devtools-LVC3VB5P.mjs +0 -370
  258. package/dist/devtools-LVC3VB5P.mjs.map +0 -1
  259. package/dist/devtools-client-3XRTBND5.mjs +0 -216
  260. package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
  261. package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
  262. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  263. package/dist/docs.cjs +0 -5553
  264. package/dist/docs.cjs.map +0 -1
  265. package/dist/docs.d.mts +0 -69
  266. package/dist/docs.d.ts +0 -69
  267. package/dist/docs.mjs +0 -46
  268. package/dist/docs.mjs.map +0 -1
  269. package/dist/env-types.cjs +0 -223
  270. package/dist/env-types.cjs.map +0 -1
  271. package/dist/env-types.d.mts +0 -11
  272. package/dist/env-types.d.ts +0 -11
  273. package/dist/env-types.mjs +0 -9
  274. package/dist/env-types.mjs.map +0 -1
  275. package/dist/env.cjs +0 -215
  276. package/dist/env.cjs.map +0 -1
  277. package/dist/env.d.mts +0 -45
  278. package/dist/env.d.ts +0 -45
  279. package/dist/env.mjs +0 -22
  280. package/dist/env.mjs.map +0 -1
  281. package/dist/environment/vite.d.mts +0 -22
  282. package/dist/environment/vite.d.ts +0 -22
  283. package/dist/environment.cjs +0 -96
  284. package/dist/environment.cjs.map +0 -1
  285. package/dist/environment.d.mts +0 -18
  286. package/dist/environment.d.ts +0 -18
  287. package/dist/environment.mjs +0 -14
  288. package/dist/environment.mjs.map +0 -1
  289. package/dist/headers.cjs +0 -126
  290. package/dist/headers.cjs.map +0 -1
  291. package/dist/headers.d.mts +0 -22
  292. package/dist/headers.d.ts +0 -22
  293. package/dist/headers.mjs +0 -12
  294. package/dist/headers.mjs.map +0 -1
  295. package/dist/i18n/client.d.mts +0 -32
  296. package/dist/i18n/client.d.ts +0 -32
  297. package/dist/i18n/index.d.mts +0 -20
  298. package/dist/i18n/index.d.ts +0 -20
  299. package/dist/i18n/server.d.mts +0 -30
  300. package/dist/i18n/server.d.ts +0 -30
  301. package/dist/image/server.d.mts +0 -37
  302. package/dist/image/server.d.ts +0 -37
  303. package/dist/image/sharp.d.mts +0 -7
  304. package/dist/image/sharp.d.ts +0 -7
  305. package/dist/image-config-Duob7wER.d.mts +0 -50
  306. package/dist/image-config-Duob7wER.d.ts +0 -50
  307. package/dist/image.cjs +0 -209
  308. package/dist/image.cjs.map +0 -1
  309. package/dist/image.d.mts +0 -39
  310. package/dist/image.d.ts +0 -39
  311. package/dist/image.mjs +0 -165
  312. package/dist/image.mjs.map +0 -1
  313. package/dist/index.cjs +0 -41822
  314. package/dist/index.cjs.map +0 -1
  315. package/dist/index.d.mts +0 -452
  316. package/dist/index.d.ts +0 -452
  317. package/dist/index.mjs +0 -973
  318. package/dist/index.mjs.map +0 -1
  319. package/dist/integration-api-CHT2OKAf.d.mts +0 -93
  320. package/dist/integration-api-CHT2OKAf.d.ts +0 -93
  321. package/dist/integration-orm-GQLGU66X.mjs +0 -13
  322. package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
  323. package/dist/integrations.cjs +0 -2820
  324. package/dist/integrations.cjs.map +0 -1
  325. package/dist/integrations.d.mts +0 -22
  326. package/dist/integrations.d.ts +0 -22
  327. package/dist/integrations.mjs +0 -51
  328. package/dist/integrations.mjs.map +0 -1
  329. package/dist/internal/build-runtime.d.mts +0 -39
  330. package/dist/internal/build-runtime.d.ts +0 -39
  331. package/dist/internal/client-runtime.d.mts +0 -2
  332. package/dist/internal/client-runtime.d.ts +0 -2
  333. package/dist/internal/config-runtime.d.mts +0 -39
  334. package/dist/internal/config-runtime.d.ts +0 -39
  335. package/dist/internal/production-node-env.d.mts +0 -12
  336. package/dist/internal/production-node-env.d.ts +0 -12
  337. package/dist/internal/production-runtime.d.mts +0 -39
  338. package/dist/internal/production-runtime.d.ts +0 -39
  339. package/dist/layers-VWVDTPUZ.mjs +0 -16
  340. package/dist/layers-VWVDTPUZ.mjs.map +0 -1
  341. package/dist/manager-THKFTOFE.mjs +0 -10
  342. package/dist/manager-THKFTOFE.mjs.map +0 -1
  343. package/dist/markdown.cjs +0 -299
  344. package/dist/markdown.cjs.map +0 -1
  345. package/dist/markdown.d.mts +0 -43
  346. package/dist/markdown.d.ts +0 -43
  347. package/dist/markdown.mjs +0 -14
  348. package/dist/markdown.mjs.map +0 -1
  349. package/dist/metadata-BAPg_Nmo.d.ts +0 -22
  350. package/dist/metadata-_6i9oFG3.d.mts +0 -22
  351. package/dist/middleware.cjs +0 -2148
  352. package/dist/middleware.cjs.map +0 -1
  353. package/dist/middleware.d.mts +0 -164
  354. package/dist/middleware.d.ts +0 -164
  355. package/dist/middleware.mjs +0 -49
  356. package/dist/middleware.mjs.map +0 -1
  357. package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
  358. package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
  359. package/dist/navigation.cjs +0 -1329
  360. package/dist/navigation.cjs.map +0 -1
  361. package/dist/navigation.d.mts +0 -14
  362. package/dist/navigation.d.ts +0 -14
  363. package/dist/navigation.mjs +0 -33
  364. package/dist/navigation.mjs.map +0 -1
  365. package/dist/nitro-QO5LV6QK.mjs +0 -689
  366. package/dist/nitro-QO5LV6QK.mjs.map +0 -1
  367. package/dist/observability.cjs +0 -186
  368. package/dist/observability.cjs.map +0 -1
  369. package/dist/observability.d.mts +0 -335
  370. package/dist/observability.d.ts +0 -335
  371. package/dist/observability.mjs +0 -16
  372. package/dist/observability.mjs.map +0 -1
  373. package/dist/params-BALtrRim.d.ts +0 -15
  374. package/dist/params-ry-lxqmy.d.mts +0 -15
  375. package/dist/plugin-BJDf43dc.d.mts +0 -165
  376. package/dist/plugin-BJDf43dc.d.ts +0 -165
  377. package/dist/plugin.cjs +0 -23225
  378. package/dist/plugin.d.mts +0 -22
  379. package/dist/plugin.d.ts +0 -22
  380. package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
  381. package/dist/production-runtime-C_B79w2P.d.mts +0 -28
  382. package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
  383. package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
  384. package/dist/query/client.d.mts +0 -61
  385. package/dist/query/client.d.ts +0 -61
  386. package/dist/query/index.d.mts +0 -90
  387. package/dist/query/index.d.ts +0 -90
  388. package/dist/query/parsers.d.mts +0 -25
  389. package/dist/query/parsers.d.ts +0 -25
  390. package/dist/query/server.d.mts +0 -55
  391. package/dist/query/server.d.ts +0 -55
  392. package/dist/request-BrFBuc8G.d.mts +0 -6
  393. package/dist/request-BslSZIRz.d.ts +0 -6
  394. package/dist/request.d.mts +0 -2
  395. package/dist/request.d.ts +0 -2
  396. package/dist/resolver-C6iecsDV.d.ts +0 -14
  397. package/dist/resolver-DlOPpjkB.d.mts +0 -14
  398. package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
  399. package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
  400. package/dist/router.d.mts +0 -36
  401. package/dist/router.d.ts +0 -36
  402. package/dist/routes.d.mts +0 -224
  403. package/dist/routes.d.ts +0 -224
  404. package/dist/runtime-9nQjVM7X.d.mts +0 -206
  405. package/dist/runtime-B6GvwDS1.d.ts +0 -27
  406. package/dist/runtime-DeAAZ6gO.d.mts +0 -27
  407. package/dist/runtime-DgeS2skB.d.ts +0 -206
  408. package/dist/server-action-security.d.mts +0 -43
  409. package/dist/server-action-security.d.ts +0 -43
  410. package/dist/server-fn-client.d.mts +0 -32
  411. package/dist/server-fn-client.d.ts +0 -32
  412. package/dist/server-fn.d.mts +0 -93
  413. package/dist/server-fn.d.ts +0 -93
  414. package/dist/server-plugins.d.mts +0 -55
  415. package/dist/server-plugins.d.ts +0 -55
  416. package/dist/server-query-client.d.mts +0 -50
  417. package/dist/server-query-client.d.ts +0 -50
  418. package/dist/server-query.d.mts +0 -36
  419. package/dist/server-query.d.ts +0 -36
  420. package/dist/server.d.mts +0 -48
  421. package/dist/server.d.ts +0 -48
  422. package/dist/storage.d.mts +0 -52
  423. package/dist/storage.d.ts +0 -52
  424. package/dist/testing.d.mts +0 -101
  425. package/dist/testing.d.ts +0 -101
  426. package/dist/transport-BmbGTXA5.d.mts +0 -49
  427. package/dist/transport-BmbGTXA5.d.ts +0 -49
  428. package/dist/types-BH1lhg5G.d.mts +0 -81
  429. package/dist/types-BH1lhg5G.d.ts +0 -81
  430. package/dist/types-C9N-nk5R.d.mts +0 -53
  431. package/dist/types-C9N-nk5R.d.ts +0 -53
  432. package/dist/types-D1A6-XvH.d.mts +0 -73
  433. package/dist/types-D1A6-XvH.d.ts +0 -73
  434. package/dist/utils-CHXlMDkg.d.mts +0 -23
  435. package/dist/utils-Drsyz1Vj.d.ts +0 -23
  436. package/dist/version.d.mts +0 -3
  437. package/dist/version.d.ts +0 -3
  438. package/dist/vite.d.mts +0 -22
  439. package/dist/vite.d.ts +0 -22
  440. package/dist/workflows.d.mts +0 -110
  441. package/dist/workflows.d.ts +0 -110
@@ -1,1329 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/navigation.ts
32
- var navigation_exports = {};
33
- __export(navigation_exports, {
34
- getFarmRedirectError: () => getFarmRedirectError,
35
- isFarmNotFoundError: () => isFarmNotFoundError,
36
- isFarmRedirectError: () => isFarmRedirectError,
37
- notFound: () => notFound,
38
- permanentRedirect: () => permanentRedirect,
39
- redirect: () => redirect,
40
- usePathname: () => usePathname,
41
- useRouter: () => useRouter2,
42
- useSearchParams: () => useSearchParams
43
- });
44
- module.exports = __toCommonJS(navigation_exports);
45
-
46
- // src/client/router.ts
47
- var import_react = require("react");
48
-
49
- // src/router.ts
50
- function createFarmRouter(routes) {
51
- const normalizedRoutes = routes.map(normalizeRouteInput).sort(compareRoutes);
52
- return {
53
- routes: normalizedRoutes.map((entry) => entry.route),
54
- match(pathname) {
55
- const normalizedPathname = normalizePathname(pathname);
56
- for (const entry of normalizedRoutes) {
57
- const params = matchSegments(entry.segments, normalizedPathname);
58
- if (params) {
59
- return {
60
- route: entry.route,
61
- pathname: normalizedPathname,
62
- params
63
- };
64
- }
65
- }
66
- return null;
67
- },
68
- build: buildFarmRoutePath,
69
- isActive: isFarmRouteActive
70
- };
71
- }
72
- __name(createFarmRouter, "createFarmRouter");
73
- function matchFarmRoute(pattern, pathname) {
74
- return matchSegments(parseRoutePattern(pattern), normalizePathname(pathname));
75
- }
76
- __name(matchFarmRoute, "matchFarmRoute");
77
- function buildFarmRoutePath(pattern, params = {}, options = {}) {
78
- const parts = [];
79
- for (const segment of parseRoutePattern(pattern)) {
80
- if (segment.type === "static") {
81
- parts.push(encodePathSegment(segment.value));
82
- continue;
83
- }
84
- const value = params[segment.name];
85
- const values = Array.isArray(value) ? value : value == null ? [] : [value];
86
- if (values.length === 0) {
87
- if (segment.optional) continue;
88
- throw new Error(`Missing route param "${segment.name}" for ${pattern}.`);
89
- }
90
- if (!segment.catchAll && values.length > 1) {
91
- throw new Error(`Route param "${segment.name}" for ${pattern} expects a single value.`);
92
- }
93
- parts.push(...values.map((item) => encodePathSegment(String(item))));
94
- }
95
- let pathname = parts.length ? `/${parts.join("/")}` : "/";
96
- if (options.trailingSlash && pathname !== "/") {
97
- pathname = `${pathname}/`;
98
- }
99
- return appendQueryAndHash(pathname, options);
100
- }
101
- __name(buildFarmRoutePath, "buildFarmRoutePath");
102
- function isFarmRouteActive(pattern, pathname, options = {}) {
103
- const normalizedPathname = normalizePathname(pathname);
104
- if (matchFarmRoute(pattern, normalizedPathname)) return true;
105
- if (options.exact !== false) return false;
106
- const normalizedPattern = normalizePathname(pattern);
107
- if (normalizedPattern === "/") return normalizedPathname === "/";
108
- return normalizedPathname.startsWith(`${normalizedPattern}/`);
109
- }
110
- __name(isFarmRouteActive, "isFarmRouteActive");
111
- function normalizeRouteInput(input, index) {
112
- const route = typeof input === "string" ? { path: input } : input;
113
- const path = normalizePathname(route.path);
114
- const segments = parseRoutePattern(path);
115
- return {
116
- route: {
117
- ...route,
118
- path
119
- },
120
- segments,
121
- score: scoreSegments(segments),
122
- index
123
- };
124
- }
125
- __name(normalizeRouteInput, "normalizeRouteInput");
126
- function parseRoutePattern(pattern) {
127
- return splitPathname(pattern).filter((part) => !isRouteGroup(part)).map((part) => {
128
- const optionalCatchAll = part.match(/^\[\[\.\.\.([A-Za-z0-9_$-]+)\]\]$/);
129
- if (optionalCatchAll) {
130
- return {
131
- type: "dynamic",
132
- name: optionalCatchAll[1],
133
- catchAll: true,
134
- optional: true
135
- };
136
- }
137
- const catchAll = part.match(/^\[\.\.\.([A-Za-z0-9_$-]+)\]$/);
138
- if (catchAll) {
139
- return {
140
- type: "dynamic",
141
- name: catchAll[1],
142
- catchAll: true,
143
- optional: false
144
- };
145
- }
146
- const dynamic = part.match(/^\[([A-Za-z0-9_$-]+)\]$/) || part.match(/^:([A-Za-z0-9_$-]+)$/);
147
- if (dynamic) {
148
- return {
149
- type: "dynamic",
150
- name: dynamic[1],
151
- catchAll: false,
152
- optional: false
153
- };
154
- }
155
- const star = part.match(/^\*([A-Za-z0-9_$-]+)(\?)?$/);
156
- if (star) {
157
- return {
158
- type: "dynamic",
159
- name: star[1],
160
- catchAll: true,
161
- optional: !!star[2]
162
- };
163
- }
164
- return {
165
- type: "static",
166
- value: decodePathSegment(part)
167
- };
168
- });
169
- }
170
- __name(parseRoutePattern, "parseRoutePattern");
171
- function matchSegments(segments, pathname) {
172
- const parts = splitPathname(pathname);
173
- const params = {};
174
- if (segments.length === 0) {
175
- return parts.length === 0 ? params : null;
176
- }
177
- let pathIndex = 0;
178
- for (const segment of segments) {
179
- if (segment.type === "static") {
180
- if (decodePathSegment(parts[pathIndex] || "") !== segment.value) return null;
181
- pathIndex++;
182
- continue;
183
- }
184
- if (segment.catchAll) {
185
- const remaining = parts.slice(pathIndex).map(decodePathSegment);
186
- if (remaining.length === 0 && !segment.optional) return null;
187
- params[segment.name] = remaining.join("/");
188
- pathIndex = parts.length;
189
- continue;
190
- }
191
- const value = parts[pathIndex];
192
- if (!value) return null;
193
- params[segment.name] = decodePathSegment(value);
194
- pathIndex++;
195
- }
196
- return pathIndex === parts.length ? params : null;
197
- }
198
- __name(matchSegments, "matchSegments");
199
- function compareRoutes(left, right) {
200
- if (right.score !== left.score) return right.score - left.score;
201
- return left.index - right.index;
202
- }
203
- __name(compareRoutes, "compareRoutes");
204
- function scoreSegments(segments) {
205
- return segments.reduce((score, segment) => {
206
- if (segment.type === "static") return score + 100;
207
- if (!segment.catchAll) return score + 50;
208
- return score + (segment.optional ? 5 : 10);
209
- }, segments.length);
210
- }
211
- __name(scoreSegments, "scoreSegments");
212
- function normalizePathname(value) {
213
- const raw = value || "/";
214
- let pathname = raw;
215
- try {
216
- pathname = new URL(raw, "http://farm.local").pathname;
217
- } catch {
218
- pathname = raw.split(/[?#]/, 1)[0] || "/";
219
- }
220
- pathname = pathname.replace(/\\/g, "/").replace(/\/+/g, "/");
221
- if (!pathname.startsWith("/")) pathname = `/${pathname}`;
222
- if (pathname.length > 1) pathname = pathname.replace(/\/+$/, "");
223
- return pathname || "/";
224
- }
225
- __name(normalizePathname, "normalizePathname");
226
- function splitPathname(pathname) {
227
- return normalizePathname(pathname).split("/").filter(Boolean);
228
- }
229
- __name(splitPathname, "splitPathname");
230
- function isRouteGroup(part) {
231
- return part.startsWith("(") && part.endsWith(")");
232
- }
233
- __name(isRouteGroup, "isRouteGroup");
234
- function decodePathSegment(value) {
235
- try {
236
- return decodeURIComponent(value);
237
- } catch {
238
- return value;
239
- }
240
- }
241
- __name(decodePathSegment, "decodePathSegment");
242
- function encodePathSegment(value) {
243
- return encodeURIComponent(value);
244
- }
245
- __name(encodePathSegment, "encodePathSegment");
246
- function appendQueryAndHash(pathname, options) {
247
- const search = createSearchParams(options.query);
248
- const hash = options.hash ? `#${options.hash.replace(/^#/, "")}` : "";
249
- const query = search.toString();
250
- return `${pathname}${query ? `?${query}` : ""}${hash}`;
251
- }
252
- __name(appendQueryAndHash, "appendQueryAndHash");
253
- function createSearchParams(query) {
254
- if (query instanceof URLSearchParams) return query;
255
- const search = new URLSearchParams();
256
- if (!query) return search;
257
- for (const [key, value] of Object.entries(query)) {
258
- const values = Array.isArray(value) ? value : [value];
259
- for (const item of values) {
260
- if (item == null) continue;
261
- search.append(key, String(item));
262
- }
263
- }
264
- return search;
265
- }
266
- __name(createSearchParams, "createSearchParams");
267
-
268
- // src/deferred.ts
269
- var FARM_DEFERRED_CONTENT_TYPE = "application/x-farm-deferred+json";
270
- var FARM_DEFERRED_ERROR_CODE = "FARM_DEFERRED_DATA_ERROR";
271
- var FARM_DEFERRED_MARKER = "$farmDeferred";
272
- var _DeferredDataError = class _DeferredDataError extends Error {
273
- constructor(message = "Deferred route data failed to load") {
274
- super(message);
275
- this.name = "DeferredDataError";
276
- this.code = FARM_DEFERRED_ERROR_CODE;
277
- }
278
- };
279
- __name(_DeferredDataError, "DeferredDataError");
280
- var DeferredDataError = _DeferredDataError;
281
- async function readDeferredDataResponse(response) {
282
- const contentType = response.headers.get("Content-Type") || "";
283
- if (!contentType.toLowerCase().startsWith(FARM_DEFERRED_CONTENT_TYPE)) {
284
- return await response.json();
285
- }
286
- if (!response.body) {
287
- throw new DeferredDataError("Deferred route data response has no body");
288
- }
289
- const reader = response.body.getReader();
290
- const decoder = new TextDecoder();
291
- const controllers = /* @__PURE__ */ new Map();
292
- let buffer = "";
293
- let complete = false;
294
- const readLine = /* @__PURE__ */ __name(async () => {
295
- while (true) {
296
- const newline = buffer.indexOf("\n");
297
- if (newline >= 0) {
298
- const line = buffer.slice(0, newline);
299
- buffer = buffer.slice(newline + 1);
300
- return line;
301
- }
302
- if (complete) {
303
- if (!buffer) return void 0;
304
- const line = buffer;
305
- buffer = "";
306
- return line;
307
- }
308
- const chunk = await reader.read();
309
- complete = chunk.done;
310
- if (chunk.value) buffer += decoder.decode(chunk.value, { stream: !chunk.done });
311
- if (chunk.done) buffer += decoder.decode();
312
- }
313
- }, "readLine");
314
- const firstLine = await readLine();
315
- if (!firstLine) {
316
- reader.releaseLock();
317
- throw new DeferredDataError("Deferred route data response is empty");
318
- }
319
- const initial = parseDeferredMessage(firstLine);
320
- if (initial.type !== "data") {
321
- reader.releaseLock();
322
- throw new DeferredDataError("Deferred route data response is invalid");
323
- }
324
- const data = reviveDeferredValue(initial.data, controllers);
325
- void (async () => {
326
- try {
327
- for (let line = await readLine(); line !== void 0; line = await readLine()) {
328
- if (!line) continue;
329
- const message = parseDeferredMessage(line);
330
- if (message.type === "resolve") {
331
- const controller = getControlledDeferred(message.id, controllers);
332
- controller.resolve(reviveDeferredValue(message.data, controllers));
333
- } else if (message.type === "reject") {
334
- getControlledDeferred(message.id, controllers).reject(
335
- new DeferredDataError(message.error?.message)
336
- );
337
- }
338
- }
339
- rejectPendingDeferred(controllers, "Deferred route data stream ended before completion");
340
- } catch {
341
- rejectPendingDeferred(controllers, "Deferred route data stream could not be read");
342
- } finally {
343
- reader.releaseLock();
344
- }
345
- })();
346
- return data;
347
- }
348
- __name(readDeferredDataResponse, "readDeferredDataResponse");
349
- function reviveDeferredValue(value, controllers, settlements, applyingSettlements = /* @__PURE__ */ new Set()) {
350
- if (isDeferredMarker(value)) {
351
- const id = value[FARM_DEFERRED_MARKER];
352
- const controller = getControlledDeferred(id, controllers);
353
- const settlement = settlements?.[id];
354
- if (settlement && controller.promise.status === "pending") {
355
- if (applyingSettlements.has(id)) return controller.promise;
356
- applyingSettlements.add(id);
357
- if (settlement.status === "fulfilled") {
358
- controller.resolve(
359
- reviveDeferredValue(settlement.value, controllers, settlements, applyingSettlements)
360
- );
361
- } else {
362
- controller.reject(new DeferredDataError(settlement.error.message));
363
- }
364
- applyingSettlements.delete(id);
365
- } else if (settlements && controller.promise.status === "pending") {
366
- controller.reject(new DeferredDataError("Deferred route data was not resolved"));
367
- }
368
- return controller.promise;
369
- }
370
- if (Array.isArray(value)) {
371
- return value.map(
372
- (item) => reviveDeferredValue(item, controllers, settlements, applyingSettlements)
373
- );
374
- }
375
- if (!value || typeof value !== "object") return value;
376
- const prototype = Object.getPrototypeOf(value);
377
- if (prototype !== Object.prototype && prototype !== null) return value;
378
- const output = {};
379
- for (const [key, item] of Object.entries(value)) {
380
- output[key] = reviveDeferredValue(item, controllers, settlements, applyingSettlements);
381
- }
382
- return output;
383
- }
384
- __name(reviveDeferredValue, "reviveDeferredValue");
385
- function getControlledDeferred(id, controllers) {
386
- const existing = controllers.get(id);
387
- if (existing) return existing;
388
- let nativeResolve;
389
- let nativeReject;
390
- const promise = new Promise((resolve, reject) => {
391
- nativeResolve = resolve;
392
- nativeReject = reject;
393
- });
394
- promise.status = "pending";
395
- promise.catch(() => void 0);
396
- const controlled = {
397
- promise,
398
- resolve(value) {
399
- if (promise.status !== "pending") return;
400
- promise.status = "fulfilled";
401
- promise.value = value;
402
- nativeResolve(value);
403
- },
404
- reject(error) {
405
- if (promise.status !== "pending") return;
406
- promise.status = "rejected";
407
- promise.reason = error;
408
- nativeReject(error);
409
- }
410
- };
411
- controllers.set(id, controlled);
412
- return controlled;
413
- }
414
- __name(getControlledDeferred, "getControlledDeferred");
415
- function isDeferredMarker(value) {
416
- return Boolean(
417
- value && typeof value === "object" && Object.keys(value).length === 1 && typeof value[FARM_DEFERRED_MARKER] === "string"
418
- );
419
- }
420
- __name(isDeferredMarker, "isDeferredMarker");
421
- function parseDeferredMessage(line) {
422
- try {
423
- return JSON.parse(line);
424
- } catch {
425
- throw new DeferredDataError("Deferred route data response contains invalid JSON");
426
- }
427
- }
428
- __name(parseDeferredMessage, "parseDeferredMessage");
429
- function rejectPendingDeferred(controllers, message) {
430
- for (const controller of controllers.values()) {
431
- if (controller.promise.status === "pending") {
432
- controller.reject(new DeferredDataError(message));
433
- }
434
- }
435
- }
436
- __name(rejectPendingDeferred, "rejectPendingDeferred");
437
-
438
- // src/deployment.ts
439
- var FARM_DEPLOYMENT_ID_HEADER = "x-farm-deployment-id";
440
- var FARM_DEPLOYMENT_MISMATCH_HEADER = "x-farm-deployment-mismatch";
441
- var FARM_DEPLOYMENT_MISMATCH_CODE = "FARM_DEPLOYMENT_MISMATCH";
442
- var FARM_DEPLOYMENT_MISMATCH_STATUS = 409;
443
- var _FarmDeploymentMismatchError = class _FarmDeploymentMismatchError extends Error {
444
- constructor(clientDeploymentId, serverDeploymentId) {
445
- super("The application was updated while this page was open. Refresh before trying again.");
446
- this.clientDeploymentId = clientDeploymentId;
447
- this.serverDeploymentId = serverDeploymentId;
448
- this.name = "FarmDeploymentMismatchError";
449
- this.code = FARM_DEPLOYMENT_MISMATCH_CODE;
450
- this.retryable = false;
451
- }
452
- };
453
- __name(_FarmDeploymentMismatchError, "FarmDeploymentMismatchError");
454
- var FarmDeploymentMismatchError = _FarmDeploymentMismatchError;
455
- function createFarmDeploymentRequestHeaders(deploymentId, init) {
456
- const headers = new Headers(init);
457
- if (deploymentId) {
458
- headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);
459
- }
460
- return headers;
461
- }
462
- __name(createFarmDeploymentRequestHeaders, "createFarmDeploymentRequestHeaders");
463
- function getFarmResponseDeploymentId(response) {
464
- return response.headers.get(FARM_DEPLOYMENT_ID_HEADER)?.trim() || void 0;
465
- }
466
- __name(getFarmResponseDeploymentId, "getFarmResponseDeploymentId");
467
- function isFarmDeploymentMismatchResponse(response, clientDeploymentId) {
468
- const serverDeploymentId = getFarmResponseDeploymentId(response);
469
- if (clientDeploymentId && serverDeploymentId && clientDeploymentId !== serverDeploymentId) {
470
- return true;
471
- }
472
- return response.status === FARM_DEPLOYMENT_MISMATCH_STATUS && response.headers.get(FARM_DEPLOYMENT_MISMATCH_HEADER) === "1";
473
- }
474
- __name(isFarmDeploymentMismatchResponse, "isFarmDeploymentMismatchResponse");
475
- function createFarmDeploymentMismatchError(response, clientDeploymentId) {
476
- return new FarmDeploymentMismatchError(
477
- clientDeploymentId,
478
- getFarmResponseDeploymentId(response) || "unknown"
479
- );
480
- }
481
- __name(createFarmDeploymentMismatchError, "createFarmDeploymentMismatchError");
482
-
483
- // src/i18n/client-runtime.ts
484
- var import_intl_messageformat = __toESM(require("intl-messageformat"));
485
-
486
- // src/i18n/bridge.ts
487
- var FARM_I18N_SNAPSHOT_RESOLVER = /* @__PURE__ */ Symbol.for("farm.i18n.snapshotResolver");
488
- function getActiveFarmI18nSnapshot() {
489
- if (typeof window !== "undefined" && window.__FARM_I18N__) {
490
- return window.__FARM_I18N__;
491
- }
492
- return globalThis[FARM_I18N_SNAPSHOT_RESOLVER]?.();
493
- }
494
- __name(getActiveFarmI18nSnapshot, "getActiveFarmI18nSnapshot");
495
-
496
- // src/i18n/routing.ts
497
- function resolveFarmLocalePath(pathname, config) {
498
- const normalized = normalizePathname2(pathname);
499
- if (config.routing === "none") {
500
- return { pathname: normalized, explicit: false };
501
- }
502
- const segments = normalized.split("/").filter(Boolean);
503
- const firstSegment = segments[0];
504
- const locale = config.locales.find(
505
- (candidate) => candidate.toLowerCase() === firstSegment?.toLowerCase()
506
- );
507
- if (!locale) {
508
- return { pathname: normalized, explicit: false };
509
- }
510
- const remaining = segments.slice(1);
511
- return {
512
- locale,
513
- pathname: remaining.length > 0 ? `/${remaining.join("/")}` : "/",
514
- explicit: true
515
- };
516
- }
517
- __name(resolveFarmLocalePath, "resolveFarmLocalePath");
518
- function stripFarmLocaleFromPathname(pathname, config) {
519
- return resolveFarmLocalePath(pathname, config).pathname;
520
- }
521
- __name(stripFarmLocaleFromPathname, "stripFarmLocaleFromPathname");
522
- function normalizePathname2(pathname) {
523
- const withLeadingSlash = pathname.startsWith("/") ? pathname : `/${pathname}`;
524
- if (withLeadingSlash === "/") return "/";
525
- return withLeadingSlash.replace(/\/{2,}/g, "/").replace(/\/$/, "") || "/";
526
- }
527
- __name(normalizePathname2, "normalizePathname");
528
-
529
- // src/i18n/client-runtime.ts
530
- var listeners = /* @__PURE__ */ new Set();
531
- var compiled = /* @__PURE__ */ new Map();
532
- var currentSnapshot;
533
- function getFarmI18nClientState() {
534
- return currentSnapshot || getActiveFarmI18nSnapshot();
535
- }
536
- __name(getFarmI18nClientState, "getFarmI18nClientState");
537
- function _hydrateFarmI18n(snapshot) {
538
- if (!snapshot) return;
539
- const changed = currentSnapshot?.locale !== snapshot.locale;
540
- currentSnapshot = snapshot;
541
- if (typeof window !== "undefined") window.__FARM_I18N__ = snapshot;
542
- if (typeof document !== "undefined") {
543
- document.documentElement.lang = snapshot.locale;
544
- document.documentElement.dir = snapshot.direction;
545
- }
546
- if (changed) compiled.clear();
547
- for (const listener of listeners) listener();
548
- }
549
- __name(_hydrateFarmI18n, "_hydrateFarmI18n");
550
- var translate = /* @__PURE__ */ __name((key, values, rich = false) => {
551
- const snapshot = requireSnapshot();
552
- const message = snapshot.messages[key];
553
- if (message === void 0) return key;
554
- const cacheKey = `${snapshot.locale}\0${key}\0${message}`;
555
- let formatter = compiled.get(cacheKey);
556
- if (!formatter) {
557
- formatter = new import_intl_messageformat.default(message, snapshot.locale);
558
- compiled.set(cacheKey, formatter);
559
- }
560
- const result = formatter.format(values);
561
- if (rich) return Array.isArray(result) && result.length === 1 ? result[0] : result;
562
- if (Array.isArray(result) && result.some((part) => typeof part !== "string")) {
563
- throw new Error(`Farm i18n message "${key}" contains rich content. Render it with t.rich().`);
564
- }
565
- return Array.isArray(result) ? result.join("") : String(result);
566
- }, "translate");
567
- var t = /* @__PURE__ */ __name(((key, values) => translate(key, values)), "t");
568
- t.rich = (key, values) => translate(key, values, true);
569
- t.raw = (key) => requireSnapshot().messages[key] ?? key;
570
- t.has = (key) => key in requireSnapshot().messages;
571
- function isFarmLocaleChangeHref(href) {
572
- const snapshot = getFarmI18nClientState();
573
- if (!snapshot || typeof window === "undefined") return false;
574
- if (snapshot.routing === "none") return false;
575
- const target = new URL(href, window.location.origin);
576
- const match = resolveFarmLocalePath(target.pathname, snapshot);
577
- const targetLocale = match.locale || snapshot.defaultLocale;
578
- return targetLocale !== snapshot.locale;
579
- }
580
- __name(isFarmLocaleChangeHref, "isFarmLocaleChangeHref");
581
- function requireSnapshot() {
582
- const snapshot = getFarmI18nClientState();
583
- if (!snapshot) {
584
- throw new Error("Farm i18n is not configured or has not been hydrated.");
585
- }
586
- return snapshot;
587
- }
588
- __name(requireSnapshot, "requireSnapshot");
589
-
590
- // src/client/spa-router.ts
591
- var FARM_PAGE_STATE_KEY = "__farmPageState";
592
- var FARM_INTERCEPT_FROM_KEY = "__farmInterceptFrom";
593
- var IDLE_NAVIGATION_STATE = {
594
- state: "idle",
595
- pending: false,
596
- from: null,
597
- to: null,
598
- action: null,
599
- startedAt: null
600
- };
601
- var routerInstance = null;
602
- var _SPARouter = class _SPARouter {
603
- constructor(options = {}) {
604
- this.cache = /* @__PURE__ */ new Map();
605
- this.prefetchingUrls = /* @__PURE__ */ new Set();
606
- this.observers = /* @__PURE__ */ new Map();
607
- this.blockers = /* @__PURE__ */ new Set();
608
- this.navigationListeners = /* @__PURE__ */ new Set();
609
- this.navigationState = IDLE_NAVIGATION_STATE;
610
- this.scrollElements = /* @__PURE__ */ new Map();
611
- this.options = {
612
- prefetchTimeout: options.prefetchTimeout ?? 100,
613
- cacheMaxAge: options.cacheMaxAge ?? 3e4,
614
- // 30 seconds
615
- scrollRestoration: options.scrollRestoration ?? true,
616
- shouldUseDocumentNavigation: options.shouldUseDocumentNavigation ?? (() => false),
617
- deploymentId: options.deploymentId ?? readBrowserDeploymentId()
618
- };
619
- if (typeof window !== "undefined") {
620
- window.addEventListener("popstate", this.handlePopState.bind(this));
621
- window.addEventListener("beforeunload", (event) => {
622
- if (this.blockers.size > 0) {
623
- event.preventDefault();
624
- event.returnValue = "";
625
- }
626
- this.saveScrollPosition(window.location.pathname);
627
- });
628
- }
629
- }
630
- /**
631
- * Set the navigation handler that updates React
632
- */
633
- setNavigationHandler(handler) {
634
- this.onNavigate = handler;
635
- }
636
- /**
637
- * Connect Farm's browser plugin lifecycle to SPA navigation.
638
- */
639
- setClientPluginManager(manager) {
640
- this.clientPlugins = manager;
641
- }
642
- /**
643
- * Navigate to a new URL
644
- */
645
- async navigate(href, options = {}) {
646
- const { replace = false, scroll = true, state, viewTransition = false } = options;
647
- const url = new URL(href, window.location.origin);
648
- const pathname = url.pathname;
649
- const search = url.search;
650
- const fullPath = pathname + search;
651
- if (isFarmLocaleChangeHref(url.toString()) || this.options.shouldUseDocumentNavigation(pathname)) {
652
- if (replace) window.location.replace(url.toString());
653
- else window.location.assign(url.toString());
654
- return;
655
- }
656
- if (pathname === window.location.pathname && search === window.location.search) {
657
- if (url.hash) {
658
- window.location.hash = url.hash;
659
- }
660
- return;
661
- }
662
- const from = window.location.pathname + window.location.search;
663
- if (await this.shouldBlockNavigation({
664
- from,
665
- to: fullPath,
666
- action: replace ? "replace" : "push"
667
- })) {
668
- return;
669
- }
670
- if (this.options.scrollRestoration) {
671
- this.saveScrollPosition(window.location.pathname);
672
- }
673
- this.startNavigation({
674
- from,
675
- to: createNavigationLocation(url),
676
- action: replace ? "replace" : "push"
677
- });
678
- let clientNavigation;
679
- try {
680
- clientNavigation = await this.clientPlugins?.beginNavigation({
681
- from,
682
- to: url,
683
- action: replace ? "replace" : "push"
684
- });
685
- const pageData = await this.fetchPageData(fullPath, true, from);
686
- if (clientNavigation) {
687
- await this.clientPlugins?.markNavigationLoaded(clientNavigation, pageData);
688
- }
689
- if (pageData.isClientComponent === false && !pageData.interception) {
690
- this.finishNavigation();
691
- window.location.assign(pageData.canonicalPath || fullPath);
692
- return;
693
- }
694
- await this.runViewTransition(
695
- viewTransition,
696
- () => this.commitNavigation({
697
- fullPath,
698
- pageData,
699
- pathname,
700
- replace,
701
- scroll,
702
- state,
703
- url
704
- })
705
- );
706
- if (clientNavigation) {
707
- await this.clientPlugins?.resolveNavigation(clientNavigation);
708
- void this.clientPlugins?.scheduleNavigationRendered(clientNavigation);
709
- }
710
- this.finishNavigation();
711
- } catch (error) {
712
- if (clientNavigation) {
713
- await this.clientPlugins?.failNavigation(clientNavigation, error);
714
- }
715
- this.finishNavigation();
716
- console.error("[Farm.js] Navigation error:", error);
717
- window.location.href = href;
718
- }
719
- }
720
- /**
721
- * Prefetch a URL
722
- */
723
- async prefetch(href) {
724
- if (isFarmLocaleChangeHref(href)) return;
725
- const url = new URL(href, window.location.origin);
726
- const fullPath = url.pathname + url.search;
727
- const interceptFrom = window.location.pathname + window.location.search;
728
- if (this.prefetchingUrls.has(fullPath)) return;
729
- if (this.isCached(fullPath, interceptFrom)) return;
730
- this.prefetchingUrls.add(fullPath);
731
- try {
732
- await this.fetchPageData(fullPath, false, interceptFrom);
733
- } catch (error) {
734
- console.warn("[Farm.js] Prefetch failed:", href, error);
735
- } finally {
736
- this.prefetchingUrls.delete(fullPath);
737
- }
738
- }
739
- /**
740
- * Observe an element for viewport intersection (prefetch when visible)
741
- */
742
- observeForPrefetch(element) {
743
- if (typeof IntersectionObserver === "undefined") return;
744
- const href = element.getAttribute("href");
745
- if (!href || this.isExternalUrl(href)) return;
746
- const observer = new IntersectionObserver(
747
- (entries) => {
748
- for (const entry of entries) {
749
- if (entry.isIntersecting) {
750
- setTimeout(() => {
751
- this.prefetch(href);
752
- }, this.options.prefetchTimeout);
753
- observer.unobserve(element);
754
- this.observers.delete(element);
755
- }
756
- }
757
- },
758
- { rootMargin: "200px" }
759
- // Start prefetching when 200px from viewport
760
- );
761
- observer.observe(element);
762
- this.observers.set(element, observer);
763
- }
764
- /**
765
- * Stop observing an element
766
- */
767
- unobserveForPrefetch(element) {
768
- const observer = this.observers.get(element);
769
- if (observer) {
770
- observer.unobserve(element);
771
- this.observers.delete(element);
772
- }
773
- }
774
- addBlocker(blocker) {
775
- this.blockers.add(blocker);
776
- return () => {
777
- this.blockers.delete(blocker);
778
- };
779
- }
780
- getNavigationState() {
781
- return this.navigationState;
782
- }
783
- subscribeNavigation(listener) {
784
- this.navigationListeners.add(listener);
785
- listener(this.navigationState);
786
- return () => {
787
- this.navigationListeners.delete(listener);
788
- };
789
- }
790
- registerScrollElement(key, element) {
791
- this.scrollElements.set(key, element);
792
- this.restoreScrollElement(window.location.pathname, key, element);
793
- return () => {
794
- if (this.scrollElements.get(key) === element) {
795
- this.scrollElements.delete(key);
796
- }
797
- };
798
- }
799
- pushState(state, href) {
800
- this.writePageState("push", state, href);
801
- }
802
- replaceState(state, href) {
803
- this.writePageState("replace", state, href);
804
- }
805
- async commitNavigation(options) {
806
- const historyPath = options.pageData.canonicalPath || options.fullPath;
807
- const historyState = createHistoryState(
808
- historyPath,
809
- options.state,
810
- void 0,
811
- options.pageData.interception?.from ?? null
812
- );
813
- if (options.replace) {
814
- window.history.replaceState(historyState, "", historyPath);
815
- } else {
816
- window.history.pushState(historyState, "", historyPath);
817
- }
818
- if (options.pageData.metadata?.title) {
819
- document.title = options.pageData.metadata.title;
820
- }
821
- if (options.pageData.metadata?.description) {
822
- let metaDesc = document.querySelector('meta[name="description"]');
823
- if (!metaDesc) {
824
- metaDesc = document.createElement("meta");
825
- metaDesc.setAttribute("name", "description");
826
- document.head.appendChild(metaDesc);
827
- }
828
- metaDesc.setAttribute("content", options.pageData.metadata.description);
829
- }
830
- _hydrateFarmI18n(options.pageData.i18n);
831
- if (this.onNavigate) {
832
- await this.onNavigate(options.pageData);
833
- }
834
- if (options.scroll) {
835
- if (options.url.hash) {
836
- const element = document.querySelector(options.url.hash);
837
- if (element) {
838
- element.scrollIntoView();
839
- }
840
- } else {
841
- window.scrollTo(0, 0);
842
- }
843
- } else if (this.options.scrollRestoration) {
844
- this.restoreScrollPosition(options.pathname);
845
- }
846
- }
847
- async runViewTransition(mode, callback) {
848
- if (!mode || typeof document === "undefined") {
849
- await callback();
850
- return;
851
- }
852
- const startViewTransition = document.startViewTransition;
853
- if (typeof startViewTransition !== "function") {
854
- await callback();
855
- return;
856
- }
857
- const transition = startViewTransition.call(document, () => callback());
858
- const updateDone = transition?.updateCallbackDone || transition?.ready;
859
- if (updateDone && typeof updateDone.then === "function") {
860
- await updateDone;
861
- }
862
- transition?.finished?.catch?.(() => void 0);
863
- }
864
- /**
865
- * Fetch page data from cache or server
866
- */
867
- async fetchPageData(path, recover = true, interceptFrom) {
868
- const cacheKey = getPageDataCacheKey(path, interceptFrom);
869
- const cached = this.cache.get(cacheKey);
870
- if (cached && Date.now() - cached.timestamp < this.options.cacheMaxAge) {
871
- return cached.data;
872
- }
873
- const response = await fetch(`/__farm/page-data?path=${encodeURIComponent(path)}`, {
874
- headers: createFarmDeploymentRequestHeaders(this.options.deploymentId, {
875
- Accept: "application/x-farm-deferred+json, application/json",
876
- "X-Farm-SPA": "1",
877
- ...interceptFrom ? { "X-Farm-Intercept-From": interceptFrom } : {}
878
- })
879
- });
880
- if (isFarmDeploymentMismatchResponse(response, this.options.deploymentId)) {
881
- const error = createFarmDeploymentMismatchError(
882
- response,
883
- this.options.deploymentId || "unknown"
884
- );
885
- dispatchDeploymentMismatch(error);
886
- if (recover) {
887
- window.location.assign(path);
888
- }
889
- throw error;
890
- }
891
- if (!response.ok) {
892
- throw new Error(`Failed to fetch page data: ${response.status}`);
893
- }
894
- const data = await readDeferredDataResponse(response);
895
- this.cache.set(cacheKey, {
896
- data,
897
- timestamp: Date.now()
898
- });
899
- return data;
900
- }
901
- /**
902
- * Handle browser back/forward navigation
903
- */
904
- async handlePopState(event) {
905
- if (document.documentElement.dataset.farmDocsRuntime === "true") return;
906
- const path = window.location.pathname + window.location.search;
907
- if (await this.shouldBlockNavigation({
908
- from: event.state?.path || path,
909
- to: path,
910
- action: "pop"
911
- })) {
912
- return;
913
- }
914
- this.startNavigation({
915
- from: event.state?.path || path,
916
- to: createNavigationLocation(new URL(window.location.href)),
917
- action: "pop"
918
- });
919
- let clientNavigation;
920
- try {
921
- clientNavigation = await this.clientPlugins?.beginNavigation({
922
- from: null,
923
- to: window.location.href,
924
- action: "pop"
925
- });
926
- const interceptFrom = typeof event.state?.[FARM_INTERCEPT_FROM_KEY] === "string" ? event.state[FARM_INTERCEPT_FROM_KEY] : void 0;
927
- const pageData = await this.fetchPageData(path, true, interceptFrom);
928
- if (clientNavigation) {
929
- await this.clientPlugins?.markNavigationLoaded(clientNavigation, pageData);
930
- }
931
- if (pageData.metadata?.title) {
932
- document.title = pageData.metadata.title;
933
- }
934
- _hydrateFarmI18n(pageData.i18n);
935
- if (this.onNavigate) {
936
- await this.onNavigate(pageData);
937
- }
938
- if (this.options.scrollRestoration) {
939
- this.restoreScrollPosition(window.location.pathname);
940
- }
941
- if (clientNavigation) {
942
- await this.clientPlugins?.resolveNavigation(clientNavigation);
943
- void this.clientPlugins?.scheduleNavigationRendered(clientNavigation);
944
- }
945
- this.finishNavigation();
946
- } catch (error) {
947
- if (clientNavigation) {
948
- await this.clientPlugins?.failNavigation(clientNavigation, error);
949
- }
950
- this.finishNavigation();
951
- console.error("[Farm.js] Popstate navigation error:", error);
952
- window.location.reload();
953
- }
954
- }
955
- /**
956
- * Check if URL is cached
957
- */
958
- isCached(path, interceptFrom) {
959
- const cached = this.cache.get(getPageDataCacheKey(path, interceptFrom));
960
- return cached !== void 0 && Date.now() - cached.timestamp < this.options.cacheMaxAge;
961
- }
962
- /**
963
- * Check if URL is external
964
- */
965
- isExternalUrl(href) {
966
- return href.startsWith("http://") || href.startsWith("https://") || href.startsWith("//");
967
- }
968
- async shouldBlockNavigation(context) {
969
- for (const blocker of this.blockers) {
970
- if (await blocker(context)) {
971
- return true;
972
- }
973
- }
974
- return false;
975
- }
976
- startNavigation(options) {
977
- this.setNavigationState({
978
- state: "loading",
979
- pending: true,
980
- from: options.from,
981
- to: options.to,
982
- action: options.action,
983
- startedAt: Date.now()
984
- });
985
- }
986
- finishNavigation() {
987
- this.setNavigationState(IDLE_NAVIGATION_STATE);
988
- }
989
- setNavigationState(state) {
990
- this.navigationState = state;
991
- for (const listener of this.navigationListeners) {
992
- listener(state);
993
- }
994
- }
995
- writePageState(action, state, href) {
996
- if (typeof window === "undefined") return;
997
- const url = href ? new URL(href, window.location.origin).toString() : window.location.href;
998
- const nextState = createHistoryState(
999
- new URL(url).pathname + new URL(url).search,
1000
- state,
1001
- window.history.state
1002
- );
1003
- if (action === "replace") {
1004
- window.history.replaceState(nextState, "", url);
1005
- } else {
1006
- window.history.pushState(nextState, "", url);
1007
- }
1008
- window.dispatchEvent(new PopStateEvent("popstate", { state: nextState }));
1009
- }
1010
- /**
1011
- * Save scroll position for a path
1012
- */
1013
- saveScrollPosition(path) {
1014
- try {
1015
- sessionStorage.setItem(
1016
- `farm-scroll-${path}`,
1017
- JSON.stringify({ x: window.scrollX, y: window.scrollY })
1018
- );
1019
- for (const [key, element] of this.scrollElements) {
1020
- sessionStorage.setItem(
1021
- getScrollElementStorageKey(path, key),
1022
- JSON.stringify({ x: element.scrollLeft, y: element.scrollTop })
1023
- );
1024
- }
1025
- } catch {
1026
- }
1027
- }
1028
- /**
1029
- * Restore scroll position for a path
1030
- */
1031
- restoreScrollPosition(path) {
1032
- try {
1033
- const saved = sessionStorage.getItem(`farm-scroll-${path}`);
1034
- if (saved) {
1035
- const { x, y } = JSON.parse(saved);
1036
- setTimeout(() => window.scrollTo(x, y), 0);
1037
- }
1038
- for (const [key, element] of this.scrollElements) {
1039
- this.restoreScrollElement(path, key, element);
1040
- }
1041
- } catch {
1042
- }
1043
- }
1044
- restoreScrollElement(path, key, element) {
1045
- try {
1046
- const saved = sessionStorage.getItem(getScrollElementStorageKey(path, key));
1047
- if (!saved) return;
1048
- const { x, y } = JSON.parse(saved);
1049
- setTimeout(() => {
1050
- element.scrollLeft = x;
1051
- element.scrollTop = y;
1052
- }, 0);
1053
- } catch {
1054
- }
1055
- }
1056
- /**
1057
- * Clear the page cache
1058
- */
1059
- clearCache() {
1060
- this.cache.clear();
1061
- }
1062
- };
1063
- __name(_SPARouter, "SPARouter");
1064
- var SPARouter = _SPARouter;
1065
- function readBrowserDeploymentId() {
1066
- if (typeof window === "undefined") return void 0;
1067
- const runtimeId = window.__FARM_DEPLOYMENT_ID__;
1068
- if (typeof runtimeId === "string" && runtimeId) return runtimeId;
1069
- return document.querySelector('meta[name="farm-deployment-id"]')?.content;
1070
- }
1071
- __name(readBrowserDeploymentId, "readBrowserDeploymentId");
1072
- function dispatchDeploymentMismatch(error) {
1073
- if (typeof window === "undefined" || typeof CustomEvent === "undefined") return;
1074
- window.dispatchEvent(new CustomEvent("farm:deployment-mismatch", { detail: error }));
1075
- }
1076
- __name(dispatchDeploymentMismatch, "dispatchDeploymentMismatch");
1077
- function getRouter() {
1078
- if (typeof window === "undefined") {
1079
- return new SPARouter();
1080
- }
1081
- const installedRouter = window.__FARM_SPA_ROUTER__;
1082
- if (installedRouter) {
1083
- routerInstance = installedRouter;
1084
- return installedRouter;
1085
- }
1086
- if (!routerInstance) {
1087
- routerInstance = new SPARouter();
1088
- }
1089
- return routerInstance;
1090
- }
1091
- __name(getRouter, "getRouter");
1092
- function readPageState() {
1093
- if (typeof window === "undefined") return null;
1094
- const state = window.history.state;
1095
- if (!state || typeof state !== "object") return null;
1096
- return state[FARM_PAGE_STATE_KEY] ?? null;
1097
- }
1098
- __name(readPageState, "readPageState");
1099
- function createHistoryState(path, pageState, currentState, interceptFrom) {
1100
- const base = currentState && typeof currentState === "object" ? { ...currentState } : {};
1101
- const nextState = {
1102
- ...base,
1103
- path,
1104
- [FARM_PAGE_STATE_KEY]: pageState
1105
- };
1106
- if (interceptFrom === null) {
1107
- delete nextState[FARM_INTERCEPT_FROM_KEY];
1108
- } else if (interceptFrom) {
1109
- nextState[FARM_INTERCEPT_FROM_KEY] = interceptFrom;
1110
- }
1111
- return nextState;
1112
- }
1113
- __name(createHistoryState, "createHistoryState");
1114
- function getPageDataCacheKey(path, interceptFrom) {
1115
- return interceptFrom ? `${path}
1116
- intercept:${interceptFrom}` : path;
1117
- }
1118
- __name(getPageDataCacheKey, "getPageDataCacheKey");
1119
- function createNavigationLocation(url) {
1120
- return {
1121
- href: url.href,
1122
- pathname: url.pathname,
1123
- search: url.search,
1124
- hash: url.hash
1125
- };
1126
- }
1127
- __name(createNavigationLocation, "createNavigationLocation");
1128
- function getScrollElementStorageKey(path, key) {
1129
- return `farm-scroll-${path}:${key}`;
1130
- }
1131
- __name(getScrollElementStorageKey, "getScrollElementStorageKey");
1132
-
1133
- // src/client/router.ts
1134
- function useRouter(options = {}) {
1135
- const basePath = options.basePath || "";
1136
- const routes = options.routes;
1137
- const routeKey = routes?.map((route) => typeof route === "string" ? route : route.path).join("\n") || "";
1138
- const routeMatcher = (0, import_react.useMemo)(
1139
- () => routeKey ? createFarmRouter(routeKey.split("\n")) : null,
1140
- [routeKey]
1141
- );
1142
- const [state, setState] = (0, import_react.useState)(() => {
1143
- return readRouterState(basePath, routeMatcher);
1144
- });
1145
- (0, import_react.useEffect)(() => {
1146
- if (typeof window === "undefined") return;
1147
- const handlePopState = /* @__PURE__ */ __name(() => {
1148
- setState(readRouterState(basePath, routeMatcher));
1149
- }, "handlePopState");
1150
- handlePopState();
1151
- window.addEventListener("popstate", handlePopState);
1152
- return () => window.removeEventListener("popstate", handlePopState);
1153
- }, [basePath, routeMatcher]);
1154
- const push = /* @__PURE__ */ __name((href) => {
1155
- if (typeof window === "undefined") return;
1156
- const url = href.startsWith("/") ? basePath + href : href;
1157
- window.history.pushState(null, "", url);
1158
- window.dispatchEvent(new PopStateEvent("popstate"));
1159
- }, "push");
1160
- const replace = /* @__PURE__ */ __name((href) => {
1161
- if (typeof window === "undefined") return;
1162
- const url = href.startsWith("/") ? basePath + href : href;
1163
- window.history.replaceState(null, "", url);
1164
- window.dispatchEvent(new PopStateEvent("popstate"));
1165
- }, "replace");
1166
- const pushState = /* @__PURE__ */ __name((pageState, href) => {
1167
- if (typeof window === "undefined") return;
1168
- getRouter().pushState(pageState, resolveClientHref(href, basePath));
1169
- }, "pushState");
1170
- const replaceState = /* @__PURE__ */ __name((pageState, href) => {
1171
- if (typeof window === "undefined") return;
1172
- getRouter().replaceState(pageState, resolveClientHref(href, basePath));
1173
- }, "replaceState");
1174
- const back = /* @__PURE__ */ __name(() => {
1175
- if (typeof window !== "undefined") {
1176
- window.history.back();
1177
- }
1178
- }, "back");
1179
- const forward = /* @__PURE__ */ __name(() => {
1180
- if (typeof window !== "undefined") {
1181
- window.history.forward();
1182
- }
1183
- }, "forward");
1184
- return {
1185
- ...state,
1186
- push,
1187
- replace,
1188
- pushState,
1189
- replaceState,
1190
- back,
1191
- forward
1192
- };
1193
- }
1194
- __name(useRouter, "useRouter");
1195
- function readRouterState(basePath, routeMatcher) {
1196
- if (typeof window === "undefined") {
1197
- return {
1198
- pathname: "/",
1199
- searchParams: new URLSearchParams(),
1200
- params: {},
1201
- pageState: null
1202
- };
1203
- }
1204
- const url = new URL(window.location.href);
1205
- const pathname = normalizeClientPathname(url.pathname, basePath);
1206
- const i18n = getFarmI18nClientState();
1207
- const routePathname = i18n ? stripFarmLocaleFromPathname(pathname, i18n) : pathname;
1208
- return {
1209
- pathname,
1210
- searchParams: url.searchParams,
1211
- params: routeMatcher?.match(routePathname)?.params || {},
1212
- pageState: readPageState()
1213
- };
1214
- }
1215
- __name(readRouterState, "readRouterState");
1216
- function normalizeClientPathname(pathname, basePath) {
1217
- const normalizedBase = basePath.replace(/\/+$/, "");
1218
- const isUnderBase = normalizedBase && (pathname === normalizedBase || pathname.startsWith(`${normalizedBase}/`));
1219
- const withoutBase = isUnderBase ? pathname.slice(normalizedBase.length) || "/" : pathname;
1220
- return withoutBase || "/";
1221
- }
1222
- __name(normalizeClientPathname, "normalizeClientPathname");
1223
- function resolveClientHref(href, basePath) {
1224
- if (!href) return void 0;
1225
- return href.startsWith("/") ? basePath + href : href;
1226
- }
1227
- __name(resolveClientHref, "resolveClientHref");
1228
-
1229
- // src/navigation-errors.ts
1230
- var REDIRECT_ERROR_CODE = "FARM_REDIRECT";
1231
- var NOT_FOUND_ERROR_CODE = "FARM_NOT_FOUND";
1232
- var REDIRECT_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for("farm.navigation.redirect");
1233
- var NOT_FOUND_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for("farm.navigation.notFound");
1234
- function redirect(url, status = 307) {
1235
- throw createRedirectError(url, status);
1236
- }
1237
- __name(redirect, "redirect");
1238
- function permanentRedirect(url) {
1239
- redirect(url, 308);
1240
- }
1241
- __name(permanentRedirect, "permanentRedirect");
1242
- function notFound() {
1243
- const error = new Error(NOT_FOUND_ERROR_CODE);
1244
- error.digest = NOT_FOUND_ERROR_CODE;
1245
- error[NOT_FOUND_ERROR_SYMBOL] = true;
1246
- throw error;
1247
- }
1248
- __name(notFound, "notFound");
1249
- function isFarmRedirectError(error) {
1250
- return Boolean(getFarmRedirectError(error));
1251
- }
1252
- __name(isFarmRedirectError, "isFarmRedirectError");
1253
- function getFarmRedirectError(error) {
1254
- if (!error || typeof error !== "object") return null;
1255
- const candidate = error;
1256
- if (candidate[REDIRECT_ERROR_SYMBOL]) {
1257
- return candidate[REDIRECT_ERROR_SYMBOL];
1258
- }
1259
- if (typeof candidate.digest === "string" && candidate.digest.startsWith(`${REDIRECT_ERROR_CODE};`)) {
1260
- const [, status, ...urlParts] = candidate.digest.split(";");
1261
- const parsedStatus = Number(status);
1262
- if (isRedirectStatus(parsedStatus)) {
1263
- return {
1264
- status: parsedStatus,
1265
- url: urlParts.join(";")
1266
- };
1267
- }
1268
- }
1269
- return null;
1270
- }
1271
- __name(getFarmRedirectError, "getFarmRedirectError");
1272
- function isFarmNotFoundError(error) {
1273
- if (!error || typeof error !== "object") return false;
1274
- const candidate = error;
1275
- return Boolean(candidate[NOT_FOUND_ERROR_SYMBOL] || candidate.digest === NOT_FOUND_ERROR_CODE);
1276
- }
1277
- __name(isFarmNotFoundError, "isFarmNotFoundError");
1278
- function createRedirectError(url, status) {
1279
- const error = new Error(`${REDIRECT_ERROR_CODE};${status};${url}`);
1280
- error.digest = `${REDIRECT_ERROR_CODE};${status};${url}`;
1281
- error[REDIRECT_ERROR_SYMBOL] = { url, status };
1282
- return error;
1283
- }
1284
- __name(createRedirectError, "createRedirectError");
1285
- function isRedirectStatus(status) {
1286
- return status === 301 || status === 302 || status === 303 || status === 307 || status === 308;
1287
- }
1288
- __name(isRedirectStatus, "isRedirectStatus");
1289
-
1290
- // src/navigation.ts
1291
- function useRouter2() {
1292
- const router = useRouter();
1293
- return {
1294
- push: router.push,
1295
- replace: router.replace,
1296
- back: router.back,
1297
- forward: router.forward,
1298
- refresh() {
1299
- if (typeof window !== "undefined") {
1300
- window.location.reload();
1301
- }
1302
- },
1303
- prefetch(_href) {
1304
- return Promise.resolve();
1305
- }
1306
- };
1307
- }
1308
- __name(useRouter2, "useRouter");
1309
- function usePathname() {
1310
- return useRouter().pathname;
1311
- }
1312
- __name(usePathname, "usePathname");
1313
- function useSearchParams() {
1314
- return useRouter().searchParams;
1315
- }
1316
- __name(useSearchParams, "useSearchParams");
1317
- // Annotate the CommonJS export names for ESM import in node:
1318
- 0 && (module.exports = {
1319
- getFarmRedirectError,
1320
- isFarmNotFoundError,
1321
- isFarmRedirectError,
1322
- notFound,
1323
- permanentRedirect,
1324
- redirect,
1325
- usePathname,
1326
- useRouter,
1327
- useSearchParams
1328
- });
1329
- //# sourceMappingURL=navigation.cjs.map