@farm.js/core 0.1.0-beta.10 → 0.1.0-beta.11

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 (184) 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 +94 -0
  4. package/dist/agent-runtime.d.ts +94 -0
  5. package/dist/api/route-manager.d.mts +66 -0
  6. package/dist/api/route-manager.d.ts +66 -0
  7. package/dist/api/runtime.d.mts +3 -0
  8. package/dist/api/runtime.d.ts +3 -0
  9. package/dist/api.d.mts +48 -0
  10. package/dist/api.d.ts +48 -0
  11. package/dist/app-BNE2FoZ4.d.mts +302 -0
  12. package/dist/app-DRGUmJ3s.d.ts +302 -0
  13. package/dist/app-markdown.d.mts +22 -0
  14. package/dist/app-markdown.d.ts +22 -0
  15. package/dist/cache.d.mts +192 -0
  16. package/dist/cache.d.ts +192 -0
  17. package/dist/{chunk-DTOWEQRV.mjs → chunk-4677KXB7.mjs} +2 -2
  18. package/dist/{chunk-3QDB3IA6.mjs → chunk-5EVQFRL2.mjs} +2 -2
  19. package/dist/{chunk-3QDB3IA6.mjs.map → chunk-5EVQFRL2.mjs.map} +1 -1
  20. package/dist/{chunk-E2AI2CW7.mjs → chunk-77BOAQHI.mjs} +4 -3
  21. package/dist/chunk-77BOAQHI.mjs.map +1 -0
  22. package/dist/client-BT1mFQas.d.mts +447 -0
  23. package/dist/client-Nn0q4eO4.d.ts +447 -0
  24. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  25. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  26. package/dist/client-plugins-Bc5jHcNr.d.ts +1927 -0
  27. package/dist/client-plugins-jsk-ZLzJ.d.mts +1927 -0
  28. package/dist/client-plugins.d.mts +22 -0
  29. package/dist/client-plugins.d.ts +22 -0
  30. package/dist/client.d.mts +447 -0
  31. package/dist/client.d.ts +447 -0
  32. package/dist/config.d.mts +29 -0
  33. package/dist/config.d.ts +29 -0
  34. package/dist/cron.d.mts +78 -0
  35. package/dist/cron.d.ts +78 -0
  36. package/dist/deferred.d.mts +42 -0
  37. package/dist/deferred.d.ts +42 -0
  38. package/dist/deployment.d.mts +34 -0
  39. package/dist/deployment.d.ts +34 -0
  40. package/dist/docs.d.mts +69 -0
  41. package/dist/docs.d.ts +69 -0
  42. package/dist/env-types.d.mts +12 -0
  43. package/dist/env-types.d.ts +12 -0
  44. package/dist/env.d.mts +45 -0
  45. package/dist/env.d.ts +45 -0
  46. package/dist/environment/vite.d.mts +22 -0
  47. package/dist/environment/vite.d.ts +22 -0
  48. package/dist/environment.d.mts +18 -0
  49. package/dist/environment.d.ts +18 -0
  50. package/dist/font.d.mts +70 -0
  51. package/dist/font.d.ts +70 -0
  52. package/dist/headers.d.mts +22 -0
  53. package/dist/headers.d.ts +22 -0
  54. package/dist/i18n/client.d.mts +32 -0
  55. package/dist/i18n/client.d.ts +32 -0
  56. package/dist/i18n/index.d.mts +20 -0
  57. package/dist/i18n/index.d.ts +20 -0
  58. package/dist/i18n/server.d.mts +30 -0
  59. package/dist/i18n/server.d.ts +30 -0
  60. package/dist/image/server.d.mts +37 -0
  61. package/dist/image/server.d.ts +37 -0
  62. package/dist/image/sharp.d.mts +7 -0
  63. package/dist/image/sharp.d.ts +7 -0
  64. package/dist/image-config-Duob7wER.d.mts +50 -0
  65. package/dist/image-config-Duob7wER.d.ts +50 -0
  66. package/dist/image.d.mts +39 -0
  67. package/dist/image.d.ts +39 -0
  68. package/dist/index.cjs +3 -2
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.d.mts +455 -0
  71. package/dist/index.d.ts +455 -0
  72. package/dist/index.mjs +3 -3
  73. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  74. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  75. package/dist/integrations.d.mts +22 -0
  76. package/dist/integrations.d.ts +22 -0
  77. package/dist/internal/build-runtime.cjs +3 -2
  78. package/dist/internal/build-runtime.cjs.map +1 -1
  79. package/dist/internal/build-runtime.d.mts +39 -0
  80. package/dist/internal/build-runtime.d.ts +39 -0
  81. package/dist/internal/build-runtime.mjs +3 -3
  82. package/dist/internal/client-runtime.d.mts +2 -0
  83. package/dist/internal/client-runtime.d.ts +2 -0
  84. package/dist/internal/config-runtime.d.mts +39 -0
  85. package/dist/internal/config-runtime.d.ts +39 -0
  86. package/dist/internal/production-node-env.d.mts +12 -0
  87. package/dist/internal/production-node-env.d.ts +12 -0
  88. package/dist/internal/production-runtime.d.mts +41 -0
  89. package/dist/internal/production-runtime.d.ts +41 -0
  90. package/dist/markdown.d.mts +60 -0
  91. package/dist/markdown.d.ts +60 -0
  92. package/dist/metadata-7ffpT3jr.d.mts +22 -0
  93. package/dist/metadata-JHn-8eht.d.ts +22 -0
  94. package/dist/middleware.d.mts +164 -0
  95. package/dist/middleware.d.ts +164 -0
  96. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  97. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  98. package/dist/navigation.d.mts +14 -0
  99. package/dist/navigation.d.ts +14 -0
  100. package/dist/observability.d.mts +335 -0
  101. package/dist/observability.d.ts +335 -0
  102. package/dist/params-BALtrRim.d.ts +15 -0
  103. package/dist/params-ry-lxqmy.d.mts +15 -0
  104. package/dist/plugin-BJDf43dc.d.mts +165 -0
  105. package/dist/plugin-BJDf43dc.d.ts +165 -0
  106. package/dist/plugin.cjs +2 -1
  107. package/dist/plugin.cjs.map +1 -1
  108. package/dist/plugin.d.mts +22 -0
  109. package/dist/plugin.d.ts +22 -0
  110. package/dist/plugin.mjs +2 -2
  111. package/dist/production-runtime-9KG7GuvW.d.ts +79 -0
  112. package/dist/production-runtime-B-fweKts.d.mts +79 -0
  113. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  114. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  115. package/dist/query/client.d.mts +61 -0
  116. package/dist/query/client.d.ts +61 -0
  117. package/dist/query/index.d.mts +90 -0
  118. package/dist/query/index.d.ts +90 -0
  119. package/dist/query/parsers.d.mts +25 -0
  120. package/dist/query/parsers.d.ts +25 -0
  121. package/dist/query/server.d.mts +55 -0
  122. package/dist/query/server.d.ts +55 -0
  123. package/dist/request-Dsq4kGW0.d.mts +6 -0
  124. package/dist/request-udtobOLv.d.ts +6 -0
  125. package/dist/request.d.mts +2 -0
  126. package/dist/request.d.ts +2 -0
  127. package/dist/resolver-DJqjLMg_.d.mts +14 -0
  128. package/dist/resolver-IH4RmPEl.d.ts +14 -0
  129. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  130. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  131. package/dist/router.d.mts +36 -0
  132. package/dist/router.d.ts +36 -0
  133. package/dist/routes.d.mts +224 -0
  134. package/dist/routes.d.ts +224 -0
  135. package/dist/runtime-9nQjVM7X.d.mts +206 -0
  136. package/dist/runtime-Cxpq6xZN.d.mts +27 -0
  137. package/dist/runtime-DgeS2skB.d.ts +206 -0
  138. package/dist/runtime-bv63eUiO.d.ts +27 -0
  139. package/dist/server-action-security.d.mts +43 -0
  140. package/dist/server-action-security.d.ts +43 -0
  141. package/dist/server-fn-client.d.mts +32 -0
  142. package/dist/server-fn-client.d.ts +32 -0
  143. package/dist/server-fn.d.mts +93 -0
  144. package/dist/server-fn.d.ts +93 -0
  145. package/dist/server-plugins.d.mts +55 -0
  146. package/dist/server-plugins.d.ts +55 -0
  147. package/dist/server-query-client.d.mts +50 -0
  148. package/dist/server-query-client.d.ts +50 -0
  149. package/dist/server-query.d.mts +36 -0
  150. package/dist/server-query.d.ts +36 -0
  151. package/dist/server.cjs +3 -2
  152. package/dist/server.cjs.map +1 -1
  153. package/dist/server.d.mts +48 -0
  154. package/dist/server.d.ts +48 -0
  155. package/dist/server.mjs +2 -2
  156. package/dist/storage.d.mts +52 -0
  157. package/dist/storage.d.ts +52 -0
  158. package/dist/testing.d.mts +101 -0
  159. package/dist/testing.d.ts +101 -0
  160. package/dist/transport-BmbGTXA5.d.mts +49 -0
  161. package/dist/transport-BmbGTXA5.d.ts +49 -0
  162. package/dist/types-BMxWr97v.d.mts +81 -0
  163. package/dist/types-BMxWr97v.d.ts +81 -0
  164. package/dist/types-C9N-nk5R.d.mts +53 -0
  165. package/dist/types-C9N-nk5R.d.ts +53 -0
  166. package/dist/types-D1A6-XvH.d.mts +73 -0
  167. package/dist/types-D1A6-XvH.d.ts +73 -0
  168. package/dist/utils-CA0z0c-2.d.ts +23 -0
  169. package/dist/utils-mYVkSOt2.d.mts +23 -0
  170. package/dist/version.cjs +1 -1
  171. package/dist/version.cjs.map +1 -1
  172. package/dist/version.d.mts +3 -0
  173. package/dist/version.d.ts +3 -0
  174. package/dist/version.mjs +1 -1
  175. package/dist/vite.cjs +3 -2
  176. package/dist/vite.cjs.map +1 -1
  177. package/dist/vite.d.mts +22 -0
  178. package/dist/vite.d.ts +22 -0
  179. package/dist/vite.mjs +2 -2
  180. package/dist/workflows.d.mts +110 -0
  181. package/dist/workflows.d.ts +110 -0
  182. package/package.json +1 -1
  183. package/dist/chunk-E2AI2CW7.mjs.map +0 -1
  184. /package/dist/{chunk-DTOWEQRV.mjs.map → chunk-4677KXB7.mjs.map} +0 -0
@@ -0,0 +1,192 @@
1
+ declare function applyFarmCacheInvalidations(keys: unknown): void;
2
+
3
+ type RevalidateTagProfile = "max" | "default" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | {
4
+ expire?: number;
5
+ };
6
+ interface FarmCacheOptions {
7
+ /**
8
+ * Tag cached data so it can be invalidated with revalidateTag/updateTag.
9
+ */
10
+ tags?: readonly string[];
11
+ /**
12
+ * Path tags let revalidatePath invalidate data tied to a route.
13
+ */
14
+ paths?: readonly string[];
15
+ /**
16
+ * Time in seconds before the entry becomes stale. False means no TTL.
17
+ */
18
+ revalidate?: number | false;
19
+ }
20
+ interface FarmCacheSetOptions extends FarmCacheOptions {
21
+ createdAt?: number;
22
+ }
23
+ type RouteDataCacheKey = string | readonly unknown[];
24
+ type FarmCacheInvalidationTarget = {
25
+ key: RouteDataCacheKey;
26
+ } | {
27
+ path: string;
28
+ } | {
29
+ tag: string;
30
+ };
31
+ declare const FARM_DEFINED_CACHE_KEY_DATA: unique symbol;
32
+ /**
33
+ * A regular Farm cache key carrying the data shape stored under that key.
34
+ *
35
+ * The brand exists only in TypeScript. At runtime the value remains the
36
+ * original string or structured array, so all existing cache APIs continue to
37
+ * accept untyped keys.
38
+ */
39
+ type DefinedCacheKey<TData, TKey extends RouteDataCacheKey = RouteDataCacheKey> = TKey & {
40
+ readonly [FARM_DEFINED_CACHE_KEY_DATA]: TData;
41
+ };
42
+ type CacheKeyFactory<TData, TArguments extends readonly unknown[], TKey extends RouteDataCacheKey = RouteDataCacheKey> = (...args: TArguments) => DefinedCacheKey<TData, TKey>;
43
+ type InferCacheKeyData<TKey> = TKey extends DefinedCacheKey<infer TData, RouteDataCacheKey> ? TData : unknown;
44
+ /**
45
+ * Optionally add a data type to an existing string/array cache-key factory.
46
+ *
47
+ * This helper does not introduce a new runtime key representation. Calling the
48
+ * returned factory produces the exact key returned by `factory`.
49
+ */
50
+ declare function defineCacheKey<TData>(): <const TArguments extends readonly unknown[], const TKey extends RouteDataCacheKey>(factory: (...args: TArguments) => TKey) => CacheKeyFactory<TData, TArguments, TKey>;
51
+ interface FarmCacheEntry<T = unknown> {
52
+ key: string;
53
+ value: T;
54
+ tags: readonly string[];
55
+ /**
56
+ * Adapter tag versions captured before the cached value was produced.
57
+ * A later version makes the entry stale across every server instance.
58
+ */
59
+ tagVersions?: Readonly<Record<string, number>>;
60
+ createdAt: number;
61
+ createdVersion?: number;
62
+ revalidate?: number | false;
63
+ }
64
+ /**
65
+ * Asynchronous persistence contract used by distributed Farm caches.
66
+ *
67
+ * Implementations are responsible for serializing cache entries and making
68
+ * tag version updates atomic when the backing service supports it.
69
+ */
70
+ interface FarmCacheAdapter {
71
+ readonly name?: string;
72
+ get<T = unknown>(key: string): Promise<FarmCacheEntry<T> | null | undefined>;
73
+ set<T = unknown>(key: string, entry: FarmCacheEntry<T>): Promise<void>;
74
+ delete(key: string): Promise<void>;
75
+ clear?(): Promise<void>;
76
+ getTagVersions?(tags: readonly string[]): Promise<Readonly<Record<string, number>>>;
77
+ invalidateTags?(tags: readonly string[]): Promise<void>;
78
+ /** Atomically acquire a short-lived regeneration lease. */
79
+ acquireLease?(key: string, ttlMs: number): Promise<string | null | undefined>;
80
+ /** Release the lease only when the supplied ownership token still matches. */
81
+ releaseLease?(key: string, token: string): Promise<void>;
82
+ }
83
+ interface FarmCacheUserConfig {
84
+ /** Shared cache implementation, for example a Redis-backed adapter. */
85
+ adapter?: FarmCacheAdapter;
86
+ /** Prefix isolating applications and deployments sharing one adapter. */
87
+ namespace?: string;
88
+ /**
89
+ * Coordinate cache fills across processes when the adapter implements
90
+ * acquireLease/releaseLease. Set false to disable.
91
+ */
92
+ lease?: false | {
93
+ ttlMs?: number;
94
+ waitTimeoutMs?: number;
95
+ pollIntervalMs?: number;
96
+ };
97
+ }
98
+ interface FarmCacheStorage {
99
+ getItem<T = unknown>(key: string): Promise<T | null>;
100
+ setItem<T = unknown>(key: string, value: T): Promise<unknown>;
101
+ removeItem(key: string): Promise<unknown>;
102
+ clear?(base?: string): Promise<unknown>;
103
+ }
104
+ interface StorageFarmCacheAdapterOptions {
105
+ /** Prefix used inside the supplied storage client. */
106
+ base?: string;
107
+ }
108
+ /**
109
+ * Adapt a Farm/unstorage-compatible key-value client to the cache contract.
110
+ *
111
+ * This is a portable baseline adapter. Provider-specific adapters should use
112
+ * their atomic increment/transaction primitives for tag invalidation.
113
+ */
114
+ declare function storageCacheAdapter(storage: FarmCacheStorage, options?: StorageFarmCacheAdapterOptions): FarmCacheAdapter;
115
+ interface GetFarmCacheEntryOptions {
116
+ allowStale?: boolean;
117
+ now?: number;
118
+ }
119
+ interface FarmCacheStaleEntry {
120
+ tags: Iterable<string>;
121
+ createdAt: number;
122
+ createdVersion?: number;
123
+ revalidate?: number | false;
124
+ }
125
+ declare class FarmDataCache {
126
+ private entries;
127
+ private inflight;
128
+ private invalidatedTagVersions;
129
+ private version;
130
+ private adapter?;
131
+ private namespace;
132
+ private local;
133
+ private lease;
134
+ constructor(config?: FarmCacheUserConfig);
135
+ configure(config?: FarmCacheUserConfig): void;
136
+ get adapterName(): string;
137
+ get hasAdapter(): boolean;
138
+ get size(): number;
139
+ get<T>(key: string, options?: GetFarmCacheEntryOptions): T | undefined;
140
+ getEntry<T = unknown>(key: string, options?: GetFarmCacheEntryOptions): FarmCacheEntry<T> | undefined;
141
+ getEntryAsync<T = unknown>(key: string, options?: GetFarmCacheEntryOptions): Promise<FarmCacheEntry<T> | undefined>;
142
+ set<T>(key: string, value: T, options?: FarmCacheSetOptions): FarmCacheEntry<T>;
143
+ setAsync<T>(key: string, value: T, options?: FarmCacheSetOptions, tagVersions?: Readonly<Record<string, number>>): Promise<FarmCacheEntry<T>>;
144
+ delete(key: string): boolean;
145
+ deleteAsync(key: string): Promise<boolean>;
146
+ clear(): void;
147
+ clearAsync(): Promise<void>;
148
+ isStale(entry: FarmCacheStaleEntry, now?: number): boolean;
149
+ isStaleAsync(entry: FarmCacheEntry, now?: number): Promise<boolean>;
150
+ revalidateTag(tag: string, options?: {
151
+ source?: "revalidateTag" | "updateTag";
152
+ profile?: RevalidateTagProfile;
153
+ }): number;
154
+ revalidateTagAsync(tag: string, options?: {
155
+ source?: "revalidateTag" | "updateTag";
156
+ profile?: RevalidateTagProfile;
157
+ }): Promise<number>;
158
+ revalidatePath(routePath: string): number;
159
+ revalidatePathAsync(routePath: string): Promise<number>;
160
+ getOrSet<T>(key: string, producer: () => Promise<T> | T, options?: FarmCacheOptions): Promise<T>;
161
+ private fillCacheEntry;
162
+ private waitForAdapterEntry;
163
+ private countEntriesForTag;
164
+ private countEntriesForTags;
165
+ private invalidateTag;
166
+ private toPublicEntry;
167
+ private hydrateLocalEntry;
168
+ private createAdapterKey;
169
+ private createAdapterTag;
170
+ private getAdapterTagVersions;
171
+ private isAdapterEntryStale;
172
+ }
173
+ declare function getFarmDataCache(): FarmDataCache;
174
+ declare function configureFarmCache(config: FarmCacheUserConfig | undefined): void;
175
+ declare function unstable_cache<Args extends unknown[], Result>(fn: (...args: Args) => Result | Promise<Result>, keyParts?: readonly unknown[], options?: FarmCacheOptions): (...args: Args) => Promise<Result>;
176
+ declare function revalidateTag(_tag: string, _profile?: RevalidateTagProfile): void | Promise<void>;
177
+ declare function updateTag(tag: string): void | Promise<void>;
178
+ declare function revalidatePath(routePath: string): void | Promise<void>;
179
+ declare function invalidate(key: RouteDataCacheKey): void | Promise<void>;
180
+ declare function invalidateRouteData(key: RouteDataCacheKey): void | Promise<void>;
181
+ /**
182
+ * Apply a normalized set of invalidation targets and return browser cache keys
183
+ * that should be carried with an action/endpoint response.
184
+ */
185
+ declare function applyFarmCacheInvalidationTargets(targets: readonly FarmCacheInvalidationTarget[]): Promise<readonly string[]>;
186
+ declare function createPathCacheTag(routePath: string): string;
187
+ declare function createRouteDataCacheTag(key: RouteDataCacheKey): string;
188
+ declare function createRouteDataCacheKey(key: RouteDataCacheKey): string;
189
+ declare function normalizeRevalidatePath(routePath: string): string;
190
+ declare function createFarmCacheKey(parts: readonly unknown[]): string;
191
+
192
+ export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, applyFarmCacheInvalidations, configureFarmCache, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
@@ -0,0 +1,192 @@
1
+ declare function applyFarmCacheInvalidations(keys: unknown): void;
2
+
3
+ type RevalidateTagProfile = "max" | "default" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | {
4
+ expire?: number;
5
+ };
6
+ interface FarmCacheOptions {
7
+ /**
8
+ * Tag cached data so it can be invalidated with revalidateTag/updateTag.
9
+ */
10
+ tags?: readonly string[];
11
+ /**
12
+ * Path tags let revalidatePath invalidate data tied to a route.
13
+ */
14
+ paths?: readonly string[];
15
+ /**
16
+ * Time in seconds before the entry becomes stale. False means no TTL.
17
+ */
18
+ revalidate?: number | false;
19
+ }
20
+ interface FarmCacheSetOptions extends FarmCacheOptions {
21
+ createdAt?: number;
22
+ }
23
+ type RouteDataCacheKey = string | readonly unknown[];
24
+ type FarmCacheInvalidationTarget = {
25
+ key: RouteDataCacheKey;
26
+ } | {
27
+ path: string;
28
+ } | {
29
+ tag: string;
30
+ };
31
+ declare const FARM_DEFINED_CACHE_KEY_DATA: unique symbol;
32
+ /**
33
+ * A regular Farm cache key carrying the data shape stored under that key.
34
+ *
35
+ * The brand exists only in TypeScript. At runtime the value remains the
36
+ * original string or structured array, so all existing cache APIs continue to
37
+ * accept untyped keys.
38
+ */
39
+ type DefinedCacheKey<TData, TKey extends RouteDataCacheKey = RouteDataCacheKey> = TKey & {
40
+ readonly [FARM_DEFINED_CACHE_KEY_DATA]: TData;
41
+ };
42
+ type CacheKeyFactory<TData, TArguments extends readonly unknown[], TKey extends RouteDataCacheKey = RouteDataCacheKey> = (...args: TArguments) => DefinedCacheKey<TData, TKey>;
43
+ type InferCacheKeyData<TKey> = TKey extends DefinedCacheKey<infer TData, RouteDataCacheKey> ? TData : unknown;
44
+ /**
45
+ * Optionally add a data type to an existing string/array cache-key factory.
46
+ *
47
+ * This helper does not introduce a new runtime key representation. Calling the
48
+ * returned factory produces the exact key returned by `factory`.
49
+ */
50
+ declare function defineCacheKey<TData>(): <const TArguments extends readonly unknown[], const TKey extends RouteDataCacheKey>(factory: (...args: TArguments) => TKey) => CacheKeyFactory<TData, TArguments, TKey>;
51
+ interface FarmCacheEntry<T = unknown> {
52
+ key: string;
53
+ value: T;
54
+ tags: readonly string[];
55
+ /**
56
+ * Adapter tag versions captured before the cached value was produced.
57
+ * A later version makes the entry stale across every server instance.
58
+ */
59
+ tagVersions?: Readonly<Record<string, number>>;
60
+ createdAt: number;
61
+ createdVersion?: number;
62
+ revalidate?: number | false;
63
+ }
64
+ /**
65
+ * Asynchronous persistence contract used by distributed Farm caches.
66
+ *
67
+ * Implementations are responsible for serializing cache entries and making
68
+ * tag version updates atomic when the backing service supports it.
69
+ */
70
+ interface FarmCacheAdapter {
71
+ readonly name?: string;
72
+ get<T = unknown>(key: string): Promise<FarmCacheEntry<T> | null | undefined>;
73
+ set<T = unknown>(key: string, entry: FarmCacheEntry<T>): Promise<void>;
74
+ delete(key: string): Promise<void>;
75
+ clear?(): Promise<void>;
76
+ getTagVersions?(tags: readonly string[]): Promise<Readonly<Record<string, number>>>;
77
+ invalidateTags?(tags: readonly string[]): Promise<void>;
78
+ /** Atomically acquire a short-lived regeneration lease. */
79
+ acquireLease?(key: string, ttlMs: number): Promise<string | null | undefined>;
80
+ /** Release the lease only when the supplied ownership token still matches. */
81
+ releaseLease?(key: string, token: string): Promise<void>;
82
+ }
83
+ interface FarmCacheUserConfig {
84
+ /** Shared cache implementation, for example a Redis-backed adapter. */
85
+ adapter?: FarmCacheAdapter;
86
+ /** Prefix isolating applications and deployments sharing one adapter. */
87
+ namespace?: string;
88
+ /**
89
+ * Coordinate cache fills across processes when the adapter implements
90
+ * acquireLease/releaseLease. Set false to disable.
91
+ */
92
+ lease?: false | {
93
+ ttlMs?: number;
94
+ waitTimeoutMs?: number;
95
+ pollIntervalMs?: number;
96
+ };
97
+ }
98
+ interface FarmCacheStorage {
99
+ getItem<T = unknown>(key: string): Promise<T | null>;
100
+ setItem<T = unknown>(key: string, value: T): Promise<unknown>;
101
+ removeItem(key: string): Promise<unknown>;
102
+ clear?(base?: string): Promise<unknown>;
103
+ }
104
+ interface StorageFarmCacheAdapterOptions {
105
+ /** Prefix used inside the supplied storage client. */
106
+ base?: string;
107
+ }
108
+ /**
109
+ * Adapt a Farm/unstorage-compatible key-value client to the cache contract.
110
+ *
111
+ * This is a portable baseline adapter. Provider-specific adapters should use
112
+ * their atomic increment/transaction primitives for tag invalidation.
113
+ */
114
+ declare function storageCacheAdapter(storage: FarmCacheStorage, options?: StorageFarmCacheAdapterOptions): FarmCacheAdapter;
115
+ interface GetFarmCacheEntryOptions {
116
+ allowStale?: boolean;
117
+ now?: number;
118
+ }
119
+ interface FarmCacheStaleEntry {
120
+ tags: Iterable<string>;
121
+ createdAt: number;
122
+ createdVersion?: number;
123
+ revalidate?: number | false;
124
+ }
125
+ declare class FarmDataCache {
126
+ private entries;
127
+ private inflight;
128
+ private invalidatedTagVersions;
129
+ private version;
130
+ private adapter?;
131
+ private namespace;
132
+ private local;
133
+ private lease;
134
+ constructor(config?: FarmCacheUserConfig);
135
+ configure(config?: FarmCacheUserConfig): void;
136
+ get adapterName(): string;
137
+ get hasAdapter(): boolean;
138
+ get size(): number;
139
+ get<T>(key: string, options?: GetFarmCacheEntryOptions): T | undefined;
140
+ getEntry<T = unknown>(key: string, options?: GetFarmCacheEntryOptions): FarmCacheEntry<T> | undefined;
141
+ getEntryAsync<T = unknown>(key: string, options?: GetFarmCacheEntryOptions): Promise<FarmCacheEntry<T> | undefined>;
142
+ set<T>(key: string, value: T, options?: FarmCacheSetOptions): FarmCacheEntry<T>;
143
+ setAsync<T>(key: string, value: T, options?: FarmCacheSetOptions, tagVersions?: Readonly<Record<string, number>>): Promise<FarmCacheEntry<T>>;
144
+ delete(key: string): boolean;
145
+ deleteAsync(key: string): Promise<boolean>;
146
+ clear(): void;
147
+ clearAsync(): Promise<void>;
148
+ isStale(entry: FarmCacheStaleEntry, now?: number): boolean;
149
+ isStaleAsync(entry: FarmCacheEntry, now?: number): Promise<boolean>;
150
+ revalidateTag(tag: string, options?: {
151
+ source?: "revalidateTag" | "updateTag";
152
+ profile?: RevalidateTagProfile;
153
+ }): number;
154
+ revalidateTagAsync(tag: string, options?: {
155
+ source?: "revalidateTag" | "updateTag";
156
+ profile?: RevalidateTagProfile;
157
+ }): Promise<number>;
158
+ revalidatePath(routePath: string): number;
159
+ revalidatePathAsync(routePath: string): Promise<number>;
160
+ getOrSet<T>(key: string, producer: () => Promise<T> | T, options?: FarmCacheOptions): Promise<T>;
161
+ private fillCacheEntry;
162
+ private waitForAdapterEntry;
163
+ private countEntriesForTag;
164
+ private countEntriesForTags;
165
+ private invalidateTag;
166
+ private toPublicEntry;
167
+ private hydrateLocalEntry;
168
+ private createAdapterKey;
169
+ private createAdapterTag;
170
+ private getAdapterTagVersions;
171
+ private isAdapterEntryStale;
172
+ }
173
+ declare function getFarmDataCache(): FarmDataCache;
174
+ declare function configureFarmCache(config: FarmCacheUserConfig | undefined): void;
175
+ declare function unstable_cache<Args extends unknown[], Result>(fn: (...args: Args) => Result | Promise<Result>, keyParts?: readonly unknown[], options?: FarmCacheOptions): (...args: Args) => Promise<Result>;
176
+ declare function revalidateTag(_tag: string, _profile?: RevalidateTagProfile): void | Promise<void>;
177
+ declare function updateTag(tag: string): void | Promise<void>;
178
+ declare function revalidatePath(routePath: string): void | Promise<void>;
179
+ declare function invalidate(key: RouteDataCacheKey): void | Promise<void>;
180
+ declare function invalidateRouteData(key: RouteDataCacheKey): void | Promise<void>;
181
+ /**
182
+ * Apply a normalized set of invalidation targets and return browser cache keys
183
+ * that should be carried with an action/endpoint response.
184
+ */
185
+ declare function applyFarmCacheInvalidationTargets(targets: readonly FarmCacheInvalidationTarget[]): Promise<readonly string[]>;
186
+ declare function createPathCacheTag(routePath: string): string;
187
+ declare function createRouteDataCacheTag(key: RouteDataCacheKey): string;
188
+ declare function createRouteDataCacheKey(key: RouteDataCacheKey): string;
189
+ declare function normalizeRevalidatePath(routePath: string): string;
190
+ declare function createFarmCacheKey(parts: readonly unknown[]): string;
191
+
192
+ export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, applyFarmCacheInvalidations, configureFarmCache, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
@@ -33,7 +33,7 @@ import {
33
33
  getClientModuleMetadata,
34
34
  mergeFarmFontCss,
35
35
  resolveRouteRenderingConfigFromFile
36
- } from "./chunk-E2AI2CW7.mjs";
36
+ } from "./chunk-77BOAQHI.mjs";
37
37
  import {
38
38
  farmEnvironmentFunctionsPlugin
39
39
  } from "./chunk-V6WE6JSZ.mjs";
@@ -6320,4 +6320,4 @@ __name(buildNitro, "buildNitro");
6320
6320
  export {
6321
6321
  build
6322
6322
  };
6323
- //# sourceMappingURL=chunk-DTOWEQRV.mjs.map
6323
+ //# sourceMappingURL=chunk-4677KXB7.mjs.map
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.1.0-beta.10";
2
+ var version = "0.1.0-beta.11";
3
3
 
4
4
  // src/version.ts
5
5
  var FARM_VERSION = version;
@@ -7,4 +7,4 @@ var FARM_VERSION = version;
7
7
  export {
8
8
  FARM_VERSION
9
9
  };
10
- //# sourceMappingURL=chunk-3QDB3IA6.mjs.map
10
+ //# sourceMappingURL=chunk-5EVQFRL2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/version.ts"],"sourcesContent":["{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.10\",\n \"description\": \"Core Farm.js framework for modern integrated apps\",\n \"keywords\": [\n \"@farm.js/core\",\n \"framework\",\n \"react\",\n \"rsc\",\n \"server-components\",\n \"ssr\",\n \"vite\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/farming-labs/farm.js\",\n \"directory\": \"packages/farm\"\n },\n \"files\": [\n \"dist\",\n \"types\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \"middleware\": [\n \"./types/middleware.d.ts\",\n \"./dist/middleware.d.ts\"\n ],\n \"version\": [\n \"./dist/version.d.ts\"\n ],\n \"router\": [\n \"./dist/router.d.ts\"\n ],\n \"routes\": [\n \"./dist/routes.d.ts\"\n ],\n \"storage\": [\n \"./dist/storage.d.ts\"\n ],\n \"integrations\": [\n \"./dist/integrations.d.ts\"\n ],\n \"cache\": [\n \"./dist/cache.d.ts\"\n ],\n \"deferred\": [\n \"./dist/deferred.d.ts\"\n ],\n \"after\": [\n \"./dist/after.d.ts\"\n ],\n \"navigation\": [\n \"./dist/navigation.d.ts\"\n ],\n \"headers\": [\n \"./dist/headers.d.ts\"\n ],\n \"docs\": [\n \"./dist/docs.d.ts\"\n ],\n \"markdown\": [\n \"./dist/markdown.d.ts\"\n ],\n \"app-markdown\": [\n \"./dist/app-markdown.d.ts\"\n ],\n \"observability\": [\n \"./dist/observability.d.ts\"\n ],\n \"workflows\": [\n \"./dist/workflows.d.ts\"\n ],\n \"cron\": [\n \"./dist/cron.d.ts\"\n ],\n \"server-fn\": [\n \"./dist/server-fn.d.ts\"\n ],\n \"server-fn/client\": [\n \"./dist/server-fn-client.d.ts\"\n ],\n \"server-action-security\": [\n \"./dist/server-action-security.d.ts\"\n ],\n \"deployment\": [\n \"./dist/deployment.d.ts\"\n ],\n \"env\": [\n \"./dist/env.d.ts\"\n ],\n \"env-types\": [\n \"./dist/env-types.d.ts\"\n ],\n \"environment\": [\n \"./dist/environment.d.ts\"\n ],\n \"environment/vite\": [\n \"./dist/environment/vite.d.ts\"\n ],\n \"font\": [\n \"./dist/font.d.ts\"\n ],\n \"testing\": [\n \"./dist/testing.d.ts\"\n ],\n \"agent-runtime\": [\n \"./dist/agent-runtime.d.ts\"\n ],\n \"image\": [\n \"./types/image.d.ts\",\n \"./dist/image.d.ts\"\n ],\n \"image/server\": [\n \"./dist/image/server.d.ts\"\n ],\n \"image/sharp\": [\n \"./dist/image/sharp.d.ts\"\n ],\n \"i18n\": [\n \"./dist/i18n/index.d.ts\"\n ],\n \"i18n/server\": [\n \"./dist/i18n/server.d.ts\"\n ],\n \"i18n/client\": [\n \"./dist/i18n/client.d.ts\"\n ],\n \"internal/production-runtime\": [\n \"./dist/internal/production-runtime.d.ts\"\n ],\n \"internal/client-runtime\": [\n \"./dist/internal/client-runtime.d.ts\"\n ],\n \"internal/build-runtime\": [\n \"./dist/internal/build-runtime.d.ts\"\n ],\n \"internal/config-runtime\": [\n \"./dist/internal/config-runtime.d.ts\"\n ],\n \"internal/production-node-env\": [\n \"./dist/internal/production-node-env.d.ts\"\n ],\n \"config\": [\n \"./dist/config.d.ts\"\n ],\n \"api\": [\n \"./types/api.d.ts\",\n \"./dist/api.d.ts\"\n ],\n \"api/route-manager\": [\n \"./dist/api/route-manager.d.ts\"\n ],\n \"api/runtime\": [\n \"./dist/api/runtime.d.ts\"\n ],\n \"request\": [\n \"./dist/request.d.ts\"\n ],\n \"client\": [\n \"./types/client.d.ts\",\n \"./dist/client.d.ts\"\n ],\n \"server\": [\n \"./dist/server.d.ts\"\n ],\n \"vite\": [\n \"./dist/vite.d.ts\"\n ],\n \"plugin\": [\n \"./dist/plugin.d.ts\"\n ],\n \"query\": [\n \"./dist/query/index.d.ts\"\n ],\n \"*\": [\n \"./dist/*.d.ts\"\n ]\n }\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./version\": {\n \"types\": \"./dist/version.d.ts\",\n \"import\": \"./dist/version.mjs\",\n \"require\": \"./dist/version.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./server\": {\n \"types\": \"./dist/server.d.ts\",\n \"import\": \"./dist/server.mjs\",\n \"require\": \"./dist/server.cjs\"\n },\n \"./client\": {\n \"types\": \"./types/client.d.ts\",\n \"import\": \"./dist/client.mjs\",\n \"require\": \"./dist/client.cjs\"\n },\n \"./storage\": {\n \"types\": \"./dist/storage.d.ts\",\n \"import\": \"./dist/storage.mjs\",\n \"require\": \"./dist/storage.cjs\"\n },\n \"./integrations\": {\n \"types\": \"./dist/integrations.d.ts\",\n \"import\": \"./dist/integrations.mjs\",\n \"require\": \"./dist/integrations.cjs\"\n },\n \"./cache\": {\n \"types\": \"./dist/cache.d.ts\",\n \"import\": \"./dist/cache.mjs\",\n \"require\": \"./dist/cache.cjs\"\n },\n \"./deferred\": {\n \"types\": \"./dist/deferred.d.ts\",\n \"import\": \"./dist/deferred.mjs\",\n \"require\": \"./dist/deferred.cjs\"\n },\n \"./after\": {\n \"types\": \"./dist/after.d.ts\",\n \"import\": \"./dist/after.mjs\",\n \"require\": \"./dist/after.cjs\"\n },\n \"./navigation\": {\n \"types\": \"./dist/navigation.d.ts\",\n \"import\": \"./dist/navigation.mjs\",\n \"require\": \"./dist/navigation.cjs\"\n },\n \"./headers\": {\n \"types\": \"./dist/headers.d.ts\",\n \"import\": \"./dist/headers.mjs\",\n \"require\": \"./dist/headers.cjs\"\n },\n \"./docs\": {\n \"types\": \"./dist/docs.d.ts\",\n \"import\": \"./dist/docs.mjs\",\n \"require\": \"./dist/docs.cjs\"\n },\n \"./markdown\": {\n \"types\": \"./dist/markdown.d.ts\",\n \"import\": \"./dist/markdown.mjs\",\n \"require\": \"./dist/markdown.cjs\"\n },\n \"./app-markdown\": {\n \"types\": \"./dist/app-markdown.d.ts\",\n \"import\": \"./dist/app-markdown.mjs\",\n \"require\": \"./dist/app-markdown.cjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability.d.ts\",\n \"import\": \"./dist/observability.mjs\",\n \"require\": \"./dist/observability.cjs\"\n },\n \"./workflows\": {\n \"types\": \"./dist/workflows.d.ts\",\n \"import\": \"./dist/workflows.mjs\",\n \"require\": \"./dist/workflows.cjs\"\n },\n \"./cron\": {\n \"types\": \"./dist/cron.d.ts\",\n \"import\": \"./dist/cron.mjs\",\n \"require\": \"./dist/cron.cjs\"\n },\n \"./server-fn\": {\n \"types\": \"./dist/server-fn.d.ts\",\n \"import\": \"./dist/server-fn.mjs\",\n \"require\": \"./dist/server-fn.cjs\"\n },\n \"./server-fn/client\": {\n \"types\": \"./dist/server-fn-client.d.ts\",\n \"import\": \"./dist/server-fn-client.mjs\",\n \"require\": \"./dist/server-fn-client.cjs\"\n },\n \"./server-query\": {\n \"types\": \"./dist/server-query.d.ts\",\n \"import\": \"./dist/server-query.mjs\",\n \"require\": \"./dist/server-query.cjs\"\n },\n \"./server-query/client\": {\n \"types\": \"./dist/server-query-client.d.ts\",\n \"import\": \"./dist/server-query-client.mjs\",\n \"require\": \"./dist/server-query-client.cjs\"\n },\n \"./server-action-security\": {\n \"types\": \"./dist/server-action-security.d.ts\",\n \"import\": \"./dist/server-action-security.mjs\",\n \"require\": \"./dist/server-action-security.cjs\"\n },\n \"./deployment\": {\n \"types\": \"./dist/deployment.d.ts\",\n \"import\": \"./dist/deployment.mjs\",\n \"require\": \"./dist/deployment.cjs\"\n },\n \"./env\": {\n \"types\": \"./dist/env.d.ts\",\n \"import\": \"./dist/env.mjs\",\n \"require\": \"./dist/env.cjs\"\n },\n \"./env-types\": {\n \"types\": \"./dist/env-types.d.ts\",\n \"import\": \"./dist/env-types.mjs\",\n \"require\": \"./dist/env-types.cjs\"\n },\n \"./environment\": {\n \"types\": \"./dist/environment.d.ts\",\n \"import\": \"./dist/environment.mjs\",\n \"require\": \"./dist/environment.cjs\"\n },\n \"./environment/vite\": {\n \"types\": \"./dist/environment/vite.d.ts\",\n \"import\": \"./dist/environment/vite.mjs\",\n \"require\": \"./dist/environment/vite.cjs\"\n },\n \"./font\": {\n \"types\": \"./dist/font.d.ts\",\n \"import\": \"./dist/font.mjs\",\n \"require\": \"./dist/font.cjs\"\n },\n \"./vite\": {\n \"types\": \"./dist/vite.d.ts\",\n \"import\": \"./dist/vite.mjs\",\n \"require\": \"./dist/vite.cjs\"\n },\n \"./plugin\": {\n \"types\": \"./dist/plugin.d.ts\",\n \"import\": \"./dist/plugin.mjs\",\n \"require\": \"./dist/plugin.cjs\"\n },\n \"./plugin/server\": {\n \"types\": \"./dist/server-plugins.d.ts\",\n \"import\": \"./dist/server-plugins.mjs\",\n \"require\": \"./dist/server-plugins.cjs\"\n },\n \"./plugin/client\": {\n \"types\": \"./dist/client-plugins.d.ts\",\n \"import\": \"./dist/client-plugins.mjs\",\n \"require\": \"./dist/client-plugins.cjs\"\n },\n \"./query\": {\n \"types\": \"./dist/query/index.d.ts\",\n \"import\": \"./dist/query/index.mjs\",\n \"require\": \"./dist/query/index.cjs\"\n },\n \"./query/parsers\": {\n \"types\": \"./dist/query/parsers.d.ts\",\n \"import\": \"./dist/query/parsers.mjs\",\n \"require\": \"./dist/query/parsers.cjs\"\n },\n \"./query/client\": {\n \"types\": \"./dist/query/client.d.ts\",\n \"import\": \"./dist/query/client.mjs\",\n \"require\": \"./dist/query/client.cjs\"\n },\n \"./query/server\": {\n \"types\": \"./dist/query/server.d.ts\",\n \"import\": \"./dist/query/server.mjs\",\n \"require\": \"./dist/query/server.cjs\"\n },\n \"./middleware\": {\n \"types\": \"./dist/middleware.d.ts\",\n \"import\": \"./dist/middleware.mjs\",\n \"require\": \"./dist/middleware.cjs\"\n },\n \"./api\": {\n \"types\": \"./dist/api.d.ts\",\n \"import\": \"./dist/api.mjs\",\n \"require\": \"./dist/api.cjs\"\n },\n \"./api/route-manager\": {\n \"types\": \"./dist/api/route-manager.d.ts\",\n \"import\": \"./dist/api/route-manager.mjs\",\n \"require\": \"./dist/api/route-manager.cjs\"\n },\n \"./api/runtime\": {\n \"types\": \"./dist/api/runtime.d.ts\",\n \"import\": \"./dist/api/runtime.mjs\",\n \"require\": \"./dist/api/runtime.cjs\"\n },\n \"./request\": {\n \"types\": \"./dist/request.d.ts\",\n \"import\": \"./dist/request.mjs\",\n \"require\": \"./dist/request.cjs\"\n },\n \"./router\": {\n \"types\": \"./dist/router.d.ts\",\n \"import\": \"./dist/router.mjs\",\n \"require\": \"./dist/router.cjs\"\n },\n \"./routes\": {\n \"types\": \"./dist/routes.d.ts\",\n \"import\": \"./dist/routes.mjs\",\n \"require\": \"./dist/routes.cjs\"\n },\n \"./testing\": {\n \"types\": \"./dist/testing.d.ts\",\n \"import\": \"./dist/testing.mjs\",\n \"require\": \"./dist/testing.cjs\"\n },\n \"./agent-runtime\": {\n \"types\": \"./dist/agent-runtime.d.ts\",\n \"import\": \"./dist/agent-runtime.mjs\",\n \"require\": \"./dist/agent-runtime.cjs\"\n },\n \"./image\": {\n \"types\": \"./types/image.d.ts\",\n \"import\": \"./dist/image.mjs\",\n \"require\": \"./dist/image.cjs\"\n },\n \"./image/server\": {\n \"types\": \"./dist/image/server.d.ts\",\n \"import\": \"./dist/image/server.mjs\",\n \"require\": \"./dist/image/server.cjs\"\n },\n \"./image/sharp\": {\n \"types\": \"./dist/image/sharp.d.ts\",\n \"import\": \"./dist/image/sharp.mjs\",\n \"require\": \"./dist/image/sharp.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.mjs\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./i18n/server\": {\n \"types\": \"./dist/i18n/server.d.ts\",\n \"import\": \"./dist/i18n/server.mjs\",\n \"require\": \"./dist/i18n/server.cjs\"\n },\n \"./i18n/client\": {\n \"types\": \"./dist/i18n/client.d.ts\",\n \"import\": \"./dist/i18n/client.mjs\",\n \"require\": \"./dist/i18n/client.cjs\"\n },\n \"./internal/production-runtime\": {\n \"types\": \"./dist/internal/production-runtime.d.ts\",\n \"import\": \"./dist/internal/production-runtime.mjs\",\n \"require\": \"./dist/internal/production-runtime.cjs\"\n },\n \"./internal/client-runtime\": {\n \"types\": \"./dist/internal/client-runtime.d.ts\",\n \"import\": \"./dist/internal/client-runtime.mjs\",\n \"require\": \"./dist/internal/client-runtime.cjs\"\n },\n \"./internal/build-runtime\": {\n \"types\": \"./dist/internal/build-runtime.d.ts\",\n \"import\": \"./dist/internal/build-runtime.mjs\",\n \"require\": \"./dist/internal/build-runtime.cjs\"\n },\n \"./internal/config-runtime\": {\n \"types\": \"./dist/internal/config-runtime.d.ts\",\n \"import\": \"./dist/internal/config-runtime.mjs\",\n \"require\": \"./dist/internal/config-runtime.cjs\"\n },\n \"./internal/production-node-env\": {\n \"types\": \"./dist/internal/production-node-env.d.ts\",\n \"import\": \"./dist/internal/production-node-env.mjs\",\n \"require\": \"./dist/internal/production-node-env.cjs\"\n }\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:runtime\": \"tsup --config tsup.runtime.config.ts\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest --coverage\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"format\": \"biome format --write .\",\n \"type-check\": \"tsc --noEmit\",\n \"clean\": \"rm -rf dist\"\n },\n \"dependencies\": {\n \"@farming-labs/docs\": \"^0.2.44\",\n \"@farming-labs/orm\": \"0.0.62\",\n \"@farming-labs/orm-runtime\": \"0.0.62\",\n \"@formatjs/icu-messageformat-parser\": \"3.5.15\",\n \"@mdx-js/mdx\": \"^3.1.1\",\n \"@scalar/api-reference\": \"^1.38.1\",\n \"@scalar/openapi-parser\": \"^0.22.3\",\n \"@tailwindcss/vite\": \"4.1.18\",\n \"@vitejs/plugin-react\": \"^4.2.1\",\n \"better-call\": \"^1.0.19\",\n \"db0\": \"^0.3.4\",\n \"esbuild\": \"^0.28.0\",\n \"fast-glob\": \"^3.3.2\",\n \"h3\": \"2.0.1-rc.5\",\n \"image-size\": \"^2.0.2\",\n \"intl-messageformat\": \"11.2.12\",\n \"marked\": \"^12.0.2\",\n \"nitro\": \"3.0.1-alpha.0\",\n \"pg\": \"^8.20.0\",\n \"picocolors\": \"^1.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n \"sirv\": \"^2.0.4\",\n \"sugar-high\": \"^0.9.5\",\n \"supports-color\": \"^10.2.2\",\n \"tailwindcss\": \"4.1.18\",\n \"unstorage\": \"^2.0.0-alpha.3\",\n \"vite\": \"^5.0.10\",\n \"zod\": \"^4.1.12\"\n },\n \"devDependencies\": {\n \"@clerk/react\": \"^6.1.0\",\n \"@types/react\": \"^18.2.45\",\n \"@types/react-dom\": \"^18.2.18\",\n \"@vitest/coverage-v8\": \"^1.1.0\",\n \"jsdom\": \"^25.0.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^5.3.3\",\n \"vitest\": \"^1.1.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.2.0 || ^19.0.0\",\n \"react-dom\": \"^18.2.0 || ^19.0.0\"\n },\n \"optionalDependencies\": {\n \"rolldown\": \"1.2.0\",\n \"sharp\": \"^0.34.5\",\n \"vite-rolldown\": \"npm:vite@8.1.5\"\n }\n}\n","import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n"],"mappings":";AAEE,cAAW;;;ACAN,IAAM,eAAe;","names":[]}
1
+ {"version":3,"sources":["../package.json","../src/version.ts"],"sourcesContent":["{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.11\",\n \"description\": \"Core Farm.js framework for modern integrated apps\",\n \"keywords\": [\n \"@farm.js/core\",\n \"framework\",\n \"react\",\n \"rsc\",\n \"server-components\",\n \"ssr\",\n \"vite\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/farming-labs/farm.js\",\n \"directory\": \"packages/farm\"\n },\n \"files\": [\n \"dist\",\n \"types\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \"middleware\": [\n \"./types/middleware.d.ts\",\n \"./dist/middleware.d.ts\"\n ],\n \"version\": [\n \"./dist/version.d.ts\"\n ],\n \"router\": [\n \"./dist/router.d.ts\"\n ],\n \"routes\": [\n \"./dist/routes.d.ts\"\n ],\n \"storage\": [\n \"./dist/storage.d.ts\"\n ],\n \"integrations\": [\n \"./dist/integrations.d.ts\"\n ],\n \"cache\": [\n \"./dist/cache.d.ts\"\n ],\n \"deferred\": [\n \"./dist/deferred.d.ts\"\n ],\n \"after\": [\n \"./dist/after.d.ts\"\n ],\n \"navigation\": [\n \"./dist/navigation.d.ts\"\n ],\n \"headers\": [\n \"./dist/headers.d.ts\"\n ],\n \"docs\": [\n \"./dist/docs.d.ts\"\n ],\n \"markdown\": [\n \"./dist/markdown.d.ts\"\n ],\n \"app-markdown\": [\n \"./dist/app-markdown.d.ts\"\n ],\n \"observability\": [\n \"./dist/observability.d.ts\"\n ],\n \"workflows\": [\n \"./dist/workflows.d.ts\"\n ],\n \"cron\": [\n \"./dist/cron.d.ts\"\n ],\n \"server-fn\": [\n \"./dist/server-fn.d.ts\"\n ],\n \"server-fn/client\": [\n \"./dist/server-fn-client.d.ts\"\n ],\n \"server-action-security\": [\n \"./dist/server-action-security.d.ts\"\n ],\n \"deployment\": [\n \"./dist/deployment.d.ts\"\n ],\n \"env\": [\n \"./dist/env.d.ts\"\n ],\n \"env-types\": [\n \"./dist/env-types.d.ts\"\n ],\n \"environment\": [\n \"./dist/environment.d.ts\"\n ],\n \"environment/vite\": [\n \"./dist/environment/vite.d.ts\"\n ],\n \"font\": [\n \"./dist/font.d.ts\"\n ],\n \"testing\": [\n \"./dist/testing.d.ts\"\n ],\n \"agent-runtime\": [\n \"./dist/agent-runtime.d.ts\"\n ],\n \"image\": [\n \"./types/image.d.ts\",\n \"./dist/image.d.ts\"\n ],\n \"image/server\": [\n \"./dist/image/server.d.ts\"\n ],\n \"image/sharp\": [\n \"./dist/image/sharp.d.ts\"\n ],\n \"i18n\": [\n \"./dist/i18n/index.d.ts\"\n ],\n \"i18n/server\": [\n \"./dist/i18n/server.d.ts\"\n ],\n \"i18n/client\": [\n \"./dist/i18n/client.d.ts\"\n ],\n \"internal/production-runtime\": [\n \"./dist/internal/production-runtime.d.ts\"\n ],\n \"internal/client-runtime\": [\n \"./dist/internal/client-runtime.d.ts\"\n ],\n \"internal/build-runtime\": [\n \"./dist/internal/build-runtime.d.ts\"\n ],\n \"internal/config-runtime\": [\n \"./dist/internal/config-runtime.d.ts\"\n ],\n \"internal/production-node-env\": [\n \"./dist/internal/production-node-env.d.ts\"\n ],\n \"config\": [\n \"./dist/config.d.ts\"\n ],\n \"api\": [\n \"./types/api.d.ts\",\n \"./dist/api.d.ts\"\n ],\n \"api/route-manager\": [\n \"./dist/api/route-manager.d.ts\"\n ],\n \"api/runtime\": [\n \"./dist/api/runtime.d.ts\"\n ],\n \"request\": [\n \"./dist/request.d.ts\"\n ],\n \"client\": [\n \"./types/client.d.ts\",\n \"./dist/client.d.ts\"\n ],\n \"server\": [\n \"./dist/server.d.ts\"\n ],\n \"vite\": [\n \"./dist/vite.d.ts\"\n ],\n \"plugin\": [\n \"./dist/plugin.d.ts\"\n ],\n \"query\": [\n \"./dist/query/index.d.ts\"\n ],\n \"*\": [\n \"./dist/*.d.ts\"\n ]\n }\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./version\": {\n \"types\": \"./dist/version.d.ts\",\n \"import\": \"./dist/version.mjs\",\n \"require\": \"./dist/version.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./server\": {\n \"types\": \"./dist/server.d.ts\",\n \"import\": \"./dist/server.mjs\",\n \"require\": \"./dist/server.cjs\"\n },\n \"./client\": {\n \"types\": \"./types/client.d.ts\",\n \"import\": \"./dist/client.mjs\",\n \"require\": \"./dist/client.cjs\"\n },\n \"./storage\": {\n \"types\": \"./dist/storage.d.ts\",\n \"import\": \"./dist/storage.mjs\",\n \"require\": \"./dist/storage.cjs\"\n },\n \"./integrations\": {\n \"types\": \"./dist/integrations.d.ts\",\n \"import\": \"./dist/integrations.mjs\",\n \"require\": \"./dist/integrations.cjs\"\n },\n \"./cache\": {\n \"types\": \"./dist/cache.d.ts\",\n \"import\": \"./dist/cache.mjs\",\n \"require\": \"./dist/cache.cjs\"\n },\n \"./deferred\": {\n \"types\": \"./dist/deferred.d.ts\",\n \"import\": \"./dist/deferred.mjs\",\n \"require\": \"./dist/deferred.cjs\"\n },\n \"./after\": {\n \"types\": \"./dist/after.d.ts\",\n \"import\": \"./dist/after.mjs\",\n \"require\": \"./dist/after.cjs\"\n },\n \"./navigation\": {\n \"types\": \"./dist/navigation.d.ts\",\n \"import\": \"./dist/navigation.mjs\",\n \"require\": \"./dist/navigation.cjs\"\n },\n \"./headers\": {\n \"types\": \"./dist/headers.d.ts\",\n \"import\": \"./dist/headers.mjs\",\n \"require\": \"./dist/headers.cjs\"\n },\n \"./docs\": {\n \"types\": \"./dist/docs.d.ts\",\n \"import\": \"./dist/docs.mjs\",\n \"require\": \"./dist/docs.cjs\"\n },\n \"./markdown\": {\n \"types\": \"./dist/markdown.d.ts\",\n \"import\": \"./dist/markdown.mjs\",\n \"require\": \"./dist/markdown.cjs\"\n },\n \"./app-markdown\": {\n \"types\": \"./dist/app-markdown.d.ts\",\n \"import\": \"./dist/app-markdown.mjs\",\n \"require\": \"./dist/app-markdown.cjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability.d.ts\",\n \"import\": \"./dist/observability.mjs\",\n \"require\": \"./dist/observability.cjs\"\n },\n \"./workflows\": {\n \"types\": \"./dist/workflows.d.ts\",\n \"import\": \"./dist/workflows.mjs\",\n \"require\": \"./dist/workflows.cjs\"\n },\n \"./cron\": {\n \"types\": \"./dist/cron.d.ts\",\n \"import\": \"./dist/cron.mjs\",\n \"require\": \"./dist/cron.cjs\"\n },\n \"./server-fn\": {\n \"types\": \"./dist/server-fn.d.ts\",\n \"import\": \"./dist/server-fn.mjs\",\n \"require\": \"./dist/server-fn.cjs\"\n },\n \"./server-fn/client\": {\n \"types\": \"./dist/server-fn-client.d.ts\",\n \"import\": \"./dist/server-fn-client.mjs\",\n \"require\": \"./dist/server-fn-client.cjs\"\n },\n \"./server-query\": {\n \"types\": \"./dist/server-query.d.ts\",\n \"import\": \"./dist/server-query.mjs\",\n \"require\": \"./dist/server-query.cjs\"\n },\n \"./server-query/client\": {\n \"types\": \"./dist/server-query-client.d.ts\",\n \"import\": \"./dist/server-query-client.mjs\",\n \"require\": \"./dist/server-query-client.cjs\"\n },\n \"./server-action-security\": {\n \"types\": \"./dist/server-action-security.d.ts\",\n \"import\": \"./dist/server-action-security.mjs\",\n \"require\": \"./dist/server-action-security.cjs\"\n },\n \"./deployment\": {\n \"types\": \"./dist/deployment.d.ts\",\n \"import\": \"./dist/deployment.mjs\",\n \"require\": \"./dist/deployment.cjs\"\n },\n \"./env\": {\n \"types\": \"./dist/env.d.ts\",\n \"import\": \"./dist/env.mjs\",\n \"require\": \"./dist/env.cjs\"\n },\n \"./env-types\": {\n \"types\": \"./dist/env-types.d.ts\",\n \"import\": \"./dist/env-types.mjs\",\n \"require\": \"./dist/env-types.cjs\"\n },\n \"./environment\": {\n \"types\": \"./dist/environment.d.ts\",\n \"import\": \"./dist/environment.mjs\",\n \"require\": \"./dist/environment.cjs\"\n },\n \"./environment/vite\": {\n \"types\": \"./dist/environment/vite.d.ts\",\n \"import\": \"./dist/environment/vite.mjs\",\n \"require\": \"./dist/environment/vite.cjs\"\n },\n \"./font\": {\n \"types\": \"./dist/font.d.ts\",\n \"import\": \"./dist/font.mjs\",\n \"require\": \"./dist/font.cjs\"\n },\n \"./vite\": {\n \"types\": \"./dist/vite.d.ts\",\n \"import\": \"./dist/vite.mjs\",\n \"require\": \"./dist/vite.cjs\"\n },\n \"./plugin\": {\n \"types\": \"./dist/plugin.d.ts\",\n \"import\": \"./dist/plugin.mjs\",\n \"require\": \"./dist/plugin.cjs\"\n },\n \"./plugin/server\": {\n \"types\": \"./dist/server-plugins.d.ts\",\n \"import\": \"./dist/server-plugins.mjs\",\n \"require\": \"./dist/server-plugins.cjs\"\n },\n \"./plugin/client\": {\n \"types\": \"./dist/client-plugins.d.ts\",\n \"import\": \"./dist/client-plugins.mjs\",\n \"require\": \"./dist/client-plugins.cjs\"\n },\n \"./query\": {\n \"types\": \"./dist/query/index.d.ts\",\n \"import\": \"./dist/query/index.mjs\",\n \"require\": \"./dist/query/index.cjs\"\n },\n \"./query/parsers\": {\n \"types\": \"./dist/query/parsers.d.ts\",\n \"import\": \"./dist/query/parsers.mjs\",\n \"require\": \"./dist/query/parsers.cjs\"\n },\n \"./query/client\": {\n \"types\": \"./dist/query/client.d.ts\",\n \"import\": \"./dist/query/client.mjs\",\n \"require\": \"./dist/query/client.cjs\"\n },\n \"./query/server\": {\n \"types\": \"./dist/query/server.d.ts\",\n \"import\": \"./dist/query/server.mjs\",\n \"require\": \"./dist/query/server.cjs\"\n },\n \"./middleware\": {\n \"types\": \"./dist/middleware.d.ts\",\n \"import\": \"./dist/middleware.mjs\",\n \"require\": \"./dist/middleware.cjs\"\n },\n \"./api\": {\n \"types\": \"./dist/api.d.ts\",\n \"import\": \"./dist/api.mjs\",\n \"require\": \"./dist/api.cjs\"\n },\n \"./api/route-manager\": {\n \"types\": \"./dist/api/route-manager.d.ts\",\n \"import\": \"./dist/api/route-manager.mjs\",\n \"require\": \"./dist/api/route-manager.cjs\"\n },\n \"./api/runtime\": {\n \"types\": \"./dist/api/runtime.d.ts\",\n \"import\": \"./dist/api/runtime.mjs\",\n \"require\": \"./dist/api/runtime.cjs\"\n },\n \"./request\": {\n \"types\": \"./dist/request.d.ts\",\n \"import\": \"./dist/request.mjs\",\n \"require\": \"./dist/request.cjs\"\n },\n \"./router\": {\n \"types\": \"./dist/router.d.ts\",\n \"import\": \"./dist/router.mjs\",\n \"require\": \"./dist/router.cjs\"\n },\n \"./routes\": {\n \"types\": \"./dist/routes.d.ts\",\n \"import\": \"./dist/routes.mjs\",\n \"require\": \"./dist/routes.cjs\"\n },\n \"./testing\": {\n \"types\": \"./dist/testing.d.ts\",\n \"import\": \"./dist/testing.mjs\",\n \"require\": \"./dist/testing.cjs\"\n },\n \"./agent-runtime\": {\n \"types\": \"./dist/agent-runtime.d.ts\",\n \"import\": \"./dist/agent-runtime.mjs\",\n \"require\": \"./dist/agent-runtime.cjs\"\n },\n \"./image\": {\n \"types\": \"./types/image.d.ts\",\n \"import\": \"./dist/image.mjs\",\n \"require\": \"./dist/image.cjs\"\n },\n \"./image/server\": {\n \"types\": \"./dist/image/server.d.ts\",\n \"import\": \"./dist/image/server.mjs\",\n \"require\": \"./dist/image/server.cjs\"\n },\n \"./image/sharp\": {\n \"types\": \"./dist/image/sharp.d.ts\",\n \"import\": \"./dist/image/sharp.mjs\",\n \"require\": \"./dist/image/sharp.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.mjs\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./i18n/server\": {\n \"types\": \"./dist/i18n/server.d.ts\",\n \"import\": \"./dist/i18n/server.mjs\",\n \"require\": \"./dist/i18n/server.cjs\"\n },\n \"./i18n/client\": {\n \"types\": \"./dist/i18n/client.d.ts\",\n \"import\": \"./dist/i18n/client.mjs\",\n \"require\": \"./dist/i18n/client.cjs\"\n },\n \"./internal/production-runtime\": {\n \"types\": \"./dist/internal/production-runtime.d.ts\",\n \"import\": \"./dist/internal/production-runtime.mjs\",\n \"require\": \"./dist/internal/production-runtime.cjs\"\n },\n \"./internal/client-runtime\": {\n \"types\": \"./dist/internal/client-runtime.d.ts\",\n \"import\": \"./dist/internal/client-runtime.mjs\",\n \"require\": \"./dist/internal/client-runtime.cjs\"\n },\n \"./internal/build-runtime\": {\n \"types\": \"./dist/internal/build-runtime.d.ts\",\n \"import\": \"./dist/internal/build-runtime.mjs\",\n \"require\": \"./dist/internal/build-runtime.cjs\"\n },\n \"./internal/config-runtime\": {\n \"types\": \"./dist/internal/config-runtime.d.ts\",\n \"import\": \"./dist/internal/config-runtime.mjs\",\n \"require\": \"./dist/internal/config-runtime.cjs\"\n },\n \"./internal/production-node-env\": {\n \"types\": \"./dist/internal/production-node-env.d.ts\",\n \"import\": \"./dist/internal/production-node-env.mjs\",\n \"require\": \"./dist/internal/production-node-env.cjs\"\n }\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:runtime\": \"tsup --config tsup.runtime.config.ts\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest --coverage\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"format\": \"biome format --write .\",\n \"type-check\": \"tsc --noEmit\",\n \"clean\": \"rm -rf dist\"\n },\n \"dependencies\": {\n \"@farming-labs/docs\": \"^0.2.44\",\n \"@farming-labs/orm\": \"0.0.62\",\n \"@farming-labs/orm-runtime\": \"0.0.62\",\n \"@formatjs/icu-messageformat-parser\": \"3.5.15\",\n \"@mdx-js/mdx\": \"^3.1.1\",\n \"@scalar/api-reference\": \"^1.38.1\",\n \"@scalar/openapi-parser\": \"^0.22.3\",\n \"@tailwindcss/vite\": \"4.1.18\",\n \"@vitejs/plugin-react\": \"^4.2.1\",\n \"better-call\": \"^1.0.19\",\n \"db0\": \"^0.3.4\",\n \"esbuild\": \"^0.28.0\",\n \"fast-glob\": \"^3.3.2\",\n \"h3\": \"2.0.1-rc.5\",\n \"image-size\": \"^2.0.2\",\n \"intl-messageformat\": \"11.2.12\",\n \"marked\": \"^12.0.2\",\n \"nitro\": \"3.0.1-alpha.0\",\n \"pg\": \"^8.20.0\",\n \"picocolors\": \"^1.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n \"sirv\": \"^2.0.4\",\n \"sugar-high\": \"^0.9.5\",\n \"supports-color\": \"^10.2.2\",\n \"tailwindcss\": \"4.1.18\",\n \"unstorage\": \"^2.0.0-alpha.3\",\n \"vite\": \"^5.0.10\",\n \"zod\": \"^4.1.12\"\n },\n \"devDependencies\": {\n \"@clerk/react\": \"^6.1.0\",\n \"@types/react\": \"^18.2.45\",\n \"@types/react-dom\": \"^18.2.18\",\n \"@vitest/coverage-v8\": \"^1.1.0\",\n \"jsdom\": \"^25.0.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^5.3.3\",\n \"vitest\": \"^1.1.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.2.0 || ^19.0.0\",\n \"react-dom\": \"^18.2.0 || ^19.0.0\"\n },\n \"optionalDependencies\": {\n \"rolldown\": \"1.2.0\",\n \"sharp\": \"^0.34.5\",\n \"vite-rolldown\": \"npm:vite@8.1.5\"\n }\n}\n","import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n"],"mappings":";AAEE,cAAW;;;ACAN,IAAM,eAAe;","names":[]}
@@ -147,7 +147,7 @@ import {
147
147
  } from "./chunk-RHIFZZUI.mjs";
148
148
  import {
149
149
  FARM_VERSION
150
- } from "./chunk-3QDB3IA6.mjs";
150
+ } from "./chunk-5EVQFRL2.mjs";
151
151
  import {
152
152
  FARM_DEPLOYMENT_ID_HEADER,
153
153
  createFarmDeploymentCookie,
@@ -1844,7 +1844,8 @@ __name(transformFarmFontCalls, "transformFarmFontCalls");
1844
1844
  function renderFarmFontDevHead(root) {
1845
1845
  const registry = registries.get(normalizeRoot(root));
1846
1846
  if (!registry || registry.production || registry.size === 0) return "";
1847
- return registry.renderPreloadTags(false);
1847
+ return `${registry.renderPreloadTags(false)}
1848
+ <link rel="stylesheet" href="/@farm/fonts.css">`;
1848
1849
  }
1849
1850
  __name(renderFarmFontDevHead, "renderFarmFontDevHead");
1850
1851
  var _FarmFontRegistry = class _FarmFontRegistry {
@@ -8868,4 +8869,4 @@ export {
8868
8869
  farmPlugin,
8869
8870
  defineConfig
8870
8871
  };
8871
- //# sourceMappingURL=chunk-E2AI2CW7.mjs.map
8872
+ //# sourceMappingURL=chunk-77BOAQHI.mjs.map