@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
package/dist/env.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/env.ts"],"sourcesContent":["export interface EnvSchema<TOutput = unknown> {\n parse(value: unknown): TOutput;\n}\n\nexport type EnvParser<TOutput = unknown> =\n | EnvSchema<TOutput>\n | ((value: string | undefined, context: { key: string; scope: \"server\" | \"public\" }) => TOutput);\n\nexport type EnvShape = Record<string, EnvParser<any>>;\n\nexport type InferEnvParser<TParser> =\n TParser extends EnvSchema<infer TOutput>\n ? TOutput\n : TParser extends (value: string | undefined, context: any) => infer TOutput\n ? TOutput\n : never;\n\nexport type InferEnvShape<TShape> = TShape extends EnvShape\n ? { [K in keyof TShape]: InferEnvParser<TShape[K]> }\n : {};\n\nexport interface FarmEnvConfig<\n TServer extends EnvShape = EnvShape,\n TPublic extends EnvShape = EnvShape,\n> {\n server?: TServer;\n public?: TPublic;\n}\n\nexport interface ResolvedFarmEnv<\n TServer extends Record<string, any> = Record<string, unknown>,\n TPublic extends Record<string, any> = Record<string, unknown>,\n> {\n server: TServer;\n public: TPublic;\n}\n\nexport type InferEnv<TConfig> =\n TConfig extends FarmEnvConfig<infer TServer, infer TPublic>\n ? ResolvedFarmEnv<InferEnvShape<TServer>, InferEnvShape<TPublic>>\n : ResolvedFarmEnv;\n\n/**\n * Augmented by generated src/farm-env.d.ts for project-specific autocomplete.\n */\nexport interface FarmEnvTypes {}\n\nexport type FarmServerEnv = FarmEnvTypes extends { server: infer TServer }\n ? TServer extends Record<string, any>\n ? TServer\n : Record<string, unknown>\n : Record<string, unknown>;\n\nexport type FarmPublicEnv = FarmEnvTypes extends { public: infer TPublic }\n ? TPublic extends Record<string, any>\n ? TPublic\n : Record<string, unknown>\n : Record<string, unknown>;\n\nexport type FarmTypedEnv = ResolvedFarmEnv<FarmServerEnv, FarmPublicEnv>;\n\ndeclare const __FARM_PUBLIC_ENV__: Record<string, unknown> | undefined;\ndeclare const __FARM_ENV__: ResolvedFarmEnv | undefined;\n\nconst FARM_ENV_SYMBOL = Symbol.for(\"farm.env\");\nconst farmEnvGlobal = globalThis as typeof globalThis & {\n [FARM_ENV_SYMBOL]?: ResolvedFarmEnv;\n};\nlet currentEnv: ResolvedFarmEnv = getInitialEnv();\n\nexport function resolveEnv<TConfig extends FarmEnvConfig<any, any> | undefined>(\n config: TConfig,\n source: Record<string, string | undefined> = getProcessEnv(),\n): InferEnv<NonNullable<TConfig>> {\n const resolved = {\n server: resolveEnvScope(config?.server, source, \"server\"),\n public: resolveEnvScope(config?.public, source, \"public\"),\n } as InferEnv<NonNullable<TConfig>>;\n\n return resolved;\n}\n\nexport function setEnv(env: ResolvedFarmEnv): void {\n currentEnv = normalizeResolvedEnv(env);\n if (typeof window === \"undefined\") {\n farmEnvGlobal[FARM_ENV_SYMBOL] = currentEnv;\n }\n}\n\nexport function getResolvedEnv<TEnv extends ResolvedFarmEnv = FarmTypedEnv>(): TEnv {\n return getCurrentEnv() as TEnv;\n}\n\nexport function getEnv<TServer extends Record<string, any> = FarmServerEnv>(): TServer;\nexport function getEnv<TKey extends Extract<keyof FarmServerEnv, string>>(\n key: TKey,\n): FarmServerEnv[TKey];\nexport function getEnv(key?: string): unknown {\n assertServerEnvAccess();\n if (key === undefined) {\n return getCurrentEnv().server;\n }\n\n return getCurrentEnv().server[key];\n}\n\nexport function getPublicEnv<TPublic extends Record<string, any> = FarmPublicEnv>(): TPublic;\nexport function getPublicEnv<TKey extends Extract<keyof FarmPublicEnv, string>>(\n key: TKey,\n): FarmPublicEnv[TKey];\nexport function getPublicEnv(key?: string): unknown {\n if (key === undefined) {\n return getCurrentEnv().public;\n }\n\n return getCurrentEnv().public[key];\n}\n\nexport const env = createEnvProxy(\"server\") as FarmServerEnv;\nexport const serverEnv = env;\nexport const publicEnv = createEnvProxy(\"public\") as FarmPublicEnv;\n\nfunction resolveEnvScope(\n shape: EnvShape | undefined,\n source: Record<string, string | undefined>,\n scope: \"server\" | \"public\",\n): Record<string, unknown> {\n if (!shape) {\n return {};\n }\n\n const resolved: Record<string, unknown> = {};\n\n for (const [key, parser] of Object.entries(shape)) {\n try {\n resolved[key] = parseEnvValue(parser, source[key], key, scope);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid ${scope} env \"${key}\": ${message}`);\n }\n }\n\n return resolved;\n}\n\nfunction parseEnvValue(\n parser: EnvParser<any>,\n value: string | undefined,\n key: string,\n scope: \"server\" | \"public\",\n): unknown {\n if (typeof parser === \"function\") {\n return parser(value, { key, scope });\n }\n\n if (parser && typeof parser.parse === \"function\") {\n return parser.parse(value);\n }\n\n throw new Error(\"expected a parser function or schema with parse()\");\n}\n\nfunction createEnvProxy(scope: \"server\" | \"public\"): Record<string, unknown> {\n return new Proxy(\n {},\n {\n get(_target, property) {\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n const env = getEnvScope(scope);\n return env[property];\n },\n ownKeys() {\n return Reflect.ownKeys(getEnvScope(scope));\n },\n getOwnPropertyDescriptor(_target, property) {\n const env = getEnvScope(scope);\n if (!(property in env)) {\n return undefined;\n }\n\n return {\n enumerable: true,\n configurable: true,\n value: env[property as keyof typeof env],\n };\n },\n has(_target, property) {\n return property in getEnvScope(scope);\n },\n },\n );\n}\n\nfunction getEnvScope(scope: \"server\" | \"public\"): Record<string, unknown> {\n if (scope === \"server\") {\n assertServerEnvAccess();\n }\n\n return getCurrentEnv()[scope] || {};\n}\n\nfunction assertServerEnvAccess(): void {\n if (typeof window !== \"undefined\") {\n throw new Error(\"Farm server env is not available in the browser. Use publicEnv.\");\n }\n}\n\nfunction getInitialEnv(): ResolvedFarmEnv {\n const injectedEnv = getInjectedEnv();\n if (injectedEnv) {\n return injectedEnv;\n }\n\n if (typeof window === \"undefined\" && farmEnvGlobal[FARM_ENV_SYMBOL]) {\n return normalizeResolvedEnv(farmEnvGlobal[FARM_ENV_SYMBOL]);\n }\n\n return {\n server: {},\n public: getInjectedPublicEnv(),\n };\n}\n\nfunction getCurrentEnv(): ResolvedFarmEnv {\n if (typeof window === \"undefined\" && farmEnvGlobal[FARM_ENV_SYMBOL]) {\n return farmEnvGlobal[FARM_ENV_SYMBOL];\n }\n\n return currentEnv;\n}\n\nfunction getInjectedEnv(): ResolvedFarmEnv | null {\n try {\n if (typeof __FARM_ENV__ !== \"undefined\" && __FARM_ENV__) {\n return normalizeResolvedEnv(__FARM_ENV__);\n }\n } catch {\n // The compile-time global is only defined in Farm server bundles.\n }\n\n return null;\n}\n\nfunction getInjectedPublicEnv(): Record<string, unknown> {\n try {\n if (typeof __FARM_PUBLIC_ENV__ !== \"undefined\" && __FARM_PUBLIC_ENV__) {\n return __FARM_PUBLIC_ENV__;\n }\n } catch {\n // The compile-time global is only defined in Farm browser bundles.\n }\n\n return {};\n}\n\nfunction normalizeResolvedEnv(env: ResolvedFarmEnv): ResolvedFarmEnv {\n return {\n server: isRecord(env.server) ? env.server : {},\n public: isRecord(env.public) ? env.public : {},\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction getProcessEnv(): Record<string, string | undefined> {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env;\n }\n\n return {};\n}\n"],"mappings":"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","names":["env"]}
|
package/dist/env.d.mts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
interface EnvSchema<TOutput = unknown> {
|
|
2
|
+
parse(value: unknown): TOutput;
|
|
3
|
+
}
|
|
4
|
+
type EnvParser<TOutput = unknown> = EnvSchema<TOutput> | ((value: string | undefined, context: {
|
|
5
|
+
key: string;
|
|
6
|
+
scope: "server" | "public";
|
|
7
|
+
}) => TOutput);
|
|
8
|
+
type EnvShape = Record<string, EnvParser<any>>;
|
|
9
|
+
type InferEnvParser<TParser> = TParser extends EnvSchema<infer TOutput> ? TOutput : TParser extends (value: string | undefined, context: any) => infer TOutput ? TOutput : never;
|
|
10
|
+
type InferEnvShape<TShape> = TShape extends EnvShape ? {
|
|
11
|
+
[K in keyof TShape]: InferEnvParser<TShape[K]>;
|
|
12
|
+
} : {};
|
|
13
|
+
interface FarmEnvConfig<TServer extends EnvShape = EnvShape, TPublic extends EnvShape = EnvShape> {
|
|
14
|
+
server?: TServer;
|
|
15
|
+
public?: TPublic;
|
|
16
|
+
}
|
|
17
|
+
interface ResolvedFarmEnv<TServer extends Record<string, any> = Record<string, unknown>, TPublic extends Record<string, any> = Record<string, unknown>> {
|
|
18
|
+
server: TServer;
|
|
19
|
+
public: TPublic;
|
|
20
|
+
}
|
|
21
|
+
type InferEnv<TConfig> = TConfig extends FarmEnvConfig<infer TServer, infer TPublic> ? ResolvedFarmEnv<InferEnvShape<TServer>, InferEnvShape<TPublic>> : ResolvedFarmEnv;
|
|
22
|
+
/**
|
|
23
|
+
* Augmented by generated src/farm-env.d.ts for project-specific autocomplete.
|
|
24
|
+
*/
|
|
25
|
+
interface FarmEnvTypes {
|
|
26
|
+
}
|
|
27
|
+
type FarmServerEnv = FarmEnvTypes extends {
|
|
28
|
+
server: infer TServer;
|
|
29
|
+
} ? TServer extends Record<string, any> ? TServer : Record<string, unknown> : Record<string, unknown>;
|
|
30
|
+
type FarmPublicEnv = FarmEnvTypes extends {
|
|
31
|
+
public: infer TPublic;
|
|
32
|
+
} ? TPublic extends Record<string, any> ? TPublic : Record<string, unknown> : Record<string, unknown>;
|
|
33
|
+
type FarmTypedEnv = ResolvedFarmEnv<FarmServerEnv, FarmPublicEnv>;
|
|
34
|
+
declare function resolveEnv<TConfig extends FarmEnvConfig<any, any> | undefined>(config: TConfig, source?: Record<string, string | undefined>): InferEnv<NonNullable<TConfig>>;
|
|
35
|
+
declare function setEnv(env: ResolvedFarmEnv): void;
|
|
36
|
+
declare function getResolvedEnv<TEnv extends ResolvedFarmEnv = FarmTypedEnv>(): TEnv;
|
|
37
|
+
declare function getEnv<TServer extends Record<string, any> = FarmServerEnv>(): TServer;
|
|
38
|
+
declare function getEnv<TKey extends Extract<keyof FarmServerEnv, string>>(key: TKey): FarmServerEnv[TKey];
|
|
39
|
+
declare function getPublicEnv<TPublic extends Record<string, any> = FarmPublicEnv>(): TPublic;
|
|
40
|
+
declare function getPublicEnv<TKey extends Extract<keyof FarmPublicEnv, string>>(key: TKey): FarmPublicEnv[TKey];
|
|
41
|
+
declare const env: FarmServerEnv;
|
|
42
|
+
declare const serverEnv: Record<string, unknown>;
|
|
43
|
+
declare const publicEnv: FarmPublicEnv;
|
|
44
|
+
|
|
45
|
+
export { type EnvParser, type EnvSchema, type EnvShape, type FarmEnvConfig, type FarmEnvTypes, type FarmPublicEnv, type FarmServerEnv, type FarmTypedEnv, type InferEnv, type InferEnvParser, type InferEnvShape, type ResolvedFarmEnv, env, getEnv, getPublicEnv, getResolvedEnv, publicEnv, resolveEnv, serverEnv, setEnv };
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
interface EnvSchema<TOutput = unknown> {
|
|
2
|
+
parse(value: unknown): TOutput;
|
|
3
|
+
}
|
|
4
|
+
type EnvParser<TOutput = unknown> = EnvSchema<TOutput> | ((value: string | undefined, context: {
|
|
5
|
+
key: string;
|
|
6
|
+
scope: "server" | "public";
|
|
7
|
+
}) => TOutput);
|
|
8
|
+
type EnvShape = Record<string, EnvParser<any>>;
|
|
9
|
+
type InferEnvParser<TParser> = TParser extends EnvSchema<infer TOutput> ? TOutput : TParser extends (value: string | undefined, context: any) => infer TOutput ? TOutput : never;
|
|
10
|
+
type InferEnvShape<TShape> = TShape extends EnvShape ? {
|
|
11
|
+
[K in keyof TShape]: InferEnvParser<TShape[K]>;
|
|
12
|
+
} : {};
|
|
13
|
+
interface FarmEnvConfig<TServer extends EnvShape = EnvShape, TPublic extends EnvShape = EnvShape> {
|
|
14
|
+
server?: TServer;
|
|
15
|
+
public?: TPublic;
|
|
16
|
+
}
|
|
17
|
+
interface ResolvedFarmEnv<TServer extends Record<string, any> = Record<string, unknown>, TPublic extends Record<string, any> = Record<string, unknown>> {
|
|
18
|
+
server: TServer;
|
|
19
|
+
public: TPublic;
|
|
20
|
+
}
|
|
21
|
+
type InferEnv<TConfig> = TConfig extends FarmEnvConfig<infer TServer, infer TPublic> ? ResolvedFarmEnv<InferEnvShape<TServer>, InferEnvShape<TPublic>> : ResolvedFarmEnv;
|
|
22
|
+
/**
|
|
23
|
+
* Augmented by generated src/farm-env.d.ts for project-specific autocomplete.
|
|
24
|
+
*/
|
|
25
|
+
interface FarmEnvTypes {
|
|
26
|
+
}
|
|
27
|
+
type FarmServerEnv = FarmEnvTypes extends {
|
|
28
|
+
server: infer TServer;
|
|
29
|
+
} ? TServer extends Record<string, any> ? TServer : Record<string, unknown> : Record<string, unknown>;
|
|
30
|
+
type FarmPublicEnv = FarmEnvTypes extends {
|
|
31
|
+
public: infer TPublic;
|
|
32
|
+
} ? TPublic extends Record<string, any> ? TPublic : Record<string, unknown> : Record<string, unknown>;
|
|
33
|
+
type FarmTypedEnv = ResolvedFarmEnv<FarmServerEnv, FarmPublicEnv>;
|
|
34
|
+
declare function resolveEnv<TConfig extends FarmEnvConfig<any, any> | undefined>(config: TConfig, source?: Record<string, string | undefined>): InferEnv<NonNullable<TConfig>>;
|
|
35
|
+
declare function setEnv(env: ResolvedFarmEnv): void;
|
|
36
|
+
declare function getResolvedEnv<TEnv extends ResolvedFarmEnv = FarmTypedEnv>(): TEnv;
|
|
37
|
+
declare function getEnv<TServer extends Record<string, any> = FarmServerEnv>(): TServer;
|
|
38
|
+
declare function getEnv<TKey extends Extract<keyof FarmServerEnv, string>>(key: TKey): FarmServerEnv[TKey];
|
|
39
|
+
declare function getPublicEnv<TPublic extends Record<string, any> = FarmPublicEnv>(): TPublic;
|
|
40
|
+
declare function getPublicEnv<TKey extends Extract<keyof FarmPublicEnv, string>>(key: TKey): FarmPublicEnv[TKey];
|
|
41
|
+
declare const env: FarmServerEnv;
|
|
42
|
+
declare const serverEnv: Record<string, unknown>;
|
|
43
|
+
declare const publicEnv: FarmPublicEnv;
|
|
44
|
+
|
|
45
|
+
export { type EnvParser, type EnvSchema, type EnvShape, type FarmEnvConfig, type FarmEnvTypes, type FarmPublicEnv, type FarmServerEnv, type FarmTypedEnv, type InferEnv, type InferEnvParser, type InferEnvShape, type ResolvedFarmEnv, env, getEnv, getPublicEnv, getResolvedEnv, publicEnv, resolveEnv, serverEnv, setEnv };
|
package/dist/env.mjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
env,
|
|
3
|
+
getEnv,
|
|
4
|
+
getPublicEnv,
|
|
5
|
+
getResolvedEnv,
|
|
6
|
+
publicEnv,
|
|
7
|
+
resolveEnv,
|
|
8
|
+
serverEnv,
|
|
9
|
+
setEnv
|
|
10
|
+
} from "./chunk-RSKVYESE.mjs";
|
|
11
|
+
import "./chunk-CGILA3WO.mjs";
|
|
12
|
+
export {
|
|
13
|
+
env,
|
|
14
|
+
getEnv,
|
|
15
|
+
getPublicEnv,
|
|
16
|
+
getResolvedEnv,
|
|
17
|
+
publicEnv,
|
|
18
|
+
resolveEnv,
|
|
19
|
+
serverEnv,
|
|
20
|
+
setEnv
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=env.mjs.map
|
package/dist/env.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/environment-vite.ts
|
|
22
|
+
var environment_vite_exports = {};
|
|
23
|
+
__export(environment_vite_exports, {
|
|
24
|
+
farmEnvironmentFunctionsPlugin: () => farmEnvironmentFunctionsPlugin,
|
|
25
|
+
transformEnvironmentFunctions: () => transformEnvironmentFunctions
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(environment_vite_exports);
|
|
28
|
+
var ENVIRONMENT_IMPORTS = /* @__PURE__ */ new Set([
|
|
29
|
+
"@farm.js/core",
|
|
30
|
+
"@farm.js/core/environment",
|
|
31
|
+
"@farm.js/core/server"
|
|
32
|
+
]);
|
|
33
|
+
var ENVIRONMENT_FUNCTIONS = /* @__PURE__ */ new Set([
|
|
34
|
+
"createServerOnlyFn",
|
|
35
|
+
"createClientOnlyFn",
|
|
36
|
+
"createIsomorphicFn"
|
|
37
|
+
]);
|
|
38
|
+
var MODULE_EXTENSION_RE = /\.[cm]?[jt]sx?$/;
|
|
39
|
+
function transformEnvironmentFunctions(options) {
|
|
40
|
+
if (!isTransformableModule(options.id) || !containsEnvironmentFunction(options.code)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
let output = options.code;
|
|
44
|
+
let transformed = false;
|
|
45
|
+
for (let pass = 0; pass < 20; pass++) {
|
|
46
|
+
const ast = options.parse(output);
|
|
47
|
+
const bindings = findEnvironmentFunctionBindings(ast);
|
|
48
|
+
if (bindings.named.size === 0 && bindings.namespaces.size === 0) break;
|
|
49
|
+
const calls = findEnvironmentCalls(ast, bindings);
|
|
50
|
+
if (calls.length === 0) break;
|
|
51
|
+
const innermostCalls = calls.filter(
|
|
52
|
+
(call) => !calls.some(
|
|
53
|
+
(candidate) => candidate !== call && candidate.node.start > call.node.start && candidate.node.end < call.node.end
|
|
54
|
+
)
|
|
55
|
+
);
|
|
56
|
+
const replacements = innermostCalls.map(
|
|
57
|
+
(call) => createReplacement(output, options.id, options.environment, call)
|
|
58
|
+
);
|
|
59
|
+
output = applyReplacements(output, replacements);
|
|
60
|
+
transformed = true;
|
|
61
|
+
}
|
|
62
|
+
if (!transformed) return null;
|
|
63
|
+
const remainingAst = options.parse(output);
|
|
64
|
+
const remainingBindings = findEnvironmentFunctionBindings(remainingAst);
|
|
65
|
+
if (findEnvironmentCalls(remainingAst, remainingBindings).length > 0) {
|
|
66
|
+
throw transformError(options.id, "environment functions are nested too deeply");
|
|
67
|
+
}
|
|
68
|
+
return { code: output };
|
|
69
|
+
}
|
|
70
|
+
__name(transformEnvironmentFunctions, "transformEnvironmentFunctions");
|
|
71
|
+
function farmEnvironmentFunctionsPlugin() {
|
|
72
|
+
return {
|
|
73
|
+
name: "farm:environment-functions",
|
|
74
|
+
enforce: "post",
|
|
75
|
+
transform(code, id, transformOptions) {
|
|
76
|
+
const result = transformEnvironmentFunctions({
|
|
77
|
+
code,
|
|
78
|
+
id,
|
|
79
|
+
environment: resolveBuildEnvironment(
|
|
80
|
+
this,
|
|
81
|
+
transformOptions?.ssr
|
|
82
|
+
),
|
|
83
|
+
parse: /* @__PURE__ */ __name((source) => this.parse(source), "parse")
|
|
84
|
+
});
|
|
85
|
+
return result ? { code: result.code, map: null } : null;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
__name(farmEnvironmentFunctionsPlugin, "farmEnvironmentFunctionsPlugin");
|
|
90
|
+
function resolveBuildEnvironment(context, ssr) {
|
|
91
|
+
if (context.environment?.name === "client") return "client";
|
|
92
|
+
if (context.environment?.name === "rsc" || context.environment?.name === "ssr") {
|
|
93
|
+
return "server";
|
|
94
|
+
}
|
|
95
|
+
return ssr ? "server" : "client";
|
|
96
|
+
}
|
|
97
|
+
__name(resolveBuildEnvironment, "resolveBuildEnvironment");
|
|
98
|
+
function findEnvironmentFunctionBindings(ast) {
|
|
99
|
+
const named = /* @__PURE__ */ new Map();
|
|
100
|
+
const namespaces = /* @__PURE__ */ new Set();
|
|
101
|
+
const body = Array.isArray(ast.body) ? ast.body : [];
|
|
102
|
+
for (const statement of body) {
|
|
103
|
+
if (!isAstNode(statement) || statement.type !== "ImportDeclaration") continue;
|
|
104
|
+
const source = isAstNode(statement.source) ? statement.source.value : void 0;
|
|
105
|
+
if (typeof source !== "string" || !ENVIRONMENT_IMPORTS.has(source)) continue;
|
|
106
|
+
const specifiers = Array.isArray(statement.specifiers) ? statement.specifiers : [];
|
|
107
|
+
for (const specifier of specifiers) {
|
|
108
|
+
if (!isAstNode(specifier) || !isAstNode(specifier.local)) continue;
|
|
109
|
+
const localName = specifier.local.name;
|
|
110
|
+
if (typeof localName !== "string") continue;
|
|
111
|
+
if (specifier.type === "ImportNamespaceSpecifier") {
|
|
112
|
+
namespaces.add(localName);
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (specifier.type !== "ImportSpecifier" || !isAstNode(specifier.imported)) continue;
|
|
116
|
+
const importedName = specifier.imported.name ?? specifier.imported.value;
|
|
117
|
+
if (isEnvironmentFunctionKind(importedName)) {
|
|
118
|
+
named.set(localName, importedName);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { named, namespaces };
|
|
123
|
+
}
|
|
124
|
+
__name(findEnvironmentFunctionBindings, "findEnvironmentFunctionBindings");
|
|
125
|
+
function findEnvironmentCalls(ast, bindings) {
|
|
126
|
+
const calls = [];
|
|
127
|
+
walkAst(ast, (node, ancestors) => {
|
|
128
|
+
if (node.type !== "CallExpression" || !isAstNode(node.callee)) return;
|
|
129
|
+
if (node.callee.type === "Identifier" && typeof node.callee.name === "string") {
|
|
130
|
+
const kind = bindings.named.get(node.callee.name);
|
|
131
|
+
if (kind && !isNameShadowed(node.callee.name, ancestors)) calls.push({ node, kind });
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (node.callee.type !== "MemberExpression" || node.callee.computed === true || !isAstNode(node.callee.object) || !isAstNode(node.callee.property) || node.callee.object.type !== "Identifier" || node.callee.property.type !== "Identifier" || typeof node.callee.object.name !== "string" || typeof node.callee.property.name !== "string" || !bindings.namespaces.has(node.callee.object.name) || isNameShadowed(node.callee.object.name, ancestors) || !isEnvironmentFunctionKind(node.callee.property.name)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
calls.push({ node, kind: node.callee.property.name });
|
|
138
|
+
});
|
|
139
|
+
return calls;
|
|
140
|
+
}
|
|
141
|
+
__name(findEnvironmentCalls, "findEnvironmentCalls");
|
|
142
|
+
function createReplacement(code, id, environment, call) {
|
|
143
|
+
const args = Array.isArray(call.node.arguments) ? call.node.arguments : [];
|
|
144
|
+
if (args.length !== 1 || !isAstNode(args[0]) || args[0].type === "SpreadElement") {
|
|
145
|
+
throw transformError(id, `${call.kind}() requires exactly one static argument`);
|
|
146
|
+
}
|
|
147
|
+
let replacement;
|
|
148
|
+
if (call.kind === "createIsomorphicFn") {
|
|
149
|
+
replacement = selectIsomorphicImplementation(code, id, environment, args[0]);
|
|
150
|
+
} else {
|
|
151
|
+
const expected = call.kind === "createServerOnlyFn" ? "server" : "client";
|
|
152
|
+
replacement = environment === expected ? readNode(code, args[0]) : `(0, ${readNode(code, call.node.callee)})(undefined, ${JSON.stringify(environment)})`;
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
start: call.node.start,
|
|
156
|
+
end: call.node.end,
|
|
157
|
+
code: `(${replacement})`
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
__name(createReplacement, "createReplacement");
|
|
161
|
+
function selectIsomorphicImplementation(code, id, environment, optionsNode) {
|
|
162
|
+
if (optionsNode.type !== "ObjectExpression") {
|
|
163
|
+
throw transformError(id, "createIsomorphicFn() requires an inline options object");
|
|
164
|
+
}
|
|
165
|
+
const properties = Array.isArray(optionsNode.properties) ? optionsNode.properties : [];
|
|
166
|
+
if (properties.some((property) => isAstNode(property) && property.type === "SpreadElement")) {
|
|
167
|
+
throw transformError(id, "createIsomorphicFn() does not support spread properties");
|
|
168
|
+
}
|
|
169
|
+
let selectedProperty;
|
|
170
|
+
for (const property of properties) {
|
|
171
|
+
if (!isAstNode(property) || property.type !== "Property" || property.computed === true) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
const key = readPropertyName(property.key);
|
|
175
|
+
if (key === environment) selectedProperty = property;
|
|
176
|
+
}
|
|
177
|
+
if (!selectedProperty || !isAstNode(selectedProperty.value)) {
|
|
178
|
+
throw transformError(id, `createIsomorphicFn() requires a ${environment} implementation`);
|
|
179
|
+
}
|
|
180
|
+
if (selectedProperty.kind !== void 0 && selectedProperty.kind !== "init") {
|
|
181
|
+
throw transformError(id, "createIsomorphicFn() does not support getters or setters");
|
|
182
|
+
}
|
|
183
|
+
return selectedProperty.method === true ? renderObjectMethod(code, id, selectedProperty.value) : readNode(code, selectedProperty.value);
|
|
184
|
+
}
|
|
185
|
+
__name(selectIsomorphicImplementation, "selectIsomorphicImplementation");
|
|
186
|
+
function renderObjectMethod(code, id, functionNode) {
|
|
187
|
+
if (!isAstNode(functionNode.body) || !Array.isArray(functionNode.params)) {
|
|
188
|
+
throw transformError(id, "createIsomorphicFn() received an unsupported method");
|
|
189
|
+
}
|
|
190
|
+
const params = functionNode.params.map((param) => {
|
|
191
|
+
if (!isAstNode(param)) {
|
|
192
|
+
throw transformError(id, "createIsomorphicFn() received an unsupported parameter");
|
|
193
|
+
}
|
|
194
|
+
return readNode(code, param);
|
|
195
|
+
});
|
|
196
|
+
const asyncPrefix = functionNode.async === true ? "async " : "";
|
|
197
|
+
const generatorMarker = functionNode.generator === true ? "*" : "";
|
|
198
|
+
return `${asyncPrefix}function${generatorMarker}(${params.join(", ")}) ${readNode(code, functionNode.body)}`;
|
|
199
|
+
}
|
|
200
|
+
__name(renderObjectMethod, "renderObjectMethod");
|
|
201
|
+
function applyReplacements(code, replacements) {
|
|
202
|
+
let output = code;
|
|
203
|
+
for (const replacement of replacements.sort((left, right) => right.start - left.start)) {
|
|
204
|
+
output = output.slice(0, replacement.start) + replacement.code + output.slice(replacement.end);
|
|
205
|
+
}
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
__name(applyReplacements, "applyReplacements");
|
|
209
|
+
function walkAst(node, visit, ancestors = []) {
|
|
210
|
+
visit(node, ancestors);
|
|
211
|
+
const childAncestors = [...ancestors, node];
|
|
212
|
+
for (const [key, value] of Object.entries(node)) {
|
|
213
|
+
if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
|
|
214
|
+
if (isAstNode(value)) {
|
|
215
|
+
walkAst(value, visit, childAncestors);
|
|
216
|
+
} else if (Array.isArray(value)) {
|
|
217
|
+
for (const item of value) {
|
|
218
|
+
if (isAstNode(item)) walkAst(item, visit, childAncestors);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
__name(walkAst, "walkAst");
|
|
224
|
+
function isNameShadowed(name, ancestors) {
|
|
225
|
+
for (const [index, ancestor] of ancestors.entries()) {
|
|
226
|
+
if (isFunctionNode(ancestor)) {
|
|
227
|
+
const params = Array.isArray(ancestor.params) ? ancestor.params : [];
|
|
228
|
+
if (params.some((param) => patternContainsName(param, name))) return true;
|
|
229
|
+
if (patternContainsName(ancestor.id, name)) return true;
|
|
230
|
+
if (isAstNode(ancestor.body) && ancestors.slice(index + 1).includes(ancestor.body) && functionBodyDeclaresVarName(ancestor.body, name)) {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if (ancestor.type === "CatchClause" && patternContainsName(ancestor.param, name)) {
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
if ((ancestor.type === "BlockStatement" || ancestor.type === "StaticBlock") && blockDeclaresName(ancestor, name)) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
if (loopDeclaresName(ancestor, name)) return true;
|
|
241
|
+
if (ancestor.type === "SwitchStatement" && ancestors.slice(index + 1).some((candidate) => candidate.type === "SwitchCase") && switchDeclaresName(ancestor, name)) {
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
244
|
+
if (ancestor.type === "ClassExpression" && patternContainsName(ancestor.id, name) && ancestors.slice(index + 1).some((candidate) => candidate.type === "ClassBody")) {
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
__name(isNameShadowed, "isNameShadowed");
|
|
251
|
+
function functionBodyDeclaresVarName(body, name) {
|
|
252
|
+
if (body.type === "VariableDeclaration" && body.kind === "var") {
|
|
253
|
+
const declarations = Array.isArray(body.declarations) ? body.declarations : [];
|
|
254
|
+
if (declarations.some(
|
|
255
|
+
(declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name)
|
|
256
|
+
)) {
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
for (const [key, value] of Object.entries(body)) {
|
|
261
|
+
if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
|
|
262
|
+
if (isAstNode(value)) {
|
|
263
|
+
if (isNestedVarScope(value)) continue;
|
|
264
|
+
if (functionBodyDeclaresVarName(value, name)) return true;
|
|
265
|
+
} else if (Array.isArray(value)) {
|
|
266
|
+
for (const item of value) {
|
|
267
|
+
if (!isAstNode(item) || isNestedVarScope(item)) continue;
|
|
268
|
+
if (functionBodyDeclaresVarName(item, name)) return true;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
__name(functionBodyDeclaresVarName, "functionBodyDeclaresVarName");
|
|
275
|
+
function isNestedVarScope(node) {
|
|
276
|
+
return isFunctionNode(node) || node.type === "ClassDeclaration" || node.type === "ClassExpression";
|
|
277
|
+
}
|
|
278
|
+
__name(isNestedVarScope, "isNestedVarScope");
|
|
279
|
+
function loopDeclaresName(node, name) {
|
|
280
|
+
const declaration = node.type === "ForStatement" ? node.init : node.type === "ForInStatement" || node.type === "ForOfStatement" ? node.left : void 0;
|
|
281
|
+
if (!isAstNode(declaration) || declaration.type !== "VariableDeclaration") return false;
|
|
282
|
+
const declarations = Array.isArray(declaration.declarations) ? declaration.declarations : [];
|
|
283
|
+
return declarations.some((item) => isAstNode(item) && patternContainsName(item.id, name));
|
|
284
|
+
}
|
|
285
|
+
__name(loopDeclaresName, "loopDeclaresName");
|
|
286
|
+
function switchDeclaresName(node, name) {
|
|
287
|
+
const cases = Array.isArray(node.cases) ? node.cases : [];
|
|
288
|
+
return cases.some((switchCase) => {
|
|
289
|
+
if (!isAstNode(switchCase) || !Array.isArray(switchCase.consequent)) return false;
|
|
290
|
+
return switchCase.consequent.some((statement) => {
|
|
291
|
+
if (!isAstNode(statement)) return false;
|
|
292
|
+
if ((statement.type === "FunctionDeclaration" || statement.type === "ClassDeclaration") && patternContainsName(statement.id, name)) {
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
if (statement.type !== "VariableDeclaration" || statement.kind === "var") return false;
|
|
296
|
+
const declarations = Array.isArray(statement.declarations) ? statement.declarations : [];
|
|
297
|
+
return declarations.some(
|
|
298
|
+
(declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name)
|
|
299
|
+
);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
__name(switchDeclaresName, "switchDeclaresName");
|
|
304
|
+
function blockDeclaresName(block, name) {
|
|
305
|
+
const statements = Array.isArray(block.body) ? block.body : [];
|
|
306
|
+
for (const statement of statements) {
|
|
307
|
+
if (!isAstNode(statement)) continue;
|
|
308
|
+
if ((statement.type === "FunctionDeclaration" || statement.type === "ClassDeclaration") && patternContainsName(statement.id, name)) {
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
if (statement.type !== "VariableDeclaration" || !Array.isArray(statement.declarations)) {
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
if (statement.declarations.some(
|
|
315
|
+
(declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name)
|
|
316
|
+
)) {
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
__name(blockDeclaresName, "blockDeclaresName");
|
|
323
|
+
function patternContainsName(value, name) {
|
|
324
|
+
if (!isAstNode(value)) return false;
|
|
325
|
+
if (value.type === "Identifier") return value.name === name;
|
|
326
|
+
if (value.type === "RestElement") return patternContainsName(value.argument, name);
|
|
327
|
+
if (value.type === "AssignmentPattern") return patternContainsName(value.left, name);
|
|
328
|
+
if (value.type === "Property") return patternContainsName(value.value, name);
|
|
329
|
+
const elements = Array.isArray(value.elements) ? value.elements : Array.isArray(value.properties) ? value.properties : [];
|
|
330
|
+
return elements.some((element) => patternContainsName(element, name));
|
|
331
|
+
}
|
|
332
|
+
__name(patternContainsName, "patternContainsName");
|
|
333
|
+
function isFunctionNode(node) {
|
|
334
|
+
return node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression";
|
|
335
|
+
}
|
|
336
|
+
__name(isFunctionNode, "isFunctionNode");
|
|
337
|
+
function readPropertyName(value) {
|
|
338
|
+
if (!isAstNode(value)) return void 0;
|
|
339
|
+
if (value.type === "Identifier" && typeof value.name === "string") return value.name;
|
|
340
|
+
if (value.type === "Literal" && typeof value.value === "string") return value.value;
|
|
341
|
+
return void 0;
|
|
342
|
+
}
|
|
343
|
+
__name(readPropertyName, "readPropertyName");
|
|
344
|
+
function readNode(code, node) {
|
|
345
|
+
return code.slice(node.start, node.end);
|
|
346
|
+
}
|
|
347
|
+
__name(readNode, "readNode");
|
|
348
|
+
function isAstNode(value) {
|
|
349
|
+
return !!value && typeof value === "object" && typeof value.type === "string" && typeof value.start === "number" && typeof value.end === "number";
|
|
350
|
+
}
|
|
351
|
+
__name(isAstNode, "isAstNode");
|
|
352
|
+
function isEnvironmentFunctionKind(value) {
|
|
353
|
+
return typeof value === "string" && ENVIRONMENT_FUNCTIONS.has(value);
|
|
354
|
+
}
|
|
355
|
+
__name(isEnvironmentFunctionKind, "isEnvironmentFunctionKind");
|
|
356
|
+
function containsEnvironmentFunction(code) {
|
|
357
|
+
return Array.from(ENVIRONMENT_FUNCTIONS).some((name) => code.includes(name));
|
|
358
|
+
}
|
|
359
|
+
__name(containsEnvironmentFunction, "containsEnvironmentFunction");
|
|
360
|
+
function isTransformableModule(id) {
|
|
361
|
+
const cleanId = id.split("?", 1)[0];
|
|
362
|
+
return MODULE_EXTENSION_RE.test(cleanId) && !/\.d\.[cm]?ts$/.test(cleanId);
|
|
363
|
+
}
|
|
364
|
+
__name(isTransformableModule, "isTransformableModule");
|
|
365
|
+
function transformError(id, message) {
|
|
366
|
+
return new Error(`[Farm environment functions] ${message} in ${id.split("?", 1)[0]}`);
|
|
367
|
+
}
|
|
368
|
+
__name(transformError, "transformError");
|
|
369
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
370
|
+
0 && (module.exports = {
|
|
371
|
+
farmEnvironmentFunctionsPlugin,
|
|
372
|
+
transformEnvironmentFunctions
|
|
373
|
+
});
|
|
374
|
+
//# sourceMappingURL=vite.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/environment-vite.ts"],"sourcesContent":["import type { Plugin } from \"vite\";\nimport type { FarmEnvironment } from \"./environment\";\n\ntype EnvironmentFunctionKind = \"createServerOnlyFn\" | \"createClientOnlyFn\" | \"createIsomorphicFn\";\n\ninterface AstNode {\n type: string;\n start: number;\n end: number;\n [key: string]: unknown;\n}\n\ninterface EnvironmentCall {\n node: AstNode;\n kind: EnvironmentFunctionKind;\n}\n\ninterface Replacement {\n start: number;\n end: number;\n code: string;\n}\n\nexport interface TransformEnvironmentFunctionsOptions {\n code: string;\n id: string;\n environment: FarmEnvironment;\n parse: (code: string) => AstNode;\n}\n\nexport interface TransformEnvironmentFunctionsResult {\n code: string;\n}\n\nconst ENVIRONMENT_IMPORTS = new Set([\n \"@farm.js/core\",\n \"@farm.js/core/environment\",\n \"@farm.js/core/server\",\n]);\nconst ENVIRONMENT_FUNCTIONS = new Set<EnvironmentFunctionKind>([\n \"createServerOnlyFn\",\n \"createClientOnlyFn\",\n \"createIsomorphicFn\",\n]);\nconst MODULE_EXTENSION_RE = /\\.[cm]?[jt]sx?$/;\n\nexport function transformEnvironmentFunctions(\n options: TransformEnvironmentFunctionsOptions,\n): TransformEnvironmentFunctionsResult | null {\n if (!isTransformableModule(options.id) || !containsEnvironmentFunction(options.code)) {\n return null;\n }\n\n let output = options.code;\n let transformed = false;\n\n for (let pass = 0; pass < 20; pass++) {\n const ast = options.parse(output);\n const bindings = findEnvironmentFunctionBindings(ast);\n if (bindings.named.size === 0 && bindings.namespaces.size === 0) break;\n\n const calls = findEnvironmentCalls(ast, bindings);\n if (calls.length === 0) break;\n\n const innermostCalls = calls.filter(\n (call) =>\n !calls.some(\n (candidate) =>\n candidate !== call &&\n candidate.node.start > call.node.start &&\n candidate.node.end < call.node.end,\n ),\n );\n const replacements = innermostCalls.map((call) =>\n createReplacement(output, options.id, options.environment, call),\n );\n\n output = applyReplacements(output, replacements);\n transformed = true;\n }\n\n if (!transformed) return null;\n\n const remainingAst = options.parse(output);\n const remainingBindings = findEnvironmentFunctionBindings(remainingAst);\n if (findEnvironmentCalls(remainingAst, remainingBindings).length > 0) {\n throw transformError(options.id, \"environment functions are nested too deeply\");\n }\n\n return { code: output };\n}\n\nexport function farmEnvironmentFunctionsPlugin(): Plugin {\n return {\n name: \"farm:environment-functions\",\n enforce: \"post\",\n\n transform(code, id, transformOptions) {\n const result = transformEnvironmentFunctions({\n code,\n id,\n environment: resolveBuildEnvironment(\n this as unknown as { environment?: { name?: string } },\n transformOptions?.ssr,\n ),\n parse: (source) => this.parse(source) as unknown as AstNode,\n });\n\n return result ? { code: result.code, map: null } : null;\n },\n };\n}\n\nfunction resolveBuildEnvironment(\n context: { environment?: { name?: string } },\n ssr: boolean | undefined,\n): FarmEnvironment {\n if (context.environment?.name === \"client\") return \"client\";\n if (context.environment?.name === \"rsc\" || context.environment?.name === \"ssr\") {\n return \"server\";\n }\n return ssr ? \"server\" : \"client\";\n}\n\nfunction findEnvironmentFunctionBindings(ast: AstNode) {\n const named = new Map<string, EnvironmentFunctionKind>();\n const namespaces = new Set<string>();\n const body = Array.isArray(ast.body) ? ast.body : [];\n\n for (const statement of body) {\n if (!isAstNode(statement) || statement.type !== \"ImportDeclaration\") continue;\n const source = isAstNode(statement.source) ? statement.source.value : undefined;\n if (typeof source !== \"string\" || !ENVIRONMENT_IMPORTS.has(source)) continue;\n\n const specifiers = Array.isArray(statement.specifiers) ? statement.specifiers : [];\n for (const specifier of specifiers) {\n if (!isAstNode(specifier) || !isAstNode(specifier.local)) continue;\n const localName = specifier.local.name;\n if (typeof localName !== \"string\") continue;\n\n if (specifier.type === \"ImportNamespaceSpecifier\") {\n namespaces.add(localName);\n continue;\n }\n\n if (specifier.type !== \"ImportSpecifier\" || !isAstNode(specifier.imported)) continue;\n const importedName = specifier.imported.name ?? specifier.imported.value;\n if (isEnvironmentFunctionKind(importedName)) {\n named.set(localName, importedName);\n }\n }\n }\n\n return { named, namespaces };\n}\n\nfunction findEnvironmentCalls(\n ast: AstNode,\n bindings: ReturnType<typeof findEnvironmentFunctionBindings>,\n): EnvironmentCall[] {\n const calls: EnvironmentCall[] = [];\n\n walkAst(ast, (node, ancestors) => {\n if (node.type !== \"CallExpression\" || !isAstNode(node.callee)) return;\n\n if (node.callee.type === \"Identifier\" && typeof node.callee.name === \"string\") {\n const kind = bindings.named.get(node.callee.name);\n if (kind && !isNameShadowed(node.callee.name, ancestors)) calls.push({ node, kind });\n return;\n }\n\n if (\n node.callee.type !== \"MemberExpression\" ||\n node.callee.computed === true ||\n !isAstNode(node.callee.object) ||\n !isAstNode(node.callee.property) ||\n node.callee.object.type !== \"Identifier\" ||\n node.callee.property.type !== \"Identifier\" ||\n typeof node.callee.object.name !== \"string\" ||\n typeof node.callee.property.name !== \"string\" ||\n !bindings.namespaces.has(node.callee.object.name) ||\n isNameShadowed(node.callee.object.name, ancestors) ||\n !isEnvironmentFunctionKind(node.callee.property.name)\n ) {\n return;\n }\n\n calls.push({ node, kind: node.callee.property.name });\n });\n\n return calls;\n}\n\nfunction createReplacement(\n code: string,\n id: string,\n environment: FarmEnvironment,\n call: EnvironmentCall,\n): Replacement {\n const args = Array.isArray(call.node.arguments) ? call.node.arguments : [];\n if (args.length !== 1 || !isAstNode(args[0]) || args[0].type === \"SpreadElement\") {\n throw transformError(id, `${call.kind}() requires exactly one static argument`);\n }\n\n let replacement: string;\n if (call.kind === \"createIsomorphicFn\") {\n replacement = selectIsomorphicImplementation(code, id, environment, args[0]);\n } else {\n const expected = call.kind === \"createServerOnlyFn\" ? \"server\" : \"client\";\n replacement =\n environment === expected\n ? readNode(code, args[0])\n : `(0, ${readNode(code, call.node.callee as AstNode)})(undefined, ${JSON.stringify(environment)})`;\n }\n\n return {\n start: call.node.start,\n end: call.node.end,\n code: `(${replacement})`,\n };\n}\n\nfunction selectIsomorphicImplementation(\n code: string,\n id: string,\n environment: FarmEnvironment,\n optionsNode: AstNode,\n): string {\n if (optionsNode.type !== \"ObjectExpression\") {\n throw transformError(id, \"createIsomorphicFn() requires an inline options object\");\n }\n\n const properties = Array.isArray(optionsNode.properties) ? optionsNode.properties : [];\n if (properties.some((property) => isAstNode(property) && property.type === \"SpreadElement\")) {\n throw transformError(id, \"createIsomorphicFn() does not support spread properties\");\n }\n\n let selectedProperty: AstNode | undefined;\n for (const property of properties) {\n if (!isAstNode(property) || property.type !== \"Property\" || property.computed === true) {\n continue;\n }\n const key = readPropertyName(property.key);\n if (key === environment) selectedProperty = property;\n }\n\n if (!selectedProperty || !isAstNode(selectedProperty.value)) {\n throw transformError(id, `createIsomorphicFn() requires a ${environment} implementation`);\n }\n if (selectedProperty.kind !== undefined && selectedProperty.kind !== \"init\") {\n throw transformError(id, \"createIsomorphicFn() does not support getters or setters\");\n }\n\n return selectedProperty.method === true\n ? renderObjectMethod(code, id, selectedProperty.value)\n : readNode(code, selectedProperty.value);\n}\n\nfunction renderObjectMethod(code: string, id: string, functionNode: AstNode): string {\n if (!isAstNode(functionNode.body) || !Array.isArray(functionNode.params)) {\n throw transformError(id, \"createIsomorphicFn() received an unsupported method\");\n }\n\n const params = functionNode.params.map((param) => {\n if (!isAstNode(param)) {\n throw transformError(id, \"createIsomorphicFn() received an unsupported parameter\");\n }\n return readNode(code, param);\n });\n const asyncPrefix = functionNode.async === true ? \"async \" : \"\";\n const generatorMarker = functionNode.generator === true ? \"*\" : \"\";\n return `${asyncPrefix}function${generatorMarker}(${params.join(\", \")}) ${readNode(code, functionNode.body)}`;\n}\n\nfunction applyReplacements(code: string, replacements: Replacement[]): string {\n let output = code;\n for (const replacement of replacements.sort((left, right) => right.start - left.start)) {\n output = output.slice(0, replacement.start) + replacement.code + output.slice(replacement.end);\n }\n return output;\n}\n\nfunction walkAst(\n node: AstNode,\n visit: (node: AstNode, ancestors: readonly AstNode[]) => void,\n ancestors: readonly AstNode[] = [],\n) {\n visit(node, ancestors);\n const childAncestors = [...ancestors, node];\n\n for (const [key, value] of Object.entries(node)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\") continue;\n if (isAstNode(value)) {\n walkAst(value, visit, childAncestors);\n } else if (Array.isArray(value)) {\n for (const item of value) {\n if (isAstNode(item)) walkAst(item, visit, childAncestors);\n }\n }\n }\n}\n\nfunction isNameShadowed(name: string, ancestors: readonly AstNode[]): boolean {\n for (const [index, ancestor] of ancestors.entries()) {\n if (isFunctionNode(ancestor)) {\n const params = Array.isArray(ancestor.params) ? ancestor.params : [];\n if (params.some((param) => patternContainsName(param, name))) return true;\n if (patternContainsName(ancestor.id, name)) return true;\n if (\n isAstNode(ancestor.body) &&\n ancestors.slice(index + 1).includes(ancestor.body) &&\n functionBodyDeclaresVarName(ancestor.body, name)\n ) {\n return true;\n }\n }\n\n if (ancestor.type === \"CatchClause\" && patternContainsName(ancestor.param, name)) {\n return true;\n }\n\n if (\n (ancestor.type === \"BlockStatement\" || ancestor.type === \"StaticBlock\") &&\n blockDeclaresName(ancestor, name)\n ) {\n return true;\n }\n\n if (loopDeclaresName(ancestor, name)) return true;\n\n if (\n ancestor.type === \"SwitchStatement\" &&\n ancestors.slice(index + 1).some((candidate) => candidate.type === \"SwitchCase\") &&\n switchDeclaresName(ancestor, name)\n ) {\n return true;\n }\n\n if (\n ancestor.type === \"ClassExpression\" &&\n patternContainsName(ancestor.id, name) &&\n ancestors.slice(index + 1).some((candidate) => candidate.type === \"ClassBody\")\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction functionBodyDeclaresVarName(body: AstNode, name: string): boolean {\n if (body.type === \"VariableDeclaration\" && body.kind === \"var\") {\n const declarations = Array.isArray(body.declarations) ? body.declarations : [];\n if (\n declarations.some(\n (declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name),\n )\n ) {\n return true;\n }\n }\n\n for (const [key, value] of Object.entries(body)) {\n if (key === \"start\" || key === \"end\" || key === \"loc\" || key === \"range\") continue;\n if (isAstNode(value)) {\n if (isNestedVarScope(value)) continue;\n if (functionBodyDeclaresVarName(value, name)) return true;\n } else if (Array.isArray(value)) {\n for (const item of value) {\n if (!isAstNode(item) || isNestedVarScope(item)) continue;\n if (functionBodyDeclaresVarName(item, name)) return true;\n }\n }\n }\n\n return false;\n}\n\nfunction isNestedVarScope(node: AstNode): boolean {\n return (\n isFunctionNode(node) || node.type === \"ClassDeclaration\" || node.type === \"ClassExpression\"\n );\n}\n\nfunction loopDeclaresName(node: AstNode, name: string): boolean {\n const declaration =\n node.type === \"ForStatement\"\n ? node.init\n : node.type === \"ForInStatement\" || node.type === \"ForOfStatement\"\n ? node.left\n : undefined;\n if (!isAstNode(declaration) || declaration.type !== \"VariableDeclaration\") return false;\n\n const declarations = Array.isArray(declaration.declarations) ? declaration.declarations : [];\n return declarations.some((item) => isAstNode(item) && patternContainsName(item.id, name));\n}\n\nfunction switchDeclaresName(node: AstNode, name: string): boolean {\n const cases = Array.isArray(node.cases) ? node.cases : [];\n return cases.some((switchCase) => {\n if (!isAstNode(switchCase) || !Array.isArray(switchCase.consequent)) return false;\n return switchCase.consequent.some((statement) => {\n if (!isAstNode(statement)) return false;\n if (\n (statement.type === \"FunctionDeclaration\" || statement.type === \"ClassDeclaration\") &&\n patternContainsName(statement.id, name)\n ) {\n return true;\n }\n if (statement.type !== \"VariableDeclaration\" || statement.kind === \"var\") return false;\n const declarations = Array.isArray(statement.declarations) ? statement.declarations : [];\n return declarations.some(\n (declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name),\n );\n });\n });\n}\n\nfunction blockDeclaresName(block: AstNode, name: string): boolean {\n const statements = Array.isArray(block.body) ? block.body : [];\n for (const statement of statements) {\n if (!isAstNode(statement)) continue;\n if (\n (statement.type === \"FunctionDeclaration\" || statement.type === \"ClassDeclaration\") &&\n patternContainsName(statement.id, name)\n ) {\n return true;\n }\n if (statement.type !== \"VariableDeclaration\" || !Array.isArray(statement.declarations)) {\n continue;\n }\n if (\n statement.declarations.some(\n (declaration) => isAstNode(declaration) && patternContainsName(declaration.id, name),\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nfunction patternContainsName(value: unknown, name: string): boolean {\n if (!isAstNode(value)) return false;\n if (value.type === \"Identifier\") return value.name === name;\n\n if (value.type === \"RestElement\") return patternContainsName(value.argument, name);\n if (value.type === \"AssignmentPattern\") return patternContainsName(value.left, name);\n if (value.type === \"Property\") return patternContainsName(value.value, name);\n\n const elements = Array.isArray(value.elements)\n ? value.elements\n : Array.isArray(value.properties)\n ? value.properties\n : [];\n return elements.some((element) => patternContainsName(element, name));\n}\n\nfunction isFunctionNode(node: AstNode): boolean {\n return (\n node.type === \"FunctionDeclaration\" ||\n node.type === \"FunctionExpression\" ||\n node.type === \"ArrowFunctionExpression\"\n );\n}\n\nfunction readPropertyName(value: unknown): string | undefined {\n if (!isAstNode(value)) return undefined;\n if (value.type === \"Identifier\" && typeof value.name === \"string\") return value.name;\n if (value.type === \"Literal\" && typeof value.value === \"string\") return value.value;\n return undefined;\n}\n\nfunction readNode(code: string, node: AstNode): string {\n return code.slice(node.start, node.end);\n}\n\nfunction isAstNode(value: unknown): value is AstNode {\n return (\n !!value &&\n typeof value === \"object\" &&\n typeof (value as AstNode).type === \"string\" &&\n typeof (value as AstNode).start === \"number\" &&\n typeof (value as AstNode).end === \"number\"\n );\n}\n\nfunction isEnvironmentFunctionKind(value: unknown): value is EnvironmentFunctionKind {\n return typeof value === \"string\" && ENVIRONMENT_FUNCTIONS.has(value as EnvironmentFunctionKind);\n}\n\nfunction containsEnvironmentFunction(code: string): boolean {\n return Array.from(ENVIRONMENT_FUNCTIONS).some((name) => code.includes(name));\n}\n\nfunction isTransformableModule(id: string): boolean {\n const cleanId = id.split(\"?\", 1)[0];\n return MODULE_EXTENSION_RE.test(cleanId) && !/\\.d\\.[cm]?ts$/.test(cleanId);\n}\n\nfunction transformError(id: string, message: string): Error {\n return new Error(`[Farm environment functions] ${message} in ${id.split(\"?\", 1)[0]}`);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
import { FarmEnvironment } from '../environment.mjs';
|
|
3
|
+
|
|
4
|
+
interface AstNode {
|
|
5
|
+
type: string;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
interface TransformEnvironmentFunctionsOptions {
|
|
11
|
+
code: string;
|
|
12
|
+
id: string;
|
|
13
|
+
environment: FarmEnvironment;
|
|
14
|
+
parse: (code: string) => AstNode;
|
|
15
|
+
}
|
|
16
|
+
interface TransformEnvironmentFunctionsResult {
|
|
17
|
+
code: string;
|
|
18
|
+
}
|
|
19
|
+
declare function transformEnvironmentFunctions(options: TransformEnvironmentFunctionsOptions): TransformEnvironmentFunctionsResult | null;
|
|
20
|
+
declare function farmEnvironmentFunctionsPlugin(): Plugin;
|
|
21
|
+
|
|
22
|
+
export { type TransformEnvironmentFunctionsOptions, type TransformEnvironmentFunctionsResult, farmEnvironmentFunctionsPlugin, transformEnvironmentFunctions };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
import { FarmEnvironment } from '../environment.js';
|
|
3
|
+
|
|
4
|
+
interface AstNode {
|
|
5
|
+
type: string;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
interface TransformEnvironmentFunctionsOptions {
|
|
11
|
+
code: string;
|
|
12
|
+
id: string;
|
|
13
|
+
environment: FarmEnvironment;
|
|
14
|
+
parse: (code: string) => AstNode;
|
|
15
|
+
}
|
|
16
|
+
interface TransformEnvironmentFunctionsResult {
|
|
17
|
+
code: string;
|
|
18
|
+
}
|
|
19
|
+
declare function transformEnvironmentFunctions(options: TransformEnvironmentFunctionsOptions): TransformEnvironmentFunctionsResult | null;
|
|
20
|
+
declare function farmEnvironmentFunctionsPlugin(): Plugin;
|
|
21
|
+
|
|
22
|
+
export { type TransformEnvironmentFunctionsOptions, type TransformEnvironmentFunctionsResult, farmEnvironmentFunctionsPlugin, transformEnvironmentFunctions };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
farmEnvironmentFunctionsPlugin,
|
|
3
|
+
transformEnvironmentFunctions
|
|
4
|
+
} from "../chunk-V6WE6JSZ.mjs";
|
|
5
|
+
import "../chunk-CGILA3WO.mjs";
|
|
6
|
+
export {
|
|
7
|
+
farmEnvironmentFunctionsPlugin,
|
|
8
|
+
transformEnvironmentFunctions
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=vite.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|