@farm.js/core 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +11 -0
- package/dist/after.cjs +227 -0
- package/dist/after.cjs.map +1 -0
- package/dist/after.d.mts +25 -0
- package/dist/after.d.ts +25 -0
- package/dist/after.mjs +14 -0
- package/dist/after.mjs.map +1 -0
- package/dist/agent-runtime.cjs +2379 -0
- package/dist/agent-runtime.cjs.map +1 -0
- package/dist/agent-runtime.d.mts +93 -0
- package/dist/agent-runtime.d.ts +93 -0
- package/dist/agent-runtime.mjs +479 -0
- package/dist/agent-runtime.mjs.map +1 -0
- package/dist/api/route-manager.cjs +1196 -0
- package/dist/api/route-manager.cjs.map +1 -0
- package/dist/api/route-manager.d.mts +64 -0
- package/dist/api/route-manager.d.ts +64 -0
- package/dist/api/route-manager.mjs +34 -0
- package/dist/api/route-manager.mjs.map +1 -0
- package/dist/api/runtime.cjs +272 -0
- package/dist/api/runtime.cjs.map +1 -0
- package/dist/api/runtime.d.mts +16 -0
- package/dist/api/runtime.d.ts +16 -0
- package/dist/api/runtime.mjs +16 -0
- package/dist/api/runtime.mjs.map +1 -0
- package/dist/api.cjs +3199 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.mts +190 -0
- package/dist/api.d.ts +190 -0
- package/dist/api.mjs +63 -0
- package/dist/api.mjs.map +1 -0
- package/dist/app-BiX4qb-d.d.mts +265 -0
- package/dist/app-CFRNJXP1.d.ts +265 -0
- package/dist/app-markdown.cjs +220 -0
- package/dist/app-markdown.cjs.map +1 -0
- package/dist/app-markdown.d.mts +21 -0
- package/dist/app-markdown.d.ts +21 -0
- package/dist/app-markdown.mjs +26 -0
- package/dist/app-markdown.mjs.map +1 -0
- package/dist/cache.cjs +543 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.mts +78 -0
- package/dist/cache.d.ts +78 -0
- package/dist/cache.mjs +38 -0
- package/dist/cache.mjs.map +1 -0
- package/dist/chunk-25D7G34K.mjs +142 -0
- package/dist/chunk-25D7G34K.mjs.map +1 -0
- package/dist/chunk-3QJO55ZF.mjs +3548 -0
- package/dist/chunk-3QJO55ZF.mjs.map +1 -0
- package/dist/chunk-3XNTL3FQ.mjs +452 -0
- package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
- package/dist/chunk-44ZCFSKE.mjs +84 -0
- package/dist/chunk-44ZCFSKE.mjs.map +1 -0
- package/dist/chunk-4PTK6KT4.mjs +364 -0
- package/dist/chunk-4PTK6KT4.mjs.map +1 -0
- package/dist/chunk-4S3ORGFA.mjs +44 -0
- package/dist/chunk-4S3ORGFA.mjs.map +1 -0
- package/dist/chunk-5BY76U2M.mjs +1 -0
- package/dist/chunk-5BY76U2M.mjs.map +1 -0
- package/dist/chunk-5ZGPRGWV.mjs +136 -0
- package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
- package/dist/chunk-6XDUHOEM.mjs +157 -0
- package/dist/chunk-6XDUHOEM.mjs.map +1 -0
- package/dist/chunk-74YTBPTY.mjs +450 -0
- package/dist/chunk-74YTBPTY.mjs.map +1 -0
- package/dist/chunk-7HO6AEOP.mjs +74 -0
- package/dist/chunk-7HO6AEOP.mjs.map +1 -0
- package/dist/chunk-7MABZJIM.mjs +29 -0
- package/dist/chunk-7MABZJIM.mjs.map +1 -0
- package/dist/chunk-7ZY5AIJO.mjs +161 -0
- package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
- package/dist/chunk-AGS7UJ52.mjs +446 -0
- package/dist/chunk-AGS7UJ52.mjs.map +1 -0
- package/dist/chunk-AZ7YUVNR.mjs +65 -0
- package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
- package/dist/chunk-B232I2GP.mjs +163 -0
- package/dist/chunk-B232I2GP.mjs.map +1 -0
- package/dist/chunk-B6N4ZB2H.mjs +718 -0
- package/dist/chunk-B6N4ZB2H.mjs.map +1 -0
- package/dist/chunk-BHG3LVHH.mjs +176 -0
- package/dist/chunk-BHG3LVHH.mjs.map +1 -0
- package/dist/chunk-C3DLZMBU.mjs +597 -0
- package/dist/chunk-C3DLZMBU.mjs.map +1 -0
- package/dist/chunk-CGILA3WO.mjs +14 -0
- package/dist/chunk-CGILA3WO.mjs.map +1 -0
- package/dist/chunk-CHFHNEMO.mjs +7088 -0
- package/dist/chunk-CHFHNEMO.mjs.map +1 -0
- package/dist/chunk-E2MPIBRE.mjs +149 -0
- package/dist/chunk-E2MPIBRE.mjs.map +1 -0
- package/dist/chunk-E6EPN5BT.mjs +203 -0
- package/dist/chunk-E6EPN5BT.mjs.map +1 -0
- package/dist/chunk-EVGBEZDF.mjs +215 -0
- package/dist/chunk-EVGBEZDF.mjs.map +1 -0
- package/dist/chunk-FQYDHKKU.mjs +128 -0
- package/dist/chunk-FQYDHKKU.mjs.map +1 -0
- package/dist/chunk-G3B5BRDY.mjs +5763 -0
- package/dist/chunk-G3B5BRDY.mjs.map +1 -0
- package/dist/chunk-GN72QAIH.mjs +146 -0
- package/dist/chunk-GN72QAIH.mjs.map +1 -0
- package/dist/chunk-GS6K5OCM.mjs +407 -0
- package/dist/chunk-GS6K5OCM.mjs.map +1 -0
- package/dist/chunk-GY2STC2S.mjs +180 -0
- package/dist/chunk-GY2STC2S.mjs.map +1 -0
- package/dist/chunk-GZP5W4K3.mjs +158 -0
- package/dist/chunk-GZP5W4K3.mjs.map +1 -0
- package/dist/chunk-H2FA2SBS.mjs +51 -0
- package/dist/chunk-H2FA2SBS.mjs.map +1 -0
- package/dist/chunk-HXP3ZSPC.mjs +211 -0
- package/dist/chunk-HXP3ZSPC.mjs.map +1 -0
- package/dist/chunk-ITN462YM.mjs +98 -0
- package/dist/chunk-ITN462YM.mjs.map +1 -0
- package/dist/chunk-J23HNLFY.mjs +72 -0
- package/dist/chunk-J23HNLFY.mjs.map +1 -0
- package/dist/chunk-J4FNJ5IU.mjs +179 -0
- package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
- package/dist/chunk-JK25YEN6.mjs +219 -0
- package/dist/chunk-JK25YEN6.mjs.map +1 -0
- package/dist/chunk-JLWMCADZ.mjs +204 -0
- package/dist/chunk-JLWMCADZ.mjs.map +1 -0
- package/dist/chunk-JN3UU635.mjs +622 -0
- package/dist/chunk-JN3UU635.mjs.map +1 -0
- package/dist/chunk-K4667E2Q.mjs +1916 -0
- package/dist/chunk-K4667E2Q.mjs.map +1 -0
- package/dist/chunk-LGHEOHBU.mjs +218 -0
- package/dist/chunk-LGHEOHBU.mjs.map +1 -0
- package/dist/chunk-LLC7BNXW.mjs +275 -0
- package/dist/chunk-LLC7BNXW.mjs.map +1 -0
- package/dist/chunk-LM2YNO4U.mjs +24 -0
- package/dist/chunk-LM2YNO4U.mjs.map +1 -0
- package/dist/chunk-NNLCAVB6.mjs +391 -0
- package/dist/chunk-NNLCAVB6.mjs.map +1 -0
- package/dist/chunk-O3HADRW6.mjs +639 -0
- package/dist/chunk-O3HADRW6.mjs.map +1 -0
- package/dist/chunk-OYXO65LI.mjs +119 -0
- package/dist/chunk-OYXO65LI.mjs.map +1 -0
- package/dist/chunk-P7QDS5AT.mjs +191 -0
- package/dist/chunk-P7QDS5AT.mjs.map +1 -0
- package/dist/chunk-PRNYWD7K.mjs +599 -0
- package/dist/chunk-PRNYWD7K.mjs.map +1 -0
- package/dist/chunk-QF4PHCMA.mjs +422 -0
- package/dist/chunk-QF4PHCMA.mjs.map +1 -0
- package/dist/chunk-QFQRHRZS.mjs +1224 -0
- package/dist/chunk-QFQRHRZS.mjs.map +1 -0
- package/dist/chunk-QGOHVJ6J.mjs +63 -0
- package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
- package/dist/chunk-QKVUNGAH.mjs +39 -0
- package/dist/chunk-QKVUNGAH.mjs.map +1 -0
- package/dist/chunk-QM6VV26B.mjs +149 -0
- package/dist/chunk-QM6VV26B.mjs.map +1 -0
- package/dist/chunk-RHIFZZUI.mjs +69 -0
- package/dist/chunk-RHIFZZUI.mjs.map +1 -0
- package/dist/chunk-RKI6TN3A.mjs +49 -0
- package/dist/chunk-RKI6TN3A.mjs.map +1 -0
- package/dist/chunk-RSKVYESE.mjs +187 -0
- package/dist/chunk-RSKVYESE.mjs.map +1 -0
- package/dist/chunk-S2XHZS7W.mjs +180 -0
- package/dist/chunk-S2XHZS7W.mjs.map +1 -0
- package/dist/chunk-SCFX4UTD.mjs +28 -0
- package/dist/chunk-SCFX4UTD.mjs.map +1 -0
- package/dist/chunk-SL6HTIOK.mjs +66 -0
- package/dist/chunk-SL6HTIOK.mjs.map +1 -0
- package/dist/chunk-SOU3Q3ZA.mjs +173 -0
- package/dist/chunk-SOU3Q3ZA.mjs.map +1 -0
- package/dist/chunk-SPBBQLXI.mjs +207 -0
- package/dist/chunk-SPBBQLXI.mjs.map +1 -0
- package/dist/chunk-SXZTEK3V.mjs +396 -0
- package/dist/chunk-SXZTEK3V.mjs.map +1 -0
- package/dist/chunk-T4QJQK76.mjs +459 -0
- package/dist/chunk-T4QJQK76.mjs.map +1 -0
- package/dist/chunk-TRORP7E4.mjs +41 -0
- package/dist/chunk-TRORP7E4.mjs.map +1 -0
- package/dist/chunk-TU4YJICB.mjs +728 -0
- package/dist/chunk-TU4YJICB.mjs.map +1 -0
- package/dist/chunk-TXCFGOHW.mjs +42 -0
- package/dist/chunk-TXCFGOHW.mjs.map +1 -0
- package/dist/chunk-UHE2TTLK.mjs +466 -0
- package/dist/chunk-UHE2TTLK.mjs.map +1 -0
- package/dist/chunk-UREJA4GZ.mjs +364 -0
- package/dist/chunk-UREJA4GZ.mjs.map +1 -0
- package/dist/chunk-USWZZUEH.mjs +25 -0
- package/dist/chunk-USWZZUEH.mjs.map +1 -0
- package/dist/chunk-UVCIEUJC.mjs +16 -0
- package/dist/chunk-UVCIEUJC.mjs.map +1 -0
- package/dist/chunk-V6WE6JSZ.mjs +352 -0
- package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
- package/dist/chunk-V7RBCSDJ.mjs +170 -0
- package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
- package/dist/chunk-VCANOYFI.mjs +588 -0
- package/dist/chunk-VCANOYFI.mjs.map +1 -0
- package/dist/chunk-WZ5QFROO.mjs +23 -0
- package/dist/chunk-WZ5QFROO.mjs.map +1 -0
- package/dist/chunk-Y2OJJD7R.mjs +543 -0
- package/dist/chunk-Y2OJJD7R.mjs.map +1 -0
- package/dist/chunk-Y7A27276.mjs +538 -0
- package/dist/chunk-Y7A27276.mjs.map +1 -0
- package/dist/chunk-YHU7SS6L.mjs +365 -0
- package/dist/chunk-YHU7SS6L.mjs.map +1 -0
- package/dist/chunk-ZBE6MLHL.mjs +230 -0
- package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
- package/dist/chunk-ZJQNATYV.mjs +299 -0
- package/dist/chunk-ZJQNATYV.mjs.map +1 -0
- package/dist/client-D_yUjVhe.d.mts +402 -0
- package/dist/client-Dkc03WP8.d.ts +402 -0
- package/dist/client-cache-CIlyBlmx.d.ts +6 -0
- package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
- package/dist/client-plugins-BZnpeTGA.d.ts +1848 -0
- package/dist/client-plugins-g4bzuCmo.d.mts +1848 -0
- package/dist/client-plugins.cjs +415 -0
- package/dist/client-plugins.cjs.map +1 -0
- package/dist/client-plugins.d.mts +21 -0
- package/dist/client-plugins.d.ts +21 -0
- package/dist/client-plugins.mjs +10 -0
- package/dist/client-plugins.mjs.map +1 -0
- package/dist/client.cjs +4571 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.mts +329 -0
- package/dist/client.d.ts +329 -0
- package/dist/client.mjs +103 -0
- package/dist/client.mjs.map +1 -0
- package/dist/config.cjs +38 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.mts +28 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.mjs +10 -0
- package/dist/config.mjs.map +1 -0
- package/dist/cron.cjs +406 -0
- package/dist/cron.cjs.map +1 -0
- package/dist/cron.d.mts +78 -0
- package/dist/cron.d.ts +78 -0
- package/dist/cron.mjs +30 -0
- package/dist/cron.mjs.map +1 -0
- package/dist/deferred.cjs +438 -0
- package/dist/deferred.cjs.map +1 -0
- package/dist/deferred.d.mts +42 -0
- package/dist/deferred.d.ts +42 -0
- package/dist/deferred.mjs +28 -0
- package/dist/deferred.mjs.map +1 -0
- package/dist/deployment.cjs +199 -0
- package/dist/deployment.cjs.map +1 -0
- package/dist/deployment.d.mts +34 -0
- package/dist/deployment.d.ts +34 -0
- package/dist/deployment.mjs +38 -0
- package/dist/deployment.mjs.map +1 -0
- package/dist/devtools-AE4RVXCM.mjs +370 -0
- package/dist/devtools-AE4RVXCM.mjs.map +1 -0
- package/dist/devtools-client-6WPY2AQU.mjs +225 -0
- package/dist/devtools-client-6WPY2AQU.mjs.map +1 -0
- package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
- package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
- package/dist/docs.cjs +5541 -0
- package/dist/docs.cjs.map +1 -0
- package/dist/docs.d.mts +69 -0
- package/dist/docs.d.ts +69 -0
- package/dist/docs.mjs +46 -0
- package/dist/docs.mjs.map +1 -0
- package/dist/env-types.cjs +223 -0
- package/dist/env-types.cjs.map +1 -0
- package/dist/env-types.d.mts +11 -0
- package/dist/env-types.d.ts +11 -0
- package/dist/env-types.mjs +9 -0
- package/dist/env-types.mjs.map +1 -0
- package/dist/env.cjs +215 -0
- package/dist/env.cjs.map +1 -0
- package/dist/env.d.mts +45 -0
- package/dist/env.d.ts +45 -0
- package/dist/env.mjs +22 -0
- package/dist/env.mjs.map +1 -0
- package/dist/environment/vite.cjs +374 -0
- package/dist/environment/vite.cjs.map +1 -0
- package/dist/environment/vite.d.mts +22 -0
- package/dist/environment/vite.d.ts +22 -0
- package/dist/environment/vite.mjs +10 -0
- package/dist/environment/vite.mjs.map +1 -0
- package/dist/environment.cjs +96 -0
- package/dist/environment.cjs.map +1 -0
- package/dist/environment.d.mts +18 -0
- package/dist/environment.d.ts +18 -0
- package/dist/environment.mjs +14 -0
- package/dist/environment.mjs.map +1 -0
- package/dist/headers.cjs +126 -0
- package/dist/headers.cjs.map +1 -0
- package/dist/headers.d.mts +22 -0
- package/dist/headers.d.ts +22 -0
- package/dist/headers.mjs +12 -0
- package/dist/headers.mjs.map +1 -0
- package/dist/i18n/client.cjs +283 -0
- package/dist/i18n/client.cjs.map +1 -0
- package/dist/i18n/client.d.mts +32 -0
- package/dist/i18n/client.d.ts +32 -0
- package/dist/i18n/client.mjs +121 -0
- package/dist/i18n/client.mjs.map +1 -0
- package/dist/i18n/index.cjs +130 -0
- package/dist/i18n/index.cjs.map +1 -0
- package/dist/i18n/index.d.mts +20 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/index.mjs +22 -0
- package/dist/i18n/index.mjs.map +1 -0
- package/dist/i18n/server.cjs +637 -0
- package/dist/i18n/server.cjs.map +1 -0
- package/dist/i18n/server.d.mts +30 -0
- package/dist/i18n/server.d.ts +30 -0
- package/dist/i18n/server.mjs +32 -0
- package/dist/i18n/server.mjs.map +1 -0
- package/dist/image/server.cjs +477 -0
- package/dist/image/server.cjs.map +1 -0
- package/dist/image/server.d.mts +37 -0
- package/dist/image/server.d.ts +37 -0
- package/dist/image/server.mjs +16 -0
- package/dist/image/server.mjs.map +1 -0
- package/dist/image/sharp.cjs +135 -0
- package/dist/image/sharp.cjs.map +1 -0
- package/dist/image/sharp.d.mts +7 -0
- package/dist/image/sharp.d.ts +7 -0
- package/dist/image/sharp.mjs +75 -0
- package/dist/image/sharp.mjs.map +1 -0
- package/dist/image-config-Duob7wER.d.mts +50 -0
- package/dist/image-config-Duob7wER.d.ts +50 -0
- package/dist/image.cjs +209 -0
- package/dist/image.cjs.map +1 -0
- package/dist/image.d.mts +39 -0
- package/dist/image.d.ts +39 -0
- package/dist/image.mjs +165 -0
- package/dist/image.mjs.map +1 -0
- package/dist/index.cjs +39433 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +451 -0
- package/dist/index.d.ts +451 -0
- package/dist/index.mjs +930 -0
- package/dist/index.mjs.map +1 -0
- package/dist/integration-api-CHT2OKAf.d.mts +93 -0
- package/dist/integration-api-CHT2OKAf.d.ts +93 -0
- package/dist/integration-orm-GQLGU66X.mjs +13 -0
- package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
- package/dist/integrations.cjs +2820 -0
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.d.mts +21 -0
- package/dist/integrations.d.ts +21 -0
- package/dist/integrations.mjs +51 -0
- package/dist/integrations.mjs.map +1 -0
- package/dist/internal/build-runtime.cjs +31340 -0
- package/dist/internal/build-runtime.cjs.map +1 -0
- package/dist/internal/build-runtime.d.mts +38 -0
- package/dist/internal/build-runtime.d.ts +38 -0
- package/dist/internal/build-runtime.mjs +73 -0
- package/dist/internal/build-runtime.mjs.map +1 -0
- package/dist/internal/client-runtime.cjs +579 -0
- package/dist/internal/client-runtime.cjs.map +1 -0
- package/dist/internal/client-runtime.d.mts +2 -0
- package/dist/internal/client-runtime.d.ts +2 -0
- package/dist/internal/client-runtime.mjs +12 -0
- package/dist/internal/client-runtime.mjs.map +1 -0
- package/dist/internal/config-runtime.cjs +4172 -0
- package/dist/internal/config-runtime.cjs.map +1 -0
- package/dist/internal/config-runtime.d.mts +38 -0
- package/dist/internal/config-runtime.d.ts +38 -0
- package/dist/internal/config-runtime.mjs +38 -0
- package/dist/internal/config-runtime.mjs.map +1 -0
- package/dist/internal/production-node-env.cjs +65 -0
- package/dist/internal/production-node-env.cjs.map +1 -0
- package/dist/internal/production-node-env.d.mts +12 -0
- package/dist/internal/production-node-env.d.ts +12 -0
- package/dist/internal/production-node-env.mjs +8 -0
- package/dist/internal/production-node-env.mjs.map +1 -0
- package/dist/internal/production-runtime.cjs +1896 -0
- package/dist/internal/production-runtime.cjs.map +1 -0
- package/dist/internal/production-runtime.d.mts +39 -0
- package/dist/internal/production-runtime.d.ts +39 -0
- package/dist/internal/production-runtime.mjs +79 -0
- package/dist/internal/production-runtime.mjs.map +1 -0
- package/dist/layers-VWVDTPUZ.mjs +16 -0
- package/dist/layers-VWVDTPUZ.mjs.map +1 -0
- package/dist/manager-THKFTOFE.mjs +10 -0
- package/dist/manager-THKFTOFE.mjs.map +1 -0
- package/dist/markdown.cjs +299 -0
- package/dist/markdown.cjs.map +1 -0
- package/dist/markdown.d.mts +43 -0
- package/dist/markdown.d.ts +43 -0
- package/dist/markdown.mjs +14 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/metadata-C9NZxMDW.d.mts +22 -0
- package/dist/metadata-DAXRaOHx.d.ts +22 -0
- package/dist/middleware.cjs +2148 -0
- package/dist/middleware.cjs.map +1 -0
- package/dist/middleware.d.mts +163 -0
- package/dist/middleware.d.ts +163 -0
- package/dist/middleware.mjs +49 -0
- package/dist/middleware.mjs.map +1 -0
- package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
- package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
- package/dist/navigation.cjs +1304 -0
- package/dist/navigation.cjs.map +1 -0
- package/dist/navigation.d.mts +14 -0
- package/dist/navigation.d.ts +14 -0
- package/dist/navigation.mjs +33 -0
- package/dist/navigation.mjs.map +1 -0
- package/dist/nitro-KME62MWG.mjs +691 -0
- package/dist/nitro-KME62MWG.mjs.map +1 -0
- package/dist/observability.cjs +186 -0
- package/dist/observability.cjs.map +1 -0
- package/dist/observability.d.mts +335 -0
- package/dist/observability.d.ts +335 -0
- package/dist/observability.mjs +16 -0
- package/dist/observability.mjs.map +1 -0
- package/dist/params-BALtrRim.d.ts +15 -0
- package/dist/params-ry-lxqmy.d.mts +15 -0
- package/dist/plugin-BJDf43dc.d.mts +165 -0
- package/dist/plugin-BJDf43dc.d.ts +165 -0
- package/dist/plugin.cjs +22285 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.mts +21 -0
- package/dist/plugin.d.ts +21 -0
- package/dist/plugin.mjs +60 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/production-runtime-C_B79w2P.d.mts +28 -0
- package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
- package/dist/production-runtime-DRkCHUvJ.d.ts +79 -0
- package/dist/production-runtime-flrjp_nC.d.mts +79 -0
- package/dist/query/client.cjs +560 -0
- package/dist/query/client.cjs.map +1 -0
- package/dist/query/client.d.mts +61 -0
- package/dist/query/client.d.ts +61 -0
- package/dist/query/client.mjs +364 -0
- package/dist/query/client.mjs.map +1 -0
- package/dist/query/index.cjs +226 -0
- package/dist/query/index.cjs.map +1 -0
- package/dist/query/index.d.mts +90 -0
- package/dist/query/index.d.ts +90 -0
- package/dist/query/index.mjs +31 -0
- package/dist/query/index.mjs.map +1 -0
- package/dist/query/parsers.cjs +178 -0
- package/dist/query/parsers.cjs.map +1 -0
- package/dist/query/parsers.d.mts +25 -0
- package/dist/query/parsers.d.ts +25 -0
- package/dist/query/parsers.mjs +24 -0
- package/dist/query/parsers.mjs.map +1 -0
- package/dist/query/server.cjs +301 -0
- package/dist/query/server.cjs.map +1 -0
- package/dist/query/server.d.mts +55 -0
- package/dist/query/server.d.ts +55 -0
- package/dist/query/server.mjs +105 -0
- package/dist/query/server.mjs.map +1 -0
- package/dist/request-BrFBuc8G.d.mts +6 -0
- package/dist/request-BslSZIRz.d.ts +6 -0
- package/dist/request.cjs +71 -0
- package/dist/request.cjs.map +1 -0
- package/dist/request.d.mts +2 -0
- package/dist/request.d.ts +2 -0
- package/dist/request.mjs +9 -0
- package/dist/request.mjs.map +1 -0
- package/dist/resolver-C6iecsDV.d.ts +14 -0
- package/dist/resolver-DlOPpjkB.d.mts +14 -0
- package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
- package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
- package/dist/router.cjs +254 -0
- package/dist/router.cjs.map +1 -0
- package/dist/router.d.mts +36 -0
- package/dist/router.d.ts +36 -0
- package/dist/router.mjs +14 -0
- package/dist/router.mjs.map +1 -0
- package/dist/routes.cjs +1213 -0
- package/dist/routes.cjs.map +1 -0
- package/dist/routes.d.mts +224 -0
- package/dist/routes.d.ts +224 -0
- package/dist/routes.mjs +52 -0
- package/dist/routes.mjs.map +1 -0
- package/dist/runtime-B6GvwDS1.d.ts +27 -0
- package/dist/runtime-DeAAZ6gO.d.mts +27 -0
- package/dist/search-client-6OXIBNYQ.mjs +14 -0
- package/dist/search-client-6OXIBNYQ.mjs.map +1 -0
- package/dist/server-action-security.cjs +492 -0
- package/dist/server-action-security.cjs.map +1 -0
- package/dist/server-action-security.d.mts +42 -0
- package/dist/server-action-security.d.ts +42 -0
- package/dist/server-action-security.mjs +29 -0
- package/dist/server-action-security.mjs.map +1 -0
- package/dist/server-fn-client.cjs +180 -0
- package/dist/server-fn-client.cjs.map +1 -0
- package/dist/server-fn-client.d.mts +31 -0
- package/dist/server-fn-client.d.ts +31 -0
- package/dist/server-fn-client.mjs +9 -0
- package/dist/server-fn-client.mjs.map +1 -0
- package/dist/server-fn.cjs +284 -0
- package/dist/server-fn.cjs.map +1 -0
- package/dist/server-fn.d.mts +84 -0
- package/dist/server-fn.d.ts +84 -0
- package/dist/server-fn.mjs +17 -0
- package/dist/server-fn.mjs.map +1 -0
- package/dist/server-plugins.cjs +235 -0
- package/dist/server-plugins.cjs.map +1 -0
- package/dist/server-plugins.d.mts +54 -0
- package/dist/server-plugins.d.ts +54 -0
- package/dist/server-plugins.mjs +18 -0
- package/dist/server-plugins.mjs.map +1 -0
- package/dist/server-query-client.cjs +792 -0
- package/dist/server-query-client.cjs.map +1 -0
- package/dist/server-query-client.d.mts +50 -0
- package/dist/server-query-client.d.ts +50 -0
- package/dist/server-query-client.mjs +23 -0
- package/dist/server-query-client.mjs.map +1 -0
- package/dist/server-query.cjs +804 -0
- package/dist/server-query.cjs.map +1 -0
- package/dist/server-query.d.mts +36 -0
- package/dist/server-query.d.ts +36 -0
- package/dist/server-query.mjs +18 -0
- package/dist/server-query.mjs.map +1 -0
- package/dist/server.cjs +25739 -0
- package/dist/server.cjs.map +1 -0
- package/dist/server.d.mts +47 -0
- package/dist/server.d.ts +47 -0
- package/dist/server.mjs +511 -0
- package/dist/server.mjs.map +1 -0
- package/dist/storage.cjs +515 -0
- package/dist/storage.cjs.map +1 -0
- package/dist/storage.d.mts +52 -0
- package/dist/storage.d.ts +52 -0
- package/dist/storage.mjs +58 -0
- package/dist/storage.mjs.map +1 -0
- package/dist/testing.cjs +1882 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.mts +100 -0
- package/dist/testing.d.ts +100 -0
- package/dist/testing.mjs +324 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/types-BH1lhg5G.d.mts +81 -0
- package/dist/types-BH1lhg5G.d.ts +81 -0
- package/dist/types-C9N-nk5R.d.mts +53 -0
- package/dist/types-C9N-nk5R.d.ts +53 -0
- package/dist/types-D1A6-XvH.d.mts +73 -0
- package/dist/types-D1A6-XvH.d.ts +73 -0
- package/dist/utils-DA1yo54_.d.ts +23 -0
- package/dist/utils-DOXXivjL.d.mts +23 -0
- package/dist/vite.cjs +22684 -0
- package/dist/vite.cjs.map +1 -0
- package/dist/vite.d.mts +21 -0
- package/dist/vite.d.ts +21 -0
- package/dist/vite.mjs +59 -0
- package/dist/vite.mjs.map +1 -0
- package/dist/workflows.cjs +586 -0
- package/dist/workflows.cjs.map +1 -0
- package/dist/workflows.d.mts +110 -0
- package/dist/workflows.d.ts +110 -0
- package/dist/workflows.mjs +32 -0
- package/dist/workflows.mjs.map +1 -0
- package/package.json +523 -0
- package/types/api.d.ts +88 -0
- package/types/client.d.ts +1171 -0
- package/types/index.d.ts +17 -0
- package/types/middleware.d.ts +266 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Farm.js Query State Parsers
|
|
3
|
+
*
|
|
4
|
+
* Shared parsers that can be used in both client and server contexts
|
|
5
|
+
*/
|
|
6
|
+
interface Parser<T> {
|
|
7
|
+
parse: (value: string) => T | null;
|
|
8
|
+
serialize: (value: T) => string;
|
|
9
|
+
withDefault?: (defaultValue: T) => Parser<T>;
|
|
10
|
+
}
|
|
11
|
+
declare const asString: Parser<string>;
|
|
12
|
+
declare const asInteger: Parser<number>;
|
|
13
|
+
declare const asFloat: Parser<number>;
|
|
14
|
+
declare const asBoolean: Parser<boolean>;
|
|
15
|
+
declare function asArrayOf<T>(itemParser: Parser<T>): Parser<T[]>;
|
|
16
|
+
declare function asJson<T>(): Parser<T>;
|
|
17
|
+
declare const asIsoDate: Parser<Date>;
|
|
18
|
+
declare const asIsoDateTime: Parser<Date>;
|
|
19
|
+
declare function createParser<T>(config: {
|
|
20
|
+
parse: (value: string) => T | null;
|
|
21
|
+
serialize: (value: T) => string;
|
|
22
|
+
}): Parser<T>;
|
|
23
|
+
type inferParserType<T> = T extends Parser<infer U> ? U : never;
|
|
24
|
+
|
|
25
|
+
export { type Parser, asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, type inferParserType };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Farm.js Query State Parsers
|
|
3
|
+
*
|
|
4
|
+
* Shared parsers that can be used in both client and server contexts
|
|
5
|
+
*/
|
|
6
|
+
interface Parser<T> {
|
|
7
|
+
parse: (value: string) => T | null;
|
|
8
|
+
serialize: (value: T) => string;
|
|
9
|
+
withDefault?: (defaultValue: T) => Parser<T>;
|
|
10
|
+
}
|
|
11
|
+
declare const asString: Parser<string>;
|
|
12
|
+
declare const asInteger: Parser<number>;
|
|
13
|
+
declare const asFloat: Parser<number>;
|
|
14
|
+
declare const asBoolean: Parser<boolean>;
|
|
15
|
+
declare function asArrayOf<T>(itemParser: Parser<T>): Parser<T[]>;
|
|
16
|
+
declare function asJson<T>(): Parser<T>;
|
|
17
|
+
declare const asIsoDate: Parser<Date>;
|
|
18
|
+
declare const asIsoDateTime: Parser<Date>;
|
|
19
|
+
declare function createParser<T>(config: {
|
|
20
|
+
parse: (value: string) => T | null;
|
|
21
|
+
serialize: (value: T) => string;
|
|
22
|
+
}): Parser<T>;
|
|
23
|
+
type inferParserType<T> = T extends Parser<infer U> ? U : never;
|
|
24
|
+
|
|
25
|
+
export { type Parser, asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, type inferParserType };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asArrayOf,
|
|
3
|
+
asBoolean,
|
|
4
|
+
asFloat,
|
|
5
|
+
asInteger,
|
|
6
|
+
asIsoDate,
|
|
7
|
+
asIsoDateTime,
|
|
8
|
+
asJson,
|
|
9
|
+
asString,
|
|
10
|
+
createParser
|
|
11
|
+
} from "../chunk-E2MPIBRE.mjs";
|
|
12
|
+
import "../chunk-CGILA3WO.mjs";
|
|
13
|
+
export {
|
|
14
|
+
asArrayOf,
|
|
15
|
+
asBoolean,
|
|
16
|
+
asFloat,
|
|
17
|
+
asInteger,
|
|
18
|
+
asIsoDate,
|
|
19
|
+
asIsoDateTime,
|
|
20
|
+
asJson,
|
|
21
|
+
asString,
|
|
22
|
+
createParser
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=parsers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,301 @@
|
|
|
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/query/server.ts
|
|
22
|
+
var server_exports = {};
|
|
23
|
+
__export(server_exports, {
|
|
24
|
+
asArrayOf: () => asArrayOf,
|
|
25
|
+
asBoolean: () => asBoolean,
|
|
26
|
+
asFloat: () => asFloat,
|
|
27
|
+
asInteger: () => asInteger,
|
|
28
|
+
asIsoDate: () => asIsoDate,
|
|
29
|
+
asIsoDateTime: () => asIsoDateTime,
|
|
30
|
+
asJson: () => asJson,
|
|
31
|
+
asString: () => asString,
|
|
32
|
+
createPaginationMeta: () => createPaginationMeta,
|
|
33
|
+
createParser: () => createParser,
|
|
34
|
+
loadRouteParams: () => loadRouteParams,
|
|
35
|
+
loadSearchParams: () => loadSearchParams,
|
|
36
|
+
parseRouteParams: () => parseRouteParams
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(server_exports);
|
|
39
|
+
|
|
40
|
+
// src/query/params.ts
|
|
41
|
+
function normalizeParams(input) {
|
|
42
|
+
if (input instanceof URLSearchParams) {
|
|
43
|
+
const params = {};
|
|
44
|
+
input.forEach((value, key) => {
|
|
45
|
+
params[key] = value;
|
|
46
|
+
});
|
|
47
|
+
return params;
|
|
48
|
+
}
|
|
49
|
+
return input;
|
|
50
|
+
}
|
|
51
|
+
__name(normalizeParams, "normalizeParams");
|
|
52
|
+
async function loadRouteParams(input, parsers, options = {}) {
|
|
53
|
+
const resolved = await Promise.resolve(input);
|
|
54
|
+
const params = normalizeParams(resolved);
|
|
55
|
+
const result = {};
|
|
56
|
+
for (const [key, parser] of Object.entries(parsers)) {
|
|
57
|
+
const raw = params[key] ?? "";
|
|
58
|
+
const parsed = parser.parse(raw);
|
|
59
|
+
if (parsed === null && options.strict) {
|
|
60
|
+
throw new Error(`Failed to parse route param "${key}" with value "${raw}"`);
|
|
61
|
+
}
|
|
62
|
+
result[key] = parsed;
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
__name(loadRouteParams, "loadRouteParams");
|
|
67
|
+
function parseRouteParams(input, parsers, options = {}) {
|
|
68
|
+
const params = normalizeParams(input);
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const [key, parser] of Object.entries(parsers)) {
|
|
71
|
+
const raw = params[key] ?? "";
|
|
72
|
+
const parsed = parser.parse(raw);
|
|
73
|
+
if (parsed === null && options.strict) {
|
|
74
|
+
throw new Error(`Failed to parse route param "${key}" with value "${raw}"`);
|
|
75
|
+
}
|
|
76
|
+
result[key] = parsed;
|
|
77
|
+
}
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
__name(parseRouteParams, "parseRouteParams");
|
|
81
|
+
|
|
82
|
+
// src/query/parsers.ts
|
|
83
|
+
var asString = {
|
|
84
|
+
parse: /* @__PURE__ */ __name((value) => value && value.trim() || null, "parse"),
|
|
85
|
+
serialize: /* @__PURE__ */ __name((value) => value, "serialize"),
|
|
86
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
87
|
+
parse: /* @__PURE__ */ __name((value) => value && value.trim() || defaultValue, "parse"),
|
|
88
|
+
serialize: /* @__PURE__ */ __name((value) => value || defaultValue, "serialize")
|
|
89
|
+
}), "withDefault")
|
|
90
|
+
};
|
|
91
|
+
var asInteger = {
|
|
92
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
93
|
+
const parsed = Number.parseInt(value, 10);
|
|
94
|
+
return isNaN(parsed) ? null : parsed;
|
|
95
|
+
}, "parse"),
|
|
96
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize"),
|
|
97
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
98
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
99
|
+
const parsed = Number.parseInt(value, 10);
|
|
100
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
101
|
+
}, "parse"),
|
|
102
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize")
|
|
103
|
+
}), "withDefault")
|
|
104
|
+
};
|
|
105
|
+
var asFloat = {
|
|
106
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
107
|
+
const parsed = Number.parseFloat(value);
|
|
108
|
+
return isNaN(parsed) ? null : parsed;
|
|
109
|
+
}, "parse"),
|
|
110
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize"),
|
|
111
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
112
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
113
|
+
const parsed = Number.parseFloat(value);
|
|
114
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
115
|
+
}, "parse"),
|
|
116
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize")
|
|
117
|
+
}), "withDefault")
|
|
118
|
+
};
|
|
119
|
+
var asBoolean = {
|
|
120
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
121
|
+
if (value === "true") return true;
|
|
122
|
+
if (value === "false") return false;
|
|
123
|
+
return null;
|
|
124
|
+
}, "parse"),
|
|
125
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize"),
|
|
126
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
127
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
128
|
+
if (value === "true") return true;
|
|
129
|
+
if (value === "false") return false;
|
|
130
|
+
return defaultValue;
|
|
131
|
+
}, "parse"),
|
|
132
|
+
serialize: /* @__PURE__ */ __name((value) => value.toString(), "serialize")
|
|
133
|
+
}), "withDefault")
|
|
134
|
+
};
|
|
135
|
+
function asArrayOf(itemParser) {
|
|
136
|
+
return {
|
|
137
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
138
|
+
if (!value) return null;
|
|
139
|
+
return value.split(",").filter(Boolean).map((item) => itemParser.parse(item.trim())).filter((item) => item !== null);
|
|
140
|
+
}, "parse"),
|
|
141
|
+
serialize: /* @__PURE__ */ __name((value) => value.map((item) => itemParser.serialize(item)).join(","), "serialize"),
|
|
142
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
143
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
144
|
+
if (!value) return defaultValue;
|
|
145
|
+
return value.split(",").filter(Boolean).map((item) => itemParser.parse(item.trim())).filter((item) => item !== null);
|
|
146
|
+
}, "parse"),
|
|
147
|
+
serialize: /* @__PURE__ */ __name((value) => value.map((item) => itemParser.serialize(item)).join(","), "serialize")
|
|
148
|
+
}), "withDefault")
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
__name(asArrayOf, "asArrayOf");
|
|
152
|
+
function asJson() {
|
|
153
|
+
return {
|
|
154
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
155
|
+
try {
|
|
156
|
+
return JSON.parse(value);
|
|
157
|
+
} catch {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
}, "parse"),
|
|
161
|
+
serialize: /* @__PURE__ */ __name((value) => JSON.stringify(value), "serialize"),
|
|
162
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
163
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
164
|
+
try {
|
|
165
|
+
return JSON.parse(value);
|
|
166
|
+
} catch {
|
|
167
|
+
return defaultValue;
|
|
168
|
+
}
|
|
169
|
+
}, "parse"),
|
|
170
|
+
serialize: /* @__PURE__ */ __name((value) => JSON.stringify(value), "serialize")
|
|
171
|
+
}), "withDefault")
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
__name(asJson, "asJson");
|
|
175
|
+
var asIsoDate = {
|
|
176
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
177
|
+
const date = new Date(value);
|
|
178
|
+
return isNaN(date.getTime()) ? null : date;
|
|
179
|
+
}, "parse"),
|
|
180
|
+
serialize: /* @__PURE__ */ __name((value) => value.toISOString(), "serialize"),
|
|
181
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
182
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
183
|
+
const date = new Date(value);
|
|
184
|
+
return isNaN(date.getTime()) ? defaultValue : date;
|
|
185
|
+
}, "parse"),
|
|
186
|
+
serialize: /* @__PURE__ */ __name((value) => value.toISOString(), "serialize")
|
|
187
|
+
}), "withDefault")
|
|
188
|
+
};
|
|
189
|
+
var asIsoDateTime = {
|
|
190
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
191
|
+
const date = new Date(value);
|
|
192
|
+
return isNaN(date.getTime()) ? null : date;
|
|
193
|
+
}, "parse"),
|
|
194
|
+
serialize: /* @__PURE__ */ __name((value) => value.toISOString(), "serialize"),
|
|
195
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
196
|
+
parse: /* @__PURE__ */ __name((value) => {
|
|
197
|
+
const date = new Date(value);
|
|
198
|
+
return isNaN(date.getTime()) ? defaultValue : date;
|
|
199
|
+
}, "parse"),
|
|
200
|
+
serialize: /* @__PURE__ */ __name((value) => value.toISOString(), "serialize")
|
|
201
|
+
}), "withDefault")
|
|
202
|
+
};
|
|
203
|
+
function createParser(config) {
|
|
204
|
+
return {
|
|
205
|
+
parse: config.parse,
|
|
206
|
+
serialize: config.serialize,
|
|
207
|
+
withDefault: /* @__PURE__ */ __name((defaultValue) => ({
|
|
208
|
+
parse: /* @__PURE__ */ __name((value) => config.parse(value) ?? defaultValue, "parse"),
|
|
209
|
+
serialize: config.serialize
|
|
210
|
+
}), "withDefault")
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
__name(createParser, "createParser");
|
|
214
|
+
|
|
215
|
+
// src/query/server.ts
|
|
216
|
+
async function loadSearchParams(searchParams, parsers) {
|
|
217
|
+
const params = await searchParams;
|
|
218
|
+
let urlParams;
|
|
219
|
+
if (params instanceof URLSearchParams) {
|
|
220
|
+
urlParams = params;
|
|
221
|
+
} else {
|
|
222
|
+
urlParams = new URLSearchParams();
|
|
223
|
+
for (const [key, value] of Object.entries(params)) {
|
|
224
|
+
if (Array.isArray(value)) {
|
|
225
|
+
for (const v of value) {
|
|
226
|
+
urlParams.append(key, v);
|
|
227
|
+
}
|
|
228
|
+
} else if (value !== void 0 && value !== null) {
|
|
229
|
+
urlParams.set(key, String(value));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
const result = {};
|
|
234
|
+
for (const [key, parser] of Object.entries(parsers)) {
|
|
235
|
+
const value = urlParams.get(key);
|
|
236
|
+
if (value !== null && value !== "") {
|
|
237
|
+
try {
|
|
238
|
+
result[key] = parser.parse(value);
|
|
239
|
+
} catch (error) {
|
|
240
|
+
console.error(`Failed to parse parameter "${key}":`, error);
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
} else {
|
|
244
|
+
result[key] = parser.parse("");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
__name(loadSearchParams, "loadSearchParams");
|
|
250
|
+
async function createPaginationMeta(searchParams, options) {
|
|
251
|
+
const params = await searchParams;
|
|
252
|
+
let urlParams;
|
|
253
|
+
if (params instanceof URLSearchParams) {
|
|
254
|
+
urlParams = params;
|
|
255
|
+
} else {
|
|
256
|
+
urlParams = new URLSearchParams();
|
|
257
|
+
for (const [key, value] of Object.entries(params)) {
|
|
258
|
+
if (Array.isArray(value)) {
|
|
259
|
+
for (const v of value) {
|
|
260
|
+
urlParams.append(key, v);
|
|
261
|
+
}
|
|
262
|
+
} else if (value !== void 0 && value !== null) {
|
|
263
|
+
urlParams.set(key, String(value));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
const pageParam = options.pageParam || "page";
|
|
268
|
+
const itemsPerPage = options.itemsPerPage || 10;
|
|
269
|
+
const currentPage = Number.parseInt(urlParams.get(pageParam) || "1", 10);
|
|
270
|
+
const totalPages = Math.ceil(options.totalItems / itemsPerPage);
|
|
271
|
+
const offset = (currentPage - 1) * itemsPerPage;
|
|
272
|
+
const limit = itemsPerPage;
|
|
273
|
+
return {
|
|
274
|
+
currentPage,
|
|
275
|
+
itemsPerPage,
|
|
276
|
+
totalItems: options.totalItems,
|
|
277
|
+
totalPages,
|
|
278
|
+
offset,
|
|
279
|
+
limit,
|
|
280
|
+
hasNextPage: currentPage < totalPages,
|
|
281
|
+
hasPreviousPage: currentPage > 1
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
__name(createPaginationMeta, "createPaginationMeta");
|
|
285
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
286
|
+
0 && (module.exports = {
|
|
287
|
+
asArrayOf,
|
|
288
|
+
asBoolean,
|
|
289
|
+
asFloat,
|
|
290
|
+
asInteger,
|
|
291
|
+
asIsoDate,
|
|
292
|
+
asIsoDateTime,
|
|
293
|
+
asJson,
|
|
294
|
+
asString,
|
|
295
|
+
createPaginationMeta,
|
|
296
|
+
createParser,
|
|
297
|
+
loadRouteParams,
|
|
298
|
+
loadSearchParams,
|
|
299
|
+
parseRouteParams
|
|
300
|
+
});
|
|
301
|
+
//# sourceMappingURL=server.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/query/server.ts","../../src/query/params.ts","../../src/query/parsers.ts"],"sourcesContent":["/**\n * Farm.js Server-Side Query State Management\n *\n * Server-side utilities for parsing and handling URL search parameters\n */\n\nimport type { Parser } from \"./parsers\";\nexport { parseRouteParams, loadRouteParams, type RouteParamsInput } from \"./params\";\n\nexport {\n asString,\n asInteger,\n asFloat,\n asBoolean,\n asArrayOf,\n asJson,\n asIsoDate,\n asIsoDateTime,\n createParser,\n type Parser,\n type inferParserType,\n} from \"./parsers\";\n\nexport type SearchParams = Record<string, string | string[] | undefined>;\n\n/**\n * Server-side utility to load and parse search parameters\n *\n * @example\n * ```tsx\n * // In a server component\n * import { loadSearchParams, parseAsString, parseAsInteger } from 'farm/query/server';\n *\n * export default async function MyPage({ searchParams }: PageProps) {\n * const params = await loadSearchParams(searchParams, {\n * search: parseAsString.withDefault!(''),\n * page: parseAsInteger.withDefault!(1),\n * });\n *\n * return <div>Search: {params.search}, Page: {params.page}</div>;\n * }\n * ```\n */\nexport async function loadSearchParams<T extends Record<string, Parser<any>>>(\n searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>,\n parsers: T,\n): Promise<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> }> {\n const params = await searchParams;\n\n let urlParams: URLSearchParams;\n if (params instanceof URLSearchParams) {\n urlParams = params;\n } else {\n urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n urlParams.append(key, v);\n }\n } else if (value !== undefined && value !== null) {\n urlParams.set(key, String(value));\n }\n }\n }\n\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const value = urlParams.get(key);\n\n if (value !== null && value !== \"\") {\n try {\n result[key as keyof T] = parser.parse(value);\n } catch (error) {\n console.error(`Failed to parse parameter \"${key}\":`, error);\n throw error;\n }\n } else {\n result[key as keyof T] = parser.parse(\"\");\n }\n }\n\n return result;\n}\n\n/**\n * Creates pagination metadata for server components.\n *\n * @param searchParams The search parameters promise.\n * @param options Configuration options for pagination.\n * @returns Pagination metadata.\n */\nexport async function createPaginationMeta(\n searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>,\n options: {\n totalItems: number;\n itemsPerPage?: number;\n pageParam?: string;\n },\n) {\n const params = await searchParams;\n\n let urlParams: URLSearchParams;\n if (params instanceof URLSearchParams) {\n urlParams = params;\n } else {\n urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n urlParams.append(key, v);\n }\n } else if (value !== undefined && value !== null) {\n urlParams.set(key, String(value));\n }\n }\n }\n\n const pageParam = options.pageParam || \"page\";\n const itemsPerPage = options.itemsPerPage || 10;\n const currentPage = Number.parseInt(urlParams.get(pageParam) || \"1\", 10);\n\n const totalPages = Math.ceil(options.totalItems / itemsPerPage);\n const offset = (currentPage - 1) * itemsPerPage;\n const limit = itemsPerPage;\n\n return {\n currentPage,\n itemsPerPage,\n totalItems: options.totalItems,\n totalPages,\n offset,\n limit,\n hasNextPage: currentPage < totalPages,\n hasPreviousPage: currentPage > 1,\n };\n}\n","import type { Parser } from \"./parsers\";\n\nexport type RouteParamsInput =\n | Record<string, string | undefined>\n | URLSearchParams\n | Promise<Record<string, string | undefined> | URLSearchParams>;\n\nfunction normalizeParams(input: Record<string, string | undefined> | URLSearchParams) {\n if (input instanceof URLSearchParams) {\n const params: Record<string, string | undefined> = {};\n input.forEach((value, key) => {\n params[key] = value;\n });\n return params;\n }\n return input;\n}\n\nexport async function loadRouteParams<T extends Record<string, Parser<any>>>(\n input: RouteParamsInput,\n parsers: T,\n options: { strict?: boolean } = {},\n): Promise<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> }> {\n const resolved = await Promise.resolve(input);\n const params = normalizeParams(resolved);\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const raw = params[key] ?? \"\";\n const parsed = parser.parse(raw);\n if (parsed === null && options.strict) {\n throw new Error(`Failed to parse route param \"${key}\" with value \"${raw}\"`);\n }\n result[key as keyof T] = parsed as ReturnType<T[typeof key][\"parse\"]>;\n }\n\n return result;\n}\n\nexport function parseRouteParams<T extends Record<string, Parser<any>>>(\n input: Record<string, string | undefined> | URLSearchParams,\n parsers: T,\n options: { strict?: boolean } = {},\n): { [K in keyof T]: ReturnType<T[K][\"parse\"]> } {\n const params = normalizeParams(input);\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const raw = params[key] ?? \"\";\n const parsed = parser.parse(raw);\n if (parsed === null && options.strict) {\n throw new Error(`Failed to parse route param \"${key}\" with value \"${raw}\"`);\n }\n result[key as keyof T] = parsed as ReturnType<T[typeof key][\"parse\"]>;\n }\n\n return result;\n}\n","/**\n * Farm.js Query State Parsers\n *\n * Shared parsers that can be used in both client and server contexts\n */\n\nexport interface Parser<T> {\n parse: (value: string) => T | null;\n serialize: (value: T) => string;\n withDefault?: (defaultValue: T) => Parser<T>;\n}\n\n// String parser\nexport const asString: Parser<string> = {\n parse: (value: string) => (value && value.trim()) || null,\n serialize: (value: string) => value,\n withDefault: (defaultValue: string) => ({\n parse: (value: string) => (value && value.trim()) || defaultValue,\n serialize: (value: string) => value || defaultValue,\n }),\n};\n\n// Integer parser\nexport const asInteger: Parser<number> = {\n parse: (value: string) => {\n const parsed = Number.parseInt(value, 10);\n return isNaN(parsed) ? null : parsed;\n },\n serialize: (value: number) => value.toString(),\n withDefault: (defaultValue: number) => ({\n parse: (value: string) => {\n const parsed = Number.parseInt(value, 10);\n return isNaN(parsed) ? defaultValue : parsed;\n },\n serialize: (value: number) => value.toString(),\n }),\n};\n\n// Float parser\nexport const asFloat: Parser<number> = {\n parse: (value: string) => {\n const parsed = Number.parseFloat(value);\n return isNaN(parsed) ? null : parsed;\n },\n serialize: (value: number) => value.toString(),\n withDefault: (defaultValue: number) => ({\n parse: (value: string) => {\n const parsed = Number.parseFloat(value);\n return isNaN(parsed) ? defaultValue : parsed;\n },\n serialize: (value: number) => value.toString(),\n }),\n};\n\n// Boolean parser\nexport const asBoolean: Parser<boolean> = {\n parse: (value: string) => {\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n return null;\n },\n serialize: (value: boolean) => value.toString(),\n withDefault: (defaultValue: boolean) => ({\n parse: (value: string) => {\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n return defaultValue;\n },\n serialize: (value: boolean) => value.toString(),\n }),\n};\n\n// Array parser\nexport function asArrayOf<T>(itemParser: Parser<T>): Parser<T[]> {\n return {\n parse: (value: string) => {\n if (!value) return null;\n return value\n .split(\",\")\n .filter(Boolean)\n .map((item) => itemParser.parse(item.trim()))\n .filter((item) => item !== null) as T[];\n },\n serialize: (value: T[]) => value.map((item) => itemParser.serialize(item)).join(\",\"),\n withDefault: (defaultValue: T[]) => ({\n parse: (value: string) => {\n if (!value) return defaultValue;\n return value\n .split(\",\")\n .filter(Boolean)\n .map((item) => itemParser.parse(item.trim()))\n .filter((item) => item !== null) as T[];\n },\n serialize: (value: T[]) => value.map((item) => itemParser.serialize(item)).join(\",\"),\n }),\n };\n}\n\n// JSON parser\nexport function asJson<T>(): Parser<T> {\n return {\n parse: (value: string) => {\n try {\n return JSON.parse(value);\n } catch {\n return null;\n }\n },\n serialize: (value: T) => JSON.stringify(value),\n withDefault: (defaultValue: T) => ({\n parse: (value: string) => {\n try {\n return JSON.parse(value);\n } catch {\n return defaultValue;\n }\n },\n serialize: (value: T) => JSON.stringify(value),\n }),\n };\n}\n\n// ISO Date parser\nexport const asIsoDate: Parser<Date> = {\n parse: (value: string) => {\n const date = new Date(value);\n return isNaN(date.getTime()) ? null : date;\n },\n serialize: (value: Date) => value.toISOString(),\n withDefault: (defaultValue: Date) => ({\n parse: (value: string) => {\n const date = new Date(value);\n return isNaN(date.getTime()) ? defaultValue : date;\n },\n serialize: (value: Date) => value.toISOString(),\n }),\n};\n\n// ISO DateTime parser\nexport const asIsoDateTime: Parser<Date> = {\n parse: (value: string) => {\n const date = new Date(value);\n return isNaN(date.getTime()) ? null : date;\n },\n serialize: (value: Date) => value.toISOString(),\n withDefault: (defaultValue: Date) => ({\n parse: (value: string) => {\n const date = new Date(value);\n return isNaN(date.getTime()) ? defaultValue : date;\n },\n serialize: (value: Date) => value.toISOString(),\n }),\n};\n\n// Custom parser creator\nexport function createParser<T>(config: {\n parse: (value: string) => T | null;\n serialize: (value: T) => string;\n}): Parser<T> {\n return {\n parse: config.parse,\n serialize: config.serialize,\n withDefault: (defaultValue: T) => ({\n parse: (value: string) => config.parse(value) ?? defaultValue,\n serialize: config.serialize,\n }),\n };\n}\n\n// Type inference helper\nexport type inferParserType<T> = T extends Parser<infer U> ? U : never;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOA,SAAS,gBAAgB,OAA6D;AACpF,MAAI,iBAAiB,iBAAiB;AACpC,UAAM,SAA6C,CAAC;AACpD,UAAM,QAAQ,CAAC,OAAO,QAAQ;AAC5B,aAAO,GAAG,IAAI;AAAA,IAChB,CAAC;AACD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AATS;AAWT,eAAsB,gBACpB,OACA,SACA,UAAgC,CAAC,GACuB;AACxD,QAAM,WAAW,MAAM,QAAQ,QAAQ,KAAK;AAC5C,QAAM,SAAS,gBAAgB,QAAQ;AACvC,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,MAAM,OAAO,GAAG,KAAK;AAC3B,UAAM,SAAS,OAAO,MAAM,GAAG;AAC/B,QAAI,WAAW,QAAQ,QAAQ,QAAQ;AACrC,YAAM,IAAI,MAAM,gCAAgC,GAAG,iBAAiB,GAAG,GAAG;AAAA,IAC5E;AACA,WAAO,GAAc,IAAI;AAAA,EAC3B;AAEA,SAAO;AACT;AAnBsB;AAqBf,SAAS,iBACd,OACA,SACA,UAAgC,CAAC,GACc;AAC/C,QAAM,SAAS,gBAAgB,KAAK;AACpC,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,MAAM,OAAO,GAAG,KAAK;AAC3B,UAAM,SAAS,OAAO,MAAM,GAAG;AAC/B,QAAI,WAAW,QAAQ,QAAQ,QAAQ;AACrC,YAAM,IAAI,MAAM,gCAAgC,GAAG,iBAAiB,GAAG,GAAG;AAAA,IAC5E;AACA,WAAO,GAAc,IAAI;AAAA,EAC3B;AAEA,SAAO;AACT;AAlBgB;;;AC1BT,IAAM,WAA2B;AAAA,EACtC,OAAO,wBAAC,UAAmB,SAAS,MAAM,KAAK,KAAM,MAA9C;AAAA,EACP,WAAW,wBAAC,UAAkB,OAAnB;AAAA,EACX,aAAa,wBAAC,kBAA0B;AAAA,IACtC,OAAO,wBAAC,UAAmB,SAAS,MAAM,KAAK,KAAM,cAA9C;AAAA,IACP,WAAW,wBAAC,UAAkB,SAAS,cAA5B;AAAA,EACb,IAHa;AAIf;AAGO,IAAM,YAA4B;AAAA,EACvC,OAAO,wBAAC,UAAkB;AACxB,UAAM,SAAS,OAAO,SAAS,OAAO,EAAE;AACxC,WAAO,MAAM,MAAM,IAAI,OAAO;AAAA,EAChC,GAHO;AAAA,EAIP,WAAW,wBAAC,UAAkB,MAAM,SAAS,GAAlC;AAAA,EACX,aAAa,wBAAC,kBAA0B;AAAA,IACtC,OAAO,wBAAC,UAAkB;AACxB,YAAM,SAAS,OAAO,SAAS,OAAO,EAAE;AACxC,aAAO,MAAM,MAAM,IAAI,eAAe;AAAA,IACxC,GAHO;AAAA,IAIP,WAAW,wBAAC,UAAkB,MAAM,SAAS,GAAlC;AAAA,EACb,IANa;AAOf;AAGO,IAAM,UAA0B;AAAA,EACrC,OAAO,wBAAC,UAAkB;AACxB,UAAM,SAAS,OAAO,WAAW,KAAK;AACtC,WAAO,MAAM,MAAM,IAAI,OAAO;AAAA,EAChC,GAHO;AAAA,EAIP,WAAW,wBAAC,UAAkB,MAAM,SAAS,GAAlC;AAAA,EACX,aAAa,wBAAC,kBAA0B;AAAA,IACtC,OAAO,wBAAC,UAAkB;AACxB,YAAM,SAAS,OAAO,WAAW,KAAK;AACtC,aAAO,MAAM,MAAM,IAAI,eAAe;AAAA,IACxC,GAHO;AAAA,IAIP,WAAW,wBAAC,UAAkB,MAAM,SAAS,GAAlC;AAAA,EACb,IANa;AAOf;AAGO,IAAM,YAA6B;AAAA,EACxC,OAAO,wBAAC,UAAkB;AACxB,QAAI,UAAU,OAAQ,QAAO;AAC7B,QAAI,UAAU,QAAS,QAAO;AAC9B,WAAO;AAAA,EACT,GAJO;AAAA,EAKP,WAAW,wBAAC,UAAmB,MAAM,SAAS,GAAnC;AAAA,EACX,aAAa,wBAAC,kBAA2B;AAAA,IACvC,OAAO,wBAAC,UAAkB;AACxB,UAAI,UAAU,OAAQ,QAAO;AAC7B,UAAI,UAAU,QAAS,QAAO;AAC9B,aAAO;AAAA,IACT,GAJO;AAAA,IAKP,WAAW,wBAAC,UAAmB,MAAM,SAAS,GAAnC;AAAA,EACb,IAPa;AAQf;AAGO,SAAS,UAAa,YAAoC;AAC/D,SAAO;AAAA,IACL,OAAO,wBAAC,UAAkB;AACxB,UAAI,CAAC,MAAO,QAAO;AACnB,aAAO,MACJ,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAAC,SAAS,WAAW,MAAM,KAAK,KAAK,CAAC,CAAC,EAC3C,OAAO,CAAC,SAAS,SAAS,IAAI;AAAA,IACnC,GAPO;AAAA,IAQP,WAAW,wBAAC,UAAe,MAAM,IAAI,CAAC,SAAS,WAAW,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG,GAAxE;AAAA,IACX,aAAa,wBAAC,kBAAuB;AAAA,MACnC,OAAO,wBAAC,UAAkB;AACxB,YAAI,CAAC,MAAO,QAAO;AACnB,eAAO,MACJ,MAAM,GAAG,EACT,OAAO,OAAO,EACd,IAAI,CAAC,SAAS,WAAW,MAAM,KAAK,KAAK,CAAC,CAAC,EAC3C,OAAO,CAAC,SAAS,SAAS,IAAI;AAAA,MACnC,GAPO;AAAA,MAQP,WAAW,wBAAC,UAAe,MAAM,IAAI,CAAC,SAAS,WAAW,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG,GAAxE;AAAA,IACb,IAVa;AAAA,EAWf;AACF;AAvBgB;AA0BT,SAAS,SAAuB;AACrC,SAAO;AAAA,IACL,OAAO,wBAAC,UAAkB;AACxB,UAAI;AACF,eAAO,KAAK,MAAM,KAAK;AAAA,MACzB,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,GANO;AAAA,IAOP,WAAW,wBAAC,UAAa,KAAK,UAAU,KAAK,GAAlC;AAAA,IACX,aAAa,wBAAC,kBAAqB;AAAA,MACjC,OAAO,wBAAC,UAAkB;AACxB,YAAI;AACF,iBAAO,KAAK,MAAM,KAAK;AAAA,QACzB,QAAQ;AACN,iBAAO;AAAA,QACT;AAAA,MACF,GANO;AAAA,MAOP,WAAW,wBAAC,UAAa,KAAK,UAAU,KAAK,GAAlC;AAAA,IACb,IATa;AAAA,EAUf;AACF;AArBgB;AAwBT,IAAM,YAA0B;AAAA,EACrC,OAAO,wBAAC,UAAkB;AACxB,UAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,WAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAAA,EACxC,GAHO;AAAA,EAIP,WAAW,wBAAC,UAAgB,MAAM,YAAY,GAAnC;AAAA,EACX,aAAa,wBAAC,kBAAwB;AAAA,IACpC,OAAO,wBAAC,UAAkB;AACxB,YAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,aAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,eAAe;AAAA,IAChD,GAHO;AAAA,IAIP,WAAW,wBAAC,UAAgB,MAAM,YAAY,GAAnC;AAAA,EACb,IANa;AAOf;AAGO,IAAM,gBAA8B;AAAA,EACzC,OAAO,wBAAC,UAAkB;AACxB,UAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,WAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAAA,EACxC,GAHO;AAAA,EAIP,WAAW,wBAAC,UAAgB,MAAM,YAAY,GAAnC;AAAA,EACX,aAAa,wBAAC,kBAAwB;AAAA,IACpC,OAAO,wBAAC,UAAkB;AACxB,YAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,aAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,eAAe;AAAA,IAChD,GAHO;AAAA,IAIP,WAAW,wBAAC,UAAgB,MAAM,YAAY,GAAnC;AAAA,EACb,IANa;AAOf;AAGO,SAAS,aAAgB,QAGlB;AACZ,SAAO;AAAA,IACL,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,aAAa,wBAAC,kBAAqB;AAAA,MACjC,OAAO,wBAAC,UAAkB,OAAO,MAAM,KAAK,KAAK,cAA1C;AAAA,MACP,WAAW,OAAO;AAAA,IACpB,IAHa;AAAA,EAIf;AACF;AAZgB;;;AFhHhB,eAAsB,iBACpB,cACA,SACwD;AACxD,QAAM,SAAS,MAAM;AAErB,MAAI;AACJ,MAAI,kBAAkB,iBAAiB;AACrC,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY,IAAI,gBAAgB;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAW,KAAK,OAAO;AACrB,oBAAU,OAAO,KAAK,CAAC;AAAA,QACzB;AAAA,MACF,WAAW,UAAU,UAAa,UAAU,MAAM;AAChD,kBAAU,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,QAAQ,UAAU,IAAI,GAAG;AAE/B,QAAI,UAAU,QAAQ,UAAU,IAAI;AAClC,UAAI;AACF,eAAO,GAAc,IAAI,OAAO,MAAM,KAAK;AAAA,MAC7C,SAAS,OAAO;AACd,gBAAQ,MAAM,8BAA8B,GAAG,MAAM,KAAK;AAC1D,cAAM;AAAA,MACR;AAAA,IACF,OAAO;AACL,aAAO,GAAc,IAAI,OAAO,MAAM,EAAE;AAAA,IAC1C;AAAA,EACF;AAEA,SAAO;AACT;AAxCsB;AAiDtB,eAAsB,qBACpB,cACA,SAKA;AACA,QAAM,SAAS,MAAM;AAErB,MAAI;AACJ,MAAI,kBAAkB,iBAAiB;AACrC,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY,IAAI,gBAAgB;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAW,KAAK,OAAO;AACrB,oBAAU,OAAO,KAAK,CAAC;AAAA,QACzB;AAAA,MACF,WAAW,UAAU,UAAa,UAAU,MAAM;AAChD,kBAAU,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,eAAe,QAAQ,gBAAgB;AAC7C,QAAM,cAAc,OAAO,SAAS,UAAU,IAAI,SAAS,KAAK,KAAK,EAAE;AAEvE,QAAM,aAAa,KAAK,KAAK,QAAQ,aAAa,YAAY;AAC9D,QAAM,UAAU,cAAc,KAAK;AACnC,QAAM,QAAQ;AAEd,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,cAAc;AAAA,IAC3B,iBAAiB,cAAc;AAAA,EACjC;AACF;AA5CsB;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Parser } from './parsers.mjs';
|
|
2
|
+
export { asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, inferParserType } from './parsers.mjs';
|
|
3
|
+
export { R as RouteParamsInput, l as loadRouteParams, p as parseRouteParams } from '../params-ry-lxqmy.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Farm.js Server-Side Query State Management
|
|
7
|
+
*
|
|
8
|
+
* Server-side utilities for parsing and handling URL search parameters
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
type SearchParams = Record<string, string | string[] | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Server-side utility to load and parse search parameters
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* // In a server component
|
|
18
|
+
* import { loadSearchParams, parseAsString, parseAsInteger } from 'farm/query/server';
|
|
19
|
+
*
|
|
20
|
+
* export default async function MyPage({ searchParams }: PageProps) {
|
|
21
|
+
* const params = await loadSearchParams(searchParams, {
|
|
22
|
+
* search: parseAsString.withDefault!(''),
|
|
23
|
+
* page: parseAsInteger.withDefault!(1),
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* return <div>Search: {params.search}, Page: {params.page}</div>;
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function loadSearchParams<T extends Record<string, Parser<any>>>(searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>, parsers: T): Promise<{
|
|
31
|
+
[K in keyof T]: ReturnType<T[K]["parse"]>;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Creates pagination metadata for server components.
|
|
35
|
+
*
|
|
36
|
+
* @param searchParams The search parameters promise.
|
|
37
|
+
* @param options Configuration options for pagination.
|
|
38
|
+
* @returns Pagination metadata.
|
|
39
|
+
*/
|
|
40
|
+
declare function createPaginationMeta(searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>, options: {
|
|
41
|
+
totalItems: number;
|
|
42
|
+
itemsPerPage?: number;
|
|
43
|
+
pageParam?: string;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
currentPage: number;
|
|
46
|
+
itemsPerPage: number;
|
|
47
|
+
totalItems: number;
|
|
48
|
+
totalPages: number;
|
|
49
|
+
offset: number;
|
|
50
|
+
limit: number;
|
|
51
|
+
hasNextPage: boolean;
|
|
52
|
+
hasPreviousPage: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
|
|
55
|
+
export { Parser, type SearchParams, createPaginationMeta, loadSearchParams };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Parser } from './parsers.js';
|
|
2
|
+
export { asArrayOf, asBoolean, asFloat, asInteger, asIsoDate, asIsoDateTime, asJson, asString, createParser, inferParserType } from './parsers.js';
|
|
3
|
+
export { R as RouteParamsInput, l as loadRouteParams, p as parseRouteParams } from '../params-BALtrRim.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Farm.js Server-Side Query State Management
|
|
7
|
+
*
|
|
8
|
+
* Server-side utilities for parsing and handling URL search parameters
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
type SearchParams = Record<string, string | string[] | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Server-side utility to load and parse search parameters
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* // In a server component
|
|
18
|
+
* import { loadSearchParams, parseAsString, parseAsInteger } from 'farm/query/server';
|
|
19
|
+
*
|
|
20
|
+
* export default async function MyPage({ searchParams }: PageProps) {
|
|
21
|
+
* const params = await loadSearchParams(searchParams, {
|
|
22
|
+
* search: parseAsString.withDefault!(''),
|
|
23
|
+
* page: parseAsInteger.withDefault!(1),
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* return <div>Search: {params.search}, Page: {params.page}</div>;
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function loadSearchParams<T extends Record<string, Parser<any>>>(searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>, parsers: T): Promise<{
|
|
31
|
+
[K in keyof T]: ReturnType<T[K]["parse"]>;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Creates pagination metadata for server components.
|
|
35
|
+
*
|
|
36
|
+
* @param searchParams The search parameters promise.
|
|
37
|
+
* @param options Configuration options for pagination.
|
|
38
|
+
* @returns Pagination metadata.
|
|
39
|
+
*/
|
|
40
|
+
declare function createPaginationMeta(searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>, options: {
|
|
41
|
+
totalItems: number;
|
|
42
|
+
itemsPerPage?: number;
|
|
43
|
+
pageParam?: string;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
currentPage: number;
|
|
46
|
+
itemsPerPage: number;
|
|
47
|
+
totalItems: number;
|
|
48
|
+
totalPages: number;
|
|
49
|
+
offset: number;
|
|
50
|
+
limit: number;
|
|
51
|
+
hasNextPage: boolean;
|
|
52
|
+
hasPreviousPage: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
|
|
55
|
+
export { Parser, type SearchParams, createPaginationMeta, loadSearchParams };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadRouteParams,
|
|
3
|
+
parseRouteParams
|
|
4
|
+
} from "../chunk-H2FA2SBS.mjs";
|
|
5
|
+
import {
|
|
6
|
+
asArrayOf,
|
|
7
|
+
asBoolean,
|
|
8
|
+
asFloat,
|
|
9
|
+
asInteger,
|
|
10
|
+
asIsoDate,
|
|
11
|
+
asIsoDateTime,
|
|
12
|
+
asJson,
|
|
13
|
+
asString,
|
|
14
|
+
createParser
|
|
15
|
+
} from "../chunk-E2MPIBRE.mjs";
|
|
16
|
+
import {
|
|
17
|
+
__name
|
|
18
|
+
} from "../chunk-CGILA3WO.mjs";
|
|
19
|
+
|
|
20
|
+
// src/query/server.ts
|
|
21
|
+
async function loadSearchParams(searchParams, parsers) {
|
|
22
|
+
const params = await searchParams;
|
|
23
|
+
let urlParams;
|
|
24
|
+
if (params instanceof URLSearchParams) {
|
|
25
|
+
urlParams = params;
|
|
26
|
+
} else {
|
|
27
|
+
urlParams = new URLSearchParams();
|
|
28
|
+
for (const [key, value] of Object.entries(params)) {
|
|
29
|
+
if (Array.isArray(value)) {
|
|
30
|
+
for (const v of value) {
|
|
31
|
+
urlParams.append(key, v);
|
|
32
|
+
}
|
|
33
|
+
} else if (value !== void 0 && value !== null) {
|
|
34
|
+
urlParams.set(key, String(value));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const result = {};
|
|
39
|
+
for (const [key, parser] of Object.entries(parsers)) {
|
|
40
|
+
const value = urlParams.get(key);
|
|
41
|
+
if (value !== null && value !== "") {
|
|
42
|
+
try {
|
|
43
|
+
result[key] = parser.parse(value);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error(`Failed to parse parameter "${key}":`, error);
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
result[key] = parser.parse("");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
__name(loadSearchParams, "loadSearchParams");
|
|
55
|
+
async function createPaginationMeta(searchParams, options) {
|
|
56
|
+
const params = await searchParams;
|
|
57
|
+
let urlParams;
|
|
58
|
+
if (params instanceof URLSearchParams) {
|
|
59
|
+
urlParams = params;
|
|
60
|
+
} else {
|
|
61
|
+
urlParams = new URLSearchParams();
|
|
62
|
+
for (const [key, value] of Object.entries(params)) {
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
for (const v of value) {
|
|
65
|
+
urlParams.append(key, v);
|
|
66
|
+
}
|
|
67
|
+
} else if (value !== void 0 && value !== null) {
|
|
68
|
+
urlParams.set(key, String(value));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const pageParam = options.pageParam || "page";
|
|
73
|
+
const itemsPerPage = options.itemsPerPage || 10;
|
|
74
|
+
const currentPage = Number.parseInt(urlParams.get(pageParam) || "1", 10);
|
|
75
|
+
const totalPages = Math.ceil(options.totalItems / itemsPerPage);
|
|
76
|
+
const offset = (currentPage - 1) * itemsPerPage;
|
|
77
|
+
const limit = itemsPerPage;
|
|
78
|
+
return {
|
|
79
|
+
currentPage,
|
|
80
|
+
itemsPerPage,
|
|
81
|
+
totalItems: options.totalItems,
|
|
82
|
+
totalPages,
|
|
83
|
+
offset,
|
|
84
|
+
limit,
|
|
85
|
+
hasNextPage: currentPage < totalPages,
|
|
86
|
+
hasPreviousPage: currentPage > 1
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
__name(createPaginationMeta, "createPaginationMeta");
|
|
90
|
+
export {
|
|
91
|
+
asArrayOf,
|
|
92
|
+
asBoolean,
|
|
93
|
+
asFloat,
|
|
94
|
+
asInteger,
|
|
95
|
+
asIsoDate,
|
|
96
|
+
asIsoDateTime,
|
|
97
|
+
asJson,
|
|
98
|
+
asString,
|
|
99
|
+
createPaginationMeta,
|
|
100
|
+
createParser,
|
|
101
|
+
loadRouteParams,
|
|
102
|
+
loadSearchParams,
|
|
103
|
+
parseRouteParams
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/query/server.ts"],"sourcesContent":["/**\n * Farm.js Server-Side Query State Management\n *\n * Server-side utilities for parsing and handling URL search parameters\n */\n\nimport type { Parser } from \"./parsers\";\nexport { parseRouteParams, loadRouteParams, type RouteParamsInput } from \"./params\";\n\nexport {\n asString,\n asInteger,\n asFloat,\n asBoolean,\n asArrayOf,\n asJson,\n asIsoDate,\n asIsoDateTime,\n createParser,\n type Parser,\n type inferParserType,\n} from \"./parsers\";\n\nexport type SearchParams = Record<string, string | string[] | undefined>;\n\n/**\n * Server-side utility to load and parse search parameters\n *\n * @example\n * ```tsx\n * // In a server component\n * import { loadSearchParams, parseAsString, parseAsInteger } from 'farm/query/server';\n *\n * export default async function MyPage({ searchParams }: PageProps) {\n * const params = await loadSearchParams(searchParams, {\n * search: parseAsString.withDefault!(''),\n * page: parseAsInteger.withDefault!(1),\n * });\n *\n * return <div>Search: {params.search}, Page: {params.page}</div>;\n * }\n * ```\n */\nexport async function loadSearchParams<T extends Record<string, Parser<any>>>(\n searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>,\n parsers: T,\n): Promise<{ [K in keyof T]: ReturnType<T[K][\"parse\"]> }> {\n const params = await searchParams;\n\n let urlParams: URLSearchParams;\n if (params instanceof URLSearchParams) {\n urlParams = params;\n } else {\n urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n urlParams.append(key, v);\n }\n } else if (value !== undefined && value !== null) {\n urlParams.set(key, String(value));\n }\n }\n }\n\n const result = {} as { [K in keyof T]: ReturnType<T[K][\"parse\"]> };\n\n for (const [key, parser] of Object.entries(parsers)) {\n const value = urlParams.get(key);\n\n if (value !== null && value !== \"\") {\n try {\n result[key as keyof T] = parser.parse(value);\n } catch (error) {\n console.error(`Failed to parse parameter \"${key}\":`, error);\n throw error;\n }\n } else {\n result[key as keyof T] = parser.parse(\"\");\n }\n }\n\n return result;\n}\n\n/**\n * Creates pagination metadata for server components.\n *\n * @param searchParams The search parameters promise.\n * @param options Configuration options for pagination.\n * @returns Pagination metadata.\n */\nexport async function createPaginationMeta(\n searchParams: Promise<URLSearchParams | Record<string, string | string[] | undefined>>,\n options: {\n totalItems: number;\n itemsPerPage?: number;\n pageParam?: string;\n },\n) {\n const params = await searchParams;\n\n let urlParams: URLSearchParams;\n if (params instanceof URLSearchParams) {\n urlParams = params;\n } else {\n urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n urlParams.append(key, v);\n }\n } else if (value !== undefined && value !== null) {\n urlParams.set(key, String(value));\n }\n }\n }\n\n const pageParam = options.pageParam || \"page\";\n const itemsPerPage = options.itemsPerPage || 10;\n const currentPage = Number.parseInt(urlParams.get(pageParam) || \"1\", 10);\n\n const totalPages = Math.ceil(options.totalItems / itemsPerPage);\n const offset = (currentPage - 1) * itemsPerPage;\n const limit = itemsPerPage;\n\n return {\n currentPage,\n itemsPerPage,\n totalItems: options.totalItems,\n totalPages,\n offset,\n limit,\n hasNextPage: currentPage < totalPages,\n hasPreviousPage: currentPage > 1,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA2CA,eAAsB,iBACpB,cACA,SACwD;AACxD,QAAM,SAAS,MAAM;AAErB,MAAI;AACJ,MAAI,kBAAkB,iBAAiB;AACrC,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY,IAAI,gBAAgB;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAW,KAAK,OAAO;AACrB,oBAAU,OAAO,KAAK,CAAC;AAAA,QACzB;AAAA,MACF,WAAW,UAAU,UAAa,UAAU,MAAM;AAChD,kBAAU,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,CAAC;AAEhB,aAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AACnD,UAAM,QAAQ,UAAU,IAAI,GAAG;AAE/B,QAAI,UAAU,QAAQ,UAAU,IAAI;AAClC,UAAI;AACF,eAAO,GAAc,IAAI,OAAO,MAAM,KAAK;AAAA,MAC7C,SAAS,OAAO;AACd,gBAAQ,MAAM,8BAA8B,GAAG,MAAM,KAAK;AAC1D,cAAM;AAAA,MACR;AAAA,IACF,OAAO;AACL,aAAO,GAAc,IAAI,OAAO,MAAM,EAAE;AAAA,IAC1C;AAAA,EACF;AAEA,SAAO;AACT;AAxCsB;AAiDtB,eAAsB,qBACpB,cACA,SAKA;AACA,QAAM,SAAS,MAAM;AAErB,MAAI;AACJ,MAAI,kBAAkB,iBAAiB;AACrC,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY,IAAI,gBAAgB;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAW,KAAK,OAAO;AACrB,oBAAU,OAAO,KAAK,CAAC;AAAA,QACzB;AAAA,MACF,WAAW,UAAU,UAAa,UAAU,MAAM;AAChD,kBAAU,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,eAAe,QAAQ,gBAAgB;AAC7C,QAAM,cAAc,OAAO,SAAS,UAAU,IAAI,SAAS,KAAK,KAAK,EAAE;AAEvE,QAAM,aAAa,KAAK,KAAK,QAAQ,aAAa,YAAY;AAC9D,QAAM,UAAU,cAAc,KAAK;AACnC,QAAM,QAAQ;AAEd,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,cAAc;AAAA,IAC3B,iBAAiB,cAAc;AAAA,EACjC;AACF;AA5CsB;","names":[]}
|