@farm.js/core 0.1.17 → 0.1.19
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 +12 -225
- package/dist/agent-runtime.cjs +83 -2800
- package/dist/api/client.cjs +17 -4060
- package/dist/api/route-manager.cjs +34 -4354
- package/dist/api/runtime.cjs +29 -2696
- package/dist/api.cjs +88 -8434
- package/dist/app-markdown.cjs +39 -280
- package/dist/app-markdown.mjs +3 -3
- package/dist/cache.cjs +38 -1560
- package/dist/chunk-22GUSVNJ.cjs +351 -0
- package/dist/{chunk-EN7WTEAY.mjs → chunk-2ANEVVF7.mjs} +1 -1
- package/dist/chunk-2CQ74SP6.cjs +13 -0
- package/dist/{chunk-YD4J4XCI.mjs → chunk-2GNATDDE.mjs} +1 -1
- package/dist/chunk-2SJ4RQ6P.cjs +57 -0
- package/dist/chunk-3376ZTRC.cjs +1 -0
- package/dist/chunk-4PNUXIVU.cjs +472 -0
- package/dist/chunk-4PPEPOZZ.cjs +21 -0
- package/dist/chunk-4ZFL5GFN.cjs +520 -0
- package/dist/chunk-5OVTOKGH.cjs +65 -0
- package/dist/chunk-5QIKR7RR.cjs +224 -0
- package/dist/chunk-5ZSWG4UX.cjs +127 -0
- package/dist/chunk-62YJ2IEB.cjs +238 -0
- package/dist/chunk-6EODJYCX.cjs +183 -0
- package/dist/chunk-6EXBPJ24.cjs +434 -0
- package/dist/chunk-6QQDAAAZ.cjs +38 -0
- package/dist/chunk-6V4TDWEC.cjs +455 -0
- package/dist/chunk-72ADZ6GQ.cjs +19 -0
- package/dist/chunk-75BRBIFP.cjs +172 -0
- package/dist/{chunk-ZCNJKLA2.mjs → chunk-7BC6GAL7.mjs} +1 -1
- package/dist/chunk-7W3CPVXS.cjs +24 -0
- package/dist/chunk-A6WIQH5Z.cjs +31 -0
- package/dist/chunk-A777V5WU.cjs +725 -0
- package/dist/chunk-AFOD3LYZ.cjs +377 -0
- package/dist/chunk-AH7HOAQ3.cjs +151 -0
- package/dist/chunk-AMDMVWMI.cjs +39 -0
- package/dist/chunk-AORPIPNB.cjs +552 -0
- package/dist/chunk-ARJWXNQL.cjs +256 -0
- package/dist/chunk-AYJR42WX.cjs +711 -0
- package/dist/chunk-BBVSJVBZ.cjs +600 -0
- package/dist/chunk-BIDYX3SL.cjs +91 -0
- package/dist/chunk-BYODCJD6.cjs +663 -0
- package/dist/chunk-C3VRMB6H.cjs +85 -0
- package/dist/chunk-C5GUTBZK.cjs +173 -0
- package/dist/chunk-CIAGU2X4.cjs +337 -0
- package/dist/chunk-CMGMGHUZ.cjs +27 -0
- package/dist/chunk-CXP5U3RW.cjs +54 -0
- package/dist/chunk-D2ULAULS.cjs +166 -0
- package/dist/chunk-D7JTOLFK.cjs +285 -0
- package/dist/chunk-DVM4FKZL.cjs +169 -0
- package/dist/chunk-DYEJQTDN.cjs +49 -0
- package/dist/chunk-E2ROOWQC.cjs +2225 -0
- package/dist/chunk-E3UK5IIB.cjs +593 -0
- package/dist/chunk-EM6SBQKM.cjs +470 -0
- package/dist/chunk-FJSWYIR7.cjs +482 -0
- package/dist/chunk-FK6GO24V.cjs +54 -0
- package/dist/{chunk-MVIWBEJF.mjs → chunk-FVZGEVTO.mjs} +7 -7
- package/dist/chunk-FXUUWYAX.cjs +654 -0
- package/dist/chunk-G3HRIVEY.cjs +395 -0
- package/dist/chunk-G643DQCH.cjs +13 -0
- package/dist/chunk-G7HXGLEC.cjs +175 -0
- package/dist/chunk-GDSHDTJ4.cjs +152 -0
- package/dist/chunk-GPVTX3HT.cjs +1415 -0
- package/dist/chunk-H6G5INWM.cjs +1094 -0
- package/dist/{chunk-DHDVMXYK.mjs → chunk-HALDNTIV.mjs} +30 -4
- package/dist/chunk-HBTUGXHS.cjs +180 -0
- package/dist/chunk-HREOKQWT.cjs +45 -0
- package/dist/{chunk-5QOEPUYE.mjs → chunk-HSDL2AUR.mjs} +1 -1
- package/dist/chunk-I4J452B7.cjs +435 -0
- package/dist/chunk-I57LW5VZ.cjs +94 -0
- package/dist/chunk-I5YBCWQ6.cjs +40 -0
- package/dist/chunk-I7PUUDGY.cjs +389 -0
- package/dist/chunk-IAMRBF3Z.cjs +86 -0
- package/dist/chunk-IQXFRNY2.cjs +169 -0
- package/dist/chunk-ISTFC3MZ.cjs +1357 -0
- package/dist/chunk-IXTFU4PL.cjs +2355 -0
- package/dist/chunk-J3LOGE4T.cjs +42 -0
- package/dist/chunk-J7FSKED3.cjs +93 -0
- package/dist/chunk-JDNHKPTD.cjs +22 -0
- package/dist/chunk-JSROZYYO.cjs +164 -0
- package/dist/chunk-K6FNHVDR.cjs +696 -0
- package/dist/chunk-KGZIORNL.cjs +43 -0
- package/dist/chunk-KR6CKSXT.cjs +15 -0
- package/dist/chunk-KROWKCUH.cjs +185 -0
- package/dist/chunk-KVFPGF2M.cjs +46 -0
- package/dist/{chunk-TNBAYAWO.mjs → chunk-L4DVIHOC.mjs} +1 -1
- package/dist/chunk-LCCBO7PJ.cjs +46 -0
- package/dist/chunk-LIUGYUX3.cjs +22 -0
- package/dist/chunk-LTNGXMQ6.cjs +55 -0
- package/dist/chunk-M2L4MYDQ.cjs +14 -0
- package/dist/chunk-MCJLA63J.cjs +1 -0
- package/dist/chunk-MKB2EGIR.cjs +148 -0
- package/dist/chunk-MQ3H6LT5.cjs +202 -0
- package/dist/chunk-MT763TDW.cjs +43 -0
- package/dist/{chunk-XWAYMDLB.mjs → chunk-MVUREHPN.mjs} +1 -1
- package/dist/chunk-MWSK6C4J.cjs +18 -0
- package/dist/chunk-MWWVKDW3.cjs +169 -0
- package/dist/{chunk-6VQIKZZO.mjs → chunk-N255VYFP.mjs} +1 -1
- package/dist/chunk-NBAHDVOJ.cjs +2040 -0
- package/dist/chunk-NO3WWW3N.cjs +192 -0
- package/dist/chunk-NSFC3LHB.cjs +10244 -0
- package/dist/chunk-NZKJGRB3.cjs +230 -0
- package/dist/chunk-OAVTUMJP.cjs +1496 -0
- package/dist/{chunk-SXHV42UQ.mjs → chunk-OFEY6KHO.mjs} +88 -13
- package/dist/chunk-OHY2ZWUG.cjs +25 -0
- package/dist/chunk-OI6CMLWX.cjs +47 -0
- package/dist/chunk-OWOUTKIJ.cjs +558 -0
- package/dist/chunk-OX6O6WVA.cjs +74 -0
- package/dist/chunk-OXSIH4D6.cjs +476 -0
- package/dist/chunk-OYDRPBBV.cjs +453 -0
- package/dist/chunk-OYEUREB6.cjs +35 -0
- package/dist/chunk-PCOTGFSM.cjs +139 -0
- package/dist/{chunk-76DG3LF3.mjs → chunk-PGQBL5DN.mjs} +1 -1
- package/dist/chunk-PZYCPSCC.cjs +35 -0
- package/dist/chunk-QBK2AA4U.cjs +445 -0
- package/dist/{chunk-UTBVHYS3.mjs → chunk-QBPKKQTD.mjs} +2 -2
- package/dist/chunk-QBPXNZGV.cjs +487 -0
- package/dist/chunk-QNPEUFHQ.cjs +27 -0
- package/dist/chunk-QZRVZSPN.cjs +236 -0
- package/dist/chunk-R5A5KNVX.cjs +20 -0
- package/dist/chunk-R5JIFR6B.cjs +42 -0
- package/dist/chunk-R6AIILII.cjs +193 -0
- package/dist/chunk-RFYO7QUD.cjs +9 -0
- package/dist/chunk-RG3ZOTG5.cjs +34 -0
- package/dist/chunk-ROUTX2E5.cjs +390 -0
- package/dist/chunk-RTHIVJ2G.cjs +54 -0
- package/dist/chunk-S27FMYAM.cjs +644 -0
- package/dist/chunk-S3A45T7F.cjs +166 -0
- package/dist/chunk-S3JO3N4H.cjs +17 -0
- package/dist/chunk-SK35NQKK.cjs +27 -0
- package/dist/chunk-SU7MH53P.cjs +180 -0
- package/dist/chunk-SVRTJOUF.cjs +113 -0
- package/dist/chunk-SWN467MP.cjs +18 -0
- package/dist/chunk-SYQ3MOWW.cjs +73 -0
- package/dist/chunk-T5CERMEH.cjs +417 -0
- package/dist/chunk-TFAXUHWX.cjs +206 -0
- package/dist/chunk-TIWHTW3Q.cjs +24 -0
- package/dist/chunk-TKJZFIML.cjs +20 -0
- package/dist/chunk-TKNSDBBN.cjs +193 -0
- package/dist/chunk-U4KT7QP3.cjs +23 -0
- package/dist/chunk-U5BMPGS3.cjs +862 -0
- package/dist/chunk-UJ2C4ICS.cjs +277 -0
- package/dist/chunk-UQZ4AYTH.cjs +168 -0
- package/dist/chunk-US2QVW3E.cjs +36 -0
- package/dist/{chunk-QGVJVSNX.mjs → chunk-V4AICMQA.mjs} +2 -2
- package/dist/chunk-VB6UCX3V.cjs +421 -0
- package/dist/chunk-VEKFLAQM.cjs +300 -0
- package/dist/chunk-VQDBNVOO.cjs +14 -0
- package/dist/chunk-W4E7WMXE.cjs +71 -0
- package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
- package/dist/chunk-WMAPPDMM.cjs +28 -0
- package/dist/chunk-WMOGFOUJ.cjs +223 -0
- package/dist/chunk-WPYFSQKK.cjs +37 -0
- package/dist/{chunk-56DAX2BE.mjs → chunk-WZXN4R5Y.mjs} +24 -13
- package/dist/chunk-XDGMADQM.cjs +14225 -0
- package/dist/chunk-XGC343EY.cjs +443 -0
- package/dist/chunk-XSKZORAS.cjs +727 -0
- package/dist/chunk-XWAWFQFS.cjs +82 -0
- package/dist/chunk-Y4YMF2NQ.cjs +460 -0
- package/dist/chunk-Y4YWHNKU.cjs +250 -0
- package/dist/chunk-Y53ZSFN6.cjs +504 -0
- package/dist/chunk-YA6LLTIJ.cjs +411 -0
- package/dist/chunk-YFPGHF5F.cjs +202 -0
- package/dist/chunk-YJRZR7VU.cjs +28 -0
- package/dist/chunk-YTAABQEV.cjs +1 -0
- package/dist/chunk-YX3DBN4M.cjs +18 -0
- package/dist/chunk-YZTASLPQ.cjs +64 -0
- package/dist/chunk-Z5HIWVDP.cjs +2173 -0
- package/dist/chunk-ZEG3OPIB.cjs +93 -0
- package/dist/chunk-ZMN3H73H.cjs +155 -0
- package/dist/client/lifecycle.cjs +6 -35
- package/dist/client-plugins.cjs +7 -448
- package/dist/client.cjs +171 -9808
- package/dist/config.cjs +8 -36
- package/dist/cron.cjs +24 -491
- package/dist/deferred.cjs +26 -475
- package/dist/deployment.cjs +39 -210
- package/dist/devtools-5KGPDVKL.cjs +388 -0
- package/dist/{devtools-UFVTMQX5.mjs → devtools-FY5R7TQ4.mjs} +3 -3
- package/dist/devtools-client-4WAPJY5L.cjs +254 -0
- package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
- package/dist/docs.cjs +46 -5657
- package/dist/docs.mjs +5 -5
- package/dist/env-types.cjs +5 -226
- package/dist/env.cjs +21 -338
- package/dist/environment/vite.cjs +8 -372
- package/dist/environment.cjs +12 -94
- package/dist/font.cjs +13 -63
- package/dist/headers.cjs +7 -123
- package/dist/i18n/client.cjs +55 -294
- package/dist/i18n/index.cjs +22 -209
- package/dist/i18n/server.cjs +22 -745
- package/dist/image/server.cjs +13 -729
- package/dist/image/sharp.cjs +33 -171
- package/dist/image.cjs +41 -85
- package/dist/index.cjs +1151 -68080
- package/dist/index.mjs +14 -14
- package/dist/instrumentation.cjs +12 -138
- package/dist/integration-orm-55F7CII5.cjs +13 -0
- package/dist/integrations.cjs +55 -4090
- package/dist/internal/app-markdown-runtime.cjs +27 -224
- package/dist/internal/app-markdown-runtime.mjs +2 -2
- package/dist/internal/build-runtime.cjs +120 -52259
- package/dist/internal/build-runtime.mjs +13 -13
- package/dist/internal/cli-runtime.cjs +67 -13811
- package/dist/internal/cli-runtime.mjs +7 -7
- package/dist/internal/client-error-overlay.cjs +80 -733
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +81 -913
- package/dist/internal/compression-runtime.cjs +8 -214
- package/dist/internal/config-runtime.cjs +42 -6547
- package/dist/internal/config-runtime.mjs +3 -3
- package/dist/internal/docs-precompiled-runtime.cjs +26 -46
- package/dist/internal/infra-analytics-runtime.cjs +10 -536
- package/dist/internal/isolated-boundary.cjs +14 -414
- package/dist/internal/metadata-image-runtime.cjs +7 -285
- package/dist/internal/product-telemetry-runtime.cjs +42 -97
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-node-env.cjs +6 -63
- package/dist/internal/production-runtime.cjs +418 -7133
- package/dist/internal/production-runtime.mjs +3 -3
- package/dist/internal/request-cookies.cjs +6 -54
- package/dist/json-ld.cjs +24 -50
- package/dist/layers-E4WPJNY5.cjs +17 -0
- package/dist/manager-G4B2IPYE.cjs +14 -0
- package/dist/markdown.cjs +21 -547
- package/dist/markdown.mjs +1 -1
- package/dist/middleware.cjs +36 -2995
- package/dist/navigation.cjs +22 -2588
- package/dist/nitro-4I2MYLY2.cjs +652 -0
- package/dist/observability.cjs +22 -614
- package/dist/og.cjs +5 -28
- package/dist/plugin.cjs +106 -37442
- package/dist/plugin.mjs +9 -9
- package/dist/query/client.cjs +113 -449
- package/dist/query/index.cjs +26 -288
- package/dist/query/parsers.cjs +23 -247
- package/dist/query/server.cjs +36 -298
- package/dist/renderer/react/client.cjs +9 -43
- package/dist/renderer/react/server.cjs +40 -103
- package/dist/renderer/react/vite.cjs +7 -29
- package/dist/renderer-client.cjs +126 -4295
- package/dist/renderer.cjs +31 -249
- package/dist/request.cjs +5 -68
- package/dist/router.cjs +11 -474
- package/dist/routes.cjs +42 -2461
- package/dist/{schema-dev-notice-2IE2F2XI.mjs → schema-dev-notice-O67CPXJ6.mjs} +1 -1
- package/dist/schema-dev-notice-Y7MQEFGN.cjs +56 -0
- package/dist/schema.cjs +6 -33
- package/dist/search-client-G3RICOFU.cjs +13 -0
- package/dist/server-action-security.cjs +25 -541
- package/dist/server-fn-client.cjs +6 -337
- package/dist/server-fn.cjs +32 -1841
- package/dist/server-plugins.cjs +15 -884
- package/dist/server-query-client.cjs +15 -1883
- package/dist/server-query.cjs +16 -1838
- package/dist/server.cjs +296 -44681
- package/dist/server.mjs +11 -11
- package/dist/storage.cjs +57 -576
- package/dist/testing.cjs +89 -3186
- package/dist/theme/client.cjs +13 -108
- package/dist/theme/index.cjs +6 -68
- package/dist/theme/runtime.cjs +13 -78
- package/dist/theme/server.cjs +10 -179
- package/dist/version.cjs +4 -32
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +119 -37773
- package/dist/vite.mjs +9 -9
- package/dist/workflows.cjs +19 -1040
- package/package.json +1 -1
|
@@ -1,342 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
21
2
|
|
|
22
|
-
// src/server-fn-client.ts
|
|
23
|
-
var server_fn_client_exports = {};
|
|
24
|
-
__export(server_fn_client_exports, {
|
|
25
|
-
useAction: () => useAction,
|
|
26
|
-
useServerFn: () => useServerFn
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(server_fn_client_exports);
|
|
29
|
-
var import_react = require("react");
|
|
30
3
|
|
|
31
|
-
// src/client-observers.ts
|
|
32
|
-
function notifyClientObserver(observer, args, label = "Client lifecycle") {
|
|
33
|
-
if (!observer) return;
|
|
34
|
-
const report = /* @__PURE__ */ __name((error) => {
|
|
35
|
-
const reportError = globalThis.reportError;
|
|
36
|
-
if (typeof reportError === "function") {
|
|
37
|
-
try {
|
|
38
|
-
reportError.call(globalThis, error);
|
|
39
|
-
return;
|
|
40
|
-
} catch {
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
console.error(`[Farm.js] ${label} callback failed:`, error);
|
|
45
|
-
} catch {
|
|
46
|
-
}
|
|
47
|
-
}, "report");
|
|
48
|
-
try {
|
|
49
|
-
const result = observer(...args);
|
|
50
|
-
if (result && typeof result.then === "function")
|
|
51
|
-
void Promise.resolve(result).catch(report);
|
|
52
|
-
} catch (error) {
|
|
53
|
-
report(error);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
__name(notifyClientObserver, "notifyClientObserver");
|
|
57
4
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const count = value ?? 0;
|
|
62
|
-
if (!Number.isSafeInteger(count) || count < 0) {
|
|
63
|
-
throw new RangeError("retry.count must be a non-negative safe integer");
|
|
64
|
-
}
|
|
65
|
-
return count;
|
|
66
|
-
}
|
|
67
|
-
__name(resolveClientRetryCount, "resolveClientRetryCount");
|
|
68
|
-
function resolveClientRetryDelay(value) {
|
|
69
|
-
const delay = value ?? 0;
|
|
70
|
-
if (!Number.isFinite(delay) || delay < 0 || delay > MAX_TIMER_DELAY) {
|
|
71
|
-
throw new RangeError(`retry.delay must be between 0 and ${MAX_TIMER_DELAY} milliseconds`);
|
|
72
|
-
}
|
|
73
|
-
return delay;
|
|
74
|
-
}
|
|
75
|
-
__name(resolveClientRetryDelay, "resolveClientRetryDelay");
|
|
5
|
+
var _chunkD7JTOLFKcjs = require('./chunk-D7JTOLFK.cjs');
|
|
6
|
+
require('./chunk-LTNGXMQ6.cjs');
|
|
7
|
+
require('./chunk-S3JO3N4H.cjs');
|
|
76
8
|
|
|
77
|
-
// src/mutation-retry.ts
|
|
78
|
-
var TRANSIENT_STATUSES = /* @__PURE__ */ new Set([408, 425, 429]);
|
|
79
|
-
function isTransientMutationFailure(context) {
|
|
80
|
-
if (context.status === void 0) return true;
|
|
81
|
-
return context.status >= 500 || TRANSIENT_STATUSES.has(context.status);
|
|
82
|
-
}
|
|
83
|
-
__name(isTransientMutationFailure, "isTransientMutationFailure");
|
|
84
|
-
function readErrorStatus(error) {
|
|
85
|
-
const status = error?.status;
|
|
86
|
-
return typeof status === "number" ? status : void 0;
|
|
87
|
-
}
|
|
88
|
-
__name(readErrorStatus, "readErrorStatus");
|
|
89
|
-
async function invokeMutationWithRetry(invoke, retry, shouldContinue) {
|
|
90
|
-
const maxRetries = resolveClientRetryCount(retry?.count);
|
|
91
|
-
if (typeof retry?.delay !== "function") resolveClientRetryDelay(retry?.delay);
|
|
92
|
-
const shouldRetryFailure = retry?.shouldRetry ?? isTransientMutationFailure;
|
|
93
|
-
let attempt = 0;
|
|
94
|
-
while (true) {
|
|
95
|
-
try {
|
|
96
|
-
return await invoke();
|
|
97
|
-
} catch (error) {
|
|
98
|
-
const failure = error instanceof Error ? error : new Error(String(error));
|
|
99
|
-
if (attempt >= maxRetries || !shouldContinue() || !shouldRetryFailure({
|
|
100
|
-
attempt,
|
|
101
|
-
method: "POST",
|
|
102
|
-
status: readErrorStatus(error),
|
|
103
|
-
error: failure
|
|
104
|
-
})) {
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
attempt += 1;
|
|
108
|
-
const delay = resolveClientRetryDelay(
|
|
109
|
-
typeof retry?.delay === "function" ? retry.delay(attempt) : retry?.delay
|
|
110
|
-
);
|
|
111
|
-
if (delay > 0) {
|
|
112
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
113
|
-
if (!shouldContinue()) throw error;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
__name(invokeMutationWithRetry, "invokeMutationWithRetry");
|
|
119
9
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const { initialResult = null, resetOnSubmit = true } = options;
|
|
123
|
-
const callbacksRef = (0, import_react.useRef)({});
|
|
124
|
-
const requestIdRef = (0, import_react.useRef)(0);
|
|
125
|
-
const lastResetIdRef = (0, import_react.useRef)(0);
|
|
126
|
-
const initialState = {
|
|
127
|
-
pendingCount: 0,
|
|
128
|
-
status: "idle",
|
|
129
|
-
result: initialResult,
|
|
130
|
-
error: null
|
|
131
|
-
};
|
|
132
|
-
const stateRef = (0, import_react.useRef)(initialState);
|
|
133
|
-
const [state, setState] = (0, import_react.useState)(initialState);
|
|
134
|
-
const setActionState = (0, import_react.useCallback)(
|
|
135
|
-
(value) => {
|
|
136
|
-
const next = typeof value === "function" ? value(stateRef.current) : value;
|
|
137
|
-
stateRef.current = next;
|
|
138
|
-
setState(next);
|
|
139
|
-
},
|
|
140
|
-
[]
|
|
141
|
-
);
|
|
142
|
-
callbacksRef.current = {
|
|
143
|
-
onError: options.onError,
|
|
144
|
-
onSettled: options.onSettled,
|
|
145
|
-
onSuccess: options.onSuccess,
|
|
146
|
-
throwOnFormError: options.throwOnFormError
|
|
147
|
-
};
|
|
148
|
-
const submit = (0, import_react.useCallback)(
|
|
149
|
-
async (input) => {
|
|
150
|
-
const requestId = ++requestIdRef.current;
|
|
151
|
-
const formData = isFormData(input) ? input : void 0;
|
|
152
|
-
const previousResult = stateRef.current.result;
|
|
153
|
-
const optimisticResult = options.optimistic?.({
|
|
154
|
-
input,
|
|
155
|
-
formData,
|
|
156
|
-
current: previousResult
|
|
157
|
-
});
|
|
158
|
-
const hasOptimisticResult = optimisticResult !== void 0;
|
|
159
|
-
setActionState((current) => {
|
|
160
|
-
if (requestId < lastResetIdRef.current) return current;
|
|
161
|
-
const pendingCount = current.pendingCount + 1;
|
|
162
|
-
if (requestId !== requestIdRef.current) return { ...current, pendingCount };
|
|
163
|
-
return {
|
|
164
|
-
pendingCount,
|
|
165
|
-
status: "pending",
|
|
166
|
-
result: hasOptimisticResult ? optimisticResult : resetOnSubmit ? null : current.result,
|
|
167
|
-
error: null
|
|
168
|
-
};
|
|
169
|
-
});
|
|
170
|
-
try {
|
|
171
|
-
const result = await invokeMutationWithRetry(
|
|
172
|
-
() => serverFn(input),
|
|
173
|
-
options.retry,
|
|
174
|
-
// A reset disowns this submission; stop scheduling retries then.
|
|
175
|
-
() => requestId >= lastResetIdRef.current
|
|
176
|
-
);
|
|
177
|
-
const isLatestRequest = requestId === requestIdRef.current;
|
|
178
|
-
setActionState((current) => {
|
|
179
|
-
if (requestId < lastResetIdRef.current) return current;
|
|
180
|
-
const pendingCount = Math.max(0, current.pendingCount - 1);
|
|
181
|
-
if (!isLatestRequest) {
|
|
182
|
-
return {
|
|
183
|
-
...current,
|
|
184
|
-
pendingCount
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
pendingCount,
|
|
189
|
-
status: "success",
|
|
190
|
-
result,
|
|
191
|
-
error: null
|
|
192
|
-
};
|
|
193
|
-
});
|
|
194
|
-
if (isLatestRequest) {
|
|
195
|
-
notifyClientObserver(callbacksRef.current.onSuccess, [result], "Action onSuccess");
|
|
196
|
-
if (requestId === requestIdRef.current) {
|
|
197
|
-
notifyClientObserver(
|
|
198
|
-
callbacksRef.current.onSettled,
|
|
199
|
-
[result, null],
|
|
200
|
-
"Action onSettled"
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return result;
|
|
205
|
-
} catch (cause) {
|
|
206
|
-
const error = normalizeServerFnError(cause);
|
|
207
|
-
const isLatestRequest = requestId === requestIdRef.current;
|
|
208
|
-
setActionState((current) => {
|
|
209
|
-
if (requestId < lastResetIdRef.current) return current;
|
|
210
|
-
const pendingCount = Math.max(0, current.pendingCount - 1);
|
|
211
|
-
if (!isLatestRequest) {
|
|
212
|
-
return {
|
|
213
|
-
...current,
|
|
214
|
-
pendingCount
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
return {
|
|
218
|
-
pendingCount,
|
|
219
|
-
status: "error",
|
|
220
|
-
result: hasOptimisticResult && options.rollbackOnError ? previousResult : resetOnSubmit ? null : current.result,
|
|
221
|
-
error
|
|
222
|
-
};
|
|
223
|
-
});
|
|
224
|
-
if (isLatestRequest) {
|
|
225
|
-
notifyClientObserver(callbacksRef.current.onError, [error], "Action onError");
|
|
226
|
-
if (requestId === requestIdRef.current) {
|
|
227
|
-
notifyClientObserver(callbacksRef.current.onSettled, [null, error], "Action onSettled");
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
throw error;
|
|
231
|
-
}
|
|
232
|
-
},
|
|
233
|
-
[
|
|
234
|
-
options.optimistic,
|
|
235
|
-
options.retry,
|
|
236
|
-
options.rollbackOnError,
|
|
237
|
-
resetOnSubmit,
|
|
238
|
-
serverFn,
|
|
239
|
-
setActionState
|
|
240
|
-
]
|
|
241
|
-
);
|
|
242
|
-
const formAction = (0, import_react.useCallback)(
|
|
243
|
-
async (formData) => {
|
|
244
|
-
try {
|
|
245
|
-
await submit(formData);
|
|
246
|
-
} catch (error) {
|
|
247
|
-
if (callbacksRef.current.throwOnFormError) {
|
|
248
|
-
throw error;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
[submit]
|
|
253
|
-
);
|
|
254
|
-
const reset = (0, import_react.useCallback)(() => {
|
|
255
|
-
lastResetIdRef.current = ++requestIdRef.current;
|
|
256
|
-
setActionState({
|
|
257
|
-
pendingCount: 0,
|
|
258
|
-
status: "idle",
|
|
259
|
-
result: initialResult,
|
|
260
|
-
error: null
|
|
261
|
-
});
|
|
262
|
-
}, [initialResult, setActionState]);
|
|
263
|
-
return (0, import_react.useMemo)(
|
|
264
|
-
() => ({
|
|
265
|
-
pending: state.pendingCount > 0,
|
|
266
|
-
status: state.status,
|
|
267
|
-
result: state.result,
|
|
268
|
-
error: state.error,
|
|
269
|
-
submit,
|
|
270
|
-
formAction,
|
|
271
|
-
reset
|
|
272
|
-
}),
|
|
273
|
-
[formAction, reset, state.error, state.pendingCount, state.result, state.status, submit]
|
|
274
|
-
);
|
|
275
|
-
}
|
|
276
|
-
__name(useServerFn, "useServerFn");
|
|
277
|
-
function useAction(target, options = {}) {
|
|
278
|
-
const serverFn = resolveServerFnTarget(target);
|
|
279
|
-
const action = useServerFn(serverFn, options);
|
|
280
|
-
const formActionRef = (0, import_react.useRef)(action.formAction);
|
|
281
|
-
formActionRef.current = action.formAction;
|
|
282
|
-
const Form = (0, import_react.useMemo)(() => {
|
|
283
|
-
const submitForm = /* @__PURE__ */ __name((formData) => formActionRef.current(formData), "submitForm");
|
|
284
|
-
const ActionForm = /* @__PURE__ */ __name((props) => (0, import_react.createElement)("form", {
|
|
285
|
-
...props,
|
|
286
|
-
action: submitForm
|
|
287
|
-
}), "ActionForm");
|
|
288
|
-
ActionForm.displayName = "FarmActionForm";
|
|
289
|
-
return ActionForm;
|
|
290
|
-
}, []);
|
|
291
|
-
return (0, import_react.useMemo)(() => {
|
|
292
|
-
const call = /* @__PURE__ */ __name(((input) => action.submit(input)), "call");
|
|
293
|
-
return Object.assign(call, {
|
|
294
|
-
pending: action.pending,
|
|
295
|
-
status: action.status,
|
|
296
|
-
data: action.result,
|
|
297
|
-
result: action.result,
|
|
298
|
-
error: action.error,
|
|
299
|
-
formAction: action.formAction,
|
|
300
|
-
Form,
|
|
301
|
-
reset: action.reset
|
|
302
|
-
});
|
|
303
|
-
}, [
|
|
304
|
-
Form,
|
|
305
|
-
action.error,
|
|
306
|
-
action.formAction,
|
|
307
|
-
action.pending,
|
|
308
|
-
action.reset,
|
|
309
|
-
action.result,
|
|
310
|
-
action.status,
|
|
311
|
-
action.submit
|
|
312
|
-
]);
|
|
313
|
-
}
|
|
314
|
-
__name(useAction, "useAction");
|
|
315
|
-
function resolveServerFnTarget(target) {
|
|
316
|
-
if (typeof target === "function") return target;
|
|
317
|
-
if (target && typeof target.action === "function") return target.action;
|
|
318
|
-
throw new TypeError(
|
|
319
|
-
"useAction requires a server function or a route with at least one declared action"
|
|
320
|
-
);
|
|
321
|
-
}
|
|
322
|
-
__name(resolveServerFnTarget, "resolveServerFnTarget");
|
|
323
|
-
function normalizeServerFnError(error) {
|
|
324
|
-
if (error instanceof Error) return error;
|
|
325
|
-
const normalized = new Error(typeof error === "string" ? error : "Server function failed");
|
|
326
|
-
normalized.cause = error;
|
|
327
|
-
return normalized;
|
|
328
|
-
}
|
|
329
|
-
__name(normalizeServerFnError, "normalizeServerFnError");
|
|
330
|
-
function isFormData(value) {
|
|
331
|
-
if (!value || typeof value !== "object") return false;
|
|
332
|
-
if (typeof FormData !== "undefined" && value instanceof FormData) {
|
|
333
|
-
return true;
|
|
334
|
-
}
|
|
335
|
-
return Object.prototype.toString.call(value) === "[object FormData]" && typeof value.entries === "function";
|
|
336
|
-
}
|
|
337
|
-
__name(isFormData, "isFormData");
|
|
338
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
339
|
-
0 && (module.exports = {
|
|
340
|
-
useAction,
|
|
341
|
-
useServerFn
|
|
342
|
-
});
|
|
10
|
+
|
|
11
|
+
exports.useAction = _chunkD7JTOLFKcjs.useAction; exports.useServerFn = _chunkD7JTOLFKcjs.useServerFn;
|