@farm.js/core 0.1.0-beta.0

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 (549) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +11 -0
  3. package/dist/after.cjs +227 -0
  4. package/dist/after.cjs.map +1 -0
  5. package/dist/after.d.mts +25 -0
  6. package/dist/after.d.ts +25 -0
  7. package/dist/after.mjs +14 -0
  8. package/dist/after.mjs.map +1 -0
  9. package/dist/agent-runtime.cjs +2379 -0
  10. package/dist/agent-runtime.cjs.map +1 -0
  11. package/dist/agent-runtime.d.mts +93 -0
  12. package/dist/agent-runtime.d.ts +93 -0
  13. package/dist/agent-runtime.mjs +479 -0
  14. package/dist/agent-runtime.mjs.map +1 -0
  15. package/dist/api/route-manager.cjs +1196 -0
  16. package/dist/api/route-manager.cjs.map +1 -0
  17. package/dist/api/route-manager.d.mts +64 -0
  18. package/dist/api/route-manager.d.ts +64 -0
  19. package/dist/api/route-manager.mjs +34 -0
  20. package/dist/api/route-manager.mjs.map +1 -0
  21. package/dist/api/runtime.cjs +272 -0
  22. package/dist/api/runtime.cjs.map +1 -0
  23. package/dist/api/runtime.d.mts +16 -0
  24. package/dist/api/runtime.d.ts +16 -0
  25. package/dist/api/runtime.mjs +16 -0
  26. package/dist/api/runtime.mjs.map +1 -0
  27. package/dist/api.cjs +3199 -0
  28. package/dist/api.cjs.map +1 -0
  29. package/dist/api.d.mts +190 -0
  30. package/dist/api.d.ts +190 -0
  31. package/dist/api.mjs +63 -0
  32. package/dist/api.mjs.map +1 -0
  33. package/dist/app-BiX4qb-d.d.mts +265 -0
  34. package/dist/app-CFRNJXP1.d.ts +265 -0
  35. package/dist/app-markdown.cjs +220 -0
  36. package/dist/app-markdown.cjs.map +1 -0
  37. package/dist/app-markdown.d.mts +21 -0
  38. package/dist/app-markdown.d.ts +21 -0
  39. package/dist/app-markdown.mjs +26 -0
  40. package/dist/app-markdown.mjs.map +1 -0
  41. package/dist/cache.cjs +543 -0
  42. package/dist/cache.cjs.map +1 -0
  43. package/dist/cache.d.mts +78 -0
  44. package/dist/cache.d.ts +78 -0
  45. package/dist/cache.mjs +38 -0
  46. package/dist/cache.mjs.map +1 -0
  47. package/dist/chunk-25D7G34K.mjs +142 -0
  48. package/dist/chunk-25D7G34K.mjs.map +1 -0
  49. package/dist/chunk-3QJO55ZF.mjs +3548 -0
  50. package/dist/chunk-3QJO55ZF.mjs.map +1 -0
  51. package/dist/chunk-3XNTL3FQ.mjs +452 -0
  52. package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
  53. package/dist/chunk-44ZCFSKE.mjs +84 -0
  54. package/dist/chunk-44ZCFSKE.mjs.map +1 -0
  55. package/dist/chunk-4PTK6KT4.mjs +364 -0
  56. package/dist/chunk-4PTK6KT4.mjs.map +1 -0
  57. package/dist/chunk-4S3ORGFA.mjs +44 -0
  58. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  59. package/dist/chunk-5BY76U2M.mjs +1 -0
  60. package/dist/chunk-5BY76U2M.mjs.map +1 -0
  61. package/dist/chunk-5ZGPRGWV.mjs +136 -0
  62. package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
  63. package/dist/chunk-6XDUHOEM.mjs +157 -0
  64. package/dist/chunk-6XDUHOEM.mjs.map +1 -0
  65. package/dist/chunk-74YTBPTY.mjs +450 -0
  66. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  67. package/dist/chunk-7HO6AEOP.mjs +74 -0
  68. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  69. package/dist/chunk-7MABZJIM.mjs +29 -0
  70. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  71. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  72. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  73. package/dist/chunk-AGS7UJ52.mjs +446 -0
  74. package/dist/chunk-AGS7UJ52.mjs.map +1 -0
  75. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  76. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  77. package/dist/chunk-B232I2GP.mjs +163 -0
  78. package/dist/chunk-B232I2GP.mjs.map +1 -0
  79. package/dist/chunk-B6N4ZB2H.mjs +718 -0
  80. package/dist/chunk-B6N4ZB2H.mjs.map +1 -0
  81. package/dist/chunk-BHG3LVHH.mjs +176 -0
  82. package/dist/chunk-BHG3LVHH.mjs.map +1 -0
  83. package/dist/chunk-C3DLZMBU.mjs +597 -0
  84. package/dist/chunk-C3DLZMBU.mjs.map +1 -0
  85. package/dist/chunk-CGILA3WO.mjs +14 -0
  86. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  87. package/dist/chunk-CHFHNEMO.mjs +7088 -0
  88. package/dist/chunk-CHFHNEMO.mjs.map +1 -0
  89. package/dist/chunk-E2MPIBRE.mjs +149 -0
  90. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  91. package/dist/chunk-E6EPN5BT.mjs +203 -0
  92. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  93. package/dist/chunk-EVGBEZDF.mjs +215 -0
  94. package/dist/chunk-EVGBEZDF.mjs.map +1 -0
  95. package/dist/chunk-FQYDHKKU.mjs +128 -0
  96. package/dist/chunk-FQYDHKKU.mjs.map +1 -0
  97. package/dist/chunk-G3B5BRDY.mjs +5763 -0
  98. package/dist/chunk-G3B5BRDY.mjs.map +1 -0
  99. package/dist/chunk-GN72QAIH.mjs +146 -0
  100. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  101. package/dist/chunk-GS6K5OCM.mjs +407 -0
  102. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  103. package/dist/chunk-GY2STC2S.mjs +180 -0
  104. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  105. package/dist/chunk-GZP5W4K3.mjs +158 -0
  106. package/dist/chunk-GZP5W4K3.mjs.map +1 -0
  107. package/dist/chunk-H2FA2SBS.mjs +51 -0
  108. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  109. package/dist/chunk-HXP3ZSPC.mjs +211 -0
  110. package/dist/chunk-HXP3ZSPC.mjs.map +1 -0
  111. package/dist/chunk-ITN462YM.mjs +98 -0
  112. package/dist/chunk-ITN462YM.mjs.map +1 -0
  113. package/dist/chunk-J23HNLFY.mjs +72 -0
  114. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  115. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  116. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  117. package/dist/chunk-JK25YEN6.mjs +219 -0
  118. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  119. package/dist/chunk-JLWMCADZ.mjs +204 -0
  120. package/dist/chunk-JLWMCADZ.mjs.map +1 -0
  121. package/dist/chunk-JN3UU635.mjs +622 -0
  122. package/dist/chunk-JN3UU635.mjs.map +1 -0
  123. package/dist/chunk-K4667E2Q.mjs +1916 -0
  124. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  125. package/dist/chunk-LGHEOHBU.mjs +218 -0
  126. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  127. package/dist/chunk-LLC7BNXW.mjs +275 -0
  128. package/dist/chunk-LLC7BNXW.mjs.map +1 -0
  129. package/dist/chunk-LM2YNO4U.mjs +24 -0
  130. package/dist/chunk-LM2YNO4U.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-O3HADRW6.mjs +639 -0
  134. package/dist/chunk-O3HADRW6.mjs.map +1 -0
  135. package/dist/chunk-OYXO65LI.mjs +119 -0
  136. package/dist/chunk-OYXO65LI.mjs.map +1 -0
  137. package/dist/chunk-P7QDS5AT.mjs +191 -0
  138. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  139. package/dist/chunk-PRNYWD7K.mjs +599 -0
  140. package/dist/chunk-PRNYWD7K.mjs.map +1 -0
  141. package/dist/chunk-QF4PHCMA.mjs +422 -0
  142. package/dist/chunk-QF4PHCMA.mjs.map +1 -0
  143. package/dist/chunk-QFQRHRZS.mjs +1224 -0
  144. package/dist/chunk-QFQRHRZS.mjs.map +1 -0
  145. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  146. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  147. package/dist/chunk-QKVUNGAH.mjs +39 -0
  148. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  149. package/dist/chunk-QM6VV26B.mjs +149 -0
  150. package/dist/chunk-QM6VV26B.mjs.map +1 -0
  151. package/dist/chunk-RHIFZZUI.mjs +69 -0
  152. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  153. package/dist/chunk-RKI6TN3A.mjs +49 -0
  154. package/dist/chunk-RKI6TN3A.mjs.map +1 -0
  155. package/dist/chunk-RSKVYESE.mjs +187 -0
  156. package/dist/chunk-RSKVYESE.mjs.map +1 -0
  157. package/dist/chunk-S2XHZS7W.mjs +180 -0
  158. package/dist/chunk-S2XHZS7W.mjs.map +1 -0
  159. package/dist/chunk-SCFX4UTD.mjs +28 -0
  160. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  161. package/dist/chunk-SL6HTIOK.mjs +66 -0
  162. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  163. package/dist/chunk-SOU3Q3ZA.mjs +173 -0
  164. package/dist/chunk-SOU3Q3ZA.mjs.map +1 -0
  165. package/dist/chunk-SPBBQLXI.mjs +207 -0
  166. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  167. package/dist/chunk-SXZTEK3V.mjs +396 -0
  168. package/dist/chunk-SXZTEK3V.mjs.map +1 -0
  169. package/dist/chunk-T4QJQK76.mjs +459 -0
  170. package/dist/chunk-T4QJQK76.mjs.map +1 -0
  171. package/dist/chunk-TRORP7E4.mjs +41 -0
  172. package/dist/chunk-TRORP7E4.mjs.map +1 -0
  173. package/dist/chunk-TU4YJICB.mjs +728 -0
  174. package/dist/chunk-TU4YJICB.mjs.map +1 -0
  175. package/dist/chunk-TXCFGOHW.mjs +42 -0
  176. package/dist/chunk-TXCFGOHW.mjs.map +1 -0
  177. package/dist/chunk-UHE2TTLK.mjs +466 -0
  178. package/dist/chunk-UHE2TTLK.mjs.map +1 -0
  179. package/dist/chunk-UREJA4GZ.mjs +364 -0
  180. package/dist/chunk-UREJA4GZ.mjs.map +1 -0
  181. package/dist/chunk-USWZZUEH.mjs +25 -0
  182. package/dist/chunk-USWZZUEH.mjs.map +1 -0
  183. package/dist/chunk-UVCIEUJC.mjs +16 -0
  184. package/dist/chunk-UVCIEUJC.mjs.map +1 -0
  185. package/dist/chunk-V6WE6JSZ.mjs +352 -0
  186. package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
  187. package/dist/chunk-V7RBCSDJ.mjs +170 -0
  188. package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
  189. package/dist/chunk-VCANOYFI.mjs +588 -0
  190. package/dist/chunk-VCANOYFI.mjs.map +1 -0
  191. package/dist/chunk-WZ5QFROO.mjs +23 -0
  192. package/dist/chunk-WZ5QFROO.mjs.map +1 -0
  193. package/dist/chunk-Y2OJJD7R.mjs +543 -0
  194. package/dist/chunk-Y2OJJD7R.mjs.map +1 -0
  195. package/dist/chunk-Y7A27276.mjs +538 -0
  196. package/dist/chunk-Y7A27276.mjs.map +1 -0
  197. package/dist/chunk-YHU7SS6L.mjs +365 -0
  198. package/dist/chunk-YHU7SS6L.mjs.map +1 -0
  199. package/dist/chunk-ZBE6MLHL.mjs +230 -0
  200. package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
  201. package/dist/chunk-ZJQNATYV.mjs +299 -0
  202. package/dist/chunk-ZJQNATYV.mjs.map +1 -0
  203. package/dist/client-D_yUjVhe.d.mts +402 -0
  204. package/dist/client-Dkc03WP8.d.ts +402 -0
  205. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  206. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  207. package/dist/client-plugins-BZnpeTGA.d.ts +1848 -0
  208. package/dist/client-plugins-g4bzuCmo.d.mts +1848 -0
  209. package/dist/client-plugins.cjs +415 -0
  210. package/dist/client-plugins.cjs.map +1 -0
  211. package/dist/client-plugins.d.mts +21 -0
  212. package/dist/client-plugins.d.ts +21 -0
  213. package/dist/client-plugins.mjs +10 -0
  214. package/dist/client-plugins.mjs.map +1 -0
  215. package/dist/client.cjs +4571 -0
  216. package/dist/client.cjs.map +1 -0
  217. package/dist/client.d.mts +329 -0
  218. package/dist/client.d.ts +329 -0
  219. package/dist/client.mjs +103 -0
  220. package/dist/client.mjs.map +1 -0
  221. package/dist/config.cjs +38 -0
  222. package/dist/config.cjs.map +1 -0
  223. package/dist/config.d.mts +28 -0
  224. package/dist/config.d.ts +28 -0
  225. package/dist/config.mjs +10 -0
  226. package/dist/config.mjs.map +1 -0
  227. package/dist/cron.cjs +406 -0
  228. package/dist/cron.cjs.map +1 -0
  229. package/dist/cron.d.mts +78 -0
  230. package/dist/cron.d.ts +78 -0
  231. package/dist/cron.mjs +30 -0
  232. package/dist/cron.mjs.map +1 -0
  233. package/dist/deferred.cjs +438 -0
  234. package/dist/deferred.cjs.map +1 -0
  235. package/dist/deferred.d.mts +42 -0
  236. package/dist/deferred.d.ts +42 -0
  237. package/dist/deferred.mjs +28 -0
  238. package/dist/deferred.mjs.map +1 -0
  239. package/dist/deployment.cjs +199 -0
  240. package/dist/deployment.cjs.map +1 -0
  241. package/dist/deployment.d.mts +34 -0
  242. package/dist/deployment.d.ts +34 -0
  243. package/dist/deployment.mjs +38 -0
  244. package/dist/deployment.mjs.map +1 -0
  245. package/dist/devtools-AE4RVXCM.mjs +370 -0
  246. package/dist/devtools-AE4RVXCM.mjs.map +1 -0
  247. package/dist/devtools-client-6WPY2AQU.mjs +225 -0
  248. package/dist/devtools-client-6WPY2AQU.mjs.map +1 -0
  249. package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
  250. package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
  251. package/dist/docs.cjs +5541 -0
  252. package/dist/docs.cjs.map +1 -0
  253. package/dist/docs.d.mts +69 -0
  254. package/dist/docs.d.ts +69 -0
  255. package/dist/docs.mjs +46 -0
  256. package/dist/docs.mjs.map +1 -0
  257. package/dist/env-types.cjs +223 -0
  258. package/dist/env-types.cjs.map +1 -0
  259. package/dist/env-types.d.mts +11 -0
  260. package/dist/env-types.d.ts +11 -0
  261. package/dist/env-types.mjs +9 -0
  262. package/dist/env-types.mjs.map +1 -0
  263. package/dist/env.cjs +215 -0
  264. package/dist/env.cjs.map +1 -0
  265. package/dist/env.d.mts +45 -0
  266. package/dist/env.d.ts +45 -0
  267. package/dist/env.mjs +22 -0
  268. package/dist/env.mjs.map +1 -0
  269. package/dist/environment/vite.cjs +374 -0
  270. package/dist/environment/vite.cjs.map +1 -0
  271. package/dist/environment/vite.d.mts +22 -0
  272. package/dist/environment/vite.d.ts +22 -0
  273. package/dist/environment/vite.mjs +10 -0
  274. package/dist/environment/vite.mjs.map +1 -0
  275. package/dist/environment.cjs +96 -0
  276. package/dist/environment.cjs.map +1 -0
  277. package/dist/environment.d.mts +18 -0
  278. package/dist/environment.d.ts +18 -0
  279. package/dist/environment.mjs +14 -0
  280. package/dist/environment.mjs.map +1 -0
  281. package/dist/headers.cjs +126 -0
  282. package/dist/headers.cjs.map +1 -0
  283. package/dist/headers.d.mts +22 -0
  284. package/dist/headers.d.ts +22 -0
  285. package/dist/headers.mjs +12 -0
  286. package/dist/headers.mjs.map +1 -0
  287. package/dist/i18n/client.cjs +283 -0
  288. package/dist/i18n/client.cjs.map +1 -0
  289. package/dist/i18n/client.d.mts +32 -0
  290. package/dist/i18n/client.d.ts +32 -0
  291. package/dist/i18n/client.mjs +121 -0
  292. package/dist/i18n/client.mjs.map +1 -0
  293. package/dist/i18n/index.cjs +130 -0
  294. package/dist/i18n/index.cjs.map +1 -0
  295. package/dist/i18n/index.d.mts +20 -0
  296. package/dist/i18n/index.d.ts +20 -0
  297. package/dist/i18n/index.mjs +22 -0
  298. package/dist/i18n/index.mjs.map +1 -0
  299. package/dist/i18n/server.cjs +637 -0
  300. package/dist/i18n/server.cjs.map +1 -0
  301. package/dist/i18n/server.d.mts +30 -0
  302. package/dist/i18n/server.d.ts +30 -0
  303. package/dist/i18n/server.mjs +32 -0
  304. package/dist/i18n/server.mjs.map +1 -0
  305. package/dist/image/server.cjs +477 -0
  306. package/dist/image/server.cjs.map +1 -0
  307. package/dist/image/server.d.mts +37 -0
  308. package/dist/image/server.d.ts +37 -0
  309. package/dist/image/server.mjs +16 -0
  310. package/dist/image/server.mjs.map +1 -0
  311. package/dist/image/sharp.cjs +135 -0
  312. package/dist/image/sharp.cjs.map +1 -0
  313. package/dist/image/sharp.d.mts +7 -0
  314. package/dist/image/sharp.d.ts +7 -0
  315. package/dist/image/sharp.mjs +75 -0
  316. package/dist/image/sharp.mjs.map +1 -0
  317. package/dist/image-config-Duob7wER.d.mts +50 -0
  318. package/dist/image-config-Duob7wER.d.ts +50 -0
  319. package/dist/image.cjs +209 -0
  320. package/dist/image.cjs.map +1 -0
  321. package/dist/image.d.mts +39 -0
  322. package/dist/image.d.ts +39 -0
  323. package/dist/image.mjs +165 -0
  324. package/dist/image.mjs.map +1 -0
  325. package/dist/index.cjs +39433 -0
  326. package/dist/index.cjs.map +1 -0
  327. package/dist/index.d.mts +451 -0
  328. package/dist/index.d.ts +451 -0
  329. package/dist/index.mjs +930 -0
  330. package/dist/index.mjs.map +1 -0
  331. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  332. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  333. package/dist/integration-orm-GQLGU66X.mjs +13 -0
  334. package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
  335. package/dist/integrations.cjs +2820 -0
  336. package/dist/integrations.cjs.map +1 -0
  337. package/dist/integrations.d.mts +21 -0
  338. package/dist/integrations.d.ts +21 -0
  339. package/dist/integrations.mjs +51 -0
  340. package/dist/integrations.mjs.map +1 -0
  341. package/dist/internal/build-runtime.cjs +31340 -0
  342. package/dist/internal/build-runtime.cjs.map +1 -0
  343. package/dist/internal/build-runtime.d.mts +38 -0
  344. package/dist/internal/build-runtime.d.ts +38 -0
  345. package/dist/internal/build-runtime.mjs +73 -0
  346. package/dist/internal/build-runtime.mjs.map +1 -0
  347. package/dist/internal/client-runtime.cjs +579 -0
  348. package/dist/internal/client-runtime.cjs.map +1 -0
  349. package/dist/internal/client-runtime.d.mts +2 -0
  350. package/dist/internal/client-runtime.d.ts +2 -0
  351. package/dist/internal/client-runtime.mjs +12 -0
  352. package/dist/internal/client-runtime.mjs.map +1 -0
  353. package/dist/internal/config-runtime.cjs +4172 -0
  354. package/dist/internal/config-runtime.cjs.map +1 -0
  355. package/dist/internal/config-runtime.d.mts +38 -0
  356. package/dist/internal/config-runtime.d.ts +38 -0
  357. package/dist/internal/config-runtime.mjs +38 -0
  358. package/dist/internal/config-runtime.mjs.map +1 -0
  359. package/dist/internal/production-node-env.cjs +65 -0
  360. package/dist/internal/production-node-env.cjs.map +1 -0
  361. package/dist/internal/production-node-env.d.mts +12 -0
  362. package/dist/internal/production-node-env.d.ts +12 -0
  363. package/dist/internal/production-node-env.mjs +8 -0
  364. package/dist/internal/production-node-env.mjs.map +1 -0
  365. package/dist/internal/production-runtime.cjs +1896 -0
  366. package/dist/internal/production-runtime.cjs.map +1 -0
  367. package/dist/internal/production-runtime.d.mts +39 -0
  368. package/dist/internal/production-runtime.d.ts +39 -0
  369. package/dist/internal/production-runtime.mjs +79 -0
  370. package/dist/internal/production-runtime.mjs.map +1 -0
  371. package/dist/layers-VWVDTPUZ.mjs +16 -0
  372. package/dist/layers-VWVDTPUZ.mjs.map +1 -0
  373. package/dist/manager-THKFTOFE.mjs +10 -0
  374. package/dist/manager-THKFTOFE.mjs.map +1 -0
  375. package/dist/markdown.cjs +299 -0
  376. package/dist/markdown.cjs.map +1 -0
  377. package/dist/markdown.d.mts +43 -0
  378. package/dist/markdown.d.ts +43 -0
  379. package/dist/markdown.mjs +14 -0
  380. package/dist/markdown.mjs.map +1 -0
  381. package/dist/metadata-C9NZxMDW.d.mts +22 -0
  382. package/dist/metadata-DAXRaOHx.d.ts +22 -0
  383. package/dist/middleware.cjs +2148 -0
  384. package/dist/middleware.cjs.map +1 -0
  385. package/dist/middleware.d.mts +163 -0
  386. package/dist/middleware.d.ts +163 -0
  387. package/dist/middleware.mjs +49 -0
  388. package/dist/middleware.mjs.map +1 -0
  389. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  390. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  391. package/dist/navigation.cjs +1304 -0
  392. package/dist/navigation.cjs.map +1 -0
  393. package/dist/navigation.d.mts +14 -0
  394. package/dist/navigation.d.ts +14 -0
  395. package/dist/navigation.mjs +33 -0
  396. package/dist/navigation.mjs.map +1 -0
  397. package/dist/nitro-KME62MWG.mjs +691 -0
  398. package/dist/nitro-KME62MWG.mjs.map +1 -0
  399. package/dist/observability.cjs +186 -0
  400. package/dist/observability.cjs.map +1 -0
  401. package/dist/observability.d.mts +335 -0
  402. package/dist/observability.d.ts +335 -0
  403. package/dist/observability.mjs +16 -0
  404. package/dist/observability.mjs.map +1 -0
  405. package/dist/params-BALtrRim.d.ts +15 -0
  406. package/dist/params-ry-lxqmy.d.mts +15 -0
  407. package/dist/plugin-BJDf43dc.d.mts +165 -0
  408. package/dist/plugin-BJDf43dc.d.ts +165 -0
  409. package/dist/plugin.cjs +22285 -0
  410. package/dist/plugin.cjs.map +1 -0
  411. package/dist/plugin.d.mts +21 -0
  412. package/dist/plugin.d.ts +21 -0
  413. package/dist/plugin.mjs +60 -0
  414. package/dist/plugin.mjs.map +1 -0
  415. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  416. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  417. package/dist/production-runtime-DRkCHUvJ.d.ts +79 -0
  418. package/dist/production-runtime-flrjp_nC.d.mts +79 -0
  419. package/dist/query/client.cjs +560 -0
  420. package/dist/query/client.cjs.map +1 -0
  421. package/dist/query/client.d.mts +61 -0
  422. package/dist/query/client.d.ts +61 -0
  423. package/dist/query/client.mjs +364 -0
  424. package/dist/query/client.mjs.map +1 -0
  425. package/dist/query/index.cjs +226 -0
  426. package/dist/query/index.cjs.map +1 -0
  427. package/dist/query/index.d.mts +90 -0
  428. package/dist/query/index.d.ts +90 -0
  429. package/dist/query/index.mjs +31 -0
  430. package/dist/query/index.mjs.map +1 -0
  431. package/dist/query/parsers.cjs +178 -0
  432. package/dist/query/parsers.cjs.map +1 -0
  433. package/dist/query/parsers.d.mts +25 -0
  434. package/dist/query/parsers.d.ts +25 -0
  435. package/dist/query/parsers.mjs +24 -0
  436. package/dist/query/parsers.mjs.map +1 -0
  437. package/dist/query/server.cjs +301 -0
  438. package/dist/query/server.cjs.map +1 -0
  439. package/dist/query/server.d.mts +55 -0
  440. package/dist/query/server.d.ts +55 -0
  441. package/dist/query/server.mjs +105 -0
  442. package/dist/query/server.mjs.map +1 -0
  443. package/dist/request-BrFBuc8G.d.mts +6 -0
  444. package/dist/request-BslSZIRz.d.ts +6 -0
  445. package/dist/request.cjs +71 -0
  446. package/dist/request.cjs.map +1 -0
  447. package/dist/request.d.mts +2 -0
  448. package/dist/request.d.ts +2 -0
  449. package/dist/request.mjs +9 -0
  450. package/dist/request.mjs.map +1 -0
  451. package/dist/resolver-C6iecsDV.d.ts +14 -0
  452. package/dist/resolver-DlOPpjkB.d.mts +14 -0
  453. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  454. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  455. package/dist/router.cjs +254 -0
  456. package/dist/router.cjs.map +1 -0
  457. package/dist/router.d.mts +36 -0
  458. package/dist/router.d.ts +36 -0
  459. package/dist/router.mjs +14 -0
  460. package/dist/router.mjs.map +1 -0
  461. package/dist/routes.cjs +1213 -0
  462. package/dist/routes.cjs.map +1 -0
  463. package/dist/routes.d.mts +224 -0
  464. package/dist/routes.d.ts +224 -0
  465. package/dist/routes.mjs +52 -0
  466. package/dist/routes.mjs.map +1 -0
  467. package/dist/runtime-B6GvwDS1.d.ts +27 -0
  468. package/dist/runtime-DeAAZ6gO.d.mts +27 -0
  469. package/dist/search-client-6OXIBNYQ.mjs +14 -0
  470. package/dist/search-client-6OXIBNYQ.mjs.map +1 -0
  471. package/dist/server-action-security.cjs +492 -0
  472. package/dist/server-action-security.cjs.map +1 -0
  473. package/dist/server-action-security.d.mts +42 -0
  474. package/dist/server-action-security.d.ts +42 -0
  475. package/dist/server-action-security.mjs +29 -0
  476. package/dist/server-action-security.mjs.map +1 -0
  477. package/dist/server-fn-client.cjs +180 -0
  478. package/dist/server-fn-client.cjs.map +1 -0
  479. package/dist/server-fn-client.d.mts +31 -0
  480. package/dist/server-fn-client.d.ts +31 -0
  481. package/dist/server-fn-client.mjs +9 -0
  482. package/dist/server-fn-client.mjs.map +1 -0
  483. package/dist/server-fn.cjs +284 -0
  484. package/dist/server-fn.cjs.map +1 -0
  485. package/dist/server-fn.d.mts +84 -0
  486. package/dist/server-fn.d.ts +84 -0
  487. package/dist/server-fn.mjs +17 -0
  488. package/dist/server-fn.mjs.map +1 -0
  489. package/dist/server-plugins.cjs +235 -0
  490. package/dist/server-plugins.cjs.map +1 -0
  491. package/dist/server-plugins.d.mts +54 -0
  492. package/dist/server-plugins.d.ts +54 -0
  493. package/dist/server-plugins.mjs +18 -0
  494. package/dist/server-plugins.mjs.map +1 -0
  495. package/dist/server-query-client.cjs +792 -0
  496. package/dist/server-query-client.cjs.map +1 -0
  497. package/dist/server-query-client.d.mts +50 -0
  498. package/dist/server-query-client.d.ts +50 -0
  499. package/dist/server-query-client.mjs +23 -0
  500. package/dist/server-query-client.mjs.map +1 -0
  501. package/dist/server-query.cjs +804 -0
  502. package/dist/server-query.cjs.map +1 -0
  503. package/dist/server-query.d.mts +36 -0
  504. package/dist/server-query.d.ts +36 -0
  505. package/dist/server-query.mjs +18 -0
  506. package/dist/server-query.mjs.map +1 -0
  507. package/dist/server.cjs +25739 -0
  508. package/dist/server.cjs.map +1 -0
  509. package/dist/server.d.mts +47 -0
  510. package/dist/server.d.ts +47 -0
  511. package/dist/server.mjs +511 -0
  512. package/dist/server.mjs.map +1 -0
  513. package/dist/storage.cjs +515 -0
  514. package/dist/storage.cjs.map +1 -0
  515. package/dist/storage.d.mts +52 -0
  516. package/dist/storage.d.ts +52 -0
  517. package/dist/storage.mjs +58 -0
  518. package/dist/storage.mjs.map +1 -0
  519. package/dist/testing.cjs +1882 -0
  520. package/dist/testing.cjs.map +1 -0
  521. package/dist/testing.d.mts +100 -0
  522. package/dist/testing.d.ts +100 -0
  523. package/dist/testing.mjs +324 -0
  524. package/dist/testing.mjs.map +1 -0
  525. package/dist/types-BH1lhg5G.d.mts +81 -0
  526. package/dist/types-BH1lhg5G.d.ts +81 -0
  527. package/dist/types-C9N-nk5R.d.mts +53 -0
  528. package/dist/types-C9N-nk5R.d.ts +53 -0
  529. package/dist/types-D1A6-XvH.d.mts +73 -0
  530. package/dist/types-D1A6-XvH.d.ts +73 -0
  531. package/dist/utils-DA1yo54_.d.ts +23 -0
  532. package/dist/utils-DOXXivjL.d.mts +23 -0
  533. package/dist/vite.cjs +22684 -0
  534. package/dist/vite.cjs.map +1 -0
  535. package/dist/vite.d.mts +21 -0
  536. package/dist/vite.d.ts +21 -0
  537. package/dist/vite.mjs +59 -0
  538. package/dist/vite.mjs.map +1 -0
  539. package/dist/workflows.cjs +586 -0
  540. package/dist/workflows.cjs.map +1 -0
  541. package/dist/workflows.d.mts +110 -0
  542. package/dist/workflows.d.ts +110 -0
  543. package/dist/workflows.mjs +32 -0
  544. package/dist/workflows.mjs.map +1 -0
  545. package/package.json +523 -0
  546. package/types/api.d.ts +88 -0
  547. package/types/client.d.ts +1171 -0
  548. package/types/index.d.ts +17 -0
  549. package/types/middleware.d.ts +266 -0
@@ -0,0 +1,61 @@
1
+ export { R as RouteParamsInput, l as loadRouteParams, p as parseRouteParams } from '../params-ry-lxqmy.mjs';
2
+ import { Parser } from './parsers.mjs';
3
+ export { asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, inferParserType } from './parsers.mjs';
4
+
5
+ /**
6
+ * Farm.js Client-Side Query State Management
7
+ *
8
+ * Type-safe URL search parameter state management - Like useState, but stored in the URL query string.
9
+ * Client-only hooks for managing query parameters in the browser.
10
+ * Inspired by nuqs implementation patterns.
11
+ */
12
+
13
+ type UrlUpdateType = "push" | "replace";
14
+ type HistoryMethod = "pushState" | "replaceState";
15
+ interface Options {
16
+ history?: HistoryMethod;
17
+ shallow?: boolean;
18
+ scroll?: boolean;
19
+ throttleMs?: number;
20
+ }
21
+ declare function useQueryState<TParser extends Parser<any>>(key: string, parser: TParser, options?: Options): [
22
+ NonNullable<ReturnType<TParser["parse"]>> | null,
23
+ (value: NonNullable<ReturnType<TParser["parse"]>> | null) => void
24
+ ];
25
+ declare function useQueryState<T>(key: string, parser: Parser<T>, options?: Options): [T | null, (value: T | null) => void];
26
+ declare function useQueryStates<T extends Record<string, Parser<any>>>(parsers: T, options?: Options): [
27
+ {
28
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
29
+ },
30
+ (updates: Partial<{
31
+ [K in keyof T]: ReturnType<T[K]["parse"]> | null;
32
+ }>) => void
33
+ ];
34
+ declare function usePagination(options?: {
35
+ defaultPage?: number;
36
+ defaultLimit?: number;
37
+ pageKey?: string;
38
+ limitKey?: string;
39
+ }): {
40
+ page: number;
41
+ setPage: (value: number | null) => void;
42
+ limit: number;
43
+ setLimit: (value: number | null) => void;
44
+ offset: number;
45
+ resetPagination: () => void;
46
+ };
47
+ declare function useSearchFilters<T extends Record<string, any>>(options?: {
48
+ searchKey?: string;
49
+ defaultFilters?: T;
50
+ filterKeys?: (keyof T)[];
51
+ }): {
52
+ search: string | null;
53
+ setSearch: (value: string | null) => void;
54
+ filters: T;
55
+ setFilters: (updates: Partial<{
56
+ [x: string]: string | null;
57
+ }>) => void;
58
+ clearFilters: () => void;
59
+ };
60
+
61
+ export { type HistoryMethod, type Options, Parser, type UrlUpdateType, usePagination, useQueryState, useQueryStates, useSearchFilters };
@@ -0,0 +1,61 @@
1
+ export { R as RouteParamsInput, l as loadRouteParams, p as parseRouteParams } from '../params-BALtrRim.js';
2
+ import { Parser } from './parsers.js';
3
+ export { asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, inferParserType } from './parsers.js';
4
+
5
+ /**
6
+ * Farm.js Client-Side Query State Management
7
+ *
8
+ * Type-safe URL search parameter state management - Like useState, but stored in the URL query string.
9
+ * Client-only hooks for managing query parameters in the browser.
10
+ * Inspired by nuqs implementation patterns.
11
+ */
12
+
13
+ type UrlUpdateType = "push" | "replace";
14
+ type HistoryMethod = "pushState" | "replaceState";
15
+ interface Options {
16
+ history?: HistoryMethod;
17
+ shallow?: boolean;
18
+ scroll?: boolean;
19
+ throttleMs?: number;
20
+ }
21
+ declare function useQueryState<TParser extends Parser<any>>(key: string, parser: TParser, options?: Options): [
22
+ NonNullable<ReturnType<TParser["parse"]>> | null,
23
+ (value: NonNullable<ReturnType<TParser["parse"]>> | null) => void
24
+ ];
25
+ declare function useQueryState<T>(key: string, parser: Parser<T>, options?: Options): [T | null, (value: T | null) => void];
26
+ declare function useQueryStates<T extends Record<string, Parser<any>>>(parsers: T, options?: Options): [
27
+ {
28
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
29
+ },
30
+ (updates: Partial<{
31
+ [K in keyof T]: ReturnType<T[K]["parse"]> | null;
32
+ }>) => void
33
+ ];
34
+ declare function usePagination(options?: {
35
+ defaultPage?: number;
36
+ defaultLimit?: number;
37
+ pageKey?: string;
38
+ limitKey?: string;
39
+ }): {
40
+ page: number;
41
+ setPage: (value: number | null) => void;
42
+ limit: number;
43
+ setLimit: (value: number | null) => void;
44
+ offset: number;
45
+ resetPagination: () => void;
46
+ };
47
+ declare function useSearchFilters<T extends Record<string, any>>(options?: {
48
+ searchKey?: string;
49
+ defaultFilters?: T;
50
+ filterKeys?: (keyof T)[];
51
+ }): {
52
+ search: string | null;
53
+ setSearch: (value: string | null) => void;
54
+ filters: T;
55
+ setFilters: (updates: Partial<{
56
+ [x: string]: string | null;
57
+ }>) => void;
58
+ clearFilters: () => void;
59
+ };
60
+
61
+ export { type HistoryMethod, type Options, Parser, type UrlUpdateType, usePagination, useQueryState, useQueryStates, useSearchFilters };
@@ -0,0 +1,364 @@
1
+ import {
2
+ loadRouteParams,
3
+ parseRouteParams
4
+ } from "../chunk-H2FA2SBS.mjs";
5
+ import {
6
+ asArrayOf,
7
+ asBoolean,
8
+ asFloat,
9
+ asInteger,
10
+ asIsoDate,
11
+ asIsoDateTime,
12
+ asJson,
13
+ asString,
14
+ createParser
15
+ } from "../chunk-E2MPIBRE.mjs";
16
+ import {
17
+ __name
18
+ } from "../chunk-CGILA3WO.mjs";
19
+
20
+ // src/query/client.ts
21
+ import { useState, useEffect, useCallback, useRef } from "react";
22
+
23
+ // src/query/sync.ts
24
+ var _Emitter = class _Emitter {
25
+ constructor() {
26
+ this.listeners = /* @__PURE__ */ new Map();
27
+ this.keyListeners = /* @__PURE__ */ new Map();
28
+ }
29
+ /**
30
+ * Emit a global update event (all hooks should sync)
31
+ */
32
+ emitUpdate(searchParams) {
33
+ const listeners = this.listeners.get("update") || /* @__PURE__ */ new Set();
34
+ listeners.forEach((listener) => listener(searchParams));
35
+ }
36
+ /**
37
+ * Emit a key-specific update (for cross-hook sync)
38
+ */
39
+ emitKey(key, payload) {
40
+ const listeners = this.keyListeners.get(key) || /* @__PURE__ */ new Set();
41
+ listeners.forEach((listener) => listener(payload));
42
+ }
43
+ /**
44
+ * Subscribe to global updates
45
+ */
46
+ on(event, listener) {
47
+ if (!this.listeners.has(event)) {
48
+ this.listeners.set(event, /* @__PURE__ */ new Set());
49
+ }
50
+ this.listeners.get(event).add(listener);
51
+ }
52
+ /**
53
+ * Subscribe to key-specific updates
54
+ */
55
+ onKey(key, listener) {
56
+ if (!this.keyListeners.has(key)) {
57
+ this.keyListeners.set(key, /* @__PURE__ */ new Set());
58
+ }
59
+ this.keyListeners.get(key).add(listener);
60
+ }
61
+ /**
62
+ * Unsubscribe from global updates
63
+ */
64
+ off(event, listener) {
65
+ const listeners = this.listeners.get(event);
66
+ if (listeners) {
67
+ listeners.delete(listener);
68
+ }
69
+ }
70
+ /**
71
+ * Unsubscribe from key-specific updates
72
+ */
73
+ offKey(key, listener) {
74
+ const listeners = this.keyListeners.get(key);
75
+ if (listeners) {
76
+ listeners.delete(listener);
77
+ }
78
+ }
79
+ };
80
+ __name(_Emitter, "Emitter");
81
+ var Emitter = _Emitter;
82
+ var emitter = new Emitter();
83
+
84
+ // src/query/client.ts
85
+ var getCurrentSearchParams = /* @__PURE__ */ __name(() => {
86
+ if (typeof window === "undefined") return new URLSearchParams();
87
+ return new URLSearchParams(window.location.search);
88
+ }, "getCurrentSearchParams");
89
+ var throttleTimers = /* @__PURE__ */ new Map();
90
+ var applyChange = /* @__PURE__ */ __name((searchParams, updates, keepExisting = true) => {
91
+ const newParams = keepExisting ? new URLSearchParams(searchParams) : new URLSearchParams();
92
+ Object.entries(updates).forEach(([key, value]) => {
93
+ if (value === null || value === void 0 || value === "") {
94
+ newParams.delete(key);
95
+ } else {
96
+ newParams.set(key, value);
97
+ }
98
+ });
99
+ return newParams;
100
+ }, "applyChange");
101
+ var updateURL = /* @__PURE__ */ __name((updates, options = {}, emitUpdate = true) => {
102
+ if (typeof window === "undefined") return;
103
+ const { history = "pushState", shallow = true, scroll = false, throttleMs } = options;
104
+ const url = new URL(window.location.href);
105
+ const newSearchParams = applyChange(new URLSearchParams(url.search), updates);
106
+ const newSearch = newSearchParams.toString();
107
+ const newUrl = url.pathname + (newSearch ? `?${newSearch}` : "") + url.hash;
108
+ const currentUrl = window.location.pathname + (window.location.search || "") + window.location.hash;
109
+ if (newUrl !== currentUrl) {
110
+ const update = /* @__PURE__ */ __name(() => {
111
+ if (history === "replaceState") {
112
+ window.history.replaceState(null, "", newUrl);
113
+ } else {
114
+ window.history.pushState(null, "", newUrl);
115
+ }
116
+ if (emitUpdate) {
117
+ const actualSearchParams = new URLSearchParams(window.location.search);
118
+ emitter.emitUpdate(actualSearchParams);
119
+ }
120
+ if (shallow) {
121
+ setTimeout(() => {
122
+ window.dispatchEvent(new PopStateEvent("popstate"));
123
+ }, 0);
124
+ }
125
+ if (scroll) {
126
+ window.scrollTo(0, 0);
127
+ }
128
+ }, "update");
129
+ if (throttleMs && throttleMs > 0) {
130
+ const throttleKey = Object.keys(updates).sort().join(",");
131
+ const existingTimeout = throttleTimers.get(throttleKey);
132
+ if (existingTimeout) {
133
+ clearTimeout(existingTimeout);
134
+ }
135
+ const timeout = setTimeout(() => {
136
+ update();
137
+ throttleTimers.delete(throttleKey);
138
+ }, throttleMs);
139
+ throttleTimers.set(throttleKey, timeout);
140
+ } else {
141
+ update();
142
+ }
143
+ }
144
+ }, "updateURL");
145
+ function useQueryState(key, parser, options) {
146
+ const [state, setState] = useState(() => {
147
+ if (typeof window === "undefined") return parser.parse("");
148
+ const searchParams = getCurrentSearchParams();
149
+ const value = searchParams.get(key);
150
+ const parsed = parser.parse(value ?? "");
151
+ return parsed;
152
+ });
153
+ const stateRef = useRef(state);
154
+ const isInternalUpdateRef = useRef(false);
155
+ stateRef.current = state;
156
+ const setValue = useCallback(
157
+ (value) => {
158
+ isInternalUpdateRef.current = true;
159
+ setState(value);
160
+ stateRef.current = value;
161
+ const serialized = value === null ? null : parser.serialize(value);
162
+ emitter.emitKey(key, { state: value, query: serialized });
163
+ updateURL({ [key]: serialized }, options, true);
164
+ setTimeout(() => {
165
+ isInternalUpdateRef.current = false;
166
+ }, 10);
167
+ },
168
+ [key, parser, options]
169
+ );
170
+ useEffect(() => {
171
+ if (typeof window === "undefined") return;
172
+ const onPopState = /* @__PURE__ */ __name(() => {
173
+ const searchParams = getCurrentSearchParams();
174
+ const value = searchParams.get(key);
175
+ const parsed = parser.parse(value ?? "");
176
+ if (!Object.is(stateRef.current, parsed)) {
177
+ setState(parsed);
178
+ stateRef.current = parsed;
179
+ }
180
+ }, "onPopState");
181
+ const onEmitterUpdate = /* @__PURE__ */ __name((searchParams) => {
182
+ if (isInternalUpdateRef.current) {
183
+ return;
184
+ }
185
+ const value = searchParams.get(key);
186
+ const parsed = parser.parse(value ?? "");
187
+ if (!Object.is(stateRef.current, parsed)) {
188
+ setState(parsed);
189
+ stateRef.current = parsed;
190
+ }
191
+ }, "onEmitterUpdate");
192
+ const onKeyUpdate = /* @__PURE__ */ __name((payload) => {
193
+ if (isInternalUpdateRef.current) {
194
+ return;
195
+ }
196
+ if (!Object.is(stateRef.current, payload.state)) {
197
+ setState(payload.state);
198
+ stateRef.current = payload.state;
199
+ }
200
+ }, "onKeyUpdate");
201
+ window.addEventListener("popstate", onPopState);
202
+ emitter.on("update", onEmitterUpdate);
203
+ emitter.onKey(key, onKeyUpdate);
204
+ return () => {
205
+ window.removeEventListener("popstate", onPopState);
206
+ emitter.off("update", onEmitterUpdate);
207
+ emitter.offKey(key, onKeyUpdate);
208
+ };
209
+ }, [key, parser]);
210
+ return [state, setValue];
211
+ }
212
+ __name(useQueryState, "useQueryState");
213
+ function useQueryStates(parsers, options = {}) {
214
+ const keys = Object.keys(parsers);
215
+ const watchKeys = keys.join("&");
216
+ const [state, setState] = useState(() => {
217
+ const searchParams = typeof window === "undefined" ? new URLSearchParams() : getCurrentSearchParams();
218
+ const result = {};
219
+ Object.entries(parsers).forEach(([key, parser]) => {
220
+ const value = searchParams.get(key);
221
+ result[key] = parser.parse(value ?? "");
222
+ });
223
+ return result;
224
+ });
225
+ const stateRef = useRef(state);
226
+ stateRef.current = state;
227
+ const setValues = useCallback(
228
+ (updates) => {
229
+ const newState = { ...stateRef.current, ...updates };
230
+ setState(newState);
231
+ stateRef.current = newState;
232
+ Object.entries(updates).forEach(([key, value]) => {
233
+ const parser = parsers[key];
234
+ if (parser) {
235
+ const serialized = value === null ? null : parser.serialize(value);
236
+ emitter.emitKey(key, { state: value, query: serialized });
237
+ }
238
+ });
239
+ const urlUpdates = {};
240
+ Object.entries(updates).forEach(([key, value]) => {
241
+ const parser = parsers[key];
242
+ if (parser) {
243
+ const serialized = value === null ? null : parser.serialize(value);
244
+ urlUpdates[key] = serialized;
245
+ }
246
+ });
247
+ updateURL(urlUpdates, options, true);
248
+ },
249
+ [parsers, options]
250
+ );
251
+ useEffect(() => {
252
+ if (typeof window === "undefined") return;
253
+ const applyChange2 = /* @__PURE__ */ __name((searchParams, fromEmitter = false) => {
254
+ const result = {};
255
+ let hasChanged = false;
256
+ Object.entries(parsers).forEach(([key, parser]) => {
257
+ const value = searchParams.get(key);
258
+ const parsed = parser.parse(value ?? "");
259
+ const currentValue = stateRef.current[key];
260
+ if (!Object.is(currentValue, parsed)) {
261
+ hasChanged = true;
262
+ }
263
+ result[key] = parsed;
264
+ });
265
+ if (hasChanged) {
266
+ setState(result);
267
+ stateRef.current = result;
268
+ }
269
+ }, "applyChange");
270
+ const onPopState = /* @__PURE__ */ __name(() => {
271
+ const searchParams = getCurrentSearchParams();
272
+ applyChange2(searchParams, false);
273
+ }, "onPopState");
274
+ const onEmitterUpdate = /* @__PURE__ */ __name((searchParams) => {
275
+ applyChange2(searchParams, true);
276
+ }, "onEmitterUpdate");
277
+ window.addEventListener("popstate", onPopState);
278
+ emitter.on("update", onEmitterUpdate);
279
+ return () => {
280
+ window.removeEventListener("popstate", onPopState);
281
+ emitter.off("update", onEmitterUpdate);
282
+ };
283
+ }, [watchKeys, parsers]);
284
+ return [state, setValues];
285
+ }
286
+ __name(useQueryStates, "useQueryStates");
287
+ function usePagination(options) {
288
+ const {
289
+ defaultPage = 1,
290
+ defaultLimit = 10,
291
+ pageKey = "page",
292
+ limitKey = "limit"
293
+ } = options || {};
294
+ const [page, setPage] = useQueryState(pageKey, asInteger.withDefault(defaultPage));
295
+ const [limit, setLimit] = useQueryState(limitKey, asInteger.withDefault(defaultLimit));
296
+ const currentPage = page ?? defaultPage;
297
+ const currentLimit = limit ?? defaultLimit;
298
+ const offset = (currentPage - 1) * currentLimit;
299
+ return {
300
+ page: currentPage,
301
+ setPage,
302
+ limit: currentLimit,
303
+ setLimit,
304
+ offset,
305
+ resetPagination: /* @__PURE__ */ __name(() => {
306
+ setPage(defaultPage);
307
+ setLimit(defaultLimit);
308
+ }, "resetPagination")
309
+ };
310
+ }
311
+ __name(usePagination, "usePagination");
312
+ function useSearchFilters(options) {
313
+ const {
314
+ searchKey = "search",
315
+ defaultFilters = {},
316
+ filterKeys = Object.keys(defaultFilters)
317
+ } = options || {};
318
+ const [search, setSearch] = useQueryState(searchKey, asString);
319
+ const filterParsers = filterKeys.reduce(
320
+ (acc, key) => {
321
+ acc[key] = asString;
322
+ return acc;
323
+ },
324
+ {}
325
+ );
326
+ const [filters, setFilters] = useQueryStates(filterParsers);
327
+ const clearFilters = /* @__PURE__ */ __name(() => {
328
+ setSearch(null);
329
+ const clearedFilters = filterKeys.reduce(
330
+ (acc, key) => {
331
+ acc[key] = null;
332
+ return acc;
333
+ },
334
+ {}
335
+ );
336
+ setFilters(clearedFilters);
337
+ }, "clearFilters");
338
+ return {
339
+ search,
340
+ setSearch,
341
+ filters,
342
+ setFilters,
343
+ clearFilters
344
+ };
345
+ }
346
+ __name(useSearchFilters, "useSearchFilters");
347
+ export {
348
+ asArrayOf,
349
+ asBoolean,
350
+ asFloat,
351
+ asInteger,
352
+ asIsoDate,
353
+ asIsoDateTime,
354
+ asJson,
355
+ asString,
356
+ createParser,
357
+ loadRouteParams,
358
+ parseRouteParams,
359
+ usePagination,
360
+ useQueryState,
361
+ useQueryStates,
362
+ useSearchFilters
363
+ };
364
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/query/client.ts","../../src/query/sync.ts"],"sourcesContent":["/**\n * Farm.js Client-Side Query State Management\n *\n * Type-safe URL search parameter state management - Like useState, but stored in the URL query string.\n * Client-only hooks for managing query parameters in the browser.\n * Inspired by nuqs implementation patterns.\n */\n\nimport { useState, useEffect, useCallback, useRef } from \"react\";\nimport { emitter } from \"./sync\";\nexport { parseRouteParams, loadRouteParams, type RouteParamsInput } from \"./params\";\n\nimport { asString as asStringClient, asInteger as asIntegerClient, type Parser } from \"./parsers\";\n\nexport {\n asString,\n asInteger,\n asFloat,\n asBoolean,\n asArrayOf,\n asJson,\n asIsoDate,\n asIsoDateTime,\n createParser,\n type Parser,\n type inferParserType,\n} from \"./parsers\";\n\nexport type UrlUpdateType = \"push\" | \"replace\";\nexport type HistoryMethod = \"pushState\" | \"replaceState\";\n\nexport interface Options {\n history?: HistoryMethod;\n shallow?: boolean;\n scroll?: boolean;\n throttleMs?: number;\n}\n\nconst getCurrentSearchParams = (): URLSearchParams => {\n if (typeof window === \"undefined\") return new URLSearchParams();\n return new URLSearchParams(window.location.search);\n};\n\nconst throttleTimers = new Map<string, NodeJS.Timeout>();\n\nconst applyChange = (\n searchParams: URLSearchParams,\n updates: Record<string, string | null>,\n keepExisting = true,\n): URLSearchParams => {\n const newParams = keepExisting ? new URLSearchParams(searchParams) : new URLSearchParams();\n\n Object.entries(updates).forEach(([key, value]) => {\n if (value === null || value === undefined || value === \"\") {\n newParams.delete(key);\n } else {\n newParams.set(key, value);\n }\n });\n\n return newParams;\n};\n\nconst updateURL = (\n updates: Record<string, string | null>,\n options: Options = {},\n emitUpdate = true,\n) => {\n if (typeof window === \"undefined\") return;\n\n const { history = \"pushState\", shallow = true, scroll = false, throttleMs } = options;\n const url = new URL(window.location.href);\n\n const newSearchParams = applyChange(new URLSearchParams(url.search), updates);\n const newSearch = newSearchParams.toString();\n const newUrl = url.pathname + (newSearch ? `?${newSearch}` : \"\") + url.hash;\n const currentUrl =\n window.location.pathname + (window.location.search || \"\") + window.location.hash;\n\n if (newUrl !== currentUrl) {\n const update = () => {\n if (history === \"replaceState\") {\n window.history.replaceState(null, \"\", newUrl);\n } else {\n window.history.pushState(null, \"\", newUrl);\n }\n\n if (emitUpdate) {\n const actualSearchParams = new URLSearchParams(window.location.search);\n emitter.emitUpdate(actualSearchParams);\n }\n\n if (shallow) {\n setTimeout(() => {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n }, 0);\n }\n\n if (scroll) {\n window.scrollTo(0, 0);\n }\n };\n\n if (throttleMs && throttleMs > 0) {\n const throttleKey = Object.keys(updates).sort().join(\",\");\n\n const existingTimeout = throttleTimers.get(throttleKey);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n }\n\n const timeout = setTimeout(() => {\n update();\n throttleTimers.delete(throttleKey);\n }, throttleMs);\n\n throttleTimers.set(throttleKey, timeout);\n } else {\n update();\n }\n }\n};\n\nexport function useQueryState<TParser extends Parser<any>>(\n key: string,\n parser: TParser,\n options?: Options,\n): [\n NonNullable<ReturnType<TParser[\"parse\"]>> | null,\n (value: NonNullable<ReturnType<TParser[\"parse\"]>> | null) => void,\n];\nexport function useQueryState<T>(\n key: string,\n parser: Parser<T>,\n options?: Options,\n): [T | null, (value: T | null) => void];\nexport function useQueryState<TParser extends Parser<any>>(\n key: string,\n parser: TParser,\n options?: Options,\n): [\n NonNullable<ReturnType<TParser[\"parse\"]>> | null,\n (value: NonNullable<ReturnType<TParser[\"parse\"]>> | null) => void,\n] {\n type T = NonNullable<ReturnType<TParser[\"parse\"]>>;\n const [state, setState] = useState<T | null>(() => {\n if (typeof window === \"undefined\") return parser.parse(\"\");\n const searchParams = getCurrentSearchParams();\n const value = searchParams.get(key);\n const parsed = parser.parse(value ?? \"\");\n return parsed;\n });\n\n const stateRef = useRef(state);\n const isInternalUpdateRef = useRef(false);\n stateRef.current = state;\n\n const setValue = useCallback(\n (value: T | null) => {\n isInternalUpdateRef.current = true;\n\n setState(value);\n stateRef.current = value;\n\n const serialized = value === null ? null : parser.serialize(value);\n\n emitter.emitKey(key, { state: value, query: serialized });\n\n updateURL({ [key]: serialized }, options, true);\n\n setTimeout(() => {\n isInternalUpdateRef.current = false;\n }, 10);\n },\n [key, parser, options],\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const onPopState = () => {\n const searchParams = getCurrentSearchParams();\n const value = searchParams.get(key);\n const parsed = parser.parse(value ?? \"\");\n if (!Object.is(stateRef.current, parsed)) {\n setState(parsed);\n stateRef.current = parsed;\n }\n };\n\n const onEmitterUpdate = (searchParams: URLSearchParams) => {\n if (isInternalUpdateRef.current) {\n return;\n }\n\n const value = searchParams.get(key);\n const parsed = parser.parse(value ?? \"\");\n if (!Object.is(stateRef.current, parsed)) {\n setState(parsed);\n stateRef.current = parsed;\n }\n };\n\n const onKeyUpdate = (payload: { state: any; query: string | null }) => {\n if (isInternalUpdateRef.current) {\n return;\n }\n\n if (!Object.is(stateRef.current, payload.state)) {\n setState(payload.state);\n stateRef.current = payload.state;\n }\n };\n\n window.addEventListener(\"popstate\", onPopState);\n emitter.on(\"update\", onEmitterUpdate);\n emitter.onKey(key, onKeyUpdate);\n\n return () => {\n window.removeEventListener(\"popstate\", onPopState);\n emitter.off(\"update\", onEmitterUpdate);\n emitter.offKey(key, onKeyUpdate);\n };\n }, [key, parser]);\n\n return [state, setValue];\n}\n\nexport function useQueryStates<T extends Record<string, Parser<any>>>(\n parsers: T,\n options: Options = {},\n): [\n { [K in keyof T]: ReturnType<T[K][\"parse\"]> },\n (updates: Partial<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> | null }>) => void,\n] {\n const keys = Object.keys(parsers);\n const watchKeys = keys.join(\"&\");\n\n const [state, setState] = useState<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> }>(() => {\n const searchParams =\n typeof window === \"undefined\" ? new URLSearchParams() : getCurrentSearchParams();\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n Object.entries(parsers).forEach(([key, parser]) => {\n const value = searchParams.get(key);\n result[key as keyof T] = parser.parse(value ?? \"\");\n });\n\n return result;\n });\n\n const stateRef = useRef(state);\n stateRef.current = state;\n\n const setValues = useCallback(\n (updates: Partial<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> | null }>) => {\n const newState = { ...stateRef.current, ...updates };\n setState(newState);\n stateRef.current = newState;\n\n Object.entries(updates).forEach(([key, value]) => {\n const parser = parsers[key];\n if (parser) {\n const serialized = value === null ? null : parser.serialize(value);\n emitter.emitKey(key, { state: value, query: serialized });\n }\n });\n\n const urlUpdates: Record<string, string | null> = {};\n Object.entries(updates).forEach(([key, value]) => {\n const parser = parsers[key];\n if (parser) {\n const serialized = value === null ? null : parser.serialize(value);\n urlUpdates[key] = serialized;\n }\n });\n\n updateURL(urlUpdates, options, true);\n },\n [parsers, options],\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const applyChange = (searchParams: URLSearchParams, fromEmitter = false) => {\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n let hasChanged = false;\n\n Object.entries(parsers).forEach(([key, parser]) => {\n const value = searchParams.get(key);\n const parsed = parser.parse(value ?? \"\");\n const currentValue = stateRef.current[key as keyof T];\n\n if (!Object.is(currentValue, parsed)) {\n hasChanged = true;\n }\n result[key as keyof T] = parsed;\n });\n\n if (hasChanged) {\n setState(result);\n stateRef.current = result;\n }\n };\n\n const onPopState = () => {\n const searchParams = getCurrentSearchParams();\n applyChange(searchParams, false);\n };\n\n const onEmitterUpdate = (searchParams: URLSearchParams) => {\n applyChange(searchParams, true);\n };\n\n window.addEventListener(\"popstate\", onPopState);\n emitter.on(\"update\", onEmitterUpdate);\n\n return () => {\n window.removeEventListener(\"popstate\", onPopState);\n emitter.off(\"update\", onEmitterUpdate);\n };\n }, [watchKeys, parsers]);\n\n return [state, setValues];\n}\n\nexport function usePagination(options?: {\n defaultPage?: number;\n defaultLimit?: number;\n pageKey?: string;\n limitKey?: string;\n}) {\n const {\n defaultPage = 1,\n defaultLimit = 10,\n pageKey = \"page\",\n limitKey = \"limit\",\n } = options || {};\n\n const [page, setPage] = useQueryState(pageKey, asIntegerClient.withDefault!(defaultPage));\n const [limit, setLimit] = useQueryState(limitKey, asIntegerClient.withDefault!(defaultLimit));\n\n const currentPage = page ?? defaultPage;\n const currentLimit = limit ?? defaultLimit;\n const offset = ((currentPage as number) - 1) * (currentLimit as number);\n\n return {\n page: currentPage,\n setPage,\n limit: currentLimit,\n setLimit,\n offset,\n resetPagination: () => {\n setPage(defaultPage);\n setLimit(defaultLimit);\n },\n };\n}\n\nexport function useSearchFilters<T extends Record<string, any>>(options?: {\n searchKey?: string;\n defaultFilters?: T;\n filterKeys?: (keyof T)[];\n}) {\n const {\n searchKey = \"search\",\n defaultFilters = {} as T,\n filterKeys = Object.keys(defaultFilters) as (keyof T)[],\n } = options || {};\n\n const [search, setSearch] = useQueryState(searchKey, asStringClient);\n\n const filterParsers = filterKeys.reduce(\n (acc, key) => {\n acc[key as string] = asStringClient;\n return acc;\n },\n {} as Record<string, Parser<string>>,\n );\n\n const [filters, setFilters] = useQueryStates(filterParsers);\n\n const clearFilters = () => {\n setSearch(null);\n const clearedFilters = filterKeys.reduce(\n (acc, key) => {\n acc[key as string] = null;\n return acc;\n },\n {} as Record<string, null>,\n );\n setFilters(clearedFilters);\n };\n\n return {\n search,\n setSearch,\n filters: filters as T,\n setFilters,\n clearFilters,\n };\n}\n","/**\n * Cross-hook synchronization system for query state\n * Inspired by nuqs implementation\n */\n\ntype Listener = (searchParams: URLSearchParams) => void;\ntype KeyListener = (payload: { state: any; query: string | null }) => void;\n\nclass Emitter {\n private listeners: Map<string, Set<Listener>> = new Map();\n private keyListeners: Map<string, Set<KeyListener>> = new Map();\n\n /**\n * Emit a global update event (all hooks should sync)\n */\n emitUpdate(searchParams: URLSearchParams): void {\n const listeners = this.listeners.get(\"update\") || new Set();\n listeners.forEach((listener) => listener(searchParams));\n }\n\n /**\n * Emit a key-specific update (for cross-hook sync)\n */\n emitKey(key: string, payload: { state: any; query: string | null }): void {\n const listeners = this.keyListeners.get(key) || new Set();\n listeners.forEach((listener) => listener(payload));\n }\n\n /**\n * Subscribe to global updates\n */\n on(event: \"update\", listener: Listener): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event)!.add(listener);\n }\n\n /**\n * Subscribe to key-specific updates\n */\n onKey(key: string, listener: KeyListener): void {\n if (!this.keyListeners.has(key)) {\n this.keyListeners.set(key, new Set());\n }\n this.keyListeners.get(key)!.add(listener);\n }\n\n /**\n * Unsubscribe from global updates\n */\n off(event: \"update\", listener: Listener): void {\n const listeners = this.listeners.get(event);\n if (listeners) {\n listeners.delete(listener);\n }\n }\n\n /**\n * Unsubscribe from key-specific updates\n */\n offKey(key: string, listener: KeyListener): void {\n const listeners = this.keyListeners.get(key);\n if (listeners) {\n listeners.delete(listener);\n }\n }\n}\n\nexport const emitter = new Emitter();\n"],"mappings":"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","names":["applyChange"]}