@farm.js/core 0.1.0-beta.95 → 0.1.0-beta.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/after.cjs +1 -1
- package/dist/after.mjs +1 -1
- package/dist/agent-runtime.d.mts +3 -2
- package/dist/agent-runtime.d.ts +3 -2
- package/dist/api/route-manager.cjs +43 -4
- package/dist/api/route-manager.d.mts +4 -3
- package/dist/api/route-manager.d.ts +4 -3
- package/dist/api/route-manager.mjs +7 -7
- package/dist/api/runtime.cjs +43 -4
- package/dist/api/runtime.d.mts +1 -1
- package/dist/api/runtime.d.ts +1 -1
- package/dist/api/runtime.mjs +5 -5
- package/dist/api.cjs +352 -109
- package/dist/api.d.mts +7 -6
- package/dist/api.d.ts +7 -6
- package/dist/api.mjs +19 -12
- package/dist/{app-CIIEvA4r.d.ts → app-CIOx3LvY.d.ts} +4 -4
- package/dist/{app-O4AEC1OH.d.mts → app-DBd6437H.d.mts} +4 -4
- package/dist/app-markdown.d.mts +4 -3
- package/dist/app-markdown.d.ts +4 -3
- package/dist/cache.cjs +42 -4
- package/dist/cache.d.mts +68 -1
- package/dist/cache.d.ts +68 -1
- package/dist/cache.mjs +3 -3
- package/dist/{chunk-AXVJCMVF.mjs → chunk-2HDOV47R.mjs} +3 -3
- package/dist/chunk-2HDOV47R.mjs.map +1 -0
- package/dist/{chunk-RBRLLZL5.mjs → chunk-34IAPZBG.mjs} +16 -3
- package/dist/chunk-34IAPZBG.mjs.map +1 -0
- package/dist/{chunk-VV24CC42.mjs → chunk-35NPLKQJ.mjs} +2 -2
- package/dist/{chunk-D7QH7MDU.mjs → chunk-3TWQERDE.mjs} +5 -4
- package/dist/chunk-3TWQERDE.mjs.map +1 -0
- package/dist/{chunk-RWYRFCLG.mjs → chunk-4X57GXQA.mjs} +2 -2
- package/dist/{chunk-KOTSX5JH.mjs → chunk-52BR7LTX.mjs} +30 -21
- package/dist/chunk-52BR7LTX.mjs.map +1 -0
- package/dist/{chunk-SALMKQXH.mjs → chunk-6EJHNHH4.mjs} +80 -27
- package/dist/chunk-6EJHNHH4.mjs.map +1 -0
- package/dist/{chunk-ZFNK77WN.mjs → chunk-6JNGOC37.mjs} +2 -2
- package/dist/{after.cjs.map → chunk-6JNGOC37.mjs.map} +1 -1
- package/dist/{chunk-MOW47IF5.mjs → chunk-6UYVU46O.mjs} +2 -2
- package/dist/{chunk-7MABZJIM.mjs → chunk-7PYVLJ4J.mjs} +1 -1
- package/dist/chunk-7PYVLJ4J.mjs.map +1 -0
- package/dist/{chunk-FLHLPB57.mjs → chunk-D7F7YZ7L.mjs} +93 -67
- package/dist/chunk-D7F7YZ7L.mjs.map +1 -0
- package/dist/chunk-DU3PKDVQ.mjs +35 -0
- package/dist/chunk-DU3PKDVQ.mjs.map +1 -0
- package/dist/{chunk-SCFX4UTD.mjs → chunk-EHTUKVSW.mjs} +1 -1
- package/dist/chunk-EHTUKVSW.mjs.map +1 -0
- package/dist/{chunk-KWCNQUH5.mjs → chunk-EPDIF432.mjs} +526 -50
- package/dist/chunk-EPDIF432.mjs.map +1 -0
- package/dist/{chunk-A3636IHN.mjs → chunk-FP5Q67FO.mjs} +167 -96
- package/dist/chunk-FP5Q67FO.mjs.map +1 -0
- package/dist/{chunk-HHZAOTQD.mjs → chunk-GJ7W6LNK.mjs} +7 -6
- package/dist/chunk-GJ7W6LNK.mjs.map +1 -0
- package/dist/{chunk-RLGUZ3HS.mjs → chunk-I3OOUWO5.mjs} +3 -3
- package/dist/{chunk-75CGAL6E.mjs → chunk-IZBX2TEU.mjs} +217 -105
- package/dist/chunk-IZBX2TEU.mjs.map +1 -0
- package/dist/{chunk-22VG4DFJ.mjs → chunk-J3MPQ4MQ.mjs} +2 -2
- package/dist/{chunk-22VG4DFJ.mjs.map → chunk-J3MPQ4MQ.mjs.map} +1 -1
- package/dist/{chunk-2LS3KKE7.mjs → chunk-JV7JUD7Q.mjs} +4 -4
- package/dist/{chunk-Q3OX763A.mjs → chunk-LXDASSTE.mjs} +2 -2
- package/dist/{chunk-ZRBCBOEX.mjs → chunk-N2FY2QZ7.mjs} +28 -3
- package/dist/chunk-N2FY2QZ7.mjs.map +1 -0
- package/dist/{chunk-MRVJCLYQ.mjs → chunk-PSQ7N4XP.mjs} +4 -2
- package/dist/chunk-PSQ7N4XP.mjs.map +1 -0
- package/dist/{chunk-HVG3HLQZ.mjs → chunk-Q7WGOOAI.mjs} +3 -3
- package/dist/{chunk-WTYAPO5I.mjs → chunk-RCNWMEBT.mjs} +3 -2
- package/dist/{chunk-WTYAPO5I.mjs.map → chunk-RCNWMEBT.mjs.map} +1 -1
- package/dist/{chunk-3INDBMUU.mjs → chunk-TGDIACZT.mjs} +2 -2
- package/dist/{chunk-WB75GIX2.mjs → chunk-TQTB33JS.mjs} +14 -3
- package/dist/chunk-TQTB33JS.mjs.map +1 -0
- package/dist/{chunk-MH27UH72.mjs → chunk-TT3E2JOF.mjs} +3 -3
- package/dist/{chunk-UWRGX3J3.mjs → chunk-UMUWR5XA.mjs} +2 -2
- package/dist/{chunk-XTLLHCWU.mjs → chunk-V4VRLVLW.mjs} +52 -31
- package/dist/chunk-V4VRLVLW.mjs.map +1 -0
- package/dist/{chunk-EXCGBERG.mjs → chunk-WD2EBM3I.mjs} +79 -17
- package/dist/chunk-WD2EBM3I.mjs.map +1 -0
- package/dist/{chunk-DLBUAJTK.mjs → chunk-WMJGA32P.mjs} +74 -5
- package/dist/chunk-WMJGA32P.mjs.map +1 -0
- package/dist/{chunk-TKQCJMY7.mjs → chunk-X4SFHKFH.mjs} +7 -4
- package/dist/{chunk-TKQCJMY7.mjs.map → chunk-X4SFHKFH.mjs.map} +1 -1
- package/dist/{chunk-Q7GPJZCO.mjs → chunk-YIBV77KZ.mjs} +26 -7
- package/dist/chunk-YIBV77KZ.mjs.map +1 -0
- package/dist/client/lifecycle.mjs +2 -2
- package/dist/{client-mcMC334J.d.mts → client-DWoLZ3QU.d.mts} +52 -5
- package/dist/{client-d5ONQ-Pd.d.ts → client-DuQuQC1h.d.ts} +52 -5
- package/dist/client-cache-BMxuFqwH.d.ts +18 -0
- package/dist/client-cache-CCK-fCe0.d.mts +18 -0
- package/dist/{client-plugins-BvClItiL.d.mts → client-plugins-B6-07YmP.d.mts} +52 -99
- package/dist/{client-plugins-B9Sq-iMg.d.ts → client-plugins-By6MVUX-.d.ts} +52 -99
- package/dist/client-plugins.cjs +1 -1
- package/dist/client-plugins.d.mts +3 -2
- package/dist/client-plugins.d.ts +3 -2
- package/dist/client-plugins.mjs +2 -2
- package/dist/client.cjs +1046 -211
- package/dist/client.d.mts +136 -18
- package/dist/client.d.ts +136 -18
- package/dist/client.mjs +32 -15
- package/dist/config.d.mts +3 -2
- package/dist/config.d.ts +3 -2
- package/dist/{devtools-S52RRRMN.mjs → devtools-XWZX6CCL.mjs} +5 -5
- package/dist/{devtools-client-3XRTBND5.mjs → devtools-client-Z7QQA3Q2.mjs} +56 -17
- package/dist/devtools-client-Z7QQA3Q2.mjs.map +1 -0
- package/dist/{devtools-ui-NJKFORTG.mjs → devtools-ui-2HG5M4EL.mjs} +3 -1
- package/dist/devtools-ui-2HG5M4EL.mjs.map +1 -0
- package/dist/docs.cjs +24 -5
- package/dist/docs.mjs +5 -5
- package/dist/i18n/server.cjs +13 -2
- package/dist/i18n/server.d.mts +2 -2
- package/dist/i18n/server.d.ts +2 -2
- package/dist/i18n/server.mjs +1 -1
- package/dist/index.cjs +1928 -894
- package/dist/index.d.mts +139 -21
- package/dist/index.d.ts +139 -21
- package/dist/index.mjs +57 -34
- package/dist/index.mjs.map +1 -1
- package/dist/integration-api-BT024nuJ.d.mts +97 -0
- package/dist/integration-api-BT024nuJ.d.ts +97 -0
- package/dist/integrations.d.mts +3 -2
- package/dist/integrations.d.ts +3 -2
- package/dist/internal/build-runtime.cjs +764 -547
- package/dist/internal/build-runtime.d.mts +5 -4
- package/dist/internal/build-runtime.d.ts +5 -4
- package/dist/internal/build-runtime.mjs +16 -16
- package/dist/internal/client-runtime.cjs +1 -1
- package/dist/internal/client-runtime.mjs +2 -2
- package/dist/internal/config-runtime.cjs +4 -1
- package/dist/internal/config-runtime.d.mts +4 -3
- package/dist/internal/config-runtime.d.ts +4 -3
- package/dist/internal/config-runtime.mjs +4 -4
- package/dist/internal/product-telemetry-runtime.cjs +1 -1
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +29 -3
- package/dist/internal/production-runtime.d.mts +8 -7
- package/dist/internal/production-runtime.d.ts +8 -7
- package/dist/internal/production-runtime.mjs +5 -5
- package/dist/{metadata-route-yV4U6X8h.d.ts → metadata-route-8_V3UonT.d.ts} +1 -1
- package/dist/{metadata-route-p4K1l92V.d.mts → metadata-route-CWP_HjGU.d.mts} +1 -1
- package/dist/middleware.cjs +28 -2
- package/dist/middleware.d.mts +5 -4
- package/dist/middleware.d.ts +5 -4
- package/dist/middleware.mjs +4 -4
- package/dist/navigation.cjs +3 -1
- package/dist/navigation.mjs +3 -3
- package/dist/observability.cjs +27 -2
- package/dist/observability.mjs +1 -1
- package/dist/plugin.cjs +528 -349
- package/dist/plugin.d.mts +3 -2
- package/dist/plugin.d.ts +3 -2
- package/dist/plugin.mjs +13 -13
- package/dist/{production-runtime-IkB0Qj4i.d.mts → production-runtime-BGRH1dKG.d.mts} +1 -1
- package/dist/{production-runtime-0JTch4_d.d.ts → production-runtime-CdmzsDax.d.ts} +1 -1
- package/dist/query/client.cjs +68 -29
- package/dist/query/client.mjs +69 -30
- package/dist/query/client.mjs.map +1 -1
- package/dist/{render-plan-Dc8CjNI7.d.ts → render-plan-0GeHiGVZ.d.ts} +1 -1
- package/dist/{render-plan-CU31j-Jk.d.mts → render-plan-DLxJYAA5.d.mts} +1 -1
- package/dist/renderer-client.cjs +169 -26
- package/dist/renderer-client.d.mts +7 -6
- package/dist/renderer-client.d.ts +7 -6
- package/dist/renderer-client.mjs +16 -19
- package/dist/renderer-client.mjs.map +1 -1
- package/dist/{request-BXa1KY8i.d.mts → request-BCNXSXLh.d.mts} +1 -1
- package/dist/{request-CUUBujZt.d.ts → request-BstWbZ6O.d.ts} +1 -1
- package/dist/request.d.mts +4 -3
- package/dist/request.d.ts +4 -3
- package/dist/{route-Y8lfz1wF.d.ts → route-4pd-EVtw.d.ts} +45 -50
- package/dist/{route-Cq3aObmj.d.mts → route-CvEr4Uc9.d.mts} +45 -50
- package/dist/routes.cjs +27 -2
- package/dist/routes.d.mts +3 -2
- package/dist/routes.d.ts +3 -2
- package/dist/routes.mjs +4 -4
- package/dist/{runtime-j1S3sDTh.d.ts → runtime-BgDQzBiu.d.ts} +1 -0
- package/dist/{runtime-DDwvDtS4.d.mts → runtime-CV2UCV-5.d.mts} +1 -0
- package/dist/server-action-security.mjs +2 -2
- package/dist/server-fn-client.cjs +102 -26
- package/dist/server-fn-client.d.mts +6 -0
- package/dist/server-fn-client.d.ts +6 -0
- package/dist/server-fn-client.mjs +2 -1
- package/dist/server-fn.cjs +42 -4
- package/dist/server-fn.mjs +5 -5
- package/dist/server-plugins.d.mts +4 -3
- package/dist/server-plugins.d.ts +4 -3
- package/dist/server-query-client.cjs +195 -34
- package/dist/server-query-client.d.mts +3 -3
- package/dist/server-query-client.d.ts +3 -3
- package/dist/server-query-client.mjs +7 -7
- package/dist/{server-query-runtime-3zAj77yv.d.ts → server-query-runtime-DXRNhX_3.d.ts} +2 -0
- package/dist/{server-query-runtime-B50KAcj5.d.mts → server-query-runtime-aP52iuL5.d.mts} +2 -0
- package/dist/server-query.cjs +44 -5
- package/dist/server-query.d.mts +4 -0
- package/dist/server-query.d.ts +4 -0
- package/dist/server-query.mjs +7 -7
- package/dist/server.cjs +553 -370
- package/dist/server.d.mts +11 -10
- package/dist/server.d.ts +11 -10
- package/dist/server.mjs +17 -17
- package/dist/{spa-router-CyLkwst6.d.mts → spa-router-BeyAVSc6.d.mts} +1 -1
- package/dist/{spa-router-BkqGXaV_.d.ts → spa-router-COgu4txb.d.ts} +1 -1
- package/dist/testing.cjs +27 -2
- package/dist/testing.d.mts +3 -2
- package/dist/testing.d.ts +3 -2
- package/dist/testing.mjs +9 -9
- package/dist/{utils-NKR6SoNv.d.mts → utils-DL2VwDQl.d.mts} +1 -1
- package/dist/{utils-B2OHrb9F.d.ts → utils-DkU2c_1B.d.ts} +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +536 -353
- package/dist/vite.d.mts +3 -2
- package/dist/vite.d.ts +3 -2
- package/dist/vite.mjs +17 -13
- package/package.json +17 -17
- package/types/client.d.ts +115 -10
- package/dist/agent-runtime.cjs.map +0 -1
- package/dist/api/route-manager.cjs.map +0 -1
- package/dist/api/runtime.cjs.map +0 -1
- package/dist/api.cjs.map +0 -1
- package/dist/app-markdown.cjs.map +0 -1
- package/dist/cache.cjs.map +0 -1
- package/dist/chunk-75CGAL6E.mjs.map +0 -1
- package/dist/chunk-7MABZJIM.mjs.map +0 -1
- package/dist/chunk-A3636IHN.mjs.map +0 -1
- package/dist/chunk-AXVJCMVF.mjs.map +0 -1
- package/dist/chunk-D7QH7MDU.mjs.map +0 -1
- package/dist/chunk-DLBUAJTK.mjs.map +0 -1
- package/dist/chunk-EXCGBERG.mjs.map +0 -1
- package/dist/chunk-FLHLPB57.mjs.map +0 -1
- package/dist/chunk-HHZAOTQD.mjs.map +0 -1
- package/dist/chunk-KOTSX5JH.mjs.map +0 -1
- package/dist/chunk-KWCNQUH5.mjs.map +0 -1
- package/dist/chunk-MRVJCLYQ.mjs.map +0 -1
- package/dist/chunk-Q7GPJZCO.mjs.map +0 -1
- package/dist/chunk-RBRLLZL5.mjs.map +0 -1
- package/dist/chunk-SALMKQXH.mjs.map +0 -1
- package/dist/chunk-SCFX4UTD.mjs.map +0 -1
- package/dist/chunk-WB75GIX2.mjs.map +0 -1
- package/dist/chunk-XTLLHCWU.mjs.map +0 -1
- package/dist/chunk-ZFNK77WN.mjs.map +0 -1
- package/dist/chunk-ZRBCBOEX.mjs.map +0 -1
- package/dist/client/lifecycle.cjs.map +0 -1
- package/dist/client-cache-CopR_MaI.d.mts +0 -6
- package/dist/client-cache-Djy_TlE8.d.ts +0 -6
- package/dist/client-plugins.cjs.map +0 -1
- package/dist/client.cjs.map +0 -1
- package/dist/config.cjs.map +0 -1
- package/dist/cron.cjs.map +0 -1
- package/dist/deferred.cjs.map +0 -1
- package/dist/deployment.cjs.map +0 -1
- package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
- package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
- package/dist/docs.cjs.map +0 -1
- package/dist/env-types.cjs.map +0 -1
- package/dist/env.cjs.map +0 -1
- package/dist/environment/vite.cjs.map +0 -1
- package/dist/environment.cjs.map +0 -1
- package/dist/font.cjs.map +0 -1
- package/dist/headers.cjs.map +0 -1
- package/dist/i18n/client.cjs.map +0 -1
- package/dist/i18n/index.cjs.map +0 -1
- package/dist/i18n/server.cjs.map +0 -1
- package/dist/image/server.cjs.map +0 -1
- package/dist/image/sharp.cjs.map +0 -1
- package/dist/image.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/instrumentation.cjs.map +0 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/internal/build-runtime.cjs.map +0 -1
- package/dist/internal/client-runtime.cjs.map +0 -1
- package/dist/internal/config-runtime.cjs.map +0 -1
- package/dist/internal/isolated-boundary.cjs.map +0 -1
- package/dist/internal/metadata-image-runtime.cjs.map +0 -1
- package/dist/internal/product-telemetry-runtime.cjs.map +0 -1
- package/dist/internal/production-node-env.cjs.map +0 -1
- package/dist/internal/production-runtime.cjs.map +0 -1
- package/dist/markdown.cjs.map +0 -1
- package/dist/middleware.cjs.map +0 -1
- package/dist/navigation.cjs.map +0 -1
- package/dist/observability.cjs.map +0 -1
- package/dist/plugin.cjs.map +0 -1
- package/dist/query/client.cjs.map +0 -1
- package/dist/query/index.cjs.map +0 -1
- package/dist/query/parsers.cjs.map +0 -1
- package/dist/query/server.cjs.map +0 -1
- package/dist/renderer/react/client.cjs.map +0 -1
- package/dist/renderer/react/server.cjs.map +0 -1
- package/dist/renderer/react/vite.cjs.map +0 -1
- package/dist/renderer-client.cjs.map +0 -1
- package/dist/renderer.cjs.map +0 -1
- package/dist/request.cjs.map +0 -1
- package/dist/router.cjs.map +0 -1
- package/dist/routes.cjs.map +0 -1
- package/dist/server-action-security.cjs.map +0 -1
- package/dist/server-fn-client.cjs.map +0 -1
- package/dist/server-fn.cjs.map +0 -1
- package/dist/server-plugins.cjs.map +0 -1
- package/dist/server-query-client.cjs.map +0 -1
- package/dist/server-query.cjs.map +0 -1
- package/dist/server.cjs.map +0 -1
- package/dist/storage.cjs.map +0 -1
- package/dist/testing.cjs.map +0 -1
- package/dist/theme/client.cjs.map +0 -1
- package/dist/theme/index.cjs.map +0 -1
- package/dist/theme/runtime.cjs.map +0 -1
- package/dist/theme/server.cjs.map +0 -1
- package/dist/version.cjs.map +0 -1
- package/dist/vite.cjs.map +0 -1
- package/dist/workflows.cjs.map +0 -1
- /package/dist/{chunk-VV24CC42.mjs.map → chunk-35NPLKQJ.mjs.map} +0 -0
- /package/dist/{chunk-RWYRFCLG.mjs.map → chunk-4X57GXQA.mjs.map} +0 -0
- /package/dist/{chunk-MOW47IF5.mjs.map → chunk-6UYVU46O.mjs.map} +0 -0
- /package/dist/{chunk-RLGUZ3HS.mjs.map → chunk-I3OOUWO5.mjs.map} +0 -0
- /package/dist/{chunk-2LS3KKE7.mjs.map → chunk-JV7JUD7Q.mjs.map} +0 -0
- /package/dist/{chunk-Q3OX763A.mjs.map → chunk-LXDASSTE.mjs.map} +0 -0
- /package/dist/{chunk-HVG3HLQZ.mjs.map → chunk-Q7WGOOAI.mjs.map} +0 -0
- /package/dist/{chunk-3INDBMUU.mjs.map → chunk-TGDIACZT.mjs.map} +0 -0
- /package/dist/{chunk-MH27UH72.mjs.map → chunk-TT3E2JOF.mjs.map} +0 -0
- /package/dist/{chunk-UWRGX3J3.mjs.map → chunk-UMUWR5XA.mjs.map} +0 -0
- /package/dist/{devtools-S52RRRMN.mjs.map → devtools-XWZX6CCL.mjs.map} +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
_parseServerFnSchema,
|
|
3
3
|
createServerFn
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-I3OOUWO5.mjs";
|
|
5
5
|
import {
|
|
6
6
|
createFarmServerQueryResult
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EHTUKVSW.mjs";
|
|
8
8
|
import {
|
|
9
9
|
getServerActionExecutionContext
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-35NPLKQJ.mjs";
|
|
11
11
|
import {
|
|
12
12
|
createFarmCacheKey,
|
|
13
13
|
createRouteDataCacheKey,
|
|
14
14
|
createRouteDataCacheTag,
|
|
15
15
|
getFarmDataCache
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-2HDOV47R.mjs";
|
|
17
17
|
import {
|
|
18
18
|
__name
|
|
19
19
|
} from "./chunk-CGILA3WO.mjs";
|
|
@@ -58,7 +58,8 @@ function createServerQuery(options) {
|
|
|
58
58
|
return createFarmServerQueryResult(data, {
|
|
59
59
|
key: clientKey,
|
|
60
60
|
staleTime,
|
|
61
|
-
updatedAt
|
|
61
|
+
updatedAt,
|
|
62
|
+
...options.persist === true ? { persist: true } : {}
|
|
62
63
|
});
|
|
63
64
|
}, "handler")
|
|
64
65
|
});
|
|
@@ -139,4 +140,4 @@ export {
|
|
|
139
140
|
FARM_SERVER_QUERY_SYMBOL,
|
|
140
141
|
createServerQuery
|
|
141
142
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
143
|
+
//# sourceMappingURL=chunk-GJ7W6LNK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server-query.ts"],"sourcesContent":["import {\n createFarmCacheKey,\n createRouteDataCacheKey,\n createRouteDataCacheTag,\n getFarmDataCache,\n type RouteDataCacheKey,\n} from \"./cache\";\nimport { getServerActionExecutionContext } from \"./server-action-security\";\nimport {\n createServerFn,\n type AnyServerFnMiddleware,\n type InferServerFnSchemaInput,\n type InferServerFnSchemaOutput,\n type ServerFn,\n type ServerFnContext,\n type ServerFnHandler,\n type ServerFnHandlerContext,\n type ServerFnMiddlewareContext,\n type ServerFnSchema,\n _parseServerFnSchema,\n} from \"./server-fn\";\nimport { createFarmServerQueryResult, type FarmServerQueryResult } from \"./server-query-protocol\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nexport type ServerQueryStaleTime = number | false | `${number}${\"ms\" | \"s\" | \"m\" | \"h\"}`;\n\nexport type ServerQueryKey<TInput, TContext extends object = {}> = (\n context: ServerFnContext<TInput, TContext>,\n) => MaybePromise<RouteDataCacheKey>;\n\nexport type ServerQueryOptions<\n TSchema extends ServerFnSchema | undefined,\n TResult,\n TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n> = {\n input?: TSchema;\n output?: undefined;\n middleware?: TMiddlewares;\n key: ServerQueryKey<\n TSchema extends ServerFnSchema ? InferServerFnSchemaOutput<TSchema> : unknown,\n ServerFnMiddlewareContext<TMiddlewares>\n >;\n /** Milliseconds, a duration string such as \"30s\", or false for no expiry. */\n staleTime?: ServerQueryStaleTime;\n /** Allow the configured client cache persistence adapter to store results on the device. */\n persist?: boolean;\n handler: ServerFnHandler<\n TSchema extends ServerFnSchema ? InferServerFnSchemaOutput<TSchema> : unknown,\n TResult,\n ServerFnMiddlewareContext<TMiddlewares>\n >;\n};\n\nexport type ServerQueryOutputOptions<\n TInputSchema extends ServerFnSchema | undefined,\n TOutputSchema extends ServerFnSchema,\n TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n> = {\n input?: TInputSchema;\n output: TOutputSchema;\n middleware?: TMiddlewares;\n key: ServerQueryKey<\n TInputSchema extends ServerFnSchema ? InferServerFnSchemaOutput<TInputSchema> : unknown,\n ServerFnMiddlewareContext<TMiddlewares>\n >;\n /** Milliseconds, a duration string such as \"30s\", or false for no expiry. */\n staleTime?: ServerQueryStaleTime;\n /** Allow the configured client cache persistence adapter to store results on the device. */\n persist?: boolean;\n handler: ServerFnHandler<\n TInputSchema extends ServerFnSchema ? InferServerFnSchemaOutput<TInputSchema> : unknown,\n unknown,\n ServerFnMiddlewareContext<TMiddlewares>\n >;\n};\n\nexport type ServerQuery<TInput, TResult> = ([unknown] extends [TInput]\n ? (input?: TInput) => Promise<TResult>\n : (input: TInput) => Promise<TResult>) & {\n readonly __farmServerQuery: true;\n readonly __farmServerQueryInput?: unknown;\n readonly __farmServerQueryOutput?: unknown;\n};\n\nexport const FARM_SERVER_QUERY_SYMBOL = Symbol.for(\"farm.server-query\");\n\ntype AnyServerQueryOptions = {\n input?: ServerFnSchema;\n output?: ServerFnSchema;\n middleware?: readonly AnyServerFnMiddleware[];\n key: ServerQueryKey<any, any>;\n staleTime?: ServerQueryStaleTime;\n persist?: boolean;\n handler: ServerFnHandler<any, any, any>;\n};\n\nconst requestInflight = new WeakMap<Request, Map<string, Promise<unknown>>>();\nconst detachedInflight = new Map<string, Promise<unknown>>();\n\nexport function createServerQuery<\n TInputSchema extends ServerFnSchema,\n TOutputSchema extends ServerFnSchema,\n const TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n>(\n options: ServerQueryOutputOptions<TInputSchema, TOutputSchema, TMiddlewares>,\n): ServerQuery<\n InferServerFnSchemaInput<TInputSchema>,\n Awaited<InferServerFnSchemaOutput<TOutputSchema>>\n>;\nexport function createServerQuery<\n TOutputSchema extends ServerFnSchema,\n const TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n>(\n options: ServerQueryOutputOptions<undefined, TOutputSchema, TMiddlewares>,\n): ServerQuery<unknown, Awaited<InferServerFnSchemaOutput<TOutputSchema>>>;\nexport function createServerQuery<\n TSchema extends ServerFnSchema,\n TResult,\n const TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n>(\n options: ServerQueryOptions<TSchema, TResult, TMiddlewares>,\n): ServerQuery<InferServerFnSchemaInput<TSchema>, Awaited<TResult>>;\nexport function createServerQuery<\n TResult,\n const TMiddlewares extends readonly AnyServerFnMiddleware[] = readonly [],\n>(\n options: ServerQueryOptions<undefined, TResult, TMiddlewares>,\n): ServerQuery<unknown, Awaited<TResult>>;\nexport function createServerQuery(options: AnyServerQueryOptions): ServerQuery<unknown, unknown> {\n if (!options || typeof options.handler !== \"function\") {\n throw new TypeError(\"createServerQuery requires a handler function\");\n }\n if (typeof options.key !== \"function\") {\n throw new TypeError(\"createServerQuery requires a key function\");\n }\n\n const staleTime = normalizeServerQueryStaleTime(options.staleTime);\n const execute = (\n createServerFn as (options: any) => ServerFn<unknown, FarmServerQueryResult<any>>\n )({\n input: options.input,\n middleware: options.middleware,\n handler: async (context: ServerFnHandlerContext<any, any>) => {\n const routeKey = await options.key(context);\n assertServerQueryKey(routeKey);\n\n const clientKey = createRouteDataCacheKey(routeKey);\n const cacheKey = createFarmCacheKey([\"route-data\", routeKey]);\n const producer = async () => {\n const value = await options.handler(context);\n return _parseServerFnSchema(options.output, value, \"output\", \"createServerQuery\");\n };\n\n let data: unknown;\n let updatedAt: number;\n\n if (staleTime === 0) {\n data = await dedupeServerQueryRequest(cacheKey, context.request, producer);\n updatedAt = Date.now();\n } else {\n const cache = getFarmDataCache();\n data = await cache.getOrSet(cacheKey, producer, {\n tags: [createRouteDataCacheTag(routeKey)],\n revalidate: staleTime === false ? false : staleTime / 1000,\n });\n updatedAt =\n (await cache.getEntryAsync(cacheKey, { allowStale: true }))?.createdAt ?? Date.now();\n }\n\n return createFarmServerQueryResult(data, {\n key: clientKey,\n staleTime,\n updatedAt,\n ...(options.persist === true ? { persist: true } : {}),\n });\n },\n });\n\n const query = async (input?: unknown) => {\n const result = await execute(input);\n return getServerActionExecutionContext() ? result : result.data;\n };\n\n Object.defineProperties(query, {\n [FARM_SERVER_QUERY_SYMBOL]: {\n value: true,\n enumerable: false,\n },\n __farmServerQuery: {\n value: true,\n enumerable: false,\n },\n __farmServerQueryInput: {\n value: options.input,\n enumerable: false,\n },\n __farmServerQueryOutput: {\n value: options.output,\n enumerable: false,\n },\n });\n\n return query as ServerQuery<unknown, unknown>;\n}\n\nasync function dedupeServerQueryRequest<TData>(\n key: string,\n request: Request | undefined,\n producer: () => Promise<TData>,\n): Promise<TData> {\n let inflight: Map<string, Promise<unknown>>;\n if (request) {\n inflight = requestInflight.get(request) ?? new Map();\n requestInflight.set(request, inflight);\n } else {\n inflight = detachedInflight;\n }\n\n const existing = inflight.get(key) as Promise<TData> | undefined;\n if (existing) return existing;\n\n const promise = Promise.resolve().then(producer);\n inflight.set(key, promise);\n\n try {\n return await promise;\n } finally {\n inflight.delete(key);\n }\n}\n\nfunction normalizeServerQueryStaleTime(value: ServerQueryStaleTime | undefined): number | false {\n if (value === false) return false;\n if (value === undefined) return 0;\n\n if (typeof value === \"number\") {\n if (!Number.isFinite(value) || value < 0) {\n throw new TypeError(\"createServerQuery staleTime must be a non-negative duration\");\n }\n return value;\n }\n\n const match = value.match(/^(\\d+(?:\\.\\d+)?)(ms|s|m|h)$/);\n if (!match) {\n throw new TypeError('createServerQuery staleTime must look like \"250ms\", \"30s\", \"5m\", or \"1h\"');\n }\n\n const amount = Number(match[1]);\n const unit = match[2];\n const multiplier = unit === \"ms\" ? 1 : unit === \"s\" ? 1000 : unit === \"m\" ? 60_000 : 3_600_000;\n return amount * multiplier;\n}\n\nfunction assertServerQueryKey(key: unknown): asserts key is RouteDataCacheKey {\n if (typeof key === \"string\") {\n if (key.trim().length > 0) return;\n } else if (Array.isArray(key)) {\n return;\n }\n\n throw new TypeError(\"createServerQuery key must return a non-empty string or an array\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
ServerFnFailure,
|
|
3
3
|
getServerActionExecutionContext,
|
|
4
4
|
getServerActionSignal
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-35NPLKQJ.mjs";
|
|
6
6
|
import {
|
|
7
7
|
applyFarmCacheInvalidationTargets
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2HDOV47R.mjs";
|
|
9
9
|
import {
|
|
10
10
|
_resolveCurrentRequest
|
|
11
11
|
} from "./chunk-LM2YNO4U.mjs";
|
|
@@ -300,4 +300,4 @@ export {
|
|
|
300
300
|
createServerFn,
|
|
301
301
|
_parseServerFnSchema
|
|
302
302
|
};
|
|
303
|
-
//# sourceMappingURL=chunk-
|
|
303
|
+
//# sourceMappingURL=chunk-I3OOUWO5.mjs.map
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
notifyClientObserver
|
|
3
|
+
} from "./chunk-DU3PKDVQ.mjs";
|
|
1
4
|
import {
|
|
2
5
|
FarmClientDataCache,
|
|
3
6
|
getFarmClientDataCache,
|
|
4
7
|
normalizeFarmClientCacheKey
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WMJGA32P.mjs";
|
|
6
9
|
import {
|
|
7
10
|
resolveAPIRequestRuntime
|
|
8
11
|
} from "./chunk-YECMFULZ.mjs";
|
|
@@ -12,7 +15,7 @@ import {
|
|
|
12
15
|
matchAPIRoute,
|
|
13
16
|
parseDynamicSegment,
|
|
14
17
|
readJSONStream
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-V4VRLVLW.mjs";
|
|
16
19
|
import {
|
|
17
20
|
getFarmAPIBaseURL,
|
|
18
21
|
resolveFarmAPIRequestURL
|
|
@@ -21,7 +24,7 @@ import {
|
|
|
21
24
|
FARM_CACHE_INVALIDATION_HEADER,
|
|
22
25
|
applyFarmCacheInvalidations,
|
|
23
26
|
decodeFarmCacheInvalidations
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-34IAPZBG.mjs";
|
|
25
28
|
import {
|
|
26
29
|
_resolveCurrentRequest
|
|
27
30
|
} from "./chunk-LM2YNO4U.mjs";
|
|
@@ -125,33 +128,6 @@ function createClientCancellation(signal, timeoutMs = 0, parent) {
|
|
|
125
128
|
}
|
|
126
129
|
__name(createClientCancellation, "createClientCancellation");
|
|
127
130
|
|
|
128
|
-
// src/client-observers.ts
|
|
129
|
-
function notifyClientObserver(observer, args, label = "Client lifecycle") {
|
|
130
|
-
if (!observer) return;
|
|
131
|
-
const report = /* @__PURE__ */ __name((error) => {
|
|
132
|
-
const reportError = globalThis.reportError;
|
|
133
|
-
if (typeof reportError === "function") {
|
|
134
|
-
try {
|
|
135
|
-
reportError.call(globalThis, error);
|
|
136
|
-
return;
|
|
137
|
-
} catch {
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
try {
|
|
141
|
-
console.error(`[Farm.js] ${label} callback failed:`, error);
|
|
142
|
-
} catch {
|
|
143
|
-
}
|
|
144
|
-
}, "report");
|
|
145
|
-
try {
|
|
146
|
-
const result = observer(...args);
|
|
147
|
-
if (result && typeof result.then === "function")
|
|
148
|
-
void Promise.resolve(result).catch(report);
|
|
149
|
-
} catch (error) {
|
|
150
|
-
report(error);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
__name(notifyClientObserver, "notifyClientObserver");
|
|
154
|
-
|
|
155
131
|
// src/integration-client.ts
|
|
156
132
|
var _IntegrationClientError = class _IntegrationClientError extends Error {
|
|
157
133
|
constructor(message, response, data) {
|
|
@@ -633,7 +609,8 @@ async function executeServerOperation(operation, input, options, requestOptions,
|
|
|
633
609
|
serverRequestOptions?.baseURL ?? options.baseURL,
|
|
634
610
|
request
|
|
635
611
|
);
|
|
636
|
-
const
|
|
612
|
+
const origin = resolveServerBaseURL(void 0, request);
|
|
613
|
+
const url = new URL(operation.path, new URL(baseURL, origin));
|
|
637
614
|
appendQuery(url, input.query);
|
|
638
615
|
const headers = new Headers();
|
|
639
616
|
appendHeaders(
|
|
@@ -686,7 +663,9 @@ async function executeServerOperation(operation, input, options, requestOptions,
|
|
|
686
663
|
}
|
|
687
664
|
appendIntegrationClientDataHeader(headers, data);
|
|
688
665
|
const body = createOperationBody(operation, input.body, headers);
|
|
689
|
-
const
|
|
666
|
+
const httpURL = resolveFarmAPIRequestURL(operation.path, baseURL, origin);
|
|
667
|
+
appendQuery(httpURL, input.query);
|
|
668
|
+
const response = await (options.fetch ?? fetch)(httpURL.toString(), {
|
|
690
669
|
method: operation.method,
|
|
691
670
|
headers,
|
|
692
671
|
body,
|
|
@@ -1287,69 +1266,6 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1287
1266
|
let scopedRequestState;
|
|
1288
1267
|
const routeMeta = transport?.routeMeta ?? /* @__PURE__ */ new WeakMap();
|
|
1289
1268
|
let requestCounter = 0;
|
|
1290
|
-
const applyOptimisticLayer = /* @__PURE__ */ __name((entry, layer) => {
|
|
1291
|
-
let data = entry?.data;
|
|
1292
|
-
for (const updater of layer.updaters) data = updater(data);
|
|
1293
|
-
return {
|
|
1294
|
-
data,
|
|
1295
|
-
updatedAt: layer.updatedAt,
|
|
1296
|
-
staleAt: entry?.staleAt ?? layer.staleAt,
|
|
1297
|
-
gcAt: entry?.gcAt ?? layer.gcAt,
|
|
1298
|
-
invalidatedAt: entry?.invalidatedAt
|
|
1299
|
-
};
|
|
1300
|
-
}, "applyOptimisticLayer");
|
|
1301
|
-
const storeOptimisticEntry = /* @__PURE__ */ __name((cacheState, key, stack, entry) => {
|
|
1302
|
-
if (!entry) {
|
|
1303
|
-
cacheState.delete(key);
|
|
1304
|
-
stack.renderedEntry = void 0;
|
|
1305
|
-
return;
|
|
1306
|
-
}
|
|
1307
|
-
cacheState.set(key, entry);
|
|
1308
|
-
if (stack.invalidatedAt !== void 0) {
|
|
1309
|
-
cacheState.invalidate(key, stack.invalidatedAt);
|
|
1310
|
-
}
|
|
1311
|
-
stack.renderedEntry = cacheState.get(key);
|
|
1312
|
-
}, "storeOptimisticEntry");
|
|
1313
|
-
const reconcileOptimisticInvalidation = /* @__PURE__ */ __name((cacheState, key, stack) => {
|
|
1314
|
-
const current = cacheState.get(key);
|
|
1315
|
-
const rendered = stack.renderedEntry;
|
|
1316
|
-
if (current === rendered) return true;
|
|
1317
|
-
if (!current || !rendered || current.data !== rendered.data || current.updatedAt !== rendered.updatedAt || current.gcAt !== rendered.gcAt || current.status !== rendered.status || current.error !== rendered.error || current.fetching !== rendered.fetching || current.staleAt !== 0 || current.invalidatedAt === void 0) {
|
|
1318
|
-
return false;
|
|
1319
|
-
}
|
|
1320
|
-
stack.invalidatedAt = current.invalidatedAt;
|
|
1321
|
-
stack.renderedEntry = current;
|
|
1322
|
-
return true;
|
|
1323
|
-
}, "reconcileOptimisticInvalidation");
|
|
1324
|
-
const renderOptimisticStack = /* @__PURE__ */ __name((cacheState, key, stack) => {
|
|
1325
|
-
let entry = stack.entry ? { ...stack.entry } : void 0;
|
|
1326
|
-
for (const layer of stack.layers) entry = applyOptimisticLayer(entry, layer);
|
|
1327
|
-
storeOptimisticEntry(cacheState, key, stack, entry);
|
|
1328
|
-
}, "renderOptimisticStack");
|
|
1329
|
-
const settleOptimisticUpdates = /* @__PURE__ */ __name((cacheState, optimisticState, snapshots, outcome) => {
|
|
1330
|
-
const settledKeys = [];
|
|
1331
|
-
for (const snapshot of snapshots) {
|
|
1332
|
-
const stack = optimisticState.get(snapshot.key);
|
|
1333
|
-
if (stack !== snapshot.stack) continue;
|
|
1334
|
-
if (!reconcileOptimisticInvalidation(cacheState, snapshot.key, stack)) {
|
|
1335
|
-
optimisticState.delete(snapshot.key);
|
|
1336
|
-
continue;
|
|
1337
|
-
}
|
|
1338
|
-
if (outcome === "rollback") {
|
|
1339
|
-
stack.layers = stack.layers.filter((layer) => layer !== snapshot.layer);
|
|
1340
|
-
} else {
|
|
1341
|
-
snapshot.layer.committed = true;
|
|
1342
|
-
if (outcome === "invalidate") stack.invalidatedAt = Date.now();
|
|
1343
|
-
}
|
|
1344
|
-
while (stack.layers[0]?.committed) {
|
|
1345
|
-
stack.entry = applyOptimisticLayer(stack.entry, stack.layers.shift());
|
|
1346
|
-
}
|
|
1347
|
-
renderOptimisticStack(cacheState, snapshot.key, stack);
|
|
1348
|
-
if (stack.layers.length === 0) optimisticState.delete(snapshot.key);
|
|
1349
|
-
settledKeys.push(snapshot.key);
|
|
1350
|
-
}
|
|
1351
|
-
return settledKeys;
|
|
1352
|
-
}, "settleOptimisticUpdates");
|
|
1353
1269
|
const fetchClient = /* @__PURE__ */ __name(async (path, requestOptions, defaultHeaders, cancellation) => {
|
|
1354
1270
|
const url = resolveFarmAPIRequestURL(path, baseURL);
|
|
1355
1271
|
const method = String(requestOptions.method || "GET").toUpperCase();
|
|
@@ -1582,6 +1498,9 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1582
1498
|
const executeNetwork = /* @__PURE__ */ __name(async (opts) => {
|
|
1583
1499
|
const release = cancellation.hold();
|
|
1584
1500
|
let unsubscribeInvalidation;
|
|
1501
|
+
let readOwners;
|
|
1502
|
+
let readOwner;
|
|
1503
|
+
const resolvedCacheKey = cacheState.resolveKey(cacheKey);
|
|
1585
1504
|
try {
|
|
1586
1505
|
const dedupeMs = cacheOptions?.dedupeMs ?? 0;
|
|
1587
1506
|
const inflight = inflightState.get(cacheKey);
|
|
@@ -1605,6 +1524,9 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1605
1524
|
}
|
|
1606
1525
|
let invalidatedDuringRequest = false;
|
|
1607
1526
|
if (isCacheEnabled) {
|
|
1527
|
+
readOwners = getCacheReadOwners(cacheState);
|
|
1528
|
+
readOwner = {};
|
|
1529
|
+
readOwners.set(resolvedCacheKey, readOwner);
|
|
1608
1530
|
unsubscribeInvalidation = cacheState.subscribe(cacheKey, (event) => {
|
|
1609
1531
|
if (event === "invalidate") invalidatedDuringRequest = true;
|
|
1610
1532
|
});
|
|
@@ -1712,15 +1634,27 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1712
1634
|
inflightState.set(cacheKey, inflightEntry);
|
|
1713
1635
|
try {
|
|
1714
1636
|
const result2 = await promise;
|
|
1715
|
-
if (inflightState.get(cacheKey) === inflightEntry && !invalidatedDuringRequest && !result2.error && isCacheEnabled && !isFarmAPIStream(result2.data)) {
|
|
1637
|
+
if (inflightState.get(cacheKey) === inflightEntry && readOwners?.get(resolvedCacheKey) === readOwner && !invalidatedDuringRequest && !result2.error && isCacheEnabled && !isFarmAPIStream(result2.data)) {
|
|
1716
1638
|
const updatedAt = Date.now();
|
|
1717
|
-
|
|
1639
|
+
const cached = {
|
|
1718
1640
|
data: result2.data,
|
|
1719
1641
|
updatedAt,
|
|
1720
1642
|
staleAt: updatedAt + staleTime,
|
|
1721
1643
|
gcAt: getGcAt(updatedAt, cacheOptions?.gcTime),
|
|
1722
|
-
invalidatedAt: void 0
|
|
1723
|
-
|
|
1644
|
+
invalidatedAt: void 0,
|
|
1645
|
+
persist: cacheOptions?.persist === true ? true : void 0,
|
|
1646
|
+
[API_CACHE_REFETCH]: createCacheRefetch(
|
|
1647
|
+
request,
|
|
1648
|
+
path,
|
|
1649
|
+
method,
|
|
1650
|
+
input,
|
|
1651
|
+
cacheKey,
|
|
1652
|
+
cacheOptions,
|
|
1653
|
+
clientOptions,
|
|
1654
|
+
options.onError
|
|
1655
|
+
)
|
|
1656
|
+
};
|
|
1657
|
+
cacheState.set(cacheKey, cached);
|
|
1724
1658
|
}
|
|
1725
1659
|
if (result2.error) {
|
|
1726
1660
|
emitStatus("error", { error: result2.error, isBackground: opts?.isBackground });
|
|
@@ -1748,6 +1682,9 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1748
1682
|
}
|
|
1749
1683
|
}
|
|
1750
1684
|
} finally {
|
|
1685
|
+
if (readOwner && readOwners?.get(resolvedCacheKey) === readOwner) {
|
|
1686
|
+
readOwners.delete(resolvedCacheKey);
|
|
1687
|
+
}
|
|
1751
1688
|
unsubscribeInvalidation?.();
|
|
1752
1689
|
release();
|
|
1753
1690
|
}
|
|
@@ -1758,6 +1695,7 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1758
1695
|
targets: clientOptions.invalidate.targets,
|
|
1759
1696
|
refetch: clientOptions.invalidate.refetch ?? false
|
|
1760
1697
|
};
|
|
1698
|
+
const refetches = /* @__PURE__ */ new Set();
|
|
1761
1699
|
for (const target of invalidateOptions.targets) {
|
|
1762
1700
|
const targetKey = resolveTargetKey(
|
|
1763
1701
|
routeMeta,
|
|
@@ -1769,20 +1707,22 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1769
1707
|
);
|
|
1770
1708
|
if (!targetKey) continue;
|
|
1771
1709
|
const existing = cacheState.get(targetKey);
|
|
1710
|
+
const invalidatedAt = Date.now();
|
|
1711
|
+
cacheState.invalidate(targetKey, invalidatedAt);
|
|
1772
1712
|
if (existing) {
|
|
1773
|
-
const invalidatedAt = Date.now();
|
|
1774
1713
|
const stack = optimisticState.get(targetKey);
|
|
1775
|
-
cacheState.invalidate(targetKey, invalidatedAt);
|
|
1776
1714
|
if (stack?.renderedEntry === existing) {
|
|
1777
1715
|
stack.invalidatedAt = invalidatedAt;
|
|
1778
1716
|
stack.renderedEntry = cacheState.get(targetKey);
|
|
1779
1717
|
}
|
|
1780
1718
|
}
|
|
1781
1719
|
emitStatus("invalidated", { key: targetKey });
|
|
1782
|
-
|
|
1783
|
-
|
|
1720
|
+
const refetch = existing?.[API_CACHE_REFETCH];
|
|
1721
|
+
if (invalidateOptions.refetch && refetch) {
|
|
1722
|
+
refetches.add(refetch);
|
|
1784
1723
|
}
|
|
1785
1724
|
}
|
|
1725
|
+
for (const refetch of refetches) refetch();
|
|
1786
1726
|
}, "invalidateTargets");
|
|
1787
1727
|
const optimisticSnapshots = requestContextError ? [] : applyOptimisticUpdates();
|
|
1788
1728
|
if (isCacheEnabled && !requestContextError && !cancellation.signal?.aborted) {
|
|
@@ -2016,7 +1956,31 @@ function createServerAPIClient(endpoints, options = {}) {
|
|
|
2016
1956
|
return endpoints;
|
|
2017
1957
|
}
|
|
2018
1958
|
__name(createServerAPIClient, "createServerAPIClient");
|
|
1959
|
+
var API_CACHE_REFETCH = /* @__PURE__ */ Symbol.for("farm.api.cache-refetch");
|
|
1960
|
+
function createCacheRefetch(request, path, method, input, key, cache, options, onError) {
|
|
1961
|
+
const readOptions = {
|
|
1962
|
+
cache: { ...cache, key, policy: "network-only", dedupeMs: 0 },
|
|
1963
|
+
retry: options?.retry,
|
|
1964
|
+
timeoutMs: options?.timeoutMs
|
|
1965
|
+
};
|
|
1966
|
+
return () => {
|
|
1967
|
+
void request(path, method, input, readOptions).catch((error) => {
|
|
1968
|
+
notifyClientObserver(onError, [normalizeError(error)]);
|
|
1969
|
+
});
|
|
1970
|
+
};
|
|
1971
|
+
}
|
|
1972
|
+
__name(createCacheRefetch, "createCacheRefetch");
|
|
2019
1973
|
var optimisticStates = /* @__PURE__ */ new WeakMap();
|
|
1974
|
+
var cacheReadOwners = /* @__PURE__ */ new WeakMap();
|
|
1975
|
+
function getCacheReadOwners(cache) {
|
|
1976
|
+
let owners = cacheReadOwners.get(cache);
|
|
1977
|
+
if (!owners) {
|
|
1978
|
+
owners = /* @__PURE__ */ new Map();
|
|
1979
|
+
cacheReadOwners.set(cache, owners);
|
|
1980
|
+
}
|
|
1981
|
+
return owners;
|
|
1982
|
+
}
|
|
1983
|
+
__name(getCacheReadOwners, "getCacheReadOwners");
|
|
2020
1984
|
function getOptimisticState(cache) {
|
|
2021
1985
|
let state = optimisticStates.get(cache);
|
|
2022
1986
|
if (!state) {
|
|
@@ -2026,6 +1990,151 @@ function getOptimisticState(cache) {
|
|
|
2026
1990
|
return state;
|
|
2027
1991
|
}
|
|
2028
1992
|
__name(getOptimisticState, "getOptimisticState");
|
|
1993
|
+
function applyOptimisticLayer(entry, layer) {
|
|
1994
|
+
let data = entry?.data;
|
|
1995
|
+
for (const updater of layer.updaters) data = updater(data);
|
|
1996
|
+
return {
|
|
1997
|
+
data,
|
|
1998
|
+
updatedAt: layer.updatedAt,
|
|
1999
|
+
staleAt: entry?.staleAt ?? layer.staleAt,
|
|
2000
|
+
gcAt: entry?.gcAt ?? layer.gcAt,
|
|
2001
|
+
invalidatedAt: entry?.invalidatedAt,
|
|
2002
|
+
[API_CACHE_REFETCH]: entry?.[API_CACHE_REFETCH]
|
|
2003
|
+
};
|
|
2004
|
+
}
|
|
2005
|
+
__name(applyOptimisticLayer, "applyOptimisticLayer");
|
|
2006
|
+
function storeOptimisticEntry(cacheState, key, stack, entry) {
|
|
2007
|
+
if (!entry) {
|
|
2008
|
+
cacheState.delete(key);
|
|
2009
|
+
stack.renderedEntry = void 0;
|
|
2010
|
+
return;
|
|
2011
|
+
}
|
|
2012
|
+
cacheState.set(key, entry);
|
|
2013
|
+
if (stack.invalidatedAt !== void 0) {
|
|
2014
|
+
cacheState.invalidate(key, stack.invalidatedAt);
|
|
2015
|
+
}
|
|
2016
|
+
stack.renderedEntry = cacheState.get(key);
|
|
2017
|
+
}
|
|
2018
|
+
__name(storeOptimisticEntry, "storeOptimisticEntry");
|
|
2019
|
+
function reconcileOptimisticInvalidation(cacheState, key, stack) {
|
|
2020
|
+
const current = cacheState.get(key);
|
|
2021
|
+
const rendered = stack.renderedEntry;
|
|
2022
|
+
if (current === rendered) return true;
|
|
2023
|
+
if (!current || !rendered || current.data !== rendered.data || current.updatedAt !== rendered.updatedAt || current.gcAt !== rendered.gcAt || current.status !== rendered.status || current.error !== rendered.error || current.fetching !== rendered.fetching || current.staleAt !== 0 || current.invalidatedAt === void 0) {
|
|
2024
|
+
return false;
|
|
2025
|
+
}
|
|
2026
|
+
stack.invalidatedAt = current.invalidatedAt;
|
|
2027
|
+
stack.renderedEntry = current;
|
|
2028
|
+
return true;
|
|
2029
|
+
}
|
|
2030
|
+
__name(reconcileOptimisticInvalidation, "reconcileOptimisticInvalidation");
|
|
2031
|
+
function renderOptimisticStack(cacheState, key, stack) {
|
|
2032
|
+
let entry = stack.entry ? { ...stack.entry } : void 0;
|
|
2033
|
+
for (const layer of stack.layers) entry = applyOptimisticLayer(entry, layer);
|
|
2034
|
+
storeOptimisticEntry(cacheState, key, stack, entry);
|
|
2035
|
+
}
|
|
2036
|
+
__name(renderOptimisticStack, "renderOptimisticStack");
|
|
2037
|
+
function settleOptimisticUpdates(cacheState, optimisticState, snapshots, outcome) {
|
|
2038
|
+
const settledKeys = [];
|
|
2039
|
+
for (const snapshot of snapshots) {
|
|
2040
|
+
const stack = optimisticState.get(snapshot.key);
|
|
2041
|
+
if (stack !== snapshot.stack) continue;
|
|
2042
|
+
if (!reconcileOptimisticInvalidation(cacheState, snapshot.key, stack)) {
|
|
2043
|
+
optimisticState.delete(snapshot.key);
|
|
2044
|
+
continue;
|
|
2045
|
+
}
|
|
2046
|
+
if (outcome === "rollback") {
|
|
2047
|
+
stack.layers = stack.layers.filter((layer) => layer !== snapshot.layer);
|
|
2048
|
+
} else {
|
|
2049
|
+
snapshot.layer.committed = true;
|
|
2050
|
+
if (outcome === "invalidate") stack.invalidatedAt = Date.now();
|
|
2051
|
+
}
|
|
2052
|
+
while (stack.layers[0]?.committed) {
|
|
2053
|
+
stack.entry = applyOptimisticLayer(stack.entry, stack.layers.shift());
|
|
2054
|
+
}
|
|
2055
|
+
renderOptimisticStack(cacheState, snapshot.key, stack);
|
|
2056
|
+
if (stack.layers.length === 0) optimisticState.delete(snapshot.key);
|
|
2057
|
+
settledKeys.push(snapshot.key);
|
|
2058
|
+
}
|
|
2059
|
+
return settledKeys;
|
|
2060
|
+
}
|
|
2061
|
+
__name(settleOptimisticUpdates, "settleOptimisticUpdates");
|
|
2062
|
+
function applyServerFnOptimisticUpdates(updates, now = Date.now()) {
|
|
2063
|
+
const cacheState = getFarmClientDataCache();
|
|
2064
|
+
const optimisticState = getOptimisticState(cacheState);
|
|
2065
|
+
const snapshots = /* @__PURE__ */ new Map();
|
|
2066
|
+
for (const update of updates) {
|
|
2067
|
+
if (update.length !== 2) continue;
|
|
2068
|
+
const [target, updater] = update;
|
|
2069
|
+
if (typeof updater !== "function") continue;
|
|
2070
|
+
const targetKey = typeof target === "string" || Array.isArray(target) ? normalizeFarmClientCacheKey(target) : null;
|
|
2071
|
+
if (!targetKey) continue;
|
|
2072
|
+
const targetEntry = getValidCacheEntry(cacheState, targetKey, now);
|
|
2073
|
+
const currentEntry = cacheState.get(targetKey);
|
|
2074
|
+
let stack = optimisticState.get(targetKey);
|
|
2075
|
+
if (stack && !reconcileOptimisticInvalidation(cacheState, targetKey, stack)) {
|
|
2076
|
+
stack = void 0;
|
|
2077
|
+
}
|
|
2078
|
+
if (!stack) {
|
|
2079
|
+
stack = {
|
|
2080
|
+
entry: targetEntry ? { ...targetEntry } : void 0,
|
|
2081
|
+
layers: [],
|
|
2082
|
+
renderedEntry: currentEntry
|
|
2083
|
+
};
|
|
2084
|
+
optimisticState.set(targetKey, stack);
|
|
2085
|
+
}
|
|
2086
|
+
let snapshot = snapshots.get(targetKey);
|
|
2087
|
+
if (!snapshot) {
|
|
2088
|
+
const previousEntry = stack.layers.length === 0 ? stack.entry : stack.renderedEntry;
|
|
2089
|
+
const layer = {
|
|
2090
|
+
updaters: [],
|
|
2091
|
+
updatedAt: now,
|
|
2092
|
+
// A server function has no cache policy of its own; preserve the
|
|
2093
|
+
// target read's freshness metadata when it exists.
|
|
2094
|
+
staleAt: targetEntry?.staleAt ?? now,
|
|
2095
|
+
gcAt: targetEntry?.gcAt
|
|
2096
|
+
};
|
|
2097
|
+
stack.layers.push(layer);
|
|
2098
|
+
snapshot = { key: targetKey, stack, layer };
|
|
2099
|
+
snapshots.set(targetKey, snapshot);
|
|
2100
|
+
snapshot.layer.updaters.push(updater);
|
|
2101
|
+
const nextEntry2 = applyOptimisticLayer(previousEntry, {
|
|
2102
|
+
...snapshot.layer,
|
|
2103
|
+
updaters: [updater]
|
|
2104
|
+
});
|
|
2105
|
+
storeOptimisticEntry(cacheState, targetKey, stack, nextEntry2);
|
|
2106
|
+
continue;
|
|
2107
|
+
}
|
|
2108
|
+
snapshot.layer.updaters.push(updater);
|
|
2109
|
+
const nextEntry = applyOptimisticLayer(stack.renderedEntry, {
|
|
2110
|
+
...snapshot.layer,
|
|
2111
|
+
updaters: [updater]
|
|
2112
|
+
});
|
|
2113
|
+
storeOptimisticEntry(cacheState, targetKey, stack, nextEntry);
|
|
2114
|
+
}
|
|
2115
|
+
return Array.from(snapshots.values());
|
|
2116
|
+
}
|
|
2117
|
+
__name(applyServerFnOptimisticUpdates, "applyServerFnOptimisticUpdates");
|
|
2118
|
+
function settleServerFnOptimisticUpdates(snapshots, outcome) {
|
|
2119
|
+
if (snapshots.length === 0) return;
|
|
2120
|
+
const cacheState = getFarmClientDataCache();
|
|
2121
|
+
settleOptimisticUpdates(cacheState, getOptimisticState(cacheState), snapshots, outcome);
|
|
2122
|
+
}
|
|
2123
|
+
__name(settleServerFnOptimisticUpdates, "settleServerFnOptimisticUpdates");
|
|
2124
|
+
function resolveServerFnInvalidateTargets(invalidate) {
|
|
2125
|
+
const targets = Array.isArray(invalidate) ? invalidate : invalidate.targets;
|
|
2126
|
+
const keys = [];
|
|
2127
|
+
for (const target of targets) {
|
|
2128
|
+
if (typeof target === "string" || Array.isArray(target)) {
|
|
2129
|
+
if (Array.isArray(target) && typeof target[0] === "function") continue;
|
|
2130
|
+
keys.push(normalizeFarmClientCacheKey(target));
|
|
2131
|
+
} else if (target && typeof target === "object" && "key" in target) {
|
|
2132
|
+
keys.push(normalizeFarmClientCacheKey(target.key));
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
return keys;
|
|
2136
|
+
}
|
|
2137
|
+
__name(resolveServerFnInvalidateTargets, "resolveServerFnInvalidateTargets");
|
|
2029
2138
|
function buildCacheKey(method, path, input, baseURL, defaultHeaders) {
|
|
2030
2139
|
const keyInput = input && typeof input === "object" ? {
|
|
2031
2140
|
query: input.query,
|
|
@@ -2220,6 +2329,9 @@ export {
|
|
|
2220
2329
|
createAPIClient,
|
|
2221
2330
|
isAPIRouteRef,
|
|
2222
2331
|
getAPIRouteRefMetadata,
|
|
2223
|
-
createServerAPIClient
|
|
2332
|
+
createServerAPIClient,
|
|
2333
|
+
applyServerFnOptimisticUpdates,
|
|
2334
|
+
settleServerFnOptimisticUpdates,
|
|
2335
|
+
resolveServerFnInvalidateTargets
|
|
2224
2336
|
};
|
|
2225
|
-
//# sourceMappingURL=chunk-
|
|
2337
|
+
//# sourceMappingURL=chunk-IZBX2TEU.mjs.map
|