@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,180 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/image-config.ts
6
+ var DEFAULT_FARM_IMAGE_PATH = "/_farm/image";
7
+ var DEFAULT_FARM_IMAGE_DEVICE_SIZES = [
8
+ 640,
9
+ 750,
10
+ 828,
11
+ 1080,
12
+ 1200,
13
+ 1920,
14
+ 2048,
15
+ 3840
16
+ ];
17
+ var DEFAULT_FARM_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];
18
+ var DEFAULT_FARM_IMAGE_QUALITIES = [75];
19
+ var DEFAULT_FARM_IMAGE_FORMATS = ["image/webp"];
20
+ var SIZE_UNITS = {
21
+ b: 1,
22
+ kb: 1e3,
23
+ mb: 1e6,
24
+ gb: 1e9,
25
+ kib: 1024,
26
+ mib: 1048576,
27
+ gib: 1073741824
28
+ };
29
+ function resolveFarmImageConfig(config) {
30
+ const path = normalizeImagePath(config?.path ?? DEFAULT_FARM_IMAGE_PATH);
31
+ const deviceSizes = normalizeIntegerList(
32
+ config?.deviceSizes ?? DEFAULT_FARM_IMAGE_DEVICE_SIZES,
33
+ "images.deviceSizes"
34
+ );
35
+ const imageSizes = normalizeIntegerList(
36
+ config?.imageSizes ?? DEFAULT_FARM_IMAGE_SIZES,
37
+ "images.imageSizes"
38
+ );
39
+ const qualities = normalizeIntegerList(
40
+ config?.qualities ?? DEFAULT_FARM_IMAGE_QUALITIES,
41
+ "images.qualities",
42
+ 100
43
+ );
44
+ const formats = [...new Set(config?.formats ?? DEFAULT_FARM_IMAGE_FORMATS)];
45
+ if (formats.some((format) => format !== "image/avif" && format !== "image/webp")) {
46
+ throw new TypeError('images.formats only supports "image/avif" and "image/webp"');
47
+ }
48
+ const minimumCacheTTL = normalizeNonNegativeInteger(
49
+ config?.minimumCacheTTL ?? 60,
50
+ "images.minimumCacheTTL"
51
+ );
52
+ const maximumRedirects = normalizeNonNegativeInteger(
53
+ config?.maximumRedirects ?? 3,
54
+ "images.maximumRedirects"
55
+ );
56
+ return Object.freeze({
57
+ provider: config?.provider ?? "auto",
58
+ path,
59
+ domains: Object.freeze([
60
+ ...new Set(
61
+ (config?.domains ?? []).map((domain) => domain.trim().toLowerCase()).filter(Boolean)
62
+ )
63
+ ]),
64
+ remotePatterns: Object.freeze(
65
+ (config?.remotePatterns ?? []).map((pattern) => normalizeRemotePattern(pattern))
66
+ ),
67
+ localPatterns: Object.freeze(
68
+ (config?.localPatterns ?? [{ pathname: "/**" }]).map(
69
+ (pattern) => normalizeLocalPattern(pattern)
70
+ )
71
+ ),
72
+ deviceSizes: Object.freeze(deviceSizes),
73
+ imageSizes: Object.freeze(imageSizes),
74
+ qualities: Object.freeze(qualities),
75
+ formats: Object.freeze(formats),
76
+ minimumCacheTTL,
77
+ maximumResponseBody: parseSize(
78
+ config?.maximumResponseBody ?? "10mb",
79
+ "images.maximumResponseBody"
80
+ ),
81
+ maximumRedirects,
82
+ dangerouslyAllowSVG: config?.dangerouslyAllowSVG ?? false,
83
+ dangerouslyAllowLocalIP: config?.dangerouslyAllowLocalIP ?? false
84
+ });
85
+ }
86
+ __name(resolveFarmImageConfig, "resolveFarmImageConfig");
87
+ function getPublicFarmImageConfig(config) {
88
+ return {
89
+ provider: config.provider,
90
+ path: config.path,
91
+ deviceSizes: config.deviceSizes,
92
+ imageSizes: config.imageSizes,
93
+ qualities: config.qualities,
94
+ formats: config.formats
95
+ };
96
+ }
97
+ __name(getPublicFarmImageConfig, "getPublicFarmImageConfig");
98
+ function normalizeImagePath(value) {
99
+ const path = value.trim().replace(/\/+$/, "") || "/";
100
+ if (!path.startsWith("/") || path.includes("?") || path.includes("#")) {
101
+ throw new TypeError("images.path must be an absolute pathname without a query or hash");
102
+ }
103
+ return path;
104
+ }
105
+ __name(normalizeImagePath, "normalizeImagePath");
106
+ function normalizeIntegerList(values, name, max) {
107
+ if (values.length === 0) {
108
+ throw new TypeError(`${name} must contain at least one value`);
109
+ }
110
+ const normalized = [...new Set(values)].sort((left, right) => left - right);
111
+ for (const value of normalized) {
112
+ if (!Number.isSafeInteger(value) || value <= 0 || max !== void 0 && value > max) {
113
+ throw new TypeError(
114
+ `${name} must contain positive integers${max ? ` no greater than ${max}` : ""}`
115
+ );
116
+ }
117
+ }
118
+ return normalized;
119
+ }
120
+ __name(normalizeIntegerList, "normalizeIntegerList");
121
+ function normalizeNonNegativeInteger(value, name) {
122
+ if (!Number.isSafeInteger(value) || value < 0) {
123
+ throw new TypeError(`${name} must be a non-negative safe integer`);
124
+ }
125
+ return value;
126
+ }
127
+ __name(normalizeNonNegativeInteger, "normalizeNonNegativeInteger");
128
+ function parseSize(value, name) {
129
+ if (typeof value === "number") {
130
+ if (!Number.isSafeInteger(value) || value <= 0) {
131
+ throw new TypeError(`${name} must be a positive safe integer`);
132
+ }
133
+ return value;
134
+ }
135
+ const match = value.trim().toLowerCase().match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb|kib|mib|gib)$/);
136
+ if (!match) {
137
+ throw new TypeError(`${name} must be bytes or a size string such as "5mb"`);
138
+ }
139
+ const bytes = Number(match[1]) * SIZE_UNITS[match[2]];
140
+ if (!Number.isSafeInteger(bytes) || bytes <= 0) {
141
+ throw new TypeError(`${name} must resolve to a positive safe integer`);
142
+ }
143
+ return bytes;
144
+ }
145
+ __name(parseSize, "parseSize");
146
+ function normalizeRemotePattern(pattern) {
147
+ const hostname = pattern.hostname.trim().toLowerCase();
148
+ if (!hostname || hostname.includes("/") || hostname.includes(":")) {
149
+ throw new TypeError("images.remotePatterns[].hostname must be a hostname or wildcard hostname");
150
+ }
151
+ if (pattern.pathname && !pattern.pathname.startsWith("/")) {
152
+ throw new TypeError("images.remotePatterns[].pathname must start with /");
153
+ }
154
+ if (pattern.search && !pattern.search.startsWith("?")) {
155
+ throw new TypeError("images.remotePatterns[].search must start with ?");
156
+ }
157
+ return Object.freeze({ ...pattern, hostname });
158
+ }
159
+ __name(normalizeRemotePattern, "normalizeRemotePattern");
160
+ function normalizeLocalPattern(pattern) {
161
+ if (!pattern.pathname.startsWith("/")) {
162
+ throw new TypeError("images.localPatterns[].pathname must start with /");
163
+ }
164
+ if (pattern.search && !pattern.search.startsWith("?")) {
165
+ throw new TypeError("images.localPatterns[].search must start with ?");
166
+ }
167
+ return Object.freeze({ ...pattern });
168
+ }
169
+ __name(normalizeLocalPattern, "normalizeLocalPattern");
170
+
171
+ export {
172
+ DEFAULT_FARM_IMAGE_PATH,
173
+ DEFAULT_FARM_IMAGE_DEVICE_SIZES,
174
+ DEFAULT_FARM_IMAGE_SIZES,
175
+ DEFAULT_FARM_IMAGE_QUALITIES,
176
+ DEFAULT_FARM_IMAGE_FORMATS,
177
+ resolveFarmImageConfig,
178
+ getPublicFarmImageConfig
179
+ };
180
+ //# sourceMappingURL=chunk-GY2STC2S.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/image-config.ts"],"sourcesContent":["export const DEFAULT_FARM_IMAGE_PATH = \"/_farm/image\";\nexport const DEFAULT_FARM_IMAGE_DEVICE_SIZES = [\n 640, 750, 828, 1080, 1200, 1920, 2048, 3840,\n] as const;\nexport const DEFAULT_FARM_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384] as const;\nexport const DEFAULT_FARM_IMAGE_QUALITIES = [75] as const;\nexport const DEFAULT_FARM_IMAGE_FORMATS = [\"image/webp\"] as const;\n\nexport type FarmImageFormat = \"image/avif\" | \"image/webp\";\nexport type FarmImageProvider = \"auto\" | \"node\" | \"cloudflare\" | \"none\";\n\nexport interface FarmImageRemotePattern {\n protocol?: \"http\" | \"https\";\n hostname: string;\n port?: string;\n pathname?: string;\n search?: string;\n}\n\nexport interface FarmImageLocalPattern {\n pathname: string;\n search?: string;\n}\n\nexport interface FarmImageConfig {\n /** Runtime optimizer. Auto selects Cloudflare Images on Cloudflare and Sharp elsewhere. */\n provider?: FarmImageProvider;\n /** Public optimizer endpoint. */\n path?: string;\n /** @deprecated Prefer remotePatterns, which also restricts protocol, path, port, and query. */\n domains?: readonly string[];\n remotePatterns?: readonly FarmImageRemotePattern[];\n localPatterns?: readonly FarmImageLocalPattern[];\n deviceSizes?: readonly number[];\n imageSizes?: readonly number[];\n qualities?: readonly number[];\n formats?: readonly FarmImageFormat[];\n minimumCacheTTL?: number;\n maximumResponseBody?: number | string;\n maximumRedirects?: number;\n dangerouslyAllowSVG?: boolean;\n dangerouslyAllowLocalIP?: boolean;\n}\n\nexport interface ResolvedFarmImageConfig {\n provider: FarmImageProvider;\n path: string;\n domains: readonly string[];\n remotePatterns: readonly FarmImageRemotePattern[];\n localPatterns: readonly FarmImageLocalPattern[];\n deviceSizes: readonly number[];\n imageSizes: readonly number[];\n qualities: readonly number[];\n formats: readonly FarmImageFormat[];\n minimumCacheTTL: number;\n maximumResponseBody: number;\n maximumRedirects: number;\n dangerouslyAllowSVG: boolean;\n dangerouslyAllowLocalIP: boolean;\n}\n\nexport type PublicFarmImageConfig = Pick<\n ResolvedFarmImageConfig,\n \"provider\" | \"path\" | \"deviceSizes\" | \"imageSizes\" | \"qualities\" | \"formats\"\n>;\n\nconst SIZE_UNITS: Record<string, number> = {\n b: 1,\n kb: 1_000,\n mb: 1_000_000,\n gb: 1_000_000_000,\n kib: 1_024,\n mib: 1_048_576,\n gib: 1_073_741_824,\n};\n\nexport function resolveFarmImageConfig(\n config: FarmImageConfig | undefined,\n): ResolvedFarmImageConfig {\n const path = normalizeImagePath(config?.path ?? DEFAULT_FARM_IMAGE_PATH);\n const deviceSizes = normalizeIntegerList(\n config?.deviceSizes ?? DEFAULT_FARM_IMAGE_DEVICE_SIZES,\n \"images.deviceSizes\",\n );\n const imageSizes = normalizeIntegerList(\n config?.imageSizes ?? DEFAULT_FARM_IMAGE_SIZES,\n \"images.imageSizes\",\n );\n const qualities = normalizeIntegerList(\n config?.qualities ?? DEFAULT_FARM_IMAGE_QUALITIES,\n \"images.qualities\",\n 100,\n );\n const formats = [...new Set(config?.formats ?? DEFAULT_FARM_IMAGE_FORMATS)];\n\n if (formats.some((format) => format !== \"image/avif\" && format !== \"image/webp\")) {\n throw new TypeError('images.formats only supports \"image/avif\" and \"image/webp\"');\n }\n\n const minimumCacheTTL = normalizeNonNegativeInteger(\n config?.minimumCacheTTL ?? 60,\n \"images.minimumCacheTTL\",\n );\n const maximumRedirects = normalizeNonNegativeInteger(\n config?.maximumRedirects ?? 3,\n \"images.maximumRedirects\",\n );\n\n return Object.freeze({\n provider: config?.provider ?? \"auto\",\n path,\n domains: Object.freeze([\n ...new Set(\n (config?.domains ?? []).map((domain) => domain.trim().toLowerCase()).filter(Boolean),\n ),\n ]),\n remotePatterns: Object.freeze(\n (config?.remotePatterns ?? []).map((pattern) => normalizeRemotePattern(pattern)),\n ),\n localPatterns: Object.freeze(\n (config?.localPatterns ?? [{ pathname: \"/**\" }]).map((pattern) =>\n normalizeLocalPattern(pattern),\n ),\n ),\n deviceSizes: Object.freeze(deviceSizes),\n imageSizes: Object.freeze(imageSizes),\n qualities: Object.freeze(qualities),\n formats: Object.freeze(formats),\n minimumCacheTTL,\n maximumResponseBody: parseSize(\n config?.maximumResponseBody ?? \"10mb\",\n \"images.maximumResponseBody\",\n ),\n maximumRedirects,\n dangerouslyAllowSVG: config?.dangerouslyAllowSVG ?? false,\n dangerouslyAllowLocalIP: config?.dangerouslyAllowLocalIP ?? false,\n });\n}\n\nexport function getPublicFarmImageConfig(\n config: Pick<ResolvedFarmImageConfig, keyof PublicFarmImageConfig>,\n): PublicFarmImageConfig {\n return {\n provider: config.provider,\n path: config.path,\n deviceSizes: config.deviceSizes,\n imageSizes: config.imageSizes,\n qualities: config.qualities,\n formats: config.formats,\n };\n}\n\nfunction normalizeImagePath(value: string): string {\n const path = value.trim().replace(/\\/+$/, \"\") || \"/\";\n if (!path.startsWith(\"/\") || path.includes(\"?\") || path.includes(\"#\")) {\n throw new TypeError(\"images.path must be an absolute pathname without a query or hash\");\n }\n return path;\n}\n\nfunction normalizeIntegerList(values: readonly number[], name: string, max?: number): number[] {\n if (values.length === 0) {\n throw new TypeError(`${name} must contain at least one value`);\n }\n\n const normalized = [...new Set(values)].sort((left, right) => left - right);\n for (const value of normalized) {\n if (!Number.isSafeInteger(value) || value <= 0 || (max !== undefined && value > max)) {\n throw new TypeError(\n `${name} must contain positive integers${max ? ` no greater than ${max}` : \"\"}`,\n );\n }\n }\n return normalized;\n}\n\nfunction normalizeNonNegativeInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${name} must be a non-negative safe integer`);\n }\n return value;\n}\n\nfunction parseSize(value: number | string, name: string): number {\n if (typeof value === \"number\") {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${name} must be a positive safe integer`);\n }\n return value;\n }\n\n const match = value\n .trim()\n .toLowerCase()\n .match(/^(\\d+(?:\\.\\d+)?)\\s*(b|kb|mb|gb|kib|mib|gib)$/);\n if (!match) {\n throw new TypeError(`${name} must be bytes or a size string such as \"5mb\"`);\n }\n\n const bytes = Number(match[1]) * SIZE_UNITS[match[2]];\n if (!Number.isSafeInteger(bytes) || bytes <= 0) {\n throw new TypeError(`${name} must resolve to a positive safe integer`);\n }\n return bytes;\n}\n\nfunction normalizeRemotePattern(pattern: FarmImageRemotePattern): FarmImageRemotePattern {\n const hostname = pattern.hostname.trim().toLowerCase();\n if (!hostname || hostname.includes(\"/\") || hostname.includes(\":\")) {\n throw new TypeError(\"images.remotePatterns[].hostname must be a hostname or wildcard hostname\");\n }\n if (pattern.pathname && !pattern.pathname.startsWith(\"/\")) {\n throw new TypeError(\"images.remotePatterns[].pathname must start with /\");\n }\n if (pattern.search && !pattern.search.startsWith(\"?\")) {\n throw new TypeError(\"images.remotePatterns[].search must start with ?\");\n }\n return Object.freeze({ ...pattern, hostname });\n}\n\nfunction normalizeLocalPattern(pattern: FarmImageLocalPattern): FarmImageLocalPattern {\n if (!pattern.pathname.startsWith(\"/\")) {\n throw new TypeError(\"images.localPatterns[].pathname must start with /\");\n }\n if (pattern.search && !pattern.search.startsWith(\"?\")) {\n throw new TypeError(\"images.localPatterns[].search must start with ?\");\n }\n return Object.freeze({ ...pattern });\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,158 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/server-fn-client.ts
6
+ import { useCallback, useMemo, useRef, useState } from "react";
7
+ function useServerFn(serverFn, options = {}) {
8
+ const { initialResult = null, resetOnSubmit = true } = options;
9
+ const callbacksRef = useRef({});
10
+ const requestIdRef = useRef(0);
11
+ const initialState = {
12
+ pendingCount: 0,
13
+ status: "idle",
14
+ result: initialResult,
15
+ error: null
16
+ };
17
+ const stateRef = useRef(initialState);
18
+ const [state, setState] = useState(initialState);
19
+ const setActionState = useCallback(
20
+ (value) => {
21
+ setState((current) => {
22
+ const next = typeof value === "function" ? value(current) : value;
23
+ stateRef.current = next;
24
+ return next;
25
+ });
26
+ },
27
+ []
28
+ );
29
+ callbacksRef.current = {
30
+ onError: options.onError,
31
+ onSettled: options.onSettled,
32
+ onSuccess: options.onSuccess,
33
+ throwOnFormError: options.throwOnFormError
34
+ };
35
+ const submit = useCallback(
36
+ async (input) => {
37
+ const requestId = ++requestIdRef.current;
38
+ const formData = isFormData(input) ? input : void 0;
39
+ const previousResult = stateRef.current.result;
40
+ const optimisticResult = options.optimistic?.({
41
+ input,
42
+ formData,
43
+ current: previousResult
44
+ });
45
+ const hasOptimisticResult = optimisticResult !== void 0;
46
+ setActionState((current) => ({
47
+ pendingCount: current.pendingCount + 1,
48
+ status: "pending",
49
+ result: hasOptimisticResult ? optimisticResult : resetOnSubmit ? null : current.result,
50
+ error: null
51
+ }));
52
+ try {
53
+ const result = await serverFn(input);
54
+ const isLatestRequest = requestId === requestIdRef.current;
55
+ setActionState((current) => {
56
+ const pendingCount = Math.max(0, current.pendingCount - 1);
57
+ if (!isLatestRequest) {
58
+ return {
59
+ ...current,
60
+ pendingCount,
61
+ status: pendingCount > 0 ? "pending" : current.status
62
+ };
63
+ }
64
+ return {
65
+ pendingCount,
66
+ status: pendingCount > 0 ? "pending" : "success",
67
+ result,
68
+ error: null
69
+ };
70
+ });
71
+ if (isLatestRequest) {
72
+ callbacksRef.current.onSuccess?.(result);
73
+ callbacksRef.current.onSettled?.(result, null);
74
+ }
75
+ return result;
76
+ } catch (cause) {
77
+ const error = normalizeServerFnError(cause);
78
+ const isLatestRequest = requestId === requestIdRef.current;
79
+ setActionState((current) => {
80
+ const pendingCount = Math.max(0, current.pendingCount - 1);
81
+ if (!isLatestRequest) {
82
+ return {
83
+ ...current,
84
+ pendingCount,
85
+ status: pendingCount > 0 ? "pending" : current.status
86
+ };
87
+ }
88
+ return {
89
+ pendingCount,
90
+ status: pendingCount > 0 ? "pending" : "error",
91
+ result: hasOptimisticResult && options.rollbackOnError ? previousResult : resetOnSubmit ? null : current.result,
92
+ error
93
+ };
94
+ });
95
+ if (isLatestRequest) {
96
+ callbacksRef.current.onError?.(error);
97
+ callbacksRef.current.onSettled?.(null, error);
98
+ }
99
+ throw error;
100
+ }
101
+ },
102
+ [options.optimistic, options.rollbackOnError, resetOnSubmit, serverFn, setActionState]
103
+ );
104
+ const formAction = useCallback(
105
+ async (formData) => {
106
+ try {
107
+ await submit(formData);
108
+ } catch (error) {
109
+ if (callbacksRef.current.throwOnFormError) {
110
+ throw error;
111
+ }
112
+ }
113
+ },
114
+ [submit]
115
+ );
116
+ const reset = useCallback(() => {
117
+ requestIdRef.current += 1;
118
+ setActionState({
119
+ pendingCount: 0,
120
+ status: "idle",
121
+ result: initialResult,
122
+ error: null
123
+ });
124
+ }, [initialResult, setActionState]);
125
+ return useMemo(
126
+ () => ({
127
+ pending: state.pendingCount > 0,
128
+ status: state.status,
129
+ result: state.result,
130
+ error: state.error,
131
+ submit,
132
+ formAction,
133
+ reset
134
+ }),
135
+ [formAction, reset, state.error, state.pendingCount, state.result, state.status, submit]
136
+ );
137
+ }
138
+ __name(useServerFn, "useServerFn");
139
+ function normalizeServerFnError(error) {
140
+ if (error instanceof Error) return error;
141
+ const normalized = new Error(typeof error === "string" ? error : "Server function failed");
142
+ normalized.cause = error;
143
+ return normalized;
144
+ }
145
+ __name(normalizeServerFnError, "normalizeServerFnError");
146
+ function isFormData(value) {
147
+ if (!value || typeof value !== "object") return false;
148
+ if (typeof FormData !== "undefined" && value instanceof FormData) {
149
+ return true;
150
+ }
151
+ return Object.prototype.toString.call(value) === "[object FormData]" && typeof value.entries === "function";
152
+ }
153
+ __name(isFormData, "isFormData");
154
+
155
+ export {
156
+ useServerFn
157
+ };
158
+ //# sourceMappingURL=chunk-GZP5W4K3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server-fn-client.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useRef, useState } from \"react\";\nimport type { ServerFn } from \"./server-fn\";\n\nexport type ServerFnActionStatus = \"idle\" | \"pending\" | \"success\" | \"error\";\n\nexport type ServerFnSubmit<TInput, TResult> = [unknown] extends [TInput]\n ? (input?: TInput | FormData) => Promise<TResult>\n : (input: TInput | FormData) => Promise<TResult>;\n\nexport type ServerFnOptimisticContext<TInput, TResult> = {\n input: TInput | FormData | undefined;\n formData?: FormData;\n current: TResult | null;\n};\n\nexport type UseServerFnOptions<\n TResult,\n TError extends Error = Error,\n TInput = unknown,\n> = {\n initialResult?: TResult | null;\n resetOnSubmit?: boolean;\n throwOnFormError?: boolean;\n optimistic?: (context: ServerFnOptimisticContext<TInput, TResult>) => TResult | null | undefined;\n rollbackOnError?: boolean;\n onSuccess?: (result: TResult) => void;\n onError?: (error: TError) => void;\n onSettled?: (result: TResult | null, error: TError | null) => void;\n};\n\nexport type UseServerFnReturn<TInput, TResult, TError extends Error = Error> = {\n pending: boolean;\n status: ServerFnActionStatus;\n result: TResult | null;\n error: TError | null;\n submit: ServerFnSubmit<TInput, TResult>;\n formAction: (formData: FormData) => Promise<void>;\n reset: () => void;\n};\n\ntype ServerFnActionState<TResult, TError extends Error> = {\n pendingCount: number;\n status: ServerFnActionStatus;\n result: TResult | null;\n error: TError | null;\n};\n\ntype ServerFnActionCallbacks<TResult, TError extends Error> = Pick<\n UseServerFnOptions<TResult, TError, unknown>,\n \"onError\" | \"onSettled\" | \"onSuccess\" | \"throwOnFormError\"\n>;\n\nexport function useServerFn<TInput, TResult, TError extends Error = Error>(\n serverFn: ServerFn<TInput, TResult>,\n options: UseServerFnOptions<TResult, TError, TInput> = {},\n): UseServerFnReturn<TInput, TResult, TError> {\n const { initialResult = null, resetOnSubmit = true } = options;\n const callbacksRef = useRef<ServerFnActionCallbacks<TResult, TError>>({});\n const requestIdRef = useRef(0);\n const initialState: ServerFnActionState<TResult, TError> = {\n pendingCount: 0,\n status: \"idle\",\n result: initialResult,\n error: null,\n };\n const stateRef = useRef<ServerFnActionState<TResult, TError>>(initialState);\n const [state, setState] = useState<ServerFnActionState<TResult, TError>>(initialState);\n const setActionState = useCallback(\n (\n value:\n | ServerFnActionState<TResult, TError>\n | ((\n current: ServerFnActionState<TResult, TError>,\n ) => ServerFnActionState<TResult, TError>),\n ) => {\n setState((current) => {\n const next = typeof value === \"function\" ? value(current) : value;\n stateRef.current = next;\n return next;\n });\n },\n [],\n );\n\n callbacksRef.current = {\n onError: options.onError,\n onSettled: options.onSettled,\n onSuccess: options.onSuccess,\n throwOnFormError: options.throwOnFormError,\n };\n\n const submit = useCallback(\n async (input?: TInput | FormData) => {\n const requestId = ++requestIdRef.current;\n const formData = isFormData(input) ? input : undefined;\n const previousResult = stateRef.current.result;\n const optimisticResult = options.optimistic?.({\n input,\n formData,\n current: previousResult,\n });\n const hasOptimisticResult = optimisticResult !== undefined;\n\n setActionState((current) => ({\n pendingCount: current.pendingCount + 1,\n status: \"pending\",\n result: hasOptimisticResult\n ? optimisticResult\n : resetOnSubmit\n ? null\n : current.result,\n error: null,\n }));\n\n try {\n const result = await serverFn(input as TInput | FormData);\n const isLatestRequest = requestId === requestIdRef.current;\n\n setActionState((current) => {\n const pendingCount = Math.max(0, current.pendingCount - 1);\n\n if (!isLatestRequest) {\n return {\n ...current,\n pendingCount,\n status: pendingCount > 0 ? \"pending\" : current.status,\n };\n }\n\n return {\n pendingCount,\n status: pendingCount > 0 ? \"pending\" : \"success\",\n result,\n error: null,\n };\n });\n\n if (isLatestRequest) {\n callbacksRef.current.onSuccess?.(result);\n callbacksRef.current.onSettled?.(result, null);\n }\n\n return result;\n } catch (cause) {\n const error = normalizeServerFnError(cause) as TError;\n const isLatestRequest = requestId === requestIdRef.current;\n\n setActionState((current) => {\n const pendingCount = Math.max(0, current.pendingCount - 1);\n\n if (!isLatestRequest) {\n return {\n ...current,\n pendingCount,\n status: pendingCount > 0 ? \"pending\" : current.status,\n };\n }\n\n return {\n pendingCount,\n status: pendingCount > 0 ? \"pending\" : \"error\",\n result:\n hasOptimisticResult && options.rollbackOnError\n ? previousResult\n : resetOnSubmit\n ? null\n : current.result,\n error,\n };\n });\n\n if (isLatestRequest) {\n callbacksRef.current.onError?.(error);\n callbacksRef.current.onSettled?.(null, error);\n }\n\n throw error;\n }\n },\n [options.optimistic, options.rollbackOnError, resetOnSubmit, serverFn, setActionState],\n ) as ServerFnSubmit<TInput, TResult>;\n\n const formAction = useCallback(\n async (formData: FormData) => {\n try {\n await submit(formData as TInput | FormData);\n } catch (error) {\n if (callbacksRef.current.throwOnFormError) {\n throw error;\n }\n }\n },\n [submit],\n );\n\n const reset = useCallback(() => {\n requestIdRef.current += 1;\n setActionState({\n pendingCount: 0,\n status: \"idle\",\n result: initialResult,\n error: null,\n });\n }, [initialResult, setActionState]);\n\n return useMemo(\n () => ({\n pending: state.pendingCount > 0,\n status: state.status,\n result: state.result,\n error: state.error,\n submit,\n formAction,\n reset,\n }),\n [formAction, reset, state.error, state.pendingCount, state.result, state.status, submit],\n );\n}\n\nfunction normalizeServerFnError(error: unknown) {\n if (error instanceof Error) return error;\n\n const normalized = new Error(typeof error === \"string\" ? error : \"Server function failed\");\n (normalized as Error & { cause?: unknown }).cause = error;\n return normalized;\n}\n\nfunction isFormData(value: unknown): value is FormData {\n if (!value || typeof value !== \"object\") return false;\n\n if (typeof FormData !== \"undefined\" && value instanceof FormData) {\n return true;\n }\n\n return (\n Object.prototype.toString.call(value) === \"[object FormData]\" &&\n typeof (value as { entries?: unknown }).entries === \"function\"\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,51 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/query/params.ts
6
+ function normalizeParams(input) {
7
+ if (input instanceof URLSearchParams) {
8
+ const params = {};
9
+ input.forEach((value, key) => {
10
+ params[key] = value;
11
+ });
12
+ return params;
13
+ }
14
+ return input;
15
+ }
16
+ __name(normalizeParams, "normalizeParams");
17
+ async function loadRouteParams(input, parsers, options = {}) {
18
+ const resolved = await Promise.resolve(input);
19
+ const params = normalizeParams(resolved);
20
+ const result = {};
21
+ for (const [key, parser] of Object.entries(parsers)) {
22
+ const raw = params[key] ?? "";
23
+ const parsed = parser.parse(raw);
24
+ if (parsed === null && options.strict) {
25
+ throw new Error(`Failed to parse route param "${key}" with value "${raw}"`);
26
+ }
27
+ result[key] = parsed;
28
+ }
29
+ return result;
30
+ }
31
+ __name(loadRouteParams, "loadRouteParams");
32
+ function parseRouteParams(input, parsers, options = {}) {
33
+ const params = normalizeParams(input);
34
+ const result = {};
35
+ for (const [key, parser] of Object.entries(parsers)) {
36
+ const raw = params[key] ?? "";
37
+ const parsed = parser.parse(raw);
38
+ if (parsed === null && options.strict) {
39
+ throw new Error(`Failed to parse route param "${key}" with value "${raw}"`);
40
+ }
41
+ result[key] = parsed;
42
+ }
43
+ return result;
44
+ }
45
+ __name(parseRouteParams, "parseRouteParams");
46
+
47
+ export {
48
+ loadRouteParams,
49
+ parseRouteParams
50
+ };
51
+ //# sourceMappingURL=chunk-H2FA2SBS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/query/params.ts"],"sourcesContent":["import type { Parser } from \"./parsers\";\n\nexport type RouteParamsInput =\n | Record<string, string | undefined>\n | URLSearchParams\n | Promise<Record<string, string | undefined> | URLSearchParams>;\n\nfunction normalizeParams(input: Record<string, string | undefined> | URLSearchParams) {\n if (input instanceof URLSearchParams) {\n const params: Record<string, string | undefined> = {};\n input.forEach((value, key) => {\n params[key] = value;\n });\n return params;\n }\n return input;\n}\n\nexport async function loadRouteParams<T extends Record<string, Parser<any>>>(\n input: RouteParamsInput,\n parsers: T,\n options: { strict?: boolean } = {},\n): Promise<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> }> {\n const resolved = await Promise.resolve(input);\n const params = normalizeParams(resolved);\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const raw = params[key] ?? \"\";\n const parsed = parser.parse(raw);\n if (parsed === null && options.strict) {\n throw new Error(`Failed to parse route param \"${key}\" with value \"${raw}\"`);\n }\n result[key as keyof T] = parsed as ReturnType<T[typeof key][\"parse\"]>;\n }\n\n return result;\n}\n\nexport function parseRouteParams<T extends Record<string, Parser<any>>>(\n input: Record<string, string | undefined> | URLSearchParams,\n parsers: T,\n options: { strict?: boolean } = {},\n): { [K in keyof T]: ReturnType<T[K][\"parse\"]> } {\n const params = normalizeParams(input);\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const raw = params[key] ?? \"\";\n const parsed = parser.parse(raw);\n if (parsed === null && options.strict) {\n throw new Error(`Failed to parse route param \"${key}\" with value \"${raw}\"`);\n }\n result[key as keyof T] = parsed as ReturnType<T[typeof key][\"parse\"]>;\n }\n\n return result;\n}\n"],"mappings":";;;;;AAOA,SAAS,gBAAgB,OAA6D;AACpF,MAAI,iBAAiB,iBAAiB;AACpC,UAAM,SAA6C,CAAC;AACpD,UAAM,QAAQ,CAAC,OAAO,QAAQ;AAC5B,aAAO,GAAG,IAAI;AAAA,IAChB,CAAC;AACD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AATS;AAWT,eAAsB,gBACpB,OACA,SACA,UAAgC,CAAC,GACuB;AACxD,QAAM,WAAW,MAAM,QAAQ,QAAQ,KAAK;AAC5C,QAAM,SAAS,gBAAgB,QAAQ;AACvC,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,MAAM,OAAO,GAAG,KAAK;AAC3B,UAAM,SAAS,OAAO,MAAM,GAAG;AAC/B,QAAI,WAAW,QAAQ,QAAQ,QAAQ;AACrC,YAAM,IAAI,MAAM,gCAAgC,GAAG,iBAAiB,GAAG,GAAG;AAAA,IAC5E;AACA,WAAO,GAAc,IAAI;AAAA,EAC3B;AAEA,SAAO;AACT;AAnBsB;AAqBf,SAAS,iBACd,OACA,SACA,UAAgC,CAAC,GACc;AAC/C,QAAM,SAAS,gBAAgB,KAAK;AACpC,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,MAAM,OAAO,GAAG,KAAK;AAC3B,UAAM,SAAS,OAAO,MAAM,GAAG;AAC/B,QAAI,WAAW,QAAQ,QAAQ,QAAQ;AACrC,YAAM,IAAI,MAAM,gCAAgC,GAAG,iBAAiB,GAAG,GAAG;AAAA,IAC5E;AACA,WAAO,GAAc,IAAI;AAAA,EAC3B;AAEA,SAAO;AACT;AAlBgB;","names":[]}
@@ -0,0 +1,211 @@
1
+ import {
2
+ getFarmClientDataCache
3
+ } from "./chunk-6XDUHOEM.mjs";
4
+ import {
5
+ isFarmServerQueryResult
6
+ } from "./chunk-SCFX4UTD.mjs";
7
+ import {
8
+ createFarmCacheKey
9
+ } from "./chunk-4PTK6KT4.mjs";
10
+ import {
11
+ __name
12
+ } from "./chunk-CGILA3WO.mjs";
13
+
14
+ // src/server-query-client.ts
15
+ import { useCallback, useEffect, useRef, useSyncExternalStore } from "react";
16
+ var FARM_SERVER_QUERY_CLIENT_STATE = /* @__PURE__ */ Symbol.for("farm.serverQueryClientState");
17
+ var serverQueryClientGlobal = globalThis;
18
+ var serverQueryClientState = serverQueryClientGlobal[FARM_SERVER_QUERY_CLIENT_STATE] ?? (serverQueryClientGlobal[FARM_SERVER_QUERY_CLIENT_STATE] = {
19
+ functionIds: /* @__PURE__ */ new WeakMap(),
20
+ nextFunctionId: 0,
21
+ active: []
22
+ });
23
+ function beginFarmServerQueryAction(actionId, args) {
24
+ const active = serverQueryClientState.active.at(-1);
25
+ return {
26
+ actionId,
27
+ args,
28
+ provisionalKey: active?.provisionalKey
29
+ };
30
+ }
31
+ __name(beginFarmServerQueryAction, "beginFarmServerQueryAction");
32
+ function completeFarmServerQueryAction(invocation, value) {
33
+ if (!isFarmServerQueryResult(value)) return value;
34
+ const cache = getFarmClientDataCache();
35
+ const metadata = value.__farmServerQuery;
36
+ if (invocation.provisionalKey) {
37
+ cache.alias(invocation.provisionalKey, metadata.key);
38
+ }
39
+ cache.set(metadata.key, {
40
+ data: value.data,
41
+ updatedAt: metadata.updatedAt,
42
+ staleAt: metadata.staleTime === false ? Number.POSITIVE_INFINITY : metadata.updatedAt + metadata.staleTime,
43
+ status: "success",
44
+ error: null,
45
+ fetching: false
46
+ });
47
+ return value.data;
48
+ }
49
+ __name(completeFarmServerQueryAction, "completeFarmServerQueryAction");
50
+ async function fetchServerQuery(query, input, options = {}) {
51
+ const cache = getFarmClientDataCache();
52
+ const provisionalKey = createServerQueryCallKey(query, input);
53
+ const entry = cache.get(provisionalKey);
54
+ const stale = cache.isStale(provisionalKey);
55
+ const inflight = cache.getInflight(provisionalKey);
56
+ if (inflight) return inflight;
57
+ if (!options.force && entry && !stale && entry.status !== "error") {
58
+ return entry.data;
59
+ }
60
+ if (!options.force && entry && stale && entry.status !== "pending" && entry.status !== "error" && (options.swr ?? true)) {
61
+ void executeServerQuery(query, input, provisionalKey, options).catch(() => void 0);
62
+ return entry.data;
63
+ }
64
+ return executeServerQuery(query, input, provisionalKey, options);
65
+ }
66
+ __name(fetchServerQuery, "fetchServerQuery");
67
+ function prefetchServerQuery(query, input, options = {}) {
68
+ return fetchServerQuery(query, input, options);
69
+ }
70
+ __name(prefetchServerQuery, "prefetchServerQuery");
71
+ function useServerQuery(query, input, options = {}) {
72
+ const cache = getFarmClientDataCache();
73
+ const key = createServerQueryCallKey(query, input);
74
+ const inputRef = useRef(input);
75
+ const optionsRef = useRef(options);
76
+ const mountedKeyRef = useRef();
77
+ inputRef.current = input;
78
+ optionsRef.current = options;
79
+ const subscribe = useCallback(
80
+ (listener) => cache.subscribe(key, listener),
81
+ [cache, key]
82
+ );
83
+ const getSnapshot = useCallback(() => cache.get(key), [cache, key]);
84
+ const entry = useSyncExternalStore(subscribe, getSnapshot, () => void 0);
85
+ const run = useCallback(
86
+ (force = false) => fetchServerQuery(query, inputRef.current, {
87
+ ...optionsRef.current,
88
+ force
89
+ }),
90
+ [query]
91
+ );
92
+ useEffect(() => {
93
+ if (options.enabled === false) return;
94
+ const firstReadForKey = mountedKeyRef.current !== key;
95
+ if (firstReadForKey) mountedKeyRef.current = key;
96
+ if (firstReadForKey && (!entry || cache.isStale(key)) || entry?.invalidatedAt !== void 0 && !entry.fetching) {
97
+ void run().catch(() => void 0);
98
+ }
99
+ }, [cache, entry, key, options.enabled, run]);
100
+ useEffect(() => {
101
+ if (options.enabled === false || typeof window === "undefined") return;
102
+ const refreshIfStale = /* @__PURE__ */ __name(() => {
103
+ if (cache.isStale(key)) void run().catch(() => void 0);
104
+ }, "refreshIfStale");
105
+ const onFocus = options.refetchOnWindowFocus === false ? void 0 : refreshIfStale;
106
+ const onOnline = options.refetchOnReconnect === false ? void 0 : refreshIfStale;
107
+ if (onFocus) window.addEventListener("focus", onFocus);
108
+ if (onOnline) window.addEventListener("online", onOnline);
109
+ return () => {
110
+ if (onFocus) window.removeEventListener("focus", onFocus);
111
+ if (onOnline) window.removeEventListener("online", onOnline);
112
+ };
113
+ }, [cache, key, options.enabled, options.refetchOnReconnect, options.refetchOnWindowFocus, run]);
114
+ const status = entry?.status ?? (entry ? "success" : "idle");
115
+ const fetching = entry?.fetching ?? false;
116
+ return {
117
+ data: entry?.data,
118
+ error: entry?.error ?? null,
119
+ status,
120
+ pending: status === "pending" && (entry?.updatedAt ?? 0) === 0,
121
+ fetching,
122
+ stale: cache.isStale(key),
123
+ refetch: /* @__PURE__ */ __name(() => run(true), "refetch")
124
+ };
125
+ }
126
+ __name(useServerQuery, "useServerQuery");
127
+ function createServerQueryCallKey(query, input) {
128
+ let id = serverQueryClientState.functionIds.get(query);
129
+ if (!id) {
130
+ id = ++serverQueryClientState.nextFunctionId;
131
+ serverQueryClientState.functionIds.set(query, id);
132
+ }
133
+ return createFarmCacheKey(["server-query-call", id, input]);
134
+ }
135
+ __name(createServerQueryCallKey, "createServerQueryCallKey");
136
+ async function executeServerQuery(query, input, provisionalKey, options) {
137
+ const cache = getFarmClientDataCache();
138
+ const inflight = cache.getInflight(provisionalKey);
139
+ if (inflight) return inflight;
140
+ const previous = cache.get(provisionalKey);
141
+ cache.set(provisionalKey, {
142
+ data: previous?.data,
143
+ updatedAt: previous?.updatedAt ?? 0,
144
+ staleAt: previous?.staleAt ?? 0,
145
+ gcAt: previous?.gcAt,
146
+ invalidatedAt: previous?.invalidatedAt,
147
+ status: "pending",
148
+ error: null,
149
+ fetching: true
150
+ });
151
+ const promise = (async () => {
152
+ try {
153
+ serverQueryClientState.active.push({ provisionalKey });
154
+ let pending;
155
+ try {
156
+ pending = query(input);
157
+ } finally {
158
+ serverQueryClientState.active.pop();
159
+ }
160
+ const data = await pending;
161
+ const transported = cache.get(provisionalKey);
162
+ if (!transported || transported.fetching) {
163
+ const updatedAt = Date.now();
164
+ cache.set(provisionalKey, {
165
+ data,
166
+ updatedAt,
167
+ staleAt: options.staleTime === false ? Number.POSITIVE_INFINITY : updatedAt + (options.staleTime ?? 0),
168
+ status: "success",
169
+ error: null,
170
+ fetching: false
171
+ });
172
+ }
173
+ return data;
174
+ } catch (cause) {
175
+ const error = normalizeServerQueryError(cause);
176
+ const current = cache.get(provisionalKey);
177
+ cache.set(provisionalKey, {
178
+ data: current?.data,
179
+ updatedAt: current?.updatedAt ?? 0,
180
+ staleAt: current?.staleAt ?? 0,
181
+ gcAt: current?.gcAt,
182
+ invalidatedAt: current?.invalidatedAt,
183
+ status: "error",
184
+ error,
185
+ fetching: false
186
+ });
187
+ throw error;
188
+ } finally {
189
+ cache.deleteInflight(provisionalKey);
190
+ }
191
+ })();
192
+ cache.setInflight(provisionalKey, promise);
193
+ return promise;
194
+ }
195
+ __name(executeServerQuery, "executeServerQuery");
196
+ function normalizeServerQueryError(cause) {
197
+ if (cause instanceof Error) return cause;
198
+ const error = new Error(typeof cause === "string" ? cause : "Server query failed");
199
+ error.cause = cause;
200
+ return error;
201
+ }
202
+ __name(normalizeServerQueryError, "normalizeServerQueryError");
203
+
204
+ export {
205
+ beginFarmServerQueryAction,
206
+ completeFarmServerQueryAction,
207
+ fetchServerQuery,
208
+ prefetchServerQuery,
209
+ useServerQuery
210
+ };
211
+ //# sourceMappingURL=chunk-HXP3ZSPC.mjs.map