@farm.js/core 0.1.0-beta.6 → 0.1.0-beta.8
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/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 +94 -0
- package/dist/agent-runtime.d.ts +94 -0
- package/dist/agent-runtime.mjs +479 -0
- package/dist/agent-runtime.mjs.map +1 -0
- package/dist/api/route-manager.d.mts +66 -0
- package/dist/api/route-manager.d.ts +66 -0
- package/dist/api/runtime.d.mts +3 -0
- package/dist/api/runtime.d.ts +3 -0
- package/dist/api.cjs +4100 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.mts +48 -0
- package/dist/api.d.ts +48 -0
- package/dist/api.mjs +93 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app-BWtqQu3R.d.mts +302 -0
- package/dist/app-markdown.cjs +244 -0
- package/dist/app-markdown.cjs.map +1 -0
- package/dist/app-markdown.d.mts +22 -0
- package/dist/app-markdown.d.ts +22 -0
- package/dist/app-markdown.mjs +27 -0
- package/dist/app-markdown.mjs.map +1 -0
- package/dist/app-xltejvLY.d.ts +302 -0
- package/dist/cache.cjs +945 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.mts +192 -0
- package/dist/cache.d.ts +192 -0
- package/dist/cache.mjs +46 -0
- package/dist/cache.mjs.map +1 -0
- package/dist/chunk-2ED5Q2GH.mjs +422 -0
- package/dist/chunk-2ED5Q2GH.mjs.map +1 -0
- package/dist/chunk-32W4QEJP.mjs +158 -0
- package/dist/chunk-32W4QEJP.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-4MGVSBRP.mjs +7787 -0
- package/dist/chunk-4MGVSBRP.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-65A7QIKI.mjs +142 -0
- package/dist/chunk-65A7QIKI.mjs.map +1 -0
- package/dist/chunk-74YTBPTY.mjs +450 -0
- package/dist/chunk-74YTBPTY.mjs.map +1 -0
- package/dist/chunk-7FBJLMQH.mjs +338 -0
- package/dist/chunk-7FBJLMQH.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-7N62DNSO.mjs +41 -0
- package/dist/chunk-7N62DNSO.mjs.map +1 -0
- package/dist/chunk-7ZY5AIJO.mjs +161 -0
- package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
- package/dist/chunk-ALCLXXTY.mjs +187 -0
- package/dist/chunk-ALCLXXTY.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-B4W3BNTL.mjs +483 -0
- package/dist/chunk-B4W3BNTL.mjs.map +1 -0
- package/dist/chunk-C2ROET2V.mjs +718 -0
- package/dist/chunk-C2ROET2V.mjs.map +1 -0
- package/dist/chunk-CGILA3WO.mjs +14 -0
- package/dist/chunk-CGILA3WO.mjs.map +1 -0
- package/dist/chunk-CGIXMLSY.mjs +184 -0
- package/dist/chunk-CGIXMLSY.mjs.map +1 -0
- package/dist/chunk-DJSGLHCN.mjs +597 -0
- package/dist/chunk-DJSGLHCN.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-EI43C4RA.mjs +6277 -0
- package/dist/chunk-EI43C4RA.mjs.map +1 -0
- package/dist/chunk-EJ7T4TPB.mjs +622 -0
- package/dist/chunk-EJ7T4TPB.mjs.map +1 -0
- package/dist/chunk-FQYDHKKU.mjs +128 -0
- package/dist/chunk-FQYDHKKU.mjs.map +1 -0
- package/dist/chunk-FRPWCMMG.mjs +299 -0
- package/dist/chunk-FRPWCMMG.mjs.map +1 -0
- package/dist/chunk-GN72QAIH.mjs +146 -0
- package/dist/chunk-GN72QAIH.mjs.map +1 -0
- package/dist/chunk-GQVGIUSN.mjs +149 -0
- package/dist/chunk-GQVGIUSN.mjs.map +1 -0
- package/dist/chunk-GS6K5OCM.mjs +407 -0
- package/dist/chunk-GS6K5OCM.mjs.map +1 -0
- package/dist/chunk-GXASWWJU.mjs +364 -0
- package/dist/chunk-GXASWWJU.mjs.map +1 -0
- package/dist/chunk-GY2STC2S.mjs +180 -0
- package/dist/chunk-GY2STC2S.mjs.map +1 -0
- package/dist/chunk-H2FA2SBS.mjs +51 -0
- package/dist/chunk-H2FA2SBS.mjs.map +1 -0
- package/dist/chunk-I4CUBGVF.mjs +93 -0
- package/dist/chunk-I4CUBGVF.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-J5YWQVI5.mjs +211 -0
- package/dist/chunk-J5YWQVI5.mjs.map +1 -0
- package/dist/chunk-JDEOUK5V.mjs +427 -0
- package/dist/chunk-JDEOUK5V.mjs.map +1 -0
- package/dist/chunk-JK25YEN6.mjs +219 -0
- package/dist/chunk-JK25YEN6.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-LM2YNO4U.mjs +24 -0
- package/dist/chunk-LM2YNO4U.mjs.map +1 -0
- package/dist/chunk-ME4MO2RJ.mjs +3540 -0
- package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
- package/dist/chunk-MIUW47JX.mjs +639 -0
- package/dist/chunk-MIUW47JX.mjs.map +1 -0
- package/dist/chunk-NNLCAVB6.mjs +391 -0
- package/dist/chunk-NNLCAVB6.mjs.map +1 -0
- package/dist/chunk-P7QDS5AT.mjs +191 -0
- package/dist/chunk-P7QDS5AT.mjs.map +1 -0
- package/dist/chunk-PFE6GMNE.mjs +603 -0
- package/dist/chunk-PFE6GMNE.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-QM746KUO.mjs +56 -0
- package/dist/chunk-QM746KUO.mjs.map +1 -0
- package/dist/chunk-QTZZ2ISQ.mjs +753 -0
- package/dist/chunk-QTZZ2ISQ.mjs.map +1 -0
- package/dist/chunk-RBRLLZL5.mjs +81 -0
- package/dist/chunk-RBRLLZL5.mjs.map +1 -0
- package/dist/chunk-RHIFZZUI.mjs +69 -0
- package/dist/chunk-RHIFZZUI.mjs.map +1 -0
- package/dist/chunk-RQ633A5I.mjs +187 -0
- package/dist/chunk-RQ633A5I.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-SPBBQLXI.mjs +207 -0
- package/dist/chunk-SPBBQLXI.mjs.map +1 -0
- package/dist/chunk-SSA7THPX.mjs +10 -0
- package/dist/chunk-SSA7THPX.mjs.map +1 -0
- package/dist/chunk-T4QJQK76.mjs +459 -0
- package/dist/chunk-T4QJQK76.mjs.map +1 -0
- package/dist/chunk-TQAEEJB4.mjs +157 -0
- package/dist/chunk-TQAEEJB4.mjs.map +1 -0
- package/dist/chunk-UB5UOSHB.mjs +458 -0
- package/dist/chunk-UB5UOSHB.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-UXUAWNO5.mjs +396 -0
- package/dist/chunk-UXUAWNO5.mjs.map +1 -0
- package/dist/chunk-V3XURYJO.mjs +756 -0
- package/dist/chunk-V3XURYJO.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-VY2UYN5R.mjs +224 -0
- package/dist/chunk-VY2UYN5R.mjs.map +1 -0
- package/dist/chunk-W2CRQFF6.mjs +1352 -0
- package/dist/chunk-W2CRQFF6.mjs.map +1 -0
- package/dist/chunk-WDU6QXNK.mjs +872 -0
- package/dist/chunk-WDU6QXNK.mjs.map +1 -0
- package/dist/chunk-WZ5QFROO.mjs +23 -0
- package/dist/chunk-WZ5QFROO.mjs.map +1 -0
- package/dist/chunk-XIVV5IWN.mjs +541 -0
- package/dist/chunk-XIVV5IWN.mjs.map +1 -0
- package/dist/chunk-YW7OBE6Q.mjs +119 -0
- package/dist/chunk-YW7OBE6Q.mjs.map +1 -0
- package/dist/chunk-Z5CQMP54.mjs +365 -0
- package/dist/chunk-Z5CQMP54.mjs.map +1 -0
- package/dist/chunk-ZBE6MLHL.mjs +230 -0
- package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
- package/dist/chunk-ZVWA4ZQ3.mjs +189 -0
- package/dist/chunk-ZVWA4ZQ3.mjs.map +1 -0
- package/dist/chunk-ZZ57EH5Z.mjs +173 -0
- package/dist/chunk-ZZ57EH5Z.mjs.map +1 -0
- package/dist/client-BT1mFQas.d.mts +447 -0
- package/dist/client-Nn0q4eO4.d.ts +447 -0
- package/dist/client-cache-CIlyBlmx.d.ts +6 -0
- package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
- package/dist/client-plugins-BI2R6Eae.d.mts +1926 -0
- package/dist/client-plugins-DU9oMspX.d.ts +1926 -0
- package/dist/client-plugins.cjs +415 -0
- package/dist/client-plugins.cjs.map +1 -0
- package/dist/client-plugins.d.mts +22 -0
- package/dist/client-plugins.d.ts +22 -0
- package/dist/client-plugins.mjs +10 -0
- package/dist/client-plugins.mjs.map +1 -0
- package/dist/client.cjs +5402 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.mts +447 -0
- package/dist/client.d.ts +447 -0
- package/dist/client.mjs +110 -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 +29 -0
- package/dist/config.d.ts +29 -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-REQTS3I7.mjs +371 -0
- package/dist/devtools-REQTS3I7.mjs.map +1 -0
- package/dist/devtools-client-3XRTBND5.mjs +216 -0
- package/dist/devtools-client-3XRTBND5.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 +5548 -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 +47 -0
- package/dist/docs.mjs.map +1 -0
- package/dist/env-types.cjs +232 -0
- package/dist/env-types.cjs.map +1 -0
- package/dist/env-types.d.mts +12 -0
- package/dist/env-types.d.ts +12 -0
- package/dist/env-types.mjs +11 -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.d.mts +22 -0
- package/dist/environment/vite.d.ts +22 -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.d.mts +32 -0
- package/dist/i18n/client.d.ts +32 -0
- package/dist/i18n/index.d.mts +20 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/server.d.mts +30 -0
- package/dist/i18n/server.d.ts +30 -0
- package/dist/image/server.d.mts +37 -0
- package/dist/image/server.d.ts +37 -0
- package/dist/image/sharp.d.mts +7 -0
- package/dist/image/sharp.d.ts +7 -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 +42186 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +454 -0
- package/dist/index.d.ts +454 -0
- package/dist/index.mjs +980 -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 +22 -0
- package/dist/integrations.d.ts +22 -0
- package/dist/integrations.mjs +51 -0
- package/dist/integrations.mjs.map +1 -0
- package/dist/internal/build-runtime.cjs +643 -322
- package/dist/internal/build-runtime.cjs.map +1 -1
- package/dist/internal/build-runtime.d.mts +39 -0
- package/dist/internal/build-runtime.d.ts +39 -0
- package/dist/internal/build-runtime.mjs +11 -10
- package/dist/internal/client-runtime.d.mts +2 -0
- package/dist/internal/client-runtime.d.ts +2 -0
- package/dist/internal/config-runtime.cjs +135 -39
- package/dist/internal/config-runtime.cjs.map +1 -1
- package/dist/internal/config-runtime.d.mts +39 -0
- package/dist/internal/config-runtime.d.ts +39 -0
- package/dist/internal/config-runtime.mjs +5 -4
- package/dist/internal/production-node-env.d.mts +12 -0
- package/dist/internal/production-node-env.d.ts +12 -0
- package/dist/internal/production-runtime.d.mts +39 -0
- package/dist/internal/production-runtime.d.ts +39 -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 +364 -0
- package/dist/markdown.cjs.map +1 -0
- package/dist/markdown.d.mts +60 -0
- package/dist/markdown.d.ts +60 -0
- package/dist/markdown.mjs +18 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/metadata-Cm9ujH4I.d.ts +22 -0
- package/dist/metadata-DacXbnLA.d.mts +22 -0
- package/dist/middleware.cjs +2148 -0
- package/dist/middleware.cjs.map +1 -0
- package/dist/middleware.d.mts +164 -0
- package/dist/middleware.d.ts +164 -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 +1329 -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-QO5LV6QK.mjs +689 -0
- package/dist/nitro-QO5LV6QK.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 +23470 -0
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.mts +22 -0
- package/dist/plugin.d.ts +22 -0
- package/dist/plugin.mjs +8 -7
- package/dist/production-runtime-4KKq1AVC.d.mts +79 -0
- package/dist/production-runtime-C_B79w2P.d.mts +28 -0
- package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
- package/dist/production-runtime-DRsWDN2x.d.ts +79 -0
- package/dist/query/client.d.mts +61 -0
- package/dist/query/client.d.ts +61 -0
- package/dist/query/index.d.mts +90 -0
- package/dist/query/index.d.ts +90 -0
- package/dist/query/parsers.d.mts +25 -0
- package/dist/query/parsers.d.ts +25 -0
- package/dist/query/server.d.mts +55 -0
- package/dist/query/server.d.ts +55 -0
- package/dist/request-Dsq4kGW0.d.mts +6 -0
- package/dist/request-udtobOLv.d.ts +6 -0
- package/dist/request.d.mts +2 -0
- package/dist/request.d.ts +2 -0
- package/dist/resolver-DJqjLMg_.d.mts +14 -0
- package/dist/resolver-IH4RmPEl.d.ts +14 -0
- package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
- package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
- package/dist/router.d.mts +36 -0
- package/dist/router.d.ts +36 -0
- package/dist/routes.d.mts +224 -0
- package/dist/routes.d.ts +224 -0
- package/dist/runtime-9nQjVM7X.d.mts +206 -0
- package/dist/runtime-Cxpq6xZN.d.mts +27 -0
- package/dist/runtime-DgeS2skB.d.ts +206 -0
- package/dist/runtime-bv63eUiO.d.ts +27 -0
- package/dist/server-action-security.d.mts +43 -0
- package/dist/server-action-security.d.ts +43 -0
- package/dist/server-fn-client.d.mts +32 -0
- package/dist/server-fn-client.d.ts +32 -0
- package/dist/server-fn.d.mts +93 -0
- package/dist/server-fn.d.ts +93 -0
- package/dist/server-plugins.d.mts +55 -0
- package/dist/server-plugins.d.ts +55 -0
- package/dist/server-query-client.d.mts +50 -0
- package/dist/server-query-client.d.ts +50 -0
- package/dist/server-query.d.mts +36 -0
- package/dist/server-query.d.ts +36 -0
- package/dist/server.cjs +731 -447
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.mts +48 -0
- package/dist/server.d.ts +48 -0
- package/dist/server.mjs +9 -8
- package/dist/server.mjs.map +1 -1
- package/dist/storage.d.mts +52 -0
- package/dist/storage.d.ts +52 -0
- package/dist/testing.d.mts +101 -0
- package/dist/testing.d.ts +101 -0
- package/dist/transport-BmbGTXA5.d.mts +49 -0
- package/dist/transport-BmbGTXA5.d.ts +49 -0
- package/dist/types-BMxWr97v.d.mts +81 -0
- package/dist/types-BMxWr97v.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-B-cUHwoK.d.ts +23 -0
- package/dist/utils-Cm41AefV.d.mts +23 -0
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.mts +3 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +682 -437
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.d.mts +22 -0
- package/dist/vite.d.ts +22 -0
- package/dist/vite.mjs +6 -5
- package/dist/workflows.d.mts +110 -0
- package/dist/workflows.d.ts +110 -0
- package/package.json +3 -2
- package/types/client.d.ts +1 -1
- package/types/image.d.ts +4 -0
- package/types/images.d.ts +59 -0
|
@@ -0,0 +1,622 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeMiddlewareModule
|
|
3
|
+
} from "./chunk-P7QDS5AT.mjs";
|
|
4
|
+
import {
|
|
5
|
+
stripFarmLocaleFromPathname
|
|
6
|
+
} from "./chunk-44ZCFSKE.mjs";
|
|
7
|
+
import {
|
|
8
|
+
emitFarmEvent
|
|
9
|
+
} from "./chunk-7ZY5AIJO.mjs";
|
|
10
|
+
import {
|
|
11
|
+
__name
|
|
12
|
+
} from "./chunk-CGILA3WO.mjs";
|
|
13
|
+
|
|
14
|
+
// src/middleware/production-runtime.ts
|
|
15
|
+
function parseCookies(cookieHeader) {
|
|
16
|
+
if (!cookieHeader) return {};
|
|
17
|
+
return cookieHeader.split(";").reduce(
|
|
18
|
+
(cookies, cookie) => {
|
|
19
|
+
const [name, ...rest] = cookie.split("=");
|
|
20
|
+
const value = rest.join("=").trim();
|
|
21
|
+
if (name && value) {
|
|
22
|
+
cookies[name.trim()] = decodeURIComponent(value);
|
|
23
|
+
}
|
|
24
|
+
return cookies;
|
|
25
|
+
},
|
|
26
|
+
{}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
__name(parseCookies, "parseCookies");
|
|
30
|
+
function serializeCookie(name, value, options = {}) {
|
|
31
|
+
let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
|
|
32
|
+
if (options.maxAge) cookie += `; Max-Age=${options.maxAge}`;
|
|
33
|
+
if (options.expires) cookie += `; Expires=${options.expires.toUTCString()}`;
|
|
34
|
+
cookie += `; Path=${options.path || "/"}`;
|
|
35
|
+
if (options.domain) cookie += `; Domain=${options.domain}`;
|
|
36
|
+
if (options.secure) cookie += "; Secure";
|
|
37
|
+
if (options.httpOnly) cookie += "; HttpOnly";
|
|
38
|
+
if (options.sameSite) {
|
|
39
|
+
cookie += `; SameSite=${options.sameSite.charAt(0).toUpperCase()}${options.sameSite.slice(1)}`;
|
|
40
|
+
}
|
|
41
|
+
return cookie;
|
|
42
|
+
}
|
|
43
|
+
__name(serializeCookie, "serializeCookie");
|
|
44
|
+
var _WebCookieJar = class _WebCookieJar {
|
|
45
|
+
constructor(request, headers) {
|
|
46
|
+
this.headers = headers;
|
|
47
|
+
this.setCookies = [];
|
|
48
|
+
this.cookies = parseCookies(request.headers.get("cookie"));
|
|
49
|
+
}
|
|
50
|
+
get(name) {
|
|
51
|
+
return this.cookies[name];
|
|
52
|
+
}
|
|
53
|
+
set(name, value, options = {}) {
|
|
54
|
+
this.cookies[name] = value;
|
|
55
|
+
const cookieString = serializeCookie(name, value, options);
|
|
56
|
+
this.setCookies.push(cookieString);
|
|
57
|
+
this.headers.set("Set-Cookie", this.setCookies.join(", "));
|
|
58
|
+
}
|
|
59
|
+
delete(name) {
|
|
60
|
+
delete this.cookies[name];
|
|
61
|
+
const cookieString = serializeCookie(name, "", {
|
|
62
|
+
maxAge: 0,
|
|
63
|
+
expires: /* @__PURE__ */ new Date(0)
|
|
64
|
+
});
|
|
65
|
+
this.setCookies.push(cookieString);
|
|
66
|
+
this.headers.set("Set-Cookie", this.setCookies.join(", "));
|
|
67
|
+
}
|
|
68
|
+
getAll() {
|
|
69
|
+
return { ...this.cookies };
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
__name(_WebCookieJar, "WebCookieJar");
|
|
73
|
+
var WebCookieJar = _WebCookieJar;
|
|
74
|
+
function mapToHeaders(map) {
|
|
75
|
+
const headers = new Headers();
|
|
76
|
+
for (const [key, value] of map) {
|
|
77
|
+
if (key.toLowerCase() === "set-cookie") {
|
|
78
|
+
headers.append(key, value);
|
|
79
|
+
} else {
|
|
80
|
+
headers.set(key, value);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return headers;
|
|
84
|
+
}
|
|
85
|
+
__name(mapToHeaders, "mapToHeaders");
|
|
86
|
+
function headersToRecord(headers) {
|
|
87
|
+
return Object.fromEntries(headers);
|
|
88
|
+
}
|
|
89
|
+
__name(headersToRecord, "headersToRecord");
|
|
90
|
+
function isMiddlewareResponse(value) {
|
|
91
|
+
return value instanceof Response;
|
|
92
|
+
}
|
|
93
|
+
__name(isMiddlewareResponse, "isMiddlewareResponse");
|
|
94
|
+
function createResponseShim(headers) {
|
|
95
|
+
return {
|
|
96
|
+
headersSent: false,
|
|
97
|
+
writableEnded: false,
|
|
98
|
+
setHeader(name, value) {
|
|
99
|
+
headers.set(name, Array.isArray(value) ? value.join(", ") : String(value));
|
|
100
|
+
},
|
|
101
|
+
getHeader(name) {
|
|
102
|
+
return headers.get(name);
|
|
103
|
+
},
|
|
104
|
+
writeHead(status, responseHeaders) {
|
|
105
|
+
this.statusCode = status;
|
|
106
|
+
if (responseHeaders) {
|
|
107
|
+
for (const [key, value] of Object.entries(responseHeaders)) {
|
|
108
|
+
headers.set(key, value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.headersSent = true;
|
|
112
|
+
},
|
|
113
|
+
end() {
|
|
114
|
+
this.writableEnded = true;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
__name(createResponseShim, "createResponseShim");
|
|
119
|
+
function withNodeRequestShape(request) {
|
|
120
|
+
const requestWithShape = request;
|
|
121
|
+
if (!requestWithShape.socket) {
|
|
122
|
+
const forwardedFor = request.headers.get("x-forwarded-for")?.split(",")[0]?.trim();
|
|
123
|
+
try {
|
|
124
|
+
requestWithShape.socket = {
|
|
125
|
+
remoteAddress: forwardedFor || "127.0.0.1"
|
|
126
|
+
};
|
|
127
|
+
} catch {
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return requestWithShape;
|
|
131
|
+
}
|
|
132
|
+
__name(withNodeRequestShape, "withNodeRequestShape");
|
|
133
|
+
function createHandledResponse(body, init, headers) {
|
|
134
|
+
const responseHeaders = new Headers(init.headers);
|
|
135
|
+
for (const [key, value] of headers) {
|
|
136
|
+
if (key.toLowerCase() === "set-cookie") {
|
|
137
|
+
responseHeaders.append(key, value);
|
|
138
|
+
} else {
|
|
139
|
+
responseHeaders.set(key, value);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return new Response(body, { ...init, headers: responseHeaders });
|
|
143
|
+
}
|
|
144
|
+
__name(createHandledResponse, "createHandledResponse");
|
|
145
|
+
function createWebMiddlewareContext(request, parent) {
|
|
146
|
+
let currentRequest = withNodeRequestShape(request);
|
|
147
|
+
let handledResponse = null;
|
|
148
|
+
const url = new URL(currentRequest.url);
|
|
149
|
+
const data = parent?.data ? new Map(parent.data) : /* @__PURE__ */ new Map();
|
|
150
|
+
const locals = parent?.locals ? new Map(parent.locals) : /* @__PURE__ */ new Map();
|
|
151
|
+
const headers = /* @__PURE__ */ new Map();
|
|
152
|
+
if (parent?.headers) {
|
|
153
|
+
for (const [key, value] of Object.entries(parent.headers)) {
|
|
154
|
+
headers.set(key, value);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const ctx = {
|
|
158
|
+
request: currentRequest,
|
|
159
|
+
response: createResponseShim(headers),
|
|
160
|
+
url,
|
|
161
|
+
pathname: url.pathname,
|
|
162
|
+
searchParams: url.searchParams,
|
|
163
|
+
method: currentRequest.method || "GET",
|
|
164
|
+
params: {},
|
|
165
|
+
route: url.pathname,
|
|
166
|
+
parent,
|
|
167
|
+
vite: {
|
|
168
|
+
isDev: false,
|
|
169
|
+
hmr: false
|
|
170
|
+
},
|
|
171
|
+
data,
|
|
172
|
+
locals,
|
|
173
|
+
headers,
|
|
174
|
+
cookies: new WebCookieJar(currentRequest, headers),
|
|
175
|
+
_handled: false,
|
|
176
|
+
_redirectUrl: void 0,
|
|
177
|
+
_rewriteUrl: void 0,
|
|
178
|
+
redirect(redirectUrl, status = 307) {
|
|
179
|
+
ctx._redirectUrl = redirectUrl;
|
|
180
|
+
ctx._handled = true;
|
|
181
|
+
handledResponse = createHandledResponse(
|
|
182
|
+
`Redirecting to ${redirectUrl}`,
|
|
183
|
+
{
|
|
184
|
+
status,
|
|
185
|
+
headers: {
|
|
186
|
+
Location: redirectUrl,
|
|
187
|
+
"Content-Type": "text/plain"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
headers
|
|
191
|
+
);
|
|
192
|
+
},
|
|
193
|
+
rewrite(rewriteUrl) {
|
|
194
|
+
ctx._rewriteUrl = rewriteUrl;
|
|
195
|
+
const nextUrl = new URL(rewriteUrl, currentRequest.url);
|
|
196
|
+
currentRequest = withNodeRequestShape(new Request(nextUrl, currentRequest));
|
|
197
|
+
ctx.request = currentRequest;
|
|
198
|
+
ctx.url = nextUrl;
|
|
199
|
+
ctx.pathname = nextUrl.pathname;
|
|
200
|
+
ctx.searchParams = nextUrl.searchParams;
|
|
201
|
+
ctx.route = nextUrl.pathname;
|
|
202
|
+
},
|
|
203
|
+
json(jsonData, status = 200) {
|
|
204
|
+
ctx._handled = true;
|
|
205
|
+
handledResponse = createHandledResponse(
|
|
206
|
+
JSON.stringify(jsonData),
|
|
207
|
+
{
|
|
208
|
+
status,
|
|
209
|
+
headers: {
|
|
210
|
+
"Content-Type": "application/json"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
headers
|
|
214
|
+
);
|
|
215
|
+
},
|
|
216
|
+
text(content, status = 200) {
|
|
217
|
+
ctx._handled = true;
|
|
218
|
+
handledResponse = createHandledResponse(
|
|
219
|
+
content,
|
|
220
|
+
{
|
|
221
|
+
status,
|
|
222
|
+
headers: {
|
|
223
|
+
"Content-Type": "text/plain"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
headers
|
|
227
|
+
);
|
|
228
|
+
},
|
|
229
|
+
html(content, status = 200) {
|
|
230
|
+
ctx._handled = true;
|
|
231
|
+
handledResponse = createHandledResponse(
|
|
232
|
+
content,
|
|
233
|
+
{
|
|
234
|
+
status,
|
|
235
|
+
headers: {
|
|
236
|
+
"Content-Type": "text/html"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
headers
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
return {
|
|
244
|
+
ctx,
|
|
245
|
+
getRequest: /* @__PURE__ */ __name(() => currentRequest, "getRequest"),
|
|
246
|
+
getResponse: /* @__PURE__ */ __name(() => handledResponse, "getResponse")
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
__name(createWebMiddlewareContext, "createWebMiddlewareContext");
|
|
250
|
+
function toMatcherList(matcher) {
|
|
251
|
+
if (!matcher) return [];
|
|
252
|
+
return Array.isArray(matcher) ? matcher : [matcher];
|
|
253
|
+
}
|
|
254
|
+
__name(toMatcherList, "toMatcherList");
|
|
255
|
+
function escapeRegex(value) {
|
|
256
|
+
return value.replace(/[|\\{}()[\]^$+?.]/g, "\\$&");
|
|
257
|
+
}
|
|
258
|
+
__name(escapeRegex, "escapeRegex");
|
|
259
|
+
function parseColonParam(segment) {
|
|
260
|
+
const raw = segment.slice(1);
|
|
261
|
+
const last = raw[raw.length - 1];
|
|
262
|
+
const modifier = last === "*" || last === "+" || last === "?" ? last : void 0;
|
|
263
|
+
return {
|
|
264
|
+
name: modifier ? raw.slice(0, -1) : raw,
|
|
265
|
+
modifier
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
__name(parseColonParam, "parseColonParam");
|
|
269
|
+
function compilePathPattern(pattern) {
|
|
270
|
+
const params = [];
|
|
271
|
+
const segments = pattern.split("/").filter(Boolean);
|
|
272
|
+
if (segments.length === 0) {
|
|
273
|
+
return { regex: /^\/$/, params };
|
|
274
|
+
}
|
|
275
|
+
const parts = segments.map((segment) => {
|
|
276
|
+
if (segment === "**") {
|
|
277
|
+
return "(?:/.*)?";
|
|
278
|
+
}
|
|
279
|
+
if (segment === "*") {
|
|
280
|
+
return "/[^/]+";
|
|
281
|
+
}
|
|
282
|
+
if (segment.startsWith(":")) {
|
|
283
|
+
const { name, modifier } = parseColonParam(segment);
|
|
284
|
+
params.push(name);
|
|
285
|
+
if (modifier === "*") {
|
|
286
|
+
return "(?:/(.*))?";
|
|
287
|
+
}
|
|
288
|
+
if (modifier === "+") {
|
|
289
|
+
return "/(.+)";
|
|
290
|
+
}
|
|
291
|
+
return "/([^/]+)";
|
|
292
|
+
}
|
|
293
|
+
if (segment.startsWith("[...") && segment.endsWith("]")) {
|
|
294
|
+
params.push(segment.slice(4, -1));
|
|
295
|
+
return "(?:/(.*))?";
|
|
296
|
+
}
|
|
297
|
+
if (segment.startsWith("[") && segment.endsWith("]")) {
|
|
298
|
+
params.push(segment.slice(1, -1));
|
|
299
|
+
return "/([^/]+)";
|
|
300
|
+
}
|
|
301
|
+
return `/${escapeRegex(segment).replace(/\\\*/g, "[^/]*")}`;
|
|
302
|
+
});
|
|
303
|
+
return {
|
|
304
|
+
regex: new RegExp(`^${parts.join("")}$`),
|
|
305
|
+
params
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
__name(compilePathPattern, "compilePathPattern");
|
|
309
|
+
function matchPattern(pattern, pathname) {
|
|
310
|
+
if (pattern instanceof RegExp) {
|
|
311
|
+
pattern.lastIndex = 0;
|
|
312
|
+
const match2 = pattern.exec(pathname);
|
|
313
|
+
return {
|
|
314
|
+
matched: !!match2,
|
|
315
|
+
params: match2?.groups ? { ...match2.groups } : void 0
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
if (pattern === "*" || pattern === "/(.*)") {
|
|
319
|
+
return { matched: true };
|
|
320
|
+
}
|
|
321
|
+
if (pattern.endsWith("(.*)")) {
|
|
322
|
+
const prefix = pattern.slice(0, -4);
|
|
323
|
+
return { matched: pathname === prefix || pathname.startsWith(`${prefix}/`) };
|
|
324
|
+
}
|
|
325
|
+
const { regex, params } = compilePathPattern(pattern);
|
|
326
|
+
const match = regex.exec(pathname);
|
|
327
|
+
if (!match) {
|
|
328
|
+
return { matched: false };
|
|
329
|
+
}
|
|
330
|
+
const values = {};
|
|
331
|
+
params.forEach((param, index) => {
|
|
332
|
+
values[param] = decodeURIComponent(match[index + 1] || "");
|
|
333
|
+
});
|
|
334
|
+
return {
|
|
335
|
+
matched: true,
|
|
336
|
+
params: Object.keys(values).length > 0 ? values : void 0
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
__name(matchPattern, "matchPattern");
|
|
340
|
+
function matchesConfig(pathname, config, ctx) {
|
|
341
|
+
if (config.exclude) {
|
|
342
|
+
for (const pattern of config.exclude) {
|
|
343
|
+
if (matchPattern(pattern, pathname).matched) {
|
|
344
|
+
return { matched: false };
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (config.matcher) {
|
|
349
|
+
for (const matcher of toMatcherList(config.matcher)) {
|
|
350
|
+
if (typeof matcher === "string" || matcher instanceof RegExp) {
|
|
351
|
+
const result = matchPattern(matcher, pathname);
|
|
352
|
+
if (result.matched) {
|
|
353
|
+
return result;
|
|
354
|
+
}
|
|
355
|
+
} else if (typeof matcher === "function") {
|
|
356
|
+
return { matched: matcher(ctx) };
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return { matched: false };
|
|
360
|
+
}
|
|
361
|
+
return { matched: true };
|
|
362
|
+
}
|
|
363
|
+
__name(matchesConfig, "matchesConfig");
|
|
364
|
+
function matchRoutePath(pathname, middlewarePath) {
|
|
365
|
+
if (middlewarePath === "/") return { matched: true };
|
|
366
|
+
const exactMatch = matchPattern(middlewarePath, pathname);
|
|
367
|
+
if (exactMatch.matched) {
|
|
368
|
+
return exactMatch;
|
|
369
|
+
}
|
|
370
|
+
const nestedMatch = matchPattern(`${middlewarePath}/:__farmRest*`, pathname);
|
|
371
|
+
if (!nestedMatch.matched) {
|
|
372
|
+
return { matched: false };
|
|
373
|
+
}
|
|
374
|
+
const params = { ...nestedMatch.params };
|
|
375
|
+
delete params.__farmRest;
|
|
376
|
+
return {
|
|
377
|
+
matched: true,
|
|
378
|
+
params: Object.keys(params).length > 0 ? params : void 0
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
__name(matchRoutePath, "matchRoutePath");
|
|
382
|
+
function getConfigHandlers(entry) {
|
|
383
|
+
const handlers = [];
|
|
384
|
+
if ("handler" in entry && typeof entry.handler === "function") {
|
|
385
|
+
handlers.push(entry.handler);
|
|
386
|
+
}
|
|
387
|
+
if ("handlers" in entry && Array.isArray(entry.handlers)) {
|
|
388
|
+
handlers.push(...entry.handlers.filter((handler) => typeof handler === "function"));
|
|
389
|
+
}
|
|
390
|
+
return handlers;
|
|
391
|
+
}
|
|
392
|
+
__name(getConfigHandlers, "getConfigHandlers");
|
|
393
|
+
function toMiddlewareConfig(entry) {
|
|
394
|
+
const { matcher, exclude, runtime } = entry;
|
|
395
|
+
return { matcher, exclude, runtime };
|
|
396
|
+
}
|
|
397
|
+
__name(toMiddlewareConfig, "toMiddlewareConfig");
|
|
398
|
+
function normalizeConfigMiddleware(config) {
|
|
399
|
+
const entries = [];
|
|
400
|
+
let globalConfig;
|
|
401
|
+
if (!config) {
|
|
402
|
+
return { entries, globalConfig };
|
|
403
|
+
}
|
|
404
|
+
const configEntries = Array.isArray(config) ? config : [config];
|
|
405
|
+
for (const [index, entry] of configEntries.entries()) {
|
|
406
|
+
const handlers = getConfigHandlers(entry);
|
|
407
|
+
const middlewareConfig = toMiddlewareConfig(entry);
|
|
408
|
+
if (handlers.length === 0) {
|
|
409
|
+
globalConfig = middlewareConfig;
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
entries.push({
|
|
413
|
+
path: "/",
|
|
414
|
+
filePath: `farm.config.ts#middleware-${index}`,
|
|
415
|
+
handlers,
|
|
416
|
+
config: middlewareConfig,
|
|
417
|
+
source: "config"
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
return { entries, globalConfig };
|
|
421
|
+
}
|
|
422
|
+
__name(normalizeConfigMiddleware, "normalizeConfigMiddleware");
|
|
423
|
+
function normalizeFileMiddleware(modules = []) {
|
|
424
|
+
const entries = [];
|
|
425
|
+
for (const moduleEntry of modules) {
|
|
426
|
+
const normalized = normalizeMiddlewareModule(moduleEntry.module, moduleEntry.path);
|
|
427
|
+
if (!normalized) {
|
|
428
|
+
continue;
|
|
429
|
+
}
|
|
430
|
+
entries.push({
|
|
431
|
+
path: moduleEntry.path,
|
|
432
|
+
filePath: moduleEntry.filePath || moduleEntry.path,
|
|
433
|
+
handlers: normalized.handlers,
|
|
434
|
+
config: normalized.config,
|
|
435
|
+
source: "file"
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
return entries;
|
|
439
|
+
}
|
|
440
|
+
__name(normalizeFileMiddleware, "normalizeFileMiddleware");
|
|
441
|
+
async function executeHandlers(handlers, ctx) {
|
|
442
|
+
let handlerIndex = 0;
|
|
443
|
+
let returnedResponse;
|
|
444
|
+
const executeNext = /* @__PURE__ */ __name(async () => {
|
|
445
|
+
if (handlerIndex < handlers.length) {
|
|
446
|
+
const handler = handlers[handlerIndex++];
|
|
447
|
+
const result2 = await handler(ctx, executeNext);
|
|
448
|
+
if (isMiddlewareResponse(result2)) {
|
|
449
|
+
returnedResponse = result2;
|
|
450
|
+
return result2;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return returnedResponse;
|
|
454
|
+
}, "executeNext");
|
|
455
|
+
const result = await executeNext();
|
|
456
|
+
return isMiddlewareResponse(result) ? result : returnedResponse;
|
|
457
|
+
}
|
|
458
|
+
__name(executeHandlers, "executeHandlers");
|
|
459
|
+
function emptyResult(request) {
|
|
460
|
+
return {
|
|
461
|
+
request,
|
|
462
|
+
response: null,
|
|
463
|
+
data: /* @__PURE__ */ new Map(),
|
|
464
|
+
context: /* @__PURE__ */ new Map(),
|
|
465
|
+
headers: new Headers(),
|
|
466
|
+
handled: false
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
__name(emptyResult, "emptyResult");
|
|
470
|
+
function createProductionMiddlewareRunner(options = {}) {
|
|
471
|
+
const configMiddleware = normalizeConfigMiddleware(options.config);
|
|
472
|
+
const fileMiddleware = normalizeFileMiddleware(options.modules);
|
|
473
|
+
const entries = [...configMiddleware.entries, ...fileMiddleware];
|
|
474
|
+
const globalConfig = configMiddleware.globalConfig;
|
|
475
|
+
return /* @__PURE__ */ __name(async function runProductionMiddleware(request) {
|
|
476
|
+
if (!globalConfig && entries.length === 0) {
|
|
477
|
+
return emptyResult(request);
|
|
478
|
+
}
|
|
479
|
+
let contextState = createWebMiddlewareContext(request);
|
|
480
|
+
let ctx = contextState.ctx;
|
|
481
|
+
let currentRequest = contextState.getRequest();
|
|
482
|
+
const initialPathname = options.i18n?.enabled ? stripFarmLocaleFromPathname(ctx.pathname, options.i18n) : ctx.pathname;
|
|
483
|
+
let parentData;
|
|
484
|
+
if (globalConfig) {
|
|
485
|
+
const globalMatch = matchesConfig(initialPathname, globalConfig, ctx);
|
|
486
|
+
if (!globalMatch.matched) {
|
|
487
|
+
return emptyResult(request);
|
|
488
|
+
}
|
|
489
|
+
if (globalMatch.params) {
|
|
490
|
+
ctx.params = { ...ctx.params, ...globalMatch.params };
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
const applicable = entries.map((entry) => ({
|
|
494
|
+
entry,
|
|
495
|
+
routeMatch: entry.source === "config" ? { matched: true } : matchRoutePath(initialPathname, entry.path)
|
|
496
|
+
})).filter((candidate) => candidate.routeMatch.matched);
|
|
497
|
+
if (applicable.length === 0) {
|
|
498
|
+
return {
|
|
499
|
+
request: currentRequest,
|
|
500
|
+
response: null,
|
|
501
|
+
data: new Map(ctx.data),
|
|
502
|
+
context: new Map(ctx.locals),
|
|
503
|
+
headers: mapToHeaders(ctx.headers),
|
|
504
|
+
handled: false
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
for (const candidate of applicable) {
|
|
508
|
+
const { entry, routeMatch } = candidate;
|
|
509
|
+
const configMatch = entry.config ? matchesConfig(initialPathname, entry.config, ctx) : { matched: true };
|
|
510
|
+
if (!configMatch.matched) {
|
|
511
|
+
continue;
|
|
512
|
+
}
|
|
513
|
+
if (parentData) {
|
|
514
|
+
contextState = createWebMiddlewareContext(currentRequest, parentData);
|
|
515
|
+
ctx = contextState.ctx;
|
|
516
|
+
}
|
|
517
|
+
if (routeMatch.params) {
|
|
518
|
+
ctx.params = { ...ctx.params, ...routeMatch.params };
|
|
519
|
+
}
|
|
520
|
+
if (configMatch.params) {
|
|
521
|
+
ctx.params = { ...ctx.params, ...configMatch.params };
|
|
522
|
+
}
|
|
523
|
+
const middlewareStartTime = Date.now();
|
|
524
|
+
const middlewareEvent = {
|
|
525
|
+
route: entry.path,
|
|
526
|
+
pathname: initialPathname,
|
|
527
|
+
name: entry.filePath
|
|
528
|
+
};
|
|
529
|
+
emitFarmEvent({ type: "middleware.start", ...middlewareEvent });
|
|
530
|
+
try {
|
|
531
|
+
const returnedResponse = await executeHandlers(entry.handlers, ctx);
|
|
532
|
+
currentRequest = contextState.getRequest();
|
|
533
|
+
if (returnedResponse) {
|
|
534
|
+
const response = applyProductionMiddlewareHeaders(
|
|
535
|
+
returnedResponse,
|
|
536
|
+
mapToHeaders(ctx.headers)
|
|
537
|
+
);
|
|
538
|
+
emitFarmEvent({
|
|
539
|
+
type: "middleware.shortCircuit",
|
|
540
|
+
...middlewareEvent,
|
|
541
|
+
status: response.status
|
|
542
|
+
});
|
|
543
|
+
return {
|
|
544
|
+
request: currentRequest,
|
|
545
|
+
response,
|
|
546
|
+
data: new Map(ctx.data),
|
|
547
|
+
context: new Map(ctx.locals),
|
|
548
|
+
headers: mapToHeaders(ctx.headers),
|
|
549
|
+
handled: true
|
|
550
|
+
};
|
|
551
|
+
}
|
|
552
|
+
if (ctx._handled) {
|
|
553
|
+
const response = contextState.getResponse() || new Response(null);
|
|
554
|
+
emitFarmEvent({
|
|
555
|
+
type: "middleware.shortCircuit",
|
|
556
|
+
...middlewareEvent,
|
|
557
|
+
status: response.status
|
|
558
|
+
});
|
|
559
|
+
return {
|
|
560
|
+
request: currentRequest,
|
|
561
|
+
response,
|
|
562
|
+
data: new Map(ctx.data),
|
|
563
|
+
context: new Map(ctx.locals),
|
|
564
|
+
headers: mapToHeaders(ctx.headers),
|
|
565
|
+
handled: true
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
emitFarmEvent({
|
|
569
|
+
type: "middleware.complete",
|
|
570
|
+
...middlewareEvent,
|
|
571
|
+
durationMs: Date.now() - middlewareStartTime
|
|
572
|
+
});
|
|
573
|
+
} catch (error) {
|
|
574
|
+
emitFarmEvent({
|
|
575
|
+
type: "middleware.error",
|
|
576
|
+
...middlewareEvent,
|
|
577
|
+
error
|
|
578
|
+
});
|
|
579
|
+
throw error;
|
|
580
|
+
}
|
|
581
|
+
parentData = {
|
|
582
|
+
data: new Map(ctx.data),
|
|
583
|
+
locals: new Map(ctx.locals),
|
|
584
|
+
headers: headersToRecord(ctx.headers)
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
return {
|
|
588
|
+
request: currentRequest,
|
|
589
|
+
response: null,
|
|
590
|
+
data: new Map(ctx.data),
|
|
591
|
+
context: new Map(ctx.locals),
|
|
592
|
+
headers: mapToHeaders(ctx.headers),
|
|
593
|
+
handled: false
|
|
594
|
+
};
|
|
595
|
+
}, "runProductionMiddleware");
|
|
596
|
+
}
|
|
597
|
+
__name(createProductionMiddlewareRunner, "createProductionMiddlewareRunner");
|
|
598
|
+
function applyProductionMiddlewareHeaders(response, middlewareHeaders) {
|
|
599
|
+
if (!middlewareHeaders || Array.from(middlewareHeaders.keys()).length === 0) {
|
|
600
|
+
return response;
|
|
601
|
+
}
|
|
602
|
+
const headers = new Headers(response.headers);
|
|
603
|
+
for (const [key, value] of middlewareHeaders) {
|
|
604
|
+
if (key.toLowerCase() === "set-cookie") {
|
|
605
|
+
headers.append(key, value);
|
|
606
|
+
} else {
|
|
607
|
+
headers.set(key, value);
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
return new Response(response.body, {
|
|
611
|
+
status: response.status,
|
|
612
|
+
statusText: response.statusText,
|
|
613
|
+
headers
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
__name(applyProductionMiddlewareHeaders, "applyProductionMiddlewareHeaders");
|
|
617
|
+
|
|
618
|
+
export {
|
|
619
|
+
createProductionMiddlewareRunner,
|
|
620
|
+
applyProductionMiddlewareHeaders
|
|
621
|
+
};
|
|
622
|
+
//# sourceMappingURL=chunk-EJ7T4TPB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/middleware/production-runtime.ts"],"sourcesContent":["import type {\n CookieJar,\n CookieOptions,\n FarmMiddlewareConfig,\n MiddlewareConfig,\n MiddlewareContext,\n MiddlewareFunction,\n MiddlewareMatcher,\n MiddlewareModule,\n MiddlewareResult,\n} from \"./types\";\nimport { emitFarmEvent } from \"../observability\";\nimport { normalizeMiddlewareModule } from \"./module\";\nimport { stripFarmLocaleFromPathname } from \"../i18n/routing\";\nimport type { ResolvedFarmI18nConfig } from \"../i18n/types\";\n\nexport interface ProductionMiddlewareModuleEntry {\n path: string;\n filePath?: string;\n module: MiddlewareModule | Record<string, any>;\n}\n\nexport interface ProductionMiddlewareRunnerOptions {\n config?: FarmMiddlewareConfig | null;\n modules?: ProductionMiddlewareModuleEntry[];\n i18n?: ResolvedFarmI18nConfig;\n}\n\nexport interface ProductionMiddlewareResult {\n request: Request;\n response: Response | null;\n data: Map<string, any>;\n context: Map<string, any>;\n headers: Headers;\n handled: boolean;\n}\n\ninterface ProductionMiddlewareEntry {\n path: string;\n filePath: string;\n handlers: MiddlewareFunction[];\n config?: MiddlewareConfig;\n source: \"config\" | \"file\";\n}\n\ninterface WebMiddlewareContextState {\n ctx: MiddlewareContext;\n getRequest(): Request;\n getResponse(): Response | null;\n}\n\nfunction parseCookies(cookieHeader?: string | null): Record<string, string> {\n if (!cookieHeader) return {};\n\n return cookieHeader.split(\";\").reduce(\n (cookies, cookie) => {\n const [name, ...rest] = cookie.split(\"=\");\n const value = rest.join(\"=\").trim();\n if (name && value) {\n cookies[name.trim()] = decodeURIComponent(value);\n }\n return cookies;\n },\n {} as Record<string, string>,\n );\n}\n\nfunction serializeCookie(name: string, value: string, options: CookieOptions = {}): string {\n let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options.maxAge) cookie += `; Max-Age=${options.maxAge}`;\n if (options.expires) cookie += `; Expires=${options.expires.toUTCString()}`;\n cookie += `; Path=${options.path || \"/\"}`;\n if (options.domain) cookie += `; Domain=${options.domain}`;\n if (options.secure) cookie += \"; Secure\";\n if (options.httpOnly) cookie += \"; HttpOnly\";\n if (options.sameSite) {\n cookie += `; SameSite=${options.sameSite.charAt(0).toUpperCase()}${options.sameSite.slice(1)}`;\n }\n\n return cookie;\n}\n\nclass WebCookieJar implements CookieJar {\n private cookies: Record<string, string>;\n private setCookies: string[] = [];\n\n constructor(\n request: Request,\n private headers: Map<string, string>,\n ) {\n this.cookies = parseCookies(request.headers.get(\"cookie\"));\n }\n\n get(name: string): string | undefined {\n return this.cookies[name];\n }\n\n set(name: string, value: string, options: CookieOptions = {}): void {\n this.cookies[name] = value;\n const cookieString = serializeCookie(name, value, options);\n this.setCookies.push(cookieString);\n this.headers.set(\"Set-Cookie\", this.setCookies.join(\", \"));\n }\n\n delete(name: string): void {\n delete this.cookies[name];\n const cookieString = serializeCookie(name, \"\", {\n maxAge: 0,\n expires: new Date(0),\n });\n this.setCookies.push(cookieString);\n this.headers.set(\"Set-Cookie\", this.setCookies.join(\", \"));\n }\n\n getAll(): Record<string, string> {\n return { ...this.cookies };\n }\n}\n\nfunction mapToHeaders(map: Map<string, string>): Headers {\n const headers = new Headers();\n for (const [key, value] of map) {\n if (key.toLowerCase() === \"set-cookie\") {\n headers.append(key, value);\n } else {\n headers.set(key, value);\n }\n }\n return headers;\n}\n\nfunction headersToRecord(headers: Map<string, string>): Record<string, string> {\n return Object.fromEntries(headers);\n}\n\nfunction isMiddlewareResponse(value: unknown): value is Response {\n return value instanceof Response;\n}\n\nfunction createResponseShim(headers: Map<string, string>): Record<string, any> {\n return {\n headersSent: false,\n writableEnded: false,\n setHeader(name: string, value: string | string[]) {\n headers.set(name, Array.isArray(value) ? value.join(\", \") : String(value));\n },\n getHeader(name: string) {\n return headers.get(name);\n },\n writeHead(status: number, responseHeaders?: Record<string, string>) {\n this.statusCode = status;\n if (responseHeaders) {\n for (const [key, value] of Object.entries(responseHeaders)) {\n headers.set(key, value);\n }\n }\n this.headersSent = true;\n },\n end() {\n this.writableEnded = true;\n },\n };\n}\n\nfunction withNodeRequestShape(request: Request): Request {\n const requestWithShape = request as Request & {\n socket?: { remoteAddress?: string };\n };\n\n if (!requestWithShape.socket) {\n const forwardedFor = request.headers.get(\"x-forwarded-for\")?.split(\",\")[0]?.trim();\n try {\n requestWithShape.socket = {\n remoteAddress: forwardedFor || \"127.0.0.1\",\n };\n } catch {\n // Some Request implementations may not be extensible.\n }\n }\n\n return requestWithShape;\n}\n\nfunction createHandledResponse(\n body: BodyInit | null,\n init: ResponseInit,\n headers: Map<string, string>,\n): Response {\n const responseHeaders = new Headers(init.headers);\n for (const [key, value] of headers) {\n if (key.toLowerCase() === \"set-cookie\") {\n responseHeaders.append(key, value);\n } else {\n responseHeaders.set(key, value);\n }\n }\n return new Response(body, { ...init, headers: responseHeaders });\n}\n\nfunction createWebMiddlewareContext(\n request: Request,\n parent?: MiddlewareContext[\"parent\"],\n): WebMiddlewareContextState {\n let currentRequest = withNodeRequestShape(request);\n let handledResponse: Response | null = null;\n const url = new URL(currentRequest.url);\n const data = parent?.data ? new Map(parent.data) : new Map<string, any>();\n const locals = parent?.locals ? new Map(parent.locals) : new Map<string, any>();\n const headers = new Map<string, string>();\n\n if (parent?.headers) {\n for (const [key, value] of Object.entries(parent.headers)) {\n headers.set(key, value);\n }\n }\n\n const ctx = {\n request: currentRequest as any,\n response: createResponseShim(headers) as any,\n url,\n pathname: url.pathname,\n searchParams: url.searchParams,\n method: currentRequest.method || \"GET\",\n params: {},\n route: url.pathname,\n parent,\n vite: {\n isDev: false,\n hmr: false,\n },\n data,\n locals,\n headers,\n cookies: new WebCookieJar(currentRequest, headers),\n _handled: false as boolean,\n _redirectUrl: undefined as string | undefined,\n _rewriteUrl: undefined as string | undefined,\n\n redirect(redirectUrl: string, status = 307): void {\n ctx._redirectUrl = redirectUrl;\n ctx._handled = true;\n handledResponse = createHandledResponse(\n `Redirecting to ${redirectUrl}`,\n {\n status,\n headers: {\n Location: redirectUrl,\n \"Content-Type\": \"text/plain\",\n },\n },\n headers,\n );\n },\n\n rewrite(rewriteUrl: string): void {\n ctx._rewriteUrl = rewriteUrl;\n const nextUrl = new URL(rewriteUrl, currentRequest.url);\n currentRequest = withNodeRequestShape(new Request(nextUrl, currentRequest));\n ctx.request = currentRequest as any;\n ctx.url = nextUrl;\n ctx.pathname = nextUrl.pathname;\n ctx.searchParams = nextUrl.searchParams;\n ctx.route = nextUrl.pathname;\n },\n\n json(jsonData: any, status = 200): void {\n ctx._handled = true;\n handledResponse = createHandledResponse(\n JSON.stringify(jsonData),\n {\n status,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n headers,\n );\n },\n\n text(content: string, status = 200): void {\n ctx._handled = true;\n handledResponse = createHandledResponse(\n content,\n {\n status,\n headers: {\n \"Content-Type\": \"text/plain\",\n },\n },\n headers,\n );\n },\n\n html(content: string, status = 200): void {\n ctx._handled = true;\n handledResponse = createHandledResponse(\n content,\n {\n status,\n headers: {\n \"Content-Type\": \"text/html\",\n },\n },\n headers,\n );\n },\n } satisfies MiddlewareContext;\n\n return {\n ctx,\n getRequest: () => currentRequest,\n getResponse: () => handledResponse,\n };\n}\n\nfunction toMatcherList(matcher: MiddlewareConfig[\"matcher\"]): MiddlewareMatcher[] {\n if (!matcher) return [];\n return Array.isArray(matcher) ? matcher : [matcher];\n}\n\nfunction escapeRegex(value: string): string {\n return value.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\");\n}\n\nfunction parseColonParam(segment: string): { name: string; modifier?: string } {\n const raw = segment.slice(1);\n const last = raw[raw.length - 1];\n const modifier = last === \"*\" || last === \"+\" || last === \"?\" ? last : undefined;\n return {\n name: modifier ? raw.slice(0, -1) : raw,\n modifier,\n };\n}\n\nfunction compilePathPattern(pattern: string): { regex: RegExp; params: string[] } {\n const params: string[] = [];\n const segments = pattern.split(\"/\").filter(Boolean);\n\n if (segments.length === 0) {\n return { regex: /^\\/$/, params };\n }\n\n const parts = segments.map((segment) => {\n if (segment === \"**\") {\n return \"(?:/.*)?\";\n }\n\n if (segment === \"*\") {\n return \"/[^/]+\";\n }\n\n if (segment.startsWith(\":\")) {\n const { name, modifier } = parseColonParam(segment);\n params.push(name);\n\n if (modifier === \"*\") {\n return \"(?:/(.*))?\";\n }\n if (modifier === \"+\") {\n return \"/(.+)\";\n }\n return \"/([^/]+)\";\n }\n\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n params.push(segment.slice(4, -1));\n return \"(?:/(.*))?\";\n }\n\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n params.push(segment.slice(1, -1));\n return \"/([^/]+)\";\n }\n\n return `/${escapeRegex(segment).replace(/\\\\\\*/g, \"[^/]*\")}`;\n });\n\n return {\n regex: new RegExp(`^${parts.join(\"\")}$`),\n params,\n };\n}\n\nfunction matchPattern(\n pattern: string | RegExp,\n pathname: string,\n): { matched: boolean; params?: Record<string, string> } {\n if (pattern instanceof RegExp) {\n pattern.lastIndex = 0;\n const match = pattern.exec(pathname);\n return {\n matched: !!match,\n params: match?.groups ? { ...match.groups } : undefined,\n };\n }\n\n if (pattern === \"*\" || pattern === \"/(.*)\") {\n return { matched: true };\n }\n\n if (pattern.endsWith(\"(.*)\")) {\n const prefix = pattern.slice(0, -4);\n return { matched: pathname === prefix || pathname.startsWith(`${prefix}/`) };\n }\n\n const { regex, params } = compilePathPattern(pattern);\n const match = regex.exec(pathname);\n if (!match) {\n return { matched: false };\n }\n\n const values: Record<string, string> = {};\n params.forEach((param, index) => {\n values[param] = decodeURIComponent(match[index + 1] || \"\");\n });\n\n return {\n matched: true,\n params: Object.keys(values).length > 0 ? values : undefined,\n };\n}\n\nfunction matchesConfig(\n pathname: string,\n config: MiddlewareConfig,\n ctx: MiddlewareContext,\n): { matched: boolean; params?: Record<string, string> } {\n if (config.exclude) {\n for (const pattern of config.exclude) {\n if (matchPattern(pattern, pathname).matched) {\n return { matched: false };\n }\n }\n }\n\n if (config.matcher) {\n for (const matcher of toMatcherList(config.matcher)) {\n if (typeof matcher === \"string\" || matcher instanceof RegExp) {\n const result = matchPattern(matcher, pathname);\n if (result.matched) {\n return result;\n }\n } else if (typeof matcher === \"function\") {\n return { matched: matcher(ctx) };\n }\n }\n return { matched: false };\n }\n\n return { matched: true };\n}\n\nfunction matchRoutePath(\n pathname: string,\n middlewarePath: string,\n): { matched: boolean; params?: Record<string, string> } {\n if (middlewarePath === \"/\") return { matched: true };\n\n const exactMatch = matchPattern(middlewarePath, pathname);\n if (exactMatch.matched) {\n return exactMatch;\n }\n\n const nestedMatch = matchPattern(`${middlewarePath}/:__farmRest*`, pathname);\n if (!nestedMatch.matched) {\n return { matched: false };\n }\n\n const params = { ...nestedMatch.params };\n delete params.__farmRest;\n return {\n matched: true,\n params: Object.keys(params).length > 0 ? params : undefined,\n };\n}\n\nfunction getConfigHandlers(\n entry: MiddlewareConfig & {\n handler?: MiddlewareFunction;\n handlers?: MiddlewareFunction[];\n },\n): MiddlewareFunction[] {\n const handlers: MiddlewareFunction[] = [];\n if (\"handler\" in entry && typeof entry.handler === \"function\") {\n handlers.push(entry.handler);\n }\n if (\"handlers\" in entry && Array.isArray(entry.handlers)) {\n handlers.push(...entry.handlers.filter((handler) => typeof handler === \"function\"));\n }\n return handlers;\n}\n\nfunction toMiddlewareConfig(\n entry: MiddlewareConfig & {\n handler?: MiddlewareFunction;\n handlers?: MiddlewareFunction[];\n },\n): MiddlewareConfig {\n const { matcher, exclude, runtime } = entry;\n return { matcher, exclude, runtime };\n}\n\nfunction normalizeConfigMiddleware(config?: FarmMiddlewareConfig | null): {\n entries: ProductionMiddlewareEntry[];\n globalConfig?: MiddlewareConfig;\n} {\n const entries: ProductionMiddlewareEntry[] = [];\n let globalConfig: MiddlewareConfig | undefined;\n\n if (!config) {\n return { entries, globalConfig };\n }\n\n const configEntries = Array.isArray(config) ? config : [config];\n for (const [index, entry] of configEntries.entries()) {\n const handlers = getConfigHandlers(entry);\n const middlewareConfig = toMiddlewareConfig(entry);\n\n if (handlers.length === 0) {\n globalConfig = middlewareConfig;\n continue;\n }\n\n entries.push({\n path: \"/\",\n filePath: `farm.config.ts#middleware-${index}`,\n handlers,\n config: middlewareConfig,\n source: \"config\",\n });\n }\n\n return { entries, globalConfig };\n}\n\nfunction normalizeFileMiddleware(\n modules: ProductionMiddlewareModuleEntry[] = [],\n): ProductionMiddlewareEntry[] {\n const entries: ProductionMiddlewareEntry[] = [];\n\n for (const moduleEntry of modules) {\n const normalized = normalizeMiddlewareModule(moduleEntry.module, moduleEntry.path);\n if (!normalized) {\n continue;\n }\n\n entries.push({\n path: moduleEntry.path,\n filePath: moduleEntry.filePath || moduleEntry.path,\n handlers: normalized.handlers,\n config: normalized.config,\n source: \"file\",\n });\n }\n\n return entries;\n}\n\nasync function executeHandlers(\n handlers: MiddlewareFunction[],\n ctx: MiddlewareContext,\n): Promise<Response | undefined> {\n let handlerIndex = 0;\n let returnedResponse: Response | undefined;\n const executeNext = async (): Promise<MiddlewareResult> => {\n if (handlerIndex < handlers.length) {\n const handler = handlers[handlerIndex++];\n const result = await handler(ctx, executeNext);\n if (isMiddlewareResponse(result)) {\n returnedResponse = result;\n return result;\n }\n }\n return returnedResponse;\n };\n\n const result = await executeNext();\n return isMiddlewareResponse(result) ? result : returnedResponse;\n}\n\nfunction emptyResult(request: Request): ProductionMiddlewareResult {\n return {\n request,\n response: null,\n data: new Map(),\n context: new Map(),\n headers: new Headers(),\n handled: false,\n };\n}\n\nexport function createProductionMiddlewareRunner(options: ProductionMiddlewareRunnerOptions = {}) {\n const configMiddleware = normalizeConfigMiddleware(options.config);\n const fileMiddleware = normalizeFileMiddleware(options.modules);\n const entries = [...configMiddleware.entries, ...fileMiddleware];\n const globalConfig = configMiddleware.globalConfig;\n\n return async function runProductionMiddleware(\n request: Request,\n ): Promise<ProductionMiddlewareResult> {\n if (!globalConfig && entries.length === 0) {\n return emptyResult(request);\n }\n\n let contextState = createWebMiddlewareContext(request);\n let ctx = contextState.ctx;\n let currentRequest = contextState.getRequest();\n const initialPathname = options.i18n?.enabled\n ? stripFarmLocaleFromPathname(ctx.pathname, options.i18n)\n : ctx.pathname;\n let parentData: MiddlewareContext[\"parent\"] | undefined;\n\n if (globalConfig) {\n const globalMatch = matchesConfig(initialPathname, globalConfig, ctx);\n if (!globalMatch.matched) {\n return emptyResult(request);\n }\n if (globalMatch.params) {\n ctx.params = { ...ctx.params, ...globalMatch.params };\n }\n }\n\n const applicable = entries\n .map((entry) => ({\n entry,\n routeMatch:\n entry.source === \"config\"\n ? { matched: true }\n : matchRoutePath(initialPathname, entry.path),\n }))\n .filter((candidate) => candidate.routeMatch.matched);\n\n if (applicable.length === 0) {\n return {\n request: currentRequest,\n response: null,\n data: new Map(ctx.data),\n context: new Map(ctx.locals),\n headers: mapToHeaders(ctx.headers),\n handled: false,\n };\n }\n\n for (const candidate of applicable) {\n const { entry, routeMatch } = candidate;\n const configMatch = entry.config\n ? matchesConfig(initialPathname, entry.config, ctx)\n : { matched: true };\n if (!configMatch.matched) {\n continue;\n }\n\n if (parentData) {\n contextState = createWebMiddlewareContext(currentRequest, parentData);\n ctx = contextState.ctx;\n }\n\n if (routeMatch.params) {\n ctx.params = { ...ctx.params, ...routeMatch.params };\n }\n if (configMatch.params) {\n ctx.params = { ...ctx.params, ...configMatch.params };\n }\n\n const middlewareStartTime = Date.now();\n const middlewareEvent = {\n route: entry.path,\n pathname: initialPathname,\n name: entry.filePath,\n };\n emitFarmEvent({ type: \"middleware.start\", ...middlewareEvent });\n\n try {\n const returnedResponse = await executeHandlers(entry.handlers, ctx);\n currentRequest = contextState.getRequest();\n\n if (returnedResponse) {\n const response = applyProductionMiddlewareHeaders(\n returnedResponse,\n mapToHeaders(ctx.headers),\n );\n emitFarmEvent({\n type: \"middleware.shortCircuit\",\n ...middlewareEvent,\n status: response.status,\n });\n return {\n request: currentRequest,\n response,\n data: new Map(ctx.data),\n context: new Map(ctx.locals),\n headers: mapToHeaders(ctx.headers),\n handled: true,\n };\n }\n\n if (ctx._handled) {\n const response = contextState.getResponse() || new Response(null);\n emitFarmEvent({\n type: \"middleware.shortCircuit\",\n ...middlewareEvent,\n status: response.status,\n });\n return {\n request: currentRequest,\n response,\n data: new Map(ctx.data),\n context: new Map(ctx.locals),\n headers: mapToHeaders(ctx.headers),\n handled: true,\n };\n }\n\n emitFarmEvent({\n type: \"middleware.complete\",\n ...middlewareEvent,\n durationMs: Date.now() - middlewareStartTime,\n });\n } catch (error) {\n emitFarmEvent({\n type: \"middleware.error\",\n ...middlewareEvent,\n error,\n });\n throw error;\n }\n\n parentData = {\n data: new Map(ctx.data),\n locals: new Map(ctx.locals),\n headers: headersToRecord(ctx.headers),\n };\n }\n\n return {\n request: currentRequest,\n response: null,\n data: new Map(ctx.data),\n context: new Map(ctx.locals),\n headers: mapToHeaders(ctx.headers),\n handled: false,\n };\n };\n}\n\nexport function applyProductionMiddlewareHeaders(\n response: Response,\n middlewareHeaders?: Headers | null,\n): Response {\n if (!middlewareHeaders || Array.from(middlewareHeaders.keys()).length === 0) {\n return response;\n }\n\n const headers = new Headers(response.headers);\n for (const [key, value] of middlewareHeaders) {\n if (key.toLowerCase() === \"set-cookie\") {\n headers.append(key, value);\n } else {\n headers.set(key, value);\n }\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n}\n"],"mappings":"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","names":["match","result"]}
|