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

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 (441) hide show
  1. package/dist/internal/build-runtime.cjs +1 -1
  2. package/dist/internal/build-runtime.cjs.map +1 -1
  3. package/dist/internal/build-runtime.mjs +5 -5
  4. package/dist/plugin.cjs.map +1 -1
  5. package/dist/plugin.mjs +4 -4
  6. package/dist/server-query-client.cjs +1 -1
  7. package/dist/server-query-client.cjs.map +1 -1
  8. package/dist/server-query-client.mjs +1 -1
  9. package/dist/server.cjs +1 -1
  10. package/dist/server.cjs.map +1 -1
  11. package/dist/server.mjs +4 -4
  12. package/dist/version.cjs +1 -1
  13. package/dist/version.cjs.map +1 -1
  14. package/dist/version.mjs +1 -1
  15. package/dist/vite.cjs +1 -1
  16. package/dist/vite.cjs.map +1 -1
  17. package/dist/vite.mjs +4 -4
  18. package/package.json +1 -1
  19. package/dist/after.cjs +0 -227
  20. package/dist/after.cjs.map +0 -1
  21. package/dist/after.d.mts +0 -25
  22. package/dist/after.d.ts +0 -25
  23. package/dist/after.mjs +0 -14
  24. package/dist/after.mjs.map +0 -1
  25. package/dist/agent-runtime.cjs +0 -2379
  26. package/dist/agent-runtime.cjs.map +0 -1
  27. package/dist/agent-runtime.d.mts +0 -94
  28. package/dist/agent-runtime.d.ts +0 -94
  29. package/dist/agent-runtime.mjs +0 -479
  30. package/dist/agent-runtime.mjs.map +0 -1
  31. package/dist/api/route-manager.d.mts +0 -66
  32. package/dist/api/route-manager.d.ts +0 -66
  33. package/dist/api/runtime.d.mts +0 -3
  34. package/dist/api/runtime.d.ts +0 -3
  35. package/dist/api.cjs +0 -4100
  36. package/dist/api.cjs.map +0 -1
  37. package/dist/api.d.mts +0 -48
  38. package/dist/api.d.ts +0 -48
  39. package/dist/api.mjs +0 -93
  40. package/dist/api.mjs.map +0 -1
  41. package/dist/app-BjN-da13.d.ts +0 -300
  42. package/dist/app-CakAr8Be.d.mts +0 -300
  43. package/dist/app-markdown.cjs +0 -220
  44. package/dist/app-markdown.cjs.map +0 -1
  45. package/dist/app-markdown.d.mts +0 -22
  46. package/dist/app-markdown.d.ts +0 -22
  47. package/dist/app-markdown.mjs +0 -26
  48. package/dist/app-markdown.mjs.map +0 -1
  49. package/dist/cache.cjs +0 -945
  50. package/dist/cache.cjs.map +0 -1
  51. package/dist/cache.d.mts +0 -192
  52. package/dist/cache.d.ts +0 -192
  53. package/dist/cache.mjs +0 -46
  54. package/dist/cache.mjs.map +0 -1
  55. package/dist/chunk-2CUKEMVR.mjs +0 -872
  56. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  57. package/dist/chunk-2ED5Q2GH.mjs +0 -422
  58. package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
  59. package/dist/chunk-32W4QEJP.mjs +0 -158
  60. package/dist/chunk-32W4QEJP.mjs.map +0 -1
  61. package/dist/chunk-3U3ZUQAQ.mjs +0 -41
  62. package/dist/chunk-3U3ZUQAQ.mjs.map +0 -1
  63. package/dist/chunk-3XNTL3FQ.mjs +0 -452
  64. package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
  65. package/dist/chunk-44ZCFSKE.mjs +0 -84
  66. package/dist/chunk-44ZCFSKE.mjs.map +0 -1
  67. package/dist/chunk-4S3ORGFA.mjs +0 -44
  68. package/dist/chunk-4S3ORGFA.mjs.map +0 -1
  69. package/dist/chunk-5BY76U2M.mjs +0 -1
  70. package/dist/chunk-5BY76U2M.mjs.map +0 -1
  71. package/dist/chunk-5ZGPRGWV.mjs +0 -136
  72. package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
  73. package/dist/chunk-65A7QIKI.mjs +0 -142
  74. package/dist/chunk-65A7QIKI.mjs.map +0 -1
  75. package/dist/chunk-74YTBPTY.mjs +0 -450
  76. package/dist/chunk-74YTBPTY.mjs.map +0 -1
  77. package/dist/chunk-7HO6AEOP.mjs +0 -74
  78. package/dist/chunk-7HO6AEOP.mjs.map +0 -1
  79. package/dist/chunk-7MABZJIM.mjs +0 -29
  80. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  81. package/dist/chunk-7ZY5AIJO.mjs +0 -161
  82. package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
  83. package/dist/chunk-AJWRO5WE.mjs +0 -6241
  84. package/dist/chunk-AJWRO5WE.mjs.map +0 -1
  85. package/dist/chunk-ALCLXXTY.mjs +0 -187
  86. package/dist/chunk-ALCLXXTY.mjs.map +0 -1
  87. package/dist/chunk-AOBXKNS5.mjs +0 -7631
  88. package/dist/chunk-AOBXKNS5.mjs.map +0 -1
  89. package/dist/chunk-AZ7YUVNR.mjs +0 -65
  90. package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
  91. package/dist/chunk-B232I2GP.mjs +0 -163
  92. package/dist/chunk-B232I2GP.mjs.map +0 -1
  93. package/dist/chunk-BHG3LVHH.mjs +0 -176
  94. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  95. package/dist/chunk-C2ROET2V.mjs +0 -718
  96. package/dist/chunk-C2ROET2V.mjs.map +0 -1
  97. package/dist/chunk-C3DLZMBU.mjs +0 -597
  98. package/dist/chunk-C3DLZMBU.mjs.map +0 -1
  99. package/dist/chunk-CGILA3WO.mjs +0 -14
  100. package/dist/chunk-CGILA3WO.mjs.map +0 -1
  101. package/dist/chunk-E2MPIBRE.mjs +0 -149
  102. package/dist/chunk-E2MPIBRE.mjs.map +0 -1
  103. package/dist/chunk-E6EPN5BT.mjs +0 -203
  104. package/dist/chunk-E6EPN5BT.mjs.map +0 -1
  105. package/dist/chunk-EJ7T4TPB.mjs +0 -622
  106. package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
  107. package/dist/chunk-FQYDHKKU.mjs +0 -128
  108. package/dist/chunk-FQYDHKKU.mjs.map +0 -1
  109. package/dist/chunk-FRPWCMMG.mjs +0 -299
  110. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  111. package/dist/chunk-GN72QAIH.mjs +0 -146
  112. package/dist/chunk-GN72QAIH.mjs.map +0 -1
  113. package/dist/chunk-GQVGIUSN.mjs +0 -149
  114. package/dist/chunk-GQVGIUSN.mjs.map +0 -1
  115. package/dist/chunk-GS6K5OCM.mjs +0 -407
  116. package/dist/chunk-GS6K5OCM.mjs.map +0 -1
  117. package/dist/chunk-GXASWWJU.mjs +0 -364
  118. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  119. package/dist/chunk-GY2STC2S.mjs +0 -180
  120. package/dist/chunk-GY2STC2S.mjs.map +0 -1
  121. package/dist/chunk-H2FA2SBS.mjs +0 -51
  122. package/dist/chunk-H2FA2SBS.mjs.map +0 -1
  123. package/dist/chunk-HNIQFZKB.mjs +0 -3550
  124. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  125. package/dist/chunk-ITN462YM.mjs +0 -98
  126. package/dist/chunk-ITN462YM.mjs.map +0 -1
  127. package/dist/chunk-J23HNLFY.mjs +0 -72
  128. package/dist/chunk-J23HNLFY.mjs.map +0 -1
  129. package/dist/chunk-J4FNJ5IU.mjs +0 -179
  130. package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
  131. package/dist/chunk-JDEOUK5V.mjs +0 -427
  132. package/dist/chunk-JDEOUK5V.mjs.map +0 -1
  133. package/dist/chunk-JK25YEN6.mjs +0 -219
  134. package/dist/chunk-JK25YEN6.mjs.map +0 -1
  135. package/dist/chunk-K4667E2Q.mjs +0 -1916
  136. package/dist/chunk-K4667E2Q.mjs.map +0 -1
  137. package/dist/chunk-LGHEOHBU.mjs +0 -218
  138. package/dist/chunk-LGHEOHBU.mjs.map +0 -1
  139. package/dist/chunk-LLC7BNXW.mjs +0 -275
  140. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  141. package/dist/chunk-LM2YNO4U.mjs +0 -24
  142. package/dist/chunk-LM2YNO4U.mjs.map +0 -1
  143. package/dist/chunk-MIUW47JX.mjs +0 -639
  144. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  145. package/dist/chunk-NM3CRAAL.mjs +0 -467
  146. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  147. package/dist/chunk-NNLCAVB6.mjs +0 -391
  148. package/dist/chunk-NNLCAVB6.mjs.map +0 -1
  149. package/dist/chunk-P7QDS5AT.mjs +0 -191
  150. package/dist/chunk-P7QDS5AT.mjs.map +0 -1
  151. package/dist/chunk-PFE6GMNE.mjs +0 -603
  152. package/dist/chunk-PFE6GMNE.mjs.map +0 -1
  153. package/dist/chunk-QGOHVJ6J.mjs +0 -63
  154. package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
  155. package/dist/chunk-QGQX7SFC.mjs +0 -180
  156. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  157. package/dist/chunk-QKVUNGAH.mjs +0 -39
  158. package/dist/chunk-QKVUNGAH.mjs.map +0 -1
  159. package/dist/chunk-QM746KUO.mjs +0 -56
  160. package/dist/chunk-QM746KUO.mjs.map +0 -1
  161. package/dist/chunk-RBRLLZL5.mjs +0 -81
  162. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  163. package/dist/chunk-RHIFZZUI.mjs +0 -69
  164. package/dist/chunk-RHIFZZUI.mjs.map +0 -1
  165. package/dist/chunk-RSKVYESE.mjs +0 -187
  166. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  167. package/dist/chunk-SADGIRS2.mjs +0 -211
  168. package/dist/chunk-SADGIRS2.mjs.map +0 -1
  169. package/dist/chunk-SCFX4UTD.mjs +0 -28
  170. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  171. package/dist/chunk-SL6HTIOK.mjs +0 -66
  172. package/dist/chunk-SL6HTIOK.mjs.map +0 -1
  173. package/dist/chunk-SPBBQLXI.mjs +0 -207
  174. package/dist/chunk-SPBBQLXI.mjs.map +0 -1
  175. package/dist/chunk-T4QJQK76.mjs +0 -459
  176. package/dist/chunk-T4QJQK76.mjs.map +0 -1
  177. package/dist/chunk-TQAEEJB4.mjs +0 -157
  178. package/dist/chunk-TQAEEJB4.mjs.map +0 -1
  179. package/dist/chunk-UB5UOSHB.mjs +0 -458
  180. package/dist/chunk-UB5UOSHB.mjs.map +0 -1
  181. package/dist/chunk-USWZZUEH.mjs +0 -25
  182. package/dist/chunk-USWZZUEH.mjs.map +0 -1
  183. package/dist/chunk-UVCIEUJC.mjs +0 -16
  184. package/dist/chunk-UVCIEUJC.mjs.map +0 -1
  185. package/dist/chunk-UXUAWNO5.mjs +0 -396
  186. package/dist/chunk-UXUAWNO5.mjs.map +0 -1
  187. package/dist/chunk-V3XURYJO.mjs +0 -756
  188. package/dist/chunk-V3XURYJO.mjs.map +0 -1
  189. package/dist/chunk-V6WE6JSZ.mjs +0 -352
  190. package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
  191. package/dist/chunk-V7RBCSDJ.mjs +0 -170
  192. package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
  193. package/dist/chunk-VCANOYFI.mjs +0 -588
  194. package/dist/chunk-VCANOYFI.mjs.map +0 -1
  195. package/dist/chunk-VVKWFZAH.mjs +0 -753
  196. package/dist/chunk-VVKWFZAH.mjs.map +0 -1
  197. package/dist/chunk-VY2UYN5R.mjs +0 -224
  198. package/dist/chunk-VY2UYN5R.mjs.map +0 -1
  199. package/dist/chunk-W2CRQFF6.mjs +0 -1352
  200. package/dist/chunk-W2CRQFF6.mjs.map +0 -1
  201. package/dist/chunk-W4UIVMVI.mjs +0 -10
  202. package/dist/chunk-W4UIVMVI.mjs.map +0 -1
  203. package/dist/chunk-WZ5QFROO.mjs +0 -23
  204. package/dist/chunk-WZ5QFROO.mjs.map +0 -1
  205. package/dist/chunk-XIVV5IWN.mjs +0 -541
  206. package/dist/chunk-XIVV5IWN.mjs.map +0 -1
  207. package/dist/chunk-YW7OBE6Q.mjs +0 -119
  208. package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
  209. package/dist/chunk-Z5CQMP54.mjs +0 -365
  210. package/dist/chunk-Z5CQMP54.mjs.map +0 -1
  211. package/dist/chunk-ZBE6MLHL.mjs +0 -230
  212. package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
  213. package/dist/chunk-ZZ57EH5Z.mjs +0 -173
  214. package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
  215. package/dist/client-BT1mFQas.d.mts +0 -447
  216. package/dist/client-Nn0q4eO4.d.ts +0 -447
  217. package/dist/client-cache-CIlyBlmx.d.ts +0 -6
  218. package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
  219. package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
  220. package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
  221. package/dist/client-plugins.cjs +0 -415
  222. package/dist/client-plugins.cjs.map +0 -1
  223. package/dist/client-plugins.d.mts +0 -22
  224. package/dist/client-plugins.d.ts +0 -22
  225. package/dist/client-plugins.mjs +0 -10
  226. package/dist/client-plugins.mjs.map +0 -1
  227. package/dist/client.cjs +0 -5402
  228. package/dist/client.cjs.map +0 -1
  229. package/dist/client.d.mts +0 -447
  230. package/dist/client.d.ts +0 -447
  231. package/dist/client.mjs +0 -110
  232. package/dist/client.mjs.map +0 -1
  233. package/dist/config.cjs +0 -38
  234. package/dist/config.cjs.map +0 -1
  235. package/dist/config.d.mts +0 -29
  236. package/dist/config.d.ts +0 -29
  237. package/dist/config.mjs +0 -10
  238. package/dist/config.mjs.map +0 -1
  239. package/dist/cron.cjs +0 -406
  240. package/dist/cron.cjs.map +0 -1
  241. package/dist/cron.d.mts +0 -78
  242. package/dist/cron.d.ts +0 -78
  243. package/dist/cron.mjs +0 -30
  244. package/dist/cron.mjs.map +0 -1
  245. package/dist/deferred.cjs +0 -438
  246. package/dist/deferred.cjs.map +0 -1
  247. package/dist/deferred.d.mts +0 -42
  248. package/dist/deferred.d.ts +0 -42
  249. package/dist/deferred.mjs +0 -28
  250. package/dist/deferred.mjs.map +0 -1
  251. package/dist/deployment.cjs +0 -199
  252. package/dist/deployment.cjs.map +0 -1
  253. package/dist/deployment.d.mts +0 -34
  254. package/dist/deployment.d.ts +0 -34
  255. package/dist/deployment.mjs +0 -38
  256. package/dist/deployment.mjs.map +0 -1
  257. package/dist/devtools-LVC3VB5P.mjs +0 -370
  258. package/dist/devtools-LVC3VB5P.mjs.map +0 -1
  259. package/dist/devtools-client-3XRTBND5.mjs +0 -216
  260. package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
  261. package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
  262. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  263. package/dist/docs.cjs +0 -5553
  264. package/dist/docs.cjs.map +0 -1
  265. package/dist/docs.d.mts +0 -69
  266. package/dist/docs.d.ts +0 -69
  267. package/dist/docs.mjs +0 -46
  268. package/dist/docs.mjs.map +0 -1
  269. package/dist/env-types.cjs +0 -223
  270. package/dist/env-types.cjs.map +0 -1
  271. package/dist/env-types.d.mts +0 -11
  272. package/dist/env-types.d.ts +0 -11
  273. package/dist/env-types.mjs +0 -9
  274. package/dist/env-types.mjs.map +0 -1
  275. package/dist/env.cjs +0 -215
  276. package/dist/env.cjs.map +0 -1
  277. package/dist/env.d.mts +0 -45
  278. package/dist/env.d.ts +0 -45
  279. package/dist/env.mjs +0 -22
  280. package/dist/env.mjs.map +0 -1
  281. package/dist/environment/vite.d.mts +0 -22
  282. package/dist/environment/vite.d.ts +0 -22
  283. package/dist/environment.cjs +0 -96
  284. package/dist/environment.cjs.map +0 -1
  285. package/dist/environment.d.mts +0 -18
  286. package/dist/environment.d.ts +0 -18
  287. package/dist/environment.mjs +0 -14
  288. package/dist/environment.mjs.map +0 -1
  289. package/dist/headers.cjs +0 -126
  290. package/dist/headers.cjs.map +0 -1
  291. package/dist/headers.d.mts +0 -22
  292. package/dist/headers.d.ts +0 -22
  293. package/dist/headers.mjs +0 -12
  294. package/dist/headers.mjs.map +0 -1
  295. package/dist/i18n/client.d.mts +0 -32
  296. package/dist/i18n/client.d.ts +0 -32
  297. package/dist/i18n/index.d.mts +0 -20
  298. package/dist/i18n/index.d.ts +0 -20
  299. package/dist/i18n/server.d.mts +0 -30
  300. package/dist/i18n/server.d.ts +0 -30
  301. package/dist/image/server.d.mts +0 -37
  302. package/dist/image/server.d.ts +0 -37
  303. package/dist/image/sharp.d.mts +0 -7
  304. package/dist/image/sharp.d.ts +0 -7
  305. package/dist/image-config-Duob7wER.d.mts +0 -50
  306. package/dist/image-config-Duob7wER.d.ts +0 -50
  307. package/dist/image.cjs +0 -209
  308. package/dist/image.cjs.map +0 -1
  309. package/dist/image.d.mts +0 -39
  310. package/dist/image.d.ts +0 -39
  311. package/dist/image.mjs +0 -165
  312. package/dist/image.mjs.map +0 -1
  313. package/dist/index.cjs +0 -41822
  314. package/dist/index.cjs.map +0 -1
  315. package/dist/index.d.mts +0 -452
  316. package/dist/index.d.ts +0 -452
  317. package/dist/index.mjs +0 -973
  318. package/dist/index.mjs.map +0 -1
  319. package/dist/integration-api-CHT2OKAf.d.mts +0 -93
  320. package/dist/integration-api-CHT2OKAf.d.ts +0 -93
  321. package/dist/integration-orm-GQLGU66X.mjs +0 -13
  322. package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
  323. package/dist/integrations.cjs +0 -2820
  324. package/dist/integrations.cjs.map +0 -1
  325. package/dist/integrations.d.mts +0 -22
  326. package/dist/integrations.d.ts +0 -22
  327. package/dist/integrations.mjs +0 -51
  328. package/dist/integrations.mjs.map +0 -1
  329. package/dist/internal/build-runtime.d.mts +0 -39
  330. package/dist/internal/build-runtime.d.ts +0 -39
  331. package/dist/internal/client-runtime.d.mts +0 -2
  332. package/dist/internal/client-runtime.d.ts +0 -2
  333. package/dist/internal/config-runtime.d.mts +0 -39
  334. package/dist/internal/config-runtime.d.ts +0 -39
  335. package/dist/internal/production-node-env.d.mts +0 -12
  336. package/dist/internal/production-node-env.d.ts +0 -12
  337. package/dist/internal/production-runtime.d.mts +0 -39
  338. package/dist/internal/production-runtime.d.ts +0 -39
  339. package/dist/layers-VWVDTPUZ.mjs +0 -16
  340. package/dist/layers-VWVDTPUZ.mjs.map +0 -1
  341. package/dist/manager-THKFTOFE.mjs +0 -10
  342. package/dist/manager-THKFTOFE.mjs.map +0 -1
  343. package/dist/markdown.cjs +0 -299
  344. package/dist/markdown.cjs.map +0 -1
  345. package/dist/markdown.d.mts +0 -43
  346. package/dist/markdown.d.ts +0 -43
  347. package/dist/markdown.mjs +0 -14
  348. package/dist/markdown.mjs.map +0 -1
  349. package/dist/metadata-BAPg_Nmo.d.ts +0 -22
  350. package/dist/metadata-_6i9oFG3.d.mts +0 -22
  351. package/dist/middleware.cjs +0 -2148
  352. package/dist/middleware.cjs.map +0 -1
  353. package/dist/middleware.d.mts +0 -164
  354. package/dist/middleware.d.ts +0 -164
  355. package/dist/middleware.mjs +0 -49
  356. package/dist/middleware.mjs.map +0 -1
  357. package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
  358. package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
  359. package/dist/navigation.cjs +0 -1329
  360. package/dist/navigation.cjs.map +0 -1
  361. package/dist/navigation.d.mts +0 -14
  362. package/dist/navigation.d.ts +0 -14
  363. package/dist/navigation.mjs +0 -33
  364. package/dist/navigation.mjs.map +0 -1
  365. package/dist/nitro-QO5LV6QK.mjs +0 -689
  366. package/dist/nitro-QO5LV6QK.mjs.map +0 -1
  367. package/dist/observability.cjs +0 -186
  368. package/dist/observability.cjs.map +0 -1
  369. package/dist/observability.d.mts +0 -335
  370. package/dist/observability.d.ts +0 -335
  371. package/dist/observability.mjs +0 -16
  372. package/dist/observability.mjs.map +0 -1
  373. package/dist/params-BALtrRim.d.ts +0 -15
  374. package/dist/params-ry-lxqmy.d.mts +0 -15
  375. package/dist/plugin-BJDf43dc.d.mts +0 -165
  376. package/dist/plugin-BJDf43dc.d.ts +0 -165
  377. package/dist/plugin.cjs +0 -23225
  378. package/dist/plugin.d.mts +0 -22
  379. package/dist/plugin.d.ts +0 -22
  380. package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
  381. package/dist/production-runtime-C_B79w2P.d.mts +0 -28
  382. package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
  383. package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
  384. package/dist/query/client.d.mts +0 -61
  385. package/dist/query/client.d.ts +0 -61
  386. package/dist/query/index.d.mts +0 -90
  387. package/dist/query/index.d.ts +0 -90
  388. package/dist/query/parsers.d.mts +0 -25
  389. package/dist/query/parsers.d.ts +0 -25
  390. package/dist/query/server.d.mts +0 -55
  391. package/dist/query/server.d.ts +0 -55
  392. package/dist/request-BrFBuc8G.d.mts +0 -6
  393. package/dist/request-BslSZIRz.d.ts +0 -6
  394. package/dist/request.d.mts +0 -2
  395. package/dist/request.d.ts +0 -2
  396. package/dist/resolver-C6iecsDV.d.ts +0 -14
  397. package/dist/resolver-DlOPpjkB.d.mts +0 -14
  398. package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
  399. package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
  400. package/dist/router.d.mts +0 -36
  401. package/dist/router.d.ts +0 -36
  402. package/dist/routes.d.mts +0 -224
  403. package/dist/routes.d.ts +0 -224
  404. package/dist/runtime-9nQjVM7X.d.mts +0 -206
  405. package/dist/runtime-B6GvwDS1.d.ts +0 -27
  406. package/dist/runtime-DeAAZ6gO.d.mts +0 -27
  407. package/dist/runtime-DgeS2skB.d.ts +0 -206
  408. package/dist/server-action-security.d.mts +0 -43
  409. package/dist/server-action-security.d.ts +0 -43
  410. package/dist/server-fn-client.d.mts +0 -32
  411. package/dist/server-fn-client.d.ts +0 -32
  412. package/dist/server-fn.d.mts +0 -93
  413. package/dist/server-fn.d.ts +0 -93
  414. package/dist/server-plugins.d.mts +0 -55
  415. package/dist/server-plugins.d.ts +0 -55
  416. package/dist/server-query-client.d.mts +0 -50
  417. package/dist/server-query-client.d.ts +0 -50
  418. package/dist/server-query.d.mts +0 -36
  419. package/dist/server-query.d.ts +0 -36
  420. package/dist/server.d.mts +0 -48
  421. package/dist/server.d.ts +0 -48
  422. package/dist/storage.d.mts +0 -52
  423. package/dist/storage.d.ts +0 -52
  424. package/dist/testing.d.mts +0 -101
  425. package/dist/testing.d.ts +0 -101
  426. package/dist/transport-BmbGTXA5.d.mts +0 -49
  427. package/dist/transport-BmbGTXA5.d.ts +0 -49
  428. package/dist/types-BH1lhg5G.d.mts +0 -81
  429. package/dist/types-BH1lhg5G.d.ts +0 -81
  430. package/dist/types-C9N-nk5R.d.mts +0 -53
  431. package/dist/types-C9N-nk5R.d.ts +0 -53
  432. package/dist/types-D1A6-XvH.d.mts +0 -73
  433. package/dist/types-D1A6-XvH.d.ts +0 -73
  434. package/dist/utils-CHXlMDkg.d.mts +0 -23
  435. package/dist/utils-Drsyz1Vj.d.ts +0 -23
  436. package/dist/version.d.mts +0 -3
  437. package/dist/version.d.ts +0 -3
  438. package/dist/vite.d.mts +0 -22
  439. package/dist/vite.d.ts +0 -22
  440. package/dist/workflows.d.mts +0 -110
  441. package/dist/workflows.d.ts +0 -110
@@ -1,149 +0,0 @@
1
- import {
2
- __name
3
- } from "./chunk-CGILA3WO.mjs";
4
-
5
- // src/route-runtime.ts
6
- function normalizeFarmRouteRuntimeConfig(value, source = "Route configuration") {
7
- if (!value) return {};
8
- const normalized = {};
9
- if (value.runtime !== void 0) {
10
- if (value.runtime !== "auto" && value.runtime !== "node" && value.runtime !== "edge") {
11
- throw new TypeError(`${source} runtime must be "auto", "node", or "edge"`);
12
- }
13
- normalized.runtime = value.runtime;
14
- }
15
- if (value.regions !== void 0) {
16
- if (value.regions === "auto") {
17
- normalized.regions = "auto";
18
- } else {
19
- if (!Array.isArray(value.regions) || value.regions.length === 0) {
20
- throw new TypeError(`${source} regions must be "auto" or a non-empty string array`);
21
- }
22
- const regions = Array.from(
23
- new Set(
24
- value.regions.map((region) => {
25
- if (typeof region !== "string" || !region.trim() || /[\u0000-\u001f\u007f]/.test(region)) {
26
- throw new TypeError(`${source} regions must contain non-empty region identifiers`);
27
- }
28
- return region.trim();
29
- })
30
- )
31
- );
32
- normalized.regions = regions;
33
- }
34
- }
35
- if (value.maxDuration !== void 0) {
36
- if (value.maxDuration === "auto") {
37
- normalized.maxDuration = "auto";
38
- } else if (typeof value.maxDuration !== "number" || !Number.isInteger(value.maxDuration) || value.maxDuration <= 0) {
39
- throw new TypeError(`${source} maxDuration must be "auto" or a positive integer in seconds`);
40
- } else {
41
- normalized.maxDuration = value.maxDuration;
42
- }
43
- }
44
- return normalized;
45
- }
46
- __name(normalizeFarmRouteRuntimeConfig, "normalizeFarmRouteRuntimeConfig");
47
- function mergeFarmRouteRuntimeConfigs(...configs) {
48
- const merged = {};
49
- for (const config of configs) {
50
- if (!config) continue;
51
- if (config.runtime !== void 0) merged.runtime = config.runtime;
52
- if (config.regions !== void 0) merged.regions = config.regions;
53
- if (config.maxDuration !== void 0) merged.maxDuration = config.maxDuration;
54
- }
55
- return merged;
56
- }
57
- __name(mergeFarmRouteRuntimeConfigs, "mergeFarmRouteRuntimeConfigs");
58
- function resolveFarmRouteRuntimeConfig(config, source) {
59
- const normalized = normalizeFarmRouteRuntimeConfig(config, source);
60
- return {
61
- runtime: normalized.runtime ?? "auto",
62
- ...normalized.regions && normalized.regions !== "auto" ? { regions: [...normalized.regions] } : {},
63
- ...typeof normalized.maxDuration === "number" ? { maxDuration: normalized.maxDuration } : {}
64
- };
65
- }
66
- __name(resolveFarmRouteRuntimeConfig, "resolveFarmRouteRuntimeConfig");
67
- function hasFarmRouteRuntimeControls(config) {
68
- return Boolean(
69
- config && (config.runtime !== void 0 || config.regions !== void 0 || config.maxDuration !== void 0)
70
- );
71
- }
72
- __name(hasFarmRouteRuntimeControls, "hasFarmRouteRuntimeControls");
73
- function getFarmRouteRuntimeConfig(value) {
74
- if (!value || typeof value !== "object") return {};
75
- const route = value;
76
- return {
77
- ...route.runtime !== void 0 ? { runtime: route.runtime } : {},
78
- ...route.regions !== void 0 ? { regions: route.regions } : {},
79
- ...route.maxDuration !== void 0 ? { maxDuration: route.maxDuration } : {}
80
- };
81
- }
82
- __name(getFarmRouteRuntimeConfig, "getFarmRouteRuntimeConfig");
83
- function createFarmRouteRuntimeKey(config) {
84
- return JSON.stringify({
85
- runtime: config.runtime,
86
- regions: config.regions || null,
87
- maxDuration: config.maxDuration || null
88
- });
89
- }
90
- __name(createFarmRouteRuntimeKey, "createFarmRouteRuntimeKey");
91
- function resolveFarmRouteRuleRuntimeConfig(pathname, routeRules) {
92
- if (!routeRules) return {};
93
- const matches = Object.entries(routeRules).filter(
94
- ([pattern, rule]) => hasFarmRouteRuntimeControls(rule) && farmRouteRuleMatches(pattern, pathname)
95
- ).sort(([left], [right]) => compareFarmRouteRuleSpecificity(left, right));
96
- return mergeFarmRouteRuntimeConfigs(...matches.map(([, rule]) => rule));
97
- }
98
- __name(resolveFarmRouteRuleRuntimeConfig, "resolveFarmRouteRuleRuntimeConfig");
99
- function farmRouteRuleMatches(pattern, pathname) {
100
- const normalizedPattern = normalizeRoutePattern(pattern);
101
- const normalizedPathname = normalizeRoutePattern(pathname);
102
- if (normalizedPattern === normalizedPathname) return true;
103
- const expression = normalizedPattern.split("/").filter(Boolean).map((segment) => {
104
- if (segment === "**") return ".*";
105
- if (segment === "*") return "[^/]+";
106
- if (/^\[\[\.\.\..+\]\]$/.test(segment)) return ".*";
107
- if (/^\[\.\.\..+\]$/.test(segment)) return ".+";
108
- if (/^\[.+\]$/.test(segment) || /^:.+$/.test(segment)) return "[^/]+";
109
- return escapeRegExp(segment);
110
- }).join("/");
111
- return new RegExp(`^/${expression}/?$`).test(normalizedPathname);
112
- }
113
- __name(farmRouteRuleMatches, "farmRouteRuleMatches");
114
- function compareFarmRouteRuleSpecificity(left, right) {
115
- const leftScore = getFarmRouteRuleSpecificity(left);
116
- const rightScore = getFarmRouteRuleSpecificity(right);
117
- return leftScore - rightScore || left.localeCompare(right);
118
- }
119
- __name(compareFarmRouteRuleSpecificity, "compareFarmRouteRuleSpecificity");
120
- function getFarmRouteRuleSpecificity(pattern) {
121
- return normalizeRoutePattern(pattern).split("/").filter(Boolean).reduce((score, segment) => {
122
- if (segment === "**" || segment.startsWith("[[...")) return score + 1;
123
- if (segment === "*" || segment.startsWith("[...")) return score + 10;
124
- if (/^\[.+\]$/.test(segment) || /^:.+$/.test(segment)) return score + 50;
125
- return score + 100;
126
- }, 0);
127
- }
128
- __name(getFarmRouteRuleSpecificity, "getFarmRouteRuleSpecificity");
129
- function normalizeRoutePattern(value) {
130
- const withSlash = value.trim().startsWith("/") ? value.trim() : `/${value.trim()}`;
131
- return withSlash.length > 1 ? withSlash.replace(/\/+$/, "") : withSlash;
132
- }
133
- __name(normalizeRoutePattern, "normalizeRoutePattern");
134
- function escapeRegExp(value) {
135
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
136
- }
137
- __name(escapeRegExp, "escapeRegExp");
138
-
139
- export {
140
- normalizeFarmRouteRuntimeConfig,
141
- mergeFarmRouteRuntimeConfigs,
142
- resolveFarmRouteRuntimeConfig,
143
- hasFarmRouteRuntimeControls,
144
- getFarmRouteRuntimeConfig,
145
- createFarmRouteRuntimeKey,
146
- resolveFarmRouteRuleRuntimeConfig,
147
- farmRouteRuleMatches
148
- };
149
- //# sourceMappingURL=chunk-GQVGIUSN.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/route-runtime.ts"],"sourcesContent":["export type FarmRouteRuntime = \"auto\" | \"node\" | \"edge\";\nexport type FarmRouteRegions = \"auto\" | readonly string[];\nexport type FarmRouteMaxDuration = \"auto\" | number;\n\n/** Portable execution controls shared by file, programmatic, and config routes. */\nexport interface FarmRouteRuntimeConfig {\n runtime?: FarmRouteRuntime;\n regions?: FarmRouteRegions;\n maxDuration?: FarmRouteMaxDuration;\n}\n\nexport interface ResolvedFarmRouteRuntimeConfig {\n runtime: FarmRouteRuntime;\n regions?: string[];\n maxDuration?: number;\n}\n\nexport type FarmRouteRuntimeEntryKind = \"page\" | \"api\" | \"rule\";\nexport type FarmRouteRenderingMode = \"static\" | \"dynamic\";\n\nexport interface FarmRouteRuntimeManifestEntry extends ResolvedFarmRouteRuntimeConfig {\n kind: FarmRouteRuntimeEntryKind;\n pattern: string;\n rendering: FarmRouteRenderingMode;\n source?: string;\n}\n\nexport interface FarmRouteRuntimeManifest {\n version: 1;\n routes: FarmRouteRuntimeManifestEntry[];\n}\n\nexport function normalizeFarmRouteRuntimeConfig(\n value: FarmRouteRuntimeConfig | null | undefined,\n source = \"Route configuration\",\n): FarmRouteRuntimeConfig {\n if (!value) return {};\n\n const normalized: FarmRouteRuntimeConfig = {};\n\n if (value.runtime !== undefined) {\n if (value.runtime !== \"auto\" && value.runtime !== \"node\" && value.runtime !== \"edge\") {\n throw new TypeError(`${source} runtime must be \"auto\", \"node\", or \"edge\"`);\n }\n normalized.runtime = value.runtime;\n }\n\n if (value.regions !== undefined) {\n if (value.regions === \"auto\") {\n normalized.regions = \"auto\";\n } else {\n if (!Array.isArray(value.regions) || value.regions.length === 0) {\n throw new TypeError(`${source} regions must be \"auto\" or a non-empty string array`);\n }\n\n const regions = Array.from(\n new Set(\n value.regions.map((region) => {\n if (\n typeof region !== \"string\" ||\n !region.trim() ||\n /[\\u0000-\\u001f\\u007f]/.test(region)\n ) {\n throw new TypeError(`${source} regions must contain non-empty region identifiers`);\n }\n return region.trim();\n }),\n ),\n );\n\n normalized.regions = regions;\n }\n }\n\n if (value.maxDuration !== undefined) {\n if (value.maxDuration === \"auto\") {\n normalized.maxDuration = \"auto\";\n } else if (\n typeof value.maxDuration !== \"number\" ||\n !Number.isInteger(value.maxDuration) ||\n value.maxDuration <= 0\n ) {\n throw new TypeError(`${source} maxDuration must be \"auto\" or a positive integer in seconds`);\n } else {\n normalized.maxDuration = value.maxDuration;\n }\n }\n\n return normalized;\n}\n\n/** Merge from lowest to highest precedence. Explicit \"auto\" values reset inherited hints. */\nexport function mergeFarmRouteRuntimeConfigs(\n ...configs: Array<FarmRouteRuntimeConfig | null | undefined>\n): FarmRouteRuntimeConfig {\n const merged: FarmRouteRuntimeConfig = {};\n\n for (const config of configs) {\n if (!config) continue;\n if (config.runtime !== undefined) merged.runtime = config.runtime;\n if (config.regions !== undefined) merged.regions = config.regions;\n if (config.maxDuration !== undefined) merged.maxDuration = config.maxDuration;\n }\n\n return merged;\n}\n\nexport function resolveFarmRouteRuntimeConfig(\n config: FarmRouteRuntimeConfig | null | undefined,\n source?: string,\n): ResolvedFarmRouteRuntimeConfig {\n const normalized = normalizeFarmRouteRuntimeConfig(config, source);\n\n return {\n runtime: normalized.runtime ?? \"auto\",\n ...(normalized.regions && normalized.regions !== \"auto\"\n ? { regions: [...normalized.regions] }\n : {}),\n ...(typeof normalized.maxDuration === \"number\" ? { maxDuration: normalized.maxDuration } : {}),\n };\n}\n\nexport function hasFarmRouteRuntimeControls(\n config: FarmRouteRuntimeConfig | null | undefined,\n): boolean {\n return Boolean(\n config &&\n (config.runtime !== undefined ||\n config.regions !== undefined ||\n config.maxDuration !== undefined),\n );\n}\n\nexport function getFarmRouteRuntimeConfig(value: unknown): FarmRouteRuntimeConfig {\n if (!value || typeof value !== \"object\") return {};\n const route = value as FarmRouteRuntimeConfig;\n return {\n ...(route.runtime !== undefined ? { runtime: route.runtime } : {}),\n ...(route.regions !== undefined ? { regions: route.regions } : {}),\n ...(route.maxDuration !== undefined ? { maxDuration: route.maxDuration } : {}),\n };\n}\n\nexport function createFarmRouteRuntimeKey(config: ResolvedFarmRouteRuntimeConfig): string {\n return JSON.stringify({\n runtime: config.runtime,\n regions: config.regions || null,\n maxDuration: config.maxDuration || null,\n });\n}\n\n/** Resolve matching route rules from broadest to most specific. */\nexport function resolveFarmRouteRuleRuntimeConfig(\n pathname: string,\n routeRules: Record<string, FarmRouteRuntimeConfig> | null | undefined,\n): FarmRouteRuntimeConfig {\n if (!routeRules) return {};\n\n const matches = Object.entries(routeRules)\n .filter(\n ([pattern, rule]) =>\n hasFarmRouteRuntimeControls(rule) && farmRouteRuleMatches(pattern, pathname),\n )\n .sort(([left], [right]) => compareFarmRouteRuleSpecificity(left, right));\n\n return mergeFarmRouteRuntimeConfigs(...matches.map(([, rule]) => rule));\n}\n\nexport function farmRouteRuleMatches(pattern: string, pathname: string): boolean {\n const normalizedPattern = normalizeRoutePattern(pattern);\n const normalizedPathname = normalizeRoutePattern(pathname);\n if (normalizedPattern === normalizedPathname) return true;\n\n const expression = normalizedPattern\n .split(\"/\")\n .filter(Boolean)\n .map((segment) => {\n if (segment === \"**\") return \".*\";\n if (segment === \"*\") return \"[^/]+\";\n if (/^\\[\\[\\.\\.\\..+\\]\\]$/.test(segment)) return \".*\";\n if (/^\\[\\.\\.\\..+\\]$/.test(segment)) return \".+\";\n if (/^\\[.+\\]$/.test(segment) || /^:.+$/.test(segment)) return \"[^/]+\";\n return escapeRegExp(segment);\n })\n .join(\"/\");\n\n return new RegExp(`^/${expression}/?$`).test(normalizedPathname);\n}\n\nfunction compareFarmRouteRuleSpecificity(left: string, right: string): number {\n const leftScore = getFarmRouteRuleSpecificity(left);\n const rightScore = getFarmRouteRuleSpecificity(right);\n return leftScore - rightScore || left.localeCompare(right);\n}\n\nfunction getFarmRouteRuleSpecificity(pattern: string): number {\n return normalizeRoutePattern(pattern)\n .split(\"/\")\n .filter(Boolean)\n .reduce((score, segment) => {\n if (segment === \"**\" || segment.startsWith(\"[[...\")) return score + 1;\n if (segment === \"*\" || segment.startsWith(\"[...\")) return score + 10;\n if (/^\\[.+\\]$/.test(segment) || /^:.+$/.test(segment)) return score + 50;\n return score + 100;\n }, 0);\n}\n\nfunction normalizeRoutePattern(value: string): string {\n const withSlash = value.trim().startsWith(\"/\") ? value.trim() : `/${value.trim()}`;\n return withSlash.length > 1 ? withSlash.replace(/\\/+$/, \"\") : withSlash;\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n"],"mappings":"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","names":[]}
@@ -1,407 +0,0 @@
1
- import {
2
- __name
3
- } from "./chunk-CGILA3WO.mjs";
4
-
5
- // src/deferred.ts
6
- var FARM_DEFERRED_CONTENT_TYPE = "application/x-farm-deferred+json";
7
- var FARM_DEFERRED_ERROR_CODE = "FARM_DEFERRED_DATA_ERROR";
8
- var FARM_DEFERRED_BRAND = /* @__PURE__ */ Symbol.for(
9
- "farm.deferred"
10
- );
11
- var FARM_DEFERRED_MARKER = "$farmDeferred";
12
- var _DeferredDataError = class _DeferredDataError extends Error {
13
- constructor(message = "Deferred route data failed to load") {
14
- super(message);
15
- this.name = "DeferredDataError";
16
- this.code = FARM_DEFERRED_ERROR_CODE;
17
- }
18
- };
19
- __name(_DeferredDataError, "DeferredDataError");
20
- var DeferredDataError = _DeferredDataError;
21
- var deferredStates = /* @__PURE__ */ new WeakMap();
22
- function defer(value) {
23
- if (isDeferred(value)) {
24
- return value;
25
- }
26
- const promise = Promise.resolve(value);
27
- Object.defineProperty(promise, FARM_DEFERRED_BRAND, {
28
- configurable: false,
29
- enumerable: false,
30
- value: true,
31
- writable: false
32
- });
33
- deferredStates.set(promise, { status: "pending" });
34
- promise.then(
35
- (resolved) => deferredStates.set(promise, { status: "fulfilled", value: resolved }),
36
- (reason) => deferredStates.set(promise, { status: "rejected", reason })
37
- );
38
- return promise;
39
- }
40
- __name(defer, "defer");
41
- function isDeferred(value) {
42
- return Boolean(
43
- value && (typeof value === "object" || typeof value === "function") && value[FARM_DEFERRED_BRAND] === true
44
- );
45
- }
46
- __name(isDeferred, "isDeferred");
47
- function prepareDeferredData(value) {
48
- const context = createEncodingContext();
49
- return {
50
- data: encodeDeferredValue(value, context, /* @__PURE__ */ new WeakSet()),
51
- records: context.records
52
- };
53
- }
54
- __name(prepareDeferredData, "prepareDeferredData");
55
- function snapshotDeferredData(records) {
56
- const context = createEncodingContext(records);
57
- const settlements = {};
58
- for (let index = 0; index < context.records.length; index++) {
59
- const record = context.records[index];
60
- const state = readDeferredState(record.promise);
61
- if (state.status === "fulfilled") {
62
- try {
63
- settlements[record.id] = {
64
- status: "fulfilled",
65
- value: encodeDeferredValue(state.value, context, /* @__PURE__ */ new WeakSet())
66
- };
67
- } catch {
68
- settlements[record.id] = createRejectedSettlement();
69
- }
70
- } else {
71
- settlements[record.id] = createRejectedSettlement();
72
- }
73
- }
74
- return settlements;
75
- }
76
- __name(snapshotDeferredData, "snapshotDeferredData");
77
- function reviveDeferredData(value, settlements) {
78
- return reviveDeferredValue(value, /* @__PURE__ */ new Map(), settlements);
79
- }
80
- __name(reviveDeferredData, "reviveDeferredData");
81
- function createDeferredDataResponse(value, init = {}, options = {}) {
82
- const context = createEncodingContext();
83
- const data = encodeDeferredValue(value, context, /* @__PURE__ */ new WeakSet());
84
- const headers = new Headers(init.headers);
85
- if (context.records.length === 0) {
86
- headers.set("Content-Type", "application/json; charset=utf-8");
87
- return new Response(JSON.stringify(data), { ...init, headers });
88
- }
89
- headers.set("Content-Type", `${FARM_DEFERRED_CONTENT_TYPE}; charset=utf-8`);
90
- headers.set("Cache-Control", headers.get("Cache-Control") || "private, max-age=0");
91
- const initialLine = encodeDeferredMessage({ type: "data", data });
92
- const encoder = new TextEncoder();
93
- let cancelled = false;
94
- const stream = new ReadableStream({
95
- start(controller) {
96
- controller.enqueue(encoder.encode(initialLine));
97
- let pending = context.records.length;
98
- const finishRecord = /* @__PURE__ */ __name(() => {
99
- pending--;
100
- if (!cancelled && pending === 0) controller.close();
101
- }, "finishRecord");
102
- const schedule = /* @__PURE__ */ __name((record) => {
103
- record.promise.then(
104
- (resolved) => {
105
- if (cancelled) return;
106
- try {
107
- const previousLength = context.records.length;
108
- const encoded = encodeDeferredValue(resolved, context, /* @__PURE__ */ new WeakSet());
109
- const nestedRecords = context.records.slice(previousLength);
110
- pending += nestedRecords.length;
111
- controller.enqueue(
112
- encoder.encode(
113
- encodeDeferredMessage({ type: "resolve", id: record.id, data: encoded })
114
- )
115
- );
116
- for (const nestedRecord of nestedRecords) schedule(nestedRecord);
117
- } catch (error) {
118
- reportDeferredError(options, error, record.id);
119
- controller.enqueue(
120
- encoder.encode(
121
- encodeDeferredMessage({
122
- type: "reject",
123
- id: record.id,
124
- error: createDeferredPublicError()
125
- })
126
- )
127
- );
128
- }
129
- },
130
- (error) => {
131
- if (cancelled) return;
132
- reportDeferredError(options, error, record.id);
133
- controller.enqueue(
134
- encoder.encode(
135
- encodeDeferredMessage({
136
- type: "reject",
137
- id: record.id,
138
- error: createDeferredPublicError()
139
- })
140
- )
141
- );
142
- }
143
- ).finally(finishRecord);
144
- }, "schedule");
145
- const initialRecords = context.records.slice();
146
- for (const record of initialRecords) schedule(record);
147
- },
148
- cancel() {
149
- cancelled = true;
150
- }
151
- });
152
- return new Response(stream, { ...init, headers });
153
- }
154
- __name(createDeferredDataResponse, "createDeferredDataResponse");
155
- async function readDeferredDataResponse(response) {
156
- const contentType = response.headers.get("Content-Type") || "";
157
- if (!contentType.toLowerCase().startsWith(FARM_DEFERRED_CONTENT_TYPE)) {
158
- return await response.json();
159
- }
160
- if (!response.body) {
161
- throw new DeferredDataError("Deferred route data response has no body");
162
- }
163
- const reader = response.body.getReader();
164
- const decoder = new TextDecoder();
165
- const controllers = /* @__PURE__ */ new Map();
166
- let buffer = "";
167
- let complete = false;
168
- const readLine = /* @__PURE__ */ __name(async () => {
169
- while (true) {
170
- const newline = buffer.indexOf("\n");
171
- if (newline >= 0) {
172
- const line = buffer.slice(0, newline);
173
- buffer = buffer.slice(newline + 1);
174
- return line;
175
- }
176
- if (complete) {
177
- if (!buffer) return void 0;
178
- const line = buffer;
179
- buffer = "";
180
- return line;
181
- }
182
- const chunk = await reader.read();
183
- complete = chunk.done;
184
- if (chunk.value) buffer += decoder.decode(chunk.value, { stream: !chunk.done });
185
- if (chunk.done) buffer += decoder.decode();
186
- }
187
- }, "readLine");
188
- const firstLine = await readLine();
189
- if (!firstLine) {
190
- reader.releaseLock();
191
- throw new DeferredDataError("Deferred route data response is empty");
192
- }
193
- const initial = parseDeferredMessage(firstLine);
194
- if (initial.type !== "data") {
195
- reader.releaseLock();
196
- throw new DeferredDataError("Deferred route data response is invalid");
197
- }
198
- const data = reviveDeferredValue(initial.data, controllers);
199
- void (async () => {
200
- try {
201
- for (let line = await readLine(); line !== void 0; line = await readLine()) {
202
- if (!line) continue;
203
- const message = parseDeferredMessage(line);
204
- if (message.type === "resolve") {
205
- const controller = getControlledDeferred(message.id, controllers);
206
- controller.resolve(reviveDeferredValue(message.data, controllers));
207
- } else if (message.type === "reject") {
208
- getControlledDeferred(message.id, controllers).reject(
209
- new DeferredDataError(message.error?.message)
210
- );
211
- }
212
- }
213
- rejectPendingDeferred(controllers, "Deferred route data stream ended before completion");
214
- } catch {
215
- rejectPendingDeferred(controllers, "Deferred route data stream could not be read");
216
- } finally {
217
- reader.releaseLock();
218
- }
219
- })();
220
- return data;
221
- }
222
- __name(readDeferredDataResponse, "readDeferredDataResponse");
223
- function createEncodingContext(records = []) {
224
- return {
225
- records: [...records],
226
- ids: new Map(records.map((record) => [record.promise, record.id])),
227
- nextId: records.reduce((highest, record) => {
228
- const value = Number(record.id.replace(/^d/, ""));
229
- return Number.isFinite(value) ? Math.max(highest, value + 1) : highest;
230
- }, records.length)
231
- };
232
- }
233
- __name(createEncodingContext, "createEncodingContext");
234
- function encodeDeferredValue(value, context, ancestors) {
235
- if (isDeferred(value)) {
236
- let id = context.ids.get(value);
237
- if (!id) {
238
- id = `d${context.nextId++}`;
239
- context.ids.set(value, id);
240
- context.records.push({ id, promise: value });
241
- }
242
- return { [FARM_DEFERRED_MARKER]: id };
243
- }
244
- if (!value || typeof value !== "object") return value;
245
- if (Array.isArray(value)) {
246
- assertNotCircular(value, ancestors);
247
- const output2 = value.map((item) => encodeDeferredValue(item, context, ancestors));
248
- ancestors.delete(value);
249
- return output2;
250
- }
251
- const prototype = Object.getPrototypeOf(value);
252
- if (prototype !== Object.prototype && prototype !== null) return value;
253
- assertNotCircular(value, ancestors);
254
- const output = {};
255
- for (const [key, item] of Object.entries(value)) {
256
- output[key] = encodeDeferredValue(item, context, ancestors);
257
- }
258
- ancestors.delete(value);
259
- return output;
260
- }
261
- __name(encodeDeferredValue, "encodeDeferredValue");
262
- function reviveDeferredValue(value, controllers, settlements, applyingSettlements = /* @__PURE__ */ new Set()) {
263
- if (isDeferredMarker(value)) {
264
- const id = value[FARM_DEFERRED_MARKER];
265
- const controller = getControlledDeferred(id, controllers);
266
- const settlement = settlements?.[id];
267
- if (settlement && controller.promise.status === "pending") {
268
- if (applyingSettlements.has(id)) return controller.promise;
269
- applyingSettlements.add(id);
270
- if (settlement.status === "fulfilled") {
271
- controller.resolve(
272
- reviveDeferredValue(settlement.value, controllers, settlements, applyingSettlements)
273
- );
274
- } else {
275
- controller.reject(new DeferredDataError(settlement.error.message));
276
- }
277
- applyingSettlements.delete(id);
278
- } else if (settlements && controller.promise.status === "pending") {
279
- controller.reject(new DeferredDataError("Deferred route data was not resolved"));
280
- }
281
- return controller.promise;
282
- }
283
- if (Array.isArray(value)) {
284
- return value.map(
285
- (item) => reviveDeferredValue(item, controllers, settlements, applyingSettlements)
286
- );
287
- }
288
- if (!value || typeof value !== "object") return value;
289
- const prototype = Object.getPrototypeOf(value);
290
- if (prototype !== Object.prototype && prototype !== null) return value;
291
- const output = {};
292
- for (const [key, item] of Object.entries(value)) {
293
- output[key] = reviveDeferredValue(item, controllers, settlements, applyingSettlements);
294
- }
295
- return output;
296
- }
297
- __name(reviveDeferredValue, "reviveDeferredValue");
298
- function getControlledDeferred(id, controllers) {
299
- const existing = controllers.get(id);
300
- if (existing) return existing;
301
- let nativeResolve;
302
- let nativeReject;
303
- const promise = new Promise((resolve, reject) => {
304
- nativeResolve = resolve;
305
- nativeReject = reject;
306
- });
307
- promise.status = "pending";
308
- promise.catch(() => void 0);
309
- const controlled = {
310
- promise,
311
- resolve(value) {
312
- if (promise.status !== "pending") return;
313
- promise.status = "fulfilled";
314
- promise.value = value;
315
- nativeResolve(value);
316
- },
317
- reject(error) {
318
- if (promise.status !== "pending") return;
319
- promise.status = "rejected";
320
- promise.reason = error;
321
- nativeReject(error);
322
- }
323
- };
324
- controllers.set(id, controlled);
325
- return controlled;
326
- }
327
- __name(getControlledDeferred, "getControlledDeferred");
328
- function readDeferredState(promise) {
329
- const tracked = deferredStates.get(promise);
330
- if (tracked && tracked.status !== "pending") return tracked;
331
- const reactState = promise;
332
- if (reactState.status === "fulfilled") {
333
- return { status: "fulfilled", value: reactState.value };
334
- }
335
- if (reactState.status === "rejected") {
336
- return { status: "rejected", reason: reactState.reason };
337
- }
338
- return tracked || { status: "pending" };
339
- }
340
- __name(readDeferredState, "readDeferredState");
341
- function isDeferredMarker(value) {
342
- return Boolean(
343
- value && typeof value === "object" && Object.keys(value).length === 1 && typeof value[FARM_DEFERRED_MARKER] === "string"
344
- );
345
- }
346
- __name(isDeferredMarker, "isDeferredMarker");
347
- function assertNotCircular(value, ancestors) {
348
- if (ancestors.has(value)) {
349
- throw new TypeError("Deferred route data must be JSON-serializable and cannot be circular");
350
- }
351
- ancestors.add(value);
352
- }
353
- __name(assertNotCircular, "assertNotCircular");
354
- function createDeferredPublicError() {
355
- return {
356
- code: FARM_DEFERRED_ERROR_CODE,
357
- message: "Deferred route data failed to load"
358
- };
359
- }
360
- __name(createDeferredPublicError, "createDeferredPublicError");
361
- function createRejectedSettlement() {
362
- return { status: "rejected", error: createDeferredPublicError() };
363
- }
364
- __name(createRejectedSettlement, "createRejectedSettlement");
365
- function reportDeferredError(options, error, id) {
366
- try {
367
- options.onError?.(error, id);
368
- } catch {
369
- }
370
- }
371
- __name(reportDeferredError, "reportDeferredError");
372
- function encodeDeferredMessage(message) {
373
- return `${JSON.stringify(message)}
374
- `;
375
- }
376
- __name(encodeDeferredMessage, "encodeDeferredMessage");
377
- function parseDeferredMessage(line) {
378
- try {
379
- return JSON.parse(line);
380
- } catch {
381
- throw new DeferredDataError("Deferred route data response contains invalid JSON");
382
- }
383
- }
384
- __name(parseDeferredMessage, "parseDeferredMessage");
385
- function rejectPendingDeferred(controllers, message) {
386
- for (const controller of controllers.values()) {
387
- if (controller.promise.status === "pending") {
388
- controller.reject(new DeferredDataError(message));
389
- }
390
- }
391
- }
392
- __name(rejectPendingDeferred, "rejectPendingDeferred");
393
-
394
- export {
395
- FARM_DEFERRED_CONTENT_TYPE,
396
- FARM_DEFERRED_ERROR_CODE,
397
- FARM_DEFERRED_BRAND,
398
- DeferredDataError,
399
- defer,
400
- isDeferred,
401
- prepareDeferredData,
402
- snapshotDeferredData,
403
- reviveDeferredData,
404
- createDeferredDataResponse,
405
- readDeferredDataResponse
406
- };
407
- //# sourceMappingURL=chunk-GS6K5OCM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deferred.ts"],"sourcesContent":["export const FARM_DEFERRED_CONTENT_TYPE = \"application/x-farm-deferred+json\";\nexport const FARM_DEFERRED_ERROR_CODE = \"FARM_DEFERRED_DATA_ERROR\";\nexport const FARM_DEFERRED_BRAND: unique symbol = Symbol.for(\n \"farm.deferred\",\n) as typeof FARM_DEFERRED_BRAND;\n\nconst FARM_DEFERRED_MARKER = \"$farmDeferred\";\n\ntype DeferredState<T = unknown> =\n | { status: \"pending\" }\n | { status: \"fulfilled\"; value: T }\n | { status: \"rejected\"; reason: unknown };\n\nexport interface Deferred<T> extends Promise<T> {\n readonly [FARM_DEFERRED_BRAND]: true;\n}\n\nexport interface PreparedDeferredData {\n data: unknown;\n records: readonly DeferredRecord[];\n}\n\nexport interface DeferredRecord {\n id: string;\n promise: Deferred<unknown>;\n}\n\nexport type DeferredSettlement =\n | { status: \"fulfilled\"; value: unknown }\n | { status: \"rejected\"; error: { code: typeof FARM_DEFERRED_ERROR_CODE; message: string } };\n\nexport type DeferredSettlements = Record<string, DeferredSettlement>;\n\nexport interface DeferredDataResponseOptions {\n onError?: (error: unknown, id: string) => void;\n}\n\nexport class DeferredDataError extends Error {\n readonly name = \"DeferredDataError\";\n readonly code = FARM_DEFERRED_ERROR_CODE;\n\n constructor(message = \"Deferred route data failed to load\") {\n super(message);\n }\n}\n\nconst deferredStates = new WeakMap<object, DeferredState>();\n\nexport function defer<T>(value: PromiseLike<T>): Deferred<Awaited<T>> {\n if (isDeferred(value)) {\n return value as Deferred<Awaited<T>>;\n }\n\n const promise = Promise.resolve(value) as Deferred<Awaited<T>>;\n Object.defineProperty(promise, FARM_DEFERRED_BRAND, {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false,\n });\n deferredStates.set(promise, { status: \"pending\" });\n promise.then(\n (resolved) => deferredStates.set(promise, { status: \"fulfilled\", value: resolved }),\n (reason) => deferredStates.set(promise, { status: \"rejected\", reason }),\n );\n return promise;\n}\n\nexport function isDeferred<T = unknown>(value: unknown): value is Deferred<T> {\n return Boolean(\n value &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n (value as Record<PropertyKey, unknown>)[FARM_DEFERRED_BRAND] === true,\n );\n}\n\nexport function prepareDeferredData(value: unknown): PreparedDeferredData {\n const context = createEncodingContext();\n return {\n data: encodeDeferredValue(value, context, new WeakSet()),\n records: context.records,\n };\n}\n\nexport function snapshotDeferredData(records: readonly DeferredRecord[]): DeferredSettlements {\n const context = createEncodingContext(records);\n const settlements: DeferredSettlements = {};\n\n for (let index = 0; index < context.records.length; index++) {\n const record = context.records[index]!;\n const state = readDeferredState(record.promise);\n\n if (state.status === \"fulfilled\") {\n try {\n settlements[record.id] = {\n status: \"fulfilled\",\n value: encodeDeferredValue(state.value, context, new WeakSet()),\n };\n } catch {\n settlements[record.id] = createRejectedSettlement();\n }\n } else {\n settlements[record.id] = createRejectedSettlement();\n }\n }\n\n return settlements;\n}\n\nexport function reviveDeferredData<T>(value: T, settlements: DeferredSettlements): T {\n return reviveDeferredValue(value, new Map(), settlements) as T;\n}\n\nexport function createDeferredDataResponse(\n value: unknown,\n init: ResponseInit = {},\n options: DeferredDataResponseOptions = {},\n): Response {\n const context = createEncodingContext();\n const data = encodeDeferredValue(value, context, new WeakSet());\n const headers = new Headers(init.headers);\n\n if (context.records.length === 0) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n return new Response(JSON.stringify(data), { ...init, headers });\n }\n\n headers.set(\"Content-Type\", `${FARM_DEFERRED_CONTENT_TYPE}; charset=utf-8`);\n headers.set(\"Cache-Control\", headers.get(\"Cache-Control\") || \"private, max-age=0\");\n const initialLine = encodeDeferredMessage({ type: \"data\", data });\n const encoder = new TextEncoder();\n let cancelled = false;\n\n const stream = new ReadableStream<Uint8Array>({\n start(controller) {\n controller.enqueue(encoder.encode(initialLine));\n let pending = context.records.length;\n\n const finishRecord = () => {\n pending--;\n if (!cancelled && pending === 0) controller.close();\n };\n\n const schedule = (record: DeferredRecord) => {\n record.promise\n .then(\n (resolved) => {\n if (cancelled) return;\n try {\n const previousLength = context.records.length;\n const encoded = encodeDeferredValue(resolved, context, new WeakSet());\n const nestedRecords = context.records.slice(previousLength);\n pending += nestedRecords.length;\n controller.enqueue(\n encoder.encode(\n encodeDeferredMessage({ type: \"resolve\", id: record.id, data: encoded }),\n ),\n );\n for (const nestedRecord of nestedRecords) schedule(nestedRecord);\n } catch (error) {\n reportDeferredError(options, error, record.id);\n controller.enqueue(\n encoder.encode(\n encodeDeferredMessage({\n type: \"reject\",\n id: record.id,\n error: createDeferredPublicError(),\n }),\n ),\n );\n }\n },\n (error) => {\n if (cancelled) return;\n reportDeferredError(options, error, record.id);\n controller.enqueue(\n encoder.encode(\n encodeDeferredMessage({\n type: \"reject\",\n id: record.id,\n error: createDeferredPublicError(),\n }),\n ),\n );\n },\n )\n .finally(finishRecord);\n };\n\n const initialRecords = context.records.slice();\n for (const record of initialRecords) schedule(record);\n },\n cancel() {\n cancelled = true;\n },\n });\n\n return new Response(stream, { ...init, headers });\n}\n\nexport async function readDeferredDataResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"Content-Type\") || \"\";\n if (!contentType.toLowerCase().startsWith(FARM_DEFERRED_CONTENT_TYPE)) {\n return (await response.json()) as T;\n }\n if (!response.body) {\n throw new DeferredDataError(\"Deferred route data response has no body\");\n }\n\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n const controllers = new Map<string, ControlledDeferred>();\n let buffer = \"\";\n let complete = false;\n\n const readLine = async (): Promise<string | undefined> => {\n while (true) {\n const newline = buffer.indexOf(\"\\n\");\n if (newline >= 0) {\n const line = buffer.slice(0, newline);\n buffer = buffer.slice(newline + 1);\n return line;\n }\n if (complete) {\n if (!buffer) return undefined;\n const line = buffer;\n buffer = \"\";\n return line;\n }\n\n const chunk = await reader.read();\n complete = chunk.done;\n if (chunk.value) buffer += decoder.decode(chunk.value, { stream: !chunk.done });\n if (chunk.done) buffer += decoder.decode();\n }\n };\n\n const firstLine = await readLine();\n if (!firstLine) {\n reader.releaseLock();\n throw new DeferredDataError(\"Deferred route data response is empty\");\n }\n\n const initial = parseDeferredMessage(firstLine);\n if (initial.type !== \"data\") {\n reader.releaseLock();\n throw new DeferredDataError(\"Deferred route data response is invalid\");\n }\n const data = reviveDeferredValue(initial.data, controllers) as T;\n\n void (async () => {\n try {\n for (let line = await readLine(); line !== undefined; line = await readLine()) {\n if (!line) continue;\n const message = parseDeferredMessage(line);\n if (message.type === \"resolve\") {\n const controller = getControlledDeferred(message.id, controllers);\n controller.resolve(reviveDeferredValue(message.data, controllers));\n } else if (message.type === \"reject\") {\n getControlledDeferred(message.id, controllers).reject(\n new DeferredDataError(message.error?.message),\n );\n }\n }\n rejectPendingDeferred(controllers, \"Deferred route data stream ended before completion\");\n } catch {\n rejectPendingDeferred(controllers, \"Deferred route data stream could not be read\");\n } finally {\n reader.releaseLock();\n }\n })();\n\n return data;\n}\n\ninterface EncodingContext {\n records: DeferredRecord[];\n ids: Map<Deferred<unknown>, string>;\n nextId: number;\n}\n\ninterface ControlledDeferred {\n promise: Promise<unknown> & {\n status?: \"pending\" | \"fulfilled\" | \"rejected\";\n value?: unknown;\n reason?: unknown;\n };\n resolve(value: unknown): void;\n reject(error: unknown): void;\n}\n\nfunction createEncodingContext(records: readonly DeferredRecord[] = []): EncodingContext {\n return {\n records: [...records],\n ids: new Map(records.map((record) => [record.promise, record.id])),\n nextId: records.reduce((highest, record) => {\n const value = Number(record.id.replace(/^d/, \"\"));\n return Number.isFinite(value) ? Math.max(highest, value + 1) : highest;\n }, records.length),\n };\n}\n\nfunction encodeDeferredValue(\n value: unknown,\n context: EncodingContext,\n ancestors: WeakSet<object>,\n): unknown {\n if (isDeferred(value)) {\n let id = context.ids.get(value);\n if (!id) {\n id = `d${context.nextId++}`;\n context.ids.set(value, id);\n context.records.push({ id, promise: value as Deferred<unknown> });\n }\n return { [FARM_DEFERRED_MARKER]: id };\n }\n if (!value || typeof value !== \"object\") return value;\n if (Array.isArray(value)) {\n assertNotCircular(value, ancestors);\n const output = value.map((item) => encodeDeferredValue(item, context, ancestors));\n ancestors.delete(value);\n return output;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return value;\n\n assertNotCircular(value, ancestors);\n const output: Record<string, unknown> = {};\n for (const [key, item] of Object.entries(value)) {\n output[key] = encodeDeferredValue(item, context, ancestors);\n }\n ancestors.delete(value);\n return output;\n}\n\nfunction reviveDeferredValue(\n value: unknown,\n controllers: Map<string, ControlledDeferred>,\n settlements?: DeferredSettlements,\n applyingSettlements = new Set<string>(),\n): unknown {\n if (isDeferredMarker(value)) {\n const id = value[FARM_DEFERRED_MARKER];\n const controller = getControlledDeferred(id, controllers);\n const settlement = settlements?.[id];\n if (settlement && controller.promise.status === \"pending\") {\n if (applyingSettlements.has(id)) return controller.promise;\n applyingSettlements.add(id);\n if (settlement.status === \"fulfilled\") {\n controller.resolve(\n reviveDeferredValue(settlement.value, controllers, settlements, applyingSettlements),\n );\n } else {\n controller.reject(new DeferredDataError(settlement.error.message));\n }\n applyingSettlements.delete(id);\n } else if (settlements && controller.promise.status === \"pending\") {\n controller.reject(new DeferredDataError(\"Deferred route data was not resolved\"));\n }\n return controller.promise;\n }\n if (Array.isArray(value)) {\n return value.map((item) =>\n reviveDeferredValue(item, controllers, settlements, applyingSettlements),\n );\n }\n if (!value || typeof value !== \"object\") return value;\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) return value;\n const output: Record<string, unknown> = {};\n for (const [key, item] of Object.entries(value)) {\n output[key] = reviveDeferredValue(item, controllers, settlements, applyingSettlements);\n }\n return output;\n}\n\nfunction getControlledDeferred(\n id: string,\n controllers: Map<string, ControlledDeferred>,\n): ControlledDeferred {\n const existing = controllers.get(id);\n if (existing) return existing;\n\n let nativeResolve!: (value: unknown) => void;\n let nativeReject!: (error: unknown) => void;\n const promise = new Promise<unknown>((resolve, reject) => {\n nativeResolve = resolve;\n nativeReject = reject;\n }) as ControlledDeferred[\"promise\"];\n promise.status = \"pending\";\n promise.catch(() => undefined);\n\n const controlled: ControlledDeferred = {\n promise,\n resolve(value) {\n if (promise.status !== \"pending\") return;\n promise.status = \"fulfilled\";\n promise.value = value;\n nativeResolve(value);\n },\n reject(error) {\n if (promise.status !== \"pending\") return;\n promise.status = \"rejected\";\n promise.reason = error;\n nativeReject(error);\n },\n };\n controllers.set(id, controlled);\n return controlled;\n}\n\nfunction readDeferredState(promise: Deferred<unknown>): DeferredState {\n const tracked = deferredStates.get(promise);\n if (tracked && tracked.status !== \"pending\") return tracked;\n\n const reactState = promise as Deferred<unknown> & {\n status?: string;\n value?: unknown;\n reason?: unknown;\n };\n if (reactState.status === \"fulfilled\") {\n return { status: \"fulfilled\", value: reactState.value };\n }\n if (reactState.status === \"rejected\") {\n return { status: \"rejected\", reason: reactState.reason };\n }\n return tracked || { status: \"pending\" };\n}\n\nfunction isDeferredMarker(value: unknown): value is { [FARM_DEFERRED_MARKER]: string } {\n return Boolean(\n value &&\n typeof value === \"object\" &&\n Object.keys(value).length === 1 &&\n typeof (value as Record<string, unknown>)[FARM_DEFERRED_MARKER] === \"string\",\n );\n}\n\nfunction assertNotCircular(value: object, ancestors: WeakSet<object>): void {\n if (ancestors.has(value)) {\n throw new TypeError(\"Deferred route data must be JSON-serializable and cannot be circular\");\n }\n ancestors.add(value);\n}\n\nfunction createDeferredPublicError() {\n return {\n code: FARM_DEFERRED_ERROR_CODE,\n message: \"Deferred route data failed to load\",\n } as const;\n}\n\nfunction createRejectedSettlement(): DeferredSettlement {\n return { status: \"rejected\", error: createDeferredPublicError() };\n}\n\nfunction reportDeferredError(\n options: DeferredDataResponseOptions,\n error: unknown,\n id: string,\n): void {\n try {\n options.onError?.(error, id);\n } catch {\n // Error reporting must not break the response stream.\n }\n}\n\nfunction encodeDeferredMessage(message: Record<string, unknown>): string {\n return `${JSON.stringify(message)}\\n`;\n}\n\nfunction parseDeferredMessage(line: string): any {\n try {\n return JSON.parse(line);\n } catch {\n throw new DeferredDataError(\"Deferred route data response contains invalid JSON\");\n }\n}\n\nfunction rejectPendingDeferred(\n controllers: Map<string, ControlledDeferred>,\n message: string,\n): void {\n for (const controller of controllers.values()) {\n if (controller.promise.status === \"pending\") {\n controller.reject(new DeferredDataError(message));\n }\n }\n}\n"],"mappings":"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","names":["output"]}