@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.
- package/LICENSE +22 -0
- package/README.md +11 -0
- package/dist/after.cjs +227 -0
- package/dist/after.cjs.map +1 -0
- package/dist/after.d.mts +25 -0
- package/dist/after.d.ts +25 -0
- package/dist/after.mjs +14 -0
- package/dist/after.mjs.map +1 -0
- package/dist/agent-runtime.cjs +2379 -0
- package/dist/agent-runtime.cjs.map +1 -0
- package/dist/agent-runtime.d.mts +93 -0
- package/dist/agent-runtime.d.ts +93 -0
- package/dist/agent-runtime.mjs +479 -0
- package/dist/agent-runtime.mjs.map +1 -0
- package/dist/api/route-manager.cjs +1196 -0
- package/dist/api/route-manager.cjs.map +1 -0
- package/dist/api/route-manager.d.mts +64 -0
- package/dist/api/route-manager.d.ts +64 -0
- package/dist/api/route-manager.mjs +34 -0
- package/dist/api/route-manager.mjs.map +1 -0
- package/dist/api/runtime.cjs +272 -0
- package/dist/api/runtime.cjs.map +1 -0
- package/dist/api/runtime.d.mts +16 -0
- package/dist/api/runtime.d.ts +16 -0
- package/dist/api/runtime.mjs +16 -0
- package/dist/api/runtime.mjs.map +1 -0
- package/dist/api.cjs +3199 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.mts +190 -0
- package/dist/api.d.ts +190 -0
- package/dist/api.mjs +63 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app-BiX4qb-d.d.mts +265 -0
- package/dist/app-CFRNJXP1.d.ts +265 -0
- package/dist/app-markdown.cjs +220 -0
- package/dist/app-markdown.cjs.map +1 -0
- package/dist/app-markdown.d.mts +21 -0
- package/dist/app-markdown.d.ts +21 -0
- package/dist/app-markdown.mjs +26 -0
- package/dist/app-markdown.mjs.map +1 -0
- package/dist/cache.cjs +543 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.mts +78 -0
- package/dist/cache.d.ts +78 -0
- package/dist/cache.mjs +38 -0
- package/dist/cache.mjs.map +1 -0
- package/dist/chunk-25D7G34K.mjs +142 -0
- package/dist/chunk-25D7G34K.mjs.map +1 -0
- package/dist/chunk-3QJO55ZF.mjs +3548 -0
- package/dist/chunk-3QJO55ZF.mjs.map +1 -0
- package/dist/chunk-3XNTL3FQ.mjs +452 -0
- package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
- package/dist/chunk-44ZCFSKE.mjs +84 -0
- package/dist/chunk-44ZCFSKE.mjs.map +1 -0
- package/dist/chunk-4PTK6KT4.mjs +364 -0
- package/dist/chunk-4PTK6KT4.mjs.map +1 -0
- package/dist/chunk-4S3ORGFA.mjs +44 -0
- package/dist/chunk-4S3ORGFA.mjs.map +1 -0
- package/dist/chunk-5BY76U2M.mjs +1 -0
- package/dist/chunk-5BY76U2M.mjs.map +1 -0
- package/dist/chunk-5ZGPRGWV.mjs +136 -0
- package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
- package/dist/chunk-6XDUHOEM.mjs +157 -0
- package/dist/chunk-6XDUHOEM.mjs.map +1 -0
- package/dist/chunk-74YTBPTY.mjs +450 -0
- package/dist/chunk-74YTBPTY.mjs.map +1 -0
- package/dist/chunk-7HO6AEOP.mjs +74 -0
- package/dist/chunk-7HO6AEOP.mjs.map +1 -0
- package/dist/chunk-7MABZJIM.mjs +29 -0
- package/dist/chunk-7MABZJIM.mjs.map +1 -0
- package/dist/chunk-7ZY5AIJO.mjs +161 -0
- package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
- package/dist/chunk-AGS7UJ52.mjs +446 -0
- package/dist/chunk-AGS7UJ52.mjs.map +1 -0
- package/dist/chunk-AZ7YUVNR.mjs +65 -0
- package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
- package/dist/chunk-B232I2GP.mjs +163 -0
- package/dist/chunk-B232I2GP.mjs.map +1 -0
- package/dist/chunk-B6N4ZB2H.mjs +718 -0
- package/dist/chunk-B6N4ZB2H.mjs.map +1 -0
- package/dist/chunk-BHG3LVHH.mjs +176 -0
- package/dist/chunk-BHG3LVHH.mjs.map +1 -0
- package/dist/chunk-C3DLZMBU.mjs +597 -0
- package/dist/chunk-C3DLZMBU.mjs.map +1 -0
- package/dist/chunk-CGILA3WO.mjs +14 -0
- package/dist/chunk-CGILA3WO.mjs.map +1 -0
- package/dist/chunk-CHFHNEMO.mjs +7088 -0
- package/dist/chunk-CHFHNEMO.mjs.map +1 -0
- package/dist/chunk-E2MPIBRE.mjs +149 -0
- package/dist/chunk-E2MPIBRE.mjs.map +1 -0
- package/dist/chunk-E6EPN5BT.mjs +203 -0
- package/dist/chunk-E6EPN5BT.mjs.map +1 -0
- package/dist/chunk-EVGBEZDF.mjs +215 -0
- package/dist/chunk-EVGBEZDF.mjs.map +1 -0
- package/dist/chunk-FQYDHKKU.mjs +128 -0
- package/dist/chunk-FQYDHKKU.mjs.map +1 -0
- package/dist/chunk-G3B5BRDY.mjs +5763 -0
- package/dist/chunk-G3B5BRDY.mjs.map +1 -0
- package/dist/chunk-GN72QAIH.mjs +146 -0
- package/dist/chunk-GN72QAIH.mjs.map +1 -0
- package/dist/chunk-GS6K5OCM.mjs +407 -0
- package/dist/chunk-GS6K5OCM.mjs.map +1 -0
- package/dist/chunk-GY2STC2S.mjs +180 -0
- package/dist/chunk-GY2STC2S.mjs.map +1 -0
- package/dist/chunk-GZP5W4K3.mjs +158 -0
- package/dist/chunk-GZP5W4K3.mjs.map +1 -0
- package/dist/chunk-H2FA2SBS.mjs +51 -0
- package/dist/chunk-H2FA2SBS.mjs.map +1 -0
- package/dist/chunk-HXP3ZSPC.mjs +211 -0
- package/dist/chunk-HXP3ZSPC.mjs.map +1 -0
- package/dist/chunk-ITN462YM.mjs +98 -0
- package/dist/chunk-ITN462YM.mjs.map +1 -0
- package/dist/chunk-J23HNLFY.mjs +72 -0
- package/dist/chunk-J23HNLFY.mjs.map +1 -0
- package/dist/chunk-J4FNJ5IU.mjs +179 -0
- package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
- package/dist/chunk-JK25YEN6.mjs +219 -0
- package/dist/chunk-JK25YEN6.mjs.map +1 -0
- package/dist/chunk-JLWMCADZ.mjs +204 -0
- package/dist/chunk-JLWMCADZ.mjs.map +1 -0
- package/dist/chunk-JN3UU635.mjs +622 -0
- package/dist/chunk-JN3UU635.mjs.map +1 -0
- package/dist/chunk-K4667E2Q.mjs +1916 -0
- package/dist/chunk-K4667E2Q.mjs.map +1 -0
- package/dist/chunk-LGHEOHBU.mjs +218 -0
- package/dist/chunk-LGHEOHBU.mjs.map +1 -0
- package/dist/chunk-LLC7BNXW.mjs +275 -0
- package/dist/chunk-LLC7BNXW.mjs.map +1 -0
- package/dist/chunk-LM2YNO4U.mjs +24 -0
- package/dist/chunk-LM2YNO4U.mjs.map +1 -0
- package/dist/chunk-NNLCAVB6.mjs +391 -0
- package/dist/chunk-NNLCAVB6.mjs.map +1 -0
- package/dist/chunk-O3HADRW6.mjs +639 -0
- package/dist/chunk-O3HADRW6.mjs.map +1 -0
- package/dist/chunk-OYXO65LI.mjs +119 -0
- package/dist/chunk-OYXO65LI.mjs.map +1 -0
- package/dist/chunk-P7QDS5AT.mjs +191 -0
- package/dist/chunk-P7QDS5AT.mjs.map +1 -0
- package/dist/chunk-PRNYWD7K.mjs +599 -0
- package/dist/chunk-PRNYWD7K.mjs.map +1 -0
- package/dist/chunk-QF4PHCMA.mjs +422 -0
- package/dist/chunk-QF4PHCMA.mjs.map +1 -0
- package/dist/chunk-QFQRHRZS.mjs +1224 -0
- package/dist/chunk-QFQRHRZS.mjs.map +1 -0
- package/dist/chunk-QGOHVJ6J.mjs +63 -0
- package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
- package/dist/chunk-QKVUNGAH.mjs +39 -0
- package/dist/chunk-QKVUNGAH.mjs.map +1 -0
- package/dist/chunk-QM6VV26B.mjs +149 -0
- package/dist/chunk-QM6VV26B.mjs.map +1 -0
- package/dist/chunk-RHIFZZUI.mjs +69 -0
- package/dist/chunk-RHIFZZUI.mjs.map +1 -0
- package/dist/chunk-RKI6TN3A.mjs +49 -0
- package/dist/chunk-RKI6TN3A.mjs.map +1 -0
- package/dist/chunk-RSKVYESE.mjs +187 -0
- package/dist/chunk-RSKVYESE.mjs.map +1 -0
- package/dist/chunk-S2XHZS7W.mjs +180 -0
- package/dist/chunk-S2XHZS7W.mjs.map +1 -0
- package/dist/chunk-SCFX4UTD.mjs +28 -0
- package/dist/chunk-SCFX4UTD.mjs.map +1 -0
- package/dist/chunk-SL6HTIOK.mjs +66 -0
- package/dist/chunk-SL6HTIOK.mjs.map +1 -0
- package/dist/chunk-SOU3Q3ZA.mjs +173 -0
- package/dist/chunk-SOU3Q3ZA.mjs.map +1 -0
- package/dist/chunk-SPBBQLXI.mjs +207 -0
- package/dist/chunk-SPBBQLXI.mjs.map +1 -0
- package/dist/chunk-SXZTEK3V.mjs +396 -0
- package/dist/chunk-SXZTEK3V.mjs.map +1 -0
- package/dist/chunk-T4QJQK76.mjs +459 -0
- package/dist/chunk-T4QJQK76.mjs.map +1 -0
- package/dist/chunk-TRORP7E4.mjs +41 -0
- package/dist/chunk-TRORP7E4.mjs.map +1 -0
- package/dist/chunk-TU4YJICB.mjs +728 -0
- package/dist/chunk-TU4YJICB.mjs.map +1 -0
- package/dist/chunk-TXCFGOHW.mjs +42 -0
- package/dist/chunk-TXCFGOHW.mjs.map +1 -0
- package/dist/chunk-UHE2TTLK.mjs +466 -0
- package/dist/chunk-UHE2TTLK.mjs.map +1 -0
- package/dist/chunk-UREJA4GZ.mjs +364 -0
- package/dist/chunk-UREJA4GZ.mjs.map +1 -0
- package/dist/chunk-USWZZUEH.mjs +25 -0
- package/dist/chunk-USWZZUEH.mjs.map +1 -0
- package/dist/chunk-UVCIEUJC.mjs +16 -0
- package/dist/chunk-UVCIEUJC.mjs.map +1 -0
- package/dist/chunk-V6WE6JSZ.mjs +352 -0
- package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
- package/dist/chunk-V7RBCSDJ.mjs +170 -0
- package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
- package/dist/chunk-VCANOYFI.mjs +588 -0
- package/dist/chunk-VCANOYFI.mjs.map +1 -0
- package/dist/chunk-WZ5QFROO.mjs +23 -0
- package/dist/chunk-WZ5QFROO.mjs.map +1 -0
- package/dist/chunk-Y2OJJD7R.mjs +543 -0
- package/dist/chunk-Y2OJJD7R.mjs.map +1 -0
- package/dist/chunk-Y7A27276.mjs +538 -0
- package/dist/chunk-Y7A27276.mjs.map +1 -0
- package/dist/chunk-YHU7SS6L.mjs +365 -0
- package/dist/chunk-YHU7SS6L.mjs.map +1 -0
- package/dist/chunk-ZBE6MLHL.mjs +230 -0
- package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
- package/dist/chunk-ZJQNATYV.mjs +299 -0
- package/dist/chunk-ZJQNATYV.mjs.map +1 -0
- package/dist/client-D_yUjVhe.d.mts +402 -0
- package/dist/client-Dkc03WP8.d.ts +402 -0
- package/dist/client-cache-CIlyBlmx.d.ts +6 -0
- package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
- package/dist/client-plugins-BZnpeTGA.d.ts +1848 -0
- package/dist/client-plugins-g4bzuCmo.d.mts +1848 -0
- package/dist/client-plugins.cjs +415 -0
- package/dist/client-plugins.cjs.map +1 -0
- package/dist/client-plugins.d.mts +21 -0
- package/dist/client-plugins.d.ts +21 -0
- package/dist/client-plugins.mjs +10 -0
- package/dist/client-plugins.mjs.map +1 -0
- package/dist/client.cjs +4571 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.mts +329 -0
- package/dist/client.d.ts +329 -0
- package/dist/client.mjs +103 -0
- package/dist/client.mjs.map +1 -0
- package/dist/config.cjs +38 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.mts +28 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.mjs +10 -0
- package/dist/config.mjs.map +1 -0
- package/dist/cron.cjs +406 -0
- package/dist/cron.cjs.map +1 -0
- package/dist/cron.d.mts +78 -0
- package/dist/cron.d.ts +78 -0
- package/dist/cron.mjs +30 -0
- package/dist/cron.mjs.map +1 -0
- package/dist/deferred.cjs +438 -0
- package/dist/deferred.cjs.map +1 -0
- package/dist/deferred.d.mts +42 -0
- package/dist/deferred.d.ts +42 -0
- package/dist/deferred.mjs +28 -0
- package/dist/deferred.mjs.map +1 -0
- package/dist/deployment.cjs +199 -0
- package/dist/deployment.cjs.map +1 -0
- package/dist/deployment.d.mts +34 -0
- package/dist/deployment.d.ts +34 -0
- package/dist/deployment.mjs +38 -0
- package/dist/deployment.mjs.map +1 -0
- package/dist/devtools-AE4RVXCM.mjs +370 -0
- package/dist/devtools-AE4RVXCM.mjs.map +1 -0
- package/dist/devtools-client-6WPY2AQU.mjs +225 -0
- package/dist/devtools-client-6WPY2AQU.mjs.map +1 -0
- package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
- package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
- package/dist/docs.cjs +5541 -0
- package/dist/docs.cjs.map +1 -0
- package/dist/docs.d.mts +69 -0
- package/dist/docs.d.ts +69 -0
- package/dist/docs.mjs +46 -0
- package/dist/docs.mjs.map +1 -0
- package/dist/env-types.cjs +223 -0
- package/dist/env-types.cjs.map +1 -0
- package/dist/env-types.d.mts +11 -0
- package/dist/env-types.d.ts +11 -0
- package/dist/env-types.mjs +9 -0
- package/dist/env-types.mjs.map +1 -0
- package/dist/env.cjs +215 -0
- package/dist/env.cjs.map +1 -0
- package/dist/env.d.mts +45 -0
- package/dist/env.d.ts +45 -0
- package/dist/env.mjs +22 -0
- package/dist/env.mjs.map +1 -0
- package/dist/environment/vite.cjs +374 -0
- package/dist/environment/vite.cjs.map +1 -0
- package/dist/environment/vite.d.mts +22 -0
- package/dist/environment/vite.d.ts +22 -0
- package/dist/environment/vite.mjs +10 -0
- package/dist/environment/vite.mjs.map +1 -0
- package/dist/environment.cjs +96 -0
- package/dist/environment.cjs.map +1 -0
- package/dist/environment.d.mts +18 -0
- package/dist/environment.d.ts +18 -0
- package/dist/environment.mjs +14 -0
- package/dist/environment.mjs.map +1 -0
- package/dist/headers.cjs +126 -0
- package/dist/headers.cjs.map +1 -0
- package/dist/headers.d.mts +22 -0
- package/dist/headers.d.ts +22 -0
- package/dist/headers.mjs +12 -0
- package/dist/headers.mjs.map +1 -0
- package/dist/i18n/client.cjs +283 -0
- package/dist/i18n/client.cjs.map +1 -0
- package/dist/i18n/client.d.mts +32 -0
- package/dist/i18n/client.d.ts +32 -0
- package/dist/i18n/client.mjs +121 -0
- package/dist/i18n/client.mjs.map +1 -0
- package/dist/i18n/index.cjs +130 -0
- package/dist/i18n/index.cjs.map +1 -0
- package/dist/i18n/index.d.mts +20 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/index.mjs +22 -0
- package/dist/i18n/index.mjs.map +1 -0
- package/dist/i18n/server.cjs +637 -0
- package/dist/i18n/server.cjs.map +1 -0
- package/dist/i18n/server.d.mts +30 -0
- package/dist/i18n/server.d.ts +30 -0
- package/dist/i18n/server.mjs +32 -0
- package/dist/i18n/server.mjs.map +1 -0
- package/dist/image/server.cjs +477 -0
- package/dist/image/server.cjs.map +1 -0
- package/dist/image/server.d.mts +37 -0
- package/dist/image/server.d.ts +37 -0
- package/dist/image/server.mjs +16 -0
- package/dist/image/server.mjs.map +1 -0
- package/dist/image/sharp.cjs +135 -0
- package/dist/image/sharp.cjs.map +1 -0
- package/dist/image/sharp.d.mts +7 -0
- package/dist/image/sharp.d.ts +7 -0
- package/dist/image/sharp.mjs +75 -0
- package/dist/image/sharp.mjs.map +1 -0
- package/dist/image-config-Duob7wER.d.mts +50 -0
- package/dist/image-config-Duob7wER.d.ts +50 -0
- package/dist/image.cjs +209 -0
- package/dist/image.cjs.map +1 -0
- package/dist/image.d.mts +39 -0
- package/dist/image.d.ts +39 -0
- package/dist/image.mjs +165 -0
- package/dist/image.mjs.map +1 -0
- package/dist/index.cjs +39433 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +451 -0
- package/dist/index.d.ts +451 -0
- package/dist/index.mjs +930 -0
- package/dist/index.mjs.map +1 -0
- package/dist/integration-api-CHT2OKAf.d.mts +93 -0
- package/dist/integration-api-CHT2OKAf.d.ts +93 -0
- package/dist/integration-orm-GQLGU66X.mjs +13 -0
- package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
- package/dist/integrations.cjs +2820 -0
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.d.mts +21 -0
- package/dist/integrations.d.ts +21 -0
- package/dist/integrations.mjs +51 -0
- package/dist/integrations.mjs.map +1 -0
- package/dist/internal/build-runtime.cjs +31340 -0
- package/dist/internal/build-runtime.cjs.map +1 -0
- package/dist/internal/build-runtime.d.mts +38 -0
- package/dist/internal/build-runtime.d.ts +38 -0
- package/dist/internal/build-runtime.mjs +73 -0
- package/dist/internal/build-runtime.mjs.map +1 -0
- package/dist/internal/client-runtime.cjs +579 -0
- package/dist/internal/client-runtime.cjs.map +1 -0
- package/dist/internal/client-runtime.d.mts +2 -0
- package/dist/internal/client-runtime.d.ts +2 -0
- package/dist/internal/client-runtime.mjs +12 -0
- package/dist/internal/client-runtime.mjs.map +1 -0
- package/dist/internal/config-runtime.cjs +4172 -0
- package/dist/internal/config-runtime.cjs.map +1 -0
- package/dist/internal/config-runtime.d.mts +38 -0
- package/dist/internal/config-runtime.d.ts +38 -0
- package/dist/internal/config-runtime.mjs +38 -0
- package/dist/internal/config-runtime.mjs.map +1 -0
- package/dist/internal/production-node-env.cjs +65 -0
- package/dist/internal/production-node-env.cjs.map +1 -0
- package/dist/internal/production-node-env.d.mts +12 -0
- package/dist/internal/production-node-env.d.ts +12 -0
- package/dist/internal/production-node-env.mjs +8 -0
- package/dist/internal/production-node-env.mjs.map +1 -0
- package/dist/internal/production-runtime.cjs +1896 -0
- package/dist/internal/production-runtime.cjs.map +1 -0
- package/dist/internal/production-runtime.d.mts +39 -0
- package/dist/internal/production-runtime.d.ts +39 -0
- package/dist/internal/production-runtime.mjs +79 -0
- package/dist/internal/production-runtime.mjs.map +1 -0
- package/dist/layers-VWVDTPUZ.mjs +16 -0
- package/dist/layers-VWVDTPUZ.mjs.map +1 -0
- package/dist/manager-THKFTOFE.mjs +10 -0
- package/dist/manager-THKFTOFE.mjs.map +1 -0
- package/dist/markdown.cjs +299 -0
- package/dist/markdown.cjs.map +1 -0
- package/dist/markdown.d.mts +43 -0
- package/dist/markdown.d.ts +43 -0
- package/dist/markdown.mjs +14 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/metadata-C9NZxMDW.d.mts +22 -0
- package/dist/metadata-DAXRaOHx.d.ts +22 -0
- package/dist/middleware.cjs +2148 -0
- package/dist/middleware.cjs.map +1 -0
- package/dist/middleware.d.mts +163 -0
- package/dist/middleware.d.ts +163 -0
- package/dist/middleware.mjs +49 -0
- package/dist/middleware.mjs.map +1 -0
- package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
- package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
- package/dist/navigation.cjs +1304 -0
- package/dist/navigation.cjs.map +1 -0
- package/dist/navigation.d.mts +14 -0
- package/dist/navigation.d.ts +14 -0
- package/dist/navigation.mjs +33 -0
- package/dist/navigation.mjs.map +1 -0
- package/dist/nitro-KME62MWG.mjs +691 -0
- package/dist/nitro-KME62MWG.mjs.map +1 -0
- package/dist/observability.cjs +186 -0
- package/dist/observability.cjs.map +1 -0
- package/dist/observability.d.mts +335 -0
- package/dist/observability.d.ts +335 -0
- package/dist/observability.mjs +16 -0
- package/dist/observability.mjs.map +1 -0
- package/dist/params-BALtrRim.d.ts +15 -0
- package/dist/params-ry-lxqmy.d.mts +15 -0
- package/dist/plugin-BJDf43dc.d.mts +165 -0
- package/dist/plugin-BJDf43dc.d.ts +165 -0
- package/dist/plugin.cjs +22285 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.mts +21 -0
- package/dist/plugin.d.ts +21 -0
- package/dist/plugin.mjs +60 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/production-runtime-C_B79w2P.d.mts +28 -0
- package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
- package/dist/production-runtime-DRkCHUvJ.d.ts +79 -0
- package/dist/production-runtime-flrjp_nC.d.mts +79 -0
- package/dist/query/client.cjs +560 -0
- package/dist/query/client.cjs.map +1 -0
- package/dist/query/client.d.mts +61 -0
- package/dist/query/client.d.ts +61 -0
- package/dist/query/client.mjs +364 -0
- package/dist/query/client.mjs.map +1 -0
- package/dist/query/index.cjs +226 -0
- package/dist/query/index.cjs.map +1 -0
- package/dist/query/index.d.mts +90 -0
- package/dist/query/index.d.ts +90 -0
- package/dist/query/index.mjs +31 -0
- package/dist/query/index.mjs.map +1 -0
- package/dist/query/parsers.cjs +178 -0
- package/dist/query/parsers.cjs.map +1 -0
- package/dist/query/parsers.d.mts +25 -0
- package/dist/query/parsers.d.ts +25 -0
- package/dist/query/parsers.mjs +24 -0
- package/dist/query/parsers.mjs.map +1 -0
- package/dist/query/server.cjs +301 -0
- package/dist/query/server.cjs.map +1 -0
- package/dist/query/server.d.mts +55 -0
- package/dist/query/server.d.ts +55 -0
- package/dist/query/server.mjs +105 -0
- package/dist/query/server.mjs.map +1 -0
- package/dist/request-BrFBuc8G.d.mts +6 -0
- package/dist/request-BslSZIRz.d.ts +6 -0
- package/dist/request.cjs +71 -0
- package/dist/request.cjs.map +1 -0
- package/dist/request.d.mts +2 -0
- package/dist/request.d.ts +2 -0
- package/dist/request.mjs +9 -0
- package/dist/request.mjs.map +1 -0
- package/dist/resolver-C6iecsDV.d.ts +14 -0
- package/dist/resolver-DlOPpjkB.d.mts +14 -0
- package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
- package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
- package/dist/router.cjs +254 -0
- package/dist/router.cjs.map +1 -0
- package/dist/router.d.mts +36 -0
- package/dist/router.d.ts +36 -0
- package/dist/router.mjs +14 -0
- package/dist/router.mjs.map +1 -0
- package/dist/routes.cjs +1213 -0
- package/dist/routes.cjs.map +1 -0
- package/dist/routes.d.mts +224 -0
- package/dist/routes.d.ts +224 -0
- package/dist/routes.mjs +52 -0
- package/dist/routes.mjs.map +1 -0
- package/dist/runtime-B6GvwDS1.d.ts +27 -0
- package/dist/runtime-DeAAZ6gO.d.mts +27 -0
- package/dist/search-client-6OXIBNYQ.mjs +14 -0
- package/dist/search-client-6OXIBNYQ.mjs.map +1 -0
- package/dist/server-action-security.cjs +492 -0
- package/dist/server-action-security.cjs.map +1 -0
- package/dist/server-action-security.d.mts +42 -0
- package/dist/server-action-security.d.ts +42 -0
- package/dist/server-action-security.mjs +29 -0
- package/dist/server-action-security.mjs.map +1 -0
- package/dist/server-fn-client.cjs +180 -0
- package/dist/server-fn-client.cjs.map +1 -0
- package/dist/server-fn-client.d.mts +31 -0
- package/dist/server-fn-client.d.ts +31 -0
- package/dist/server-fn-client.mjs +9 -0
- package/dist/server-fn-client.mjs.map +1 -0
- package/dist/server-fn.cjs +284 -0
- package/dist/server-fn.cjs.map +1 -0
- package/dist/server-fn.d.mts +84 -0
- package/dist/server-fn.d.ts +84 -0
- package/dist/server-fn.mjs +17 -0
- package/dist/server-fn.mjs.map +1 -0
- package/dist/server-plugins.cjs +235 -0
- package/dist/server-plugins.cjs.map +1 -0
- package/dist/server-plugins.d.mts +54 -0
- package/dist/server-plugins.d.ts +54 -0
- package/dist/server-plugins.mjs +18 -0
- package/dist/server-plugins.mjs.map +1 -0
- package/dist/server-query-client.cjs +792 -0
- package/dist/server-query-client.cjs.map +1 -0
- package/dist/server-query-client.d.mts +50 -0
- package/dist/server-query-client.d.ts +50 -0
- package/dist/server-query-client.mjs +23 -0
- package/dist/server-query-client.mjs.map +1 -0
- package/dist/server-query.cjs +804 -0
- package/dist/server-query.cjs.map +1 -0
- package/dist/server-query.d.mts +36 -0
- package/dist/server-query.d.ts +36 -0
- package/dist/server-query.mjs +18 -0
- package/dist/server-query.mjs.map +1 -0
- package/dist/server.cjs +25739 -0
- package/dist/server.cjs.map +1 -0
- package/dist/server.d.mts +47 -0
- package/dist/server.d.ts +47 -0
- package/dist/server.mjs +511 -0
- package/dist/server.mjs.map +1 -0
- package/dist/storage.cjs +515 -0
- package/dist/storage.cjs.map +1 -0
- package/dist/storage.d.mts +52 -0
- package/dist/storage.d.ts +52 -0
- package/dist/storage.mjs +58 -0
- package/dist/storage.mjs.map +1 -0
- package/dist/testing.cjs +1882 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.mts +100 -0
- package/dist/testing.d.ts +100 -0
- package/dist/testing.mjs +324 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/types-BH1lhg5G.d.mts +81 -0
- package/dist/types-BH1lhg5G.d.ts +81 -0
- package/dist/types-C9N-nk5R.d.mts +53 -0
- package/dist/types-C9N-nk5R.d.ts +53 -0
- package/dist/types-D1A6-XvH.d.mts +73 -0
- package/dist/types-D1A6-XvH.d.ts +73 -0
- package/dist/utils-DA1yo54_.d.ts +23 -0
- package/dist/utils-DOXXivjL.d.mts +23 -0
- package/dist/vite.cjs +22684 -0
- package/dist/vite.cjs.map +1 -0
- package/dist/vite.d.mts +21 -0
- package/dist/vite.d.ts +21 -0
- package/dist/vite.mjs +59 -0
- package/dist/vite.mjs.map +1 -0
- package/dist/workflows.cjs +586 -0
- package/dist/workflows.cjs.map +1 -0
- package/dist/workflows.d.mts +110 -0
- package/dist/workflows.d.ts +110 -0
- package/dist/workflows.mjs +32 -0
- package/dist/workflows.mjs.map +1 -0
- package/package.json +523 -0
- package/types/api.d.ts +88 -0
- package/types/client.d.ts +1171 -0
- package/types/index.d.ts +17 -0
- package/types/middleware.d.ts +266 -0
|
@@ -0,0 +1,599 @@
|
|
|
1
|
+
import {
|
|
2
|
+
_withAfterNodeMiddleware
|
|
3
|
+
} from "./chunk-E6EPN5BT.mjs";
|
|
4
|
+
import {
|
|
5
|
+
sendWebResponse
|
|
6
|
+
} from "./chunk-QGOHVJ6J.mjs";
|
|
7
|
+
import {
|
|
8
|
+
API_ROUTE_METHODS,
|
|
9
|
+
findProgrammaticRouteFilesInDir
|
|
10
|
+
} from "./chunk-YHU7SS6L.mjs";
|
|
11
|
+
import {
|
|
12
|
+
toViteModuleId
|
|
13
|
+
} from "./chunk-J4FNJ5IU.mjs";
|
|
14
|
+
import {
|
|
15
|
+
invokeAPIRouteEndpoint,
|
|
16
|
+
matchAPIRoute
|
|
17
|
+
} from "./chunk-EVGBEZDF.mjs";
|
|
18
|
+
import {
|
|
19
|
+
getProgrammaticRouteManifest,
|
|
20
|
+
isProgrammaticRoutesFileName
|
|
21
|
+
} from "./chunk-B6N4ZB2H.mjs";
|
|
22
|
+
import {
|
|
23
|
+
__name,
|
|
24
|
+
__require
|
|
25
|
+
} from "./chunk-CGILA3WO.mjs";
|
|
26
|
+
|
|
27
|
+
// src/api/endpoint.ts
|
|
28
|
+
import { createEndpoint as betterCallEndpoint } from "better-call";
|
|
29
|
+
function createEndpoint(pathOrOptions, optionsOrHandler, maybeHandler) {
|
|
30
|
+
let path;
|
|
31
|
+
let options;
|
|
32
|
+
let handler;
|
|
33
|
+
if (typeof pathOrOptions === "string") {
|
|
34
|
+
path = pathOrOptions;
|
|
35
|
+
options = optionsOrHandler;
|
|
36
|
+
handler = maybeHandler;
|
|
37
|
+
} else {
|
|
38
|
+
path = "";
|
|
39
|
+
options = pathOrOptions;
|
|
40
|
+
handler = optionsOrHandler;
|
|
41
|
+
}
|
|
42
|
+
if (typeof handler !== "function") {
|
|
43
|
+
throw new TypeError("createEndpoint requires a handler function");
|
|
44
|
+
}
|
|
45
|
+
const middleware = normalizeEndpointMiddleware(options.middleware);
|
|
46
|
+
const wrappedHandler = /* @__PURE__ */ __name(((ctx) => runEndpointMiddleware(middleware, ctx, handler)), "wrappedHandler");
|
|
47
|
+
const { middleware: _middleware, ...betterCallOptions } = options;
|
|
48
|
+
const endpoint = betterCallEndpoint(
|
|
49
|
+
path || "/__farm_auto_path__",
|
|
50
|
+
betterCallOptions,
|
|
51
|
+
wrappedHandler
|
|
52
|
+
);
|
|
53
|
+
endpoint.__path = path || void 0;
|
|
54
|
+
endpoint.__method = options.method || "GET";
|
|
55
|
+
endpoint.__autoPath = !path;
|
|
56
|
+
endpoint.__handler = wrappedHandler;
|
|
57
|
+
endpoint.__middleware = middleware;
|
|
58
|
+
endpoint.__sourceHandler = handler;
|
|
59
|
+
endpoint.__types = {
|
|
60
|
+
body: options.body,
|
|
61
|
+
query: options.query,
|
|
62
|
+
headers: options.headers,
|
|
63
|
+
response: null
|
|
64
|
+
};
|
|
65
|
+
return endpoint;
|
|
66
|
+
}
|
|
67
|
+
__name(createEndpoint, "createEndpoint");
|
|
68
|
+
var EMPTY_ENDPOINT_MIDDLEWARE = Object.freeze([]);
|
|
69
|
+
var EMPTY_ENDPOINT_CONTEXT = Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
70
|
+
var UNSAFE_ENDPOINT_CONTEXT_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
|
|
71
|
+
function normalizeEndpointMiddleware(middleware) {
|
|
72
|
+
if (middleware === void 0) return EMPTY_ENDPOINT_MIDDLEWARE;
|
|
73
|
+
if (!Array.isArray(middleware)) {
|
|
74
|
+
throw new TypeError("createEndpoint middleware must be an array of functions");
|
|
75
|
+
}
|
|
76
|
+
const normalized = [...middleware];
|
|
77
|
+
for (const entry of normalized) {
|
|
78
|
+
if (typeof entry !== "function") {
|
|
79
|
+
throw new TypeError("createEndpoint middleware entries must be functions");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return Object.freeze(normalized);
|
|
83
|
+
}
|
|
84
|
+
__name(normalizeEndpointMiddleware, "normalizeEndpointMiddleware");
|
|
85
|
+
async function runEndpointMiddleware(middleware, handlerContext, handler) {
|
|
86
|
+
let context = createInitialEndpointContext(handlerContext.context);
|
|
87
|
+
for (let index = 0; index < middleware.length; index++) {
|
|
88
|
+
const result = await middleware[index]({ ...handlerContext, context });
|
|
89
|
+
if (isEndpointResponse(result)) return result;
|
|
90
|
+
if (result === false) return forbiddenEndpointResponse();
|
|
91
|
+
if (result === true) continue;
|
|
92
|
+
if (!isPlainEndpointContext(result)) {
|
|
93
|
+
throw new TypeError(
|
|
94
|
+
`Endpoint middleware ${index + 1} must return an object, true, false, or a Response`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
context = mergeEndpointContext(context, result, index);
|
|
98
|
+
}
|
|
99
|
+
return handler({ ...handlerContext, context });
|
|
100
|
+
}
|
|
101
|
+
__name(runEndpointMiddleware, "runEndpointMiddleware");
|
|
102
|
+
function createInitialEndpointContext(value) {
|
|
103
|
+
if (value === void 0 || value === null) return EMPTY_ENDPOINT_CONTEXT;
|
|
104
|
+
if (!isPlainEndpointContext(value)) {
|
|
105
|
+
throw new TypeError("Endpoint context must be a plain object");
|
|
106
|
+
}
|
|
107
|
+
return mergeEndpointContext(EMPTY_ENDPOINT_CONTEXT, value);
|
|
108
|
+
}
|
|
109
|
+
__name(createInitialEndpointContext, "createInitialEndpointContext");
|
|
110
|
+
function mergeEndpointContext(current, added, middlewareIndex) {
|
|
111
|
+
const next = Object.assign(/* @__PURE__ */ Object.create(null), current);
|
|
112
|
+
for (const key of Reflect.ownKeys(added)) {
|
|
113
|
+
if (!Object.prototype.propertyIsEnumerable.call(added, key)) continue;
|
|
114
|
+
if (typeof key === "string" && UNSAFE_ENDPOINT_CONTEXT_KEYS.has(key)) {
|
|
115
|
+
throw new TypeError(`Endpoint middleware cannot provide the unsafe context key "${key}"`);
|
|
116
|
+
}
|
|
117
|
+
if (Object.prototype.hasOwnProperty.call(current, key)) {
|
|
118
|
+
const source = middlewareIndex === void 0 ? "Endpoint context" : `Endpoint middleware ${middlewareIndex + 1}`;
|
|
119
|
+
throw new TypeError(`${source} cannot replace the existing context key "${String(key)}"`);
|
|
120
|
+
}
|
|
121
|
+
next[key] = added[key];
|
|
122
|
+
}
|
|
123
|
+
return Object.freeze(next);
|
|
124
|
+
}
|
|
125
|
+
__name(mergeEndpointContext, "mergeEndpointContext");
|
|
126
|
+
function isPlainEndpointContext(value) {
|
|
127
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
128
|
+
const prototype = Object.getPrototypeOf(value);
|
|
129
|
+
return prototype === Object.prototype || prototype === null;
|
|
130
|
+
}
|
|
131
|
+
__name(isPlainEndpointContext, "isPlainEndpointContext");
|
|
132
|
+
function isEndpointResponse(value) {
|
|
133
|
+
return value instanceof Response || typeof value === "object" && value !== null && "headers" in value && "status" in value && typeof value.arrayBuffer === "function";
|
|
134
|
+
}
|
|
135
|
+
__name(isEndpointResponse, "isEndpointResponse");
|
|
136
|
+
function forbiddenEndpointResponse() {
|
|
137
|
+
return new Response(JSON.stringify({ error: "Forbidden" }), {
|
|
138
|
+
status: 403,
|
|
139
|
+
headers: { "Content-Type": "application/json" }
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
__name(forbiddenEndpointResponse, "forbiddenEndpointResponse");
|
|
143
|
+
function GET(...args) {
|
|
144
|
+
if (args.length === 1) {
|
|
145
|
+
return createEndpoint("", { method: "GET" }, args[0]);
|
|
146
|
+
}
|
|
147
|
+
return createEndpoint("", { ...args[0], method: "GET" }, args[1]);
|
|
148
|
+
}
|
|
149
|
+
__name(GET, "GET");
|
|
150
|
+
function HEAD(...args) {
|
|
151
|
+
if (args.length === 1) {
|
|
152
|
+
return createEndpoint("", { method: "HEAD" }, args[0]);
|
|
153
|
+
}
|
|
154
|
+
return createEndpoint("", { ...args[0], method: "HEAD" }, args[1]);
|
|
155
|
+
}
|
|
156
|
+
__name(HEAD, "HEAD");
|
|
157
|
+
function POST(...args) {
|
|
158
|
+
if (args.length === 1) {
|
|
159
|
+
return createEndpoint("", { method: "POST" }, args[0]);
|
|
160
|
+
}
|
|
161
|
+
return createEndpoint("", { ...args[0], method: "POST" }, args[1]);
|
|
162
|
+
}
|
|
163
|
+
__name(POST, "POST");
|
|
164
|
+
function PUT(...args) {
|
|
165
|
+
if (args.length === 1) {
|
|
166
|
+
return createEndpoint("", { method: "PUT" }, args[0]);
|
|
167
|
+
}
|
|
168
|
+
return createEndpoint("", { ...args[0], method: "PUT" }, args[1]);
|
|
169
|
+
}
|
|
170
|
+
__name(PUT, "PUT");
|
|
171
|
+
function DELETE(...args) {
|
|
172
|
+
if (args.length === 1) {
|
|
173
|
+
return createEndpoint("", { method: "DELETE" }, args[0]);
|
|
174
|
+
}
|
|
175
|
+
return createEndpoint("", { ...args[0], method: "DELETE" }, args[1]);
|
|
176
|
+
}
|
|
177
|
+
__name(DELETE, "DELETE");
|
|
178
|
+
function PATCH(...args) {
|
|
179
|
+
if (args.length === 1) {
|
|
180
|
+
return createEndpoint("", { method: "PATCH" }, args[0]);
|
|
181
|
+
}
|
|
182
|
+
return createEndpoint("", { ...args[0], method: "PATCH" }, args[1]);
|
|
183
|
+
}
|
|
184
|
+
__name(PATCH, "PATCH");
|
|
185
|
+
function OPTIONS(...args) {
|
|
186
|
+
if (args.length === 1) {
|
|
187
|
+
return createEndpoint("", { method: "OPTIONS" }, args[0]);
|
|
188
|
+
}
|
|
189
|
+
return createEndpoint("", { ...args[0], method: "OPTIONS" }, args[1]);
|
|
190
|
+
}
|
|
191
|
+
__name(OPTIONS, "OPTIONS");
|
|
192
|
+
|
|
193
|
+
// src/api/vite-plugin.ts
|
|
194
|
+
function farmApiPlugin(options = {}) {
|
|
195
|
+
const srcDir = options.srcDir ?? "src";
|
|
196
|
+
const debug = options.debug ?? false;
|
|
197
|
+
let apiRoutesCache = /* @__PURE__ */ new Map();
|
|
198
|
+
let apiRouterHandler = null;
|
|
199
|
+
let discoveryComplete = false;
|
|
200
|
+
let discoveryPromise = null;
|
|
201
|
+
const log = /* @__PURE__ */ __name((_message) => {
|
|
202
|
+
}, "log");
|
|
203
|
+
const logResponse = /* @__PURE__ */ __name((method, urlPath, status, duration) => {
|
|
204
|
+
try {
|
|
205
|
+
const pc = __require("picocolors");
|
|
206
|
+
let statusColor = pc.green;
|
|
207
|
+
if (status >= 500) statusColor = pc.red;
|
|
208
|
+
else if (status >= 400) statusColor = pc.yellow;
|
|
209
|
+
else if (status >= 300) statusColor = pc.cyan;
|
|
210
|
+
const logMsg = [
|
|
211
|
+
pc.dim("[") + pc.bold(pc.blue("FARM")) + pc.dim("]"),
|
|
212
|
+
pc.dim("[") + pc.bold(pc.cyan("API")) + pc.dim("]"),
|
|
213
|
+
pc.dim("[") + pc.bold(pc.white(method.padEnd(3))) + pc.dim("]"),
|
|
214
|
+
pc.gray(urlPath),
|
|
215
|
+
pc.dim("-"),
|
|
216
|
+
statusColor(status.toString()),
|
|
217
|
+
pc.dim(`(${duration}ms)`)
|
|
218
|
+
].join(" ");
|
|
219
|
+
console.log(logMsg);
|
|
220
|
+
} catch {
|
|
221
|
+
console.log(`[FARM] [API] [${method}] ${urlPath} - ${status} (${duration}ms)`);
|
|
222
|
+
}
|
|
223
|
+
}, "logResponse");
|
|
224
|
+
const addEndpoint = /* @__PURE__ */ __name((routePath, filePath, method, endpoint) => {
|
|
225
|
+
const normalizedMethod = method.toUpperCase();
|
|
226
|
+
const existing = apiRoutesCache.get(routePath);
|
|
227
|
+
if (existing) {
|
|
228
|
+
if (!existing.methods.includes(normalizedMethod)) {
|
|
229
|
+
existing.methods.push(normalizedMethod);
|
|
230
|
+
}
|
|
231
|
+
existing.endpoints[normalizedMethod] = endpoint;
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
apiRoutesCache.set(routePath, {
|
|
235
|
+
path: routePath,
|
|
236
|
+
filePath,
|
|
237
|
+
methods: [normalizedMethod],
|
|
238
|
+
endpoints: { [normalizedMethod]: endpoint }
|
|
239
|
+
});
|
|
240
|
+
}, "addEndpoint");
|
|
241
|
+
const createRouter = /* @__PURE__ */ __name(async () => {
|
|
242
|
+
const totalEndpoints = Array.from(apiRoutesCache.values()).reduce(
|
|
243
|
+
(sum, route) => sum + route.methods.length,
|
|
244
|
+
0
|
|
245
|
+
);
|
|
246
|
+
apiRouterHandler = null;
|
|
247
|
+
if (totalEndpoints > 0) {
|
|
248
|
+
apiRouterHandler = /* @__PURE__ */ __name(async (request) => {
|
|
249
|
+
const url = new URL(request.url);
|
|
250
|
+
const method = request.method.toUpperCase();
|
|
251
|
+
const pathname = url.pathname;
|
|
252
|
+
const match = matchAPIRoute(apiRoutesCache, pathname);
|
|
253
|
+
if (!match) {
|
|
254
|
+
return new Response(JSON.stringify({ error: "Not Found" }), {
|
|
255
|
+
status: 404,
|
|
256
|
+
headers: { "Content-Type": "application/json" }
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
const { route, params } = match;
|
|
260
|
+
const endpoint = route.endpoints[method];
|
|
261
|
+
if (!endpoint) {
|
|
262
|
+
return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
|
|
263
|
+
status: 405,
|
|
264
|
+
headers: { "Content-Type": "application/json" }
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
try {
|
|
268
|
+
return await invokeAPIRouteEndpoint(endpoint, request, params);
|
|
269
|
+
} catch (error) {
|
|
270
|
+
return new Response(JSON.stringify({ error: error.message || "Internal Server Error" }), {
|
|
271
|
+
status: 500,
|
|
272
|
+
headers: { "Content-Type": "application/json" }
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}, "apiRouterHandler");
|
|
276
|
+
log(`API router created with ${totalEndpoints} endpoints`);
|
|
277
|
+
}
|
|
278
|
+
}, "createRouter");
|
|
279
|
+
return {
|
|
280
|
+
name: "@farm.js/core:api",
|
|
281
|
+
enforce: "pre",
|
|
282
|
+
configureServer(server) {
|
|
283
|
+
const discoverFileRoutes = /* @__PURE__ */ __name(async (apiDir) => {
|
|
284
|
+
const fs = await import("fs");
|
|
285
|
+
const path = await import("path");
|
|
286
|
+
if (!fs.existsSync(apiDir)) {
|
|
287
|
+
log("No api directory found");
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const findRouteFiles = /* @__PURE__ */ __name((dir) => {
|
|
291
|
+
const files = [];
|
|
292
|
+
if (!fs.existsSync(dir)) return files;
|
|
293
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
294
|
+
for (const entry of entries) {
|
|
295
|
+
const fullPath = path.join(dir, entry.name);
|
|
296
|
+
if (entry.isDirectory()) {
|
|
297
|
+
files.push(...findRouteFiles(fullPath));
|
|
298
|
+
} else if (entry.name === "route.ts" || entry.name === "route.tsx" || entry.name === "route.js") {
|
|
299
|
+
files.push(fullPath);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return files;
|
|
303
|
+
}, "findRouteFiles");
|
|
304
|
+
const routeFiles = findRouteFiles(apiDir);
|
|
305
|
+
apiRoutesCache.clear();
|
|
306
|
+
for (const filePath of routeFiles) {
|
|
307
|
+
try {
|
|
308
|
+
const relativePath = path.relative(apiDir, path.dirname(filePath));
|
|
309
|
+
const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
|
|
310
|
+
const routeModule = await server.ssrLoadModule(filePath);
|
|
311
|
+
const endpoints = {};
|
|
312
|
+
const availableMethods = [];
|
|
313
|
+
for (const method of API_ROUTE_METHODS) {
|
|
314
|
+
if (routeModule[method]) {
|
|
315
|
+
availableMethods.push(method);
|
|
316
|
+
endpoints[method] = routeModule[method];
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
if (availableMethods.length > 0) {
|
|
320
|
+
apiRoutesCache.set(routePath, {
|
|
321
|
+
path: routePath,
|
|
322
|
+
filePath,
|
|
323
|
+
methods: availableMethods,
|
|
324
|
+
endpoints
|
|
325
|
+
});
|
|
326
|
+
log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
|
|
327
|
+
}
|
|
328
|
+
} catch (e) {
|
|
329
|
+
log(`API route load failed at ${filePath}: ${e.message}`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}, "discoverFileRoutes");
|
|
333
|
+
const discoverRootRoutes = /* @__PURE__ */ __name(async () => {
|
|
334
|
+
const fs = await import("fs");
|
|
335
|
+
const path = await import("path");
|
|
336
|
+
const routesFiles = [
|
|
337
|
+
path.join(server.config.root, srcDir, "routes.ts"),
|
|
338
|
+
path.join(server.config.root, srcDir, "routes.tsx"),
|
|
339
|
+
path.join(server.config.root, srcDir, "routes.js")
|
|
340
|
+
];
|
|
341
|
+
for (const routesFile of routesFiles) {
|
|
342
|
+
if (fs.existsSync(routesFile)) {
|
|
343
|
+
try {
|
|
344
|
+
const routesModule = await server.ssrLoadModule(routesFile);
|
|
345
|
+
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
346
|
+
const endpoint = exportValue;
|
|
347
|
+
if (endpoint && endpoint.__path) {
|
|
348
|
+
const routePath = endpoint.__path;
|
|
349
|
+
const method = String(endpoint.__method || "GET").toUpperCase();
|
|
350
|
+
addEndpoint(routePath, routesFile, method, endpoint);
|
|
351
|
+
log(`Root route discovered: ${method} ${routePath}`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
} catch (e) {
|
|
355
|
+
log(`Root routes.ts load failed: ${e.message}`);
|
|
356
|
+
}
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}, "discoverRootRoutes");
|
|
361
|
+
const discoverProgrammaticRoutes = /* @__PURE__ */ __name(async () => {
|
|
362
|
+
const path = await import("path");
|
|
363
|
+
const srcRoot = path.join(server.config.root, srcDir);
|
|
364
|
+
const routeFiles = findProgrammaticRouteFilesInDir(srcRoot);
|
|
365
|
+
for (const routeFile of routeFiles) {
|
|
366
|
+
try {
|
|
367
|
+
const routesModule = await server.ssrLoadModule(
|
|
368
|
+
toViteModuleId(routeFile, server.config.root)
|
|
369
|
+
);
|
|
370
|
+
const manifest = getProgrammaticRouteManifest(routesModule);
|
|
371
|
+
if (!manifest) continue;
|
|
372
|
+
for (const definition of manifest.routes) {
|
|
373
|
+
if (definition.kind !== "api") continue;
|
|
374
|
+
for (const [method, endpoint] of Object.entries(definition.methods)) {
|
|
375
|
+
if (endpoint) {
|
|
376
|
+
addEndpoint(definition.path, routeFile, method, endpoint);
|
|
377
|
+
log(`Programmatic route discovered: ${method} ${definition.path}`);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
} catch (e) {
|
|
382
|
+
log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}, "discoverProgrammaticRoutes");
|
|
386
|
+
const initializeDiscovery = /* @__PURE__ */ __name(async () => {
|
|
387
|
+
const path = await import("path");
|
|
388
|
+
const apiDir = path.join(server.config.root, srcDir, "api");
|
|
389
|
+
log(`Discovering API routes in: ${apiDir}`);
|
|
390
|
+
await discoverFileRoutes(apiDir);
|
|
391
|
+
await discoverRootRoutes();
|
|
392
|
+
await discoverProgrammaticRoutes();
|
|
393
|
+
await createRouter();
|
|
394
|
+
discoveryComplete = true;
|
|
395
|
+
log(`API discovery complete: ${apiRoutesCache.size} routes found`);
|
|
396
|
+
}, "initializeDiscovery");
|
|
397
|
+
discoveryPromise = initializeDiscovery().catch((e) => {
|
|
398
|
+
console.error("[FARM] API discovery error:", e);
|
|
399
|
+
});
|
|
400
|
+
server.__farmApi__ = {
|
|
401
|
+
getHandler: /* @__PURE__ */ __name(() => apiRouterHandler, "getHandler"),
|
|
402
|
+
getRoutes: /* @__PURE__ */ __name(() => apiRoutesCache, "getRoutes"),
|
|
403
|
+
isReady: /* @__PURE__ */ __name(() => discoveryComplete, "isReady"),
|
|
404
|
+
waitForDiscovery: /* @__PURE__ */ __name(() => discoveryPromise, "waitForDiscovery")
|
|
405
|
+
};
|
|
406
|
+
return () => {
|
|
407
|
+
server.middlewares.use(_withAfterNodeMiddleware(async (req, res, next) => {
|
|
408
|
+
const url = req.url || "/";
|
|
409
|
+
const pathname = url.split("?")[0];
|
|
410
|
+
const method = req.method || "GET";
|
|
411
|
+
if (discoveryPromise && !discoveryComplete) {
|
|
412
|
+
await discoveryPromise;
|
|
413
|
+
}
|
|
414
|
+
if (!matchAPIRoute(apiRoutesCache, pathname)) {
|
|
415
|
+
return next();
|
|
416
|
+
}
|
|
417
|
+
if (!apiRouterHandler) {
|
|
418
|
+
return next();
|
|
419
|
+
}
|
|
420
|
+
const startTime = Date.now();
|
|
421
|
+
try {
|
|
422
|
+
const farmMiddleware = server.__farmMiddleware__;
|
|
423
|
+
if (farmMiddleware) {
|
|
424
|
+
await farmMiddleware.waitForDiscovery?.();
|
|
425
|
+
const middlewareData = /* @__PURE__ */ new Map();
|
|
426
|
+
const handled = await farmMiddleware.execute(req, res, pathname, middlewareData);
|
|
427
|
+
if (handled) {
|
|
428
|
+
const duration2 = Date.now() - startTime;
|
|
429
|
+
logResponse(method, pathname, res.statusCode || 200, duration2);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
const fullUrl = `http://${req.headers.host || "localhost:3000"}${url}`;
|
|
434
|
+
const headers = new Headers();
|
|
435
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
436
|
+
if (value) {
|
|
437
|
+
headers.set(key, Array.isArray(value) ? value.join(", ") : value);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
let body;
|
|
441
|
+
if (method !== "GET" && method !== "HEAD") {
|
|
442
|
+
body = await new Promise((resolve) => {
|
|
443
|
+
let data = "";
|
|
444
|
+
req.on("data", (chunk) => {
|
|
445
|
+
data += chunk;
|
|
446
|
+
});
|
|
447
|
+
req.on("end", () => {
|
|
448
|
+
resolve(data);
|
|
449
|
+
});
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
const request = new Request(fullUrl, {
|
|
453
|
+
method,
|
|
454
|
+
headers,
|
|
455
|
+
body: body || void 0
|
|
456
|
+
});
|
|
457
|
+
const response = await apiRouterHandler(request);
|
|
458
|
+
const duration = Date.now() - startTime;
|
|
459
|
+
logResponse(method, pathname, response.status, duration);
|
|
460
|
+
await sendWebResponse(res, response);
|
|
461
|
+
} catch (error) {
|
|
462
|
+
const duration = Date.now() - startTime;
|
|
463
|
+
logResponse(method, pathname, 500, duration);
|
|
464
|
+
console.error("[FARM] API error:", error);
|
|
465
|
+
res.statusCode = 500;
|
|
466
|
+
res.setHeader("Content-Type", "application/json");
|
|
467
|
+
res.end(JSON.stringify({ error: "Internal server error" }));
|
|
468
|
+
}
|
|
469
|
+
}));
|
|
470
|
+
};
|
|
471
|
+
},
|
|
472
|
+
async handleHotUpdate({ file, server, modules }) {
|
|
473
|
+
const fileName = file.split("/").pop() || "";
|
|
474
|
+
if (fileName === "routes.ts" || fileName === "routes.tsx" || fileName === "routes.js" || isProgrammaticRoutesFileName(fileName)) {
|
|
475
|
+
log(`Root routes file updated: ${fileName}`);
|
|
476
|
+
for (const mod of modules) {
|
|
477
|
+
server.moduleGraph.invalidateModule(mod);
|
|
478
|
+
}
|
|
479
|
+
for (const [routePath, route] of apiRoutesCache) {
|
|
480
|
+
if (route.filePath === file) {
|
|
481
|
+
apiRoutesCache.delete(routePath);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
try {
|
|
485
|
+
const routesModule = await server.ssrLoadModule(file);
|
|
486
|
+
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
487
|
+
const endpoint = exportValue;
|
|
488
|
+
if (endpoint && endpoint.__path) {
|
|
489
|
+
const routePath = endpoint.__path;
|
|
490
|
+
const method = String(endpoint.__method || "GET").toUpperCase();
|
|
491
|
+
addEndpoint(routePath, file, method, endpoint);
|
|
492
|
+
log(`Root route reloaded: ${method} ${routePath}`);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
const manifest = getProgrammaticRouteManifest(routesModule);
|
|
496
|
+
if (manifest) {
|
|
497
|
+
for (const definition of manifest.routes) {
|
|
498
|
+
if (definition.kind !== "api") continue;
|
|
499
|
+
for (const [method, endpoint] of Object.entries(definition.methods)) {
|
|
500
|
+
if (endpoint) {
|
|
501
|
+
addEndpoint(definition.path, file, method, endpoint);
|
|
502
|
+
log(`Programmatic route reloaded: ${method} ${definition.path}`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
await createRouter();
|
|
508
|
+
log(`API router recreated`);
|
|
509
|
+
} catch (e) {
|
|
510
|
+
log(`Root routes.ts HMR failed: ${e.message}`);
|
|
511
|
+
}
|
|
512
|
+
return [];
|
|
513
|
+
}
|
|
514
|
+
if (file.includes("/api/") && fileName.startsWith("route.")) {
|
|
515
|
+
const shortPath = file.split("/api/")[1] || file;
|
|
516
|
+
log(`API route updated: ${shortPath}`);
|
|
517
|
+
for (const mod of modules) {
|
|
518
|
+
server.moduleGraph.invalidateModule(mod);
|
|
519
|
+
}
|
|
520
|
+
let routePathToUpdate = null;
|
|
521
|
+
for (const [routePath, route] of apiRoutesCache) {
|
|
522
|
+
if (route.filePath === file) {
|
|
523
|
+
routePathToUpdate = routePath;
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
if (routePathToUpdate) {
|
|
528
|
+
try {
|
|
529
|
+
const routeModule = await server.ssrLoadModule(file);
|
|
530
|
+
const endpoints = {};
|
|
531
|
+
const availableMethods = [];
|
|
532
|
+
for (const method of API_ROUTE_METHODS) {
|
|
533
|
+
if (routeModule[method]) {
|
|
534
|
+
availableMethods.push(method);
|
|
535
|
+
endpoints[method] = routeModule[method];
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
if (availableMethods.length > 0) {
|
|
539
|
+
apiRoutesCache.set(routePathToUpdate, {
|
|
540
|
+
path: routePathToUpdate,
|
|
541
|
+
filePath: file,
|
|
542
|
+
methods: availableMethods,
|
|
543
|
+
endpoints
|
|
544
|
+
});
|
|
545
|
+
log(`API route reloaded: ${routePathToUpdate}`);
|
|
546
|
+
await createRouter();
|
|
547
|
+
log(`API router recreated`);
|
|
548
|
+
}
|
|
549
|
+
} catch (e) {
|
|
550
|
+
log(`API route HMR failed: ${e.message}`);
|
|
551
|
+
}
|
|
552
|
+
} else {
|
|
553
|
+
try {
|
|
554
|
+
const path = await import("path");
|
|
555
|
+
const apiDir = path.join(server.config.root, srcDir, "api");
|
|
556
|
+
const relativePath = path.relative(apiDir, path.dirname(file));
|
|
557
|
+
const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
|
|
558
|
+
const routeModule = await server.ssrLoadModule(file);
|
|
559
|
+
const endpoints = {};
|
|
560
|
+
const availableMethods = [];
|
|
561
|
+
for (const method of API_ROUTE_METHODS) {
|
|
562
|
+
if (routeModule[method]) {
|
|
563
|
+
availableMethods.push(method);
|
|
564
|
+
endpoints[method] = routeModule[method];
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
if (availableMethods.length > 0) {
|
|
568
|
+
apiRoutesCache.set(routePath, {
|
|
569
|
+
path: routePath,
|
|
570
|
+
filePath: file,
|
|
571
|
+
methods: availableMethods,
|
|
572
|
+
endpoints
|
|
573
|
+
});
|
|
574
|
+
log(`New API route discovered: ${routePath}`);
|
|
575
|
+
await createRouter();
|
|
576
|
+
}
|
|
577
|
+
} catch (e) {
|
|
578
|
+
log(`New API route load failed: ${e.message}`);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
return [];
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
__name(farmApiPlugin, "farmApiPlugin");
|
|
587
|
+
|
|
588
|
+
export {
|
|
589
|
+
createEndpoint,
|
|
590
|
+
GET,
|
|
591
|
+
HEAD,
|
|
592
|
+
POST,
|
|
593
|
+
PUT,
|
|
594
|
+
DELETE,
|
|
595
|
+
PATCH,
|
|
596
|
+
OPTIONS,
|
|
597
|
+
farmApiPlugin
|
|
598
|
+
};
|
|
599
|
+
//# sourceMappingURL=chunk-PRNYWD7K.mjs.map
|