@farm.js/core 0.1.0-beta.21 → 0.1.0-beta.23

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 (266) hide show
  1. package/dist/after.d.mts +25 -0
  2. package/dist/after.d.ts +25 -0
  3. package/dist/agent-runtime.d.mts +97 -0
  4. package/dist/agent-runtime.d.ts +97 -0
  5. package/dist/api/route-manager.d.mts +68 -0
  6. package/dist/api/route-manager.d.ts +68 -0
  7. package/dist/api/runtime.d.mts +3 -0
  8. package/dist/api/runtime.d.ts +3 -0
  9. package/dist/api.cjs +22 -19
  10. package/dist/api.cjs.map +1 -1
  11. package/dist/api.d.mts +50 -0
  12. package/dist/api.d.ts +50 -0
  13. package/dist/api.mjs +2 -1
  14. package/dist/app-CTFnOJaI.d.ts +308 -0
  15. package/dist/app-DA6ospIq.d.mts +308 -0
  16. package/dist/app-markdown.d.mts +25 -0
  17. package/dist/app-markdown.d.ts +25 -0
  18. package/dist/cache.d.mts +192 -0
  19. package/dist/cache.d.ts +192 -0
  20. package/dist/{chunk-MIUW47JX.mjs → chunk-2PEJGY5V.mjs} +15 -20
  21. package/dist/chunk-2PEJGY5V.mjs.map +1 -0
  22. package/dist/{chunk-RIXKJPGI.mjs → chunk-42325TLU.mjs} +2 -2
  23. package/dist/chunk-4IVNW5QD.mjs +82 -0
  24. package/dist/chunk-4IVNW5QD.mjs.map +1 -0
  25. package/dist/{chunk-I3UWA2P2.mjs → chunk-5NOVWCFL.mjs} +2 -2
  26. package/dist/chunk-5NOVWCFL.mjs.map +1 -0
  27. package/dist/chunk-D42BNPZH.mjs +79 -0
  28. package/dist/chunk-D42BNPZH.mjs.map +1 -0
  29. package/dist/{chunk-LLPN5SEZ.mjs → chunk-DVPRBMU2.mjs} +2 -2
  30. package/dist/{chunk-VIC7NJ77.mjs → chunk-FJGTYLCO.mjs} +67 -20
  31. package/dist/chunk-FJGTYLCO.mjs.map +1 -0
  32. package/dist/chunk-GIELMNBG.mjs +15 -0
  33. package/dist/chunk-GIELMNBG.mjs.map +1 -0
  34. package/dist/chunk-GQVQESLY.mjs +25 -0
  35. package/dist/chunk-GQVQESLY.mjs.map +1 -0
  36. package/dist/chunk-H53KVQUU.mjs +48 -0
  37. package/dist/chunk-H53KVQUU.mjs.map +1 -0
  38. package/dist/chunk-HCGQYYHI.mjs +1 -0
  39. package/dist/chunk-HCGQYYHI.mjs.map +1 -0
  40. package/dist/{chunk-4EATUJFO.mjs → chunk-ICTGDDV4.mjs} +20 -22
  41. package/dist/chunk-ICTGDDV4.mjs.map +1 -0
  42. package/dist/{chunk-UCYWGN2P.mjs → chunk-OHNSROHS.mjs} +1 -1
  43. package/dist/{chunk-FRPWCMMG.mjs → chunk-SBWOTAX4.mjs} +63 -2
  44. package/dist/chunk-SBWOTAX4.mjs.map +1 -0
  45. package/dist/{chunk-FKKM7HVF.mjs → chunk-TX54PXAJ.mjs} +109 -58
  46. package/dist/chunk-TX54PXAJ.mjs.map +1 -0
  47. package/dist/{chunk-CEVMYGDL.mjs → chunk-YD5IRKVS.mjs} +13 -9
  48. package/dist/chunk-YD5IRKVS.mjs.map +1 -0
  49. package/dist/chunk-recovery-lnQFzcQP.d.mts +26 -0
  50. package/dist/chunk-recovery-lnQFzcQP.d.ts +26 -0
  51. package/dist/client-BT1mFQas.d.mts +447 -0
  52. package/dist/client-Nn0q4eO4.d.ts +447 -0
  53. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  54. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  55. package/dist/client-plugins-CCilIb_G.d.mts +2092 -0
  56. package/dist/client-plugins-DuuleQKk.d.ts +2092 -0
  57. package/dist/client-plugins.d.mts +25 -0
  58. package/dist/client-plugins.d.ts +25 -0
  59. package/dist/client.cjs +122 -35
  60. package/dist/client.cjs.map +1 -1
  61. package/dist/client.d.mts +454 -0
  62. package/dist/client.d.ts +454 -0
  63. package/dist/client.mjs +13 -2
  64. package/dist/config.d.mts +32 -0
  65. package/dist/config.d.ts +32 -0
  66. package/dist/cron.d.mts +78 -0
  67. package/dist/cron.d.ts +78 -0
  68. package/dist/deferred.d.mts +42 -0
  69. package/dist/deferred.d.ts +42 -0
  70. package/dist/deployment.d.mts +36 -0
  71. package/dist/deployment.d.ts +36 -0
  72. package/dist/{devtools-52FYXIEK.mjs → devtools-326RBQCN.mjs} +7 -6
  73. package/dist/{devtools-52FYXIEK.mjs.map → devtools-326RBQCN.mjs.map} +1 -1
  74. package/dist/docs.cjs.map +1 -1
  75. package/dist/docs.d.mts +80 -0
  76. package/dist/docs.d.ts +80 -0
  77. package/dist/docs.mjs +6 -5
  78. package/dist/env-types.d.mts +12 -0
  79. package/dist/env-types.d.ts +12 -0
  80. package/dist/env.d.mts +45 -0
  81. package/dist/env.d.ts +45 -0
  82. package/dist/environment/vite.d.mts +22 -0
  83. package/dist/environment/vite.d.ts +22 -0
  84. package/dist/environment.d.mts +18 -0
  85. package/dist/environment.d.ts +18 -0
  86. package/dist/font.d.mts +95 -0
  87. package/dist/font.d.ts +95 -0
  88. package/dist/headers.d.mts +22 -0
  89. package/dist/headers.d.ts +22 -0
  90. package/dist/i18n/client.d.mts +32 -0
  91. package/dist/i18n/client.d.ts +32 -0
  92. package/dist/i18n/index.d.mts +20 -0
  93. package/dist/i18n/index.d.ts +20 -0
  94. package/dist/i18n/server.d.mts +30 -0
  95. package/dist/i18n/server.d.ts +30 -0
  96. package/dist/image/server.d.mts +37 -0
  97. package/dist/image/server.d.ts +37 -0
  98. package/dist/image/sharp.d.mts +7 -0
  99. package/dist/image/sharp.d.ts +7 -0
  100. package/dist/image-config-Duob7wER.d.mts +50 -0
  101. package/dist/image-config-Duob7wER.d.ts +50 -0
  102. package/dist/image.d.mts +39 -0
  103. package/dist/image.d.ts +39 -0
  104. package/dist/index.cjs +496 -123
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.d.mts +480 -0
  107. package/dist/index.d.ts +480 -0
  108. package/dist/index.mjs +70 -52
  109. package/dist/index.mjs.map +1 -1
  110. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  111. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  112. package/dist/integrations.d.mts +25 -0
  113. package/dist/integrations.d.ts +25 -0
  114. package/dist/internal/build-runtime.cjs +386 -83
  115. package/dist/internal/build-runtime.cjs.map +1 -1
  116. package/dist/internal/build-runtime.d.mts +42 -0
  117. package/dist/internal/build-runtime.d.ts +42 -0
  118. package/dist/internal/build-runtime.mjs +17 -13
  119. package/dist/internal/client-runtime.d.mts +17 -0
  120. package/dist/internal/client-runtime.d.ts +17 -0
  121. package/dist/internal/config-runtime.cjs +41 -0
  122. package/dist/internal/config-runtime.cjs.map +1 -1
  123. package/dist/internal/config-runtime.d.mts +42 -0
  124. package/dist/internal/config-runtime.d.ts +42 -0
  125. package/dist/internal/config-runtime.mjs +5 -4
  126. package/dist/internal/metadata-image-runtime.d.mts +25 -0
  127. package/dist/internal/metadata-image-runtime.d.ts +25 -0
  128. package/dist/internal/production-node-env.d.mts +12 -0
  129. package/dist/internal/production-node-env.d.ts +12 -0
  130. package/dist/internal/production-runtime.cjs +178 -0
  131. package/dist/internal/production-runtime.cjs.map +1 -1
  132. package/dist/internal/production-runtime.d.mts +80 -0
  133. package/dist/internal/production-runtime.d.ts +80 -0
  134. package/dist/internal/production-runtime.mjs +13 -1
  135. package/dist/internal/production-runtime.mjs.map +1 -1
  136. package/dist/island-CfGru1MO.d.mts +9 -0
  137. package/dist/island-CfGru1MO.d.ts +9 -0
  138. package/dist/markdown.d.mts +60 -0
  139. package/dist/markdown.d.ts +60 -0
  140. package/dist/metadata-DyPRG0wX.d.ts +22 -0
  141. package/dist/metadata-_GHcAySx.d.mts +22 -0
  142. package/dist/middleware.cjs +17 -17
  143. package/dist/middleware.cjs.map +1 -1
  144. package/dist/middleware.d.mts +172 -0
  145. package/dist/middleware.d.ts +172 -0
  146. package/dist/middleware.mjs +3 -2
  147. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  148. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  149. package/dist/navigation.d.mts +14 -0
  150. package/dist/navigation.d.ts +14 -0
  151. package/dist/observability.d.mts +335 -0
  152. package/dist/observability.d.ts +335 -0
  153. package/dist/params-BALtrRim.d.ts +15 -0
  154. package/dist/params-ry-lxqmy.d.mts +15 -0
  155. package/dist/plugin-BJDf43dc.d.mts +165 -0
  156. package/dist/plugin-BJDf43dc.d.ts +165 -0
  157. package/dist/plugin.cjs +261 -62
  158. package/dist/plugin.cjs.map +1 -1
  159. package/dist/plugin.d.mts +25 -0
  160. package/dist/plugin.d.ts +25 -0
  161. package/dist/plugin.mjs +13 -9
  162. package/dist/production-runtime-C4cO3esK.d.mts +81 -0
  163. package/dist/production-runtime-DrEy8kBO.d.ts +81 -0
  164. package/dist/query/client.d.mts +61 -0
  165. package/dist/query/client.d.ts +61 -0
  166. package/dist/query/index.d.mts +90 -0
  167. package/dist/query/index.d.ts +90 -0
  168. package/dist/query/parsers.d.mts +25 -0
  169. package/dist/query/parsers.d.ts +25 -0
  170. package/dist/query/server.d.mts +55 -0
  171. package/dist/query/server.d.ts +55 -0
  172. package/dist/request-B2PpOxYK.d.mts +6 -0
  173. package/dist/request-D40lt6aN.d.ts +6 -0
  174. package/dist/request.d.mts +26 -0
  175. package/dist/request.d.ts +26 -0
  176. package/dist/resolver-DJqjLMg_.d.mts +14 -0
  177. package/dist/resolver-IH4RmPEl.d.ts +14 -0
  178. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  179. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  180. package/dist/router.d.mts +36 -0
  181. package/dist/router.d.ts +36 -0
  182. package/dist/routes.d.mts +227 -0
  183. package/dist/routes.d.ts +227 -0
  184. package/dist/runtime-Bpp-c28k.d.ts +231 -0
  185. package/dist/runtime-Cxpq6xZN.d.mts +27 -0
  186. package/dist/runtime-Q3u74Nbq.d.mts +231 -0
  187. package/dist/runtime-bv63eUiO.d.ts +27 -0
  188. package/dist/server-action-security.d.mts +45 -0
  189. package/dist/server-action-security.d.ts +45 -0
  190. package/dist/server-fn-client.d.mts +33 -0
  191. package/dist/server-fn-client.d.ts +33 -0
  192. package/dist/server-fn-error-DDh14a0V.d.mts +26 -0
  193. package/dist/server-fn-error-DDh14a0V.d.ts +26 -0
  194. package/dist/server-fn.d.mts +121 -0
  195. package/dist/server-fn.d.ts +121 -0
  196. package/dist/server-plugins.d.mts +58 -0
  197. package/dist/server-plugins.d.ts +58 -0
  198. package/dist/server-query-client.d.mts +51 -0
  199. package/dist/server-query-client.d.ts +51 -0
  200. package/dist/server-query.d.mts +37 -0
  201. package/dist/server-query.d.ts +37 -0
  202. package/dist/server.cjs +285 -85
  203. package/dist/server.cjs.map +1 -1
  204. package/dist/server.d.mts +53 -0
  205. package/dist/server.d.ts +53 -0
  206. package/dist/server.mjs +26 -31
  207. package/dist/server.mjs.map +1 -1
  208. package/dist/storage.d.mts +52 -0
  209. package/dist/storage.d.ts +52 -0
  210. package/dist/testing.d.mts +104 -0
  211. package/dist/testing.d.ts +104 -0
  212. package/dist/theme/client.cjs +115 -0
  213. package/dist/theme/client.cjs.map +1 -0
  214. package/dist/theme/client.d.mts +17 -0
  215. package/dist/theme/client.d.ts +17 -0
  216. package/dist/theme/client.mjs +16 -0
  217. package/dist/theme/client.mjs.map +1 -0
  218. package/dist/theme/index.cjs +71 -0
  219. package/dist/theme/index.cjs.map +1 -0
  220. package/dist/theme/index.d.mts +6 -0
  221. package/dist/theme/index.d.ts +6 -0
  222. package/dist/theme/index.mjs +9 -0
  223. package/dist/theme/index.mjs.map +1 -0
  224. package/dist/theme/server.cjs +191 -0
  225. package/dist/theme/server.cjs.map +1 -0
  226. package/dist/theme/server.d.mts +8 -0
  227. package/dist/theme/server.d.ts +8 -0
  228. package/dist/theme/server.mjs +18 -0
  229. package/dist/theme/server.mjs.map +1 -0
  230. package/dist/transport-BmbGTXA5.d.mts +49 -0
  231. package/dist/transport-BmbGTXA5.d.ts +49 -0
  232. package/dist/types-BMxWr97v.d.mts +81 -0
  233. package/dist/types-BMxWr97v.d.ts +81 -0
  234. package/dist/types-CsR8fpgF.d.mts +30 -0
  235. package/dist/types-CsR8fpgF.d.ts +30 -0
  236. package/dist/types-D1A6-XvH.d.mts +73 -0
  237. package/dist/types-D1A6-XvH.d.ts +73 -0
  238. package/dist/types-DTzm4TCl.d.mts +78 -0
  239. package/dist/types-DTzm4TCl.d.ts +78 -0
  240. package/dist/utils-3sQgfkya.d.ts +23 -0
  241. package/dist/utils-Bop7bly-.d.mts +23 -0
  242. package/dist/version.cjs +1 -1
  243. package/dist/version.cjs.map +1 -1
  244. package/dist/version.d.mts +3 -0
  245. package/dist/version.d.ts +3 -0
  246. package/dist/version.mjs +1 -1
  247. package/dist/vite.cjs +285 -64
  248. package/dist/vite.cjs.map +1 -1
  249. package/dist/vite.d.mts +25 -0
  250. package/dist/vite.d.ts +25 -0
  251. package/dist/vite.mjs +13 -9
  252. package/dist/workflows-CusFV6mn.d.mts +153 -0
  253. package/dist/workflows-CusFV6mn.d.ts +153 -0
  254. package/dist/workflows.d.mts +1 -0
  255. package/dist/workflows.d.ts +1 -0
  256. package/package.json +25 -1
  257. package/dist/chunk-4EATUJFO.mjs.map +0 -1
  258. package/dist/chunk-CEVMYGDL.mjs.map +0 -1
  259. package/dist/chunk-FKKM7HVF.mjs.map +0 -1
  260. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  261. package/dist/chunk-I3UWA2P2.mjs.map +0 -1
  262. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  263. package/dist/chunk-VIC7NJ77.mjs.map +0 -1
  264. /package/dist/{chunk-RIXKJPGI.mjs.map → chunk-42325TLU.mjs.map} +0 -0
  265. /package/dist/{chunk-LLPN5SEZ.mjs.map → chunk-DVPRBMU2.mjs.map} +0 -0
  266. /package/dist/{chunk-UCYWGN2P.mjs.map → chunk-OHNSROHS.mjs.map} +0 -0
@@ -0,0 +1,335 @@
1
+ type FarmEventLevel = "debug" | "info" | "warn" | "error";
2
+ interface FarmEventBase {
3
+ type: string;
4
+ timestamp: number;
5
+ level: FarmEventLevel;
6
+ requestId?: string;
7
+ route?: string;
8
+ pathname?: string;
9
+ }
10
+ type FarmServerEvent = (FarmEventBase & {
11
+ type: "server.start";
12
+ mode: "dev" | "preview" | "production";
13
+ port?: number;
14
+ }) | (FarmEventBase & {
15
+ type: "server.ready";
16
+ url?: string;
17
+ }) | (FarmEventBase & {
18
+ type: "server.shutdown";
19
+ reason?: string;
20
+ });
21
+ type FarmRouteEvent = (FarmEventBase & {
22
+ type: "route.discovered";
23
+ route: string;
24
+ filePath: string;
25
+ }) | (FarmEventBase & {
26
+ type: "route.matched";
27
+ pathname: string;
28
+ route: string;
29
+ params?: Record<string, string>;
30
+ }) | (FarmEventBase & {
31
+ type: "route.notFound";
32
+ pathname: string;
33
+ }) | (FarmEventBase & {
34
+ type: "route.redirect";
35
+ from: string;
36
+ to: string;
37
+ status?: number;
38
+ }) | (FarmEventBase & {
39
+ type: "route.rewrite";
40
+ from: string;
41
+ to: string;
42
+ });
43
+ type FarmRenderEvent = (FarmEventBase & {
44
+ type: "render.start";
45
+ route: string;
46
+ pathname?: string;
47
+ }) | (FarmEventBase & {
48
+ type: "render.complete";
49
+ route: string;
50
+ durationMs: number;
51
+ status?: number;
52
+ }) | (FarmEventBase & {
53
+ type: "render.error";
54
+ route?: string;
55
+ error: unknown;
56
+ }) | (FarmEventBase & {
57
+ type: "render.stream.start";
58
+ route: string;
59
+ }) | (FarmEventBase & {
60
+ type: "render.stream.shellReady";
61
+ route: string;
62
+ durationMs: number;
63
+ }) | (FarmEventBase & {
64
+ type: "render.stream.complete";
65
+ route: string;
66
+ durationMs: number;
67
+ });
68
+ type FarmCacheEvent = (FarmEventBase & {
69
+ type: "cache.hit";
70
+ key: string;
71
+ route?: string;
72
+ tags?: readonly string[];
73
+ revalidate?: number | false;
74
+ stale?: boolean;
75
+ }) | (FarmEventBase & {
76
+ type: "cache.miss";
77
+ key: string;
78
+ route?: string;
79
+ reason?: string;
80
+ }) | (FarmEventBase & {
81
+ type: "cache.set";
82
+ key: string;
83
+ route?: string;
84
+ tags?: readonly string[];
85
+ revalidate?: number | false;
86
+ }) | (FarmEventBase & {
87
+ type: "cache.dedupe";
88
+ key: string;
89
+ }) | (FarmEventBase & {
90
+ type: "cache.bypass";
91
+ key?: string;
92
+ route?: string;
93
+ reason: string;
94
+ }) | (FarmEventBase & {
95
+ type: "cache.stale";
96
+ key: string;
97
+ route?: string;
98
+ tags?: readonly string[];
99
+ revalidate?: number | false;
100
+ }) | (FarmEventBase & {
101
+ type: "cache.revalidatePath";
102
+ path: string;
103
+ count: number;
104
+ }) | (FarmEventBase & {
105
+ type: "cache.revalidateTag";
106
+ tag: string;
107
+ profile?: unknown;
108
+ count: number;
109
+ }) | (FarmEventBase & {
110
+ type: "cache.updateTag";
111
+ tag: string;
112
+ count: number;
113
+ }) | (FarmEventBase & {
114
+ type: "cache.invalidated";
115
+ key?: string;
116
+ route?: string;
117
+ tag?: string;
118
+ reason?: string;
119
+ count?: number;
120
+ }) | (FarmEventBase & {
121
+ type: "cache.delete";
122
+ key: string;
123
+ deleted: boolean;
124
+ }) | (FarmEventBase & {
125
+ type: "cache.clear";
126
+ count: number;
127
+ }) | (FarmEventBase & {
128
+ type: "cache.error";
129
+ key?: string;
130
+ operation: "get" | "set" | "delete" | "revalidate";
131
+ error: unknown;
132
+ });
133
+ type FarmPPREvent = (FarmEventBase & {
134
+ type: "ppr.shell.hit";
135
+ route: string;
136
+ key: string;
137
+ }) | (FarmEventBase & {
138
+ type: "ppr.shell.miss";
139
+ route: string;
140
+ key: string;
141
+ }) | (FarmEventBase & {
142
+ type: "ppr.shell.cached";
143
+ route: string;
144
+ key: string;
145
+ revalidate?: number;
146
+ }) | (FarmEventBase & {
147
+ type: "ppr.shell.bypass";
148
+ route: string;
149
+ reason: string;
150
+ }) | (FarmEventBase & {
151
+ type: "ppr.shell.invalidated";
152
+ route: string;
153
+ reason?: string;
154
+ count?: number;
155
+ }) | (FarmEventBase & {
156
+ type: "ppr.suspense.holeDetected";
157
+ route: string;
158
+ }) | (FarmEventBase & {
159
+ type: "ppr.refresh.start";
160
+ route: string;
161
+ }) | (FarmEventBase & {
162
+ type: "ppr.refresh.complete";
163
+ route: string;
164
+ durationMs: number;
165
+ }) | (FarmEventBase & {
166
+ type: "ppr.refresh.error";
167
+ route: string;
168
+ error: unknown;
169
+ });
170
+ type FarmAPIEvent = (FarmEventBase & {
171
+ type: "api.request.start";
172
+ route: string;
173
+ method: string;
174
+ }) | (FarmEventBase & {
175
+ type: "api.request.complete";
176
+ route: string;
177
+ method: string;
178
+ status: number;
179
+ durationMs: number;
180
+ }) | (FarmEventBase & {
181
+ type: "api.validation.failed";
182
+ route: string;
183
+ method: string;
184
+ issues?: unknown;
185
+ }) | (FarmEventBase & {
186
+ type: "api.error";
187
+ route: string;
188
+ method: string;
189
+ error: unknown;
190
+ });
191
+ type FarmIntegrationEvent = (FarmEventBase & {
192
+ type: "integration.registered";
193
+ name: string;
194
+ }) | (FarmEventBase & {
195
+ type: "integration.config.validated";
196
+ name: string;
197
+ }) | (FarmEventBase & {
198
+ type: "integration.ready";
199
+ name: string;
200
+ }) | (FarmEventBase & {
201
+ type: "integration.disposed";
202
+ name: string;
203
+ }) | (FarmEventBase & {
204
+ type: "integration.api.call.start";
205
+ integration: string;
206
+ operation: string;
207
+ }) | (FarmEventBase & {
208
+ type: "integration.api.call.complete";
209
+ integration: string;
210
+ operation: string;
211
+ durationMs: number;
212
+ }) | (FarmEventBase & {
213
+ type: "integration.api.call.error";
214
+ integration: string;
215
+ operation: string;
216
+ error: unknown;
217
+ }) | (FarmEventBase & {
218
+ type: "integration.webhook.received";
219
+ integration: string;
220
+ event?: string;
221
+ }) | (FarmEventBase & {
222
+ type: "integration.webhook.verified";
223
+ integration: string;
224
+ event?: string;
225
+ }) | (FarmEventBase & {
226
+ type: "integration.webhook.failed";
227
+ integration: string;
228
+ reason: string;
229
+ });
230
+ type FarmMiddlewareEvent = (FarmEventBase & {
231
+ type: "middleware.start";
232
+ route?: string;
233
+ name?: string;
234
+ }) | (FarmEventBase & {
235
+ type: "middleware.complete";
236
+ route?: string;
237
+ name?: string;
238
+ durationMs: number;
239
+ }) | (FarmEventBase & {
240
+ type: "middleware.shortCircuit";
241
+ route?: string;
242
+ name?: string;
243
+ status?: number;
244
+ }) | (FarmEventBase & {
245
+ type: "middleware.error";
246
+ route?: string;
247
+ name?: string;
248
+ error: unknown;
249
+ });
250
+ type FarmStorageEvent = (FarmEventBase & {
251
+ type: "storage.query.start";
252
+ integration?: string;
253
+ operation: string;
254
+ }) | (FarmEventBase & {
255
+ type: "storage.query.complete";
256
+ integration?: string;
257
+ operation: string;
258
+ durationMs: number;
259
+ }) | (FarmEventBase & {
260
+ type: "storage.query.error";
261
+ integration?: string;
262
+ operation: string;
263
+ error: unknown;
264
+ }) | (FarmEventBase & {
265
+ type: "storage.schema.ready";
266
+ integration?: string;
267
+ }) | (FarmEventBase & {
268
+ type: "storage.schema.error";
269
+ integration?: string;
270
+ error: unknown;
271
+ });
272
+ type FarmBuildEvent = (FarmEventBase & {
273
+ type: "build.start";
274
+ target?: string;
275
+ }) | (FarmEventBase & {
276
+ type: "build.complete";
277
+ target?: string;
278
+ durationMs: number;
279
+ }) | (FarmEventBase & {
280
+ type: "build.error";
281
+ target?: string;
282
+ error: unknown;
283
+ }) | (FarmEventBase & {
284
+ type: "routes.generated";
285
+ pageCount: number;
286
+ apiCount?: number;
287
+ }) | (FarmEventBase & {
288
+ type: "types.generated";
289
+ filePath: string;
290
+ }) | (FarmEventBase & {
291
+ type: "manifest.generated";
292
+ routeCount: number;
293
+ });
294
+ type FarmPluginEvent = (FarmEventBase & {
295
+ type: "plugin.hook.start";
296
+ plugin: string;
297
+ hook: string;
298
+ }) | (FarmEventBase & {
299
+ type: "plugin.hook.complete";
300
+ plugin: string;
301
+ hook: string;
302
+ durationMs: number;
303
+ }) | (FarmEventBase & {
304
+ type: "plugin.hook.error";
305
+ plugin: string;
306
+ hook: string;
307
+ error: unknown;
308
+ });
309
+ type FarmErrorEvent = FarmEventBase & {
310
+ type: "error";
311
+ source: string;
312
+ error: unknown;
313
+ route?: string;
314
+ };
315
+ type FarmEvent = FarmServerEvent | FarmRouteEvent | FarmRenderEvent | FarmCacheEvent | FarmPPREvent | FarmAPIEvent | FarmIntegrationEvent | FarmMiddlewareEvent | FarmStorageEvent | FarmBuildEvent | FarmPluginEvent | FarmErrorEvent;
316
+ type FarmEventType = FarmEvent["type"];
317
+ type FarmEventHandler = (event: FarmEvent) => void | Promise<void>;
318
+ type FarmEventInput = FarmEvent extends infer T ? T extends FarmEvent ? Omit<T, "timestamp" | "level"> & Partial<Pick<T, "timestamp" | "level">> : never : never;
319
+ type FarmObservabilityUserConfig = boolean | {
320
+ logs?: boolean;
321
+ onEvent?: FarmEventHandler | readonly FarmEventHandler[];
322
+ events?: readonly FarmEventType[];
323
+ };
324
+ interface FarmResolvedObservabilityConfig {
325
+ logs: boolean;
326
+ handlers: FarmEventHandler[];
327
+ events?: Set<FarmEventType>;
328
+ }
329
+ declare function configureFarmObservability(config: FarmObservabilityUserConfig | undefined): void;
330
+ declare function normalizeFarmObservabilityConfig(config: FarmObservabilityUserConfig | undefined): FarmResolvedObservabilityConfig;
331
+ declare function onFarmEvent(handler: FarmEventHandler): () => void;
332
+ declare function resetFarmObservability(): void;
333
+ declare function emitFarmEvent(input: FarmEventInput): FarmEvent;
334
+
335
+ export { type FarmAPIEvent, type FarmBuildEvent, type FarmCacheEvent, type FarmErrorEvent, type FarmEvent, type FarmEventBase, type FarmEventHandler, type FarmEventInput, type FarmEventLevel, type FarmEventType, type FarmIntegrationEvent, type FarmMiddlewareEvent, type FarmObservabilityUserConfig, type FarmPPREvent, type FarmPluginEvent, type FarmRenderEvent, type FarmResolvedObservabilityConfig, type FarmRouteEvent, type FarmServerEvent, type FarmStorageEvent, configureFarmObservability, emitFarmEvent, normalizeFarmObservabilityConfig, onFarmEvent, resetFarmObservability };
@@ -0,0 +1,335 @@
1
+ type FarmEventLevel = "debug" | "info" | "warn" | "error";
2
+ interface FarmEventBase {
3
+ type: string;
4
+ timestamp: number;
5
+ level: FarmEventLevel;
6
+ requestId?: string;
7
+ route?: string;
8
+ pathname?: string;
9
+ }
10
+ type FarmServerEvent = (FarmEventBase & {
11
+ type: "server.start";
12
+ mode: "dev" | "preview" | "production";
13
+ port?: number;
14
+ }) | (FarmEventBase & {
15
+ type: "server.ready";
16
+ url?: string;
17
+ }) | (FarmEventBase & {
18
+ type: "server.shutdown";
19
+ reason?: string;
20
+ });
21
+ type FarmRouteEvent = (FarmEventBase & {
22
+ type: "route.discovered";
23
+ route: string;
24
+ filePath: string;
25
+ }) | (FarmEventBase & {
26
+ type: "route.matched";
27
+ pathname: string;
28
+ route: string;
29
+ params?: Record<string, string>;
30
+ }) | (FarmEventBase & {
31
+ type: "route.notFound";
32
+ pathname: string;
33
+ }) | (FarmEventBase & {
34
+ type: "route.redirect";
35
+ from: string;
36
+ to: string;
37
+ status?: number;
38
+ }) | (FarmEventBase & {
39
+ type: "route.rewrite";
40
+ from: string;
41
+ to: string;
42
+ });
43
+ type FarmRenderEvent = (FarmEventBase & {
44
+ type: "render.start";
45
+ route: string;
46
+ pathname?: string;
47
+ }) | (FarmEventBase & {
48
+ type: "render.complete";
49
+ route: string;
50
+ durationMs: number;
51
+ status?: number;
52
+ }) | (FarmEventBase & {
53
+ type: "render.error";
54
+ route?: string;
55
+ error: unknown;
56
+ }) | (FarmEventBase & {
57
+ type: "render.stream.start";
58
+ route: string;
59
+ }) | (FarmEventBase & {
60
+ type: "render.stream.shellReady";
61
+ route: string;
62
+ durationMs: number;
63
+ }) | (FarmEventBase & {
64
+ type: "render.stream.complete";
65
+ route: string;
66
+ durationMs: number;
67
+ });
68
+ type FarmCacheEvent = (FarmEventBase & {
69
+ type: "cache.hit";
70
+ key: string;
71
+ route?: string;
72
+ tags?: readonly string[];
73
+ revalidate?: number | false;
74
+ stale?: boolean;
75
+ }) | (FarmEventBase & {
76
+ type: "cache.miss";
77
+ key: string;
78
+ route?: string;
79
+ reason?: string;
80
+ }) | (FarmEventBase & {
81
+ type: "cache.set";
82
+ key: string;
83
+ route?: string;
84
+ tags?: readonly string[];
85
+ revalidate?: number | false;
86
+ }) | (FarmEventBase & {
87
+ type: "cache.dedupe";
88
+ key: string;
89
+ }) | (FarmEventBase & {
90
+ type: "cache.bypass";
91
+ key?: string;
92
+ route?: string;
93
+ reason: string;
94
+ }) | (FarmEventBase & {
95
+ type: "cache.stale";
96
+ key: string;
97
+ route?: string;
98
+ tags?: readonly string[];
99
+ revalidate?: number | false;
100
+ }) | (FarmEventBase & {
101
+ type: "cache.revalidatePath";
102
+ path: string;
103
+ count: number;
104
+ }) | (FarmEventBase & {
105
+ type: "cache.revalidateTag";
106
+ tag: string;
107
+ profile?: unknown;
108
+ count: number;
109
+ }) | (FarmEventBase & {
110
+ type: "cache.updateTag";
111
+ tag: string;
112
+ count: number;
113
+ }) | (FarmEventBase & {
114
+ type: "cache.invalidated";
115
+ key?: string;
116
+ route?: string;
117
+ tag?: string;
118
+ reason?: string;
119
+ count?: number;
120
+ }) | (FarmEventBase & {
121
+ type: "cache.delete";
122
+ key: string;
123
+ deleted: boolean;
124
+ }) | (FarmEventBase & {
125
+ type: "cache.clear";
126
+ count: number;
127
+ }) | (FarmEventBase & {
128
+ type: "cache.error";
129
+ key?: string;
130
+ operation: "get" | "set" | "delete" | "revalidate";
131
+ error: unknown;
132
+ });
133
+ type FarmPPREvent = (FarmEventBase & {
134
+ type: "ppr.shell.hit";
135
+ route: string;
136
+ key: string;
137
+ }) | (FarmEventBase & {
138
+ type: "ppr.shell.miss";
139
+ route: string;
140
+ key: string;
141
+ }) | (FarmEventBase & {
142
+ type: "ppr.shell.cached";
143
+ route: string;
144
+ key: string;
145
+ revalidate?: number;
146
+ }) | (FarmEventBase & {
147
+ type: "ppr.shell.bypass";
148
+ route: string;
149
+ reason: string;
150
+ }) | (FarmEventBase & {
151
+ type: "ppr.shell.invalidated";
152
+ route: string;
153
+ reason?: string;
154
+ count?: number;
155
+ }) | (FarmEventBase & {
156
+ type: "ppr.suspense.holeDetected";
157
+ route: string;
158
+ }) | (FarmEventBase & {
159
+ type: "ppr.refresh.start";
160
+ route: string;
161
+ }) | (FarmEventBase & {
162
+ type: "ppr.refresh.complete";
163
+ route: string;
164
+ durationMs: number;
165
+ }) | (FarmEventBase & {
166
+ type: "ppr.refresh.error";
167
+ route: string;
168
+ error: unknown;
169
+ });
170
+ type FarmAPIEvent = (FarmEventBase & {
171
+ type: "api.request.start";
172
+ route: string;
173
+ method: string;
174
+ }) | (FarmEventBase & {
175
+ type: "api.request.complete";
176
+ route: string;
177
+ method: string;
178
+ status: number;
179
+ durationMs: number;
180
+ }) | (FarmEventBase & {
181
+ type: "api.validation.failed";
182
+ route: string;
183
+ method: string;
184
+ issues?: unknown;
185
+ }) | (FarmEventBase & {
186
+ type: "api.error";
187
+ route: string;
188
+ method: string;
189
+ error: unknown;
190
+ });
191
+ type FarmIntegrationEvent = (FarmEventBase & {
192
+ type: "integration.registered";
193
+ name: string;
194
+ }) | (FarmEventBase & {
195
+ type: "integration.config.validated";
196
+ name: string;
197
+ }) | (FarmEventBase & {
198
+ type: "integration.ready";
199
+ name: string;
200
+ }) | (FarmEventBase & {
201
+ type: "integration.disposed";
202
+ name: string;
203
+ }) | (FarmEventBase & {
204
+ type: "integration.api.call.start";
205
+ integration: string;
206
+ operation: string;
207
+ }) | (FarmEventBase & {
208
+ type: "integration.api.call.complete";
209
+ integration: string;
210
+ operation: string;
211
+ durationMs: number;
212
+ }) | (FarmEventBase & {
213
+ type: "integration.api.call.error";
214
+ integration: string;
215
+ operation: string;
216
+ error: unknown;
217
+ }) | (FarmEventBase & {
218
+ type: "integration.webhook.received";
219
+ integration: string;
220
+ event?: string;
221
+ }) | (FarmEventBase & {
222
+ type: "integration.webhook.verified";
223
+ integration: string;
224
+ event?: string;
225
+ }) | (FarmEventBase & {
226
+ type: "integration.webhook.failed";
227
+ integration: string;
228
+ reason: string;
229
+ });
230
+ type FarmMiddlewareEvent = (FarmEventBase & {
231
+ type: "middleware.start";
232
+ route?: string;
233
+ name?: string;
234
+ }) | (FarmEventBase & {
235
+ type: "middleware.complete";
236
+ route?: string;
237
+ name?: string;
238
+ durationMs: number;
239
+ }) | (FarmEventBase & {
240
+ type: "middleware.shortCircuit";
241
+ route?: string;
242
+ name?: string;
243
+ status?: number;
244
+ }) | (FarmEventBase & {
245
+ type: "middleware.error";
246
+ route?: string;
247
+ name?: string;
248
+ error: unknown;
249
+ });
250
+ type FarmStorageEvent = (FarmEventBase & {
251
+ type: "storage.query.start";
252
+ integration?: string;
253
+ operation: string;
254
+ }) | (FarmEventBase & {
255
+ type: "storage.query.complete";
256
+ integration?: string;
257
+ operation: string;
258
+ durationMs: number;
259
+ }) | (FarmEventBase & {
260
+ type: "storage.query.error";
261
+ integration?: string;
262
+ operation: string;
263
+ error: unknown;
264
+ }) | (FarmEventBase & {
265
+ type: "storage.schema.ready";
266
+ integration?: string;
267
+ }) | (FarmEventBase & {
268
+ type: "storage.schema.error";
269
+ integration?: string;
270
+ error: unknown;
271
+ });
272
+ type FarmBuildEvent = (FarmEventBase & {
273
+ type: "build.start";
274
+ target?: string;
275
+ }) | (FarmEventBase & {
276
+ type: "build.complete";
277
+ target?: string;
278
+ durationMs: number;
279
+ }) | (FarmEventBase & {
280
+ type: "build.error";
281
+ target?: string;
282
+ error: unknown;
283
+ }) | (FarmEventBase & {
284
+ type: "routes.generated";
285
+ pageCount: number;
286
+ apiCount?: number;
287
+ }) | (FarmEventBase & {
288
+ type: "types.generated";
289
+ filePath: string;
290
+ }) | (FarmEventBase & {
291
+ type: "manifest.generated";
292
+ routeCount: number;
293
+ });
294
+ type FarmPluginEvent = (FarmEventBase & {
295
+ type: "plugin.hook.start";
296
+ plugin: string;
297
+ hook: string;
298
+ }) | (FarmEventBase & {
299
+ type: "plugin.hook.complete";
300
+ plugin: string;
301
+ hook: string;
302
+ durationMs: number;
303
+ }) | (FarmEventBase & {
304
+ type: "plugin.hook.error";
305
+ plugin: string;
306
+ hook: string;
307
+ error: unknown;
308
+ });
309
+ type FarmErrorEvent = FarmEventBase & {
310
+ type: "error";
311
+ source: string;
312
+ error: unknown;
313
+ route?: string;
314
+ };
315
+ type FarmEvent = FarmServerEvent | FarmRouteEvent | FarmRenderEvent | FarmCacheEvent | FarmPPREvent | FarmAPIEvent | FarmIntegrationEvent | FarmMiddlewareEvent | FarmStorageEvent | FarmBuildEvent | FarmPluginEvent | FarmErrorEvent;
316
+ type FarmEventType = FarmEvent["type"];
317
+ type FarmEventHandler = (event: FarmEvent) => void | Promise<void>;
318
+ type FarmEventInput = FarmEvent extends infer T ? T extends FarmEvent ? Omit<T, "timestamp" | "level"> & Partial<Pick<T, "timestamp" | "level">> : never : never;
319
+ type FarmObservabilityUserConfig = boolean | {
320
+ logs?: boolean;
321
+ onEvent?: FarmEventHandler | readonly FarmEventHandler[];
322
+ events?: readonly FarmEventType[];
323
+ };
324
+ interface FarmResolvedObservabilityConfig {
325
+ logs: boolean;
326
+ handlers: FarmEventHandler[];
327
+ events?: Set<FarmEventType>;
328
+ }
329
+ declare function configureFarmObservability(config: FarmObservabilityUserConfig | undefined): void;
330
+ declare function normalizeFarmObservabilityConfig(config: FarmObservabilityUserConfig | undefined): FarmResolvedObservabilityConfig;
331
+ declare function onFarmEvent(handler: FarmEventHandler): () => void;
332
+ declare function resetFarmObservability(): void;
333
+ declare function emitFarmEvent(input: FarmEventInput): FarmEvent;
334
+
335
+ export { type FarmAPIEvent, type FarmBuildEvent, type FarmCacheEvent, type FarmErrorEvent, type FarmEvent, type FarmEventBase, type FarmEventHandler, type FarmEventInput, type FarmEventLevel, type FarmEventType, type FarmIntegrationEvent, type FarmMiddlewareEvent, type FarmObservabilityUserConfig, type FarmPPREvent, type FarmPluginEvent, type FarmRenderEvent, type FarmResolvedObservabilityConfig, type FarmRouteEvent, type FarmServerEvent, type FarmStorageEvent, configureFarmObservability, emitFarmEvent, normalizeFarmObservabilityConfig, onFarmEvent, resetFarmObservability };
@@ -0,0 +1,15 @@
1
+ import { Parser } from './query/parsers.js';
2
+
3
+ type RouteParamsInput = Record<string, string | undefined> | URLSearchParams | Promise<Record<string, string | undefined> | URLSearchParams>;
4
+ declare function loadRouteParams<T extends Record<string, Parser<any>>>(input: RouteParamsInput, parsers: T, options?: {
5
+ strict?: boolean;
6
+ }): Promise<{
7
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
8
+ }>;
9
+ declare function parseRouteParams<T extends Record<string, Parser<any>>>(input: Record<string, string | undefined> | URLSearchParams, parsers: T, options?: {
10
+ strict?: boolean;
11
+ }): {
12
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
13
+ };
14
+
15
+ export { type RouteParamsInput as R, loadRouteParams as l, parseRouteParams as p };
@@ -0,0 +1,15 @@
1
+ import { Parser } from './query/parsers.mjs';
2
+
3
+ type RouteParamsInput = Record<string, string | undefined> | URLSearchParams | Promise<Record<string, string | undefined> | URLSearchParams>;
4
+ declare function loadRouteParams<T extends Record<string, Parser<any>>>(input: RouteParamsInput, parsers: T, options?: {
5
+ strict?: boolean;
6
+ }): Promise<{
7
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
8
+ }>;
9
+ declare function parseRouteParams<T extends Record<string, Parser<any>>>(input: Record<string, string | undefined> | URLSearchParams, parsers: T, options?: {
10
+ strict?: boolean;
11
+ }): {
12
+ [K in keyof T]: ReturnType<T[K]["parse"]>;
13
+ };
14
+
15
+ export { type RouteParamsInput as R, loadRouteParams as l, parseRouteParams as p };