@farm.js/core 0.1.0-beta.0

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 (549) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +11 -0
  3. package/dist/after.cjs +227 -0
  4. package/dist/after.cjs.map +1 -0
  5. package/dist/after.d.mts +25 -0
  6. package/dist/after.d.ts +25 -0
  7. package/dist/after.mjs +14 -0
  8. package/dist/after.mjs.map +1 -0
  9. package/dist/agent-runtime.cjs +2379 -0
  10. package/dist/agent-runtime.cjs.map +1 -0
  11. package/dist/agent-runtime.d.mts +93 -0
  12. package/dist/agent-runtime.d.ts +93 -0
  13. package/dist/agent-runtime.mjs +479 -0
  14. package/dist/agent-runtime.mjs.map +1 -0
  15. package/dist/api/route-manager.cjs +1196 -0
  16. package/dist/api/route-manager.cjs.map +1 -0
  17. package/dist/api/route-manager.d.mts +64 -0
  18. package/dist/api/route-manager.d.ts +64 -0
  19. package/dist/api/route-manager.mjs +34 -0
  20. package/dist/api/route-manager.mjs.map +1 -0
  21. package/dist/api/runtime.cjs +272 -0
  22. package/dist/api/runtime.cjs.map +1 -0
  23. package/dist/api/runtime.d.mts +16 -0
  24. package/dist/api/runtime.d.ts +16 -0
  25. package/dist/api/runtime.mjs +16 -0
  26. package/dist/api/runtime.mjs.map +1 -0
  27. package/dist/api.cjs +3199 -0
  28. package/dist/api.cjs.map +1 -0
  29. package/dist/api.d.mts +190 -0
  30. package/dist/api.d.ts +190 -0
  31. package/dist/api.mjs +63 -0
  32. package/dist/api.mjs.map +1 -0
  33. package/dist/app-BiX4qb-d.d.mts +265 -0
  34. package/dist/app-CFRNJXP1.d.ts +265 -0
  35. package/dist/app-markdown.cjs +220 -0
  36. package/dist/app-markdown.cjs.map +1 -0
  37. package/dist/app-markdown.d.mts +21 -0
  38. package/dist/app-markdown.d.ts +21 -0
  39. package/dist/app-markdown.mjs +26 -0
  40. package/dist/app-markdown.mjs.map +1 -0
  41. package/dist/cache.cjs +543 -0
  42. package/dist/cache.cjs.map +1 -0
  43. package/dist/cache.d.mts +78 -0
  44. package/dist/cache.d.ts +78 -0
  45. package/dist/cache.mjs +38 -0
  46. package/dist/cache.mjs.map +1 -0
  47. package/dist/chunk-25D7G34K.mjs +142 -0
  48. package/dist/chunk-25D7G34K.mjs.map +1 -0
  49. package/dist/chunk-3QJO55ZF.mjs +3548 -0
  50. package/dist/chunk-3QJO55ZF.mjs.map +1 -0
  51. package/dist/chunk-3XNTL3FQ.mjs +452 -0
  52. package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
  53. package/dist/chunk-44ZCFSKE.mjs +84 -0
  54. package/dist/chunk-44ZCFSKE.mjs.map +1 -0
  55. package/dist/chunk-4PTK6KT4.mjs +364 -0
  56. package/dist/chunk-4PTK6KT4.mjs.map +1 -0
  57. package/dist/chunk-4S3ORGFA.mjs +44 -0
  58. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  59. package/dist/chunk-5BY76U2M.mjs +1 -0
  60. package/dist/chunk-5BY76U2M.mjs.map +1 -0
  61. package/dist/chunk-5ZGPRGWV.mjs +136 -0
  62. package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
  63. package/dist/chunk-6XDUHOEM.mjs +157 -0
  64. package/dist/chunk-6XDUHOEM.mjs.map +1 -0
  65. package/dist/chunk-74YTBPTY.mjs +450 -0
  66. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  67. package/dist/chunk-7HO6AEOP.mjs +74 -0
  68. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  69. package/dist/chunk-7MABZJIM.mjs +29 -0
  70. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  71. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  72. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  73. package/dist/chunk-AGS7UJ52.mjs +446 -0
  74. package/dist/chunk-AGS7UJ52.mjs.map +1 -0
  75. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  76. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  77. package/dist/chunk-B232I2GP.mjs +163 -0
  78. package/dist/chunk-B232I2GP.mjs.map +1 -0
  79. package/dist/chunk-B6N4ZB2H.mjs +718 -0
  80. package/dist/chunk-B6N4ZB2H.mjs.map +1 -0
  81. package/dist/chunk-BHG3LVHH.mjs +176 -0
  82. package/dist/chunk-BHG3LVHH.mjs.map +1 -0
  83. package/dist/chunk-C3DLZMBU.mjs +597 -0
  84. package/dist/chunk-C3DLZMBU.mjs.map +1 -0
  85. package/dist/chunk-CGILA3WO.mjs +14 -0
  86. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  87. package/dist/chunk-CHFHNEMO.mjs +7088 -0
  88. package/dist/chunk-CHFHNEMO.mjs.map +1 -0
  89. package/dist/chunk-E2MPIBRE.mjs +149 -0
  90. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  91. package/dist/chunk-E6EPN5BT.mjs +203 -0
  92. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  93. package/dist/chunk-EVGBEZDF.mjs +215 -0
  94. package/dist/chunk-EVGBEZDF.mjs.map +1 -0
  95. package/dist/chunk-FQYDHKKU.mjs +128 -0
  96. package/dist/chunk-FQYDHKKU.mjs.map +1 -0
  97. package/dist/chunk-G3B5BRDY.mjs +5763 -0
  98. package/dist/chunk-G3B5BRDY.mjs.map +1 -0
  99. package/dist/chunk-GN72QAIH.mjs +146 -0
  100. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  101. package/dist/chunk-GS6K5OCM.mjs +407 -0
  102. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  103. package/dist/chunk-GY2STC2S.mjs +180 -0
  104. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  105. package/dist/chunk-GZP5W4K3.mjs +158 -0
  106. package/dist/chunk-GZP5W4K3.mjs.map +1 -0
  107. package/dist/chunk-H2FA2SBS.mjs +51 -0
  108. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  109. package/dist/chunk-HXP3ZSPC.mjs +211 -0
  110. package/dist/chunk-HXP3ZSPC.mjs.map +1 -0
  111. package/dist/chunk-ITN462YM.mjs +98 -0
  112. package/dist/chunk-ITN462YM.mjs.map +1 -0
  113. package/dist/chunk-J23HNLFY.mjs +72 -0
  114. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  115. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  116. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  117. package/dist/chunk-JK25YEN6.mjs +219 -0
  118. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  119. package/dist/chunk-JLWMCADZ.mjs +204 -0
  120. package/dist/chunk-JLWMCADZ.mjs.map +1 -0
  121. package/dist/chunk-JN3UU635.mjs +622 -0
  122. package/dist/chunk-JN3UU635.mjs.map +1 -0
  123. package/dist/chunk-K4667E2Q.mjs +1916 -0
  124. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  125. package/dist/chunk-LGHEOHBU.mjs +218 -0
  126. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  127. package/dist/chunk-LLC7BNXW.mjs +275 -0
  128. package/dist/chunk-LLC7BNXW.mjs.map +1 -0
  129. package/dist/chunk-LM2YNO4U.mjs +24 -0
  130. package/dist/chunk-LM2YNO4U.mjs.map +1 -0
  131. package/dist/chunk-NNLCAVB6.mjs +391 -0
  132. package/dist/chunk-NNLCAVB6.mjs.map +1 -0
  133. package/dist/chunk-O3HADRW6.mjs +639 -0
  134. package/dist/chunk-O3HADRW6.mjs.map +1 -0
  135. package/dist/chunk-OYXO65LI.mjs +119 -0
  136. package/dist/chunk-OYXO65LI.mjs.map +1 -0
  137. package/dist/chunk-P7QDS5AT.mjs +191 -0
  138. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  139. package/dist/chunk-PRNYWD7K.mjs +599 -0
  140. package/dist/chunk-PRNYWD7K.mjs.map +1 -0
  141. package/dist/chunk-QF4PHCMA.mjs +422 -0
  142. package/dist/chunk-QF4PHCMA.mjs.map +1 -0
  143. package/dist/chunk-QFQRHRZS.mjs +1224 -0
  144. package/dist/chunk-QFQRHRZS.mjs.map +1 -0
  145. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  146. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  147. package/dist/chunk-QKVUNGAH.mjs +39 -0
  148. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  149. package/dist/chunk-QM6VV26B.mjs +149 -0
  150. package/dist/chunk-QM6VV26B.mjs.map +1 -0
  151. package/dist/chunk-RHIFZZUI.mjs +69 -0
  152. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  153. package/dist/chunk-RKI6TN3A.mjs +49 -0
  154. package/dist/chunk-RKI6TN3A.mjs.map +1 -0
  155. package/dist/chunk-RSKVYESE.mjs +187 -0
  156. package/dist/chunk-RSKVYESE.mjs.map +1 -0
  157. package/dist/chunk-S2XHZS7W.mjs +180 -0
  158. package/dist/chunk-S2XHZS7W.mjs.map +1 -0
  159. package/dist/chunk-SCFX4UTD.mjs +28 -0
  160. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  161. package/dist/chunk-SL6HTIOK.mjs +66 -0
  162. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  163. package/dist/chunk-SOU3Q3ZA.mjs +173 -0
  164. package/dist/chunk-SOU3Q3ZA.mjs.map +1 -0
  165. package/dist/chunk-SPBBQLXI.mjs +207 -0
  166. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  167. package/dist/chunk-SXZTEK3V.mjs +396 -0
  168. package/dist/chunk-SXZTEK3V.mjs.map +1 -0
  169. package/dist/chunk-T4QJQK76.mjs +459 -0
  170. package/dist/chunk-T4QJQK76.mjs.map +1 -0
  171. package/dist/chunk-TRORP7E4.mjs +41 -0
  172. package/dist/chunk-TRORP7E4.mjs.map +1 -0
  173. package/dist/chunk-TU4YJICB.mjs +728 -0
  174. package/dist/chunk-TU4YJICB.mjs.map +1 -0
  175. package/dist/chunk-TXCFGOHW.mjs +42 -0
  176. package/dist/chunk-TXCFGOHW.mjs.map +1 -0
  177. package/dist/chunk-UHE2TTLK.mjs +466 -0
  178. package/dist/chunk-UHE2TTLK.mjs.map +1 -0
  179. package/dist/chunk-UREJA4GZ.mjs +364 -0
  180. package/dist/chunk-UREJA4GZ.mjs.map +1 -0
  181. package/dist/chunk-USWZZUEH.mjs +25 -0
  182. package/dist/chunk-USWZZUEH.mjs.map +1 -0
  183. package/dist/chunk-UVCIEUJC.mjs +16 -0
  184. package/dist/chunk-UVCIEUJC.mjs.map +1 -0
  185. package/dist/chunk-V6WE6JSZ.mjs +352 -0
  186. package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
  187. package/dist/chunk-V7RBCSDJ.mjs +170 -0
  188. package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
  189. package/dist/chunk-VCANOYFI.mjs +588 -0
  190. package/dist/chunk-VCANOYFI.mjs.map +1 -0
  191. package/dist/chunk-WZ5QFROO.mjs +23 -0
  192. package/dist/chunk-WZ5QFROO.mjs.map +1 -0
  193. package/dist/chunk-Y2OJJD7R.mjs +543 -0
  194. package/dist/chunk-Y2OJJD7R.mjs.map +1 -0
  195. package/dist/chunk-Y7A27276.mjs +538 -0
  196. package/dist/chunk-Y7A27276.mjs.map +1 -0
  197. package/dist/chunk-YHU7SS6L.mjs +365 -0
  198. package/dist/chunk-YHU7SS6L.mjs.map +1 -0
  199. package/dist/chunk-ZBE6MLHL.mjs +230 -0
  200. package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
  201. package/dist/chunk-ZJQNATYV.mjs +299 -0
  202. package/dist/chunk-ZJQNATYV.mjs.map +1 -0
  203. package/dist/client-D_yUjVhe.d.mts +402 -0
  204. package/dist/client-Dkc03WP8.d.ts +402 -0
  205. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  206. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  207. package/dist/client-plugins-BZnpeTGA.d.ts +1848 -0
  208. package/dist/client-plugins-g4bzuCmo.d.mts +1848 -0
  209. package/dist/client-plugins.cjs +415 -0
  210. package/dist/client-plugins.cjs.map +1 -0
  211. package/dist/client-plugins.d.mts +21 -0
  212. package/dist/client-plugins.d.ts +21 -0
  213. package/dist/client-plugins.mjs +10 -0
  214. package/dist/client-plugins.mjs.map +1 -0
  215. package/dist/client.cjs +4571 -0
  216. package/dist/client.cjs.map +1 -0
  217. package/dist/client.d.mts +329 -0
  218. package/dist/client.d.ts +329 -0
  219. package/dist/client.mjs +103 -0
  220. package/dist/client.mjs.map +1 -0
  221. package/dist/config.cjs +38 -0
  222. package/dist/config.cjs.map +1 -0
  223. package/dist/config.d.mts +28 -0
  224. package/dist/config.d.ts +28 -0
  225. package/dist/config.mjs +10 -0
  226. package/dist/config.mjs.map +1 -0
  227. package/dist/cron.cjs +406 -0
  228. package/dist/cron.cjs.map +1 -0
  229. package/dist/cron.d.mts +78 -0
  230. package/dist/cron.d.ts +78 -0
  231. package/dist/cron.mjs +30 -0
  232. package/dist/cron.mjs.map +1 -0
  233. package/dist/deferred.cjs +438 -0
  234. package/dist/deferred.cjs.map +1 -0
  235. package/dist/deferred.d.mts +42 -0
  236. package/dist/deferred.d.ts +42 -0
  237. package/dist/deferred.mjs +28 -0
  238. package/dist/deferred.mjs.map +1 -0
  239. package/dist/deployment.cjs +199 -0
  240. package/dist/deployment.cjs.map +1 -0
  241. package/dist/deployment.d.mts +34 -0
  242. package/dist/deployment.d.ts +34 -0
  243. package/dist/deployment.mjs +38 -0
  244. package/dist/deployment.mjs.map +1 -0
  245. package/dist/devtools-AE4RVXCM.mjs +370 -0
  246. package/dist/devtools-AE4RVXCM.mjs.map +1 -0
  247. package/dist/devtools-client-6WPY2AQU.mjs +225 -0
  248. package/dist/devtools-client-6WPY2AQU.mjs.map +1 -0
  249. package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
  250. package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
  251. package/dist/docs.cjs +5541 -0
  252. package/dist/docs.cjs.map +1 -0
  253. package/dist/docs.d.mts +69 -0
  254. package/dist/docs.d.ts +69 -0
  255. package/dist/docs.mjs +46 -0
  256. package/dist/docs.mjs.map +1 -0
  257. package/dist/env-types.cjs +223 -0
  258. package/dist/env-types.cjs.map +1 -0
  259. package/dist/env-types.d.mts +11 -0
  260. package/dist/env-types.d.ts +11 -0
  261. package/dist/env-types.mjs +9 -0
  262. package/dist/env-types.mjs.map +1 -0
  263. package/dist/env.cjs +215 -0
  264. package/dist/env.cjs.map +1 -0
  265. package/dist/env.d.mts +45 -0
  266. package/dist/env.d.ts +45 -0
  267. package/dist/env.mjs +22 -0
  268. package/dist/env.mjs.map +1 -0
  269. package/dist/environment/vite.cjs +374 -0
  270. package/dist/environment/vite.cjs.map +1 -0
  271. package/dist/environment/vite.d.mts +22 -0
  272. package/dist/environment/vite.d.ts +22 -0
  273. package/dist/environment/vite.mjs +10 -0
  274. package/dist/environment/vite.mjs.map +1 -0
  275. package/dist/environment.cjs +96 -0
  276. package/dist/environment.cjs.map +1 -0
  277. package/dist/environment.d.mts +18 -0
  278. package/dist/environment.d.ts +18 -0
  279. package/dist/environment.mjs +14 -0
  280. package/dist/environment.mjs.map +1 -0
  281. package/dist/headers.cjs +126 -0
  282. package/dist/headers.cjs.map +1 -0
  283. package/dist/headers.d.mts +22 -0
  284. package/dist/headers.d.ts +22 -0
  285. package/dist/headers.mjs +12 -0
  286. package/dist/headers.mjs.map +1 -0
  287. package/dist/i18n/client.cjs +283 -0
  288. package/dist/i18n/client.cjs.map +1 -0
  289. package/dist/i18n/client.d.mts +32 -0
  290. package/dist/i18n/client.d.ts +32 -0
  291. package/dist/i18n/client.mjs +121 -0
  292. package/dist/i18n/client.mjs.map +1 -0
  293. package/dist/i18n/index.cjs +130 -0
  294. package/dist/i18n/index.cjs.map +1 -0
  295. package/dist/i18n/index.d.mts +20 -0
  296. package/dist/i18n/index.d.ts +20 -0
  297. package/dist/i18n/index.mjs +22 -0
  298. package/dist/i18n/index.mjs.map +1 -0
  299. package/dist/i18n/server.cjs +637 -0
  300. package/dist/i18n/server.cjs.map +1 -0
  301. package/dist/i18n/server.d.mts +30 -0
  302. package/dist/i18n/server.d.ts +30 -0
  303. package/dist/i18n/server.mjs +32 -0
  304. package/dist/i18n/server.mjs.map +1 -0
  305. package/dist/image/server.cjs +477 -0
  306. package/dist/image/server.cjs.map +1 -0
  307. package/dist/image/server.d.mts +37 -0
  308. package/dist/image/server.d.ts +37 -0
  309. package/dist/image/server.mjs +16 -0
  310. package/dist/image/server.mjs.map +1 -0
  311. package/dist/image/sharp.cjs +135 -0
  312. package/dist/image/sharp.cjs.map +1 -0
  313. package/dist/image/sharp.d.mts +7 -0
  314. package/dist/image/sharp.d.ts +7 -0
  315. package/dist/image/sharp.mjs +75 -0
  316. package/dist/image/sharp.mjs.map +1 -0
  317. package/dist/image-config-Duob7wER.d.mts +50 -0
  318. package/dist/image-config-Duob7wER.d.ts +50 -0
  319. package/dist/image.cjs +209 -0
  320. package/dist/image.cjs.map +1 -0
  321. package/dist/image.d.mts +39 -0
  322. package/dist/image.d.ts +39 -0
  323. package/dist/image.mjs +165 -0
  324. package/dist/image.mjs.map +1 -0
  325. package/dist/index.cjs +39433 -0
  326. package/dist/index.cjs.map +1 -0
  327. package/dist/index.d.mts +451 -0
  328. package/dist/index.d.ts +451 -0
  329. package/dist/index.mjs +930 -0
  330. package/dist/index.mjs.map +1 -0
  331. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  332. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  333. package/dist/integration-orm-GQLGU66X.mjs +13 -0
  334. package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
  335. package/dist/integrations.cjs +2820 -0
  336. package/dist/integrations.cjs.map +1 -0
  337. package/dist/integrations.d.mts +21 -0
  338. package/dist/integrations.d.ts +21 -0
  339. package/dist/integrations.mjs +51 -0
  340. package/dist/integrations.mjs.map +1 -0
  341. package/dist/internal/build-runtime.cjs +31340 -0
  342. package/dist/internal/build-runtime.cjs.map +1 -0
  343. package/dist/internal/build-runtime.d.mts +38 -0
  344. package/dist/internal/build-runtime.d.ts +38 -0
  345. package/dist/internal/build-runtime.mjs +73 -0
  346. package/dist/internal/build-runtime.mjs.map +1 -0
  347. package/dist/internal/client-runtime.cjs +579 -0
  348. package/dist/internal/client-runtime.cjs.map +1 -0
  349. package/dist/internal/client-runtime.d.mts +2 -0
  350. package/dist/internal/client-runtime.d.ts +2 -0
  351. package/dist/internal/client-runtime.mjs +12 -0
  352. package/dist/internal/client-runtime.mjs.map +1 -0
  353. package/dist/internal/config-runtime.cjs +4172 -0
  354. package/dist/internal/config-runtime.cjs.map +1 -0
  355. package/dist/internal/config-runtime.d.mts +38 -0
  356. package/dist/internal/config-runtime.d.ts +38 -0
  357. package/dist/internal/config-runtime.mjs +38 -0
  358. package/dist/internal/config-runtime.mjs.map +1 -0
  359. package/dist/internal/production-node-env.cjs +65 -0
  360. package/dist/internal/production-node-env.cjs.map +1 -0
  361. package/dist/internal/production-node-env.d.mts +12 -0
  362. package/dist/internal/production-node-env.d.ts +12 -0
  363. package/dist/internal/production-node-env.mjs +8 -0
  364. package/dist/internal/production-node-env.mjs.map +1 -0
  365. package/dist/internal/production-runtime.cjs +1896 -0
  366. package/dist/internal/production-runtime.cjs.map +1 -0
  367. package/dist/internal/production-runtime.d.mts +39 -0
  368. package/dist/internal/production-runtime.d.ts +39 -0
  369. package/dist/internal/production-runtime.mjs +79 -0
  370. package/dist/internal/production-runtime.mjs.map +1 -0
  371. package/dist/layers-VWVDTPUZ.mjs +16 -0
  372. package/dist/layers-VWVDTPUZ.mjs.map +1 -0
  373. package/dist/manager-THKFTOFE.mjs +10 -0
  374. package/dist/manager-THKFTOFE.mjs.map +1 -0
  375. package/dist/markdown.cjs +299 -0
  376. package/dist/markdown.cjs.map +1 -0
  377. package/dist/markdown.d.mts +43 -0
  378. package/dist/markdown.d.ts +43 -0
  379. package/dist/markdown.mjs +14 -0
  380. package/dist/markdown.mjs.map +1 -0
  381. package/dist/metadata-C9NZxMDW.d.mts +22 -0
  382. package/dist/metadata-DAXRaOHx.d.ts +22 -0
  383. package/dist/middleware.cjs +2148 -0
  384. package/dist/middleware.cjs.map +1 -0
  385. package/dist/middleware.d.mts +163 -0
  386. package/dist/middleware.d.ts +163 -0
  387. package/dist/middleware.mjs +49 -0
  388. package/dist/middleware.mjs.map +1 -0
  389. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  390. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  391. package/dist/navigation.cjs +1304 -0
  392. package/dist/navigation.cjs.map +1 -0
  393. package/dist/navigation.d.mts +14 -0
  394. package/dist/navigation.d.ts +14 -0
  395. package/dist/navigation.mjs +33 -0
  396. package/dist/navigation.mjs.map +1 -0
  397. package/dist/nitro-KME62MWG.mjs +691 -0
  398. package/dist/nitro-KME62MWG.mjs.map +1 -0
  399. package/dist/observability.cjs +186 -0
  400. package/dist/observability.cjs.map +1 -0
  401. package/dist/observability.d.mts +335 -0
  402. package/dist/observability.d.ts +335 -0
  403. package/dist/observability.mjs +16 -0
  404. package/dist/observability.mjs.map +1 -0
  405. package/dist/params-BALtrRim.d.ts +15 -0
  406. package/dist/params-ry-lxqmy.d.mts +15 -0
  407. package/dist/plugin-BJDf43dc.d.mts +165 -0
  408. package/dist/plugin-BJDf43dc.d.ts +165 -0
  409. package/dist/plugin.cjs +22285 -0
  410. package/dist/plugin.cjs.map +1 -0
  411. package/dist/plugin.d.mts +21 -0
  412. package/dist/plugin.d.ts +21 -0
  413. package/dist/plugin.mjs +60 -0
  414. package/dist/plugin.mjs.map +1 -0
  415. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  416. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  417. package/dist/production-runtime-DRkCHUvJ.d.ts +79 -0
  418. package/dist/production-runtime-flrjp_nC.d.mts +79 -0
  419. package/dist/query/client.cjs +560 -0
  420. package/dist/query/client.cjs.map +1 -0
  421. package/dist/query/client.d.mts +61 -0
  422. package/dist/query/client.d.ts +61 -0
  423. package/dist/query/client.mjs +364 -0
  424. package/dist/query/client.mjs.map +1 -0
  425. package/dist/query/index.cjs +226 -0
  426. package/dist/query/index.cjs.map +1 -0
  427. package/dist/query/index.d.mts +90 -0
  428. package/dist/query/index.d.ts +90 -0
  429. package/dist/query/index.mjs +31 -0
  430. package/dist/query/index.mjs.map +1 -0
  431. package/dist/query/parsers.cjs +178 -0
  432. package/dist/query/parsers.cjs.map +1 -0
  433. package/dist/query/parsers.d.mts +25 -0
  434. package/dist/query/parsers.d.ts +25 -0
  435. package/dist/query/parsers.mjs +24 -0
  436. package/dist/query/parsers.mjs.map +1 -0
  437. package/dist/query/server.cjs +301 -0
  438. package/dist/query/server.cjs.map +1 -0
  439. package/dist/query/server.d.mts +55 -0
  440. package/dist/query/server.d.ts +55 -0
  441. package/dist/query/server.mjs +105 -0
  442. package/dist/query/server.mjs.map +1 -0
  443. package/dist/request-BrFBuc8G.d.mts +6 -0
  444. package/dist/request-BslSZIRz.d.ts +6 -0
  445. package/dist/request.cjs +71 -0
  446. package/dist/request.cjs.map +1 -0
  447. package/dist/request.d.mts +2 -0
  448. package/dist/request.d.ts +2 -0
  449. package/dist/request.mjs +9 -0
  450. package/dist/request.mjs.map +1 -0
  451. package/dist/resolver-C6iecsDV.d.ts +14 -0
  452. package/dist/resolver-DlOPpjkB.d.mts +14 -0
  453. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  454. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  455. package/dist/router.cjs +254 -0
  456. package/dist/router.cjs.map +1 -0
  457. package/dist/router.d.mts +36 -0
  458. package/dist/router.d.ts +36 -0
  459. package/dist/router.mjs +14 -0
  460. package/dist/router.mjs.map +1 -0
  461. package/dist/routes.cjs +1213 -0
  462. package/dist/routes.cjs.map +1 -0
  463. package/dist/routes.d.mts +224 -0
  464. package/dist/routes.d.ts +224 -0
  465. package/dist/routes.mjs +52 -0
  466. package/dist/routes.mjs.map +1 -0
  467. package/dist/runtime-B6GvwDS1.d.ts +27 -0
  468. package/dist/runtime-DeAAZ6gO.d.mts +27 -0
  469. package/dist/search-client-6OXIBNYQ.mjs +14 -0
  470. package/dist/search-client-6OXIBNYQ.mjs.map +1 -0
  471. package/dist/server-action-security.cjs +492 -0
  472. package/dist/server-action-security.cjs.map +1 -0
  473. package/dist/server-action-security.d.mts +42 -0
  474. package/dist/server-action-security.d.ts +42 -0
  475. package/dist/server-action-security.mjs +29 -0
  476. package/dist/server-action-security.mjs.map +1 -0
  477. package/dist/server-fn-client.cjs +180 -0
  478. package/dist/server-fn-client.cjs.map +1 -0
  479. package/dist/server-fn-client.d.mts +31 -0
  480. package/dist/server-fn-client.d.ts +31 -0
  481. package/dist/server-fn-client.mjs +9 -0
  482. package/dist/server-fn-client.mjs.map +1 -0
  483. package/dist/server-fn.cjs +284 -0
  484. package/dist/server-fn.cjs.map +1 -0
  485. package/dist/server-fn.d.mts +84 -0
  486. package/dist/server-fn.d.ts +84 -0
  487. package/dist/server-fn.mjs +17 -0
  488. package/dist/server-fn.mjs.map +1 -0
  489. package/dist/server-plugins.cjs +235 -0
  490. package/dist/server-plugins.cjs.map +1 -0
  491. package/dist/server-plugins.d.mts +54 -0
  492. package/dist/server-plugins.d.ts +54 -0
  493. package/dist/server-plugins.mjs +18 -0
  494. package/dist/server-plugins.mjs.map +1 -0
  495. package/dist/server-query-client.cjs +792 -0
  496. package/dist/server-query-client.cjs.map +1 -0
  497. package/dist/server-query-client.d.mts +50 -0
  498. package/dist/server-query-client.d.ts +50 -0
  499. package/dist/server-query-client.mjs +23 -0
  500. package/dist/server-query-client.mjs.map +1 -0
  501. package/dist/server-query.cjs +804 -0
  502. package/dist/server-query.cjs.map +1 -0
  503. package/dist/server-query.d.mts +36 -0
  504. package/dist/server-query.d.ts +36 -0
  505. package/dist/server-query.mjs +18 -0
  506. package/dist/server-query.mjs.map +1 -0
  507. package/dist/server.cjs +25739 -0
  508. package/dist/server.cjs.map +1 -0
  509. package/dist/server.d.mts +47 -0
  510. package/dist/server.d.ts +47 -0
  511. package/dist/server.mjs +511 -0
  512. package/dist/server.mjs.map +1 -0
  513. package/dist/storage.cjs +515 -0
  514. package/dist/storage.cjs.map +1 -0
  515. package/dist/storage.d.mts +52 -0
  516. package/dist/storage.d.ts +52 -0
  517. package/dist/storage.mjs +58 -0
  518. package/dist/storage.mjs.map +1 -0
  519. package/dist/testing.cjs +1882 -0
  520. package/dist/testing.cjs.map +1 -0
  521. package/dist/testing.d.mts +100 -0
  522. package/dist/testing.d.ts +100 -0
  523. package/dist/testing.mjs +324 -0
  524. package/dist/testing.mjs.map +1 -0
  525. package/dist/types-BH1lhg5G.d.mts +81 -0
  526. package/dist/types-BH1lhg5G.d.ts +81 -0
  527. package/dist/types-C9N-nk5R.d.mts +53 -0
  528. package/dist/types-C9N-nk5R.d.ts +53 -0
  529. package/dist/types-D1A6-XvH.d.mts +73 -0
  530. package/dist/types-D1A6-XvH.d.ts +73 -0
  531. package/dist/utils-DA1yo54_.d.ts +23 -0
  532. package/dist/utils-DOXXivjL.d.mts +23 -0
  533. package/dist/vite.cjs +22684 -0
  534. package/dist/vite.cjs.map +1 -0
  535. package/dist/vite.d.mts +21 -0
  536. package/dist/vite.d.ts +21 -0
  537. package/dist/vite.mjs +59 -0
  538. package/dist/vite.mjs.map +1 -0
  539. package/dist/workflows.cjs +586 -0
  540. package/dist/workflows.cjs.map +1 -0
  541. package/dist/workflows.d.mts +110 -0
  542. package/dist/workflows.d.ts +110 -0
  543. package/dist/workflows.mjs +32 -0
  544. package/dist/workflows.mjs.map +1 -0
  545. package/package.json +523 -0
  546. package/types/api.d.ts +88 -0
  547. package/types/client.d.ts +1171 -0
  548. package/types/index.d.ts +17 -0
  549. package/types/middleware.d.ts +266 -0
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/markdown.ts
22
+ var markdown_exports = {};
23
+ __export(markdown_exports, {
24
+ createMarkdownMirrorResponse: () => createMarkdownMirrorResponse,
25
+ htmlToMarkdown: () => htmlToMarkdown,
26
+ resolveMarkdownConfig: () => resolveMarkdownConfig,
27
+ resolveMarkdownMirrorTarget: () => resolveMarkdownMirrorTarget
28
+ });
29
+ module.exports = __toCommonJS(markdown_exports);
30
+ function resolveMarkdownConfig(config) {
31
+ if (config === false || config === void 0) {
32
+ return {
33
+ enabled: false,
34
+ expose: [],
35
+ cache: false,
36
+ includeMetadata: true
37
+ };
38
+ }
39
+ if (config === true) {
40
+ return {
41
+ enabled: true,
42
+ expose: true,
43
+ cache: false,
44
+ includeMetadata: true
45
+ };
46
+ }
47
+ const exposeInput = config.expose ?? config.routes ?? [];
48
+ const expose = exposeInput === true ? true : Array.isArray(exposeInput) ? exposeInput.map(normalizeMarkdownRouteInput) : [];
49
+ return {
50
+ enabled: config.enabled !== false && (expose === true || expose.length > 0),
51
+ expose,
52
+ cache: config.cache ?? false,
53
+ includeMetadata: config.includeMetadata ?? true
54
+ };
55
+ }
56
+ __name(resolveMarkdownConfig, "resolveMarkdownConfig");
57
+ function resolveMarkdownMirrorTarget(config, pathname) {
58
+ if (!config?.enabled || !pathname.endsWith(".md")) {
59
+ return null;
60
+ }
61
+ const targetPathname = normalizeMarkdownRoute(pathname.slice(0, -".md".length) || "/");
62
+ const route = findExposedMarkdownRoute(config, targetPathname);
63
+ if (!route && config.expose !== true) {
64
+ return null;
65
+ }
66
+ return {
67
+ pathname: targetPathname,
68
+ route
69
+ };
70
+ }
71
+ __name(resolveMarkdownMirrorTarget, "resolveMarkdownMirrorTarget");
72
+ async function createMarkdownMirrorResponse(options) {
73
+ if (options.request.method !== "GET" && options.request.method !== "HEAD") {
74
+ return null;
75
+ }
76
+ const requestUrl = new URL(options.request.url);
77
+ const target = resolveMarkdownMirrorTarget(options.config, requestUrl.pathname);
78
+ if (!target) {
79
+ return null;
80
+ }
81
+ if (options.routeExists && !options.routeExists(target.pathname)) {
82
+ return null;
83
+ }
84
+ const pageUrl = new URL(options.request.url);
85
+ pageUrl.pathname = target.pathname;
86
+ const headers = new Headers(options.request.headers);
87
+ headers.set("accept", "text/html");
88
+ const pageResponse = await options.renderPage(
89
+ new Request(pageUrl, {
90
+ method: "GET",
91
+ headers
92
+ })
93
+ );
94
+ if (!isHtmlResponse(pageResponse)) {
95
+ return null;
96
+ }
97
+ const html = await pageResponse.text();
98
+ const markdown = htmlToMarkdown(html, {
99
+ title: target.route?.title,
100
+ includeMetadata: options.config?.includeMetadata ?? true,
101
+ sourcePath: target.pathname
102
+ });
103
+ const headersOut = new Headers({
104
+ "Content-Type": "text/markdown; charset=utf-8",
105
+ "X-Farm-Markdown-Route": target.pathname
106
+ });
107
+ const cache = target.route?.cache ?? options.config?.cache ?? false;
108
+ headersOut.set("Cache-Control", createMarkdownCacheHeader(cache));
109
+ return new Response(options.request.method === "HEAD" ? null : markdown, {
110
+ status: pageResponse.status,
111
+ headers: headersOut
112
+ });
113
+ }
114
+ __name(createMarkdownMirrorResponse, "createMarkdownMirrorResponse");
115
+ function htmlToMarkdown(html, options = {}) {
116
+ const title = options.title ?? extractHtmlTitle(html);
117
+ let source = extractHtmlBody(html).replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, "").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi, "").replace(/<!--[\s\S]*?-->/g, "");
118
+ source = source.replace(/<pre\b[^>]*><code\b[^>]*>([\s\S]*?)<\/code><\/pre>/gi, (_, code) => {
119
+ return `
120
+
121
+ \`\`\`
122
+ ${decodeHtml(stripTags(code)).trim()}
123
+ \`\`\`
124
+
125
+ `;
126
+ });
127
+ source = source.replace(/<pre\b[^>]*>([\s\S]*?)<\/pre>/gi, (_, code) => {
128
+ return `
129
+
130
+ \`\`\`
131
+ ${decodeHtml(stripTags(code)).trim()}
132
+ \`\`\`
133
+
134
+ `;
135
+ });
136
+ source = source.replace(/<h([1-6])\b[^>]*>([\s\S]*?)<\/h\1>/gi, (_, level, content) => {
137
+ return `
138
+
139
+ ${"#".repeat(Number(level))} ${toInlineMarkdown(content).trim()}
140
+
141
+ `;
142
+ });
143
+ source = source.replace(/<p\b[^>]*>([\s\S]*?)<\/p>/gi, (_, content) => {
144
+ return `
145
+
146
+ ${toInlineMarkdown(content).trim()}
147
+
148
+ `;
149
+ });
150
+ source = source.replace(/<blockquote\b[^>]*>([\s\S]*?)<\/blockquote>/gi, (_, content) => {
151
+ const quote = htmlToMarkdown(content, { includeMetadata: false }).split("\n").filter((line) => line.trim().length > 0).map((line) => `> ${line}`).join("\n");
152
+ return `
153
+
154
+ ${quote}
155
+
156
+ `;
157
+ });
158
+ source = source.replace(/<li\b[^>]*>([\s\S]*?)<\/li>/gi, (_, content) => {
159
+ return `
160
+ - ${toInlineMarkdown(content).trim()}`;
161
+ });
162
+ source = source.replace(/<\/?(ul|ol|main|section|article|header|footer|nav|aside|div)\b[^>]*>/gi, "\n").replace(/<br\s*\/?>/gi, "\n").replace(/<hr\s*\/?>/gi, "\n\n---\n\n");
163
+ let markdown = stripTags(source).split("\n").map((line) => line.replace(/[ \t]+$/g, "")).join("\n").replace(/\n{3,}/g, "\n\n").trim();
164
+ if (options.includeMetadata !== false) {
165
+ const metadata = [];
166
+ if (title && !markdown.startsWith("# ")) {
167
+ metadata.push(`# ${title}`);
168
+ }
169
+ if (options.sourcePath) {
170
+ metadata.push(`Source: ${options.sourcePath}`);
171
+ }
172
+ if (metadata.length) {
173
+ markdown = `${metadata.join("\n\n")}${markdown ? `
174
+
175
+ ${markdown}` : ""}`;
176
+ }
177
+ }
178
+ return `${markdown}
179
+ `;
180
+ }
181
+ __name(htmlToMarkdown, "htmlToMarkdown");
182
+ function normalizeMarkdownRouteInput(input) {
183
+ if (typeof input === "string") {
184
+ return {
185
+ route: normalizeMarkdownRoute(input)
186
+ };
187
+ }
188
+ return {
189
+ ...input,
190
+ route: normalizeMarkdownRoute(input.route)
191
+ };
192
+ }
193
+ __name(normalizeMarkdownRouteInput, "normalizeMarkdownRouteInput");
194
+ function normalizeMarkdownRoute(route) {
195
+ const withoutMarkdownExtension = route.endsWith(".md") ? route.slice(0, -3) : route;
196
+ const withSlash = withoutMarkdownExtension.startsWith("/") ? withoutMarkdownExtension : `/${withoutMarkdownExtension}`;
197
+ const normalized = withSlash.replace(/\/+/g, "/").replace(/\/$/g, "");
198
+ return normalized === "" || normalized === "/index" ? "/" : normalized;
199
+ }
200
+ __name(normalizeMarkdownRoute, "normalizeMarkdownRoute");
201
+ function findExposedMarkdownRoute(config, pathname) {
202
+ if (config.expose === true) {
203
+ return null;
204
+ }
205
+ return config.expose.find((route) => routeMatches(route.route, pathname)) ?? null;
206
+ }
207
+ __name(findExposedMarkdownRoute, "findExposedMarkdownRoute");
208
+ function routeMatches(pattern, pathname) {
209
+ if (pattern === pathname) {
210
+ return true;
211
+ }
212
+ const escaped = pattern.split("/").map((segment) => {
213
+ if (/^\[\.\.\.[^\]]+\]$/.test(segment)) {
214
+ return ".*";
215
+ }
216
+ if (/^\[[^\]]+\]$/.test(segment)) {
217
+ return "[^/]+";
218
+ }
219
+ return segment.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
220
+ }).join("/");
221
+ return new RegExp(`^${escaped}$`).test(pathname);
222
+ }
223
+ __name(routeMatches, "routeMatches");
224
+ function isHtmlResponse(response) {
225
+ const contentType = response.headers.get("content-type") ?? "";
226
+ return contentType.includes("text/html");
227
+ }
228
+ __name(isHtmlResponse, "isHtmlResponse");
229
+ function createMarkdownCacheHeader(cache) {
230
+ if (cache === false || cache <= 0) {
231
+ return "no-store";
232
+ }
233
+ return `public, max-age=${cache}, s-maxage=${cache}`;
234
+ }
235
+ __name(createMarkdownCacheHeader, "createMarkdownCacheHeader");
236
+ function extractHtmlTitle(html) {
237
+ const match = html.match(/<title\b[^>]*>([\s\S]*?)<\/title>/i);
238
+ return match ? decodeHtml(stripTags(match[1])).trim() : void 0;
239
+ }
240
+ __name(extractHtmlTitle, "extractHtmlTitle");
241
+ function extractHtmlBody(html) {
242
+ const rootMatch = html.match(
243
+ /<div\b[^>]*id=["']root["'][^>]*>([\s\S]*?)<\/div>\s*(?:<script|<\/body>|$)/i
244
+ );
245
+ const bodyMatch = html.match(/<body\b[^>]*>([\s\S]*?)<\/body>/i);
246
+ const body = rootMatch ? rootMatch[1] : bodyMatch ? bodyMatch[1] : html;
247
+ return extractFirstElementContent(body, ["main", "article"]) ?? body;
248
+ }
249
+ __name(extractHtmlBody, "extractHtmlBody");
250
+ function extractFirstElementContent(html, tagNames) {
251
+ for (const tagName of tagNames) {
252
+ const match = html.match(new RegExp(`<${tagName}\\b[^>]*>([\\s\\S]*?)<\\/${tagName}>`, "i"));
253
+ if (match) {
254
+ return match[1];
255
+ }
256
+ }
257
+ return void 0;
258
+ }
259
+ __name(extractFirstElementContent, "extractFirstElementContent");
260
+ function toInlineMarkdown(html) {
261
+ let source = html.replace(/<a\b[^>]*href=["']([^"']+)["'][^>]*>([\s\S]*?)<\/a>/gi, (_, href, text) => {
262
+ const label = toInlineMarkdown(text).trim() || href;
263
+ return `[${label}](${decodeHtml(href)})`;
264
+ }).replace(
265
+ /<img\b[^>]*src=["']([^"']+)["'][^>]*alt=["']([^"']*)["'][^>]*\/?>/gi,
266
+ (_, src, alt) => {
267
+ return `![${decodeHtml(alt)}](${decodeHtml(src)})`;
268
+ }
269
+ ).replace(/<strong\b[^>]*>([\s\S]*?)<\/strong>/gi, (_, content) => {
270
+ return `**${toInlineMarkdown(content).trim()}**`;
271
+ }).replace(/<b\b[^>]*>([\s\S]*?)<\/b>/gi, (_, content) => {
272
+ return `**${toInlineMarkdown(content).trim()}**`;
273
+ }).replace(/<em\b[^>]*>([\s\S]*?)<\/em>/gi, (_, content) => {
274
+ return `_${toInlineMarkdown(content).trim()}_`;
275
+ }).replace(/<i\b[^>]*>([\s\S]*?)<\/i>/gi, (_, content) => {
276
+ return `_${toInlineMarkdown(content).trim()}_`;
277
+ }).replace(/<code\b[^>]*>([\s\S]*?)<\/code>/gi, (_, content) => {
278
+ return `\`${decodeHtml(stripTags(content)).trim()}\``;
279
+ }).replace(/<br\s*\/?>/gi, "\n");
280
+ source = stripTags(source);
281
+ return decodeHtml(source).replace(/\s+/g, " ");
282
+ }
283
+ __name(toInlineMarkdown, "toInlineMarkdown");
284
+ function stripTags(input) {
285
+ return input.replace(/<[^>]+>/g, "");
286
+ }
287
+ __name(stripTags, "stripTags");
288
+ function decodeHtml(input) {
289
+ return input.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(Number.parseInt(code, 16))).replace(/&#(\d+);/g, (_, code) => String.fromCodePoint(Number.parseInt(code, 10)));
290
+ }
291
+ __name(decodeHtml, "decodeHtml");
292
+ // Annotate the CommonJS export names for ESM import in node:
293
+ 0 && (module.exports = {
294
+ createMarkdownMirrorResponse,
295
+ htmlToMarkdown,
296
+ resolveMarkdownConfig,
297
+ resolveMarkdownMirrorTarget
298
+ });
299
+ //# sourceMappingURL=markdown.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/markdown.ts"],"sourcesContent":["export type FarmMarkdownRouteInput =\n | string\n | {\n route: string;\n title?: string;\n cache?: number | false;\n };\n\nexport interface FarmMarkdownUserConfig {\n enabled?: boolean;\n expose?: boolean | FarmMarkdownRouteInput[];\n routes?: FarmMarkdownRouteInput[];\n cache?: number | false;\n includeMetadata?: boolean;\n}\n\nexport interface FarmMarkdownResolvedRoute {\n route: string;\n title?: string;\n cache?: number | false;\n}\n\nexport interface FarmMarkdownResolvedConfig {\n enabled: boolean;\n expose: true | FarmMarkdownResolvedRoute[];\n cache: number | false;\n includeMetadata: boolean;\n}\n\nexport interface FarmMarkdownMirrorTarget {\n pathname: string;\n route: FarmMarkdownResolvedRoute | null;\n}\n\nexport interface CreateMarkdownMirrorResponseOptions {\n request: Request;\n config?: FarmMarkdownResolvedConfig;\n routeExists?: (pathname: string) => boolean;\n renderPage: (request: Request) => Response | Promise<Response>;\n}\n\nexport function resolveMarkdownConfig(\n config: FarmMarkdownUserConfig | boolean | undefined,\n): FarmMarkdownResolvedConfig {\n if (config === false || config === undefined) {\n return {\n enabled: false,\n expose: [],\n cache: false,\n includeMetadata: true,\n };\n }\n\n if (config === true) {\n return {\n enabled: true,\n expose: true,\n cache: false,\n includeMetadata: true,\n };\n }\n\n const exposeInput = config.expose ?? config.routes ?? [];\n const expose =\n exposeInput === true\n ? true\n : Array.isArray(exposeInput)\n ? exposeInput.map(normalizeMarkdownRouteInput)\n : [];\n\n return {\n enabled: config.enabled !== false && (expose === true || expose.length > 0),\n expose,\n cache: config.cache ?? false,\n includeMetadata: config.includeMetadata ?? true,\n };\n}\n\nexport function resolveMarkdownMirrorTarget(\n config: FarmMarkdownResolvedConfig | undefined,\n pathname: string,\n): FarmMarkdownMirrorTarget | null {\n if (!config?.enabled || !pathname.endsWith(\".md\")) {\n return null;\n }\n\n const targetPathname = normalizeMarkdownRoute(pathname.slice(0, -\".md\".length) || \"/\");\n const route = findExposedMarkdownRoute(config, targetPathname);\n if (!route && config.expose !== true) {\n return null;\n }\n\n return {\n pathname: targetPathname,\n route,\n };\n}\n\nexport async function createMarkdownMirrorResponse(\n options: CreateMarkdownMirrorResponseOptions,\n): Promise<Response | null> {\n if (options.request.method !== \"GET\" && options.request.method !== \"HEAD\") {\n return null;\n }\n\n const requestUrl = new URL(options.request.url);\n const target = resolveMarkdownMirrorTarget(options.config, requestUrl.pathname);\n if (!target) {\n return null;\n }\n\n if (options.routeExists && !options.routeExists(target.pathname)) {\n return null;\n }\n\n const pageUrl = new URL(options.request.url);\n pageUrl.pathname = target.pathname;\n const headers = new Headers(options.request.headers);\n headers.set(\"accept\", \"text/html\");\n\n const pageResponse = await options.renderPage(\n new Request(pageUrl, {\n method: \"GET\",\n headers,\n }),\n );\n\n if (!isHtmlResponse(pageResponse)) {\n return null;\n }\n\n const html = await pageResponse.text();\n const markdown = htmlToMarkdown(html, {\n title: target.route?.title,\n includeMetadata: options.config?.includeMetadata ?? true,\n sourcePath: target.pathname,\n });\n const headersOut = new Headers({\n \"Content-Type\": \"text/markdown; charset=utf-8\",\n \"X-Farm-Markdown-Route\": target.pathname,\n });\n const cache = target.route?.cache ?? options.config?.cache ?? false;\n headersOut.set(\"Cache-Control\", createMarkdownCacheHeader(cache));\n\n return new Response(options.request.method === \"HEAD\" ? null : markdown, {\n status: pageResponse.status,\n headers: headersOut,\n });\n}\n\nexport function htmlToMarkdown(\n html: string,\n options: {\n title?: string;\n sourcePath?: string;\n includeMetadata?: boolean;\n } = {},\n): string {\n const title = options.title ?? extractHtmlTitle(html);\n let source = extractHtmlBody(html)\n .replace(/<script\\b[^>]*>[\\s\\S]*?<\\/script>/gi, \"\")\n .replace(/<style\\b[^>]*>[\\s\\S]*?<\\/style>/gi, \"\")\n .replace(/<noscript\\b[^>]*>[\\s\\S]*?<\\/noscript>/gi, \"\")\n .replace(/<!--[\\s\\S]*?-->/g, \"\");\n\n source = source.replace(/<pre\\b[^>]*><code\\b[^>]*>([\\s\\S]*?)<\\/code><\\/pre>/gi, (_, code) => {\n return `\\n\\n\\`\\`\\`\\n${decodeHtml(stripTags(code)).trim()}\\n\\`\\`\\`\\n\\n`;\n });\n source = source.replace(/<pre\\b[^>]*>([\\s\\S]*?)<\\/pre>/gi, (_, code) => {\n return `\\n\\n\\`\\`\\`\\n${decodeHtml(stripTags(code)).trim()}\\n\\`\\`\\`\\n\\n`;\n });\n source = source.replace(/<h([1-6])\\b[^>]*>([\\s\\S]*?)<\\/h\\1>/gi, (_, level, content) => {\n return `\\n\\n${\"#\".repeat(Number(level))} ${toInlineMarkdown(content).trim()}\\n\\n`;\n });\n source = source.replace(/<p\\b[^>]*>([\\s\\S]*?)<\\/p>/gi, (_, content) => {\n return `\\n\\n${toInlineMarkdown(content).trim()}\\n\\n`;\n });\n source = source.replace(/<blockquote\\b[^>]*>([\\s\\S]*?)<\\/blockquote>/gi, (_, content) => {\n const quote = htmlToMarkdown(content, { includeMetadata: false })\n .split(\"\\n\")\n .filter((line) => line.trim().length > 0)\n .map((line) => `> ${line}`)\n .join(\"\\n\");\n return `\\n\\n${quote}\\n\\n`;\n });\n source = source.replace(/<li\\b[^>]*>([\\s\\S]*?)<\\/li>/gi, (_, content) => {\n return `\\n- ${toInlineMarkdown(content).trim()}`;\n });\n source = source\n .replace(/<\\/?(ul|ol|main|section|article|header|footer|nav|aside|div)\\b[^>]*>/gi, \"\\n\")\n .replace(/<br\\s*\\/?>/gi, \"\\n\")\n .replace(/<hr\\s*\\/?>/gi, \"\\n\\n---\\n\\n\");\n\n let markdown = stripTags(source)\n .split(\"\\n\")\n .map((line) => line.replace(/[ \\t]+$/g, \"\"))\n .join(\"\\n\")\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .trim();\n\n if (options.includeMetadata !== false) {\n const metadata: string[] = [];\n if (title && !markdown.startsWith(\"# \")) {\n metadata.push(`# ${title}`);\n }\n if (options.sourcePath) {\n metadata.push(`Source: ${options.sourcePath}`);\n }\n if (metadata.length) {\n markdown = `${metadata.join(\"\\n\\n\")}${markdown ? `\\n\\n${markdown}` : \"\"}`;\n }\n }\n\n return `${markdown}\\n`;\n}\n\nfunction normalizeMarkdownRouteInput(input: FarmMarkdownRouteInput): FarmMarkdownResolvedRoute {\n if (typeof input === \"string\") {\n return {\n route: normalizeMarkdownRoute(input),\n };\n }\n\n return {\n ...input,\n route: normalizeMarkdownRoute(input.route),\n };\n}\n\nfunction normalizeMarkdownRoute(route: string): string {\n const withoutMarkdownExtension = route.endsWith(\".md\") ? route.slice(0, -3) : route;\n const withSlash = withoutMarkdownExtension.startsWith(\"/\")\n ? withoutMarkdownExtension\n : `/${withoutMarkdownExtension}`;\n const normalized = withSlash.replace(/\\/+/g, \"/\").replace(/\\/$/g, \"\");\n return normalized === \"\" || normalized === \"/index\" ? \"/\" : normalized;\n}\n\nfunction findExposedMarkdownRoute(\n config: FarmMarkdownResolvedConfig,\n pathname: string,\n): FarmMarkdownResolvedRoute | null {\n if (config.expose === true) {\n return null;\n }\n\n return config.expose.find((route) => routeMatches(route.route, pathname)) ?? null;\n}\n\nfunction routeMatches(pattern: string, pathname: string): boolean {\n if (pattern === pathname) {\n return true;\n }\n\n const escaped = pattern\n .split(\"/\")\n .map((segment) => {\n if (/^\\[\\.\\.\\.[^\\]]+\\]$/.test(segment)) {\n return \".*\";\n }\n if (/^\\[[^\\]]+\\]$/.test(segment)) {\n return \"[^/]+\";\n }\n return segment.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n })\n .join(\"/\");\n\n return new RegExp(`^${escaped}$`).test(pathname);\n}\n\nfunction isHtmlResponse(response: Response): boolean {\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n return contentType.includes(\"text/html\");\n}\n\nfunction createMarkdownCacheHeader(cache: number | false): string {\n if (cache === false || cache <= 0) {\n return \"no-store\";\n }\n\n return `public, max-age=${cache}, s-maxage=${cache}`;\n}\n\nfunction extractHtmlTitle(html: string): string | undefined {\n const match = html.match(/<title\\b[^>]*>([\\s\\S]*?)<\\/title>/i);\n return match ? decodeHtml(stripTags(match[1])).trim() : undefined;\n}\n\nfunction extractHtmlBody(html: string): string {\n const rootMatch = html.match(\n /<div\\b[^>]*id=[\"']root[\"'][^>]*>([\\s\\S]*?)<\\/div>\\s*(?:<script|<\\/body>|$)/i,\n );\n const bodyMatch = html.match(/<body\\b[^>]*>([\\s\\S]*?)<\\/body>/i);\n const body = rootMatch ? rootMatch[1] : bodyMatch ? bodyMatch[1] : html;\n return extractFirstElementContent(body, [\"main\", \"article\"]) ?? body;\n}\n\nfunction extractFirstElementContent(html: string, tagNames: string[]): string | undefined {\n for (const tagName of tagNames) {\n const match = html.match(new RegExp(`<${tagName}\\\\b[^>]*>([\\\\s\\\\S]*?)<\\\\/${tagName}>`, \"i\"));\n if (match) {\n return match[1];\n }\n }\n\n return undefined;\n}\n\nfunction toInlineMarkdown(html: string): string {\n let source = html\n .replace(/<a\\b[^>]*href=[\"']([^\"']+)[\"'][^>]*>([\\s\\S]*?)<\\/a>/gi, (_, href, text) => {\n const label: string = toInlineMarkdown(text).trim() || href;\n return `[${label}](${decodeHtml(href)})`;\n })\n .replace(\n /<img\\b[^>]*src=[\"']([^\"']+)[\"'][^>]*alt=[\"']([^\"']*)[\"'][^>]*\\/?>/gi,\n (_, src, alt) => {\n return `![${decodeHtml(alt)}](${decodeHtml(src)})`;\n },\n )\n .replace(/<strong\\b[^>]*>([\\s\\S]*?)<\\/strong>/gi, (_, content) => {\n return `**${toInlineMarkdown(content).trim()}**`;\n })\n .replace(/<b\\b[^>]*>([\\s\\S]*?)<\\/b>/gi, (_, content) => {\n return `**${toInlineMarkdown(content).trim()}**`;\n })\n .replace(/<em\\b[^>]*>([\\s\\S]*?)<\\/em>/gi, (_, content) => {\n return `_${toInlineMarkdown(content).trim()}_`;\n })\n .replace(/<i\\b[^>]*>([\\s\\S]*?)<\\/i>/gi, (_, content) => {\n return `_${toInlineMarkdown(content).trim()}_`;\n })\n .replace(/<code\\b[^>]*>([\\s\\S]*?)<\\/code>/gi, (_, content) => {\n return `\\`${decodeHtml(stripTags(content)).trim()}\\``;\n })\n .replace(/<br\\s*\\/?>/gi, \"\\n\");\n\n source = stripTags(source);\n return decodeHtml(source).replace(/\\s+/g, \" \");\n}\n\nfunction stripTags(input: string): string {\n return input.replace(/<[^>]+>/g, \"\");\n}\n\nfunction decodeHtml(input: string): string {\n return input\n .replace(/&nbsp;/g, \" \")\n .replace(/&amp;/g, \"&\")\n .replace(/&lt;/g, \"<\")\n .replace(/&gt;/g, \">\")\n .replace(/&quot;/g, '\"')\n .replace(/&#39;/g, \"'\")\n .replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(Number.parseInt(code, 16)))\n .replace(/&#(\\d+);/g, (_, code) => String.fromCodePoint(Number.parseInt(code, 10)));\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,43 @@
1
+ type FarmMarkdownRouteInput = string | {
2
+ route: string;
3
+ title?: string;
4
+ cache?: number | false;
5
+ };
6
+ interface FarmMarkdownUserConfig {
7
+ enabled?: boolean;
8
+ expose?: boolean | FarmMarkdownRouteInput[];
9
+ routes?: FarmMarkdownRouteInput[];
10
+ cache?: number | false;
11
+ includeMetadata?: boolean;
12
+ }
13
+ interface FarmMarkdownResolvedRoute {
14
+ route: string;
15
+ title?: string;
16
+ cache?: number | false;
17
+ }
18
+ interface FarmMarkdownResolvedConfig {
19
+ enabled: boolean;
20
+ expose: true | FarmMarkdownResolvedRoute[];
21
+ cache: number | false;
22
+ includeMetadata: boolean;
23
+ }
24
+ interface FarmMarkdownMirrorTarget {
25
+ pathname: string;
26
+ route: FarmMarkdownResolvedRoute | null;
27
+ }
28
+ interface CreateMarkdownMirrorResponseOptions {
29
+ request: Request;
30
+ config?: FarmMarkdownResolvedConfig;
31
+ routeExists?: (pathname: string) => boolean;
32
+ renderPage: (request: Request) => Response | Promise<Response>;
33
+ }
34
+ declare function resolveMarkdownConfig(config: FarmMarkdownUserConfig | boolean | undefined): FarmMarkdownResolvedConfig;
35
+ declare function resolveMarkdownMirrorTarget(config: FarmMarkdownResolvedConfig | undefined, pathname: string): FarmMarkdownMirrorTarget | null;
36
+ declare function createMarkdownMirrorResponse(options: CreateMarkdownMirrorResponseOptions): Promise<Response | null>;
37
+ declare function htmlToMarkdown(html: string, options?: {
38
+ title?: string;
39
+ sourcePath?: string;
40
+ includeMetadata?: boolean;
41
+ }): string;
42
+
43
+ export { type CreateMarkdownMirrorResponseOptions, type FarmMarkdownMirrorTarget, type FarmMarkdownResolvedConfig, type FarmMarkdownResolvedRoute, type FarmMarkdownRouteInput, type FarmMarkdownUserConfig, createMarkdownMirrorResponse, htmlToMarkdown, resolveMarkdownConfig, resolveMarkdownMirrorTarget };
@@ -0,0 +1,43 @@
1
+ type FarmMarkdownRouteInput = string | {
2
+ route: string;
3
+ title?: string;
4
+ cache?: number | false;
5
+ };
6
+ interface FarmMarkdownUserConfig {
7
+ enabled?: boolean;
8
+ expose?: boolean | FarmMarkdownRouteInput[];
9
+ routes?: FarmMarkdownRouteInput[];
10
+ cache?: number | false;
11
+ includeMetadata?: boolean;
12
+ }
13
+ interface FarmMarkdownResolvedRoute {
14
+ route: string;
15
+ title?: string;
16
+ cache?: number | false;
17
+ }
18
+ interface FarmMarkdownResolvedConfig {
19
+ enabled: boolean;
20
+ expose: true | FarmMarkdownResolvedRoute[];
21
+ cache: number | false;
22
+ includeMetadata: boolean;
23
+ }
24
+ interface FarmMarkdownMirrorTarget {
25
+ pathname: string;
26
+ route: FarmMarkdownResolvedRoute | null;
27
+ }
28
+ interface CreateMarkdownMirrorResponseOptions {
29
+ request: Request;
30
+ config?: FarmMarkdownResolvedConfig;
31
+ routeExists?: (pathname: string) => boolean;
32
+ renderPage: (request: Request) => Response | Promise<Response>;
33
+ }
34
+ declare function resolveMarkdownConfig(config: FarmMarkdownUserConfig | boolean | undefined): FarmMarkdownResolvedConfig;
35
+ declare function resolveMarkdownMirrorTarget(config: FarmMarkdownResolvedConfig | undefined, pathname: string): FarmMarkdownMirrorTarget | null;
36
+ declare function createMarkdownMirrorResponse(options: CreateMarkdownMirrorResponseOptions): Promise<Response | null>;
37
+ declare function htmlToMarkdown(html: string, options?: {
38
+ title?: string;
39
+ sourcePath?: string;
40
+ includeMetadata?: boolean;
41
+ }): string;
42
+
43
+ export { type CreateMarkdownMirrorResponseOptions, type FarmMarkdownMirrorTarget, type FarmMarkdownResolvedConfig, type FarmMarkdownResolvedRoute, type FarmMarkdownRouteInput, type FarmMarkdownUserConfig, createMarkdownMirrorResponse, htmlToMarkdown, resolveMarkdownConfig, resolveMarkdownMirrorTarget };
@@ -0,0 +1,14 @@
1
+ import {
2
+ createMarkdownMirrorResponse,
3
+ htmlToMarkdown,
4
+ resolveMarkdownConfig,
5
+ resolveMarkdownMirrorTarget
6
+ } from "./chunk-LLC7BNXW.mjs";
7
+ import "./chunk-CGILA3WO.mjs";
8
+ export {
9
+ createMarkdownMirrorResponse,
10
+ htmlToMarkdown,
11
+ resolveMarkdownConfig,
12
+ resolveMarkdownMirrorTarget
13
+ };
14
+ //# sourceMappingURL=markdown.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,22 @@
1
+ import { s as Metadata } from './client-plugins-g4bzuCmo.mjs';
2
+
3
+ type MetadataImageKind = "opengraph" | "twitter";
4
+ interface FarmMetadataImageReference {
5
+ kind: MetadataImageKind;
6
+ href: string;
7
+ alt?: string;
8
+ width?: number;
9
+ height?: number;
10
+ contentType?: string;
11
+ }
12
+ interface RenderedMetadataHead {
13
+ title: string;
14
+ tags: string;
15
+ hasFavicon: boolean;
16
+ }
17
+ type MetadataRecord = Metadata & Record<string, any>;
18
+ declare function mergeMetadata(base: MetadataRecord | undefined, next: MetadataRecord | undefined): MetadataRecord;
19
+ declare function addMetadataImageReference(metadata: MetadataRecord, reference: FarmMetadataImageReference): MetadataRecord;
20
+ declare function renderMetadataHead(metadata: MetadataRecord | undefined): RenderedMetadataHead;
21
+
22
+ export { type MetadataImageKind as M, addMetadataImageReference as a, mergeMetadata as m, renderMetadataHead as r };
@@ -0,0 +1,22 @@
1
+ import { s as Metadata } from './client-plugins-BZnpeTGA.js';
2
+
3
+ type MetadataImageKind = "opengraph" | "twitter";
4
+ interface FarmMetadataImageReference {
5
+ kind: MetadataImageKind;
6
+ href: string;
7
+ alt?: string;
8
+ width?: number;
9
+ height?: number;
10
+ contentType?: string;
11
+ }
12
+ interface RenderedMetadataHead {
13
+ title: string;
14
+ tags: string;
15
+ hasFavicon: boolean;
16
+ }
17
+ type MetadataRecord = Metadata & Record<string, any>;
18
+ declare function mergeMetadata(base: MetadataRecord | undefined, next: MetadataRecord | undefined): MetadataRecord;
19
+ declare function addMetadataImageReference(metadata: MetadataRecord, reference: FarmMetadataImageReference): MetadataRecord;
20
+ declare function renderMetadataHead(metadata: MetadataRecord | undefined): RenderedMetadataHead;
21
+
22
+ export { type MetadataImageKind as M, addMetadataImageReference as a, mergeMetadata as m, renderMetadataHead as r };