@farm.js/core 0.1.0-beta.5 → 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 (424) hide show
  1. package/package.json +1 -1
  2. package/dist/after.cjs +0 -227
  3. package/dist/after.cjs.map +0 -1
  4. package/dist/after.d.mts +0 -25
  5. package/dist/after.d.ts +0 -25
  6. package/dist/after.mjs +0 -14
  7. package/dist/after.mjs.map +0 -1
  8. package/dist/agent-runtime.cjs +0 -2379
  9. package/dist/agent-runtime.cjs.map +0 -1
  10. package/dist/agent-runtime.d.mts +0 -94
  11. package/dist/agent-runtime.d.ts +0 -94
  12. package/dist/agent-runtime.mjs +0 -479
  13. package/dist/agent-runtime.mjs.map +0 -1
  14. package/dist/api/route-manager.d.mts +0 -66
  15. package/dist/api/route-manager.d.ts +0 -66
  16. package/dist/api/runtime.d.mts +0 -3
  17. package/dist/api/runtime.d.ts +0 -3
  18. package/dist/api.cjs +0 -4100
  19. package/dist/api.cjs.map +0 -1
  20. package/dist/api.d.mts +0 -48
  21. package/dist/api.d.ts +0 -48
  22. package/dist/api.mjs +0 -93
  23. package/dist/api.mjs.map +0 -1
  24. package/dist/app-BjN-da13.d.ts +0 -300
  25. package/dist/app-CakAr8Be.d.mts +0 -300
  26. package/dist/app-markdown.cjs +0 -220
  27. package/dist/app-markdown.cjs.map +0 -1
  28. package/dist/app-markdown.d.mts +0 -22
  29. package/dist/app-markdown.d.ts +0 -22
  30. package/dist/app-markdown.mjs +0 -26
  31. package/dist/app-markdown.mjs.map +0 -1
  32. package/dist/cache.cjs +0 -945
  33. package/dist/cache.cjs.map +0 -1
  34. package/dist/cache.d.mts +0 -192
  35. package/dist/cache.d.ts +0 -192
  36. package/dist/cache.mjs +0 -46
  37. package/dist/cache.mjs.map +0 -1
  38. package/dist/chunk-2CUKEMVR.mjs +0 -872
  39. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  40. package/dist/chunk-2ED5Q2GH.mjs +0 -422
  41. package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
  42. package/dist/chunk-2NHCNRF6.mjs +0 -6241
  43. package/dist/chunk-2NHCNRF6.mjs.map +0 -1
  44. package/dist/chunk-32W4QEJP.mjs +0 -158
  45. package/dist/chunk-32W4QEJP.mjs.map +0 -1
  46. package/dist/chunk-3XNTL3FQ.mjs +0 -452
  47. package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
  48. package/dist/chunk-44ZCFSKE.mjs +0 -84
  49. package/dist/chunk-44ZCFSKE.mjs.map +0 -1
  50. package/dist/chunk-4S3ORGFA.mjs +0 -44
  51. package/dist/chunk-4S3ORGFA.mjs.map +0 -1
  52. package/dist/chunk-5BY76U2M.mjs +0 -1
  53. package/dist/chunk-5BY76U2M.mjs.map +0 -1
  54. package/dist/chunk-5ZGPRGWV.mjs +0 -136
  55. package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
  56. package/dist/chunk-65A7QIKI.mjs +0 -142
  57. package/dist/chunk-65A7QIKI.mjs.map +0 -1
  58. package/dist/chunk-74YTBPTY.mjs +0 -450
  59. package/dist/chunk-74YTBPTY.mjs.map +0 -1
  60. package/dist/chunk-7HO6AEOP.mjs +0 -74
  61. package/dist/chunk-7HO6AEOP.mjs.map +0 -1
  62. package/dist/chunk-7MABZJIM.mjs +0 -29
  63. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  64. package/dist/chunk-7N62DNSO.mjs +0 -41
  65. package/dist/chunk-7N62DNSO.mjs.map +0 -1
  66. package/dist/chunk-7ZY5AIJO.mjs +0 -161
  67. package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
  68. package/dist/chunk-A2LUXHD2.mjs +0 -7631
  69. package/dist/chunk-A2LUXHD2.mjs.map +0 -1
  70. package/dist/chunk-ALCLXXTY.mjs +0 -187
  71. package/dist/chunk-ALCLXXTY.mjs.map +0 -1
  72. package/dist/chunk-AZ7YUVNR.mjs +0 -65
  73. package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
  74. package/dist/chunk-B232I2GP.mjs +0 -163
  75. package/dist/chunk-B232I2GP.mjs.map +0 -1
  76. package/dist/chunk-BHG3LVHH.mjs +0 -176
  77. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  78. package/dist/chunk-C2ROET2V.mjs +0 -718
  79. package/dist/chunk-C2ROET2V.mjs.map +0 -1
  80. package/dist/chunk-C3DLZMBU.mjs +0 -597
  81. package/dist/chunk-C3DLZMBU.mjs.map +0 -1
  82. package/dist/chunk-CGILA3WO.mjs +0 -14
  83. package/dist/chunk-CGILA3WO.mjs.map +0 -1
  84. package/dist/chunk-E2MPIBRE.mjs +0 -149
  85. package/dist/chunk-E2MPIBRE.mjs.map +0 -1
  86. package/dist/chunk-E6EPN5BT.mjs +0 -203
  87. package/dist/chunk-E6EPN5BT.mjs.map +0 -1
  88. package/dist/chunk-EEABSBKK.mjs +0 -10
  89. package/dist/chunk-EEABSBKK.mjs.map +0 -1
  90. package/dist/chunk-EJ7T4TPB.mjs +0 -622
  91. package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
  92. package/dist/chunk-FQYDHKKU.mjs +0 -128
  93. package/dist/chunk-FQYDHKKU.mjs.map +0 -1
  94. package/dist/chunk-FRPWCMMG.mjs +0 -299
  95. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  96. package/dist/chunk-GN72QAIH.mjs +0 -146
  97. package/dist/chunk-GN72QAIH.mjs.map +0 -1
  98. package/dist/chunk-GQVGIUSN.mjs +0 -149
  99. package/dist/chunk-GQVGIUSN.mjs.map +0 -1
  100. package/dist/chunk-GS6K5OCM.mjs +0 -407
  101. package/dist/chunk-GS6K5OCM.mjs.map +0 -1
  102. package/dist/chunk-GXASWWJU.mjs +0 -364
  103. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  104. package/dist/chunk-GY2STC2S.mjs +0 -180
  105. package/dist/chunk-GY2STC2S.mjs.map +0 -1
  106. package/dist/chunk-H2FA2SBS.mjs +0 -51
  107. package/dist/chunk-H2FA2SBS.mjs.map +0 -1
  108. package/dist/chunk-HNIQFZKB.mjs +0 -3550
  109. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  110. package/dist/chunk-ITN462YM.mjs +0 -98
  111. package/dist/chunk-ITN462YM.mjs.map +0 -1
  112. package/dist/chunk-J23HNLFY.mjs +0 -72
  113. package/dist/chunk-J23HNLFY.mjs.map +0 -1
  114. package/dist/chunk-J4FNJ5IU.mjs +0 -179
  115. package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
  116. package/dist/chunk-J5YWQVI5.mjs +0 -211
  117. package/dist/chunk-J5YWQVI5.mjs.map +0 -1
  118. package/dist/chunk-JDEOUK5V.mjs +0 -427
  119. package/dist/chunk-JDEOUK5V.mjs.map +0 -1
  120. package/dist/chunk-JK25YEN6.mjs +0 -219
  121. package/dist/chunk-JK25YEN6.mjs.map +0 -1
  122. package/dist/chunk-K4667E2Q.mjs +0 -1916
  123. package/dist/chunk-K4667E2Q.mjs.map +0 -1
  124. package/dist/chunk-LGHEOHBU.mjs +0 -218
  125. package/dist/chunk-LGHEOHBU.mjs.map +0 -1
  126. package/dist/chunk-LLC7BNXW.mjs +0 -275
  127. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  128. package/dist/chunk-LM2YNO4U.mjs +0 -24
  129. package/dist/chunk-LM2YNO4U.mjs.map +0 -1
  130. package/dist/chunk-MIUW47JX.mjs +0 -639
  131. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  132. package/dist/chunk-NM3CRAAL.mjs +0 -467
  133. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  134. package/dist/chunk-NNLCAVB6.mjs +0 -391
  135. package/dist/chunk-NNLCAVB6.mjs.map +0 -1
  136. package/dist/chunk-P7QDS5AT.mjs +0 -191
  137. package/dist/chunk-P7QDS5AT.mjs.map +0 -1
  138. package/dist/chunk-PFE6GMNE.mjs +0 -603
  139. package/dist/chunk-PFE6GMNE.mjs.map +0 -1
  140. package/dist/chunk-QGOHVJ6J.mjs +0 -63
  141. package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
  142. package/dist/chunk-QGQX7SFC.mjs +0 -180
  143. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  144. package/dist/chunk-QKVUNGAH.mjs +0 -39
  145. package/dist/chunk-QKVUNGAH.mjs.map +0 -1
  146. package/dist/chunk-QM746KUO.mjs +0 -56
  147. package/dist/chunk-QM746KUO.mjs.map +0 -1
  148. package/dist/chunk-QTZZ2ISQ.mjs +0 -753
  149. package/dist/chunk-QTZZ2ISQ.mjs.map +0 -1
  150. package/dist/chunk-RBRLLZL5.mjs +0 -81
  151. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  152. package/dist/chunk-RHIFZZUI.mjs +0 -69
  153. package/dist/chunk-RHIFZZUI.mjs.map +0 -1
  154. package/dist/chunk-RSKVYESE.mjs +0 -187
  155. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  156. package/dist/chunk-SCFX4UTD.mjs +0 -28
  157. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  158. package/dist/chunk-SL6HTIOK.mjs +0 -66
  159. package/dist/chunk-SL6HTIOK.mjs.map +0 -1
  160. package/dist/chunk-SPBBQLXI.mjs +0 -207
  161. package/dist/chunk-SPBBQLXI.mjs.map +0 -1
  162. package/dist/chunk-T4QJQK76.mjs +0 -459
  163. package/dist/chunk-T4QJQK76.mjs.map +0 -1
  164. package/dist/chunk-TQAEEJB4.mjs +0 -157
  165. package/dist/chunk-TQAEEJB4.mjs.map +0 -1
  166. package/dist/chunk-UB5UOSHB.mjs +0 -458
  167. package/dist/chunk-UB5UOSHB.mjs.map +0 -1
  168. package/dist/chunk-USWZZUEH.mjs +0 -25
  169. package/dist/chunk-USWZZUEH.mjs.map +0 -1
  170. package/dist/chunk-UVCIEUJC.mjs +0 -16
  171. package/dist/chunk-UVCIEUJC.mjs.map +0 -1
  172. package/dist/chunk-UXUAWNO5.mjs +0 -396
  173. package/dist/chunk-UXUAWNO5.mjs.map +0 -1
  174. package/dist/chunk-V3XURYJO.mjs +0 -756
  175. package/dist/chunk-V3XURYJO.mjs.map +0 -1
  176. package/dist/chunk-V6WE6JSZ.mjs +0 -352
  177. package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
  178. package/dist/chunk-V7RBCSDJ.mjs +0 -170
  179. package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
  180. package/dist/chunk-VCANOYFI.mjs +0 -588
  181. package/dist/chunk-VCANOYFI.mjs.map +0 -1
  182. package/dist/chunk-VY2UYN5R.mjs +0 -224
  183. package/dist/chunk-VY2UYN5R.mjs.map +0 -1
  184. package/dist/chunk-W2CRQFF6.mjs +0 -1352
  185. package/dist/chunk-W2CRQFF6.mjs.map +0 -1
  186. package/dist/chunk-WZ5QFROO.mjs +0 -23
  187. package/dist/chunk-WZ5QFROO.mjs.map +0 -1
  188. package/dist/chunk-XIVV5IWN.mjs +0 -541
  189. package/dist/chunk-XIVV5IWN.mjs.map +0 -1
  190. package/dist/chunk-YW7OBE6Q.mjs +0 -119
  191. package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
  192. package/dist/chunk-Z5CQMP54.mjs +0 -365
  193. package/dist/chunk-Z5CQMP54.mjs.map +0 -1
  194. package/dist/chunk-ZBE6MLHL.mjs +0 -230
  195. package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
  196. package/dist/chunk-ZZ57EH5Z.mjs +0 -173
  197. package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
  198. package/dist/client-BT1mFQas.d.mts +0 -447
  199. package/dist/client-Nn0q4eO4.d.ts +0 -447
  200. package/dist/client-cache-CIlyBlmx.d.ts +0 -6
  201. package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
  202. package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
  203. package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
  204. package/dist/client-plugins.cjs +0 -415
  205. package/dist/client-plugins.cjs.map +0 -1
  206. package/dist/client-plugins.d.mts +0 -22
  207. package/dist/client-plugins.d.ts +0 -22
  208. package/dist/client-plugins.mjs +0 -10
  209. package/dist/client-plugins.mjs.map +0 -1
  210. package/dist/client.cjs +0 -5402
  211. package/dist/client.cjs.map +0 -1
  212. package/dist/client.d.mts +0 -447
  213. package/dist/client.d.ts +0 -447
  214. package/dist/client.mjs +0 -110
  215. package/dist/client.mjs.map +0 -1
  216. package/dist/config.cjs +0 -38
  217. package/dist/config.cjs.map +0 -1
  218. package/dist/config.d.mts +0 -29
  219. package/dist/config.d.ts +0 -29
  220. package/dist/config.mjs +0 -10
  221. package/dist/config.mjs.map +0 -1
  222. package/dist/cron.cjs +0 -406
  223. package/dist/cron.cjs.map +0 -1
  224. package/dist/cron.d.mts +0 -78
  225. package/dist/cron.d.ts +0 -78
  226. package/dist/cron.mjs +0 -30
  227. package/dist/cron.mjs.map +0 -1
  228. package/dist/deferred.cjs +0 -438
  229. package/dist/deferred.cjs.map +0 -1
  230. package/dist/deferred.d.mts +0 -42
  231. package/dist/deferred.d.ts +0 -42
  232. package/dist/deferred.mjs +0 -28
  233. package/dist/deferred.mjs.map +0 -1
  234. package/dist/deployment.cjs +0 -199
  235. package/dist/deployment.cjs.map +0 -1
  236. package/dist/deployment.d.mts +0 -34
  237. package/dist/deployment.d.ts +0 -34
  238. package/dist/deployment.mjs +0 -38
  239. package/dist/deployment.mjs.map +0 -1
  240. package/dist/devtools-LVC3VB5P.mjs +0 -370
  241. package/dist/devtools-LVC3VB5P.mjs.map +0 -1
  242. package/dist/devtools-client-3XRTBND5.mjs +0 -216
  243. package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
  244. package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
  245. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  246. package/dist/docs.cjs +0 -5553
  247. package/dist/docs.cjs.map +0 -1
  248. package/dist/docs.d.mts +0 -69
  249. package/dist/docs.d.ts +0 -69
  250. package/dist/docs.mjs +0 -46
  251. package/dist/docs.mjs.map +0 -1
  252. package/dist/env-types.cjs +0 -223
  253. package/dist/env-types.cjs.map +0 -1
  254. package/dist/env-types.d.mts +0 -11
  255. package/dist/env-types.d.ts +0 -11
  256. package/dist/env-types.mjs +0 -9
  257. package/dist/env-types.mjs.map +0 -1
  258. package/dist/env.cjs +0 -215
  259. package/dist/env.cjs.map +0 -1
  260. package/dist/env.d.mts +0 -45
  261. package/dist/env.d.ts +0 -45
  262. package/dist/env.mjs +0 -22
  263. package/dist/env.mjs.map +0 -1
  264. package/dist/environment/vite.d.mts +0 -22
  265. package/dist/environment/vite.d.ts +0 -22
  266. package/dist/environment.cjs +0 -96
  267. package/dist/environment.cjs.map +0 -1
  268. package/dist/environment.d.mts +0 -18
  269. package/dist/environment.d.ts +0 -18
  270. package/dist/environment.mjs +0 -14
  271. package/dist/environment.mjs.map +0 -1
  272. package/dist/headers.cjs +0 -126
  273. package/dist/headers.cjs.map +0 -1
  274. package/dist/headers.d.mts +0 -22
  275. package/dist/headers.d.ts +0 -22
  276. package/dist/headers.mjs +0 -12
  277. package/dist/headers.mjs.map +0 -1
  278. package/dist/i18n/client.d.mts +0 -32
  279. package/dist/i18n/client.d.ts +0 -32
  280. package/dist/i18n/index.d.mts +0 -20
  281. package/dist/i18n/index.d.ts +0 -20
  282. package/dist/i18n/server.d.mts +0 -30
  283. package/dist/i18n/server.d.ts +0 -30
  284. package/dist/image/server.d.mts +0 -37
  285. package/dist/image/server.d.ts +0 -37
  286. package/dist/image/sharp.d.mts +0 -7
  287. package/dist/image/sharp.d.ts +0 -7
  288. package/dist/image-config-Duob7wER.d.mts +0 -50
  289. package/dist/image-config-Duob7wER.d.ts +0 -50
  290. package/dist/image.cjs +0 -209
  291. package/dist/image.cjs.map +0 -1
  292. package/dist/image.d.mts +0 -39
  293. package/dist/image.d.ts +0 -39
  294. package/dist/image.mjs +0 -165
  295. package/dist/image.mjs.map +0 -1
  296. package/dist/index.cjs +0 -41822
  297. package/dist/index.cjs.map +0 -1
  298. package/dist/index.d.mts +0 -451
  299. package/dist/index.d.ts +0 -451
  300. package/dist/index.mjs +0 -973
  301. package/dist/index.mjs.map +0 -1
  302. package/dist/integration-api-CHT2OKAf.d.mts +0 -93
  303. package/dist/integration-api-CHT2OKAf.d.ts +0 -93
  304. package/dist/integration-orm-GQLGU66X.mjs +0 -13
  305. package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
  306. package/dist/integrations.cjs +0 -2820
  307. package/dist/integrations.cjs.map +0 -1
  308. package/dist/integrations.d.mts +0 -22
  309. package/dist/integrations.d.ts +0 -22
  310. package/dist/integrations.mjs +0 -51
  311. package/dist/integrations.mjs.map +0 -1
  312. package/dist/internal/build-runtime.d.mts +0 -39
  313. package/dist/internal/build-runtime.d.ts +0 -39
  314. package/dist/internal/client-runtime.d.mts +0 -2
  315. package/dist/internal/client-runtime.d.ts +0 -2
  316. package/dist/internal/config-runtime.d.mts +0 -39
  317. package/dist/internal/config-runtime.d.ts +0 -39
  318. package/dist/internal/production-node-env.d.mts +0 -12
  319. package/dist/internal/production-node-env.d.ts +0 -12
  320. package/dist/internal/production-runtime.d.mts +0 -39
  321. package/dist/internal/production-runtime.d.ts +0 -39
  322. package/dist/layers-VWVDTPUZ.mjs +0 -16
  323. package/dist/layers-VWVDTPUZ.mjs.map +0 -1
  324. package/dist/manager-THKFTOFE.mjs +0 -10
  325. package/dist/manager-THKFTOFE.mjs.map +0 -1
  326. package/dist/markdown.cjs +0 -299
  327. package/dist/markdown.cjs.map +0 -1
  328. package/dist/markdown.d.mts +0 -43
  329. package/dist/markdown.d.ts +0 -43
  330. package/dist/markdown.mjs +0 -14
  331. package/dist/markdown.mjs.map +0 -1
  332. package/dist/metadata-BAPg_Nmo.d.ts +0 -22
  333. package/dist/metadata-_6i9oFG3.d.mts +0 -22
  334. package/dist/middleware.cjs +0 -2148
  335. package/dist/middleware.cjs.map +0 -1
  336. package/dist/middleware.d.mts +0 -164
  337. package/dist/middleware.d.ts +0 -164
  338. package/dist/middleware.mjs +0 -49
  339. package/dist/middleware.mjs.map +0 -1
  340. package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
  341. package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
  342. package/dist/navigation.cjs +0 -1329
  343. package/dist/navigation.cjs.map +0 -1
  344. package/dist/navigation.d.mts +0 -14
  345. package/dist/navigation.d.ts +0 -14
  346. package/dist/navigation.mjs +0 -33
  347. package/dist/navigation.mjs.map +0 -1
  348. package/dist/nitro-QO5LV6QK.mjs +0 -689
  349. package/dist/nitro-QO5LV6QK.mjs.map +0 -1
  350. package/dist/observability.cjs +0 -186
  351. package/dist/observability.cjs.map +0 -1
  352. package/dist/observability.d.mts +0 -335
  353. package/dist/observability.d.ts +0 -335
  354. package/dist/observability.mjs +0 -16
  355. package/dist/observability.mjs.map +0 -1
  356. package/dist/params-BALtrRim.d.ts +0 -15
  357. package/dist/params-ry-lxqmy.d.mts +0 -15
  358. package/dist/plugin-BJDf43dc.d.mts +0 -165
  359. package/dist/plugin-BJDf43dc.d.ts +0 -165
  360. package/dist/plugin.cjs +0 -23225
  361. package/dist/plugin.d.mts +0 -22
  362. package/dist/plugin.d.ts +0 -22
  363. package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
  364. package/dist/production-runtime-C_B79w2P.d.mts +0 -28
  365. package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
  366. package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
  367. package/dist/query/client.d.mts +0 -61
  368. package/dist/query/client.d.ts +0 -61
  369. package/dist/query/index.d.mts +0 -90
  370. package/dist/query/index.d.ts +0 -90
  371. package/dist/query/parsers.d.mts +0 -25
  372. package/dist/query/parsers.d.ts +0 -25
  373. package/dist/query/server.d.mts +0 -55
  374. package/dist/query/server.d.ts +0 -55
  375. package/dist/request-BrFBuc8G.d.mts +0 -6
  376. package/dist/request-BslSZIRz.d.ts +0 -6
  377. package/dist/request.d.mts +0 -2
  378. package/dist/request.d.ts +0 -2
  379. package/dist/resolver-C6iecsDV.d.ts +0 -14
  380. package/dist/resolver-DlOPpjkB.d.mts +0 -14
  381. package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
  382. package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
  383. package/dist/router.d.mts +0 -36
  384. package/dist/router.d.ts +0 -36
  385. package/dist/routes.d.mts +0 -224
  386. package/dist/routes.d.ts +0 -224
  387. package/dist/runtime-9nQjVM7X.d.mts +0 -206
  388. package/dist/runtime-B6GvwDS1.d.ts +0 -27
  389. package/dist/runtime-DeAAZ6gO.d.mts +0 -27
  390. package/dist/runtime-DgeS2skB.d.ts +0 -206
  391. package/dist/server-action-security.d.mts +0 -43
  392. package/dist/server-action-security.d.ts +0 -43
  393. package/dist/server-fn-client.d.mts +0 -32
  394. package/dist/server-fn-client.d.ts +0 -32
  395. package/dist/server-fn.d.mts +0 -93
  396. package/dist/server-fn.d.ts +0 -93
  397. package/dist/server-plugins.d.mts +0 -55
  398. package/dist/server-plugins.d.ts +0 -55
  399. package/dist/server-query-client.d.mts +0 -50
  400. package/dist/server-query-client.d.ts +0 -50
  401. package/dist/server-query.d.mts +0 -36
  402. package/dist/server-query.d.ts +0 -36
  403. package/dist/server.d.mts +0 -48
  404. package/dist/server.d.ts +0 -48
  405. package/dist/storage.d.mts +0 -52
  406. package/dist/storage.d.ts +0 -52
  407. package/dist/testing.d.mts +0 -101
  408. package/dist/testing.d.ts +0 -101
  409. package/dist/transport-BmbGTXA5.d.mts +0 -49
  410. package/dist/transport-BmbGTXA5.d.ts +0 -49
  411. package/dist/types-BH1lhg5G.d.mts +0 -81
  412. package/dist/types-BH1lhg5G.d.ts +0 -81
  413. package/dist/types-C9N-nk5R.d.mts +0 -53
  414. package/dist/types-C9N-nk5R.d.ts +0 -53
  415. package/dist/types-D1A6-XvH.d.mts +0 -73
  416. package/dist/types-D1A6-XvH.d.ts +0 -73
  417. package/dist/utils-CHXlMDkg.d.mts +0 -23
  418. package/dist/utils-Drsyz1Vj.d.ts +0 -23
  419. package/dist/version.d.mts +0 -3
  420. package/dist/version.d.ts +0 -3
  421. package/dist/vite.d.mts +0 -22
  422. package/dist/vite.d.ts +0 -22
  423. package/dist/workflows.d.mts +0 -110
  424. package/dist/workflows.d.ts +0 -110
@@ -1,128 +0,0 @@
1
- import {
2
- __name
3
- } from "./chunk-CGILA3WO.mjs";
4
-
5
- // src/i18n/config.ts
6
- import path from "path";
7
- var DEFAULT_FARM_I18N_COOKIE = "farm_locale";
8
- var DEFAULT_FARM_I18N_COOKIE_MAX_AGE = 60 * 60 * 24 * 365;
9
- var DEFAULT_DETECTION = ["url", "cookie", "accept-language"];
10
- function resolveFarmI18nConfig(input, options = {}) {
11
- const root = options.root || process.cwd();
12
- const strictByDefault = options.mode === "production";
13
- if (!input) {
14
- return {
15
- enabled: false,
16
- locales: ["en"],
17
- defaultLocale: "en",
18
- messages: path.join(root, "src/messages"),
19
- routing: "none",
20
- detection: [],
21
- fallbackLocale: "en",
22
- strict: strictByDefault,
23
- cookie: {
24
- name: DEFAULT_FARM_I18N_COOKIE,
25
- maxAge: DEFAULT_FARM_I18N_COOKIE_MAX_AGE,
26
- path: "/",
27
- sameSite: "lax",
28
- secure: options.mode === "production"
29
- },
30
- direction: {}
31
- };
32
- }
33
- if (!Array.isArray(input.locales) || input.locales.length === 0) {
34
- throw new Error("i18n.locales must contain at least one locale.");
35
- }
36
- const locales = input.locales.map(canonicalizeLocale);
37
- if (new Set(locales).size !== locales.length) {
38
- throw new Error("i18n.locales must not contain duplicate locales.");
39
- }
40
- const defaultLocale = canonicalizeLocale(input.defaultLocale);
41
- if (!locales.includes(defaultLocale)) {
42
- throw new Error(`i18n.defaultLocale "${defaultLocale}" must be included in i18n.locales.`);
43
- }
44
- const fallbackLocale = canonicalizeLocale(input.fallbackLocale || defaultLocale);
45
- if (!locales.includes(fallbackLocale)) {
46
- throw new Error(`i18n.fallbackLocale "${fallbackLocale}" must be included in i18n.locales.`);
47
- }
48
- const detection = resolveDetection(input);
49
- const direction = {};
50
- for (const [rawLocale, value] of Object.entries(input.direction || {})) {
51
- const locale = canonicalizeLocale(rawLocale);
52
- if (!locales.includes(locale)) {
53
- throw new Error(`i18n.direction contains unknown locale "${rawLocale}".`);
54
- }
55
- if (value !== "ltr" && value !== "rtl") {
56
- throw new Error(`i18n.direction.${rawLocale} must be "ltr" or "rtl".`);
57
- }
58
- direction[locale] = value;
59
- }
60
- return {
61
- enabled: true,
62
- locales,
63
- defaultLocale,
64
- messages: path.resolve(root, input.messages || "src/messages"),
65
- routing: input.routing || "prefix-except-default",
66
- detection,
67
- fallbackLocale,
68
- strict: input.strict ?? strictByDefault,
69
- cookie: {
70
- name: input.cookie?.name?.trim() || DEFAULT_FARM_I18N_COOKIE,
71
- maxAge: normalizePositiveInteger(
72
- input.cookie?.maxAge,
73
- DEFAULT_FARM_I18N_COOKIE_MAX_AGE,
74
- "i18n.cookie.maxAge"
75
- ),
76
- path: input.cookie?.path || "/",
77
- sameSite: input.cookie?.sameSite || "lax",
78
- secure: input.cookie?.secure ?? options.mode === "production"
79
- },
80
- direction
81
- };
82
- }
83
- __name(resolveFarmI18nConfig, "resolveFarmI18nConfig");
84
- function resolveFarmI18nMessagePath(config, locale) {
85
- return config.messages.includes("{locale}") ? config.messages.split("{locale}").join(locale) : path.join(config.messages, `${locale}.json`);
86
- }
87
- __name(resolveFarmI18nMessagePath, "resolveFarmI18nMessagePath");
88
- function canonicalizeLocale(locale) {
89
- if (!locale || typeof locale !== "string") {
90
- throw new Error("Farm i18n locales must be non-empty strings.");
91
- }
92
- try {
93
- return Intl.getCanonicalLocales(locale)[0];
94
- } catch {
95
- throw new Error(`Invalid i18n locale "${locale}".`);
96
- }
97
- }
98
- __name(canonicalizeLocale, "canonicalizeLocale");
99
- function resolveDetection(input) {
100
- if (input.detection === false || input.localeDetection === false) {
101
- return ["url"];
102
- }
103
- const detection = input.detection || DEFAULT_DETECTION;
104
- const allowed = /* @__PURE__ */ new Set(["url", "cookie", "accept-language"]);
105
- const unique = [];
106
- for (const signal of detection) {
107
- if (!allowed.has(signal)) {
108
- throw new Error(`Unsupported i18n detection signal "${signal}".`);
109
- }
110
- if (!unique.includes(signal)) unique.push(signal);
111
- }
112
- return unique;
113
- }
114
- __name(resolveDetection, "resolveDetection");
115
- function normalizePositiveInteger(value, fallback, name) {
116
- if (value === void 0) return fallback;
117
- if (!Number.isInteger(value) || value < 0) {
118
- throw new Error(`${name} must be a positive integer.`);
119
- }
120
- return value;
121
- }
122
- __name(normalizePositiveInteger, "normalizePositiveInteger");
123
-
124
- export {
125
- resolveFarmI18nConfig,
126
- resolveFarmI18nMessagePath
127
- };
128
- //# sourceMappingURL=chunk-FQYDHKKU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/i18n/config.ts"],"sourcesContent":["import path from \"node:path\";\nimport type {\n FarmI18nDetectionSignal,\n FarmI18nDirection,\n FarmI18nUserConfig,\n ResolvedFarmI18nConfig,\n} from \"./types\";\n\nexport const DEFAULT_FARM_I18N_COOKIE = \"farm_locale\";\nexport const DEFAULT_FARM_I18N_COOKIE_MAX_AGE = 60 * 60 * 24 * 365;\n\nconst DEFAULT_DETECTION: readonly FarmI18nDetectionSignal[] = [\"url\", \"cookie\", \"accept-language\"];\n\nexport function resolveFarmI18nConfig(\n input: FarmI18nUserConfig | false | undefined,\n options: { root?: string; mode?: \"development\" | \"production\" } = {},\n): ResolvedFarmI18nConfig {\n const root = options.root || process.cwd();\n const strictByDefault = options.mode === \"production\";\n\n if (!input) {\n return {\n enabled: false,\n locales: [\"en\"],\n defaultLocale: \"en\",\n messages: path.join(root, \"src/messages\"),\n routing: \"none\",\n detection: [],\n fallbackLocale: \"en\",\n strict: strictByDefault,\n cookie: {\n name: DEFAULT_FARM_I18N_COOKIE,\n maxAge: DEFAULT_FARM_I18N_COOKIE_MAX_AGE,\n path: \"/\",\n sameSite: \"lax\",\n secure: options.mode === \"production\",\n },\n direction: {},\n };\n }\n\n if (!Array.isArray(input.locales) || input.locales.length === 0) {\n throw new Error(\"i18n.locales must contain at least one locale.\");\n }\n\n const locales = input.locales.map(canonicalizeLocale);\n if (new Set(locales).size !== locales.length) {\n throw new Error(\"i18n.locales must not contain duplicate locales.\");\n }\n\n const defaultLocale = canonicalizeLocale(input.defaultLocale);\n if (!locales.includes(defaultLocale)) {\n throw new Error(`i18n.defaultLocale \"${defaultLocale}\" must be included in i18n.locales.`);\n }\n\n const fallbackLocale = canonicalizeLocale(input.fallbackLocale || defaultLocale);\n if (!locales.includes(fallbackLocale)) {\n throw new Error(`i18n.fallbackLocale \"${fallbackLocale}\" must be included in i18n.locales.`);\n }\n\n const detection = resolveDetection(input);\n const direction: Record<string, FarmI18nDirection> = {};\n for (const [rawLocale, value] of Object.entries(input.direction || {})) {\n const locale = canonicalizeLocale(rawLocale);\n if (!locales.includes(locale)) {\n throw new Error(`i18n.direction contains unknown locale \"${rawLocale}\".`);\n }\n if (value !== \"ltr\" && value !== \"rtl\") {\n throw new Error(`i18n.direction.${rawLocale} must be \"ltr\" or \"rtl\".`);\n }\n direction[locale] = value;\n }\n\n return {\n enabled: true,\n locales,\n defaultLocale,\n messages: path.resolve(root, input.messages || \"src/messages\"),\n routing: input.routing || \"prefix-except-default\",\n detection,\n fallbackLocale,\n strict: input.strict ?? strictByDefault,\n cookie: {\n name: input.cookie?.name?.trim() || DEFAULT_FARM_I18N_COOKIE,\n maxAge: normalizePositiveInteger(\n input.cookie?.maxAge,\n DEFAULT_FARM_I18N_COOKIE_MAX_AGE,\n \"i18n.cookie.maxAge\",\n ),\n path: input.cookie?.path || \"/\",\n sameSite: input.cookie?.sameSite || \"lax\",\n secure: input.cookie?.secure ?? options.mode === \"production\",\n },\n direction,\n };\n}\n\nexport function resolveFarmI18nMessagePath(\n config: Pick<ResolvedFarmI18nConfig, \"messages\">,\n locale: string,\n): string {\n return config.messages.includes(\"{locale}\")\n ? config.messages.split(\"{locale}\").join(locale)\n : path.join(config.messages, `${locale}.json`);\n}\n\nexport function canonicalizeLocale(locale: string): string {\n if (!locale || typeof locale !== \"string\") {\n throw new Error(\"Farm i18n locales must be non-empty strings.\");\n }\n\n try {\n return Intl.getCanonicalLocales(locale)[0]!;\n } catch {\n throw new Error(`Invalid i18n locale \"${locale}\".`);\n }\n}\n\nfunction resolveDetection(input: FarmI18nUserConfig): readonly FarmI18nDetectionSignal[] {\n if (input.detection === false || input.localeDetection === false) {\n return [\"url\"];\n }\n\n const detection = input.detection || DEFAULT_DETECTION;\n const allowed = new Set<FarmI18nDetectionSignal>([\"url\", \"cookie\", \"accept-language\"]);\n const unique: FarmI18nDetectionSignal[] = [];\n\n for (const signal of detection) {\n if (!allowed.has(signal)) {\n throw new Error(`Unsupported i18n detection signal \"${signal}\".`);\n }\n if (!unique.includes(signal)) unique.push(signal);\n }\n\n return unique;\n}\n\nfunction normalizePositiveInteger(\n value: number | undefined,\n fallback: number,\n name: string,\n): number {\n if (value === undefined) return fallback;\n if (!Number.isInteger(value) || value < 0) {\n throw new Error(`${name} must be a positive integer.`);\n }\n return value;\n}\n"],"mappings":"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","names":[]}
@@ -1,299 +0,0 @@
1
- import {
2
- __name
3
- } from "./chunk-CGILA3WO.mjs";
4
-
5
- // src/metadata.ts
6
- function mergeMetadata(base, next) {
7
- if (!base) return next ? { ...next } : {};
8
- if (!next) return { ...base };
9
- return {
10
- ...base,
11
- ...next,
12
- openGraph: mergeNestedMetadata(base.openGraph, next.openGraph),
13
- twitter: mergeNestedMetadata(base.twitter, next.twitter),
14
- alternates: mergeNestedMetadata(base.alternates, next.alternates),
15
- icons: mergeNestedMetadata(base.icons, next.icons)
16
- };
17
- }
18
- __name(mergeMetadata, "mergeMetadata");
19
- function addMetadataImageReference(metadata, reference) {
20
- if (reference.kind === "opengraph") {
21
- const openGraph = { ...metadata.openGraph };
22
- if (!hasMetadataImages(openGraph.images) && !hasMetadataImages(openGraph.image)) {
23
- openGraph.images = [
24
- {
25
- url: reference.href,
26
- width: reference.width,
27
- height: reference.height,
28
- alt: reference.alt,
29
- type: reference.contentType
30
- }
31
- ];
32
- }
33
- return {
34
- ...metadata,
35
- openGraph
36
- };
37
- }
38
- const twitter = { ...metadata.twitter };
39
- if (!hasMetadataImages(twitter.images)) {
40
- twitter.images = [reference.href];
41
- twitter.card = twitter.card || "summary_large_image";
42
- }
43
- return {
44
- ...metadata,
45
- twitter
46
- };
47
- }
48
- __name(addMetadataImageReference, "addMetadataImageReference");
49
- function renderMetadataHead(metadata) {
50
- const resolvedMetadata = metadata || {};
51
- const metadataBase = resolveMetadataBase(resolvedMetadata);
52
- const title = resolveMetadataTitle(resolvedMetadata.title) || "Farm.js App";
53
- const tags = [];
54
- appendMetaName(tags, "description", resolvedMetadata.description);
55
- appendMetaName(tags, "keywords", normalizeKeywords(resolvedMetadata.keywords));
56
- appendMetaName(tags, "author", resolvedMetadata.author);
57
- if (Array.isArray(resolvedMetadata.authors)) {
58
- for (const author of resolvedMetadata.authors) {
59
- appendMetaName(tags, "author", author?.name);
60
- if (author?.url) {
61
- appendLink(tags, "author", resolveMetadataUrl(author.url, metadataBase));
62
- }
63
- }
64
- }
65
- appendMetaName(tags, "creator", resolvedMetadata.creator);
66
- appendMetaName(tags, "publisher", resolvedMetadata.publisher);
67
- appendMetaName(tags, "robots", normalizeRobots(resolvedMetadata.robots));
68
- const alternates = resolvedMetadata.alternates;
69
- if (isRecord(alternates)) {
70
- appendLink(tags, "canonical", resolveMetadataUrl(alternates.canonical, metadataBase));
71
- if (isRecord(alternates.languages)) {
72
- for (const [language, href] of Object.entries(alternates.languages)) {
73
- appendLink(tags, "alternate", resolveMetadataUrl(href, metadataBase), {
74
- hreflang: language
75
- });
76
- }
77
- }
78
- }
79
- const hasFavicon = appendIcons(tags, resolvedMetadata.icons, metadataBase);
80
- if (resolvedMetadata.manifest) {
81
- appendLink(
82
- tags,
83
- "manifest",
84
- resolveMetadataUrl(resolvedMetadata.manifest, metadataBase)
85
- );
86
- }
87
- appendOpenGraph(tags, resolvedMetadata.openGraph, metadataBase);
88
- appendTwitter(tags, resolvedMetadata.twitter, metadataBase);
89
- return {
90
- title: escapeText(title),
91
- tags: tags.length > 0 ? `
92
- ${tags.join("\n ")}` : "",
93
- hasFavicon
94
- };
95
- }
96
- __name(renderMetadataHead, "renderMetadataHead");
97
- function mergeNestedMetadata(base, next) {
98
- if (isRecord(base) && isRecord(next)) {
99
- return {
100
- ...base,
101
- ...next
102
- };
103
- }
104
- return next ?? base;
105
- }
106
- __name(mergeNestedMetadata, "mergeNestedMetadata");
107
- function appendOpenGraph(tags, openGraph, metadataBase) {
108
- if (!isRecord(openGraph)) return;
109
- appendMetaProperty(tags, "og:title", openGraph.title);
110
- appendMetaProperty(tags, "og:description", openGraph.description);
111
- appendMetaProperty(tags, "og:url", resolveMetadataUrl(openGraph.url, metadataBase));
112
- appendMetaProperty(tags, "og:site_name", openGraph.siteName);
113
- appendMetaProperty(tags, "og:type", openGraph.type);
114
- appendMetaProperty(tags, "og:locale", openGraph.locale);
115
- const images = normalizeMetadataImages(
116
- openGraph.images ?? openGraph.image,
117
- metadataBase
118
- );
119
- for (const image of images) {
120
- appendMetaProperty(tags, "og:image", image.url);
121
- appendMetaProperty(tags, "og:image:width", image.width);
122
- appendMetaProperty(tags, "og:image:height", image.height);
123
- appendMetaProperty(tags, "og:image:alt", image.alt);
124
- appendMetaProperty(tags, "og:image:type", image.type);
125
- }
126
- }
127
- __name(appendOpenGraph, "appendOpenGraph");
128
- function appendTwitter(tags, twitter, metadataBase) {
129
- if (!isRecord(twitter)) return;
130
- appendMetaName(tags, "twitter:card", twitter.card);
131
- appendMetaName(tags, "twitter:site", twitter.site);
132
- appendMetaName(tags, "twitter:creator", twitter.creator);
133
- appendMetaName(tags, "twitter:title", twitter.title);
134
- appendMetaName(tags, "twitter:description", twitter.description);
135
- for (const image of normalizeMetadataImages(twitter.images, metadataBase)) {
136
- appendMetaName(tags, "twitter:image", image.url);
137
- appendMetaName(tags, "twitter:image:alt", image.alt);
138
- }
139
- }
140
- __name(appendTwitter, "appendTwitter");
141
- function appendIcons(tags, icons, metadataBase) {
142
- if (!icons) return false;
143
- if (typeof icons === "string") {
144
- const initialTagCount2 = tags.length;
145
- appendLink(tags, "icon", resolveMetadataUrl(icons, metadataBase));
146
- return tags.length > initialTagCount2;
147
- }
148
- if (!isRecord(icons)) return false;
149
- const initialTagCount = tags.length;
150
- appendIconList(tags, "icon", icons.icon, metadataBase);
151
- appendIconList(tags, "shortcut icon", icons.shortcut, metadataBase);
152
- const hasFavicon = tags.length > initialTagCount;
153
- appendIconList(tags, "apple-touch-icon", icons.apple, metadataBase);
154
- return hasFavicon;
155
- }
156
- __name(appendIcons, "appendIcons");
157
- function appendIconList(tags, rel, value, metadataBase) {
158
- for (const icon of normalizeArray(value)) {
159
- if (typeof icon === "string") {
160
- appendLink(tags, rel, resolveMetadataUrl(icon, metadataBase));
161
- continue;
162
- }
163
- if (!isRecord(icon)) continue;
164
- appendLink(tags, rel, resolveMetadataUrl(icon.url, metadataBase), {
165
- sizes: icon.sizes,
166
- type: icon.type
167
- });
168
- }
169
- }
170
- __name(appendIconList, "appendIconList");
171
- function appendMetaName(tags, name, content) {
172
- const normalized = normalizeContent(content);
173
- if (!normalized) return;
174
- tags.push(`<meta name="${escapeAttribute(name)}" content="${escapeAttribute(normalized)}">`);
175
- }
176
- __name(appendMetaName, "appendMetaName");
177
- function appendMetaProperty(tags, property, content) {
178
- const normalized = normalizeContent(content);
179
- if (!normalized) return;
180
- tags.push(
181
- `<meta property="${escapeAttribute(property)}" content="${escapeAttribute(normalized)}">`
182
- );
183
- }
184
- __name(appendMetaProperty, "appendMetaProperty");
185
- function appendLink(tags, rel, href, attrs = {}) {
186
- const normalizedHref = normalizeContent(href);
187
- if (!normalizedHref) return;
188
- const attrText = Object.entries(attrs).map(([key, value]) => {
189
- const normalized = normalizeContent(value);
190
- return normalized ? ` ${key}="${escapeAttribute(normalized)}"` : "";
191
- }).join("");
192
- tags.push(
193
- `<link rel="${escapeAttribute(rel)}" href="${escapeAttribute(normalizedHref)}"${attrText}>`
194
- );
195
- }
196
- __name(appendLink, "appendLink");
197
- function normalizeMetadataImages(value, metadataBase) {
198
- return normalizeArray(value).map((item) => {
199
- if (typeof item === "string") {
200
- return { url: resolveMetadataUrl(item, metadataBase) || item };
201
- }
202
- if (!isRecord(item)) return null;
203
- const rawUrl = item.url || item.src;
204
- const url = resolveMetadataUrl(rawUrl, metadataBase);
205
- if (!url) return null;
206
- return {
207
- url,
208
- width: normalizeNumber(item.width),
209
- height: normalizeNumber(item.height),
210
- alt: typeof item.alt === "string" ? item.alt : void 0,
211
- type: typeof item.type === "string" ? item.type : void 0
212
- };
213
- }).filter((item) => item !== null);
214
- }
215
- __name(normalizeMetadataImages, "normalizeMetadataImages");
216
- function normalizeArray(value) {
217
- if (value == null) return [];
218
- return Array.isArray(value) ? value : [value];
219
- }
220
- __name(normalizeArray, "normalizeArray");
221
- function hasMetadataImages(value) {
222
- return normalizeMetadataImages(value).length > 0;
223
- }
224
- __name(hasMetadataImages, "hasMetadataImages");
225
- function resolveMetadataTitle(title) {
226
- if (typeof title === "string") return title;
227
- if (isRecord(title)) {
228
- return normalizeContent(title.default);
229
- }
230
- return void 0;
231
- }
232
- __name(resolveMetadataTitle, "resolveMetadataTitle");
233
- function normalizeKeywords(keywords) {
234
- if (Array.isArray(keywords)) return keywords.filter(Boolean).join(", ");
235
- return keywords;
236
- }
237
- __name(normalizeKeywords, "normalizeKeywords");
238
- function normalizeRobots(robots) {
239
- if (typeof robots === "string") return robots;
240
- if (!isRecord(robots)) return void 0;
241
- const values = [];
242
- if (typeof robots.index === "boolean") values.push(robots.index ? "index" : "noindex");
243
- if (typeof robots.follow === "boolean") values.push(robots.follow ? "follow" : "nofollow");
244
- return values.join(", ") || void 0;
245
- }
246
- __name(normalizeRobots, "normalizeRobots");
247
- function resolveMetadataBase(metadata) {
248
- const base = metadata.metadataBase;
249
- if (!base) return void 0;
250
- return String(base);
251
- }
252
- __name(resolveMetadataBase, "resolveMetadataBase");
253
- function resolveMetadataUrl(value, metadataBase) {
254
- const normalized = normalizeContent(value);
255
- if (!normalized) return void 0;
256
- if (!metadataBase) return normalized;
257
- try {
258
- return new URL(normalized, metadataBase).toString();
259
- } catch {
260
- return normalized;
261
- }
262
- }
263
- __name(resolveMetadataUrl, "resolveMetadataUrl");
264
- function normalizeNumber(value) {
265
- if (typeof value === "number" && Number.isFinite(value)) return value;
266
- if (typeof value === "string") {
267
- const parsed = Number(value);
268
- return Number.isFinite(parsed) ? parsed : void 0;
269
- }
270
- return void 0;
271
- }
272
- __name(normalizeNumber, "normalizeNumber");
273
- function normalizeContent(value) {
274
- if (value == null) return void 0;
275
- if (typeof value === "string") return value;
276
- if (typeof value === "number" || typeof value === "boolean") return String(value);
277
- if (value instanceof URL) return value.toString();
278
- return void 0;
279
- }
280
- __name(normalizeContent, "normalizeContent");
281
- function isRecord(value) {
282
- return !!value && typeof value === "object" && !Array.isArray(value);
283
- }
284
- __name(isRecord, "isRecord");
285
- function escapeText(value) {
286
- return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
287
- }
288
- __name(escapeText, "escapeText");
289
- function escapeAttribute(value) {
290
- return escapeText(value).replace(/"/g, "&quot;");
291
- }
292
- __name(escapeAttribute, "escapeAttribute");
293
-
294
- export {
295
- mergeMetadata,
296
- addMetadataImageReference,
297
- renderMetadataHead
298
- };
299
- //# sourceMappingURL=chunk-FRPWCMMG.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/metadata.ts"],"sourcesContent":["import type { Metadata } from \"./types\";\n\nexport type MetadataImageKind = \"opengraph\" | \"twitter\";\n\nexport interface FarmMetadataImageReference {\n kind: MetadataImageKind;\n href: string;\n alt?: string;\n width?: number;\n height?: number;\n contentType?: string;\n}\n\nexport interface RenderedMetadataHead {\n title: string;\n tags: string;\n hasFavicon: boolean;\n}\n\ntype MetadataRecord = Metadata & Record<string, any>;\n\nexport function mergeMetadata(\n base: MetadataRecord | undefined,\n next: MetadataRecord | undefined,\n): MetadataRecord {\n if (!base) return next ? { ...next } : {};\n if (!next) return { ...base };\n\n return {\n ...base,\n ...next,\n openGraph: mergeNestedMetadata(base.openGraph, next.openGraph),\n twitter: mergeNestedMetadata(base.twitter, next.twitter),\n alternates: mergeNestedMetadata((base as any).alternates, (next as any).alternates),\n icons: mergeNestedMetadata((base as any).icons, (next as any).icons),\n };\n}\n\nexport function addMetadataImageReference(\n metadata: MetadataRecord,\n reference: FarmMetadataImageReference,\n): MetadataRecord {\n if (reference.kind === \"opengraph\") {\n const openGraph = { ...metadata.openGraph };\n if (!hasMetadataImages(openGraph.images) && !hasMetadataImages((openGraph as any).image)) {\n openGraph.images = [\n {\n url: reference.href,\n width: reference.width,\n height: reference.height,\n alt: reference.alt,\n type: reference.contentType,\n },\n ];\n }\n\n return {\n ...metadata,\n openGraph,\n };\n }\n\n const twitter = { ...metadata.twitter };\n if (!hasMetadataImages(twitter.images)) {\n twitter.images = [reference.href];\n twitter.card = twitter.card || \"summary_large_image\";\n }\n\n return {\n ...metadata,\n twitter,\n };\n}\n\nexport function renderMetadataHead(metadata: MetadataRecord | undefined): RenderedMetadataHead {\n const resolvedMetadata = metadata || {};\n const metadataBase = resolveMetadataBase(resolvedMetadata);\n const title = resolveMetadataTitle(resolvedMetadata.title) || \"Farm.js App\";\n const tags: string[] = [];\n\n appendMetaName(tags, \"description\", resolvedMetadata.description);\n appendMetaName(tags, \"keywords\", normalizeKeywords(resolvedMetadata.keywords));\n appendMetaName(tags, \"author\", (resolvedMetadata as any).author);\n\n if (Array.isArray(resolvedMetadata.authors)) {\n for (const author of resolvedMetadata.authors) {\n appendMetaName(tags, \"author\", author?.name);\n if (author?.url) {\n appendLink(tags, \"author\", resolveMetadataUrl(author.url, metadataBase));\n }\n }\n }\n\n appendMetaName(tags, \"creator\", resolvedMetadata.creator);\n appendMetaName(tags, \"publisher\", resolvedMetadata.publisher);\n appendMetaName(tags, \"robots\", normalizeRobots(resolvedMetadata.robots));\n\n const alternates = (resolvedMetadata as any).alternates;\n if (isRecord(alternates)) {\n appendLink(tags, \"canonical\", resolveMetadataUrl(alternates.canonical, metadataBase));\n\n if (isRecord(alternates.languages)) {\n for (const [language, href] of Object.entries(alternates.languages)) {\n appendLink(tags, \"alternate\", resolveMetadataUrl(href, metadataBase), {\n hreflang: language,\n });\n }\n }\n }\n\n const hasFavicon = appendIcons(tags, (resolvedMetadata as any).icons, metadataBase);\n\n if ((resolvedMetadata as any).manifest) {\n appendLink(\n tags,\n \"manifest\",\n resolveMetadataUrl((resolvedMetadata as any).manifest, metadataBase),\n );\n }\n\n appendOpenGraph(tags, resolvedMetadata.openGraph, metadataBase);\n appendTwitter(tags, resolvedMetadata.twitter, metadataBase);\n\n return {\n title: escapeText(title),\n tags: tags.length > 0 ? `\\n ${tags.join(\"\\n \")}` : \"\",\n hasFavicon,\n };\n}\n\nfunction mergeNestedMetadata(base: unknown, next: unknown): any {\n if (isRecord(base) && isRecord(next)) {\n return {\n ...base,\n ...next,\n };\n }\n\n return next ?? base;\n}\n\nfunction appendOpenGraph(tags: string[], openGraph: Metadata[\"openGraph\"], metadataBase?: string) {\n if (!isRecord(openGraph)) return;\n\n appendMetaProperty(tags, \"og:title\", openGraph.title);\n appendMetaProperty(tags, \"og:description\", openGraph.description);\n appendMetaProperty(tags, \"og:url\", resolveMetadataUrl(openGraph.url, metadataBase));\n appendMetaProperty(tags, \"og:site_name\", openGraph.siteName);\n appendMetaProperty(tags, \"og:type\", openGraph.type);\n appendMetaProperty(tags, \"og:locale\", (openGraph as any).locale);\n\n const images = normalizeMetadataImages(\n openGraph.images ?? (openGraph as any).image,\n metadataBase,\n );\n for (const image of images) {\n appendMetaProperty(tags, \"og:image\", image.url);\n appendMetaProperty(tags, \"og:image:width\", image.width);\n appendMetaProperty(tags, \"og:image:height\", image.height);\n appendMetaProperty(tags, \"og:image:alt\", image.alt);\n appendMetaProperty(tags, \"og:image:type\", image.type);\n }\n}\n\nfunction appendTwitter(tags: string[], twitter: Metadata[\"twitter\"], metadataBase?: string) {\n if (!isRecord(twitter)) return;\n\n appendMetaName(tags, \"twitter:card\", twitter.card);\n appendMetaName(tags, \"twitter:site\", twitter.site);\n appendMetaName(tags, \"twitter:creator\", twitter.creator);\n appendMetaName(tags, \"twitter:title\", twitter.title);\n appendMetaName(tags, \"twitter:description\", twitter.description);\n\n for (const image of normalizeMetadataImages(twitter.images, metadataBase)) {\n appendMetaName(tags, \"twitter:image\", image.url);\n appendMetaName(tags, \"twitter:image:alt\", image.alt);\n }\n}\n\nfunction appendIcons(tags: string[], icons: unknown, metadataBase?: string): boolean {\n if (!icons) return false;\n\n if (typeof icons === \"string\") {\n const initialTagCount = tags.length;\n appendLink(tags, \"icon\", resolveMetadataUrl(icons, metadataBase));\n return tags.length > initialTagCount;\n }\n\n if (!isRecord(icons)) return false;\n\n const initialTagCount = tags.length;\n appendIconList(tags, \"icon\", icons.icon, metadataBase);\n appendIconList(tags, \"shortcut icon\", icons.shortcut, metadataBase);\n const hasFavicon = tags.length > initialTagCount;\n appendIconList(tags, \"apple-touch-icon\", icons.apple, metadataBase);\n return hasFavicon;\n}\n\nfunction appendIconList(tags: string[], rel: string, value: unknown, metadataBase?: string) {\n for (const icon of normalizeArray(value)) {\n if (typeof icon === \"string\") {\n appendLink(tags, rel, resolveMetadataUrl(icon, metadataBase));\n continue;\n }\n\n if (!isRecord(icon)) continue;\n appendLink(tags, rel, resolveMetadataUrl(icon.url, metadataBase), {\n sizes: icon.sizes,\n type: icon.type,\n });\n }\n}\n\nfunction appendMetaName(tags: string[], name: string, content: unknown) {\n const normalized = normalizeContent(content);\n if (!normalized) return;\n tags.push(`<meta name=\"${escapeAttribute(name)}\" content=\"${escapeAttribute(normalized)}\">`);\n}\n\nfunction appendMetaProperty(tags: string[], property: string, content: unknown) {\n const normalized = normalizeContent(content);\n if (!normalized) return;\n tags.push(\n `<meta property=\"${escapeAttribute(property)}\" content=\"${escapeAttribute(normalized)}\">`,\n );\n}\n\nfunction appendLink(\n tags: string[],\n rel: string,\n href: unknown,\n attrs: Record<string, unknown> = {},\n) {\n const normalizedHref = normalizeContent(href);\n if (!normalizedHref) return;\n\n const attrText = Object.entries(attrs)\n .map(([key, value]) => {\n const normalized = normalizeContent(value);\n return normalized ? ` ${key}=\"${escapeAttribute(normalized)}\"` : \"\";\n })\n .join(\"\");\n\n tags.push(\n `<link rel=\"${escapeAttribute(rel)}\" href=\"${escapeAttribute(normalizedHref)}\"${attrText}>`,\n );\n}\n\nfunction normalizeMetadataImages(\n value: unknown,\n metadataBase?: string,\n): Array<{\n url: string;\n width?: number;\n height?: number;\n alt?: string;\n type?: string;\n}> {\n return normalizeArray(value)\n .map((item) => {\n if (typeof item === \"string\") {\n return { url: resolveMetadataUrl(item, metadataBase) || item };\n }\n\n if (!isRecord(item)) return null;\n const rawUrl = item.url || item.src;\n const url = resolveMetadataUrl(rawUrl, metadataBase);\n if (!url) return null;\n\n return {\n url,\n width: normalizeNumber(item.width),\n height: normalizeNumber(item.height),\n alt: typeof item.alt === \"string\" ? item.alt : undefined,\n type: typeof item.type === \"string\" ? item.type : undefined,\n };\n })\n .filter((item): item is NonNullable<typeof item> => item !== null);\n}\n\nfunction normalizeArray(value: unknown): unknown[] {\n if (value == null) return [];\n return Array.isArray(value) ? value : [value];\n}\n\nfunction hasMetadataImages(value: unknown): boolean {\n return normalizeMetadataImages(value).length > 0;\n}\n\nfunction resolveMetadataTitle(title: Metadata[\"title\"]): string | undefined {\n if (typeof title === \"string\") return title;\n if (isRecord(title)) {\n return normalizeContent(title.default);\n }\n return undefined;\n}\n\nfunction normalizeKeywords(keywords: Metadata[\"keywords\"]): string | undefined {\n if (Array.isArray(keywords)) return keywords.filter(Boolean).join(\", \");\n return keywords;\n}\n\nfunction normalizeRobots(robots: Metadata[\"robots\"]): string | undefined {\n if (typeof robots === \"string\") return robots;\n if (!isRecord(robots)) return undefined;\n\n const values: string[] = [];\n if (typeof robots.index === \"boolean\") values.push(robots.index ? \"index\" : \"noindex\");\n if (typeof robots.follow === \"boolean\") values.push(robots.follow ? \"follow\" : \"nofollow\");\n return values.join(\", \") || undefined;\n}\n\nfunction resolveMetadataBase(metadata: MetadataRecord): string | undefined {\n const base = metadata.metadataBase;\n if (!base) return undefined;\n return String(base);\n}\n\nfunction resolveMetadataUrl(value: unknown, metadataBase?: string): string | undefined {\n const normalized = normalizeContent(value);\n if (!normalized) return undefined;\n if (!metadataBase) return normalized;\n\n try {\n return new URL(normalized, metadataBase).toString();\n } catch {\n return normalized;\n }\n}\n\nfunction normalizeNumber(value: unknown): number | undefined {\n if (typeof value === \"number\" && Number.isFinite(value)) return value;\n if (typeof value === \"string\") {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n return undefined;\n}\n\nfunction normalizeContent(value: unknown): string | undefined {\n if (value == null) return undefined;\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n if (value instanceof URL) return value.toString();\n return undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction escapeText(value: string): string {\n return value.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\n\nfunction escapeAttribute(value: string): string {\n return escapeText(value).replace(/\"/g, \"&quot;\");\n}\n"],"mappings":"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","names":["initialTagCount"]}
@@ -1,146 +0,0 @@
1
- import {
2
- localizeFarmPathname,
3
- resolveFarmLocalePath
4
- } from "./chunk-44ZCFSKE.mjs";
5
- import {
6
- __name
7
- } from "./chunk-CGILA3WO.mjs";
8
-
9
- // src/i18n/resolver.ts
10
- function getFarmLocaleVaryHeaders(config, resolution) {
11
- if (!config.enabled || resolution.source === "url") return [];
12
- const headers = [];
13
- if (config.detection.includes("cookie")) headers.push("Cookie");
14
- if (config.detection.includes("accept-language")) headers.push("Accept-Language");
15
- return headers;
16
- }
17
- __name(getFarmLocaleVaryHeaders, "getFarmLocaleVaryHeaders");
18
- function resolveFarmLocaleRequest(request, config, options = {}) {
19
- const url = new URL(request.url);
20
- if (!config.enabled) {
21
- return {
22
- locale: config.defaultLocale,
23
- source: "default",
24
- pathname: url.pathname,
25
- persist: false
26
- };
27
- }
28
- const pathMatch = resolveFarmLocalePath(url.pathname, config);
29
- if (pathMatch.explicit && pathMatch.locale) {
30
- const canonicalPath = localizeFarmPathname(pathMatch.pathname, pathMatch.locale, config);
31
- const redirect = options.redirect !== false && canonicalPath !== url.pathname ? `${canonicalPath}${url.search}${url.hash}` : void 0;
32
- return {
33
- locale: pathMatch.locale,
34
- source: "url",
35
- pathname: pathMatch.pathname,
36
- redirect,
37
- // Locale-prefixed pages are canonical and can be cached publicly. Locale
38
- // switchers persist the same choice before navigating in the browser.
39
- persist: false
40
- };
41
- }
42
- const detected = detectLocale(request, config);
43
- const shouldRedirect = options.redirect !== false && !isInternalOrApiPath(url.pathname) && config.routing !== "none" && (config.routing === "prefix-always" || detected.locale !== config.defaultLocale);
44
- return {
45
- locale: detected.locale,
46
- source: detected.source,
47
- pathname: pathMatch.pathname,
48
- redirect: shouldRedirect ? `${localizeFarmPathname(pathMatch.pathname, detected.locale, config)}${url.search}${url.hash}` : void 0,
49
- persist: detected.source !== "default"
50
- };
51
- }
52
- __name(resolveFarmLocaleRequest, "resolveFarmLocaleRequest");
53
- function createFarmLocaleCookie(locale, config) {
54
- const cookie = config.cookie;
55
- let value = `${encodeURIComponent(cookie.name)}=${encodeURIComponent(locale)}`;
56
- value += `; Max-Age=${cookie.maxAge}`;
57
- value += `; Path=${cookie.path}`;
58
- value += `; SameSite=${capitalize(cookie.sameSite)}`;
59
- if (cookie.secure) value += "; Secure";
60
- return value;
61
- }
62
- __name(createFarmLocaleCookie, "createFarmLocaleCookie");
63
- function matchFarmLocale(requested, locales) {
64
- if (!requested) return void 0;
65
- let canonical;
66
- try {
67
- canonical = Intl.getCanonicalLocales(requested)[0];
68
- } catch {
69
- return void 0;
70
- }
71
- const exact = locales.find((locale) => locale.toLowerCase() === canonical.toLowerCase());
72
- if (exact) return exact;
73
- const language = canonical.split("-")[0]?.toLowerCase();
74
- return locales.find((locale) => locale.split("-")[0]?.toLowerCase() === language);
75
- }
76
- __name(matchFarmLocale, "matchFarmLocale");
77
- function detectLocale(request, config) {
78
- for (const signal of config.detection) {
79
- if (signal === "url") continue;
80
- if (signal === "cookie") {
81
- const locale = matchFarmLocale(
82
- readCookie(request.headers.get("cookie"), config.cookie.name),
83
- config.locales
84
- );
85
- if (locale) return { locale, source: "cookie" };
86
- }
87
- if (signal === "accept-language") {
88
- const locale = resolveAcceptLanguage(request.headers.get("accept-language"), config.locales);
89
- if (locale) return { locale, source: "accept-language" };
90
- }
91
- }
92
- return { locale: config.defaultLocale, source: "default" };
93
- }
94
- __name(detectLocale, "detectLocale");
95
- function resolveAcceptLanguage(header, locales) {
96
- if (!header) return void 0;
97
- const candidates = header.split(",").map((entry, index) => {
98
- const [locale = "", ...parameters] = entry.trim().split(";");
99
- const qualityValue = parameters.map((parameter) => parameter.trim()).find((parameter) => parameter.startsWith("q="));
100
- const quality = qualityValue ? Number(qualityValue.slice(2)) : 1;
101
- return { locale, quality: Number.isFinite(quality) ? quality : 0, index };
102
- }).filter((candidate) => candidate.locale && candidate.locale !== "*" && candidate.quality > 0).sort((a, b) => b.quality - a.quality || a.index - b.index);
103
- for (const candidate of candidates) {
104
- const locale = matchFarmLocale(candidate.locale, locales);
105
- if (locale) return locale;
106
- }
107
- return void 0;
108
- }
109
- __name(resolveAcceptLanguage, "resolveAcceptLanguage");
110
- function readCookie(header, name) {
111
- if (!header) return void 0;
112
- for (const part of header.split(";")) {
113
- const separator = part.indexOf("=");
114
- if (separator < 0) continue;
115
- let key;
116
- try {
117
- key = decodeURIComponent(part.slice(0, separator).trim());
118
- } catch {
119
- continue;
120
- }
121
- if (key !== name) continue;
122
- try {
123
- return decodeURIComponent(part.slice(separator + 1).trim());
124
- } catch {
125
- return part.slice(separator + 1).trim();
126
- }
127
- }
128
- return void 0;
129
- }
130
- __name(readCookie, "readCookie");
131
- function isInternalOrApiPath(pathname) {
132
- return pathname === "/api" || pathname.startsWith("/api/") || pathname.startsWith("/__farm/") || pathname.startsWith("/_farm/");
133
- }
134
- __name(isInternalOrApiPath, "isInternalOrApiPath");
135
- function capitalize(value) {
136
- return value.charAt(0).toUpperCase() + value.slice(1);
137
- }
138
- __name(capitalize, "capitalize");
139
-
140
- export {
141
- getFarmLocaleVaryHeaders,
142
- resolveFarmLocaleRequest,
143
- createFarmLocaleCookie,
144
- matchFarmLocale
145
- };
146
- //# sourceMappingURL=chunk-GN72QAIH.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/i18n/resolver.ts"],"sourcesContent":["import { localizeFarmPathname, resolveFarmLocalePath } from \"./routing\";\nimport type { FarmI18nLocaleSource, ResolvedFarmI18nConfig } from \"./types\";\n\nexport interface FarmLocaleResolution {\n locale: string;\n source: FarmI18nLocaleSource;\n pathname: string;\n redirect?: string;\n persist: boolean;\n}\n\nexport function getFarmLocaleVaryHeaders(\n config: ResolvedFarmI18nConfig,\n resolution: FarmLocaleResolution,\n): string[] {\n if (!config.enabled || resolution.source === \"url\") return [];\n\n const headers: string[] = [];\n if (config.detection.includes(\"cookie\")) headers.push(\"Cookie\");\n if (config.detection.includes(\"accept-language\")) headers.push(\"Accept-Language\");\n return headers;\n}\n\nexport function resolveFarmLocaleRequest(\n request: Request,\n config: ResolvedFarmI18nConfig,\n options: { redirect?: boolean } = {},\n): FarmLocaleResolution {\n const url = new URL(request.url);\n if (!config.enabled) {\n return {\n locale: config.defaultLocale,\n source: \"default\",\n pathname: url.pathname,\n persist: false,\n };\n }\n\n const pathMatch = resolveFarmLocalePath(url.pathname, config);\n if (pathMatch.explicit && pathMatch.locale) {\n const canonicalPath = localizeFarmPathname(pathMatch.pathname, pathMatch.locale, config);\n const redirect =\n options.redirect !== false && canonicalPath !== url.pathname\n ? `${canonicalPath}${url.search}${url.hash}`\n : undefined;\n return {\n locale: pathMatch.locale,\n source: \"url\",\n pathname: pathMatch.pathname,\n redirect,\n // Locale-prefixed pages are canonical and can be cached publicly. Locale\n // switchers persist the same choice before navigating in the browser.\n persist: false,\n };\n }\n\n const detected = detectLocale(request, config);\n const shouldRedirect =\n options.redirect !== false &&\n !isInternalOrApiPath(url.pathname) &&\n config.routing !== \"none\" &&\n (config.routing === \"prefix-always\" || detected.locale !== config.defaultLocale);\n\n return {\n locale: detected.locale,\n source: detected.source,\n pathname: pathMatch.pathname,\n redirect: shouldRedirect\n ? `${localizeFarmPathname(pathMatch.pathname, detected.locale, config)}${url.search}${url.hash}`\n : undefined,\n persist: detected.source !== \"default\",\n };\n}\n\nexport function createFarmLocaleCookie(\n locale: string,\n config: Pick<ResolvedFarmI18nConfig, \"cookie\">,\n): string {\n const cookie = config.cookie;\n let value = `${encodeURIComponent(cookie.name)}=${encodeURIComponent(locale)}`;\n value += `; Max-Age=${cookie.maxAge}`;\n value += `; Path=${cookie.path}`;\n value += `; SameSite=${capitalize(cookie.sameSite)}`;\n if (cookie.secure) value += \"; Secure\";\n return value;\n}\n\nexport function matchFarmLocale(\n requested: string | null | undefined,\n locales: readonly string[],\n): string | undefined {\n if (!requested) return undefined;\n let canonical: string;\n try {\n canonical = Intl.getCanonicalLocales(requested)[0]!;\n } catch {\n return undefined;\n }\n\n const exact = locales.find((locale) => locale.toLowerCase() === canonical.toLowerCase());\n if (exact) return exact;\n\n const language = canonical.split(\"-\")[0]?.toLowerCase();\n return locales.find((locale) => locale.split(\"-\")[0]?.toLowerCase() === language);\n}\n\nfunction detectLocale(\n request: Request,\n config: ResolvedFarmI18nConfig,\n): { locale: string; source: FarmI18nLocaleSource } {\n for (const signal of config.detection) {\n if (signal === \"url\") continue;\n\n if (signal === \"cookie\") {\n const locale = matchFarmLocale(\n readCookie(request.headers.get(\"cookie\"), config.cookie.name),\n config.locales,\n );\n if (locale) return { locale, source: \"cookie\" };\n }\n\n if (signal === \"accept-language\") {\n const locale = resolveAcceptLanguage(request.headers.get(\"accept-language\"), config.locales);\n if (locale) return { locale, source: \"accept-language\" };\n }\n }\n\n return { locale: config.defaultLocale, source: \"default\" };\n}\n\nfunction resolveAcceptLanguage(\n header: string | null,\n locales: readonly string[],\n): string | undefined {\n if (!header) return undefined;\n const candidates = header\n .split(\",\")\n .map((entry, index) => {\n const [locale = \"\", ...parameters] = entry.trim().split(\";\");\n const qualityValue = parameters\n .map((parameter) => parameter.trim())\n .find((parameter) => parameter.startsWith(\"q=\"));\n const quality = qualityValue ? Number(qualityValue.slice(2)) : 1;\n return { locale, quality: Number.isFinite(quality) ? quality : 0, index };\n })\n .filter((candidate) => candidate.locale && candidate.locale !== \"*\" && candidate.quality > 0)\n .sort((a, b) => b.quality - a.quality || a.index - b.index);\n\n for (const candidate of candidates) {\n const locale = matchFarmLocale(candidate.locale, locales);\n if (locale) return locale;\n }\n return undefined;\n}\n\nfunction readCookie(header: string | null, name: string): string | undefined {\n if (!header) return undefined;\n for (const part of header.split(\";\")) {\n const separator = part.indexOf(\"=\");\n if (separator < 0) continue;\n let key: string;\n try {\n key = decodeURIComponent(part.slice(0, separator).trim());\n } catch {\n continue;\n }\n if (key !== name) continue;\n try {\n return decodeURIComponent(part.slice(separator + 1).trim());\n } catch {\n return part.slice(separator + 1).trim();\n }\n }\n return undefined;\n}\n\nfunction isInternalOrApiPath(pathname: string): boolean {\n return (\n pathname === \"/api\" ||\n pathname.startsWith(\"/api/\") ||\n pathname.startsWith(\"/__farm/\") ||\n pathname.startsWith(\"/_farm/\")\n );\n}\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n"],"mappings":";;;;;;;;;AAWO,SAAS,yBACd,QACA,YACU;AACV,MAAI,CAAC,OAAO,WAAW,WAAW,WAAW,MAAO,QAAO,CAAC;AAE5D,QAAM,UAAoB,CAAC;AAC3B,MAAI,OAAO,UAAU,SAAS,QAAQ,EAAG,SAAQ,KAAK,QAAQ;AAC9D,MAAI,OAAO,UAAU,SAAS,iBAAiB,EAAG,SAAQ,KAAK,iBAAiB;AAChF,SAAO;AACT;AAVgB;AAYT,SAAS,yBACd,SACA,QACA,UAAkC,CAAC,GACb;AACtB,QAAM,MAAM,IAAI,IAAI,QAAQ,GAAG;AAC/B,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO;AAAA,MACL,QAAQ,OAAO;AAAA,MACf,QAAQ;AAAA,MACR,UAAU,IAAI;AAAA,MACd,SAAS;AAAA,IACX;AAAA,EACF;AAEA,QAAM,YAAY,sBAAsB,IAAI,UAAU,MAAM;AAC5D,MAAI,UAAU,YAAY,UAAU,QAAQ;AAC1C,UAAM,gBAAgB,qBAAqB,UAAU,UAAU,UAAU,QAAQ,MAAM;AACvF,UAAM,WACJ,QAAQ,aAAa,SAAS,kBAAkB,IAAI,WAChD,GAAG,aAAa,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI,KACxC;AACN,WAAO;AAAA,MACL,QAAQ,UAAU;AAAA,MAClB,QAAQ;AAAA,MACR,UAAU,UAAU;AAAA,MACpB;AAAA;AAAA;AAAA,MAGA,SAAS;AAAA,IACX;AAAA,EACF;AAEA,QAAM,WAAW,aAAa,SAAS,MAAM;AAC7C,QAAM,iBACJ,QAAQ,aAAa,SACrB,CAAC,oBAAoB,IAAI,QAAQ,KACjC,OAAO,YAAY,WAClB,OAAO,YAAY,mBAAmB,SAAS,WAAW,OAAO;AAEpE,SAAO;AAAA,IACL,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,UAAU,UAAU;AAAA,IACpB,UAAU,iBACN,GAAG,qBAAqB,UAAU,UAAU,SAAS,QAAQ,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI,KAC5F;AAAA,IACJ,SAAS,SAAS,WAAW;AAAA,EAC/B;AACF;AAjDgB;AAmDT,SAAS,uBACd,QACA,QACQ;AACR,QAAM,SAAS,OAAO;AACtB,MAAI,QAAQ,GAAG,mBAAmB,OAAO,IAAI,CAAC,IAAI,mBAAmB,MAAM,CAAC;AAC5E,WAAS,aAAa,OAAO,MAAM;AACnC,WAAS,UAAU,OAAO,IAAI;AAC9B,WAAS,cAAc,WAAW,OAAO,QAAQ,CAAC;AAClD,MAAI,OAAO,OAAQ,UAAS;AAC5B,SAAO;AACT;AAXgB;AAaT,SAAS,gBACd,WACA,SACoB;AACpB,MAAI,CAAC,UAAW,QAAO;AACvB,MAAI;AACJ,MAAI;AACF,gBAAY,KAAK,oBAAoB,SAAS,EAAE,CAAC;AAAA,EACnD,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,QAAQ,KAAK,CAAC,WAAW,OAAO,YAAY,MAAM,UAAU,YAAY,CAAC;AACvF,MAAI,MAAO,QAAO;AAElB,QAAM,WAAW,UAAU,MAAM,GAAG,EAAE,CAAC,GAAG,YAAY;AACtD,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,MAAM,GAAG,EAAE,CAAC,GAAG,YAAY,MAAM,QAAQ;AAClF;AAjBgB;AAmBhB,SAAS,aACP,SACA,QACkD;AAClD,aAAW,UAAU,OAAO,WAAW;AACrC,QAAI,WAAW,MAAO;AAEtB,QAAI,WAAW,UAAU;AACvB,YAAM,SAAS;AAAA,QACb,WAAW,QAAQ,QAAQ,IAAI,QAAQ,GAAG,OAAO,OAAO,IAAI;AAAA,QAC5D,OAAO;AAAA,MACT;AACA,UAAI,OAAQ,QAAO,EAAE,QAAQ,QAAQ,SAAS;AAAA,IAChD;AAEA,QAAI,WAAW,mBAAmB;AAChC,YAAM,SAAS,sBAAsB,QAAQ,QAAQ,IAAI,iBAAiB,GAAG,OAAO,OAAO;AAC3F,UAAI,OAAQ,QAAO,EAAE,QAAQ,QAAQ,kBAAkB;AAAA,IACzD;AAAA,EACF;AAEA,SAAO,EAAE,QAAQ,OAAO,eAAe,QAAQ,UAAU;AAC3D;AAtBS;AAwBT,SAAS,sBACP,QACA,SACoB;AACpB,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,aAAa,OAChB,MAAM,GAAG,EACT,IAAI,CAAC,OAAO,UAAU;AACrB,UAAM,CAAC,SAAS,IAAI,GAAG,UAAU,IAAI,MAAM,KAAK,EAAE,MAAM,GAAG;AAC3D,UAAM,eAAe,WAClB,IAAI,CAAC,cAAc,UAAU,KAAK,CAAC,EACnC,KAAK,CAAC,cAAc,UAAU,WAAW,IAAI,CAAC;AACjD,UAAM,UAAU,eAAe,OAAO,aAAa,MAAM,CAAC,CAAC,IAAI;AAC/D,WAAO,EAAE,QAAQ,SAAS,OAAO,SAAS,OAAO,IAAI,UAAU,GAAG,MAAM;AAAA,EAC1E,CAAC,EACA,OAAO,CAAC,cAAc,UAAU,UAAU,UAAU,WAAW,OAAO,UAAU,UAAU,CAAC,EAC3F,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK;AAE5D,aAAW,aAAa,YAAY;AAClC,UAAM,SAAS,gBAAgB,UAAU,QAAQ,OAAO;AACxD,QAAI,OAAQ,QAAO;AAAA,EACrB;AACA,SAAO;AACT;AAvBS;AAyBT,SAAS,WAAW,QAAuB,MAAkC;AAC3E,MAAI,CAAC,OAAQ,QAAO;AACpB,aAAW,QAAQ,OAAO,MAAM,GAAG,GAAG;AACpC,UAAM,YAAY,KAAK,QAAQ,GAAG;AAClC,QAAI,YAAY,EAAG;AACnB,QAAI;AACJ,QAAI;AACF,YAAM,mBAAmB,KAAK,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC;AAAA,IAC1D,QAAQ;AACN;AAAA,IACF;AACA,QAAI,QAAQ,KAAM;AAClB,QAAI;AACF,aAAO,mBAAmB,KAAK,MAAM,YAAY,CAAC,EAAE,KAAK,CAAC;AAAA,IAC5D,QAAQ;AACN,aAAO,KAAK,MAAM,YAAY,CAAC,EAAE,KAAK;AAAA,IACxC;AAAA,EACF;AACA,SAAO;AACT;AAnBS;AAqBT,SAAS,oBAAoB,UAA2B;AACtD,SACE,aAAa,UACb,SAAS,WAAW,OAAO,KAC3B,SAAS,WAAW,UAAU,KAC9B,SAAS,WAAW,SAAS;AAEjC;AAPS;AAST,SAAS,WAAW,OAAuB;AACzC,SAAO,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,MAAM,CAAC;AACtD;AAFS;","names":[]}