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

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 (254) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-runtime.d.mts +2 -1
  3. package/dist/agent-runtime.d.ts +2 -1
  4. package/dist/api/route-manager.cjs +410 -15
  5. package/dist/api/route-manager.cjs.map +1 -1
  6. package/dist/api/route-manager.d.mts +4 -2
  7. package/dist/api/route-manager.d.ts +4 -2
  8. package/dist/api/route-manager.mjs +9 -8
  9. package/dist/api/runtime.cjs +748 -9
  10. package/dist/api/runtime.cjs.map +1 -1
  11. package/dist/api/runtime.d.mts +3 -16
  12. package/dist/api/runtime.d.ts +3 -16
  13. package/dist/api/runtime.mjs +8 -1
  14. package/dist/api.cjs +1243 -342
  15. package/dist/api.cjs.map +1 -1
  16. package/dist/api.d.mts +5 -147
  17. package/dist/api.d.ts +5 -147
  18. package/dist/api.mjs +51 -21
  19. package/dist/{app-CFRNJXP1.d.ts → app-BjN-da13.d.ts} +38 -3
  20. package/dist/{app-BiX4qb-d.d.mts → app-CakAr8Be.d.mts} +38 -3
  21. package/dist/app-markdown.cjs +1 -1
  22. package/dist/app-markdown.cjs.map +1 -1
  23. package/dist/app-markdown.d.mts +2 -1
  24. package/dist/app-markdown.d.ts +2 -1
  25. package/dist/app-markdown.mjs +1 -1
  26. package/dist/cache.cjs +414 -12
  27. package/dist/cache.cjs.map +1 -1
  28. package/dist/cache.d.mts +120 -6
  29. package/dist/cache.d.ts +120 -6
  30. package/dist/cache.mjs +11 -3
  31. package/dist/{chunk-Y7A27276.mjs → chunk-2CUKEMVR.mjs} +349 -15
  32. package/dist/chunk-2CUKEMVR.mjs.map +1 -0
  33. package/dist/{chunk-QF4PHCMA.mjs → chunk-2ED5Q2GH.mjs} +3 -3
  34. package/dist/chunk-2ED5Q2GH.mjs.map +1 -0
  35. package/dist/{chunk-GZP5W4K3.mjs → chunk-32W4QEJP.mjs} +1 -1
  36. package/dist/chunk-32W4QEJP.mjs.map +1 -0
  37. package/dist/{chunk-TRORP7E4.mjs → chunk-3U3ZUQAQ.mjs} +2 -2
  38. package/dist/{chunk-25D7G34K.mjs → chunk-65A7QIKI.mjs} +5 -5
  39. package/dist/{chunk-25D7G34K.mjs.map → chunk-65A7QIKI.mjs.map} +1 -1
  40. package/dist/{chunk-G3B5BRDY.mjs → chunk-AJWRO5WE.mjs} +539 -61
  41. package/dist/chunk-AJWRO5WE.mjs.map +1 -0
  42. package/dist/chunk-ALCLXXTY.mjs +187 -0
  43. package/dist/chunk-ALCLXXTY.mjs.map +1 -0
  44. package/dist/{chunk-CHFHNEMO.mjs → chunk-AOBXKNS5.mjs} +627 -84
  45. package/dist/chunk-AOBXKNS5.mjs.map +1 -0
  46. package/dist/{chunk-B6N4ZB2H.mjs → chunk-C2ROET2V.mjs} +3 -3
  47. package/dist/{chunk-JN3UU635.mjs → chunk-EJ7T4TPB.mjs} +2 -2
  48. package/dist/chunk-EJ7T4TPB.mjs.map +1 -0
  49. package/dist/{chunk-ZJQNATYV.mjs → chunk-FRPWCMMG.mjs} +3 -3
  50. package/dist/chunk-FRPWCMMG.mjs.map +1 -0
  51. package/dist/{chunk-QM6VV26B.mjs → chunk-GQVGIUSN.mjs} +3 -3
  52. package/dist/{chunk-QM6VV26B.mjs.map → chunk-GQVGIUSN.mjs.map} +1 -1
  53. package/dist/{chunk-UREJA4GZ.mjs → chunk-GXASWWJU.mjs} +1 -1
  54. package/dist/{chunk-UREJA4GZ.mjs.map → chunk-GXASWWJU.mjs.map} +1 -1
  55. package/dist/{chunk-3QJO55ZF.mjs → chunk-HNIQFZKB.mjs} +5 -3
  56. package/dist/{chunk-3QJO55ZF.mjs.map → chunk-HNIQFZKB.mjs.map} +1 -1
  57. package/dist/{chunk-PRNYWD7K.mjs → chunk-JDEOUK5V.mjs} +67 -239
  58. package/dist/chunk-JDEOUK5V.mjs.map +1 -0
  59. package/dist/{chunk-O3HADRW6.mjs → chunk-MIUW47JX.mjs} +2 -2
  60. package/dist/{chunk-O3HADRW6.mjs.map → chunk-MIUW47JX.mjs.map} +1 -1
  61. package/dist/{chunk-UHE2TTLK.mjs → chunk-NM3CRAAL.mjs} +9 -8
  62. package/dist/chunk-NM3CRAAL.mjs.map +1 -0
  63. package/dist/chunk-PFE6GMNE.mjs +603 -0
  64. package/dist/chunk-PFE6GMNE.mjs.map +1 -0
  65. package/dist/{chunk-S2XHZS7W.mjs → chunk-QGQX7SFC.mjs} +2 -2
  66. package/dist/chunk-QGQX7SFC.mjs.map +1 -0
  67. package/dist/{chunk-RKI6TN3A.mjs → chunk-QM746KUO.mjs} +9 -2
  68. package/dist/chunk-QM746KUO.mjs.map +1 -0
  69. package/dist/chunk-RBRLLZL5.mjs +81 -0
  70. package/dist/chunk-RBRLLZL5.mjs.map +1 -0
  71. package/dist/{chunk-HXP3ZSPC.mjs → chunk-SADGIRS2.mjs} +3 -3
  72. package/dist/{chunk-6XDUHOEM.mjs → chunk-TQAEEJB4.mjs} +3 -3
  73. package/dist/{chunk-AGS7UJ52.mjs → chunk-UB5UOSHB.mjs} +24 -12
  74. package/dist/chunk-UB5UOSHB.mjs.map +1 -0
  75. package/dist/{chunk-SXZTEK3V.mjs → chunk-UXUAWNO5.mjs} +2 -2
  76. package/dist/chunk-V3XURYJO.mjs +756 -0
  77. package/dist/chunk-V3XURYJO.mjs.map +1 -0
  78. package/dist/{chunk-TU4YJICB.mjs → chunk-VVKWFZAH.mjs} +41 -16
  79. package/dist/chunk-VVKWFZAH.mjs.map +1 -0
  80. package/dist/{chunk-JLWMCADZ.mjs → chunk-VY2UYN5R.mjs} +24 -4
  81. package/dist/chunk-VY2UYN5R.mjs.map +1 -0
  82. package/dist/{chunk-QFQRHRZS.mjs → chunk-W2CRQFF6.mjs} +151 -23
  83. package/dist/chunk-W2CRQFF6.mjs.map +1 -0
  84. package/dist/chunk-W4UIVMVI.mjs +10 -0
  85. package/dist/chunk-W4UIVMVI.mjs.map +1 -0
  86. package/dist/{chunk-Y2OJJD7R.mjs → chunk-XIVV5IWN.mjs} +7 -9
  87. package/dist/chunk-XIVV5IWN.mjs.map +1 -0
  88. package/dist/{chunk-OYXO65LI.mjs → chunk-YW7OBE6Q.mjs} +4 -4
  89. package/dist/chunk-YW7OBE6Q.mjs.map +1 -0
  90. package/dist/{chunk-YHU7SS6L.mjs → chunk-Z5CQMP54.mjs} +11 -11
  91. package/dist/{chunk-SOU3Q3ZA.mjs → chunk-ZZ57EH5Z.mjs} +1 -1
  92. package/dist/chunk-ZZ57EH5Z.mjs.map +1 -0
  93. package/dist/{client-D_yUjVhe.d.mts → client-BT1mFQas.d.mts} +55 -10
  94. package/dist/{client-Dkc03WP8.d.ts → client-Nn0q4eO4.d.ts} +55 -10
  95. package/dist/{client-plugins-BZnpeTGA.d.ts → client-plugins-Cw4qUGsw.d.ts} +7 -0
  96. package/dist/{client-plugins-g4bzuCmo.d.mts → client-plugins-DQQ1adXM.d.mts} +7 -0
  97. package/dist/client-plugins.d.mts +2 -1
  98. package/dist/client-plugins.d.ts +2 -1
  99. package/dist/client.cjs +922 -91
  100. package/dist/client.cjs.map +1 -1
  101. package/dist/client.d.mts +121 -3
  102. package/dist/client.d.ts +121 -3
  103. package/dist/client.mjs +23 -16
  104. package/dist/config.d.mts +2 -1
  105. package/dist/config.d.ts +2 -1
  106. package/dist/cron.cjs.map +1 -1
  107. package/dist/cron.mjs +1 -1
  108. package/dist/{devtools-AE4RVXCM.mjs → devtools-LVC3VB5P.mjs} +10 -10
  109. package/dist/{devtools-client-6WPY2AQU.mjs → devtools-client-3XRTBND5.mjs} +2 -11
  110. package/dist/devtools-client-3XRTBND5.mjs.map +1 -0
  111. package/dist/docs.cjs +14 -2
  112. package/dist/docs.cjs.map +1 -1
  113. package/dist/docs.mjs +10 -10
  114. package/dist/i18n/server.cjs +2 -2
  115. package/dist/i18n/server.cjs.map +1 -1
  116. package/dist/i18n/server.mjs +1 -1
  117. package/dist/index.cjs +2852 -463
  118. package/dist/index.cjs.map +1 -1
  119. package/dist/index.d.mts +13 -12
  120. package/dist/index.d.ts +13 -12
  121. package/dist/index.mjs +152 -109
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/integrations.d.mts +2 -1
  124. package/dist/integrations.d.ts +2 -1
  125. package/dist/internal/build-runtime.cjs +1616 -149
  126. package/dist/internal/build-runtime.cjs.map +1 -1
  127. package/dist/internal/build-runtime.d.mts +4 -3
  128. package/dist/internal/build-runtime.d.ts +4 -3
  129. package/dist/internal/build-runtime.mjs +27 -25
  130. package/dist/internal/client-runtime.cjs.map +1 -1
  131. package/dist/internal/client-runtime.mjs +1 -1
  132. package/dist/internal/config-runtime.cjs +13 -2
  133. package/dist/internal/config-runtime.cjs.map +1 -1
  134. package/dist/internal/config-runtime.d.mts +3 -2
  135. package/dist/internal/config-runtime.d.ts +3 -2
  136. package/dist/internal/config-runtime.mjs +9 -9
  137. package/dist/internal/production-runtime.cjs +285 -9
  138. package/dist/internal/production-runtime.cjs.map +1 -1
  139. package/dist/internal/production-runtime.d.mts +4 -4
  140. package/dist/internal/production-runtime.d.ts +4 -4
  141. package/dist/internal/production-runtime.mjs +10 -8
  142. package/dist/{metadata-DAXRaOHx.d.ts → metadata-BAPg_Nmo.d.ts} +1 -1
  143. package/dist/{metadata-C9NZxMDW.d.mts → metadata-_6i9oFG3.d.mts} +1 -1
  144. package/dist/middleware.cjs +2 -2
  145. package/dist/middleware.cjs.map +1 -1
  146. package/dist/middleware.d.mts +4 -3
  147. package/dist/middleware.d.ts +4 -3
  148. package/dist/middleware.mjs +3 -3
  149. package/dist/navigation.cjs +40 -15
  150. package/dist/navigation.cjs.map +1 -1
  151. package/dist/navigation.mjs +3 -3
  152. package/dist/{nitro-KME62MWG.mjs → nitro-QO5LV6QK.mjs} +11 -13
  153. package/dist/{nitro-KME62MWG.mjs.map → nitro-QO5LV6QK.mjs.map} +1 -1
  154. package/dist/plugin.cjs +1032 -92
  155. package/dist/plugin.cjs.map +1 -1
  156. package/dist/plugin.d.mts +2 -1
  157. package/dist/plugin.d.ts +2 -1
  158. package/dist/plugin.mjs +23 -21
  159. package/dist/{production-runtime-DRkCHUvJ.d.ts → production-runtime-BoJDc5mc.d.ts} +1 -1
  160. package/dist/{production-runtime-flrjp_nC.d.mts → production-runtime-DPfgMV9Y.d.mts} +1 -1
  161. package/dist/routes.cjs +276 -6
  162. package/dist/routes.cjs.map +1 -1
  163. package/dist/routes.d.mts +1 -1
  164. package/dist/routes.d.ts +1 -1
  165. package/dist/routes.mjs +4 -4
  166. package/dist/runtime-9nQjVM7X.d.mts +206 -0
  167. package/dist/runtime-DgeS2skB.d.ts +206 -0
  168. package/dist/server-action-security.cjs +28 -10
  169. package/dist/server-action-security.cjs.map +1 -1
  170. package/dist/server-action-security.d.mts +2 -1
  171. package/dist/server-action-security.d.ts +2 -1
  172. package/dist/server-action-security.mjs +2 -2
  173. package/dist/server-fn-client.cjs.map +1 -1
  174. package/dist/server-fn-client.d.mts +1 -0
  175. package/dist/server-fn-client.d.ts +1 -0
  176. package/dist/server-fn-client.mjs +1 -1
  177. package/dist/server-fn.cjs +785 -3
  178. package/dist/server-fn.cjs.map +1 -1
  179. package/dist/server-fn.d.mts +10 -1
  180. package/dist/server-fn.d.ts +10 -1
  181. package/dist/server-fn.mjs +6 -3
  182. package/dist/server-plugins.d.mts +3 -2
  183. package/dist/server-plugins.d.ts +3 -2
  184. package/dist/server-query-client.cjs +278 -7
  185. package/dist/server-query-client.cjs.map +1 -1
  186. package/dist/server-query-client.mjs +4 -4
  187. package/dist/server-query.cjs +381 -10
  188. package/dist/server-query.cjs.map +1 -1
  189. package/dist/server-query.mjs +5 -5
  190. package/dist/server.cjs +1233 -118
  191. package/dist/server.cjs.map +1 -1
  192. package/dist/server.d.mts +8 -7
  193. package/dist/server.d.ts +8 -7
  194. package/dist/server.mjs +53 -33
  195. package/dist/server.mjs.map +1 -1
  196. package/dist/testing.cjs +436 -25
  197. package/dist/testing.cjs.map +1 -1
  198. package/dist/testing.d.mts +4 -3
  199. package/dist/testing.d.ts +4 -3
  200. package/dist/testing.mjs +19 -18
  201. package/dist/testing.mjs.map +1 -1
  202. package/dist/transport-BmbGTXA5.d.mts +49 -0
  203. package/dist/transport-BmbGTXA5.d.ts +49 -0
  204. package/dist/{utils-DOXXivjL.d.mts → utils-CHXlMDkg.d.mts} +1 -1
  205. package/dist/{utils-DA1yo54_.d.ts → utils-Drsyz1Vj.d.ts} +1 -1
  206. package/dist/version.cjs +36 -0
  207. package/dist/version.cjs.map +1 -0
  208. package/dist/version.d.mts +3 -0
  209. package/dist/version.d.ts +3 -0
  210. package/dist/version.mjs +8 -0
  211. package/dist/version.mjs.map +1 -0
  212. package/dist/vite.cjs +1039 -93
  213. package/dist/vite.cjs.map +1 -1
  214. package/dist/vite.d.mts +2 -1
  215. package/dist/vite.d.ts +2 -1
  216. package/dist/vite.mjs +23 -21
  217. package/dist/workflows.cjs +6 -8
  218. package/dist/workflows.cjs.map +1 -1
  219. package/dist/workflows.mjs +1 -1
  220. package/package.json +12 -5
  221. package/types/api.d.ts +44 -0
  222. package/types/client.d.ts +220 -16
  223. package/dist/chunk-4PTK6KT4.mjs +0 -364
  224. package/dist/chunk-4PTK6KT4.mjs.map +0 -1
  225. package/dist/chunk-AGS7UJ52.mjs.map +0 -1
  226. package/dist/chunk-CHFHNEMO.mjs.map +0 -1
  227. package/dist/chunk-EVGBEZDF.mjs +0 -215
  228. package/dist/chunk-EVGBEZDF.mjs.map +0 -1
  229. package/dist/chunk-G3B5BRDY.mjs.map +0 -1
  230. package/dist/chunk-GZP5W4K3.mjs.map +0 -1
  231. package/dist/chunk-JLWMCADZ.mjs.map +0 -1
  232. package/dist/chunk-JN3UU635.mjs.map +0 -1
  233. package/dist/chunk-OYXO65LI.mjs.map +0 -1
  234. package/dist/chunk-PRNYWD7K.mjs.map +0 -1
  235. package/dist/chunk-QF4PHCMA.mjs.map +0 -1
  236. package/dist/chunk-QFQRHRZS.mjs.map +0 -1
  237. package/dist/chunk-RKI6TN3A.mjs.map +0 -1
  238. package/dist/chunk-S2XHZS7W.mjs.map +0 -1
  239. package/dist/chunk-SOU3Q3ZA.mjs.map +0 -1
  240. package/dist/chunk-TU4YJICB.mjs.map +0 -1
  241. package/dist/chunk-TXCFGOHW.mjs +0 -42
  242. package/dist/chunk-TXCFGOHW.mjs.map +0 -1
  243. package/dist/chunk-UHE2TTLK.mjs.map +0 -1
  244. package/dist/chunk-Y2OJJD7R.mjs.map +0 -1
  245. package/dist/chunk-Y7A27276.mjs.map +0 -1
  246. package/dist/chunk-ZJQNATYV.mjs.map +0 -1
  247. package/dist/devtools-client-6WPY2AQU.mjs.map +0 -1
  248. /package/dist/{chunk-TRORP7E4.mjs.map → chunk-3U3ZUQAQ.mjs.map} +0 -0
  249. /package/dist/{chunk-B6N4ZB2H.mjs.map → chunk-C2ROET2V.mjs.map} +0 -0
  250. /package/dist/{chunk-HXP3ZSPC.mjs.map → chunk-SADGIRS2.mjs.map} +0 -0
  251. /package/dist/{chunk-6XDUHOEM.mjs.map → chunk-TQAEEJB4.mjs.map} +0 -0
  252. /package/dist/{chunk-SXZTEK3V.mjs.map → chunk-UXUAWNO5.mjs.map} +0 -0
  253. /package/dist/{chunk-YHU7SS6L.mjs.map → chunk-Z5CQMP54.mjs.map} +0 -0
  254. /package/dist/{devtools-AE4RVXCM.mjs.map → devtools-LVC3VB5P.mjs.map} +0 -0
package/dist/api.d.mts CHANGED
@@ -1,157 +1,15 @@
1
+ export { A as APIRouteMatch, c as APIRouteParamValue, b as APIRouteParams, q as AnyEndpointMiddleware, D as DELETE, e as EndpointErrorContracts, E as EndpointErrorDefinition, d as EndpointErrorDefinitions, f as EndpointFail, g as EndpointFailure, v as EndpointHandler, s as EndpointInvalidationContext, r as EndpointInvalidationTarget, t as EndpointInvalidations, p as EndpointMiddleware, l as EndpointMiddlewareContext, o as EndpointMiddlewareResult, u as EndpointOptions, j as EndpointParamValue, k as EndpointParams, G as GET, H as HEAD, I as InferEndpointMiddlewareContext, O as OPTIONS, y as PATCH, P as POST, x as PUT, T as TypedEndpoint, w as createEndpoint, i as invokeAPIRouteEndpoint, h as isEndpointFailure, a as isWebResponse, m as matchAPIRoute, n as normalizeRouteResponse } from './runtime-9nQjVM7X.mjs';
1
2
  export { APIRoute, APIRouteManager, APIRouteManagerOptions, API_ROUTE_METHODS } from './api/route-manager.mjs';
2
- export { n as APIClient, A as APIClientOptions, a as APIClientWithoutIntegrationsOptions, e as APIResult, C as CacheKey, h as CacheOptions, g as CachePolicy, l as ClientOptions, j as InvalidateOptions, I as InvalidateTarget, k as OptimisticOptions, O as OptimisticUpdate, R as RequestEvent, f as ResponseEvent, i as RetryOptions, m as RouteAPIClient, o as ServerAPIClient, S as ServerAPIClientOptions, b as ServerAPIClientWithoutIntegrationsOptions, d as StatusEvent, c as StatusPhase, p as createAPIClient, q as createServerAPIClient } from './client-D_yUjVhe.mjs';
3
+ export { r as APIClient, h as APIClientError, b as APIClientOptions, i as APIClientSystemError, c as APIClientWithoutIntegrationsOptions, g as APIResult, A as APIRouteRefMetadata, C as CacheKey, l as CacheOptions, k as CachePolicy, p as ClientOptions, a as FARM_API_ROUTE_META_SYMBOL, F as FARM_API_ROUTE_REF_SYMBOL, n as InvalidateOptions, I as InvalidateTarget, o as OptimisticOptions, O as OptimisticUpdate, R as RequestEvent, j as ResponseEvent, m as RetryOptions, q as RouteAPIClient, s as ServerAPIClient, S as ServerAPIClientOptions, d as ServerAPIClientWithoutIntegrationsOptions, f as StatusEvent, e as StatusPhase, t as createAPIClient, w as createServerAPIClient, v as getAPIRouteRefMetadata, u as isAPIRouteRef } from './client-BT1mFQas.mjs';
4
+ export { F as FarmAPIStream, c as FarmStreamResponse, a as MultipartField, M as MultipartSchema, b as MultipartValues, T as TypedFormData, e as isFarmAPIStream, d as isJSONStreamResponse, i as isMultipartSchema, j as jsonStream, m as multipart, r as readJSONStream, t as toFormData } from './transport-BmbGTXA5.mjs';
3
5
  import { Plugin } from 'vite';
4
- export { APIRouteMatch, APIRouteParamValue, APIRouteParams, invokeAPIRouteEndpoint, isWebResponse, matchAPIRoute, normalizeRouteResponse } from './api/runtime.mjs';
6
+ import './cache.mjs';
5
7
  import './route-runtime-DoOHzCAD.mjs';
6
8
  import './types-BH1lhg5G.mjs';
7
9
  import './runtime-DeAAZ6gO.mjs';
8
10
  import './resolver-DlOPpjkB.mjs';
9
11
  import './integration-api-CHT2OKAf.mjs';
10
12
  import './client-cache-D-EZ7XVW.mjs';
11
- import './cache.mjs';
12
-
13
- type AnySchema = {
14
- _output?: any;
15
- _input?: any;
16
- parse?: (data: unknown) => any;
17
- };
18
- type MaybePromise<T> = T | Promise<T>;
19
- type Simplify<T> = {
20
- [TKey in keyof T]: T[TKey];
21
- } & {};
22
- type UnionToIntersection<T> = (T extends unknown ? (value: T) => void : never) extends (value: infer TIntersection) => void ? TIntersection : never;
23
- type InferOutput<T> = T extends {
24
- _output: infer O;
25
- } ? O : T extends {
26
- parse: (data: unknown) => infer R;
27
- } ? R : unknown;
28
- type InferHeadersOutput<T> = [T] extends [never] ? Record<string, string> : T extends AnySchema ? InferOutput<T> : Record<string, string>;
29
- type EndpointParamValue = string | string[];
30
- type EndpointParams = Record<string, EndpointParamValue>;
31
- type EndpointMiddlewareContext<TContext extends object = {}, TBody = unknown, TQuery = unknown, THeaders = Record<string, string>> = {
32
- body: TBody;
33
- query: TQuery;
34
- headers: THeaders;
35
- request: Request;
36
- /** Context accumulated from middleware that ran earlier in the chain. */
37
- context: Readonly<TContext>;
38
- params: EndpointParams;
39
- };
40
- type EndpointMiddlewareResult<TProvidedContext extends object = object> = TProvidedContext | true | false | Response;
41
- /** A plain async function. No wrapper or `next()` callback is required. */
42
- type EndpointMiddleware<TProvidedContext extends object = object, TContext extends object = {}, TBody = unknown, TQuery = unknown, THeaders = Record<string, string>> = (ctx: EndpointMiddlewareContext<TContext, TBody, TQuery, THeaders>) => MaybePromise<EndpointMiddlewareResult<TProvidedContext>>;
43
- type AnyEndpointMiddleware = (ctx: EndpointMiddlewareContext<any, any, any, any>) => unknown;
44
- type ValidateEndpointMiddlewares<TMiddlewares extends readonly AnyEndpointMiddleware[]> = {
45
- readonly [TIndex in keyof TMiddlewares]: TMiddlewares[TIndex] extends AnyEndpointMiddleware ? [Awaited<ReturnType<TMiddlewares[TIndex]>>] extends [EndpointMiddlewareResult<object>] ? TMiddlewares[TIndex] : never : never;
46
- };
47
- type ContextFromMiddlewareResult<TResult> = Exclude<TResult, Response | boolean> extends infer TContext ? [TContext] extends [never] ? {} : TContext extends object ? TContext : {} : {};
48
- type ContextFromMiddleware<TMiddleware> = TMiddleware extends (...args: any[]) => infer TResult ? ContextFromMiddlewareResult<Awaited<TResult>> : {};
49
- type InferEndpointMiddlewareContext<TMiddlewares extends readonly ((...args: any[]) => any)[], TContext extends object = {}> = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest] ? TMiddleware extends (...args: any[]) => any ? TRest extends readonly ((...args: any[]) => any)[] ? InferEndpointMiddlewareContext<TRest, Simplify<TContext & ContextFromMiddleware<TMiddleware>>> : Simplify<TContext> : Simplify<TContext> : number extends TMiddlewares["length"] ? Simplify<TContext & UnionToIntersection<ContextFromMiddleware<TMiddlewares[number]>>> : Simplify<TContext>;
50
- type EndpointOptions<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TMiddlewares extends readonly AnyEndpointMiddleware[] = readonly []> = {
51
- method?: "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
52
- body?: TBody;
53
- query?: TQuery;
54
- headers?: THeaders;
55
- middleware?: TMiddlewares;
56
- /** @deprecated Use plain functions in `middleware` for Farm endpoint middleware. */
57
- use?: any[];
58
- };
59
- type EndpointHandler<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any, TContext extends object = {}> = (ctx: {
60
- body: InferOutput<TBody>;
61
- query: InferOutput<TQuery>;
62
- headers: InferHeadersOutput<THeaders>;
63
- request: Request;
64
- context: Readonly<TContext>;
65
- params: EndpointParams;
66
- }) => Promise<TResponse> | TResponse;
67
- type TypedEndpoint<TBody = never, TQuery = never, TResponse = any, THeaders = Record<string, string>> = {
68
- __types: {
69
- body: TBody;
70
- query: TQuery;
71
- headers: THeaders;
72
- response: TResponse;
73
- };
74
- __path?: string;
75
- __method?: string;
76
- } & ((options?: {
77
- body?: TBody;
78
- query?: TQuery;
79
- }) => Promise<TResponse>);
80
- type CreatedEndpoint<TBody extends AnySchema, TQuery extends AnySchema, THeaders extends AnySchema, TResponse> = TypedEndpoint<InferOutput<TBody>, InferOutput<TQuery>, Awaited<TResponse>, InferHeadersOutput<THeaders>>;
81
- type AnyEndpointOptions = EndpointOptions<AnySchema, AnySchema, AnySchema, readonly AnyEndpointMiddleware[]>;
82
- type EndpointBodyFromOptions<TOptions> = TOptions extends {
83
- body: infer TBody extends AnySchema;
84
- } ? TBody : never;
85
- type EndpointQueryFromOptions<TOptions> = TOptions extends {
86
- query: infer TQuery extends AnySchema;
87
- } ? TQuery : never;
88
- type EndpointHeadersFromOptions<TOptions> = TOptions extends {
89
- headers: infer THeaders extends AnySchema;
90
- } ? THeaders : never;
91
- type EndpointMiddlewaresFromOptions<TOptions> = TOptions extends {
92
- middleware: infer TMiddlewares extends readonly AnyEndpointMiddleware[];
93
- } ? TMiddlewares : readonly [];
94
- type MethodlessEndpointOptions = Omit<AnyEndpointOptions, "method">;
95
- type EndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandler<EndpointBodyFromOptions<TOptions>, EndpointQueryFromOptions<TOptions>, EndpointHeadersFromOptions<TOptions>, TResponse, InferEndpointMiddlewareContext<EndpointMiddlewaresFromOptions<TOptions>>>;
96
- type ValidatedEndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandlerFromOptions<TOptions, TResponse> & (EndpointMiddlewaresFromOptions<TOptions> extends ValidateEndpointMiddlewares<EndpointMiddlewaresFromOptions<TOptions>> ? unknown : never);
97
- type CreatedEndpointFromOptions<TOptions, TResponse> = CreatedEndpoint<EndpointBodyFromOptions<TOptions>, EndpointQueryFromOptions<TOptions>, EndpointHeadersFromOptions<TOptions>, TResponse>;
98
- /**
99
- * Create a Farm.js API endpoint
100
- *
101
- * Supports two patterns:
102
- * 1. File-based routing (path auto-inferred from file location):
103
- * `export const POST = createEndpoint({ method: 'POST', body: schema }, handler)`
104
- * `createEndpoint({ method: 'GET', query: z.object({...}) }, handler)`
105
- *
106
- * 2. Explicit path (for routes.ts at project root):
107
- * `createEndpoint('/api/hello', { method: 'GET', query: z.object({...}) }, handler)`
108
- */
109
- declare function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
110
- declare function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(path: string, options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
111
- declare function createEndpoint<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: EndpointOptions<TBody, TQuery, THeaders, readonly []>, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
112
- declare function createEndpoint<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(path: string, options: EndpointOptions<TBody, TQuery, THeaders, readonly []>, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
113
- /**
114
- * Convenience method for GET requests
115
- */
116
- declare function GET<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
117
- declare function GET<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
118
- declare function GET<TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<never, TQuery, THeaders, TResponse>): CreatedEndpoint<never, TQuery, THeaders, TResponse>;
119
- /**
120
- * Convenience method for HEAD requests
121
- */
122
- declare function HEAD<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
123
- declare function HEAD<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
124
- declare function HEAD<TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<never, TQuery, THeaders, TResponse>): CreatedEndpoint<never, TQuery, THeaders, TResponse>;
125
- /**
126
- * Convenience method for POST requests
127
- */
128
- declare function POST<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
129
- declare function POST<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
130
- declare function POST<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
131
- /**
132
- * Convenience method for PUT requests
133
- */
134
- declare function PUT<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
135
- declare function PUT<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
136
- declare function PUT<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
137
- /**
138
- * Convenience method for DELETE requests
139
- */
140
- declare function DELETE<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
141
- declare function DELETE<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
142
- declare function DELETE<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
143
- /**
144
- * Convenience method for PATCH requests
145
- */
146
- declare function PATCH<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
147
- declare function PATCH<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
148
- declare function PATCH<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
149
- /**
150
- * Convenience method for OPTIONS requests
151
- */
152
- declare function OPTIONS<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
153
- declare function OPTIONS<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
154
- declare function OPTIONS<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
155
13
 
156
14
  /**
157
15
  * Farm.js API Routes Vite Plugin
@@ -187,4 +45,4 @@ interface ApiRoute {
187
45
  */
188
46
  declare function farmApiPlugin(options?: FarmApiPluginOptions): Plugin;
189
47
 
190
- export { type AnyEndpointMiddleware, type ApiRoute, DELETE, type EndpointHandler, type EndpointMiddleware, type EndpointMiddlewareContext, type EndpointMiddlewareResult, type EndpointOptions, type EndpointParamValue, type EndpointParams, type FarmApiPluginOptions, GET, HEAD, type InferEndpointMiddlewareContext, OPTIONS, PATCH, POST, PUT, type TypedEndpoint, createEndpoint, farmApiPlugin };
48
+ export { type ApiRoute, type FarmApiPluginOptions, farmApiPlugin };
package/dist/api.d.ts CHANGED
@@ -1,157 +1,15 @@
1
+ export { A as APIRouteMatch, c as APIRouteParamValue, b as APIRouteParams, q as AnyEndpointMiddleware, D as DELETE, e as EndpointErrorContracts, E as EndpointErrorDefinition, d as EndpointErrorDefinitions, f as EndpointFail, g as EndpointFailure, v as EndpointHandler, s as EndpointInvalidationContext, r as EndpointInvalidationTarget, t as EndpointInvalidations, p as EndpointMiddleware, l as EndpointMiddlewareContext, o as EndpointMiddlewareResult, u as EndpointOptions, j as EndpointParamValue, k as EndpointParams, G as GET, H as HEAD, I as InferEndpointMiddlewareContext, O as OPTIONS, y as PATCH, P as POST, x as PUT, T as TypedEndpoint, w as createEndpoint, i as invokeAPIRouteEndpoint, h as isEndpointFailure, a as isWebResponse, m as matchAPIRoute, n as normalizeRouteResponse } from './runtime-DgeS2skB.js';
1
2
  export { APIRoute, APIRouteManager, APIRouteManagerOptions, API_ROUTE_METHODS } from './api/route-manager.js';
2
- export { n as APIClient, A as APIClientOptions, a as APIClientWithoutIntegrationsOptions, e as APIResult, C as CacheKey, h as CacheOptions, g as CachePolicy, l as ClientOptions, j as InvalidateOptions, I as InvalidateTarget, k as OptimisticOptions, O as OptimisticUpdate, R as RequestEvent, f as ResponseEvent, i as RetryOptions, m as RouteAPIClient, o as ServerAPIClient, S as ServerAPIClientOptions, b as ServerAPIClientWithoutIntegrationsOptions, d as StatusEvent, c as StatusPhase, p as createAPIClient, q as createServerAPIClient } from './client-Dkc03WP8.js';
3
+ export { r as APIClient, h as APIClientError, b as APIClientOptions, i as APIClientSystemError, c as APIClientWithoutIntegrationsOptions, g as APIResult, A as APIRouteRefMetadata, C as CacheKey, l as CacheOptions, k as CachePolicy, p as ClientOptions, a as FARM_API_ROUTE_META_SYMBOL, F as FARM_API_ROUTE_REF_SYMBOL, n as InvalidateOptions, I as InvalidateTarget, o as OptimisticOptions, O as OptimisticUpdate, R as RequestEvent, j as ResponseEvent, m as RetryOptions, q as RouteAPIClient, s as ServerAPIClient, S as ServerAPIClientOptions, d as ServerAPIClientWithoutIntegrationsOptions, f as StatusEvent, e as StatusPhase, t as createAPIClient, w as createServerAPIClient, v as getAPIRouteRefMetadata, u as isAPIRouteRef } from './client-Nn0q4eO4.js';
4
+ export { F as FarmAPIStream, c as FarmStreamResponse, a as MultipartField, M as MultipartSchema, b as MultipartValues, T as TypedFormData, e as isFarmAPIStream, d as isJSONStreamResponse, i as isMultipartSchema, j as jsonStream, m as multipart, r as readJSONStream, t as toFormData } from './transport-BmbGTXA5.js';
3
5
  import { Plugin } from 'vite';
4
- export { APIRouteMatch, APIRouteParamValue, APIRouteParams, invokeAPIRouteEndpoint, isWebResponse, matchAPIRoute, normalizeRouteResponse } from './api/runtime.js';
6
+ import './cache.js';
5
7
  import './route-runtime-DoOHzCAD.js';
6
8
  import './types-BH1lhg5G.js';
7
9
  import './runtime-B6GvwDS1.js';
8
10
  import './resolver-C6iecsDV.js';
9
11
  import './integration-api-CHT2OKAf.js';
10
12
  import './client-cache-CIlyBlmx.js';
11
- import './cache.js';
12
-
13
- type AnySchema = {
14
- _output?: any;
15
- _input?: any;
16
- parse?: (data: unknown) => any;
17
- };
18
- type MaybePromise<T> = T | Promise<T>;
19
- type Simplify<T> = {
20
- [TKey in keyof T]: T[TKey];
21
- } & {};
22
- type UnionToIntersection<T> = (T extends unknown ? (value: T) => void : never) extends (value: infer TIntersection) => void ? TIntersection : never;
23
- type InferOutput<T> = T extends {
24
- _output: infer O;
25
- } ? O : T extends {
26
- parse: (data: unknown) => infer R;
27
- } ? R : unknown;
28
- type InferHeadersOutput<T> = [T] extends [never] ? Record<string, string> : T extends AnySchema ? InferOutput<T> : Record<string, string>;
29
- type EndpointParamValue = string | string[];
30
- type EndpointParams = Record<string, EndpointParamValue>;
31
- type EndpointMiddlewareContext<TContext extends object = {}, TBody = unknown, TQuery = unknown, THeaders = Record<string, string>> = {
32
- body: TBody;
33
- query: TQuery;
34
- headers: THeaders;
35
- request: Request;
36
- /** Context accumulated from middleware that ran earlier in the chain. */
37
- context: Readonly<TContext>;
38
- params: EndpointParams;
39
- };
40
- type EndpointMiddlewareResult<TProvidedContext extends object = object> = TProvidedContext | true | false | Response;
41
- /** A plain async function. No wrapper or `next()` callback is required. */
42
- type EndpointMiddleware<TProvidedContext extends object = object, TContext extends object = {}, TBody = unknown, TQuery = unknown, THeaders = Record<string, string>> = (ctx: EndpointMiddlewareContext<TContext, TBody, TQuery, THeaders>) => MaybePromise<EndpointMiddlewareResult<TProvidedContext>>;
43
- type AnyEndpointMiddleware = (ctx: EndpointMiddlewareContext<any, any, any, any>) => unknown;
44
- type ValidateEndpointMiddlewares<TMiddlewares extends readonly AnyEndpointMiddleware[]> = {
45
- readonly [TIndex in keyof TMiddlewares]: TMiddlewares[TIndex] extends AnyEndpointMiddleware ? [Awaited<ReturnType<TMiddlewares[TIndex]>>] extends [EndpointMiddlewareResult<object>] ? TMiddlewares[TIndex] : never : never;
46
- };
47
- type ContextFromMiddlewareResult<TResult> = Exclude<TResult, Response | boolean> extends infer TContext ? [TContext] extends [never] ? {} : TContext extends object ? TContext : {} : {};
48
- type ContextFromMiddleware<TMiddleware> = TMiddleware extends (...args: any[]) => infer TResult ? ContextFromMiddlewareResult<Awaited<TResult>> : {};
49
- type InferEndpointMiddlewareContext<TMiddlewares extends readonly ((...args: any[]) => any)[], TContext extends object = {}> = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest] ? TMiddleware extends (...args: any[]) => any ? TRest extends readonly ((...args: any[]) => any)[] ? InferEndpointMiddlewareContext<TRest, Simplify<TContext & ContextFromMiddleware<TMiddleware>>> : Simplify<TContext> : Simplify<TContext> : number extends TMiddlewares["length"] ? Simplify<TContext & UnionToIntersection<ContextFromMiddleware<TMiddlewares[number]>>> : Simplify<TContext>;
50
- type EndpointOptions<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TMiddlewares extends readonly AnyEndpointMiddleware[] = readonly []> = {
51
- method?: "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
52
- body?: TBody;
53
- query?: TQuery;
54
- headers?: THeaders;
55
- middleware?: TMiddlewares;
56
- /** @deprecated Use plain functions in `middleware` for Farm endpoint middleware. */
57
- use?: any[];
58
- };
59
- type EndpointHandler<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any, TContext extends object = {}> = (ctx: {
60
- body: InferOutput<TBody>;
61
- query: InferOutput<TQuery>;
62
- headers: InferHeadersOutput<THeaders>;
63
- request: Request;
64
- context: Readonly<TContext>;
65
- params: EndpointParams;
66
- }) => Promise<TResponse> | TResponse;
67
- type TypedEndpoint<TBody = never, TQuery = never, TResponse = any, THeaders = Record<string, string>> = {
68
- __types: {
69
- body: TBody;
70
- query: TQuery;
71
- headers: THeaders;
72
- response: TResponse;
73
- };
74
- __path?: string;
75
- __method?: string;
76
- } & ((options?: {
77
- body?: TBody;
78
- query?: TQuery;
79
- }) => Promise<TResponse>);
80
- type CreatedEndpoint<TBody extends AnySchema, TQuery extends AnySchema, THeaders extends AnySchema, TResponse> = TypedEndpoint<InferOutput<TBody>, InferOutput<TQuery>, Awaited<TResponse>, InferHeadersOutput<THeaders>>;
81
- type AnyEndpointOptions = EndpointOptions<AnySchema, AnySchema, AnySchema, readonly AnyEndpointMiddleware[]>;
82
- type EndpointBodyFromOptions<TOptions> = TOptions extends {
83
- body: infer TBody extends AnySchema;
84
- } ? TBody : never;
85
- type EndpointQueryFromOptions<TOptions> = TOptions extends {
86
- query: infer TQuery extends AnySchema;
87
- } ? TQuery : never;
88
- type EndpointHeadersFromOptions<TOptions> = TOptions extends {
89
- headers: infer THeaders extends AnySchema;
90
- } ? THeaders : never;
91
- type EndpointMiddlewaresFromOptions<TOptions> = TOptions extends {
92
- middleware: infer TMiddlewares extends readonly AnyEndpointMiddleware[];
93
- } ? TMiddlewares : readonly [];
94
- type MethodlessEndpointOptions = Omit<AnyEndpointOptions, "method">;
95
- type EndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandler<EndpointBodyFromOptions<TOptions>, EndpointQueryFromOptions<TOptions>, EndpointHeadersFromOptions<TOptions>, TResponse, InferEndpointMiddlewareContext<EndpointMiddlewaresFromOptions<TOptions>>>;
96
- type ValidatedEndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandlerFromOptions<TOptions, TResponse> & (EndpointMiddlewaresFromOptions<TOptions> extends ValidateEndpointMiddlewares<EndpointMiddlewaresFromOptions<TOptions>> ? unknown : never);
97
- type CreatedEndpointFromOptions<TOptions, TResponse> = CreatedEndpoint<EndpointBodyFromOptions<TOptions>, EndpointQueryFromOptions<TOptions>, EndpointHeadersFromOptions<TOptions>, TResponse>;
98
- /**
99
- * Create a Farm.js API endpoint
100
- *
101
- * Supports two patterns:
102
- * 1. File-based routing (path auto-inferred from file location):
103
- * `export const POST = createEndpoint({ method: 'POST', body: schema }, handler)`
104
- * `createEndpoint({ method: 'GET', query: z.object({...}) }, handler)`
105
- *
106
- * 2. Explicit path (for routes.ts at project root):
107
- * `createEndpoint('/api/hello', { method: 'GET', query: z.object({...}) }, handler)`
108
- */
109
- declare function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
110
- declare function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(path: string, options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
111
- declare function createEndpoint<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: EndpointOptions<TBody, TQuery, THeaders, readonly []>, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
112
- declare function createEndpoint<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(path: string, options: EndpointOptions<TBody, TQuery, THeaders, readonly []>, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
113
- /**
114
- * Convenience method for GET requests
115
- */
116
- declare function GET<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
117
- declare function GET<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
118
- declare function GET<TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<never, TQuery, THeaders, TResponse>): CreatedEndpoint<never, TQuery, THeaders, TResponse>;
119
- /**
120
- * Convenience method for HEAD requests
121
- */
122
- declare function HEAD<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
123
- declare function HEAD<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
124
- declare function HEAD<TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<never, TQuery, THeaders, TResponse>): CreatedEndpoint<never, TQuery, THeaders, TResponse>;
125
- /**
126
- * Convenience method for POST requests
127
- */
128
- declare function POST<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
129
- declare function POST<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
130
- declare function POST<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
131
- /**
132
- * Convenience method for PUT requests
133
- */
134
- declare function PUT<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
135
- declare function PUT<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
136
- declare function PUT<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
137
- /**
138
- * Convenience method for DELETE requests
139
- */
140
- declare function DELETE<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
141
- declare function DELETE<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
142
- declare function DELETE<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
143
- /**
144
- * Convenience method for PATCH requests
145
- */
146
- declare function PATCH<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
147
- declare function PATCH<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
148
- declare function PATCH<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
149
- /**
150
- * Convenience method for OPTIONS requests
151
- */
152
- declare function OPTIONS<T = any>(handler: EndpointHandler<never, never, never, T>): CreatedEndpoint<never, never, never, T>;
153
- declare function OPTIONS<const TOptions extends MethodlessEndpointOptions, TResponse = any>(options: TOptions, handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>): CreatedEndpointFromOptions<TOptions, TResponse>;
154
- declare function OPTIONS<TBody extends AnySchema = never, TQuery extends AnySchema = never, THeaders extends AnySchema = never, TResponse = any>(options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, "method">, handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;
155
13
 
156
14
  /**
157
15
  * Farm.js API Routes Vite Plugin
@@ -187,4 +45,4 @@ interface ApiRoute {
187
45
  */
188
46
  declare function farmApiPlugin(options?: FarmApiPluginOptions): Plugin;
189
47
 
190
- export { type AnyEndpointMiddleware, type ApiRoute, DELETE, type EndpointHandler, type EndpointMiddleware, type EndpointMiddlewareContext, type EndpointMiddlewareResult, type EndpointOptions, type EndpointParamValue, type EndpointParams, type FarmApiPluginOptions, GET, HEAD, type InferEndpointMiddlewareContext, OPTIONS, PATCH, POST, PUT, type TypedEndpoint, createEndpoint, farmApiPlugin };
48
+ export { type ApiRoute, type FarmApiPluginOptions, farmApiPlugin };
package/dist/api.mjs CHANGED
@@ -1,50 +1,70 @@
1
1
  import {
2
- DELETE,
3
- GET,
4
- HEAD,
5
- OPTIONS,
6
- PATCH,
7
- POST,
8
- PUT,
9
- createEndpoint,
10
2
  farmApiPlugin
11
- } from "./chunk-PRNYWD7K.mjs";
3
+ } from "./chunk-JDEOUK5V.mjs";
12
4
  import {
5
+ APIClientError,
6
+ FARM_API_ROUTE_META_SYMBOL,
7
+ FARM_API_ROUTE_REF_SYMBOL,
13
8
  createAPIClient,
14
- createServerAPIClient
15
- } from "./chunk-QFQRHRZS.mjs";
16
- import "./chunk-6XDUHOEM.mjs";
9
+ createServerAPIClient,
10
+ getAPIRouteRefMetadata,
11
+ isAPIRouteRef
12
+ } from "./chunk-W2CRQFF6.mjs";
13
+ import "./chunk-TQAEEJB4.mjs";
17
14
  import "./chunk-E6EPN5BT.mjs";
18
15
  import "./chunk-QGOHVJ6J.mjs";
19
16
  import {
20
17
  APIRouteManager,
21
18
  API_ROUTE_METHODS
22
- } from "./chunk-YHU7SS6L.mjs";
23
- import "./chunk-QF4PHCMA.mjs";
19
+ } from "./chunk-Z5CQMP54.mjs";
20
+ import "./chunk-2ED5Q2GH.mjs";
24
21
  import "./chunk-GN72QAIH.mjs";
25
22
  import "./chunk-FQYDHKKU.mjs";
23
+ import "./chunk-C2ROET2V.mjs";
24
+ import "./chunk-QKVUNGAH.mjs";
25
+ import "./chunk-GQVGIUSN.mjs";
26
26
  import "./chunk-J4FNJ5IU.mjs";
27
27
  import {
28
+ DELETE,
29
+ EndpointFailure,
30
+ GET,
31
+ HEAD,
32
+ OPTIONS,
33
+ PATCH,
34
+ POST,
35
+ PUT,
36
+ createEndpoint,
28
37
  invokeAPIRouteEndpoint,
38
+ isEndpointFailure,
29
39
  isWebResponse,
30
40
  matchAPIRoute,
31
41
  normalizeRouteResponse
32
- } from "./chunk-EVGBEZDF.mjs";
42
+ } from "./chunk-PFE6GMNE.mjs";
33
43
  import "./chunk-RHIFZZUI.mjs";
34
44
  import "./chunk-LM2YNO4U.mjs";
35
- import "./chunk-B6N4ZB2H.mjs";
36
- import "./chunk-QKVUNGAH.mjs";
37
- import "./chunk-QM6VV26B.mjs";
38
45
  import "./chunk-44ZCFSKE.mjs";
39
- import "./chunk-4PTK6KT4.mjs";
40
- import "./chunk-TXCFGOHW.mjs";
46
+ import {
47
+ isFarmAPIStream,
48
+ isJSONStreamResponse,
49
+ isMultipartSchema,
50
+ jsonStream,
51
+ multipart,
52
+ readJSONStream,
53
+ toFormData
54
+ } from "./chunk-ALCLXXTY.mjs";
55
+ import "./chunk-V3XURYJO.mjs";
41
56
  import "./chunk-WZ5QFROO.mjs";
57
+ import "./chunk-RBRLLZL5.mjs";
42
58
  import "./chunk-7ZY5AIJO.mjs";
43
59
  import "./chunk-CGILA3WO.mjs";
44
60
  export {
61
+ APIClientError,
45
62
  APIRouteManager,
46
63
  API_ROUTE_METHODS,
47
64
  DELETE,
65
+ EndpointFailure,
66
+ FARM_API_ROUTE_META_SYMBOL,
67
+ FARM_API_ROUTE_REF_SYMBOL,
48
68
  GET,
49
69
  HEAD,
50
70
  OPTIONS,
@@ -55,9 +75,19 @@ export {
55
75
  createEndpoint,
56
76
  createServerAPIClient,
57
77
  farmApiPlugin,
78
+ getAPIRouteRefMetadata,
58
79
  invokeAPIRouteEndpoint,
80
+ isAPIRouteRef,
81
+ isEndpointFailure,
82
+ isFarmAPIStream,
83
+ isJSONStreamResponse,
84
+ isMultipartSchema,
59
85
  isWebResponse,
86
+ jsonStream,
60
87
  matchAPIRoute,
61
- normalizeRouteResponse
88
+ multipart,
89
+ normalizeRouteResponse,
90
+ readJSONStream,
91
+ toFormData
62
92
  };
63
93
  //# sourceMappingURL=api.mjs.map
@@ -1,4 +1,4 @@
1
- import { F as FarmConfig, x as ParsedRoute, p as RouteModule, r as LayoutModule, z as SSGCollectionResult, t as FarmRequest, u as FarmResponse, _ as FarmMdxResolvedConfig, $ as ResolvedFarmDevtoolsConfig } from './client-plugins-BZnpeTGA.js';
1
+ import { F as FarmConfig, x as ParsedRoute, p as RouteModule, r as LayoutModule, z as SSGCollectionResult, t as FarmRequest, u as FarmResponse, _ as FarmMdxResolvedConfig, $ as ResolvedFarmDevtoolsConfig } from './client-plugins-Cw4qUGsw.js';
2
2
  import { F as FarmDocsResolvedConfig } from './types-C9N-nk5R.js';
3
3
  import { FarmMarkdownResolvedConfig } from './markdown.js';
4
4
  import { FarmWorkflowsResolvedConfig } from './workflows.js';
@@ -6,7 +6,7 @@ import { FarmCronResolvedConfig } from './cron.js';
6
6
  import { R as ResolvedFarmImageConfig } from './image-config-Duob7wER.js';
7
7
  import { ProgrammaticRedirectRoute, ProgrammaticRouteSearchClientOptions } from './routes.js';
8
8
  import { ViteDevServer } from 'vite';
9
- import { M as MetadataImageKind } from './metadata-DAXRaOHx.js';
9
+ import { M as MetadataImageKind } from './metadata-BAPg_Nmo.js';
10
10
  import { R as ResolvedFarmRouteRuntimeConfig } from './route-runtime-DoOHzCAD.js';
11
11
  import { R as ResolvedFarmI18nConfig } from './types-BH1lhg5G.js';
12
12
  import { F as FarmI18nRuntime } from './runtime-B6GvwDS1.js';
@@ -30,6 +30,22 @@ interface RouteEntry {
30
30
  source?: "file" | "programmatic";
31
31
  sourceRoot: string;
32
32
  }
33
+ interface RouteSlotEntry extends RouteEntry {
34
+ name: string;
35
+ ownerPattern: string;
36
+ interception: boolean;
37
+ fallback: boolean;
38
+ containerId: string;
39
+ }
40
+ interface MatchedRouteSlot {
41
+ name: string;
42
+ ownerPattern: string;
43
+ containerId: string;
44
+ interception: boolean;
45
+ fallback: boolean;
46
+ route: RouteSlotEntry;
47
+ params: Record<string, string>;
48
+ }
33
49
  interface MetadataImageEntry extends RouteEntry {
34
50
  kind: MetadataImageKind;
35
51
  fileName: "opengraph-image" | "twitter-image";
@@ -43,6 +59,7 @@ declare class RouteManager {
43
59
  private config;
44
60
  private routes;
45
61
  private layouts;
62
+ private routeSlots;
46
63
  private loadings;
47
64
  private errors;
48
65
  private metadataImages;
@@ -58,10 +75,13 @@ declare class RouteManager {
58
75
  /**
59
76
  * Find matching route for a given URL path
60
77
  */
61
- matchRoute(pathname: string): {
78
+ matchRoute(pathname: string, options?: {
79
+ interceptFrom?: string;
80
+ }): {
62
81
  route: RouteEntry | null;
63
82
  params: Record<string, string>;
64
83
  layouts: RouteEntry[];
84
+ slots: MatchedRouteSlot[];
65
85
  };
66
86
  /**
67
87
  * Get all registered routes
@@ -71,6 +91,7 @@ declare class RouteManager {
71
91
  * Get all registered layouts
72
92
  */
73
93
  getLayouts(): Map<string, RouteEntry>;
94
+ getRouteSlots(): Map<string, RouteSlotEntry>;
74
95
  /** Resolve route rules, inherited layouts, and the page export in precedence order. */
75
96
  resolveRouteRuntimeConfig(pattern: string): Promise<ResolvedFarmRouteRuntimeConfig>;
76
97
  /**
@@ -129,6 +150,18 @@ declare class RouteManager {
129
150
  pattern: string;
130
151
  modulePath: string;
131
152
  }>;
153
+ slots: Array<{
154
+ name: string;
155
+ ownerPattern: string;
156
+ pattern: string;
157
+ modulePath: string;
158
+ containerId: string;
159
+ interception: boolean;
160
+ fallback: boolean;
161
+ shouldHydrate: boolean;
162
+ isClientComponent: boolean;
163
+ segments: RouteEntry["route"]["segments"];
164
+ }>;
132
165
  };
133
166
  /**
134
167
  * Load a route module dynamically
@@ -149,6 +182,8 @@ declare class RouteManager {
149
182
  * Find all layouts that should wrap a given path
150
183
  */
151
184
  private findMatchingLayouts;
185
+ private findMatchingRouteSlots;
186
+ private matchesRoutePrefix;
152
187
  private findNearestBoundary;
153
188
  /**
154
189
  * Log discovered routes for debugging
@@ -1,4 +1,4 @@
1
- import { F as FarmConfig, x as ParsedRoute, p as RouteModule, r as LayoutModule, z as SSGCollectionResult, t as FarmRequest, u as FarmResponse, _ as FarmMdxResolvedConfig, $ as ResolvedFarmDevtoolsConfig } from './client-plugins-g4bzuCmo.mjs';
1
+ import { F as FarmConfig, x as ParsedRoute, p as RouteModule, r as LayoutModule, z as SSGCollectionResult, t as FarmRequest, u as FarmResponse, _ as FarmMdxResolvedConfig, $ as ResolvedFarmDevtoolsConfig } from './client-plugins-DQQ1adXM.mjs';
2
2
  import { F as FarmDocsResolvedConfig } from './types-C9N-nk5R.mjs';
3
3
  import { FarmMarkdownResolvedConfig } from './markdown.mjs';
4
4
  import { FarmWorkflowsResolvedConfig } from './workflows.mjs';
@@ -6,7 +6,7 @@ import { FarmCronResolvedConfig } from './cron.mjs';
6
6
  import { R as ResolvedFarmImageConfig } from './image-config-Duob7wER.mjs';
7
7
  import { ProgrammaticRedirectRoute, ProgrammaticRouteSearchClientOptions } from './routes.mjs';
8
8
  import { ViteDevServer } from 'vite';
9
- import { M as MetadataImageKind } from './metadata-C9NZxMDW.mjs';
9
+ import { M as MetadataImageKind } from './metadata-_6i9oFG3.mjs';
10
10
  import { R as ResolvedFarmRouteRuntimeConfig } from './route-runtime-DoOHzCAD.mjs';
11
11
  import { R as ResolvedFarmI18nConfig } from './types-BH1lhg5G.mjs';
12
12
  import { F as FarmI18nRuntime } from './runtime-DeAAZ6gO.mjs';
@@ -30,6 +30,22 @@ interface RouteEntry {
30
30
  source?: "file" | "programmatic";
31
31
  sourceRoot: string;
32
32
  }
33
+ interface RouteSlotEntry extends RouteEntry {
34
+ name: string;
35
+ ownerPattern: string;
36
+ interception: boolean;
37
+ fallback: boolean;
38
+ containerId: string;
39
+ }
40
+ interface MatchedRouteSlot {
41
+ name: string;
42
+ ownerPattern: string;
43
+ containerId: string;
44
+ interception: boolean;
45
+ fallback: boolean;
46
+ route: RouteSlotEntry;
47
+ params: Record<string, string>;
48
+ }
33
49
  interface MetadataImageEntry extends RouteEntry {
34
50
  kind: MetadataImageKind;
35
51
  fileName: "opengraph-image" | "twitter-image";
@@ -43,6 +59,7 @@ declare class RouteManager {
43
59
  private config;
44
60
  private routes;
45
61
  private layouts;
62
+ private routeSlots;
46
63
  private loadings;
47
64
  private errors;
48
65
  private metadataImages;
@@ -58,10 +75,13 @@ declare class RouteManager {
58
75
  /**
59
76
  * Find matching route for a given URL path
60
77
  */
61
- matchRoute(pathname: string): {
78
+ matchRoute(pathname: string, options?: {
79
+ interceptFrom?: string;
80
+ }): {
62
81
  route: RouteEntry | null;
63
82
  params: Record<string, string>;
64
83
  layouts: RouteEntry[];
84
+ slots: MatchedRouteSlot[];
65
85
  };
66
86
  /**
67
87
  * Get all registered routes
@@ -71,6 +91,7 @@ declare class RouteManager {
71
91
  * Get all registered layouts
72
92
  */
73
93
  getLayouts(): Map<string, RouteEntry>;
94
+ getRouteSlots(): Map<string, RouteSlotEntry>;
74
95
  /** Resolve route rules, inherited layouts, and the page export in precedence order. */
75
96
  resolveRouteRuntimeConfig(pattern: string): Promise<ResolvedFarmRouteRuntimeConfig>;
76
97
  /**
@@ -129,6 +150,18 @@ declare class RouteManager {
129
150
  pattern: string;
130
151
  modulePath: string;
131
152
  }>;
153
+ slots: Array<{
154
+ name: string;
155
+ ownerPattern: string;
156
+ pattern: string;
157
+ modulePath: string;
158
+ containerId: string;
159
+ interception: boolean;
160
+ fallback: boolean;
161
+ shouldHydrate: boolean;
162
+ isClientComponent: boolean;
163
+ segments: RouteEntry["route"]["segments"];
164
+ }>;
132
165
  };
133
166
  /**
134
167
  * Load a route module dynamically
@@ -149,6 +182,8 @@ declare class RouteManager {
149
182
  * Find all layouts that should wrap a given path
150
183
  */
151
184
  private findMatchingLayouts;
185
+ private findMatchingRouteSlots;
186
+ private matchesRoutePrefix;
152
187
  private findNearestBoundary;
153
188
  /**
154
189
  * Log discovered routes for debugging