@farm.js/core 0.1.16 → 0.1.17

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 (180) hide show
  1. package/dist/agent-runtime.d.mts +3 -3
  2. package/dist/agent-runtime.d.ts +3 -3
  3. package/dist/api/client.cjs +62 -28
  4. package/dist/api/client.d.mts +3 -3
  5. package/dist/api/client.d.ts +3 -3
  6. package/dist/api/client.mjs +3 -3
  7. package/dist/api/route-manager.cjs +69 -32
  8. package/dist/api/route-manager.d.mts +3 -3
  9. package/dist/api/route-manager.d.ts +3 -3
  10. package/dist/api/route-manager.mjs +5 -5
  11. package/dist/api/runtime.cjs +65 -29
  12. package/dist/api/runtime.d.mts +3 -3
  13. package/dist/api/runtime.d.ts +3 -3
  14. package/dist/api/runtime.mjs +6 -3
  15. package/dist/{api-client-B-n3pm_Q.d.mts → api-client-Cx54IR5g.d.mts} +2 -2
  16. package/dist/{api-client-C0_NZEBl.d.ts → api-client-DykpaKcY.d.ts} +2 -2
  17. package/dist/api.cjs +106 -33
  18. package/dist/api.d.mts +5 -5
  19. package/dist/api.d.ts +5 -5
  20. package/dist/api.mjs +8 -8
  21. package/dist/{app-AyjEsCBq.d.ts → app-BHY_10Lm.d.ts} +3 -3
  22. package/dist/{app-CYPHeOo_.d.mts → app-BMk0do23.d.mts} +3 -3
  23. package/dist/app-markdown.d.mts +4 -4
  24. package/dist/app-markdown.d.ts +4 -4
  25. package/dist/app-markdown.mjs +3 -3
  26. package/dist/cache.cjs +62 -28
  27. package/dist/cache.d.mts +11 -1
  28. package/dist/cache.d.ts +11 -1
  29. package/dist/cache.mjs +1 -1
  30. package/dist/{chunk-7HDZYYS4.mjs → chunk-4OOBRCJX.mjs} +27 -5
  31. package/dist/{chunk-NHHKW2T6.mjs → chunk-56DAX2BE.mjs} +170 -52
  32. package/dist/{chunk-B76DT5Y6.mjs → chunk-57J3Y7Y3.mjs} +1 -1
  33. package/dist/{chunk-MOQNHLTS.mjs → chunk-5QOEPUYE.mjs} +5 -2
  34. package/dist/{chunk-HKLRP3BN.mjs → chunk-5SPPCN5J.mjs} +1 -1
  35. package/dist/{chunk-LUC2FAGW.mjs → chunk-6VQIKZZO.mjs} +1 -1
  36. package/dist/{chunk-7ZWL7XOU.mjs → chunk-76DG3LF3.mjs} +1 -1
  37. package/dist/{chunk-EWDK36MM.mjs → chunk-A72YEUZ3.mjs} +1 -1
  38. package/dist/{chunk-ZHOIQC6U.mjs → chunk-ATERBVHQ.mjs} +2 -2
  39. package/dist/{chunk-27JNCYEK.mjs → chunk-EN7WTEAY.mjs} +2 -2
  40. package/dist/{chunk-IGO2HEV7.mjs → chunk-F6SJAKFJ.mjs} +62 -28
  41. package/dist/{chunk-GSDIZACQ.mjs → chunk-FG5H2VCJ.mjs} +2 -2
  42. package/dist/{chunk-LZK5CXDW.mjs → chunk-KLSSO6YD.mjs} +2 -2
  43. package/dist/{chunk-KUO3GBPK.mjs → chunk-L6V3P73N.mjs} +1 -1
  44. package/dist/{chunk-TYVVIQ5M.mjs → chunk-MVIWBEJF.mjs} +32 -25
  45. package/dist/{chunk-KTGFMHET.mjs → chunk-N6UROPT7.mjs} +1 -1
  46. package/dist/{chunk-NDD2YVGU.mjs → chunk-NRVGEI5I.mjs} +10 -3
  47. package/dist/{chunk-IXTEENRS.mjs → chunk-QGVJVSNX.mjs} +5 -5
  48. package/dist/{chunk-6SCB2MXB.mjs → chunk-SXHV42UQ.mjs} +16 -1
  49. package/dist/{chunk-OWTIOHON.mjs → chunk-SYGGPS4A.mjs} +2 -2
  50. package/dist/{chunk-NC333MFA.mjs → chunk-TSWW5BVH.mjs} +7 -4
  51. package/dist/{chunk-LK6FGAQR.mjs → chunk-UDBJCUPA.mjs} +7 -4
  52. package/dist/{chunk-NUD6XBMO.mjs → chunk-UTBVHYS3.mjs} +2 -2
  53. package/dist/{chunk-76MNRHTS.mjs → chunk-UUYF3CHN.mjs} +2 -2
  54. package/dist/{chunk-VVTREAG5.mjs → chunk-WD4YXVLV.mjs} +11 -3
  55. package/dist/{chunk-UQZPTIML.mjs → chunk-WD5PNSOB.mjs} +2 -2
  56. package/dist/{chunk-DPZUDPVJ.mjs → chunk-XP777LRD.mjs} +1 -1
  57. package/dist/{chunk-KATQ6I56.mjs → chunk-XWAYMDLB.mjs} +1 -1
  58. package/dist/{chunk-IL5RWYK7.mjs → chunk-YD4J4XCI.mjs} +1 -1
  59. package/dist/{chunk-Q3MDL7TM.mjs → chunk-ZCNJKLA2.mjs} +30 -11
  60. package/dist/{client-plugins-CqVtZi5X.d.ts → client-plugins-C089bQhN.d.ts} +2 -2
  61. package/dist/{client-plugins-CIPRtSsW.d.mts → client-plugins-JXXmZliS.d.mts} +2 -2
  62. package/dist/client-plugins.d.mts +3 -3
  63. package/dist/client-plugins.d.ts +3 -3
  64. package/dist/client.cjs +62 -28
  65. package/dist/client.d.mts +8 -8
  66. package/dist/client.d.ts +8 -8
  67. package/dist/client.mjs +6 -6
  68. package/dist/config.d.mts +3 -3
  69. package/dist/config.d.ts +3 -3
  70. package/dist/cron.mjs +2 -2
  71. package/dist/{devtools-IU7LKZOH.mjs → devtools-UFVTMQX5.mjs} +7 -7
  72. package/dist/docs.cjs +18 -10
  73. package/dist/docs.mjs +9 -9
  74. package/dist/{endpoint-kSAxE52R.d.ts → endpoint-1zA994xL.d.ts} +1 -1
  75. package/dist/{endpoint-Bu3XgeMK.d.mts → endpoint-DAc96i93.d.mts} +1 -1
  76. package/dist/env.cjs +39 -5
  77. package/dist/env.d.mts +5 -3
  78. package/dist/env.d.ts +5 -3
  79. package/dist/env.mjs +2 -1
  80. package/dist/index.cjs +311 -93
  81. package/dist/index.d.mts +14 -14
  82. package/dist/index.d.ts +14 -14
  83. package/dist/index.mjs +34 -34
  84. package/dist/integrations.d.mts +3 -3
  85. package/dist/integrations.d.ts +3 -3
  86. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  87. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  88. package/dist/internal/app-markdown-runtime.mjs +2 -2
  89. package/dist/internal/build-runtime.cjs +342 -121
  90. package/dist/internal/build-runtime.d.mts +5 -5
  91. package/dist/internal/build-runtime.d.ts +5 -5
  92. package/dist/internal/build-runtime.mjs +23 -23
  93. package/dist/internal/cli-runtime.cjs +77 -31
  94. package/dist/internal/cli-runtime.mjs +13 -13
  95. package/dist/internal/client-error-overlay.cjs +1 -1
  96. package/dist/internal/client-error-overlay.mjs +1 -1
  97. package/dist/internal/compression-runtime.d.mts +3 -3
  98. package/dist/internal/compression-runtime.d.ts +3 -3
  99. package/dist/internal/config-runtime.cjs +14 -2
  100. package/dist/internal/config-runtime.d.mts +4 -4
  101. package/dist/internal/config-runtime.d.ts +4 -4
  102. package/dist/internal/config-runtime.mjs +7 -7
  103. package/dist/internal/product-telemetry-runtime.cjs +1 -1
  104. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  105. package/dist/internal/production-runtime.cjs +101 -41
  106. package/dist/internal/production-runtime.d.mts +9 -9
  107. package/dist/internal/production-runtime.d.ts +9 -9
  108. package/dist/internal/production-runtime.mjs +6 -6
  109. package/dist/markdown.cjs +16 -1
  110. package/dist/markdown.mjs +1 -1
  111. package/dist/{metadata-8g__AMPM.d.ts → metadata-BcNJP4fq.d.ts} +1 -1
  112. package/dist/{metadata-OMX6wFNf.d.mts → metadata-C1Z9vLbb.d.mts} +1 -1
  113. package/dist/middleware.cjs +10 -3
  114. package/dist/middleware.d.mts +5 -5
  115. package/dist/middleware.d.ts +5 -5
  116. package/dist/middleware.mjs +4 -4
  117. package/dist/{nitro-3N4ZXRYM.mjs → nitro-CVZ36JM5.mjs} +4 -4
  118. package/dist/plugin.cjs +256 -105
  119. package/dist/plugin.d.mts +3 -3
  120. package/dist/plugin.d.ts +3 -3
  121. package/dist/plugin.mjs +19 -19
  122. package/dist/{production-runtime-W3M0eNDV.d.mts → production-runtime-jcrTlRTb.d.mts} +1 -1
  123. package/dist/{production-runtime-BJh7o6Cr.d.ts → production-runtime-oKmC0WU-.d.ts} +1 -1
  124. package/dist/{render-plan-io7pvDNc.d.mts → render-plan-BLIfc4jt.d.mts} +1 -1
  125. package/dist/{render-plan-Be4ZGTJP.d.ts → render-plan-DOB9cV-h.d.ts} +1 -1
  126. package/dist/renderer-client.cjs +62 -28
  127. package/dist/renderer-client.d.mts +5 -5
  128. package/dist/renderer-client.d.ts +5 -5
  129. package/dist/renderer-client.mjs +3 -3
  130. package/dist/{request-DZkHYQ89.d.mts → request-Cr53NRHr.d.mts} +1 -1
  131. package/dist/{request-G8JhKr4F.d.ts → request-Dt2gNuQD.d.ts} +1 -1
  132. package/dist/request.d.mts +4 -4
  133. package/dist/request.d.ts +4 -4
  134. package/dist/{route-C_eLaFTZ.d.mts → route-B0XrsrFk.d.mts} +1 -1
  135. package/dist/{route-BxNJT447.d.ts → route-DOEpbyWZ.d.ts} +1 -1
  136. package/dist/{route-rendering-BcLLPJgN.d.ts → route-rendering-CWYd8Mv1.d.ts} +1 -1
  137. package/dist/{route-rendering-CbAKr1TY.d.mts → route-rendering-CeFBEAoZ.d.mts} +1 -1
  138. package/dist/routes.cjs +68 -31
  139. package/dist/routes.d.mts +4 -4
  140. package/dist/routes.d.ts +4 -4
  141. package/dist/routes.mjs +2 -2
  142. package/dist/server-fn-client.d.mts +3 -3
  143. package/dist/server-fn-client.d.ts +3 -3
  144. package/dist/server-fn.cjs +72 -30
  145. package/dist/server-fn.d.mts +1 -1
  146. package/dist/server-fn.d.ts +1 -1
  147. package/dist/server-fn.mjs +2 -2
  148. package/dist/server-plugins.d.mts +4 -4
  149. package/dist/server-plugins.d.ts +4 -4
  150. package/dist/server-query-client.cjs +62 -28
  151. package/dist/server-query-client.d.mts +1 -1
  152. package/dist/server-query-client.d.ts +1 -1
  153. package/dist/server-query-client.mjs +4 -4
  154. package/dist/server-query.cjs +72 -30
  155. package/dist/server-query.d.mts +1 -1
  156. package/dist/server-query.d.ts +1 -1
  157. package/dist/server-query.mjs +3 -3
  158. package/dist/server.cjs +239 -80
  159. package/dist/server.d.mts +9 -9
  160. package/dist/server.d.ts +9 -9
  161. package/dist/server.mjs +22 -22
  162. package/dist/{spa-router-BcS_4nqm.d.mts → spa-router-CQWiYGxS.d.mts} +2 -2
  163. package/dist/{spa-router-BzFBUJkn.d.ts → spa-router-Wjiw-8hB.d.ts} +2 -2
  164. package/dist/testing.cjs +73 -32
  165. package/dist/testing.d.mts +3 -3
  166. package/dist/testing.d.ts +3 -3
  167. package/dist/testing.mjs +11 -7
  168. package/dist/{utils-C4yrAhNc.d.ts → utils-B0XJmG_b.d.ts} +1 -1
  169. package/dist/{utils-5kQP1mFR.d.mts → utils-uUxF0K0P.d.mts} +1 -1
  170. package/dist/version.cjs +1 -1
  171. package/dist/version.mjs +1 -1
  172. package/dist/vite.cjs +260 -109
  173. package/dist/vite.d.mts +3 -3
  174. package/dist/vite.d.ts +3 -3
  175. package/dist/vite.mjs +19 -19
  176. package/dist/workflows.mjs +2 -2
  177. package/package.json +2 -2
  178. package/dist/{chunk-VO5SCWF5.mjs → chunk-BNGS6KJ6.mjs} +0 -0
  179. package/dist/{chunk-MUUZJLCI.mjs → chunk-EGJDUF4Q.mjs} +3 -3
  180. package/dist/{chunk-4L7SZOHZ.mjs → chunk-YHOCRI4H.mjs} +3 -3
@@ -1,10 +1,10 @@
1
- import { cg as ResolvedFarmConfig } from '../client-plugins-CIPRtSsW.mjs';
2
- export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-CIPRtSsW.mjs';
1
+ import { cg as ResolvedFarmConfig } from '../client-plugins-JXXmZliS.mjs';
2
+ export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-JXXmZliS.mjs';
3
3
  import { FarmProductionViteRuntime } from './config-runtime.mjs';
4
- export { l as logger } from '../utils-5kQP1mFR.mjs';
4
+ export { l as logger } from '../utils-uUxF0K0P.mjs';
5
5
  import '../lifecycle-DK06VuKP.mjs';
6
- import '../route-C_eLaFTZ.mjs';
7
- import '../endpoint-Bu3XgeMK.mjs';
6
+ import '../route-B0XrsrFk.mjs';
7
+ import '../endpoint-DAc96i93.mjs';
8
8
  import '../cache.mjs';
9
9
  import '../renderer.mjs';
10
10
  import '../deployment.mjs';
@@ -1,10 +1,10 @@
1
- import { cg as ResolvedFarmConfig } from '../client-plugins-CqVtZi5X.js';
2
- export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-CqVtZi5X.js';
1
+ import { cg as ResolvedFarmConfig } from '../client-plugins-C089bQhN.js';
2
+ export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-C089bQhN.js';
3
3
  import { FarmProductionViteRuntime } from './config-runtime.js';
4
- export { l as logger } from '../utils-C4yrAhNc.js';
4
+ export { l as logger } from '../utils-B0XJmG_b.js';
5
5
  import '../lifecycle-DK06VuKP.js';
6
- import '../route-BxNJT447.js';
7
- import '../endpoint-kSAxE52R.js';
6
+ import '../route-DOEpbyWZ.js';
7
+ import '../endpoint-1zA994xL.js';
8
8
  import '../cache.js';
9
9
  import '../renderer.js';
10
10
  import '../deployment.js';
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  build
3
- } from "../chunk-TYVVIQ5M.mjs";
3
+ } from "../chunk-MVIWBEJF.mjs";
4
4
  import "../chunk-S3FNNQHR.mjs";
5
5
  import "../chunk-655RLQQL.mjs";
6
- import "../chunk-NUD6XBMO.mjs";
7
- import "../chunk-MOQNHLTS.mjs";
6
+ import "../chunk-UTBVHYS3.mjs";
7
+ import "../chunk-5QOEPUYE.mjs";
8
8
  import "../chunk-UP4CW6WP.mjs";
9
9
  import "../chunk-TFQG7TBC.mjs";
10
10
  import "../chunk-6VEHUKZ2.mjs";
@@ -12,16 +12,16 @@ import {
12
12
  loadConfig,
13
13
  resolveConfig,
14
14
  resolveDeployConfig
15
- } from "../chunk-IXTEENRS.mjs";
15
+ } from "../chunk-QGVJVSNX.mjs";
16
16
  import "../chunk-XZNTNMHT.mjs";
17
17
  import "../chunk-F5D4XEAS.mjs";
18
18
  import "../chunk-H77NVNJ2.mjs";
19
- import "../chunk-NHHKW2T6.mjs";
20
- import "../chunk-27JNCYEK.mjs";
19
+ import "../chunk-56DAX2BE.mjs";
20
+ import "../chunk-EN7WTEAY.mjs";
21
21
  import "../chunk-DHDVMXYK.mjs";
22
22
  import "../chunk-ZMSZZXOR.mjs";
23
23
  import "../chunk-3NM6SRI6.mjs";
24
- import "../chunk-7ZWL7XOU.mjs";
24
+ import "../chunk-76DG3LF3.mjs";
25
25
  import "../chunk-DAO7JGTS.mjs";
26
26
  import "../chunk-BOYNDCZL.mjs";
27
27
  import "../chunk-HLCDYJY7.mjs";
@@ -39,37 +39,37 @@ import "../chunk-JBSVKMC5.mjs";
39
39
  import "../chunk-7WPA7GBZ.mjs";
40
40
  import "../chunk-IILNZK5G.mjs";
41
41
  import "../chunk-OLYK7EAK.mjs";
42
- import "../chunk-Q3MDL7TM.mjs";
42
+ import "../chunk-ZCNJKLA2.mjs";
43
43
  import "../chunk-G2KY33I6.mjs";
44
- import "../chunk-4L7SZOHZ.mjs";
44
+ import "../chunk-YHOCRI4H.mjs";
45
45
  import "../chunk-QCFFHV5H.mjs";
46
- import "../chunk-7HDZYYS4.mjs";
47
- import "../chunk-KATQ6I56.mjs";
48
- import "../chunk-LUC2FAGW.mjs";
46
+ import "../chunk-4OOBRCJX.mjs";
47
+ import "../chunk-XWAYMDLB.mjs";
48
+ import "../chunk-6VQIKZZO.mjs";
49
49
  import "../chunk-FA2W42OV.mjs";
50
- import "../chunk-6SCB2MXB.mjs";
51
- import "../chunk-MUUZJLCI.mjs";
52
- import "../chunk-ONUEYC6N.mjs";
50
+ import "../chunk-SXHV42UQ.mjs";
51
+ import "../chunk-EGJDUF4Q.mjs";
53
52
  import "../chunk-2UC36WAC.mjs";
53
+ import "../chunk-ONUEYC6N.mjs";
54
54
  import "../chunk-UWPLULNK.mjs";
55
55
  import "../chunk-AELACLOB.mjs";
56
56
  import "../chunk-SEJ5N6SL.mjs";
57
57
  import "../chunk-JLCQGPXE.mjs";
58
58
  import "../chunk-FP2INE7H.mjs";
59
59
  import "../chunk-44SYJEG3.mjs";
60
- import "../chunk-B76DT5Y6.mjs";
61
- import "../chunk-NDD2YVGU.mjs";
60
+ import "../chunk-57J3Y7Y3.mjs";
61
+ import "../chunk-NRVGEI5I.mjs";
62
62
  import "../chunk-5TISYEQF.mjs";
63
63
  import "../chunk-R3DS7A2T.mjs";
64
64
  import "../chunk-IOEH4VWN.mjs";
65
- import "../chunk-ZHOIQC6U.mjs";
66
- import "../chunk-VO5SCWF5.mjs";
65
+ import "../chunk-ATERBVHQ.mjs";
66
+ import "../chunk-BNGS6KJ6.mjs";
67
67
  import "../chunk-CU625VAY.mjs";
68
68
  import "../chunk-JNGIWIY6.mjs";
69
69
  import "../chunk-FV45CKBC.mjs";
70
- import "../chunk-DPZUDPVJ.mjs";
70
+ import "../chunk-XP777LRD.mjs";
71
71
  import "../chunk-I6XDAKWQ.mjs";
72
- import "../chunk-OWTIOHON.mjs";
72
+ import "../chunk-SYGGPS4A.mjs";
73
73
  import "../chunk-W3B4PKAW.mjs";
74
74
  import "../chunk-5WI2S4CO.mjs";
75
75
  import "../chunk-EA5K5BKU.mjs";
@@ -83,7 +83,7 @@ import {
83
83
  } from "../chunk-KI3MESHB.mjs";
84
84
  import "../chunk-QVKYGNVM.mjs";
85
85
  import "../chunk-Z2RZJZIZ.mjs";
86
- import "../chunk-IL5RWYK7.mjs";
86
+ import "../chunk-YD4J4XCI.mjs";
87
87
  import "../chunk-54UPOYFS.mjs";
88
88
  import "../chunk-WNSDDRNU.mjs";
89
89
  import "../chunk-JPLUGGRV.mjs";
@@ -96,7 +96,7 @@ import "../chunk-YS3TRKCG.mjs";
96
96
  import "../chunk-SKNL7VA2.mjs";
97
97
  import "../chunk-2A3EQHXX.mjs";
98
98
  import "../chunk-JNZ4TDWM.mjs";
99
- import "../chunk-IGO2HEV7.mjs";
99
+ import "../chunk-F6SJAKFJ.mjs";
100
100
  import "../chunk-4SIYUGRY.mjs";
101
101
  import "../chunk-C4NCTZLM.mjs";
102
102
  import "../chunk-FUZEBRP3.mjs";
@@ -2334,6 +2334,8 @@ var init_cache = __esm({
2334
2334
  constructor(config = {}) {
2335
2335
  this.entries = /* @__PURE__ */ new Map();
2336
2336
  this.inflight = /* @__PURE__ */ new Map();
2337
+ /** Local entries by tag, so tag counts and pruning never scan unrelated entries. */
2338
+ this.entriesByTag = /* @__PURE__ */ new Map();
2337
2339
  this.invalidatedTagVersions = /* @__PURE__ */ new Map();
2338
2340
  this.activeGenerations = /* @__PURE__ */ new Set();
2339
2341
  this.version = 0;
@@ -2352,6 +2354,7 @@ var init_cache = __esm({
2352
2354
  configure(config = {}) {
2353
2355
  this.generation++;
2354
2356
  this.entries.clear();
2357
+ this.entriesByTag.clear();
2355
2358
  this.inflight.clear();
2356
2359
  this.invalidatedTagVersions.clear();
2357
2360
  this.activeGenerations.clear();
@@ -2518,14 +2521,12 @@ var init_cache = __esm({
2518
2521
  return entry;
2519
2522
  }
2520
2523
  delete(key) {
2521
- const deleted = this.entries.delete(key);
2522
- if (deleted) this.pruneInvalidatedTagVersions();
2524
+ const deleted = this.deleteLocalEntry(key);
2523
2525
  emitFarmEvent({ type: "cache.delete", key, deleted });
2524
2526
  return deleted;
2525
2527
  }
2526
2528
  async deleteAsync(key) {
2527
- const deleted = this.entries.delete(key);
2528
- if (deleted) this.pruneInvalidatedTagVersions();
2529
+ const deleted = this.deleteLocalEntry(key);
2529
2530
  if (this.adapter) {
2530
2531
  await this.adapter.delete(this.createAdapterKey(key));
2531
2532
  }
@@ -2536,6 +2537,7 @@ var init_cache = __esm({
2536
2537
  const count = this.entries.size;
2537
2538
  this.generation++;
2538
2539
  this.entries.clear();
2540
+ this.entriesByTag.clear();
2539
2541
  this.inflight.clear();
2540
2542
  this.invalidatedTagVersions.clear();
2541
2543
  this.activeGenerations.clear();
@@ -2621,23 +2623,32 @@ var init_cache = __esm({
2621
2623
  return cached.value;
2622
2624
  }
2623
2625
  const inflight = this.inflight.get(key);
2624
- if (inflight) {
2626
+ if (inflight && !this.wasInvalidatedSince(inflight.tags, inflight.startVersion)) {
2625
2627
  emitFarmEvent({ type: "cache.dedupe", key });
2626
- return inflight;
2628
+ return inflight.promise;
2627
2629
  }
2628
2630
  const tags = Array.from(normalizeCacheOptionsTags(options));
2629
2631
  const generation = this.generation;
2632
+ const startVersion = this.version;
2630
2633
  const promise = this.fillCacheEntry(key, producer, options, tags, generation).catch((error) => {
2631
2634
  emitFarmEvent({ type: "cache.error", key, operation: "set", error });
2632
2635
  throw error;
2633
2636
  }).finally(() => {
2634
- if (this.inflight.get(key) === promise) {
2637
+ if (this.inflight.get(key)?.promise === promise) {
2635
2638
  this.inflight.delete(key);
2636
2639
  }
2637
2640
  });
2638
- this.inflight.set(key, promise);
2641
+ this.inflight.set(key, { promise, tags, startVersion });
2639
2642
  return promise;
2640
2643
  }
2644
+ /** A fill that started before one of its tags was invalidated cannot satisfy later readers. */
2645
+ wasInvalidatedSince(tags, version) {
2646
+ for (const tag of tags) {
2647
+ const invalidatedVersion = this.invalidatedTagVersions.get(tag);
2648
+ if (invalidatedVersion !== void 0 && invalidatedVersion > version) return true;
2649
+ }
2650
+ return false;
2651
+ }
2641
2652
  async fillCacheEntry(key, producer, options, tags, generation) {
2642
2653
  const adapter = this.adapter;
2643
2654
  const namespace = this.namespace;
@@ -2678,7 +2689,7 @@ var init_cache = __esm({
2678
2689
  return value;
2679
2690
  } finally {
2680
2691
  this.activeGenerations.delete(activeGeneration);
2681
- this.pruneInvalidatedTagVersions();
2692
+ this.pruneInvalidatedTagVersions(activeGeneration.tags);
2682
2693
  if (leaseToken && adapter?.releaseLease) {
2683
2694
  try {
2684
2695
  await adapter.releaseLease(leaseKey, leaseToken);
@@ -2723,18 +2734,9 @@ var init_cache = __esm({
2723
2734
  }
2724
2735
  return void 0;
2725
2736
  }
2726
- countEntriesForTag(tag) {
2727
- let count = 0;
2728
- for (const entry of this.entries.values()) {
2729
- if (entry.tags.has(tag)) {
2730
- count++;
2731
- }
2732
- }
2733
- return count;
2734
- }
2735
2737
  countEntriesForTags(tags) {
2736
2738
  let count = 0;
2737
- for (const entry of this.entries.values()) {
2739
+ for (const entry of this.entriesByTag.get(tags[0]) ?? []) {
2738
2740
  if (tags.every((tag) => entry.tags.has(tag))) {
2739
2741
  count++;
2740
2742
  }
@@ -2742,10 +2744,10 @@ var init_cache = __esm({
2742
2744
  return count;
2743
2745
  }
2744
2746
  invalidateTag(normalizedTag) {
2745
- const count = this.countEntriesForTag(normalizedTag);
2747
+ const count = this.entriesByTag.get(normalizedTag)?.size ?? 0;
2746
2748
  this.invalidatedTagVersions.delete(normalizedTag);
2747
2749
  this.invalidatedTagVersions.set(normalizedTag, ++this.version);
2748
- this.pruneInvalidatedTagVersions();
2750
+ this.pruneInvalidatedTagVersions([normalizedTag]);
2749
2751
  return count;
2750
2752
  }
2751
2753
  toPublicEntry(entry) {
@@ -2775,19 +2777,51 @@ var init_cache = __esm({
2775
2777
  this.entries.set(key, entry);
2776
2778
  }
2777
2779
  storeLocalEntry(entry) {
2778
- this.entries.delete(entry.key);
2780
+ const removed = [];
2781
+ const replaced = this.detachLocalEntry(entry.key);
2782
+ if (replaced) removed.push(replaced);
2779
2783
  this.entries.set(entry.key, entry);
2784
+ for (const tag of entry.tags) {
2785
+ let tagged = this.entriesByTag.get(tag);
2786
+ if (!tagged) this.entriesByTag.set(tag, tagged = /* @__PURE__ */ new Set());
2787
+ tagged.add(entry);
2788
+ }
2780
2789
  while (this.entries.size > this.maxEntries) {
2781
2790
  const oldestKey = this.entries.keys().next().value;
2782
2791
  if (oldestKey === void 0) break;
2783
- this.entries.delete(oldestKey);
2792
+ removed.push(this.detachLocalEntry(oldestKey));
2784
2793
  }
2785
- this.pruneInvalidatedTagVersions();
2794
+ for (const removedEntry of removed) this.pruneInvalidatedTagVersions(removedEntry.tags);
2786
2795
  }
2787
- pruneInvalidatedTagVersions() {
2788
- tags: for (const [tag, invalidatedVersion] of this.invalidatedTagVersions) {
2789
- for (const entry of this.entries.values()) {
2790
- if (entry.tags.has(tag) && entry.createdVersion < invalidatedVersion) continue tags;
2796
+ deleteLocalEntry(key) {
2797
+ const entry = this.detachLocalEntry(key);
2798
+ if (!entry) return false;
2799
+ this.pruneInvalidatedTagVersions(entry.tags);
2800
+ return true;
2801
+ }
2802
+ detachLocalEntry(key) {
2803
+ const entry = this.entries.get(key);
2804
+ if (!entry) return void 0;
2805
+ this.entries.delete(key);
2806
+ for (const tag of entry.tags) {
2807
+ const tagged = this.entriesByTag.get(tag);
2808
+ if (!tagged) continue;
2809
+ tagged.delete(entry);
2810
+ if (tagged.size === 0) this.entriesByTag.delete(tag);
2811
+ }
2812
+ return entry;
2813
+ }
2814
+ /**
2815
+ * Drop invalidation versions that no local entry or active fill can be stale against.
2816
+ * Callers pass only the tags whose dependents just changed, so the cost is bounded by
2817
+ * the entries sharing those tags rather than by the whole cache.
2818
+ */
2819
+ pruneInvalidatedTagVersions(tags) {
2820
+ tags: for (const tag of tags) {
2821
+ const invalidatedVersion = this.invalidatedTagVersions.get(tag);
2822
+ if (invalidatedVersion === void 0) continue;
2823
+ for (const entry of this.entriesByTag.get(tag) ?? []) {
2824
+ if (entry.createdVersion < invalidatedVersion) continue tags;
2791
2825
  }
2792
2826
  for (const generation of this.activeGenerations) {
2793
2827
  if (generation.tags.has(tag) && generation.createdVersion < invalidatedVersion)
@@ -5701,6 +5735,19 @@ function normalizeMarkdownRoute(route) {
5701
5735
  }
5702
5736
  __name(normalizeMarkdownRoute, "normalizeMarkdownRoute");
5703
5737
 
5738
+ // src/utils/runtime-env.ts
5739
+ function getFarmRuntimeBindings() {
5740
+ const runtimeBindings = globalThis.__env__;
5741
+ return runtimeBindings && typeof runtimeBindings === "object" ? runtimeBindings : void 0;
5742
+ }
5743
+ __name(getFarmRuntimeBindings, "getFarmRuntimeBindings");
5744
+ function readFarmEnvironmentValue(name) {
5745
+ const runtimeValue = getFarmRuntimeBindings()?.[name];
5746
+ if (typeof runtimeValue === "string") return runtimeValue;
5747
+ return typeof process !== "undefined" ? process.env?.[name] : void 0;
5748
+ }
5749
+ __name(readFarmEnvironmentValue, "readFarmEnvironmentValue");
5750
+
5704
5751
  // src/workflows.ts
5705
5752
  var import_node_path = require("path");
5706
5753
  var DEFAULT_FARM_WORKFLOW_DIRS = ["src/jobs", "src/workflows", "src/cron"];
@@ -6015,9 +6062,8 @@ __name(readServerEnvKey, "readServerEnvKey");
6015
6062
  function readRuntimeServerEnv(env2) {
6016
6063
  const state = env2[FARM_ENV_RUNTIME_SYMBOL];
6017
6064
  if (!state) return;
6018
- const source = getProcessEnv();
6019
6065
  for (const [key, type] of Object.entries(state.pending)) {
6020
- const raw = source[key];
6066
+ const raw = readFarmEnvironmentValue(key);
6021
6067
  if (raw === void 0) continue;
6022
6068
  env2.server[key] = coerceRuntimeEnvValue(raw, type);
6023
6069
  delete state.pending[key];
@@ -10363,7 +10409,7 @@ function createEndpoint(pathOrOptions, optionsOrHandler, maybeHandler) {
10363
10409
  wrappedHandler
10364
10410
  );
10365
10411
  endpoint.__path = path17 || void 0;
10366
- endpoint.__method = options.method || "GET";
10412
+ endpoint.__method = options.method || (path17 ? "GET" : void 0);
10367
10413
  endpoint.__autoPath = !path17;
10368
10414
  endpoint.__handler = wrappedHandler;
10369
10415
  endpoint.__farmInvoke = (ctx) => runEndpointMiddleware(middleware, ctx, handler, error, options.invalidates);
@@ -7,13 +7,13 @@ import {
7
7
  import "../chunk-QV4VE2OW.mjs";
8
8
  import {
9
9
  getFarmDocsRouteTypeEntries
10
- } from "../chunk-MOQNHLTS.mjs";
10
+ } from "../chunk-5QOEPUYE.mjs";
11
11
  import "../chunk-UP4CW6WP.mjs";
12
12
  import "../chunk-TFQG7TBC.mjs";
13
13
  import {
14
14
  isProgrammaticRoutesFileName,
15
15
  scanProgrammaticPagePaths
16
- } from "../chunk-NC333MFA.mjs";
16
+ } from "../chunk-TSWW5BVH.mjs";
17
17
  import {
18
18
  getDeployTargetForPreset,
19
19
  getPresetForDeployTarget,
@@ -22,12 +22,12 @@ import {
22
22
  resolveConfig,
23
23
  resolveDeployConfig,
24
24
  resolveDeployOutputPath
25
- } from "../chunk-IXTEENRS.mjs";
25
+ } from "../chunk-QGVJVSNX.mjs";
26
26
  import "../chunk-XZNTNMHT.mjs";
27
27
  import {
28
28
  generateFarmTypeArtifacts,
29
29
  resolveRouteRenderingConfig
30
- } from "../chunk-27JNCYEK.mjs";
30
+ } from "../chunk-EN7WTEAY.mjs";
31
31
  import {
32
32
  collectSchemaExtensions,
33
33
  collectSchemaModels,
@@ -54,16 +54,16 @@ import {
54
54
  getFarmSourceRoots
55
55
  } from "../chunk-IILNZK5G.mjs";
56
56
  import "../chunk-OLYK7EAK.mjs";
57
- import "../chunk-Q3MDL7TM.mjs";
57
+ import "../chunk-ZCNJKLA2.mjs";
58
58
  import "../chunk-G2KY33I6.mjs";
59
- import "../chunk-4L7SZOHZ.mjs";
59
+ import "../chunk-YHOCRI4H.mjs";
60
60
  import "../chunk-QCFFHV5H.mjs";
61
- import "../chunk-7HDZYYS4.mjs";
61
+ import "../chunk-4OOBRCJX.mjs";
62
62
  import "../chunk-FA2W42OV.mjs";
63
- import "../chunk-6SCB2MXB.mjs";
64
- import "../chunk-MUUZJLCI.mjs";
65
- import "../chunk-ONUEYC6N.mjs";
63
+ import "../chunk-SXHV42UQ.mjs";
64
+ import "../chunk-EGJDUF4Q.mjs";
66
65
  import "../chunk-2UC36WAC.mjs";
66
+ import "../chunk-ONUEYC6N.mjs";
67
67
  import "../chunk-UWPLULNK.mjs";
68
68
  import "../chunk-AELACLOB.mjs";
69
69
  import "../chunk-SEJ5N6SL.mjs";
@@ -72,10 +72,10 @@ import {
72
72
  } from "../chunk-JLCQGPXE.mjs";
73
73
  import "../chunk-FP2INE7H.mjs";
74
74
  import "../chunk-44SYJEG3.mjs";
75
- import "../chunk-VO5SCWF5.mjs";
75
+ import "../chunk-BNGS6KJ6.mjs";
76
76
  import "../chunk-CU625VAY.mjs";
77
77
  import "../chunk-FV45CKBC.mjs";
78
- import "../chunk-OWTIOHON.mjs";
78
+ import "../chunk-SYGGPS4A.mjs";
79
79
  import "../chunk-W3B4PKAW.mjs";
80
80
  import "../chunk-EA5K5BKU.mjs";
81
81
  import {
@@ -98,7 +98,7 @@ import "../chunk-SKNL7VA2.mjs";
98
98
  import {
99
99
  getFarmPresetRuntime
100
100
  } from "../chunk-2A3EQHXX.mjs";
101
- import "../chunk-IGO2HEV7.mjs";
101
+ import "../chunk-F6SJAKFJ.mjs";
102
102
  import "../chunk-4SIYUGRY.mjs";
103
103
  import "../chunk-C4NCTZLM.mjs";
104
104
  import "../chunk-FUZEBRP3.mjs";
@@ -583,7 +583,7 @@ body {
583
583
  `;
584
584
 
585
585
  // package.json
586
- var version = "0.1.16";
586
+ var version = "0.1.17";
587
587
 
588
588
  // src/version.ts
589
589
  var FARM_VERSION = version;
@@ -7,7 +7,7 @@ import {
7
7
  } from "../chunk-XAXTTBUT.mjs";
8
8
  import {
9
9
  FARM_VERSION
10
- } from "../chunk-IL5RWYK7.mjs";
10
+ } from "../chunk-YD4J4XCI.mjs";
11
11
  import {
12
12
  __name
13
13
  } from "../chunk-LPEX4YW6.mjs";
@@ -1,7 +1,7 @@
1
- import { b as FarmRequest, c as FarmResponse, d as FarmPluginContext, a as FarmPlugin } from '../client-plugins-CIPRtSsW.mjs';
1
+ import { b as FarmRequest, c as FarmResponse, d as FarmPluginContext, a as FarmPlugin } from '../client-plugins-JXXmZliS.mjs';
2
2
  import '../lifecycle-DK06VuKP.mjs';
3
- import '../route-C_eLaFTZ.mjs';
4
- import '../endpoint-Bu3XgeMK.mjs';
3
+ import '../route-B0XrsrFk.mjs';
4
+ import '../endpoint-DAc96i93.mjs';
5
5
  import '../cache.mjs';
6
6
  import '../renderer.mjs';
7
7
  import '../deployment.mjs';
@@ -1,7 +1,7 @@
1
- import { b as FarmRequest, c as FarmResponse, d as FarmPluginContext, a as FarmPlugin } from '../client-plugins-CqVtZi5X.js';
1
+ import { b as FarmRequest, c as FarmResponse, d as FarmPluginContext, a as FarmPlugin } from '../client-plugins-C089bQhN.js';
2
2
  import '../lifecycle-DK06VuKP.js';
3
- import '../route-BxNJT447.js';
4
- import '../endpoint-kSAxE52R.js';
3
+ import '../route-DOEpbyWZ.js';
4
+ import '../endpoint-1zA994xL.js';
5
5
  import '../cache.js';
6
6
  import '../renderer.js';
7
7
  import '../deployment.js';
@@ -3599,6 +3599,19 @@ function normalizeMarkdownRoute(route) {
3599
3599
  }
3600
3600
  __name(normalizeMarkdownRoute, "normalizeMarkdownRoute");
3601
3601
 
3602
+ // src/utils/runtime-env.ts
3603
+ function getFarmRuntimeBindings() {
3604
+ const runtimeBindings = globalThis.__env__;
3605
+ return runtimeBindings && typeof runtimeBindings === "object" ? runtimeBindings : void 0;
3606
+ }
3607
+ __name(getFarmRuntimeBindings, "getFarmRuntimeBindings");
3608
+ function readFarmEnvironmentValue(name) {
3609
+ const runtimeValue = getFarmRuntimeBindings()?.[name];
3610
+ if (typeof runtimeValue === "string") return runtimeValue;
3611
+ return typeof process !== "undefined" ? process.env?.[name] : void 0;
3612
+ }
3613
+ __name(readFarmEnvironmentValue, "readFarmEnvironmentValue");
3614
+
3602
3615
  // src/utils.ts
3603
3616
  var logger = {
3604
3617
  info: /* @__PURE__ */ __name((message) => console.log(`[info] ${message}`), "info"),
@@ -3923,9 +3936,8 @@ __name(readServerEnvKey, "readServerEnvKey");
3923
3936
  function readRuntimeServerEnv(env2) {
3924
3937
  const state = env2[FARM_ENV_RUNTIME_SYMBOL];
3925
3938
  if (!state) return;
3926
- const source = getProcessEnv();
3927
3939
  for (const [key, type] of Object.entries(state.pending)) {
3928
- const raw = source[key];
3940
+ const raw = readFarmEnvironmentValue(key);
3929
3941
  if (raw === void 0) continue;
3930
3942
  env2.server[key] = coerceRuntimeEnvValue(raw, type);
3931
3943
  delete state.pending[key];
@@ -1,9 +1,9 @@
1
- export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-CIPRtSsW.mjs';
1
+ export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-JXXmZliS.mjs';
2
2
  import { build, createServer, loadEnv } from 'vite';
3
- export { l as logger } from '../utils-5kQP1mFR.mjs';
3
+ export { l as logger } from '../utils-uUxF0K0P.mjs';
4
4
  import '../lifecycle-DK06VuKP.mjs';
5
- import '../route-C_eLaFTZ.mjs';
6
- import '../endpoint-Bu3XgeMK.mjs';
5
+ import '../route-B0XrsrFk.mjs';
6
+ import '../endpoint-DAc96i93.mjs';
7
7
  import '../cache.mjs';
8
8
  import '../renderer.mjs';
9
9
  import '../deployment.mjs';
@@ -1,9 +1,9 @@
1
- export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-CqVtZi5X.js';
1
+ export { b2 as loadConfig, b1 as resolveConfig, b3 as resolveDeployConfig } from '../client-plugins-C089bQhN.js';
2
2
  import { build, createServer, loadEnv } from 'vite';
3
- export { l as logger } from '../utils-C4yrAhNc.js';
3
+ export { l as logger } from '../utils-B0XJmG_b.js';
4
4
  import '../lifecycle-DK06VuKP.js';
5
- import '../route-BxNJT447.js';
6
- import '../endpoint-kSAxE52R.js';
5
+ import '../route-DOEpbyWZ.js';
6
+ import '../endpoint-1zA994xL.js';
7
7
  import '../cache.js';
8
8
  import '../renderer.js';
9
9
  import '../deployment.js';
@@ -5,23 +5,23 @@ import {
5
5
  loadConfig,
6
6
  resolveConfig,
7
7
  resolveDeployConfig
8
- } from "../chunk-IXTEENRS.mjs";
8
+ } from "../chunk-QGVJVSNX.mjs";
9
9
  import "../chunk-XZNTNMHT.mjs";
10
10
  import "../chunk-FZC7EEPM.mjs";
11
11
  import "../chunk-JBSVKMC5.mjs";
12
12
  import "../chunk-7WPA7GBZ.mjs";
13
13
  import "../chunk-IILNZK5G.mjs";
14
14
  import "../chunk-OLYK7EAK.mjs";
15
- import "../chunk-Q3MDL7TM.mjs";
15
+ import "../chunk-ZCNJKLA2.mjs";
16
16
  import "../chunk-G2KY33I6.mjs";
17
- import "../chunk-4L7SZOHZ.mjs";
17
+ import "../chunk-YHOCRI4H.mjs";
18
18
  import "../chunk-QCFFHV5H.mjs";
19
- import "../chunk-7HDZYYS4.mjs";
19
+ import "../chunk-4OOBRCJX.mjs";
20
20
  import "../chunk-FA2W42OV.mjs";
21
- import "../chunk-6SCB2MXB.mjs";
22
- import "../chunk-MUUZJLCI.mjs";
23
- import "../chunk-ONUEYC6N.mjs";
21
+ import "../chunk-SXHV42UQ.mjs";
22
+ import "../chunk-EGJDUF4Q.mjs";
24
23
  import "../chunk-2UC36WAC.mjs";
24
+ import "../chunk-ONUEYC6N.mjs";
25
25
  import "../chunk-AELACLOB.mjs";
26
26
  import "../chunk-JLCQGPXE.mjs";
27
27
  import "../chunk-FP2INE7H.mjs";
@@ -57,7 +57,7 @@ function isTrue(value) {
57
57
  __name(isTrue, "isTrue");
58
58
 
59
59
  // package.json
60
- var version = "0.1.16";
60
+ var version = "0.1.17";
61
61
 
62
62
  // src/version.ts
63
63
  var FARM_VERSION = version;
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-BOYNDCZL.mjs";
4
4
  import {
5
5
  FARM_VERSION
6
- } from "../chunk-IL5RWYK7.mjs";
6
+ } from "../chunk-YD4J4XCI.mjs";
7
7
  import {
8
8
  __name
9
9
  } from "../chunk-LPEX4YW6.mjs";