@farm.js/core 0.1.0-beta.96 → 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 +6 -6
- 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 +4 -4
- package/dist/api.cjs +239 -70
- package/dist/api.d.mts +7 -6
- package/dist/api.d.ts +7 -6
- package/dist/api.mjs +17 -11
- 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-MM46HTX6.mjs → chunk-3TWQERDE.mjs} +4 -3
- package/dist/chunk-3TWQERDE.mjs.map +1 -0
- package/dist/{chunk-RWYRFCLG.mjs → chunk-4X57GXQA.mjs} +2 -2
- package/dist/{chunk-3I55IGXU.mjs → chunk-52BR7LTX.mjs} +14 -15
- package/dist/chunk-52BR7LTX.mjs.map +1 -0
- package/dist/{chunk-RAGSHKDC.mjs → chunk-6EJHNHH4.mjs} +38 -3
- 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-54XSGLKT.mjs → chunk-D7F7YZ7L.mjs} +93 -67
- package/dist/chunk-D7F7YZ7L.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-LZTGDH3H.mjs → chunk-EPDIF432.mjs} +424 -10
- package/dist/chunk-EPDIF432.mjs.map +1 -0
- package/dist/{chunk-GZHKWHCH.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-LKKMI7JG.mjs → chunk-IZBX2TEU.mjs} +153 -68
- package/dist/chunk-IZBX2TEU.mjs.map +1 -0
- package/dist/{chunk-74QPONAN.mjs → chunk-J3MPQ4MQ.mjs} +2 -2
- package/dist/{chunk-74QPONAN.mjs.map → chunk-J3MPQ4MQ.mjs.map} +1 -1
- package/dist/{chunk-ODJGAWDH.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-WMAYETRD.mjs → chunk-TT3E2JOF.mjs} +3 -3
- package/dist/{chunk-FVAM43KI.mjs → chunk-UMUWR5XA.mjs} +2 -2
- package/dist/{chunk-VOUJW4FL.mjs → chunk-WD2EBM3I.mjs} +70 -15
- package/dist/chunk-WD2EBM3I.mjs.map +1 -0
- package/dist/{chunk-ZPG6SNHH.mjs → chunk-WMJGA32P.mjs} +47 -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 +757 -104
- package/dist/client.d.mts +124 -16
- package/dist/client.d.ts +124 -16
- package/dist/client.mjs +28 -14
- 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-EOVDBPOI.mjs → devtools-client-Z7QQA3Q2.mjs} +2 -2
- 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 +1578 -772
- package/dist/index.d.mts +28 -20
- package/dist/index.d.ts +28 -20
- package/dist/index.mjs +53 -33
- 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 +710 -532
- package/dist/internal/build-runtime.d.mts +5 -4
- package/dist/internal/build-runtime.d.ts +5 -4
- package/dist/internal/build-runtime.mjs +15 -15
- 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 +474 -334
- package/dist/plugin.d.mts +3 -2
- package/dist/plugin.d.ts +3 -2
- package/dist/plugin.mjs +12 -12
- 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 +11 -3
- package/dist/query/client.mjs +12 -4
- 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 +140 -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 +34 -2
- package/dist/server-fn-client.d.mts +6 -0
- package/dist/server-fn-client.d.ts +6 -0
- package/dist/server-fn-client.mjs +1 -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 +146 -27
- 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 +499 -355
- package/dist/server.d.mts +11 -10
- package/dist/server.d.ts +11 -10
- package/dist/server.mjs +16 -16
- 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 +8 -8
- 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 +482 -338
- package/dist/vite.d.mts +3 -2
- package/dist/vite.d.ts +3 -2
- package/dist/vite.mjs +16 -12
- package/package.json +17 -17
- package/types/client.d.ts +87 -1
- 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-3I55IGXU.mjs.map +0 -1
- package/dist/chunk-54XSGLKT.mjs.map +0 -1
- package/dist/chunk-7MABZJIM.mjs.map +0 -1
- package/dist/chunk-AXVJCMVF.mjs.map +0 -1
- package/dist/chunk-GZHKWHCH.mjs.map +0 -1
- package/dist/chunk-HHZAOTQD.mjs.map +0 -1
- package/dist/chunk-LKKMI7JG.mjs.map +0 -1
- package/dist/chunk-LZTGDH3H.mjs.map +0 -1
- package/dist/chunk-MM46HTX6.mjs.map +0 -1
- package/dist/chunk-MRVJCLYQ.mjs.map +0 -1
- package/dist/chunk-Q7GPJZCO.mjs.map +0 -1
- package/dist/chunk-RAGSHKDC.mjs.map +0 -1
- package/dist/chunk-RBRLLZL5.mjs.map +0 -1
- package/dist/chunk-SCFX4UTD.mjs.map +0 -1
- package/dist/chunk-VOUJW4FL.mjs.map +0 -1
- package/dist/chunk-WB75GIX2.mjs.map +0 -1
- package/dist/chunk-ZFNK77WN.mjs.map +0 -1
- package/dist/chunk-ZPG6SNHH.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-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-ODJGAWDH.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-WMAYETRD.mjs.map → chunk-TT3E2JOF.mjs.map} +0 -0
- /package/dist/{chunk-FVAM43KI.mjs.map → chunk-UMUWR5XA.mjs.map} +0 -0
- /package/dist/{devtools-S52RRRMN.mjs.map → devtools-XWZX6CCL.mjs.map} +0 -0
- /package/dist/{devtools-client-EOVDBPOI.mjs.map → devtools-client-Z7QQA3Q2.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":";;;;;;;;;;;;;;;;;;;;;AAqFO,IAAM,2BAA2B,uBAAO,IAAI,mBAAmB;AAYtE,IAAM,kBAAkB,oBAAI,QAAgD;AAC5E,IAAM,mBAAmB,oBAAI,IAA8B;AA+BpD,SAAS,kBAAkB,SAA+D;AAC/F,MAAI,CAAC,WAAW,OAAO,QAAQ,YAAY,YAAY;AACrD,UAAM,IAAI,UAAU,+CAA+C;AAAA,EACrE;AACA,MAAI,OAAO,QAAQ,QAAQ,YAAY;AACrC,UAAM,IAAI,UAAU,2CAA2C;AAAA,EACjE;AAEA,QAAM,YAAY,8BAA8B,QAAQ,SAAS;AACjE,QAAM,UACJ,eACA;AAAA,IACA,OAAO,QAAQ;AAAA,IACf,YAAY,QAAQ;AAAA,IACpB,SAAS,8BAAO,YAA8C;AAC5D,YAAM,WAAW,MAAM,QAAQ,IAAI,OAAO;AAC1C,2BAAqB,QAAQ;AAE7B,YAAM,YAAY,wBAAwB,QAAQ;AAClD,YAAM,WAAW,mBAAmB,CAAC,cAAc,QAAQ,CAAC;AAC5D,YAAM,WAAW,mCAAY;AAC3B,cAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO;AAC3C,eAAO,qBAAqB,QAAQ,QAAQ,OAAO,UAAU,mBAAmB;AAAA,MAClF,GAHiB;AAKjB,UAAI;AACJ,UAAI;AAEJ,UAAI,cAAc,GAAG;AACnB,eAAO,MAAM,yBAAyB,UAAU,QAAQ,SAAS,QAAQ;AACzE,oBAAY,KAAK,IAAI;AAAA,MACvB,OAAO;AACL,cAAM,QAAQ,iBAAiB;AAC/B,eAAO,MAAM,MAAM,SAAS,UAAU,UAAU;AAAA,UAC9C,MAAM,CAAC,wBAAwB,QAAQ,CAAC;AAAA,UACxC,YAAY,cAAc,QAAQ,QAAQ,YAAY;AAAA,QACxD,CAAC;AACD,qBACG,MAAM,MAAM,cAAc,UAAU,EAAE,YAAY,KAAK,CAAC,IAAI,aAAa,KAAK,IAAI;AAAA,MACvF;AAEA,aAAO,4BAA4B,MAAM;AAAA,QACvC,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,GAAI,QAAQ,YAAY,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;AAAA,MACtD,CAAC;AAAA,IACH,GAjCS;AAAA,EAkCX,CAAC;AAED,QAAM,QAAQ,8BAAO,UAAoB;AACvC,UAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,WAAO,gCAAgC,IAAI,SAAS,OAAO;AAAA,EAC7D,GAHc;AAKd,SAAO,iBAAiB,OAAO;AAAA,IAC7B,CAAC,wBAAwB,GAAG;AAAA,MAC1B,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,mBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,wBAAwB;AAAA,MACtB,OAAO,QAAQ;AAAA,MACf,YAAY;AAAA,IACd;AAAA,IACA,yBAAyB;AAAA,MACvB,OAAO,QAAQ;AAAA,MACf,YAAY;AAAA,IACd;AAAA,EACF,CAAC;AAED,SAAO;AACT;AA3EgB;AA6EhB,eAAe,yBACb,KACA,SACA,UACgB;AAChB,MAAI;AACJ,MAAI,SAAS;AACX,eAAW,gBAAgB,IAAI,OAAO,KAAK,oBAAI,IAAI;AACnD,oBAAgB,IAAI,SAAS,QAAQ;AAAA,EACvC,OAAO;AACL,eAAW;AAAA,EACb;AAEA,QAAM,WAAW,SAAS,IAAI,GAAG;AACjC,MAAI,SAAU,QAAO;AAErB,QAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,QAAQ;AAC/C,WAAS,IAAI,KAAK,OAAO;AAEzB,MAAI;AACF,WAAO,MAAM;AAAA,EACf,UAAE;AACA,aAAS,OAAO,GAAG;AAAA,EACrB;AACF;AAxBe;AA0Bf,SAAS,8BAA8B,OAAyD;AAC9F,MAAI,UAAU,MAAO,QAAO;AAC5B,MAAI,UAAU,OAAW,QAAO;AAEhC,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,OAAO,SAAS,KAAK,KAAK,QAAQ,GAAG;AACxC,YAAM,IAAI,UAAU,6DAA6D;AAAA,IACnF;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,MAAM,6BAA6B;AACvD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,UAAU,0EAA0E;AAAA,EAChG;AAEA,QAAM,SAAS,OAAO,MAAM,CAAC,CAAC;AAC9B,QAAM,OAAO,MAAM,CAAC;AACpB,QAAM,aAAa,SAAS,OAAO,IAAI,SAAS,MAAM,MAAO,SAAS,MAAM,MAAS;AACrF,SAAO,SAAS;AAClB;AApBS;AAsBT,SAAS,qBAAqB,KAAgD;AAC5E,MAAI,OAAO,QAAQ,UAAU;AAC3B,QAAI,IAAI,KAAK,EAAE,SAAS,EAAG;AAAA,EAC7B,WAAW,MAAM,QAAQ,GAAG,GAAG;AAC7B;AAAA,EACF;AAEA,QAAM,IAAI,UAAU,kEAAkE;AACxF;AARS;","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
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
FarmClientDataCache,
|
|
6
6
|
getFarmClientDataCache,
|
|
7
7
|
normalizeFarmClientCacheKey
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WMJGA32P.mjs";
|
|
9
9
|
import {
|
|
10
10
|
resolveAPIRequestRuntime
|
|
11
11
|
} from "./chunk-YECMFULZ.mjs";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
FARM_CACHE_INVALIDATION_HEADER,
|
|
25
25
|
applyFarmCacheInvalidations,
|
|
26
26
|
decodeFarmCacheInvalidations
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-34IAPZBG.mjs";
|
|
28
28
|
import {
|
|
29
29
|
_resolveCurrentRequest
|
|
30
30
|
} from "./chunk-LM2YNO4U.mjs";
|
|
@@ -1266,70 +1266,6 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1266
1266
|
let scopedRequestState;
|
|
1267
1267
|
const routeMeta = transport?.routeMeta ?? /* @__PURE__ */ new WeakMap();
|
|
1268
1268
|
let requestCounter = 0;
|
|
1269
|
-
const applyOptimisticLayer = /* @__PURE__ */ __name((entry, layer) => {
|
|
1270
|
-
let data = entry?.data;
|
|
1271
|
-
for (const updater of layer.updaters) data = updater(data);
|
|
1272
|
-
return {
|
|
1273
|
-
data,
|
|
1274
|
-
updatedAt: layer.updatedAt,
|
|
1275
|
-
staleAt: entry?.staleAt ?? layer.staleAt,
|
|
1276
|
-
gcAt: entry?.gcAt ?? layer.gcAt,
|
|
1277
|
-
invalidatedAt: entry?.invalidatedAt,
|
|
1278
|
-
[API_CACHE_REFETCH]: entry?.[API_CACHE_REFETCH]
|
|
1279
|
-
};
|
|
1280
|
-
}, "applyOptimisticLayer");
|
|
1281
|
-
const storeOptimisticEntry = /* @__PURE__ */ __name((cacheState, key, stack, entry) => {
|
|
1282
|
-
if (!entry) {
|
|
1283
|
-
cacheState.delete(key);
|
|
1284
|
-
stack.renderedEntry = void 0;
|
|
1285
|
-
return;
|
|
1286
|
-
}
|
|
1287
|
-
cacheState.set(key, entry);
|
|
1288
|
-
if (stack.invalidatedAt !== void 0) {
|
|
1289
|
-
cacheState.invalidate(key, stack.invalidatedAt);
|
|
1290
|
-
}
|
|
1291
|
-
stack.renderedEntry = cacheState.get(key);
|
|
1292
|
-
}, "storeOptimisticEntry");
|
|
1293
|
-
const reconcileOptimisticInvalidation = /* @__PURE__ */ __name((cacheState, key, stack) => {
|
|
1294
|
-
const current = cacheState.get(key);
|
|
1295
|
-
const rendered = stack.renderedEntry;
|
|
1296
|
-
if (current === rendered) return true;
|
|
1297
|
-
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) {
|
|
1298
|
-
return false;
|
|
1299
|
-
}
|
|
1300
|
-
stack.invalidatedAt = current.invalidatedAt;
|
|
1301
|
-
stack.renderedEntry = current;
|
|
1302
|
-
return true;
|
|
1303
|
-
}, "reconcileOptimisticInvalidation");
|
|
1304
|
-
const renderOptimisticStack = /* @__PURE__ */ __name((cacheState, key, stack) => {
|
|
1305
|
-
let entry = stack.entry ? { ...stack.entry } : void 0;
|
|
1306
|
-
for (const layer of stack.layers) entry = applyOptimisticLayer(entry, layer);
|
|
1307
|
-
storeOptimisticEntry(cacheState, key, stack, entry);
|
|
1308
|
-
}, "renderOptimisticStack");
|
|
1309
|
-
const settleOptimisticUpdates = /* @__PURE__ */ __name((cacheState, optimisticState, snapshots, outcome) => {
|
|
1310
|
-
const settledKeys = [];
|
|
1311
|
-
for (const snapshot of snapshots) {
|
|
1312
|
-
const stack = optimisticState.get(snapshot.key);
|
|
1313
|
-
if (stack !== snapshot.stack) continue;
|
|
1314
|
-
if (!reconcileOptimisticInvalidation(cacheState, snapshot.key, stack)) {
|
|
1315
|
-
optimisticState.delete(snapshot.key);
|
|
1316
|
-
continue;
|
|
1317
|
-
}
|
|
1318
|
-
if (outcome === "rollback") {
|
|
1319
|
-
stack.layers = stack.layers.filter((layer) => layer !== snapshot.layer);
|
|
1320
|
-
} else {
|
|
1321
|
-
snapshot.layer.committed = true;
|
|
1322
|
-
if (outcome === "invalidate") stack.invalidatedAt = Date.now();
|
|
1323
|
-
}
|
|
1324
|
-
while (stack.layers[0]?.committed) {
|
|
1325
|
-
stack.entry = applyOptimisticLayer(stack.entry, stack.layers.shift());
|
|
1326
|
-
}
|
|
1327
|
-
renderOptimisticStack(cacheState, snapshot.key, stack);
|
|
1328
|
-
if (stack.layers.length === 0) optimisticState.delete(snapshot.key);
|
|
1329
|
-
settledKeys.push(snapshot.key);
|
|
1330
|
-
}
|
|
1331
|
-
return settledKeys;
|
|
1332
|
-
}, "settleOptimisticUpdates");
|
|
1333
1269
|
const fetchClient = /* @__PURE__ */ __name(async (path, requestOptions, defaultHeaders, cancellation) => {
|
|
1334
1270
|
const url = resolveFarmAPIRequestURL(path, baseURL);
|
|
1335
1271
|
const method = String(requestOptions.method || "GET").toUpperCase();
|
|
@@ -1706,6 +1642,7 @@ function createAPIClientRuntime(options = {}, transport) {
|
|
|
1706
1642
|
staleAt: updatedAt + staleTime,
|
|
1707
1643
|
gcAt: getGcAt(updatedAt, cacheOptions?.gcTime),
|
|
1708
1644
|
invalidatedAt: void 0,
|
|
1645
|
+
persist: cacheOptions?.persist === true ? true : void 0,
|
|
1709
1646
|
[API_CACHE_REFETCH]: createCacheRefetch(
|
|
1710
1647
|
request,
|
|
1711
1648
|
path,
|
|
@@ -2053,6 +1990,151 @@ function getOptimisticState(cache) {
|
|
|
2053
1990
|
return state;
|
|
2054
1991
|
}
|
|
2055
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");
|
|
2056
2138
|
function buildCacheKey(method, path, input, baseURL, defaultHeaders) {
|
|
2057
2139
|
const keyInput = input && typeof input === "object" ? {
|
|
2058
2140
|
query: input.query,
|
|
@@ -2247,6 +2329,9 @@ export {
|
|
|
2247
2329
|
createAPIClient,
|
|
2248
2330
|
isAPIRouteRef,
|
|
2249
2331
|
getAPIRouteRefMetadata,
|
|
2250
|
-
createServerAPIClient
|
|
2332
|
+
createServerAPIClient,
|
|
2333
|
+
applyServerFnOptimisticUpdates,
|
|
2334
|
+
settleServerFnOptimisticUpdates,
|
|
2335
|
+
resolveServerFnInvalidateTargets
|
|
2251
2336
|
};
|
|
2252
|
-
//# sourceMappingURL=chunk-
|
|
2337
|
+
//# sourceMappingURL=chunk-IZBX2TEU.mjs.map
|