@farm.js/core 0.1.0-beta.5 → 0.1.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/dist/after.cjs +0 -227
- package/dist/after.cjs.map +0 -1
- package/dist/after.d.mts +0 -25
- package/dist/after.d.ts +0 -25
- package/dist/after.mjs +0 -14
- package/dist/after.mjs.map +0 -1
- package/dist/agent-runtime.cjs +0 -2379
- package/dist/agent-runtime.cjs.map +0 -1
- package/dist/agent-runtime.d.mts +0 -94
- package/dist/agent-runtime.d.ts +0 -94
- package/dist/agent-runtime.mjs +0 -479
- package/dist/agent-runtime.mjs.map +0 -1
- package/dist/api/route-manager.d.mts +0 -66
- package/dist/api/route-manager.d.ts +0 -66
- package/dist/api/runtime.d.mts +0 -3
- package/dist/api/runtime.d.ts +0 -3
- package/dist/api.cjs +0 -4100
- package/dist/api.cjs.map +0 -1
- package/dist/api.d.mts +0 -48
- package/dist/api.d.ts +0 -48
- package/dist/api.mjs +0 -93
- package/dist/api.mjs.map +0 -1
- package/dist/app-BjN-da13.d.ts +0 -300
- package/dist/app-CakAr8Be.d.mts +0 -300
- package/dist/app-markdown.cjs +0 -220
- package/dist/app-markdown.cjs.map +0 -1
- package/dist/app-markdown.d.mts +0 -22
- package/dist/app-markdown.d.ts +0 -22
- package/dist/app-markdown.mjs +0 -26
- package/dist/app-markdown.mjs.map +0 -1
- package/dist/cache.cjs +0 -945
- package/dist/cache.cjs.map +0 -1
- package/dist/cache.d.mts +0 -192
- package/dist/cache.d.ts +0 -192
- package/dist/cache.mjs +0 -46
- package/dist/cache.mjs.map +0 -1
- package/dist/chunk-2CUKEMVR.mjs +0 -872
- package/dist/chunk-2CUKEMVR.mjs.map +0 -1
- package/dist/chunk-2ED5Q2GH.mjs +0 -422
- package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
- package/dist/chunk-2NHCNRF6.mjs +0 -6241
- package/dist/chunk-2NHCNRF6.mjs.map +0 -1
- package/dist/chunk-32W4QEJP.mjs +0 -158
- package/dist/chunk-32W4QEJP.mjs.map +0 -1
- package/dist/chunk-3XNTL3FQ.mjs +0 -452
- package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
- package/dist/chunk-44ZCFSKE.mjs +0 -84
- package/dist/chunk-44ZCFSKE.mjs.map +0 -1
- package/dist/chunk-4S3ORGFA.mjs +0 -44
- package/dist/chunk-4S3ORGFA.mjs.map +0 -1
- package/dist/chunk-5BY76U2M.mjs +0 -1
- package/dist/chunk-5BY76U2M.mjs.map +0 -1
- package/dist/chunk-5ZGPRGWV.mjs +0 -136
- package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
- package/dist/chunk-65A7QIKI.mjs +0 -142
- package/dist/chunk-65A7QIKI.mjs.map +0 -1
- package/dist/chunk-74YTBPTY.mjs +0 -450
- package/dist/chunk-74YTBPTY.mjs.map +0 -1
- package/dist/chunk-7HO6AEOP.mjs +0 -74
- package/dist/chunk-7HO6AEOP.mjs.map +0 -1
- package/dist/chunk-7MABZJIM.mjs +0 -29
- package/dist/chunk-7MABZJIM.mjs.map +0 -1
- package/dist/chunk-7N62DNSO.mjs +0 -41
- package/dist/chunk-7N62DNSO.mjs.map +0 -1
- package/dist/chunk-7ZY5AIJO.mjs +0 -161
- package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
- package/dist/chunk-A2LUXHD2.mjs +0 -7631
- package/dist/chunk-A2LUXHD2.mjs.map +0 -1
- package/dist/chunk-ALCLXXTY.mjs +0 -187
- package/dist/chunk-ALCLXXTY.mjs.map +0 -1
- package/dist/chunk-AZ7YUVNR.mjs +0 -65
- package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
- package/dist/chunk-B232I2GP.mjs +0 -163
- package/dist/chunk-B232I2GP.mjs.map +0 -1
- package/dist/chunk-BHG3LVHH.mjs +0 -176
- package/dist/chunk-BHG3LVHH.mjs.map +0 -1
- package/dist/chunk-C2ROET2V.mjs +0 -718
- package/dist/chunk-C2ROET2V.mjs.map +0 -1
- package/dist/chunk-C3DLZMBU.mjs +0 -597
- package/dist/chunk-C3DLZMBU.mjs.map +0 -1
- package/dist/chunk-CGILA3WO.mjs +0 -14
- package/dist/chunk-CGILA3WO.mjs.map +0 -1
- package/dist/chunk-E2MPIBRE.mjs +0 -149
- package/dist/chunk-E2MPIBRE.mjs.map +0 -1
- package/dist/chunk-E6EPN5BT.mjs +0 -203
- package/dist/chunk-E6EPN5BT.mjs.map +0 -1
- package/dist/chunk-EEABSBKK.mjs +0 -10
- package/dist/chunk-EEABSBKK.mjs.map +0 -1
- package/dist/chunk-EJ7T4TPB.mjs +0 -622
- package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
- package/dist/chunk-FQYDHKKU.mjs +0 -128
- package/dist/chunk-FQYDHKKU.mjs.map +0 -1
- package/dist/chunk-FRPWCMMG.mjs +0 -299
- package/dist/chunk-FRPWCMMG.mjs.map +0 -1
- package/dist/chunk-GN72QAIH.mjs +0 -146
- package/dist/chunk-GN72QAIH.mjs.map +0 -1
- package/dist/chunk-GQVGIUSN.mjs +0 -149
- package/dist/chunk-GQVGIUSN.mjs.map +0 -1
- package/dist/chunk-GS6K5OCM.mjs +0 -407
- package/dist/chunk-GS6K5OCM.mjs.map +0 -1
- package/dist/chunk-GXASWWJU.mjs +0 -364
- package/dist/chunk-GXASWWJU.mjs.map +0 -1
- package/dist/chunk-GY2STC2S.mjs +0 -180
- package/dist/chunk-GY2STC2S.mjs.map +0 -1
- package/dist/chunk-H2FA2SBS.mjs +0 -51
- package/dist/chunk-H2FA2SBS.mjs.map +0 -1
- package/dist/chunk-HNIQFZKB.mjs +0 -3550
- package/dist/chunk-HNIQFZKB.mjs.map +0 -1
- package/dist/chunk-ITN462YM.mjs +0 -98
- package/dist/chunk-ITN462YM.mjs.map +0 -1
- package/dist/chunk-J23HNLFY.mjs +0 -72
- package/dist/chunk-J23HNLFY.mjs.map +0 -1
- package/dist/chunk-J4FNJ5IU.mjs +0 -179
- package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
- package/dist/chunk-J5YWQVI5.mjs +0 -211
- package/dist/chunk-J5YWQVI5.mjs.map +0 -1
- package/dist/chunk-JDEOUK5V.mjs +0 -427
- package/dist/chunk-JDEOUK5V.mjs.map +0 -1
- package/dist/chunk-JK25YEN6.mjs +0 -219
- package/dist/chunk-JK25YEN6.mjs.map +0 -1
- package/dist/chunk-K4667E2Q.mjs +0 -1916
- package/dist/chunk-K4667E2Q.mjs.map +0 -1
- package/dist/chunk-LGHEOHBU.mjs +0 -218
- package/dist/chunk-LGHEOHBU.mjs.map +0 -1
- package/dist/chunk-LLC7BNXW.mjs +0 -275
- package/dist/chunk-LLC7BNXW.mjs.map +0 -1
- package/dist/chunk-LM2YNO4U.mjs +0 -24
- package/dist/chunk-LM2YNO4U.mjs.map +0 -1
- package/dist/chunk-MIUW47JX.mjs +0 -639
- package/dist/chunk-MIUW47JX.mjs.map +0 -1
- package/dist/chunk-NM3CRAAL.mjs +0 -467
- package/dist/chunk-NM3CRAAL.mjs.map +0 -1
- package/dist/chunk-NNLCAVB6.mjs +0 -391
- package/dist/chunk-NNLCAVB6.mjs.map +0 -1
- package/dist/chunk-P7QDS5AT.mjs +0 -191
- package/dist/chunk-P7QDS5AT.mjs.map +0 -1
- package/dist/chunk-PFE6GMNE.mjs +0 -603
- package/dist/chunk-PFE6GMNE.mjs.map +0 -1
- package/dist/chunk-QGOHVJ6J.mjs +0 -63
- package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
- package/dist/chunk-QGQX7SFC.mjs +0 -180
- package/dist/chunk-QGQX7SFC.mjs.map +0 -1
- package/dist/chunk-QKVUNGAH.mjs +0 -39
- package/dist/chunk-QKVUNGAH.mjs.map +0 -1
- package/dist/chunk-QM746KUO.mjs +0 -56
- package/dist/chunk-QM746KUO.mjs.map +0 -1
- package/dist/chunk-QTZZ2ISQ.mjs +0 -753
- package/dist/chunk-QTZZ2ISQ.mjs.map +0 -1
- package/dist/chunk-RBRLLZL5.mjs +0 -81
- package/dist/chunk-RBRLLZL5.mjs.map +0 -1
- package/dist/chunk-RHIFZZUI.mjs +0 -69
- package/dist/chunk-RHIFZZUI.mjs.map +0 -1
- package/dist/chunk-RSKVYESE.mjs +0 -187
- package/dist/chunk-RSKVYESE.mjs.map +0 -1
- package/dist/chunk-SCFX4UTD.mjs +0 -28
- package/dist/chunk-SCFX4UTD.mjs.map +0 -1
- package/dist/chunk-SL6HTIOK.mjs +0 -66
- package/dist/chunk-SL6HTIOK.mjs.map +0 -1
- package/dist/chunk-SPBBQLXI.mjs +0 -207
- package/dist/chunk-SPBBQLXI.mjs.map +0 -1
- package/dist/chunk-T4QJQK76.mjs +0 -459
- package/dist/chunk-T4QJQK76.mjs.map +0 -1
- package/dist/chunk-TQAEEJB4.mjs +0 -157
- package/dist/chunk-TQAEEJB4.mjs.map +0 -1
- package/dist/chunk-UB5UOSHB.mjs +0 -458
- package/dist/chunk-UB5UOSHB.mjs.map +0 -1
- package/dist/chunk-USWZZUEH.mjs +0 -25
- package/dist/chunk-USWZZUEH.mjs.map +0 -1
- package/dist/chunk-UVCIEUJC.mjs +0 -16
- package/dist/chunk-UVCIEUJC.mjs.map +0 -1
- package/dist/chunk-UXUAWNO5.mjs +0 -396
- package/dist/chunk-UXUAWNO5.mjs.map +0 -1
- package/dist/chunk-V3XURYJO.mjs +0 -756
- package/dist/chunk-V3XURYJO.mjs.map +0 -1
- package/dist/chunk-V6WE6JSZ.mjs +0 -352
- package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
- package/dist/chunk-V7RBCSDJ.mjs +0 -170
- package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
- package/dist/chunk-VCANOYFI.mjs +0 -588
- package/dist/chunk-VCANOYFI.mjs.map +0 -1
- package/dist/chunk-VY2UYN5R.mjs +0 -224
- package/dist/chunk-VY2UYN5R.mjs.map +0 -1
- package/dist/chunk-W2CRQFF6.mjs +0 -1352
- package/dist/chunk-W2CRQFF6.mjs.map +0 -1
- package/dist/chunk-WZ5QFROO.mjs +0 -23
- package/dist/chunk-WZ5QFROO.mjs.map +0 -1
- package/dist/chunk-XIVV5IWN.mjs +0 -541
- package/dist/chunk-XIVV5IWN.mjs.map +0 -1
- package/dist/chunk-YW7OBE6Q.mjs +0 -119
- package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
- package/dist/chunk-Z5CQMP54.mjs +0 -365
- package/dist/chunk-Z5CQMP54.mjs.map +0 -1
- package/dist/chunk-ZBE6MLHL.mjs +0 -230
- package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
- package/dist/chunk-ZZ57EH5Z.mjs +0 -173
- package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
- package/dist/client-BT1mFQas.d.mts +0 -447
- package/dist/client-Nn0q4eO4.d.ts +0 -447
- package/dist/client-cache-CIlyBlmx.d.ts +0 -6
- package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
- package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
- package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
- package/dist/client-plugins.cjs +0 -415
- package/dist/client-plugins.cjs.map +0 -1
- package/dist/client-plugins.d.mts +0 -22
- package/dist/client-plugins.d.ts +0 -22
- package/dist/client-plugins.mjs +0 -10
- package/dist/client-plugins.mjs.map +0 -1
- package/dist/client.cjs +0 -5402
- package/dist/client.cjs.map +0 -1
- package/dist/client.d.mts +0 -447
- package/dist/client.d.ts +0 -447
- package/dist/client.mjs +0 -110
- package/dist/client.mjs.map +0 -1
- package/dist/config.cjs +0 -38
- package/dist/config.cjs.map +0 -1
- package/dist/config.d.mts +0 -29
- package/dist/config.d.ts +0 -29
- package/dist/config.mjs +0 -10
- package/dist/config.mjs.map +0 -1
- package/dist/cron.cjs +0 -406
- package/dist/cron.cjs.map +0 -1
- package/dist/cron.d.mts +0 -78
- package/dist/cron.d.ts +0 -78
- package/dist/cron.mjs +0 -30
- package/dist/cron.mjs.map +0 -1
- package/dist/deferred.cjs +0 -438
- package/dist/deferred.cjs.map +0 -1
- package/dist/deferred.d.mts +0 -42
- package/dist/deferred.d.ts +0 -42
- package/dist/deferred.mjs +0 -28
- package/dist/deferred.mjs.map +0 -1
- package/dist/deployment.cjs +0 -199
- package/dist/deployment.cjs.map +0 -1
- package/dist/deployment.d.mts +0 -34
- package/dist/deployment.d.ts +0 -34
- package/dist/deployment.mjs +0 -38
- package/dist/deployment.mjs.map +0 -1
- package/dist/devtools-LVC3VB5P.mjs +0 -370
- package/dist/devtools-LVC3VB5P.mjs.map +0 -1
- package/dist/devtools-client-3XRTBND5.mjs +0 -216
- package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
- package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
- package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
- package/dist/docs.cjs +0 -5553
- package/dist/docs.cjs.map +0 -1
- package/dist/docs.d.mts +0 -69
- package/dist/docs.d.ts +0 -69
- package/dist/docs.mjs +0 -46
- package/dist/docs.mjs.map +0 -1
- package/dist/env-types.cjs +0 -223
- package/dist/env-types.cjs.map +0 -1
- package/dist/env-types.d.mts +0 -11
- package/dist/env-types.d.ts +0 -11
- package/dist/env-types.mjs +0 -9
- package/dist/env-types.mjs.map +0 -1
- package/dist/env.cjs +0 -215
- package/dist/env.cjs.map +0 -1
- package/dist/env.d.mts +0 -45
- package/dist/env.d.ts +0 -45
- package/dist/env.mjs +0 -22
- package/dist/env.mjs.map +0 -1
- package/dist/environment/vite.d.mts +0 -22
- package/dist/environment/vite.d.ts +0 -22
- package/dist/environment.cjs +0 -96
- package/dist/environment.cjs.map +0 -1
- package/dist/environment.d.mts +0 -18
- package/dist/environment.d.ts +0 -18
- package/dist/environment.mjs +0 -14
- package/dist/environment.mjs.map +0 -1
- package/dist/headers.cjs +0 -126
- package/dist/headers.cjs.map +0 -1
- package/dist/headers.d.mts +0 -22
- package/dist/headers.d.ts +0 -22
- package/dist/headers.mjs +0 -12
- package/dist/headers.mjs.map +0 -1
- package/dist/i18n/client.d.mts +0 -32
- package/dist/i18n/client.d.ts +0 -32
- package/dist/i18n/index.d.mts +0 -20
- package/dist/i18n/index.d.ts +0 -20
- package/dist/i18n/server.d.mts +0 -30
- package/dist/i18n/server.d.ts +0 -30
- package/dist/image/server.d.mts +0 -37
- package/dist/image/server.d.ts +0 -37
- package/dist/image/sharp.d.mts +0 -7
- package/dist/image/sharp.d.ts +0 -7
- package/dist/image-config-Duob7wER.d.mts +0 -50
- package/dist/image-config-Duob7wER.d.ts +0 -50
- package/dist/image.cjs +0 -209
- package/dist/image.cjs.map +0 -1
- package/dist/image.d.mts +0 -39
- package/dist/image.d.ts +0 -39
- package/dist/image.mjs +0 -165
- package/dist/image.mjs.map +0 -1
- package/dist/index.cjs +0 -41822
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.mts +0 -451
- package/dist/index.d.ts +0 -451
- package/dist/index.mjs +0 -973
- package/dist/index.mjs.map +0 -1
- package/dist/integration-api-CHT2OKAf.d.mts +0 -93
- package/dist/integration-api-CHT2OKAf.d.ts +0 -93
- package/dist/integration-orm-GQLGU66X.mjs +0 -13
- package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
- package/dist/integrations.cjs +0 -2820
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.d.mts +0 -22
- package/dist/integrations.d.ts +0 -22
- package/dist/integrations.mjs +0 -51
- package/dist/integrations.mjs.map +0 -1
- package/dist/internal/build-runtime.d.mts +0 -39
- package/dist/internal/build-runtime.d.ts +0 -39
- package/dist/internal/client-runtime.d.mts +0 -2
- package/dist/internal/client-runtime.d.ts +0 -2
- package/dist/internal/config-runtime.d.mts +0 -39
- package/dist/internal/config-runtime.d.ts +0 -39
- package/dist/internal/production-node-env.d.mts +0 -12
- package/dist/internal/production-node-env.d.ts +0 -12
- package/dist/internal/production-runtime.d.mts +0 -39
- package/dist/internal/production-runtime.d.ts +0 -39
- package/dist/layers-VWVDTPUZ.mjs +0 -16
- package/dist/layers-VWVDTPUZ.mjs.map +0 -1
- package/dist/manager-THKFTOFE.mjs +0 -10
- package/dist/manager-THKFTOFE.mjs.map +0 -1
- package/dist/markdown.cjs +0 -299
- package/dist/markdown.cjs.map +0 -1
- package/dist/markdown.d.mts +0 -43
- package/dist/markdown.d.ts +0 -43
- package/dist/markdown.mjs +0 -14
- package/dist/markdown.mjs.map +0 -1
- package/dist/metadata-BAPg_Nmo.d.ts +0 -22
- package/dist/metadata-_6i9oFG3.d.mts +0 -22
- package/dist/middleware.cjs +0 -2148
- package/dist/middleware.cjs.map +0 -1
- package/dist/middleware.d.mts +0 -164
- package/dist/middleware.d.ts +0 -164
- package/dist/middleware.mjs +0 -49
- package/dist/middleware.mjs.map +0 -1
- package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
- package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
- package/dist/navigation.cjs +0 -1329
- package/dist/navigation.cjs.map +0 -1
- package/dist/navigation.d.mts +0 -14
- package/dist/navigation.d.ts +0 -14
- package/dist/navigation.mjs +0 -33
- package/dist/navigation.mjs.map +0 -1
- package/dist/nitro-QO5LV6QK.mjs +0 -689
- package/dist/nitro-QO5LV6QK.mjs.map +0 -1
- package/dist/observability.cjs +0 -186
- package/dist/observability.cjs.map +0 -1
- package/dist/observability.d.mts +0 -335
- package/dist/observability.d.ts +0 -335
- package/dist/observability.mjs +0 -16
- package/dist/observability.mjs.map +0 -1
- package/dist/params-BALtrRim.d.ts +0 -15
- package/dist/params-ry-lxqmy.d.mts +0 -15
- package/dist/plugin-BJDf43dc.d.mts +0 -165
- package/dist/plugin-BJDf43dc.d.ts +0 -165
- package/dist/plugin.cjs +0 -23225
- package/dist/plugin.d.mts +0 -22
- package/dist/plugin.d.ts +0 -22
- package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
- package/dist/production-runtime-C_B79w2P.d.mts +0 -28
- package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
- package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
- package/dist/query/client.d.mts +0 -61
- package/dist/query/client.d.ts +0 -61
- package/dist/query/index.d.mts +0 -90
- package/dist/query/index.d.ts +0 -90
- package/dist/query/parsers.d.mts +0 -25
- package/dist/query/parsers.d.ts +0 -25
- package/dist/query/server.d.mts +0 -55
- package/dist/query/server.d.ts +0 -55
- package/dist/request-BrFBuc8G.d.mts +0 -6
- package/dist/request-BslSZIRz.d.ts +0 -6
- package/dist/request.d.mts +0 -2
- package/dist/request.d.ts +0 -2
- package/dist/resolver-C6iecsDV.d.ts +0 -14
- package/dist/resolver-DlOPpjkB.d.mts +0 -14
- package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
- package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
- package/dist/router.d.mts +0 -36
- package/dist/router.d.ts +0 -36
- package/dist/routes.d.mts +0 -224
- package/dist/routes.d.ts +0 -224
- package/dist/runtime-9nQjVM7X.d.mts +0 -206
- package/dist/runtime-B6GvwDS1.d.ts +0 -27
- package/dist/runtime-DeAAZ6gO.d.mts +0 -27
- package/dist/runtime-DgeS2skB.d.ts +0 -206
- package/dist/server-action-security.d.mts +0 -43
- package/dist/server-action-security.d.ts +0 -43
- package/dist/server-fn-client.d.mts +0 -32
- package/dist/server-fn-client.d.ts +0 -32
- package/dist/server-fn.d.mts +0 -93
- package/dist/server-fn.d.ts +0 -93
- package/dist/server-plugins.d.mts +0 -55
- package/dist/server-plugins.d.ts +0 -55
- package/dist/server-query-client.d.mts +0 -50
- package/dist/server-query-client.d.ts +0 -50
- package/dist/server-query.d.mts +0 -36
- package/dist/server-query.d.ts +0 -36
- package/dist/server.d.mts +0 -48
- package/dist/server.d.ts +0 -48
- package/dist/storage.d.mts +0 -52
- package/dist/storage.d.ts +0 -52
- package/dist/testing.d.mts +0 -101
- package/dist/testing.d.ts +0 -101
- package/dist/transport-BmbGTXA5.d.mts +0 -49
- package/dist/transport-BmbGTXA5.d.ts +0 -49
- package/dist/types-BH1lhg5G.d.mts +0 -81
- package/dist/types-BH1lhg5G.d.ts +0 -81
- package/dist/types-C9N-nk5R.d.mts +0 -53
- package/dist/types-C9N-nk5R.d.ts +0 -53
- package/dist/types-D1A6-XvH.d.mts +0 -73
- package/dist/types-D1A6-XvH.d.ts +0 -73
- package/dist/utils-CHXlMDkg.d.mts +0 -23
- package/dist/utils-Drsyz1Vj.d.ts +0 -23
- package/dist/version.d.mts +0 -3
- package/dist/version.d.ts +0 -3
- package/dist/vite.d.mts +0 -22
- package/dist/vite.d.ts +0 -22
- package/dist/workflows.d.mts +0 -110
- package/dist/workflows.d.ts +0 -110
package/dist/chunk-ALCLXXTY.mjs
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__name
|
|
3
|
-
} from "./chunk-CGILA3WO.mjs";
|
|
4
|
-
|
|
5
|
-
// src/api/transport.ts
|
|
6
|
-
function multipart(schema) {
|
|
7
|
-
if (!Object.isExtensible(schema) && !isMultipartSchema(schema)) {
|
|
8
|
-
throw new TypeError("multipart() requires an extensible schema object");
|
|
9
|
-
}
|
|
10
|
-
if (!isMultipartSchema(schema)) {
|
|
11
|
-
Object.defineProperty(schema, "__farmMultipartSchema", {
|
|
12
|
-
value: true,
|
|
13
|
-
configurable: false,
|
|
14
|
-
enumerable: false,
|
|
15
|
-
writable: false
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return schema;
|
|
19
|
-
}
|
|
20
|
-
__name(multipart, "multipart");
|
|
21
|
-
function isMultipartSchema(value) {
|
|
22
|
-
return typeof value === "object" && value !== null && value.__farmMultipartSchema === true && typeof value.parse === "function";
|
|
23
|
-
}
|
|
24
|
-
__name(isMultipartSchema, "isMultipartSchema");
|
|
25
|
-
function toFormData(values) {
|
|
26
|
-
const formData = new FormData();
|
|
27
|
-
for (const [key, value] of Object.entries(values)) {
|
|
28
|
-
if (isUnsafeFormKey(key)) continue;
|
|
29
|
-
if (Array.isArray(value)) {
|
|
30
|
-
for (const entry of value) appendFormValue(formData, key, entry);
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
appendFormValue(formData, key, value);
|
|
34
|
-
}
|
|
35
|
-
return formData;
|
|
36
|
-
}
|
|
37
|
-
__name(toFormData, "toFormData");
|
|
38
|
-
function jsonStream(source, init = {}) {
|
|
39
|
-
const iterator = toAsyncIterator(source);
|
|
40
|
-
const encoder = new TextEncoder();
|
|
41
|
-
let finished = false;
|
|
42
|
-
const body = new ReadableStream(
|
|
43
|
-
{
|
|
44
|
-
async pull(controller) {
|
|
45
|
-
if (finished) return;
|
|
46
|
-
try {
|
|
47
|
-
const next = await iterator.next();
|
|
48
|
-
if (next.done) {
|
|
49
|
-
finished = true;
|
|
50
|
-
controller.close();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
controller.enqueue(encoder.encode(`${JSON.stringify(next.value)}
|
|
54
|
-
`));
|
|
55
|
-
} catch (error) {
|
|
56
|
-
finished = true;
|
|
57
|
-
controller.error(error);
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
async cancel(reason) {
|
|
61
|
-
finished = true;
|
|
62
|
-
await iterator.return?.(reason);
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
// Do not read the next application event until the response consumer
|
|
67
|
-
// requests another chunk.
|
|
68
|
-
highWaterMark: 0
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
const headers = new Headers(init.headers);
|
|
72
|
-
if (!headers.has("content-type")) {
|
|
73
|
-
headers.set("content-type", "application/x-ndjson; charset=utf-8");
|
|
74
|
-
}
|
|
75
|
-
headers.set("cache-control", headers.get("cache-control") ?? "no-store");
|
|
76
|
-
return new Response(body, {
|
|
77
|
-
...init,
|
|
78
|
-
headers
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
__name(jsonStream, "jsonStream");
|
|
82
|
-
function isJSONStreamResponse(response) {
|
|
83
|
-
const contentType = response.headers?.get?.("content-type")?.toLowerCase() ?? "";
|
|
84
|
-
return contentType.includes("application/x-ndjson") || contentType.includes("application/ndjson");
|
|
85
|
-
}
|
|
86
|
-
__name(isJSONStreamResponse, "isJSONStreamResponse");
|
|
87
|
-
function readJSONStream(response) {
|
|
88
|
-
if (!response.body) {
|
|
89
|
-
throw new TypeError("Cannot read a JSON stream response without a body");
|
|
90
|
-
}
|
|
91
|
-
const reader = response.body.getReader();
|
|
92
|
-
const decoder = new TextDecoder();
|
|
93
|
-
let buffer = "";
|
|
94
|
-
let completed = false;
|
|
95
|
-
let claimed = false;
|
|
96
|
-
const iterator = {
|
|
97
|
-
async next() {
|
|
98
|
-
while (true) {
|
|
99
|
-
const lineEnd = buffer.indexOf("\n");
|
|
100
|
-
if (lineEnd >= 0) {
|
|
101
|
-
const line = buffer.slice(0, lineEnd).trim();
|
|
102
|
-
buffer = buffer.slice(lineEnd + 1);
|
|
103
|
-
if (!line) continue;
|
|
104
|
-
return { done: false, value: JSON.parse(line) };
|
|
105
|
-
}
|
|
106
|
-
if (completed) {
|
|
107
|
-
const line = buffer.trim();
|
|
108
|
-
buffer = "";
|
|
109
|
-
if (!line) return { done: true, value: void 0 };
|
|
110
|
-
return { done: false, value: JSON.parse(line) };
|
|
111
|
-
}
|
|
112
|
-
const chunk = await reader.read();
|
|
113
|
-
completed = chunk.done;
|
|
114
|
-
buffer += decoder.decode(chunk.value, { stream: !chunk.done });
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
async return() {
|
|
118
|
-
completed = true;
|
|
119
|
-
buffer = "";
|
|
120
|
-
await reader.cancel();
|
|
121
|
-
return { done: true, value: void 0 };
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
return {
|
|
125
|
-
response,
|
|
126
|
-
async cancel(reason) {
|
|
127
|
-
completed = true;
|
|
128
|
-
buffer = "";
|
|
129
|
-
await reader.cancel(reason);
|
|
130
|
-
},
|
|
131
|
-
[Symbol.asyncIterator]() {
|
|
132
|
-
if (claimed) {
|
|
133
|
-
throw new TypeError("Farm API streams can only be consumed once");
|
|
134
|
-
}
|
|
135
|
-
claimed = true;
|
|
136
|
-
return iterator;
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
__name(readJSONStream, "readJSONStream");
|
|
141
|
-
function isFarmAPIStream(value) {
|
|
142
|
-
return typeof value === "object" && value !== null && "response" in value && typeof value.cancel === "function" && typeof value[Symbol.asyncIterator] === "function";
|
|
143
|
-
}
|
|
144
|
-
__name(isFarmAPIStream, "isFarmAPIStream");
|
|
145
|
-
function appendFormValue(formData, key, value) {
|
|
146
|
-
if (value === void 0) return;
|
|
147
|
-
if (value === null) {
|
|
148
|
-
formData.append(key, "");
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (value instanceof Blob) {
|
|
152
|
-
formData.append(key, value);
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
if (value instanceof Date) {
|
|
156
|
-
formData.append(key, value.toISOString());
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
formData.append(key, String(value));
|
|
160
|
-
}
|
|
161
|
-
__name(appendFormValue, "appendFormValue");
|
|
162
|
-
function isUnsafeFormKey(key) {
|
|
163
|
-
return key === "__proto__" || key === "constructor" || key === "prototype";
|
|
164
|
-
}
|
|
165
|
-
__name(isUnsafeFormKey, "isUnsafeFormKey");
|
|
166
|
-
function toAsyncIterator(source) {
|
|
167
|
-
if (Symbol.asyncIterator in Object(source)) {
|
|
168
|
-
return source[Symbol.asyncIterator]();
|
|
169
|
-
}
|
|
170
|
-
const iterator = source[Symbol.iterator]();
|
|
171
|
-
return {
|
|
172
|
-
next: /* @__PURE__ */ __name(async () => iterator.next(), "next"),
|
|
173
|
-
return: iterator.return ? async (value) => iterator.return(value) : void 0
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
__name(toAsyncIterator, "toAsyncIterator");
|
|
177
|
-
|
|
178
|
-
export {
|
|
179
|
-
multipart,
|
|
180
|
-
isMultipartSchema,
|
|
181
|
-
toFormData,
|
|
182
|
-
jsonStream,
|
|
183
|
-
isJSONStreamResponse,
|
|
184
|
-
readJSONStream,
|
|
185
|
-
isFarmAPIStream
|
|
186
|
-
};
|
|
187
|
-
//# sourceMappingURL=chunk-ALCLXXTY.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/transport.ts"],"sourcesContent":["export type MultipartField = string | number | boolean | bigint | Blob | Date | null | undefined;\n\nexport type MultipartValues = Record<string, MultipartField | readonly MultipartField[]>;\n\n/**\n * A real FormData value that retains the submitted value shape for generated\n * API-client inference.\n */\nexport type TypedFormData<TValues> = FormData & {\n readonly __farmMultipartInput: TValues;\n};\n\nexport type MultipartSchema<TSchema> = TSchema & {\n readonly __farmMultipartSchema: true;\n};\n\nexport type FarmStreamResponse<TItem> = Response & {\n readonly __farmStreamItem: TItem;\n};\n\nexport interface FarmAPIStream<TItem> extends AsyncIterable<TItem> {\n readonly response: Response;\n cancel(reason?: unknown): Promise<void>;\n}\n\ntype SchemaLike = {\n parse(data: unknown): unknown;\n};\n\n/**\n * Mark a body schema as multipart. The handler still receives the schema's\n * parsed object; generated clients require `toFormData(...)` for the request.\n */\nexport function multipart<TSchema extends SchemaLike>(schema: TSchema): MultipartSchema<TSchema> {\n if (!Object.isExtensible(schema) && !isMultipartSchema(schema)) {\n throw new TypeError(\"multipart() requires an extensible schema object\");\n }\n\n if (!isMultipartSchema(schema)) {\n Object.defineProperty(schema, \"__farmMultipartSchema\", {\n value: true,\n configurable: false,\n enumerable: false,\n writable: false,\n });\n }\n\n return schema as MultipartSchema<TSchema>;\n}\n\nexport function isMultipartSchema(value: unknown): value is MultipartSchema<SchemaLike> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { __farmMultipartSchema?: unknown }).__farmMultipartSchema === true &&\n typeof (value as SchemaLike).parse === \"function\"\n );\n}\n\n/**\n * Encode a typed object as multipart FormData without converting File or Blob\n * values to JSON or base64.\n */\nexport function toFormData<TValues extends MultipartValues>(\n values: TValues,\n): TypedFormData<TValues> {\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(values)) {\n if (isUnsafeFormKey(key)) continue;\n if (Array.isArray(value)) {\n for (const entry of value) appendFormValue(formData, key, entry);\n continue;\n }\n appendFormValue(formData, key, value as MultipartField);\n }\n\n return formData as TypedFormData<TValues>;\n}\n\n/**\n * Stream JSON values as newline-delimited JSON. Each source value becomes one\n * independently decodable item instead of buffering the whole response.\n */\nexport function jsonStream<TItem>(\n source: AsyncIterable<TItem> | Iterable<TItem>,\n init: ResponseInit = {},\n): FarmStreamResponse<TItem> {\n const iterator = toAsyncIterator(source);\n const encoder = new TextEncoder();\n let finished = false;\n\n const body = new ReadableStream<Uint8Array>(\n {\n async pull(controller) {\n if (finished) return;\n\n try {\n const next = await iterator.next();\n if (next.done) {\n finished = true;\n controller.close();\n return;\n }\n controller.enqueue(encoder.encode(`${JSON.stringify(next.value)}\\n`));\n } catch (error) {\n finished = true;\n controller.error(error);\n }\n },\n async cancel(reason) {\n finished = true;\n await iterator.return?.(reason);\n },\n },\n {\n // Do not read the next application event until the response consumer\n // requests another chunk.\n highWaterMark: 0,\n },\n );\n const headers = new Headers(init.headers);\n if (!headers.has(\"content-type\")) {\n headers.set(\"content-type\", \"application/x-ndjson; charset=utf-8\");\n }\n headers.set(\"cache-control\", headers.get(\"cache-control\") ?? \"no-store\");\n\n return new Response(body, {\n ...init,\n headers,\n }) as FarmStreamResponse<TItem>;\n}\n\nexport function isJSONStreamResponse(response: { headers?: Pick<Headers, \"get\"> | null }): boolean {\n const contentType = response.headers?.get?.(\"content-type\")?.toLowerCase() ?? \"\";\n return contentType.includes(\"application/x-ndjson\") || contentType.includes(\"application/ndjson\");\n}\n\n/**\n * Decode a Farm JSON stream lazily. The response body is read only as the\n * consumer advances the async iterator, preserving fetch backpressure.\n */\nexport function readJSONStream<TItem>(response: Response): FarmAPIStream<TItem> {\n if (!response.body) {\n throw new TypeError(\"Cannot read a JSON stream response without a body\");\n }\n\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let completed = false;\n let claimed = false;\n\n const iterator: AsyncIterator<TItem> = {\n async next() {\n while (true) {\n const lineEnd = buffer.indexOf(\"\\n\");\n if (lineEnd >= 0) {\n const line = buffer.slice(0, lineEnd).trim();\n buffer = buffer.slice(lineEnd + 1);\n if (!line) continue;\n return { done: false, value: JSON.parse(line) as TItem };\n }\n\n if (completed) {\n const line = buffer.trim();\n buffer = \"\";\n if (!line) return { done: true, value: undefined };\n return { done: false, value: JSON.parse(line) as TItem };\n }\n\n const chunk = await reader.read();\n completed = chunk.done;\n buffer += decoder.decode(chunk.value, { stream: !chunk.done });\n }\n },\n async return() {\n completed = true;\n buffer = \"\";\n await reader.cancel();\n return { done: true, value: undefined };\n },\n };\n\n return {\n response,\n async cancel(reason) {\n completed = true;\n buffer = \"\";\n await reader.cancel(reason);\n },\n [Symbol.asyncIterator]() {\n if (claimed) {\n throw new TypeError(\"Farm API streams can only be consumed once\");\n }\n claimed = true;\n return iterator;\n },\n };\n}\n\nexport function isFarmAPIStream(value: unknown): value is FarmAPIStream<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"response\" in value &&\n typeof (value as FarmAPIStream<unknown>).cancel === \"function\" &&\n typeof (value as FarmAPIStream<unknown>)[Symbol.asyncIterator] === \"function\"\n );\n}\n\nfunction appendFormValue(formData: FormData, key: string, value: MultipartField): void {\n if (value === undefined) return;\n if (value === null) {\n formData.append(key, \"\");\n return;\n }\n if (value instanceof Blob) {\n formData.append(key, value);\n return;\n }\n if (value instanceof Date) {\n formData.append(key, value.toISOString());\n return;\n }\n formData.append(key, String(value));\n}\n\nfunction isUnsafeFormKey(key: string): boolean {\n return key === \"__proto__\" || key === \"constructor\" || key === \"prototype\";\n}\n\nfunction toAsyncIterator<TItem>(\n source: AsyncIterable<TItem> | Iterable<TItem>,\n): AsyncIterator<TItem> {\n if (Symbol.asyncIterator in Object(source)) {\n return (source as AsyncIterable<TItem>)[Symbol.asyncIterator]();\n }\n\n const iterator = (source as Iterable<TItem>)[Symbol.iterator]();\n return {\n next: async () => iterator.next(),\n return: iterator.return ? async (value?: unknown) => iterator.return!(value) : undefined,\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-AZ7YUVNR.mjs
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getCurrentRequest
|
|
3
|
-
} from "./chunk-RHIFZZUI.mjs";
|
|
4
|
-
import {
|
|
5
|
-
__name
|
|
6
|
-
} from "./chunk-CGILA3WO.mjs";
|
|
7
|
-
|
|
8
|
-
// src/headers.ts
|
|
9
|
-
function headers() {
|
|
10
|
-
return new Headers(getCurrentRequest().headers);
|
|
11
|
-
}
|
|
12
|
-
__name(headers, "headers");
|
|
13
|
-
function cookies() {
|
|
14
|
-
const cookieHeader = getCurrentRequest().headers.get("cookie") || "";
|
|
15
|
-
const parsed = parseCookieHeader(cookieHeader);
|
|
16
|
-
return {
|
|
17
|
-
get(name) {
|
|
18
|
-
return parsed.find((cookie) => cookie.name === name);
|
|
19
|
-
},
|
|
20
|
-
getAll(name) {
|
|
21
|
-
return name ? parsed.filter((cookie) => cookie.name === name) : [...parsed];
|
|
22
|
-
},
|
|
23
|
-
has(name) {
|
|
24
|
-
return parsed.some((cookie) => cookie.name === name);
|
|
25
|
-
},
|
|
26
|
-
toString() {
|
|
27
|
-
return cookieHeader;
|
|
28
|
-
},
|
|
29
|
-
[Symbol.iterator]() {
|
|
30
|
-
return parsed[Symbol.iterator]();
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
__name(cookies, "cookies");
|
|
35
|
-
function parseCookieHeader(header) {
|
|
36
|
-
if (!header.trim()) return [];
|
|
37
|
-
return header.split(";").map((part) => part.trim()).filter(Boolean).map((part) => {
|
|
38
|
-
const separatorIndex = part.indexOf("=");
|
|
39
|
-
if (separatorIndex === -1) {
|
|
40
|
-
return {
|
|
41
|
-
name: decodeCookiePart(part),
|
|
42
|
-
value: ""
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
name: decodeCookiePart(part.slice(0, separatorIndex).trim()),
|
|
47
|
-
value: decodeCookiePart(part.slice(separatorIndex + 1).trim())
|
|
48
|
-
};
|
|
49
|
-
}).filter((cookie) => cookie.name.length > 0);
|
|
50
|
-
}
|
|
51
|
-
__name(parseCookieHeader, "parseCookieHeader");
|
|
52
|
-
function decodeCookiePart(value) {
|
|
53
|
-
try {
|
|
54
|
-
return decodeURIComponent(value);
|
|
55
|
-
} catch {
|
|
56
|
-
return value;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
__name(decodeCookiePart, "decodeCookiePart");
|
|
60
|
-
|
|
61
|
-
export {
|
|
62
|
-
headers,
|
|
63
|
-
cookies
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=chunk-AZ7YUVNR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/headers.ts"],"sourcesContent":["import { getCurrentRequest } from \"./server/request\";\n\nexport interface RequestCookie {\n name: string;\n value: string;\n}\n\nexport interface ReadonlyHeaders extends Iterable<[string, string]> {\n get(name: string): string | null;\n has(name: string): boolean;\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\n entries(): IterableIterator<[string, string]>;\n keys(): IterableIterator<string>;\n values(): IterableIterator<string>;\n}\n\nexport interface ReadonlyRequestCookies extends Iterable<RequestCookie> {\n get(name: string): RequestCookie | undefined;\n getAll(name?: string): RequestCookie[];\n has(name: string): boolean;\n toString(): string;\n}\n\nexport function headers(): ReadonlyHeaders {\n return new Headers(getCurrentRequest().headers) as ReadonlyHeaders;\n}\n\nexport function cookies(): ReadonlyRequestCookies {\n const cookieHeader = getCurrentRequest().headers.get(\"cookie\") || \"\";\n const parsed = parseCookieHeader(cookieHeader);\n\n return {\n get(name) {\n return parsed.find((cookie) => cookie.name === name);\n },\n getAll(name) {\n return name ? parsed.filter((cookie) => cookie.name === name) : [...parsed];\n },\n has(name) {\n return parsed.some((cookie) => cookie.name === name);\n },\n toString() {\n return cookieHeader;\n },\n [Symbol.iterator]() {\n return parsed[Symbol.iterator]();\n },\n };\n}\n\nfunction parseCookieHeader(header: string): RequestCookie[] {\n if (!header.trim()) return [];\n\n return header\n .split(\";\")\n .map((part) => part.trim())\n .filter(Boolean)\n .map((part) => {\n const separatorIndex = part.indexOf(\"=\");\n if (separatorIndex === -1) {\n return {\n name: decodeCookiePart(part),\n value: \"\",\n };\n }\n\n return {\n name: decodeCookiePart(part.slice(0, separatorIndex).trim()),\n value: decodeCookiePart(part.slice(separatorIndex + 1).trim()),\n };\n })\n .filter((cookie) => cookie.name.length > 0);\n}\n\nfunction decodeCookiePart(value: string) {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n"],"mappings":";;;;;;;;AAuBO,SAAS,UAA2B;AACzC,SAAO,IAAI,QAAQ,kBAAkB,EAAE,OAAO;AAChD;AAFgB;AAIT,SAAS,UAAkC;AAChD,QAAM,eAAe,kBAAkB,EAAE,QAAQ,IAAI,QAAQ,KAAK;AAClE,QAAM,SAAS,kBAAkB,YAAY;AAE7C,SAAO;AAAA,IACL,IAAI,MAAM;AACR,aAAO,OAAO,KAAK,CAAC,WAAW,OAAO,SAAS,IAAI;AAAA,IACrD;AAAA,IACA,OAAO,MAAM;AACX,aAAO,OAAO,OAAO,OAAO,CAAC,WAAW,OAAO,SAAS,IAAI,IAAI,CAAC,GAAG,MAAM;AAAA,IAC5E;AAAA,IACA,IAAI,MAAM;AACR,aAAO,OAAO,KAAK,CAAC,WAAW,OAAO,SAAS,IAAI;AAAA,IACrD;AAAA,IACA,WAAW;AACT,aAAO;AAAA,IACT;AAAA,IACA,CAAC,OAAO,QAAQ,IAAI;AAClB,aAAO,OAAO,OAAO,QAAQ,EAAE;AAAA,IACjC;AAAA,EACF;AACF;AArBgB;AAuBhB,SAAS,kBAAkB,QAAiC;AAC1D,MAAI,CAAC,OAAO,KAAK,EAAG,QAAO,CAAC;AAE5B,SAAO,OACJ,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,OAAO,EACd,IAAI,CAAC,SAAS;AACb,UAAM,iBAAiB,KAAK,QAAQ,GAAG;AACvC,QAAI,mBAAmB,IAAI;AACzB,aAAO;AAAA,QACL,MAAM,iBAAiB,IAAI;AAAA,QAC3B,OAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,MACL,MAAM,iBAAiB,KAAK,MAAM,GAAG,cAAc,EAAE,KAAK,CAAC;AAAA,MAC3D,OAAO,iBAAiB,KAAK,MAAM,iBAAiB,CAAC,EAAE,KAAK,CAAC;AAAA,IAC/D;AAAA,EACF,CAAC,EACA,OAAO,CAAC,WAAW,OAAO,KAAK,SAAS,CAAC;AAC9C;AAtBS;AAwBT,SAAS,iBAAiB,OAAe;AACvC,MAAI;AACF,WAAO,mBAAmB,KAAK;AAAA,EACjC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AANS;","names":[]}
|
package/dist/chunk-B232I2GP.mjs
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__name
|
|
3
|
-
} from "./chunk-CGILA3WO.mjs";
|
|
4
|
-
|
|
5
|
-
// src/deployment.ts
|
|
6
|
-
var FARM_DEPLOYMENT_ID_HEADER = "x-farm-deployment-id";
|
|
7
|
-
var FARM_DEPLOYMENT_MISMATCH_HEADER = "x-farm-deployment-mismatch";
|
|
8
|
-
var FARM_DEPLOYMENT_COOKIE = "__farm_deployment";
|
|
9
|
-
var FARM_DEPLOYMENT_MISMATCH_CODE = "FARM_DEPLOYMENT_MISMATCH";
|
|
10
|
-
var FARM_DEPLOYMENT_MISMATCH_STATUS = 409;
|
|
11
|
-
var _FarmDeploymentMismatchError = class _FarmDeploymentMismatchError extends Error {
|
|
12
|
-
constructor(clientDeploymentId, serverDeploymentId) {
|
|
13
|
-
super("The application was updated while this page was open. Refresh before trying again.");
|
|
14
|
-
this.clientDeploymentId = clientDeploymentId;
|
|
15
|
-
this.serverDeploymentId = serverDeploymentId;
|
|
16
|
-
this.name = "FarmDeploymentMismatchError";
|
|
17
|
-
this.code = FARM_DEPLOYMENT_MISMATCH_CODE;
|
|
18
|
-
this.retryable = false;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
__name(_FarmDeploymentMismatchError, "FarmDeploymentMismatchError");
|
|
22
|
-
var FarmDeploymentMismatchError = _FarmDeploymentMismatchError;
|
|
23
|
-
function normalizeFarmDeploymentId(value) {
|
|
24
|
-
if (typeof value !== "string" || value.trim() === "") {
|
|
25
|
-
throw new TypeError("Farm deploymentId must be a non-empty string");
|
|
26
|
-
}
|
|
27
|
-
const normalized = value.trim();
|
|
28
|
-
if (normalized.length > 200 || /[\u0000-\u001f\u007f]/.test(normalized)) {
|
|
29
|
-
throw new TypeError("Farm deploymentId must be at most 200 characters without control bytes");
|
|
30
|
-
}
|
|
31
|
-
return normalized;
|
|
32
|
-
}
|
|
33
|
-
__name(normalizeFarmDeploymentId, "normalizeFarmDeploymentId");
|
|
34
|
-
function createFarmDeploymentRequestHeaders(deploymentId, init) {
|
|
35
|
-
const headers = new Headers(init);
|
|
36
|
-
if (deploymentId) {
|
|
37
|
-
headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);
|
|
38
|
-
}
|
|
39
|
-
return headers;
|
|
40
|
-
}
|
|
41
|
-
__name(createFarmDeploymentRequestHeaders, "createFarmDeploymentRequestHeaders");
|
|
42
|
-
function getFarmRequestDeploymentId(request) {
|
|
43
|
-
const headerValue = request.headers.get(FARM_DEPLOYMENT_ID_HEADER)?.trim();
|
|
44
|
-
if (headerValue) return headerValue;
|
|
45
|
-
if (isSafeRequestMethod(request.method)) return void 0;
|
|
46
|
-
return readCookie(request.headers.get("cookie"), FARM_DEPLOYMENT_COOKIE);
|
|
47
|
-
}
|
|
48
|
-
__name(getFarmRequestDeploymentId, "getFarmRequestDeploymentId");
|
|
49
|
-
function getFarmDeploymentMismatch(request, serverDeploymentId) {
|
|
50
|
-
if (!serverDeploymentId) return null;
|
|
51
|
-
const clientDeploymentId = getFarmRequestDeploymentId(request);
|
|
52
|
-
if (!clientDeploymentId || clientDeploymentId === serverDeploymentId) return null;
|
|
53
|
-
return { clientDeploymentId, serverDeploymentId };
|
|
54
|
-
}
|
|
55
|
-
__name(getFarmDeploymentMismatch, "getFarmDeploymentMismatch");
|
|
56
|
-
function createFarmDeploymentMismatchResponse(mismatch) {
|
|
57
|
-
return new Response(
|
|
58
|
-
JSON.stringify({
|
|
59
|
-
error: FARM_DEPLOYMENT_MISMATCH_CODE,
|
|
60
|
-
message: "The application deployment changed. Refresh before retrying this request."
|
|
61
|
-
}),
|
|
62
|
-
{
|
|
63
|
-
status: FARM_DEPLOYMENT_MISMATCH_STATUS,
|
|
64
|
-
headers: {
|
|
65
|
-
"Cache-Control": "no-store",
|
|
66
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
67
|
-
[FARM_DEPLOYMENT_ID_HEADER]: mismatch.serverDeploymentId,
|
|
68
|
-
[FARM_DEPLOYMENT_MISMATCH_HEADER]: "1"
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
__name(createFarmDeploymentMismatchResponse, "createFarmDeploymentMismatchResponse");
|
|
74
|
-
function withFarmDeploymentResponse(response, deploymentId, options = {}) {
|
|
75
|
-
if (!deploymentId) return response;
|
|
76
|
-
const headers = new Headers(response.headers);
|
|
77
|
-
headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);
|
|
78
|
-
if (options.setCookie) {
|
|
79
|
-
headers.append(
|
|
80
|
-
"Set-Cookie",
|
|
81
|
-
createFarmDeploymentCookie(
|
|
82
|
-
deploymentId,
|
|
83
|
-
options.cookiePath ?? "/",
|
|
84
|
-
options.secureCookie ?? false
|
|
85
|
-
)
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
return new Response(response.body, {
|
|
89
|
-
status: response.status,
|
|
90
|
-
statusText: response.statusText,
|
|
91
|
-
headers
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
__name(withFarmDeploymentResponse, "withFarmDeploymentResponse");
|
|
95
|
-
function getFarmResponseDeploymentId(response) {
|
|
96
|
-
return response.headers.get(FARM_DEPLOYMENT_ID_HEADER)?.trim() || void 0;
|
|
97
|
-
}
|
|
98
|
-
__name(getFarmResponseDeploymentId, "getFarmResponseDeploymentId");
|
|
99
|
-
function isFarmDeploymentMismatchResponse(response, clientDeploymentId) {
|
|
100
|
-
const serverDeploymentId = getFarmResponseDeploymentId(response);
|
|
101
|
-
if (clientDeploymentId && serverDeploymentId && clientDeploymentId !== serverDeploymentId) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
return response.status === FARM_DEPLOYMENT_MISMATCH_STATUS && response.headers.get(FARM_DEPLOYMENT_MISMATCH_HEADER) === "1";
|
|
105
|
-
}
|
|
106
|
-
__name(isFarmDeploymentMismatchResponse, "isFarmDeploymentMismatchResponse");
|
|
107
|
-
function createFarmDeploymentMismatchError(response, clientDeploymentId) {
|
|
108
|
-
return new FarmDeploymentMismatchError(
|
|
109
|
-
clientDeploymentId,
|
|
110
|
-
getFarmResponseDeploymentId(response) || "unknown"
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
__name(createFarmDeploymentMismatchError, "createFarmDeploymentMismatchError");
|
|
114
|
-
function createFarmDeploymentCookie(deploymentId, path = "/", secure = false) {
|
|
115
|
-
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
116
|
-
return [
|
|
117
|
-
`${FARM_DEPLOYMENT_COOKIE}=${encodeURIComponent(deploymentId)}`,
|
|
118
|
-
`Path=${normalizedPath}`,
|
|
119
|
-
"HttpOnly",
|
|
120
|
-
"SameSite=Lax",
|
|
121
|
-
secure ? "Secure" : ""
|
|
122
|
-
].filter(Boolean).join("; ");
|
|
123
|
-
}
|
|
124
|
-
__name(createFarmDeploymentCookie, "createFarmDeploymentCookie");
|
|
125
|
-
function readCookie(cookieHeader, name) {
|
|
126
|
-
if (!cookieHeader) return void 0;
|
|
127
|
-
for (const part of cookieHeader.split(";")) {
|
|
128
|
-
const separator = part.indexOf("=");
|
|
129
|
-
if (separator === -1 || part.slice(0, separator).trim() !== name) continue;
|
|
130
|
-
const value = part.slice(separator + 1).trim();
|
|
131
|
-
try {
|
|
132
|
-
return decodeURIComponent(value);
|
|
133
|
-
} catch {
|
|
134
|
-
return value;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return void 0;
|
|
138
|
-
}
|
|
139
|
-
__name(readCookie, "readCookie");
|
|
140
|
-
function isSafeRequestMethod(method) {
|
|
141
|
-
return ["GET", "HEAD", "OPTIONS"].includes(method.toUpperCase());
|
|
142
|
-
}
|
|
143
|
-
__name(isSafeRequestMethod, "isSafeRequestMethod");
|
|
144
|
-
|
|
145
|
-
export {
|
|
146
|
-
FARM_DEPLOYMENT_ID_HEADER,
|
|
147
|
-
FARM_DEPLOYMENT_MISMATCH_HEADER,
|
|
148
|
-
FARM_DEPLOYMENT_COOKIE,
|
|
149
|
-
FARM_DEPLOYMENT_MISMATCH_CODE,
|
|
150
|
-
FARM_DEPLOYMENT_MISMATCH_STATUS,
|
|
151
|
-
FarmDeploymentMismatchError,
|
|
152
|
-
normalizeFarmDeploymentId,
|
|
153
|
-
createFarmDeploymentRequestHeaders,
|
|
154
|
-
getFarmRequestDeploymentId,
|
|
155
|
-
getFarmDeploymentMismatch,
|
|
156
|
-
createFarmDeploymentMismatchResponse,
|
|
157
|
-
withFarmDeploymentResponse,
|
|
158
|
-
getFarmResponseDeploymentId,
|
|
159
|
-
isFarmDeploymentMismatchResponse,
|
|
160
|
-
createFarmDeploymentMismatchError,
|
|
161
|
-
createFarmDeploymentCookie
|
|
162
|
-
};
|
|
163
|
-
//# sourceMappingURL=chunk-B232I2GP.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deployment.ts"],"sourcesContent":["export const FARM_DEPLOYMENT_ID_HEADER = \"x-farm-deployment-id\";\nexport const FARM_DEPLOYMENT_MISMATCH_HEADER = \"x-farm-deployment-mismatch\";\nexport const FARM_DEPLOYMENT_COOKIE = \"__farm_deployment\";\nexport const FARM_DEPLOYMENT_MISMATCH_CODE = \"FARM_DEPLOYMENT_MISMATCH\";\nexport const FARM_DEPLOYMENT_MISMATCH_STATUS = 409;\n\nexport interface FarmDeploymentMismatch {\n clientDeploymentId: string;\n serverDeploymentId: string;\n}\n\nexport interface FarmDeploymentResponseOptions {\n setCookie?: boolean;\n cookiePath?: string;\n secureCookie?: boolean;\n}\n\nexport class FarmDeploymentMismatchError extends Error {\n readonly name = \"FarmDeploymentMismatchError\";\n readonly code = FARM_DEPLOYMENT_MISMATCH_CODE;\n readonly retryable = false;\n\n constructor(\n readonly clientDeploymentId: string,\n readonly serverDeploymentId: string,\n ) {\n super(\"The application was updated while this page was open. Refresh before trying again.\");\n }\n}\n\nexport function normalizeFarmDeploymentId(value: unknown): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(\"Farm deploymentId must be a non-empty string\");\n }\n\n const normalized = value.trim();\n if (normalized.length > 200 || /[\\u0000-\\u001f\\u007f]/.test(normalized)) {\n throw new TypeError(\"Farm deploymentId must be at most 200 characters without control bytes\");\n }\n\n return normalized;\n}\n\nexport function createFarmDeploymentRequestHeaders(\n deploymentId: string | undefined,\n init?: HeadersInit,\n): Headers {\n const headers = new Headers(init);\n if (deploymentId) {\n headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);\n }\n return headers;\n}\n\nexport function getFarmRequestDeploymentId(\n request: Pick<Request, \"headers\" | \"method\">,\n): string | undefined {\n const headerValue = request.headers.get(FARM_DEPLOYMENT_ID_HEADER)?.trim();\n if (headerValue) return headerValue;\n\n if (isSafeRequestMethod(request.method)) return undefined;\n return readCookie(request.headers.get(\"cookie\"), FARM_DEPLOYMENT_COOKIE);\n}\n\nexport function getFarmDeploymentMismatch(\n request: Pick<Request, \"headers\" | \"method\">,\n serverDeploymentId: string | undefined,\n): FarmDeploymentMismatch | null {\n if (!serverDeploymentId) return null;\n\n const clientDeploymentId = getFarmRequestDeploymentId(request);\n if (!clientDeploymentId || clientDeploymentId === serverDeploymentId) return null;\n\n return { clientDeploymentId, serverDeploymentId };\n}\n\nexport function createFarmDeploymentMismatchResponse(mismatch: FarmDeploymentMismatch): Response {\n return new Response(\n JSON.stringify({\n error: FARM_DEPLOYMENT_MISMATCH_CODE,\n message: \"The application deployment changed. Refresh before retrying this request.\",\n }),\n {\n status: FARM_DEPLOYMENT_MISMATCH_STATUS,\n headers: {\n \"Cache-Control\": \"no-store\",\n \"Content-Type\": \"application/json; charset=utf-8\",\n [FARM_DEPLOYMENT_ID_HEADER]: mismatch.serverDeploymentId,\n [FARM_DEPLOYMENT_MISMATCH_HEADER]: \"1\",\n },\n },\n );\n}\n\nexport function withFarmDeploymentResponse(\n response: Response,\n deploymentId: string | undefined,\n options: FarmDeploymentResponseOptions = {},\n): Response {\n if (!deploymentId) return response;\n\n const headers = new Headers(response.headers);\n headers.set(FARM_DEPLOYMENT_ID_HEADER, deploymentId);\n if (options.setCookie) {\n headers.append(\n \"Set-Cookie\",\n createFarmDeploymentCookie(\n deploymentId,\n options.cookiePath ?? \"/\",\n options.secureCookie ?? false,\n ),\n );\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n}\n\nexport function getFarmResponseDeploymentId(\n response: Pick<Response, \"headers\">,\n): string | undefined {\n return response.headers.get(FARM_DEPLOYMENT_ID_HEADER)?.trim() || undefined;\n}\n\nexport function isFarmDeploymentMismatchResponse(\n response: Pick<Response, \"headers\" | \"status\">,\n clientDeploymentId: string | undefined,\n): boolean {\n const serverDeploymentId = getFarmResponseDeploymentId(response);\n if (clientDeploymentId && serverDeploymentId && clientDeploymentId !== serverDeploymentId) {\n return true;\n }\n\n return (\n response.status === FARM_DEPLOYMENT_MISMATCH_STATUS &&\n response.headers.get(FARM_DEPLOYMENT_MISMATCH_HEADER) === \"1\"\n );\n}\n\nexport function createFarmDeploymentMismatchError(\n response: Pick<Response, \"headers\">,\n clientDeploymentId: string,\n): FarmDeploymentMismatchError {\n return new FarmDeploymentMismatchError(\n clientDeploymentId,\n getFarmResponseDeploymentId(response) || \"unknown\",\n );\n}\n\nexport function createFarmDeploymentCookie(\n deploymentId: string,\n path = \"/\",\n secure = false,\n): string {\n const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`;\n return [\n `${FARM_DEPLOYMENT_COOKIE}=${encodeURIComponent(deploymentId)}`,\n `Path=${normalizedPath}`,\n \"HttpOnly\",\n \"SameSite=Lax\",\n secure ? \"Secure\" : \"\",\n ]\n .filter(Boolean)\n .join(\"; \");\n}\n\nfunction readCookie(cookieHeader: string | null, name: string): string | undefined {\n if (!cookieHeader) return undefined;\n\n for (const part of cookieHeader.split(\";\")) {\n const separator = part.indexOf(\"=\");\n if (separator === -1 || part.slice(0, separator).trim() !== name) continue;\n\n const value = part.slice(separator + 1).trim();\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n }\n\n return undefined;\n}\n\nfunction isSafeRequestMethod(method: string): boolean {\n return [\"GET\", \"HEAD\", \"OPTIONS\"].includes(method.toUpperCase());\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-BHG3LVHH.mjs
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
writeFileIfChanged
|
|
3
|
-
} from "./chunk-USWZZUEH.mjs";
|
|
4
|
-
import {
|
|
5
|
-
__name
|
|
6
|
-
} from "./chunk-CGILA3WO.mjs";
|
|
7
|
-
|
|
8
|
-
// src/env-types.ts
|
|
9
|
-
import * as fs from "fs";
|
|
10
|
-
import * as path from "path";
|
|
11
|
-
var DEFAULT_OUT_FILE = "farm-env.d.ts";
|
|
12
|
-
var CONFIG_FILENAMES = [
|
|
13
|
-
"farm.config.ts",
|
|
14
|
-
"farm.config.tsx",
|
|
15
|
-
"farm.config.mts",
|
|
16
|
-
"farm.config.cts",
|
|
17
|
-
"farm.config.js",
|
|
18
|
-
"farm.config.jsx",
|
|
19
|
-
"farm.config.mjs",
|
|
20
|
-
"farm.config.cjs",
|
|
21
|
-
"config.ts",
|
|
22
|
-
"config.tsx",
|
|
23
|
-
"config.mts",
|
|
24
|
-
"config.cts",
|
|
25
|
-
"config.js",
|
|
26
|
-
"config.jsx",
|
|
27
|
-
"config.mjs",
|
|
28
|
-
"config.cjs"
|
|
29
|
-
];
|
|
30
|
-
async function generateEnvTypes(options) {
|
|
31
|
-
const root = path.resolve(options.root);
|
|
32
|
-
const srcDir = options.srcDir || "src";
|
|
33
|
-
const outPath = path.join(root, srcDir, options.outFile || DEFAULT_OUT_FILE);
|
|
34
|
-
const configPath = findConfigPath(root, options.configPath);
|
|
35
|
-
const configPaths = [
|
|
36
|
-
...(options.layerConfigPaths ?? []).filter((value) => fs.existsSync(value)),
|
|
37
|
-
...configPath ? [configPath] : []
|
|
38
|
-
];
|
|
39
|
-
const content = configPaths.length > 1 ? createLayeredConfigBackedEnvTypes(outPath, configPaths) : configPaths.length === 1 ? createConfigBackedEnvTypes(outPath, configPaths[0]) : createEmptyEnvTypes();
|
|
40
|
-
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
|
41
|
-
writeFileIfChanged(outPath, content);
|
|
42
|
-
return outPath;
|
|
43
|
-
}
|
|
44
|
-
__name(generateEnvTypes, "generateEnvTypes");
|
|
45
|
-
function createLayeredConfigBackedEnvTypes(outPath, configPaths) {
|
|
46
|
-
const imports = configPaths.map(
|
|
47
|
-
(configPath, index) => `import type FarmConfig${index} from ${JSON.stringify(toTypeImportPath(outPath, configPath))};`
|
|
48
|
-
).join("\n");
|
|
49
|
-
const resolvedTypes = configPaths.map(
|
|
50
|
-
(_configPath, index) => `
|
|
51
|
-
type FarmConfigEnv${index} = typeof FarmConfig${index} extends { env?: infer TEnv }
|
|
52
|
-
? NonNullable<TEnv>
|
|
53
|
-
: never;
|
|
54
|
-
type FarmResolvedEnv${index} = [FarmConfigEnv${index}] extends [never]
|
|
55
|
-
? { server: {}; public: {} }
|
|
56
|
-
: InferEnv<FarmConfigEnv${index}>;`
|
|
57
|
-
).join("\n");
|
|
58
|
-
const mergedTypes = configPaths.slice(1).map(
|
|
59
|
-
(_configPath, index) => `type FarmMergedEnv${index + 1} = MergeFarmEnv<${index === 0 ? "FarmResolvedEnv0" : `FarmMergedEnv${index}`}, FarmResolvedEnv${index + 1}>;`
|
|
60
|
-
).join("\n");
|
|
61
|
-
const finalType = `FarmMergedEnv${configPaths.length - 1}`;
|
|
62
|
-
return `/**
|
|
63
|
-
* Auto-generated env types from Farm layers and farm.config.
|
|
64
|
-
* Regenerated on dev start, build, and farm generate.
|
|
65
|
-
*/
|
|
66
|
-
${imports}
|
|
67
|
-
import type { InferEnv } from "@farm.js/core/env";
|
|
68
|
-
|
|
69
|
-
type MergeFarmEnv<TBase, TOverride> = {
|
|
70
|
-
server: Omit<TBase extends { server: infer T } ? T : {}, keyof (TOverride extends { server: infer T } ? T : {})> &
|
|
71
|
-
(TOverride extends { server: infer T } ? T : {});
|
|
72
|
-
public: Omit<TBase extends { public: infer T } ? T : {}, keyof (TOverride extends { public: infer T } ? T : {})> &
|
|
73
|
-
(TOverride extends { public: infer T } ? T : {});
|
|
74
|
-
};
|
|
75
|
-
${resolvedTypes}
|
|
76
|
-
${mergedTypes}
|
|
77
|
-
|
|
78
|
-
type FarmResolvedEnv = ${finalType};
|
|
79
|
-
|
|
80
|
-
declare module "@farm.js/core/env" {
|
|
81
|
-
interface FarmEnvTypes {
|
|
82
|
-
server: FarmResolvedEnv["server"];
|
|
83
|
-
public: FarmResolvedEnv["public"];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
declare module "@farm.js/core" {
|
|
88
|
-
interface FarmEnvTypes {
|
|
89
|
-
server: FarmResolvedEnv["server"];
|
|
90
|
-
public: FarmResolvedEnv["public"];
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export {};
|
|
95
|
-
`;
|
|
96
|
-
}
|
|
97
|
-
__name(createLayeredConfigBackedEnvTypes, "createLayeredConfigBackedEnvTypes");
|
|
98
|
-
function findConfigPath(root, configPath) {
|
|
99
|
-
if (configPath) {
|
|
100
|
-
const resolvedPath = path.isAbsolute(configPath) ? configPath : path.join(root, configPath);
|
|
101
|
-
return fs.existsSync(resolvedPath) ? resolvedPath : null;
|
|
102
|
-
}
|
|
103
|
-
for (const filename of CONFIG_FILENAMES) {
|
|
104
|
-
const resolvedPath = path.join(root, filename);
|
|
105
|
-
if (fs.existsSync(resolvedPath)) {
|
|
106
|
-
return resolvedPath;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
__name(findConfigPath, "findConfigPath");
|
|
112
|
-
function createConfigBackedEnvTypes(outPath, configPath) {
|
|
113
|
-
const configImportPath = toTypeImportPath(outPath, configPath);
|
|
114
|
-
return `/**
|
|
115
|
-
* Auto-generated env types from farm.config.
|
|
116
|
-
* Regenerated on dev start, build, and farm generate.
|
|
117
|
-
*/
|
|
118
|
-
import type FarmConfig from ${JSON.stringify(configImportPath)};
|
|
119
|
-
import type { InferEnv } from "@farm.js/core/env";
|
|
120
|
-
|
|
121
|
-
type FarmConfigEnv = typeof FarmConfig extends { env?: infer TEnv } ? NonNullable<TEnv> : never;
|
|
122
|
-
type FarmResolvedEnv = [FarmConfigEnv] extends [never]
|
|
123
|
-
? { server: {}; public: {} }
|
|
124
|
-
: InferEnv<FarmConfigEnv>;
|
|
125
|
-
|
|
126
|
-
declare module "@farm.js/core/env" {
|
|
127
|
-
interface FarmEnvTypes {
|
|
128
|
-
server: FarmResolvedEnv["server"];
|
|
129
|
-
public: FarmResolvedEnv["public"];
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
declare module "@farm.js/core" {
|
|
134
|
-
interface FarmEnvTypes {
|
|
135
|
-
server: FarmResolvedEnv["server"];
|
|
136
|
-
public: FarmResolvedEnv["public"];
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export {};
|
|
141
|
-
`;
|
|
142
|
-
}
|
|
143
|
-
__name(createConfigBackedEnvTypes, "createConfigBackedEnvTypes");
|
|
144
|
-
function createEmptyEnvTypes() {
|
|
145
|
-
return `/**
|
|
146
|
-
* Auto-generated env types from farm.config.
|
|
147
|
-
* Regenerated on dev start, build, and farm generate.
|
|
148
|
-
*/
|
|
149
|
-
declare module "@farm.js/core/env" {
|
|
150
|
-
interface FarmEnvTypes {
|
|
151
|
-
server: {};
|
|
152
|
-
public: {};
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
declare module "@farm.js/core" {
|
|
157
|
-
interface FarmEnvTypes {
|
|
158
|
-
server: {};
|
|
159
|
-
public: {};
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export {};
|
|
164
|
-
`;
|
|
165
|
-
}
|
|
166
|
-
__name(createEmptyEnvTypes, "createEmptyEnvTypes");
|
|
167
|
-
function toTypeImportPath(outPath, targetPath) {
|
|
168
|
-
const relativePath = path.relative(path.dirname(outPath), targetPath).replace(/\\/g, "/").replace(/\.(tsx?|jsx?|mjs|cjs|mts|cts)$/, "");
|
|
169
|
-
return relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
170
|
-
}
|
|
171
|
-
__name(toTypeImportPath, "toTypeImportPath");
|
|
172
|
-
|
|
173
|
-
export {
|
|
174
|
-
generateEnvTypes
|
|
175
|
-
};
|
|
176
|
-
//# sourceMappingURL=chunk-BHG3LVHH.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env-types.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { writeFileIfChanged } from \"./write-file-if-changed\";\n\nexport interface GenerateEnvTypesOptions {\n root: string;\n srcDir?: string;\n outFile?: string;\n configPath?: string;\n /** Lower-priority layer config files, ordered before the project config. */\n layerConfigPaths?: readonly string[];\n}\n\nconst DEFAULT_OUT_FILE = \"farm-env.d.ts\";\nconst CONFIG_FILENAMES = [\n \"farm.config.ts\",\n \"farm.config.tsx\",\n \"farm.config.mts\",\n \"farm.config.cts\",\n \"farm.config.js\",\n \"farm.config.jsx\",\n \"farm.config.mjs\",\n \"farm.config.cjs\",\n \"config.ts\",\n \"config.tsx\",\n \"config.mts\",\n \"config.cts\",\n \"config.js\",\n \"config.jsx\",\n \"config.mjs\",\n \"config.cjs\",\n];\n\nexport async function generateEnvTypes(options: GenerateEnvTypesOptions): Promise<string> {\n const root = path.resolve(options.root);\n const srcDir = options.srcDir || \"src\";\n const outPath = path.join(root, srcDir, options.outFile || DEFAULT_OUT_FILE);\n const configPath = findConfigPath(root, options.configPath);\n const configPaths = [\n ...(options.layerConfigPaths ?? []).filter((value) => fs.existsSync(value)),\n ...(configPath ? [configPath] : []),\n ];\n const content =\n configPaths.length > 1\n ? createLayeredConfigBackedEnvTypes(outPath, configPaths)\n : configPaths.length === 1\n ? createConfigBackedEnvTypes(outPath, configPaths[0])\n : createEmptyEnvTypes();\n\n fs.mkdirSync(path.dirname(outPath), { recursive: true });\n writeFileIfChanged(outPath, content);\n\n return outPath;\n}\n\nfunction createLayeredConfigBackedEnvTypes(outPath: string, configPaths: string[]): string {\n const imports = configPaths\n .map(\n (configPath, index) =>\n `import type FarmConfig${index} from ${JSON.stringify(toTypeImportPath(outPath, configPath))};`,\n )\n .join(\"\\n\");\n const resolvedTypes = configPaths\n .map(\n (_configPath, index) => `\ntype FarmConfigEnv${index} = typeof FarmConfig${index} extends { env?: infer TEnv }\n ? NonNullable<TEnv>\n : never;\ntype FarmResolvedEnv${index} = [FarmConfigEnv${index}] extends [never]\n ? { server: {}; public: {} }\n : InferEnv<FarmConfigEnv${index}>;`,\n )\n .join(\"\\n\");\n const mergedTypes = configPaths\n .slice(1)\n .map(\n (_configPath, index) =>\n `type FarmMergedEnv${index + 1} = MergeFarmEnv<${index === 0 ? \"FarmResolvedEnv0\" : `FarmMergedEnv${index}`}, FarmResolvedEnv${index + 1}>;`,\n )\n .join(\"\\n\");\n const finalType = `FarmMergedEnv${configPaths.length - 1}`;\n\n return `/**\n * Auto-generated env types from Farm layers and farm.config.\n * Regenerated on dev start, build, and farm generate.\n */\n${imports}\nimport type { InferEnv } from \"@farm.js/core/env\";\n\ntype MergeFarmEnv<TBase, TOverride> = {\n server: Omit<TBase extends { server: infer T } ? T : {}, keyof (TOverride extends { server: infer T } ? T : {})> &\n (TOverride extends { server: infer T } ? T : {});\n public: Omit<TBase extends { public: infer T } ? T : {}, keyof (TOverride extends { public: infer T } ? T : {})> &\n (TOverride extends { public: infer T } ? T : {});\n};\n${resolvedTypes}\n${mergedTypes}\n\ntype FarmResolvedEnv = ${finalType};\n\ndeclare module \"@farm.js/core/env\" {\n interface FarmEnvTypes {\n server: FarmResolvedEnv[\"server\"];\n public: FarmResolvedEnv[\"public\"];\n }\n}\n\ndeclare module \"@farm.js/core\" {\n interface FarmEnvTypes {\n server: FarmResolvedEnv[\"server\"];\n public: FarmResolvedEnv[\"public\"];\n }\n}\n\nexport {};\n`;\n}\n\nfunction findConfigPath(root: string, configPath?: string): string | null {\n if (configPath) {\n const resolvedPath = path.isAbsolute(configPath) ? configPath : path.join(root, configPath);\n return fs.existsSync(resolvedPath) ? resolvedPath : null;\n }\n\n for (const filename of CONFIG_FILENAMES) {\n const resolvedPath = path.join(root, filename);\n if (fs.existsSync(resolvedPath)) {\n return resolvedPath;\n }\n }\n\n return null;\n}\n\nfunction createConfigBackedEnvTypes(outPath: string, configPath: string): string {\n const configImportPath = toTypeImportPath(outPath, configPath);\n\n return `/**\n * Auto-generated env types from farm.config.\n * Regenerated on dev start, build, and farm generate.\n */\nimport type FarmConfig from ${JSON.stringify(configImportPath)};\nimport type { InferEnv } from \"@farm.js/core/env\";\n\ntype FarmConfigEnv = typeof FarmConfig extends { env?: infer TEnv } ? NonNullable<TEnv> : never;\ntype FarmResolvedEnv = [FarmConfigEnv] extends [never]\n ? { server: {}; public: {} }\n : InferEnv<FarmConfigEnv>;\n\ndeclare module \"@farm.js/core/env\" {\n interface FarmEnvTypes {\n server: FarmResolvedEnv[\"server\"];\n public: FarmResolvedEnv[\"public\"];\n }\n}\n\ndeclare module \"@farm.js/core\" {\n interface FarmEnvTypes {\n server: FarmResolvedEnv[\"server\"];\n public: FarmResolvedEnv[\"public\"];\n }\n}\n\nexport {};\n`;\n}\n\nfunction createEmptyEnvTypes(): string {\n return `/**\n * Auto-generated env types from farm.config.\n * Regenerated on dev start, build, and farm generate.\n */\ndeclare module \"@farm.js/core/env\" {\n interface FarmEnvTypes {\n server: {};\n public: {};\n }\n}\n\ndeclare module \"@farm.js/core\" {\n interface FarmEnvTypes {\n server: {};\n public: {};\n }\n}\n\nexport {};\n`;\n}\n\nfunction toTypeImportPath(outPath: string, targetPath: string): string {\n const relativePath = path\n .relative(path.dirname(outPath), targetPath)\n .replace(/\\\\/g, \"/\")\n .replace(/\\.(tsx?|jsx?|mjs|cjs|mts|cts)$/, \"\");\n\n return relativePath.startsWith(\".\") ? relativePath : `./${relativePath}`;\n}\n"],"mappings":"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","names":[]}
|