@voltro/client 0.51.0 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +356 -0
- package/THIRD-PARTY-NOTICES.md +169 -1
- package/dist/form.d.ts +228 -0
- package/dist/form.js +2 -0
- package/dist/formData-BO7zkG_F.js +386 -0
- package/dist/index.d.ts +526 -16
- package/dist/index.js +1527 -1261
- package/package.json +10 -3
package/dist/index.js
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import * as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
1
|
+
import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./formData-BO7zkG_F.js";
|
|
2
|
+
import { createContext as m, createElement as h, useCallback as g, useContext as _, useDebugValue as v, useEffect as y, useMemo as b, useRef as x, useState as S, useSyncExternalStore as C } from "react";
|
|
3
|
+
import { Cause as w, Context as T, Duration as ee, Effect as E, Exit as D, Fiber as O, Layer as k, ManagedRuntime as te, Schedule as A, Schema as j, Stream as M } from "effect";
|
|
4
|
+
import * as ne from "@effect/platform/Headers";
|
|
5
|
+
import { RpcClient as N, RpcSerialization as P } from "@effect/rpc";
|
|
6
|
+
import { applyRowPatch as F, fieldIssuesOf as re } from "@voltro/protocol";
|
|
7
|
+
import * as ie from "@effect/platform/Socket";
|
|
8
|
+
import { jsx as ae } from "react/jsx-runtime";
|
|
9
|
+
import { FormApi as oe } from "@tanstack/form-core";
|
|
10
|
+
import { useStore as se } from "@tanstack/react-store";
|
|
11
|
+
import { ArrayFormatter as ce } from "effect/ParseResult";
|
|
9
12
|
//#region src/traceBus.ts
|
|
10
|
-
var
|
|
11
|
-
for (let t of
|
|
13
|
+
var le = /* @__PURE__ */ new Set(), I = (e) => {
|
|
14
|
+
for (let t of le) try {
|
|
12
15
|
t(e);
|
|
13
16
|
} catch {}
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
}),
|
|
17
|
+
}, ue = (e) => (le.add(e), () => {
|
|
18
|
+
le.delete(e);
|
|
19
|
+
}), L = (e) => {
|
|
17
20
|
let t = (e) => e == null ? "null" : typeof e == "string" ? JSON.stringify(e) : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? `[${e.map(t).join(",")}]` : typeof e == "object" ? `{${Object.keys(e).sort().map((n) => `${JSON.stringify(n)}:${t(e[n])}`).join(",")}}` : String(e);
|
|
18
21
|
return t(e);
|
|
19
|
-
},
|
|
22
|
+
}, de = Object.freeze({
|
|
20
23
|
data: void 0,
|
|
21
24
|
revision: -1,
|
|
22
25
|
emittedAt: void 0,
|
|
23
26
|
error: void 0,
|
|
24
27
|
pendingPatches: 0
|
|
25
|
-
}),
|
|
28
|
+
}), fe = 5e3, R = (e, t, n) => {
|
|
26
29
|
if (e._tag === "error") return !1;
|
|
27
30
|
if (e._tag === "delta") return !0;
|
|
28
31
|
try {
|
|
@@ -30,21 +33,21 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
30
33
|
} catch {
|
|
31
34
|
return !1;
|
|
32
35
|
}
|
|
33
|
-
},
|
|
36
|
+
}, pe = 0, me = () => `patch_${++pe}`, z = (e, t) => {
|
|
34
37
|
let n = e;
|
|
35
38
|
for (let e of t.split(".")) {
|
|
36
39
|
if (typeof n != "object" || !n) return;
|
|
37
40
|
n = n[e];
|
|
38
41
|
}
|
|
39
42
|
return n;
|
|
40
|
-
},
|
|
43
|
+
}, he = (e, t, n) => {
|
|
41
44
|
let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
|
|
42
45
|
for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
|
|
43
46
|
return o[r[r.length - 1]] = n, a;
|
|
44
|
-
},
|
|
47
|
+
}, ge = (e, t) => {
|
|
45
48
|
let n = e.by ?? "id", r = e.identify ? e.identify(t) : typeof t[n] == "string" ? t[n] : typeof t.id == "string" ? t.id : void 0, i = r === void 0 ? [] : Array.isArray(r) ? r : [r];
|
|
46
49
|
return i.length === 0 ? null : new Set(i);
|
|
47
|
-
},
|
|
50
|
+
}, _e = (e, t, n) => {
|
|
48
51
|
let r = e.path, i = e.by ?? "id";
|
|
49
52
|
if (e.op === "insert") {
|
|
50
53
|
let a = e.shapeItem ?? e.shape, o = a ? {
|
|
@@ -57,11 +60,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
57
60
|
optimistic: !0
|
|
58
61
|
}, s = e.order ?? "append";
|
|
59
62
|
return (e) => {
|
|
60
|
-
let t = Array.isArray(
|
|
61
|
-
return
|
|
63
|
+
let t = Array.isArray(z(e, r)) ? z(e, r) : [];
|
|
64
|
+
return he(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
|
|
62
65
|
};
|
|
63
66
|
}
|
|
64
|
-
let a =
|
|
67
|
+
let a = ge(e, t);
|
|
65
68
|
if (a === null) return null;
|
|
66
69
|
if (e.op === "update") {
|
|
67
70
|
let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
|
|
@@ -75,16 +78,21 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
75
78
|
optimistic: !0
|
|
76
79
|
});
|
|
77
80
|
return (e) => {
|
|
78
|
-
let t =
|
|
79
|
-
|
|
81
|
+
let t = z(e, r);
|
|
82
|
+
if (!Array.isArray(t)) {
|
|
83
|
+
if (typeof t != "object" || !t) return e;
|
|
84
|
+
let n = t;
|
|
85
|
+
return a.has(n[i]) ? he(e, r, o(n)) : e;
|
|
86
|
+
}
|
|
87
|
+
return he(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
|
|
80
88
|
};
|
|
81
89
|
}
|
|
82
90
|
return (e) => {
|
|
83
|
-
let t = Array.isArray(
|
|
84
|
-
return
|
|
91
|
+
let t = Array.isArray(z(e, r)) ? z(e, r) : [];
|
|
92
|
+
return he(e, r, t.filter((e) => !a.has(e[i])));
|
|
85
93
|
};
|
|
86
|
-
},
|
|
87
|
-
if (e.path !== void 0) return
|
|
94
|
+
}, ve = (e, t, n) => {
|
|
95
|
+
if (e.path !== void 0) return _e(e, t, n);
|
|
88
96
|
switch (e.op) {
|
|
89
97
|
case "insert": {
|
|
90
98
|
let r = e.shape ? {
|
|
@@ -102,7 +110,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
102
110
|
};
|
|
103
111
|
}
|
|
104
112
|
case "update": {
|
|
105
|
-
let n =
|
|
113
|
+
let n = ge(e, t);
|
|
106
114
|
if (n === null) return null;
|
|
107
115
|
let r = e.shape, i = r ? (e) => ({
|
|
108
116
|
...r(t, e),
|
|
@@ -113,36 +121,50 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
113
121
|
...t,
|
|
114
122
|
optimistic: !0
|
|
115
123
|
});
|
|
116
|
-
return (e) =>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
124
|
+
return (e) => {
|
|
125
|
+
if (!Array.isArray(e)) {
|
|
126
|
+
let t = e;
|
|
127
|
+
return typeof t != "object" || !t ? e : n.has(t.id) ? i(t) : e;
|
|
128
|
+
}
|
|
129
|
+
return e.map((e) => {
|
|
130
|
+
let t = e;
|
|
131
|
+
return n.has(t.id) ? i(t) : t;
|
|
132
|
+
});
|
|
133
|
+
};
|
|
120
134
|
}
|
|
121
135
|
case "delete": {
|
|
122
|
-
let n =
|
|
123
|
-
return n === null ? null : (e) =>
|
|
136
|
+
let n = ge(e, t);
|
|
137
|
+
return n === null ? null : (e) => {
|
|
138
|
+
if (!Array.isArray(e)) {
|
|
139
|
+
let t = e;
|
|
140
|
+
return typeof t != "object" || !t ? e : n.has(t.id) ? null : e;
|
|
141
|
+
}
|
|
142
|
+
return e.filter((e) => !n.has(e.id));
|
|
143
|
+
};
|
|
124
144
|
}
|
|
125
145
|
}
|
|
126
|
-
},
|
|
146
|
+
}, ye = 5e3, B = class {
|
|
127
147
|
entries = /* @__PURE__ */ new Map();
|
|
128
148
|
inactiveTtlMs;
|
|
129
149
|
onChangeHook;
|
|
130
150
|
errorBus;
|
|
151
|
+
mirror;
|
|
152
|
+
mergeCell;
|
|
131
153
|
constructor(e = {}) {
|
|
132
|
-
this.inactiveTtlMs = e.inactiveTtlMs ??
|
|
154
|
+
this.inactiveTtlMs = e.inactiveTtlMs ?? ye, this.onChangeHook = e.onChange, this.errorBus = e.errorBus, this.mirror = e.mirror, this.mergeCell = e.mergeCell;
|
|
133
155
|
}
|
|
134
156
|
subscribe(e, t, n, r, i = {}) {
|
|
135
|
-
let a =
|
|
157
|
+
let a = L(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
|
|
136
158
|
return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, s.runtime = n, this.startFiber(s, t, n)), s.source === void 0 && i.source !== void 0 && (s.source = i.source)) : s = this.create(a, o, t, n, i.source), s.subscribers.add(r), {
|
|
137
159
|
getSnapshot: () => this.getSnapshot(a),
|
|
138
160
|
unsubscribe: () => this.unsubscribe(a, r)
|
|
139
161
|
};
|
|
140
162
|
}
|
|
141
163
|
update(e, t, n) {
|
|
142
|
-
let r =
|
|
164
|
+
let r = L(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
|
|
143
165
|
a ||= this.createStub(r, i);
|
|
144
166
|
let o = {
|
|
145
|
-
id:
|
|
167
|
+
id: me(),
|
|
146
168
|
mutationId: n,
|
|
147
169
|
reducer: t
|
|
148
170
|
};
|
|
@@ -156,7 +178,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
156
178
|
for (let i of this.entries.values()) {
|
|
157
179
|
if (i.tag !== e) continue;
|
|
158
180
|
let a = {
|
|
159
|
-
id: `forTag-${++
|
|
181
|
+
id: `forTag-${++pe}`,
|
|
160
182
|
mutationId: n,
|
|
161
183
|
reducer: t
|
|
162
184
|
};
|
|
@@ -173,12 +195,12 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
173
195
|
confirmByMutation(e) {
|
|
174
196
|
let t = !1;
|
|
175
197
|
for (let n of this.entries.values()) for (let r of n.state.patches) r.mutationId === e && r.confirmed !== !0 && (r.confirmed = !0, t = !0);
|
|
176
|
-
t && setTimeout(() => this.resyncUnechoedMutation(e),
|
|
198
|
+
t && setTimeout(() => this.resyncUnechoedMutation(e), fe);
|
|
177
199
|
}
|
|
178
200
|
resyncUnechoedMutation(e) {
|
|
179
201
|
for (let t of this.entries.values()) {
|
|
180
202
|
if (!t.state.patches.some((t) => t.mutationId === e && t.confirmed === !0)) continue;
|
|
181
|
-
let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${
|
|
203
|
+
let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${fe}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
|
|
182
204
|
this.errorBus?.emit({
|
|
183
205
|
source: "subscription",
|
|
184
206
|
tag: n,
|
|
@@ -191,7 +213,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
191
213
|
}
|
|
192
214
|
}
|
|
193
215
|
autoApply(e, t, n) {
|
|
194
|
-
let r = `optimistic-${n}-${++
|
|
216
|
+
let r = `optimistic-${n}-${++pe}`;
|
|
195
217
|
for (let i of e) for (let e of this.entries.values()) {
|
|
196
218
|
if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
|
|
197
219
|
if (i.match !== void 0) {
|
|
@@ -204,7 +226,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
204
226
|
if (!n) continue;
|
|
205
227
|
}
|
|
206
228
|
if (e.computed && i.op === "insert" && i.path === void 0) continue;
|
|
207
|
-
let a =
|
|
229
|
+
let a = ve(i, t, r);
|
|
208
230
|
if (a === null) continue;
|
|
209
231
|
let o = {
|
|
210
232
|
id: `${r}-${e.key}`,
|
|
@@ -221,10 +243,10 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
221
243
|
n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
|
|
222
244
|
}
|
|
223
245
|
peek(e) {
|
|
224
|
-
return this.getSnapshot(
|
|
246
|
+
return this.getSnapshot(L(e));
|
|
225
247
|
}
|
|
226
248
|
getEntry(e) {
|
|
227
|
-
return this.entries.get(
|
|
249
|
+
return this.entries.get(L(e));
|
|
228
250
|
}
|
|
229
251
|
size() {
|
|
230
252
|
return this.entries.size;
|
|
@@ -243,7 +265,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
243
265
|
return e;
|
|
244
266
|
}
|
|
245
267
|
destroy(e) {
|
|
246
|
-
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(
|
|
268
|
+
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(O.interrupt(t.fiber));
|
|
247
269
|
this.entries.clear();
|
|
248
270
|
}
|
|
249
271
|
refreshAll(e) {
|
|
@@ -251,7 +273,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
251
273
|
}
|
|
252
274
|
reissue(e, t, n = !0) {
|
|
253
275
|
if (!e.fetch) return;
|
|
254
|
-
e.fiber && t.runFork(
|
|
276
|
+
e.fiber && t.runFork(O.interrupt(e.fiber)), e.fiber = null;
|
|
255
277
|
let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
|
|
256
278
|
e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
|
|
257
279
|
}
|
|
@@ -295,7 +317,9 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
295
317
|
fetch: n,
|
|
296
318
|
runtime: r
|
|
297
319
|
};
|
|
298
|
-
return this.entries.set(e, a), this.startFiber(a, n, r),
|
|
320
|
+
return this.entries.set(e, a), this.startFiber(a, n, r), this.mirror !== void 0 && this.mirror.load(e).then((t) => {
|
|
321
|
+
t !== void 0 && this.entries.get(e) === a && a.state.base === void 0 && a.state.baseRevision === -1 && (a.state.base = t.data, a.state.baseRevision = t.revision, this.invalidate(a));
|
|
322
|
+
}).catch(() => {}), a;
|
|
299
323
|
}
|
|
300
324
|
createStub(e, t) {
|
|
301
325
|
let n = {
|
|
@@ -323,24 +347,28 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
323
347
|
};
|
|
324
348
|
}
|
|
325
349
|
startFiber(e, t, n) {
|
|
326
|
-
let r = e.tag ?? e.key, i = t(), a =
|
|
350
|
+
let r = e.tag ?? e.key, i = t(), a = M.unwrapScoped(E.currentSpan.pipe(E.catchAll(() => E.succeed(void 0)), E.map((t) => (t && (e.traceId = t.traceId, I({
|
|
327
351
|
traceId: t.traceId,
|
|
328
352
|
spanId: t.spanId,
|
|
329
353
|
source: "subscription",
|
|
330
354
|
tag: r
|
|
331
|
-
})), i)))).pipe(
|
|
332
|
-
e.fiber = n.runFork(a.pipe(x.runForEach((t) => p.sync(() => {
|
|
355
|
+
})), i)))).pipe(M.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } })), o = e.state.baseRevision >= 0 ? e.state.baseRevision : void 0, s = a.pipe(M.runForEach((t) => E.sync(() => {
|
|
333
356
|
let n = e.state.base;
|
|
334
357
|
if (t._tag === "snapshot") e.state.base = t.data, e.state.baseRevision = t.revision, e.state.baseEmittedAt = void 0, e.state.baseError = void 0, t.computed === !0 && (e.computed = !0);
|
|
335
|
-
else if (t._tag === "error") e.state.baseError =
|
|
358
|
+
else if (t._tag === "error") e.state.baseError = w.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
|
|
336
359
|
else {
|
|
337
360
|
let n = e.state.base;
|
|
338
|
-
Array.isArray(n) && (e.state.base =
|
|
361
|
+
Array.isArray(n) && (e.state.base = F(n, t.patch, this.mergeCell === void 0 ? {} : { mergeCell: this.mergeCell })), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
|
|
339
362
|
}
|
|
340
|
-
e.state.patches.some((e) => e.confirmed === !0) &&
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
363
|
+
e.state.patches.some((e) => e.confirmed === !0) && R(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.mirror !== void 0 && t._tag !== "error" && this.mirror.save(e.key, {
|
|
364
|
+
tag: e.tag,
|
|
365
|
+
data: e.state.base,
|
|
366
|
+
revision: e.state.baseRevision
|
|
367
|
+
}).catch(() => {}), this.invalidate(e);
|
|
368
|
+
})));
|
|
369
|
+
e.fiber = n.runFork(o === void 0 ? s : s.pipe(E.locallyWith(N.currentHeaders, (e) => ne.set(e, "voltro-resume-from", String(o))))), e.fiber.addObserver((t) => {
|
|
370
|
+
if (D.isFailure(t) && !D.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
|
|
371
|
+
let n = w.squash(t.cause);
|
|
344
372
|
this.errorBus.emit({
|
|
345
373
|
source: "subscription",
|
|
346
374
|
tag: e.tag ?? e.key,
|
|
@@ -357,7 +385,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
357
385
|
}
|
|
358
386
|
getSnapshot(e) {
|
|
359
387
|
let t = this.entries.get(e);
|
|
360
|
-
if (!t) return
|
|
388
|
+
if (!t) return de;
|
|
361
389
|
if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
|
|
362
390
|
let n = t.state.base;
|
|
363
391
|
if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
|
|
@@ -377,17 +405,17 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
377
405
|
scheduleEviction(e) {
|
|
378
406
|
e.evictionTimer !== null && clearTimeout(e.evictionTimer), e.evictionTimer = setTimeout(() => {
|
|
379
407
|
let t = this.entries.get(e.key);
|
|
380
|
-
t && t.subscribers.size === 0 && (t.fiber &&
|
|
408
|
+
t && t.subscribers.size === 0 && (t.fiber && E.runFork(O.interrupt(t.fiber)), this.entries.delete(e.key));
|
|
381
409
|
}, this.inactiveTtlMs);
|
|
382
410
|
}
|
|
383
|
-
},
|
|
411
|
+
}, be = class extends B {
|
|
384
412
|
subscribe(e, t, n, r, i = {}) {
|
|
385
413
|
return {
|
|
386
414
|
getSnapshot: () => this.peek(e),
|
|
387
415
|
unsubscribe: () => {}
|
|
388
416
|
};
|
|
389
417
|
}
|
|
390
|
-
},
|
|
418
|
+
}, V = class {
|
|
391
419
|
#e = /* @__PURE__ */ new Set();
|
|
392
420
|
on(e) {
|
|
393
421
|
return this.#e.add(e), () => {
|
|
@@ -399,45 +427,45 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
399
427
|
t(e);
|
|
400
428
|
} catch {}
|
|
401
429
|
}
|
|
402
|
-
},
|
|
430
|
+
}, xe = m(null), Se = () => {
|
|
403
431
|
throw Error("Voltro: rpc / cache calls are not invokable on a not-yet-resolved api — either during SSR, or in the client boot window before the api client resolves");
|
|
404
|
-
},
|
|
405
|
-
get: (e, t) =>
|
|
432
|
+
}, Ce = new Proxy(() => Se(), {
|
|
433
|
+
get: (e, t) => Ce,
|
|
406
434
|
has: () => !0,
|
|
407
|
-
apply: () =>
|
|
408
|
-
}),
|
|
409
|
-
runtime: { runPromiseExit: () => Promise.resolve(
|
|
410
|
-
cache: new
|
|
411
|
-
client:
|
|
435
|
+
apply: () => Se()
|
|
436
|
+
}), we = {
|
|
437
|
+
runtime: { runPromiseExit: () => Promise.resolve(D.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
|
|
438
|
+
cache: new be(),
|
|
439
|
+
client: Ce,
|
|
412
440
|
descriptors: {},
|
|
413
441
|
inspectBaseUrl: "",
|
|
414
|
-
errorBus: new
|
|
415
|
-
},
|
|
416
|
-
get: () =>
|
|
442
|
+
errorBus: new V()
|
|
443
|
+
}, Te = {
|
|
444
|
+
get: () => we,
|
|
417
445
|
names: []
|
|
418
|
-
},
|
|
419
|
-
|
|
420
|
-
},
|
|
421
|
-
let e =
|
|
422
|
-
return e ? (
|
|
423
|
-
|
|
424
|
-
}, 0)),
|
|
425
|
-
},
|
|
446
|
+
}, H = !1, Ee = !1, U = null, De = () => {
|
|
447
|
+
H = !1, Ee = !1, U !== null && (clearTimeout(U), U = null);
|
|
448
|
+
}, Oe = () => {
|
|
449
|
+
let e = _(xe);
|
|
450
|
+
return e ? (Ee || (Ee = !0, U !== null && (clearTimeout(U), U = null)), e) : (typeof window < "u" && !H && !Ee && U === null && process.env.NODE_ENV !== "production" && (U = setTimeout(() => {
|
|
451
|
+
U = null, !(H || Ee) && (H = !0, console.warn("useFrameworkRuntimes: no <FrameworkRuntimesProvider> in the tree — returning a loading baseline (subscriptions read `undefined`, mutations are no-ops). If this is not an intentional lazy/conditional mount, mount your app via @voltro/web mount() or wrap the subtree in <VoltroRuntimeProvider>."));
|
|
452
|
+
}, 0)), Te);
|
|
453
|
+
}, W = (e) => Oe().get(e), ke = (e) => typeof e.runtime?.runFork != "function", Ae = async (e) => {
|
|
426
454
|
let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
|
|
427
|
-
class o extends
|
|
428
|
-
let s =
|
|
455
|
+
class o extends T.Tag(`@voltro/client/AppClient/${t}`)() {}
|
|
456
|
+
let s = k.succeed(ie.WebSocketConstructor, (e, t) => a(e, t)), c = N.layerProtocolSocket().pipe(k.provide(P.layerJson), k.provide(ie.layerWebSocket(n)), k.provide(s)), l = typeof i == "function" ? await i() : i, u = k.scoped(o, N.make(r)).pipe(k.provide(c)), d = l ? k.locallyScoped(N.currentHeaders, ne.fromInput(l)) : k.empty, f = te.make(k.merge(u, d));
|
|
429
457
|
try {
|
|
430
|
-
let e = await
|
|
458
|
+
let e = await f.runPromise(o), t = new V();
|
|
431
459
|
return {
|
|
432
|
-
runtime:
|
|
460
|
+
runtime: f,
|
|
433
461
|
client: e,
|
|
434
|
-
cache: new
|
|
462
|
+
cache: new B({ errorBus: t }),
|
|
435
463
|
errorBus: t
|
|
436
464
|
};
|
|
437
465
|
} catch (e) {
|
|
438
|
-
throw
|
|
466
|
+
throw f.dispose(), e;
|
|
439
467
|
}
|
|
440
|
-
},
|
|
468
|
+
}, je = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), Me = () => ({
|
|
441
469
|
resolved: null,
|
|
442
470
|
retryToken: 0,
|
|
443
471
|
failureCount: 0,
|
|
@@ -446,15 +474,15 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
446
474
|
everOpened: !1,
|
|
447
475
|
wedgeStop: null,
|
|
448
476
|
subjectMayHaveChanged: !1
|
|
449
|
-
}),
|
|
477
|
+
}), Ne = (e) => {
|
|
450
478
|
e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
|
|
451
|
-
},
|
|
479
|
+
}, Pe = (e) => {
|
|
452
480
|
e.cache.destroy(e.runtime), e.runtime.dispose();
|
|
453
|
-
},
|
|
454
|
-
let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ??
|
|
481
|
+
}, Fe = (e) => {
|
|
482
|
+
let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? je, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
|
|
455
483
|
clearTimeout(e);
|
|
456
484
|
}), c = e.scheduler?.queueMicrotask ?? queueMicrotask, l = e.onReconnecting, u = e.wedgeBackstop, d = /* @__PURE__ */ new Map();
|
|
457
|
-
for (let e of t) d.set(e.name,
|
|
485
|
+
for (let e of t) d.set(e.name, Me());
|
|
458
486
|
let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
|
|
459
487
|
let n = o(() => {
|
|
460
488
|
p.delete(n), e();
|
|
@@ -480,7 +508,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
480
508
|
if (!t) return;
|
|
481
509
|
let r = t.generation, i = () => {
|
|
482
510
|
if (f || t.generation !== r) return;
|
|
483
|
-
t.everOpened = !0,
|
|
511
|
+
t.everOpened = !0, Ne(t), t.retryToken++;
|
|
484
512
|
let e = t.failureCount;
|
|
485
513
|
m(() => {
|
|
486
514
|
f || t.failureCount === e && (t.failureCount = 0);
|
|
@@ -491,11 +519,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
491
519
|
try {
|
|
492
520
|
let a = await n(e, r, i, o);
|
|
493
521
|
if (f || t.generation !== r) {
|
|
494
|
-
|
|
522
|
+
Pe(a);
|
|
495
523
|
return;
|
|
496
524
|
}
|
|
497
525
|
let s = t.resolved;
|
|
498
|
-
s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s &&
|
|
526
|
+
s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s && Pe(s);
|
|
499
527
|
} catch {
|
|
500
528
|
if (f || t.generation !== r) return;
|
|
501
529
|
g(e);
|
|
@@ -503,7 +531,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
503
531
|
}, v = (e) => {
|
|
504
532
|
if (!f) for (let n of t) {
|
|
505
533
|
let t = d.get(n.name);
|
|
506
|
-
t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0,
|
|
534
|
+
t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0, Ne(t), _(n));
|
|
507
535
|
}
|
|
508
536
|
};
|
|
509
537
|
return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
|
|
@@ -520,7 +548,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
520
548
|
f = !0;
|
|
521
549
|
for (let e of p) s(e);
|
|
522
550
|
p.clear();
|
|
523
|
-
for (let [, e] of d) e.resolved &&
|
|
551
|
+
for (let [, e] of d) e.resolved && Pe(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), Ne(e);
|
|
524
552
|
d.clear();
|
|
525
553
|
}
|
|
526
554
|
},
|
|
@@ -531,8 +559,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
531
559
|
v(!1);
|
|
532
560
|
}
|
|
533
561
|
});
|
|
534
|
-
},
|
|
535
|
-
let n =
|
|
562
|
+
}, Ie = ({ apis: e, children: t }) => {
|
|
563
|
+
let n = b(() => ({
|
|
536
564
|
get: (t) => {
|
|
537
565
|
let n = e.get(t);
|
|
538
566
|
if (!n) {
|
|
@@ -543,45 +571,45 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
543
571
|
},
|
|
544
572
|
names: Array.from(e.keys())
|
|
545
573
|
}), [e]);
|
|
546
|
-
return /* @__PURE__ */
|
|
574
|
+
return /* @__PURE__ */ ae(xe.Provider, {
|
|
547
575
|
value: n,
|
|
548
576
|
children: t
|
|
549
577
|
});
|
|
550
|
-
},
|
|
551
|
-
let e = globalThis, t = e[
|
|
578
|
+
}, Le = Symbol.for("@voltro/client/storeStorageProvider"), Re = () => {
|
|
579
|
+
let e = globalThis, t = e[Le];
|
|
552
580
|
if (t !== void 0) return t;
|
|
553
581
|
let n = {
|
|
554
582
|
provider: void 0,
|
|
555
583
|
used: !1
|
|
556
584
|
};
|
|
557
|
-
return e[
|
|
558
|
-
},
|
|
585
|
+
return e[Le] = n, n;
|
|
586
|
+
}, ze = (e) => {
|
|
559
587
|
if (typeof window > "u") return null;
|
|
560
588
|
try {
|
|
561
589
|
return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
562
590
|
} catch {
|
|
563
591
|
return null;
|
|
564
592
|
}
|
|
565
|
-
},
|
|
566
|
-
let t =
|
|
593
|
+
}, Be = (e) => {
|
|
594
|
+
let t = Re();
|
|
567
595
|
t.used && e !== null && console.warn("[voltro] setStoreStorage() was called after a persisted store had already read. That store booted against the previous backing store and will not be re-read. Install storage before the first render — on React Native, after awaiting hydrate()."), t.provider = e ?? void 0;
|
|
568
|
-
},
|
|
569
|
-
let t =
|
|
570
|
-
return t.used = !0, (t.provider ??
|
|
571
|
-
},
|
|
572
|
-
let e =
|
|
596
|
+
}, Ve = (e) => {
|
|
597
|
+
let t = Re();
|
|
598
|
+
return t.used = !0, (t.provider ?? ze)(e);
|
|
599
|
+
}, He = () => {
|
|
600
|
+
let e = Re();
|
|
573
601
|
e.provider = void 0, e.used = !1;
|
|
574
|
-
},
|
|
602
|
+
}, Ue = (e, t) => {
|
|
575
603
|
if (Object.is(e, t)) return !0;
|
|
576
604
|
if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
577
605
|
let n = Object.keys(e), r = Object.keys(t);
|
|
578
606
|
if (n.length !== r.length) return !1;
|
|
579
607
|
for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
|
|
580
608
|
return !0;
|
|
581
|
-
},
|
|
582
|
-
|
|
583
|
-
},
|
|
584
|
-
let r =
|
|
609
|
+
}, We = 50, Ge = /* @__PURE__ */ new Set(), Ke = (e, t) => {
|
|
610
|
+
Ge.has(e) || (Ge.add(e), console.warn(t));
|
|
611
|
+
}, qe = "\0global", Je = null, Ye = (e, t, n) => {
|
|
612
|
+
let r = Je?.() ?? null;
|
|
585
613
|
if (r === null) return n;
|
|
586
614
|
let i = n;
|
|
587
615
|
for (let n of r.seeds) n.store === e && n.key === t && (i = {
|
|
@@ -589,9 +617,9 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
589
617
|
...n.value
|
|
590
618
|
});
|
|
591
619
|
return i;
|
|
592
|
-
},
|
|
620
|
+
}, Xe = (e, t) => {
|
|
593
621
|
let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
|
|
594
|
-
if (i >=
|
|
622
|
+
if (i >= We) throw i = 0, Error(`defineStore: notification depth exceeded ${We} — a subscriber writes a NEW value every time it is notified, so the store can never settle. Look for a listener calling set() with something derived from the current state without converging.`);
|
|
595
623
|
i += 1;
|
|
596
624
|
try {
|
|
597
625
|
for (let e of [...r]) e();
|
|
@@ -612,20 +640,20 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
612
640
|
if (typeof i?.then == "function") throw a === 1 && o !== void 0 && (n = o), --a, a === 0 && (o = void 0, s = void 0), Error(`defineStore: batch('${e}') was given an async function. A batch is synchronous — everything after the first await would land outside it. Await the work first, then batch the writes: \`const r = await load(); store.batch('${e}', () => { … })\`.`);
|
|
613
641
|
if (--a, a > 0) return;
|
|
614
642
|
let l = o, u = s;
|
|
615
|
-
o = void 0, s = void 0, !
|
|
643
|
+
o = void 0, s = void 0, !Ue(l, n) && (t(l, n, u), c());
|
|
616
644
|
},
|
|
617
645
|
set: (e, r) => {
|
|
618
646
|
let i = typeof e == "function" ? e(n) : {
|
|
619
647
|
...n,
|
|
620
648
|
...e
|
|
621
649
|
};
|
|
622
|
-
if (
|
|
650
|
+
if (Ue(i, n)) return;
|
|
623
651
|
let o = n;
|
|
624
652
|
n = i, !(a > 0) && (t(o, i, r), c());
|
|
625
653
|
},
|
|
626
654
|
reset: () => {
|
|
627
655
|
let r = e();
|
|
628
|
-
if (
|
|
656
|
+
if (Ue(r, n)) return;
|
|
629
657
|
let i = n;
|
|
630
658
|
n = r, !(a > 0) && (t(i, r, "reset"), c());
|
|
631
659
|
},
|
|
@@ -633,56 +661,56 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
|
|
|
633
661
|
r.delete(e);
|
|
634
662
|
})
|
|
635
663
|
};
|
|
636
|
-
},
|
|
637
|
-
|
|
638
|
-
}),
|
|
639
|
-
|
|
640
|
-
},
|
|
641
|
-
let n =
|
|
664
|
+
}, Ze = 200, G = [], Qe = /* @__PURE__ */ new Set(), $e = [], et = () => $e, tt = (e) => (Qe.add(e), () => {
|
|
665
|
+
Qe.delete(e);
|
|
666
|
+
}), nt = () => {
|
|
667
|
+
G.length = 0, $e = [];
|
|
668
|
+
}, rt = (e, t) => {
|
|
669
|
+
let n = G[e];
|
|
642
670
|
if (n === void 0) return !1;
|
|
643
|
-
let r =
|
|
671
|
+
let r = q.get(n.store);
|
|
644
672
|
if (r === void 0) return !1;
|
|
645
673
|
let i = t === "before" ? n.prev : n.next;
|
|
646
|
-
|
|
674
|
+
it = !0;
|
|
647
675
|
try {
|
|
648
676
|
r.set(() => i, n.key, `travel:${t}`);
|
|
649
677
|
} finally {
|
|
650
|
-
|
|
678
|
+
it = !1;
|
|
651
679
|
}
|
|
652
680
|
return !0;
|
|
653
|
-
},
|
|
654
|
-
|
|
655
|
-
for (let e of [...
|
|
656
|
-
},
|
|
657
|
-
|
|
658
|
-
})),
|
|
659
|
-
function
|
|
681
|
+
}, K = !1, it = !1, at = (e) => {
|
|
682
|
+
G.push(e), G.length > Ze && G.shift(), $e = [...G];
|
|
683
|
+
for (let e of [...Qe]) e();
|
|
684
|
+
}, q = /* @__PURE__ */ new Map(), ot = /* @__PURE__ */ new Map(), st = 0, ct = !1, lt = /* @__PURE__ */ new Map(), ut = () => (ct || (ct = !0, queueMicrotask(() => {
|
|
685
|
+
st += 1, ct = !1;
|
|
686
|
+
})), st), dt = ft(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
|
|
687
|
+
function ft(e) {
|
|
660
688
|
let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
|
|
661
689
|
return n.length > 0 ? n : void 0;
|
|
662
690
|
}
|
|
663
|
-
var
|
|
691
|
+
var pt = () => {
|
|
664
692
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
665
693
|
if (typeof e != "string") return "<unknown>";
|
|
666
694
|
for (let t of e.split("\n").slice(1)) {
|
|
667
|
-
let e =
|
|
695
|
+
let e = ft(t);
|
|
668
696
|
if (e === void 0) continue;
|
|
669
697
|
let n = e.replace(/:\d+:\d+$/, "");
|
|
670
|
-
if (
|
|
698
|
+
if (dt === "" || n !== dt.replace(/:\d+:\d+$/, "")) return n;
|
|
671
699
|
}
|
|
672
700
|
return "<unknown>";
|
|
673
|
-
},
|
|
674
|
-
let
|
|
675
|
-
if (
|
|
676
|
-
let t =
|
|
677
|
-
if (
|
|
678
|
-
throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${
|
|
679
|
-
}
|
|
680
|
-
let
|
|
681
|
-
let e =
|
|
682
|
-
if (e === null ||
|
|
701
|
+
}, mt = () => [...q.values()], ht = (e, t, n) => {
|
|
702
|
+
let r = pt(), i = ut(), a = q.get(e);
|
|
703
|
+
if (a !== void 0) {
|
|
704
|
+
let t = ot.get(e) ?? "<unknown>", n = lt.get(e) === i;
|
|
705
|
+
if (r !== "<unknown>" && r === t && !n) return a;
|
|
706
|
+
throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${r}`);
|
|
707
|
+
}
|
|
708
|
+
let o = n?.persist, s = () => Ve(o?.storage === "session" ? "session" : "local"), c = () => {
|
|
709
|
+
let e = s();
|
|
710
|
+
if (e === null || o === void 0) return;
|
|
683
711
|
let t;
|
|
684
712
|
try {
|
|
685
|
-
t = e.getItem(
|
|
713
|
+
t = e.getItem(o.key);
|
|
686
714
|
} catch {
|
|
687
715
|
return;
|
|
688
716
|
}
|
|
@@ -693,160 +721,160 @@ var at = () => {
|
|
|
693
721
|
} catch {
|
|
694
722
|
return;
|
|
695
723
|
}
|
|
696
|
-
return
|
|
697
|
-
},
|
|
698
|
-
let t =
|
|
699
|
-
if (t === null ||
|
|
700
|
-
let n =
|
|
724
|
+
return o.migrate ? o.migrate(n) : n;
|
|
725
|
+
}, l = (e) => {
|
|
726
|
+
let t = s();
|
|
727
|
+
if (t === null || o === void 0) return;
|
|
728
|
+
let n = o.pick ? o.pick(e) : e;
|
|
701
729
|
try {
|
|
702
|
-
t.setItem(
|
|
730
|
+
t.setItem(o.key, JSON.stringify(n));
|
|
703
731
|
} catch {}
|
|
704
|
-
},
|
|
705
|
-
let r = n ??
|
|
732
|
+
}, u = /* @__PURE__ */ new Map(), d = (n) => {
|
|
733
|
+
let r = n ?? qe, i = u.get(r);
|
|
706
734
|
if (i === void 0) {
|
|
707
735
|
let a = n;
|
|
708
|
-
i =
|
|
736
|
+
i = Xe(o !== void 0 && n === void 0 ? () => {
|
|
709
737
|
let e = t();
|
|
710
|
-
return
|
|
738
|
+
return f = e, {
|
|
711
739
|
...e,
|
|
712
|
-
...
|
|
740
|
+
...c() ?? {}
|
|
713
741
|
};
|
|
714
742
|
} : t, (t, n, r) => {
|
|
715
|
-
if (
|
|
716
|
-
let e =
|
|
743
|
+
if (o !== void 0 && a === void 0 && l(n), !K && !it) {
|
|
744
|
+
let e = m(a);
|
|
717
745
|
e.steps.length = e.cursor, e.steps.push({
|
|
718
746
|
prev: t,
|
|
719
747
|
next: n
|
|
720
|
-
}), e.steps.length >
|
|
748
|
+
}), e.steps.length > h && e.steps.shift(), e.cursor = e.steps.length;
|
|
721
749
|
}
|
|
722
|
-
|
|
750
|
+
at({
|
|
723
751
|
store: e,
|
|
724
752
|
...a === void 0 ? {} : { key: a },
|
|
725
753
|
...r === void 0 ? {} : { label: r },
|
|
726
|
-
...
|
|
754
|
+
...K || it ? { isUndo: !0 } : {},
|
|
727
755
|
prev: t,
|
|
728
756
|
next: n,
|
|
729
757
|
at: Date.now()
|
|
730
758
|
});
|
|
731
|
-
}),
|
|
759
|
+
}), u.set(r, i);
|
|
732
760
|
}
|
|
733
761
|
return i;
|
|
734
|
-
},
|
|
735
|
-
let t = e ??
|
|
762
|
+
}, f, p = /* @__PURE__ */ new Map(), m = (e) => {
|
|
763
|
+
let t = e ?? qe, n = p.get(t);
|
|
736
764
|
return n === void 0 && (n = {
|
|
737
765
|
steps: [],
|
|
738
766
|
cursor: 0
|
|
739
|
-
},
|
|
740
|
-
},
|
|
741
|
-
let t =
|
|
742
|
-
t !== void 0 && (clearTimeout(t),
|
|
743
|
-
},
|
|
744
|
-
let t = (
|
|
767
|
+
}, p.set(t, n)), n;
|
|
768
|
+
}, h = 100, _ = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = (e) => {
|
|
769
|
+
let t = y.get(e);
|
|
770
|
+
t !== void 0 && (clearTimeout(t), y.delete(e)), _.set(e, (_.get(e) ?? 0) + 1);
|
|
771
|
+
}, S = (e) => {
|
|
772
|
+
let t = (_.get(e) ?? 1) - 1;
|
|
745
773
|
if (t > 0) {
|
|
746
|
-
|
|
774
|
+
_.set(e, t);
|
|
747
775
|
return;
|
|
748
776
|
}
|
|
749
|
-
|
|
750
|
-
|
|
777
|
+
_.delete(e), y.set(e, setTimeout(() => {
|
|
778
|
+
y.delete(e), (_.get(e) ?? 0) === 0 && u.delete(e);
|
|
751
779
|
}, 0));
|
|
752
780
|
}, w = {
|
|
753
781
|
name: e,
|
|
754
|
-
use: (t,
|
|
755
|
-
let
|
|
756
|
-
|
|
757
|
-
let
|
|
758
|
-
|
|
759
|
-
let
|
|
782
|
+
use: (t, n) => {
|
|
783
|
+
let r = d(n?.key), i = x(t);
|
|
784
|
+
i.current = t;
|
|
785
|
+
let a = x(n?.equals);
|
|
786
|
+
a.current = n?.equals;
|
|
787
|
+
let o = x({
|
|
760
788
|
state: void 0,
|
|
761
789
|
value: void 0,
|
|
762
790
|
has: !1
|
|
763
|
-
}),
|
|
764
|
-
let n =
|
|
791
|
+
}), s = g((t) => {
|
|
792
|
+
let n = o.current;
|
|
765
793
|
if (n.has && Object.is(n.state, t)) return n.value;
|
|
766
|
-
let r =
|
|
767
|
-
process.env.NODE_ENV !== "production" &&
|
|
768
|
-
let
|
|
769
|
-
return
|
|
794
|
+
let r = i.current(t), s = a.current, c = n.has && (s ? s(n.value, r) : Object.is(n.value, r));
|
|
795
|
+
process.env.NODE_ENV !== "production" && s === void 0 && n.has && !c && typeof r == "object" && r && Ue(n.value, r) && Ke(e, `[@voltro/client] ${e}.use(): the selector returns a NEW object each call, so the default identity check never sees it as unchanged and this component re-renders on EVERY store change.\n Pass \`{ equals: shallow }\` (exported from @voltro/client), or select a primitive.`);
|
|
796
|
+
let l = c ? n.value : r;
|
|
797
|
+
return o.current = {
|
|
770
798
|
state: t,
|
|
771
|
-
value:
|
|
799
|
+
value: l,
|
|
772
800
|
has: !0
|
|
773
|
-
},
|
|
774
|
-
}, []),
|
|
775
|
-
let t =
|
|
776
|
-
return
|
|
777
|
-
t(),
|
|
801
|
+
}, l;
|
|
802
|
+
}, []), c = n?.key, l = n?.retain === !0, u = g((e) => {
|
|
803
|
+
let t = r.subscribe(e);
|
|
804
|
+
return c !== void 0 && !l && b(c), () => {
|
|
805
|
+
t(), c !== void 0 && !l && S(c);
|
|
778
806
|
};
|
|
779
807
|
}, [
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
]),
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
]),
|
|
788
|
-
return
|
|
808
|
+
r,
|
|
809
|
+
c,
|
|
810
|
+
l
|
|
811
|
+
]), p = g(() => s(r.get()), [r, s]), m = g(() => s(Ye(e, n?.key, n?.key === void 0 && f !== void 0 ? f : r.get())), [
|
|
812
|
+
r,
|
|
813
|
+
n?.key,
|
|
814
|
+
s
|
|
815
|
+
]), h = C(u, p, m);
|
|
816
|
+
return v(h), h;
|
|
789
817
|
},
|
|
790
|
-
instance:
|
|
791
|
-
get: (e) =>
|
|
818
|
+
instance: d,
|
|
819
|
+
get: (e) => d(e).get(),
|
|
792
820
|
set: (e, t, n) => {
|
|
793
|
-
|
|
821
|
+
d(t).set(e, n);
|
|
794
822
|
},
|
|
795
823
|
batch: (e, t, n) => {
|
|
796
|
-
|
|
824
|
+
d(n).batch(e, t);
|
|
797
825
|
},
|
|
798
826
|
undo: (e) => {
|
|
799
|
-
let t =
|
|
827
|
+
let t = m(e);
|
|
800
828
|
if (t.cursor === 0) return !1;
|
|
801
|
-
--t.cursor,
|
|
829
|
+
--t.cursor, K = !0;
|
|
802
830
|
try {
|
|
803
|
-
|
|
831
|
+
d(e).set(() => t.steps[t.cursor].prev, "undo");
|
|
804
832
|
} finally {
|
|
805
|
-
|
|
833
|
+
K = !1;
|
|
806
834
|
}
|
|
807
835
|
return !0;
|
|
808
836
|
},
|
|
809
837
|
redo: (e) => {
|
|
810
|
-
let t =
|
|
838
|
+
let t = m(e);
|
|
811
839
|
if (t.cursor >= t.steps.length) return !1;
|
|
812
840
|
let n = t.steps[t.cursor];
|
|
813
|
-
t.cursor += 1,
|
|
841
|
+
t.cursor += 1, K = !0;
|
|
814
842
|
try {
|
|
815
|
-
|
|
843
|
+
d(e).set(() => n.next, "redo");
|
|
816
844
|
} finally {
|
|
817
|
-
|
|
845
|
+
K = !1;
|
|
818
846
|
}
|
|
819
847
|
return !0;
|
|
820
848
|
},
|
|
821
|
-
canUndo: (e) =>
|
|
849
|
+
canUndo: (e) => m(e).cursor > 0,
|
|
822
850
|
canRedo: (e) => {
|
|
823
|
-
let t =
|
|
851
|
+
let t = m(e);
|
|
824
852
|
return t.cursor < t.steps.length;
|
|
825
853
|
},
|
|
826
854
|
release: (e) => {
|
|
827
|
-
|
|
855
|
+
u.delete(e), p.delete(e);
|
|
828
856
|
},
|
|
829
|
-
keys: () => [...
|
|
857
|
+
keys: () => [...u.keys()].filter((e) => e !== qe)
|
|
830
858
|
};
|
|
831
|
-
return
|
|
832
|
-
},
|
|
833
|
-
|
|
834
|
-
},
|
|
835
|
-
|
|
836
|
-
},
|
|
837
|
-
let r =
|
|
859
|
+
return q.set(e, w), ot.set(e, r), lt.set(e, i), w;
|
|
860
|
+
}, gt = () => {
|
|
861
|
+
q.clear(), ot.clear(), lt.clear(), Ge.clear();
|
|
862
|
+
}, _t = () => ({ seeds: [] }), vt = (e) => {
|
|
863
|
+
Je = e;
|
|
864
|
+
}, yt = (e, t, n) => {
|
|
865
|
+
let r = Je?.() ?? null;
|
|
838
866
|
if (r === null) throw Error(`seedStore('${e.name}') was called outside a server render. Seeding exists to put a value into the SSR hydration payload; on the client, set the store directly instead. (If this IS server code, the render did not install a seed bag — that is a framework bug.)`);
|
|
839
867
|
r.seeds.push({
|
|
840
868
|
store: e.name,
|
|
841
869
|
...n?.key === void 0 ? {} : { key: n.key },
|
|
842
870
|
value: t
|
|
843
871
|
});
|
|
844
|
-
},
|
|
872
|
+
}, bt = (e) => {
|
|
845
873
|
if (e !== void 0) for (let t of e) {
|
|
846
|
-
let e =
|
|
874
|
+
let e = q.get(t.store);
|
|
847
875
|
e !== void 0 && e.set(t.value, t.key);
|
|
848
876
|
}
|
|
849
|
-
},
|
|
877
|
+
}, J = (e, t) => {
|
|
850
878
|
let n = t.split("."), r = e;
|
|
851
879
|
for (let e = 0; e < n.length; e++) {
|
|
852
880
|
let i = n[e];
|
|
@@ -865,63 +893,63 @@ var at = () => {
|
|
|
865
893
|
}
|
|
866
894
|
if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
|
|
867
895
|
return r;
|
|
868
|
-
},
|
|
896
|
+
}, xt = Object.freeze({
|
|
869
897
|
data: void 0,
|
|
870
898
|
revision: -1,
|
|
871
899
|
emittedAt: void 0,
|
|
872
900
|
error: void 0,
|
|
873
901
|
pendingPatches: 0
|
|
874
|
-
}),
|
|
875
|
-
function
|
|
876
|
-
let
|
|
877
|
-
|
|
878
|
-
let
|
|
879
|
-
|
|
880
|
-
let
|
|
881
|
-
let e =
|
|
902
|
+
}), St = () => xt;
|
|
903
|
+
function Y(e, t, n = {}, r = {}) {
|
|
904
|
+
let i = r.skip === !0, { runtime: a, cache: o, client: s, descriptors: c } = W(e), l = c[t]?.source, u = x(n);
|
|
905
|
+
u.current = n;
|
|
906
|
+
let d = x(s);
|
|
907
|
+
d.current = s;
|
|
908
|
+
let f = b(() => JSON.stringify(Object.entries(n).sort(([e], [t]) => e.localeCompare(t))), [n]), p = b(() => {
|
|
909
|
+
let e = u.current;
|
|
882
910
|
return {
|
|
883
911
|
queryKey: [t, e],
|
|
884
|
-
fetch: () =>
|
|
912
|
+
fetch: () => J(d.current, t)(e)
|
|
885
913
|
};
|
|
886
|
-
}, [t,
|
|
887
|
-
|
|
888
|
-
c,
|
|
889
|
-
p,
|
|
890
|
-
a,
|
|
891
|
-
_
|
|
892
|
-
]), b = n(() => a ? pt : u.peek(v), [
|
|
893
|
-
u,
|
|
914
|
+
}, [t, f]), m = p.queryKey, h = g((e) => i ? () => {} : o.subscribe(p.queryKey, p.fetch, a, e, l === void 0 ? {} : { source: l }).unsubscribe, [
|
|
915
|
+
o,
|
|
894
916
|
a,
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
917
|
+
l,
|
|
918
|
+
i,
|
|
919
|
+
p
|
|
920
|
+
]), _ = g(() => i ? xt : o.peek(m), [
|
|
921
|
+
o,
|
|
922
|
+
i,
|
|
923
|
+
m
|
|
924
|
+
]), v = C(h, _, St), y = v.data !== void 0, S = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), w = {
|
|
925
|
+
revision: v.revision,
|
|
926
|
+
emittedAt: v.emittedAt,
|
|
927
|
+
error: v.error,
|
|
928
|
+
pendingPatches: v.pendingPatches
|
|
901
929
|
};
|
|
902
|
-
if (
|
|
903
|
-
let e = Array.isArray(
|
|
930
|
+
if (r.initialSnapshot !== void 0) {
|
|
931
|
+
let e = Array.isArray(r.initialSnapshot) ? r.initialSnapshot.length === 0 : r.initialSnapshot === null;
|
|
904
932
|
return {
|
|
905
933
|
...w,
|
|
906
|
-
data:
|
|
934
|
+
data: y ? v.data : r.initialSnapshot,
|
|
907
935
|
loading: !1,
|
|
908
|
-
idle:
|
|
909
|
-
isEmpty:
|
|
936
|
+
idle: i,
|
|
937
|
+
isEmpty: y ? S : e,
|
|
910
938
|
failed: !1
|
|
911
939
|
};
|
|
912
940
|
}
|
|
913
|
-
return
|
|
941
|
+
return r.fallback === void 0 ? i ? {
|
|
914
942
|
...w,
|
|
915
943
|
data: void 0,
|
|
916
944
|
loading: !1,
|
|
917
945
|
isEmpty: !1,
|
|
918
946
|
idle: !0,
|
|
919
947
|
failed: !1
|
|
920
|
-
} :
|
|
948
|
+
} : y ? {
|
|
921
949
|
...w,
|
|
922
|
-
data:
|
|
950
|
+
data: v.data,
|
|
923
951
|
loading: !1,
|
|
924
|
-
isEmpty:
|
|
952
|
+
isEmpty: S,
|
|
925
953
|
idle: !1,
|
|
926
954
|
failed: !1
|
|
927
955
|
} : w.error === void 0 ? {
|
|
@@ -941,38 +969,38 @@ function V(e, t, r = {}, i = {}) {
|
|
|
941
969
|
error: w.error
|
|
942
970
|
} : {
|
|
943
971
|
...w,
|
|
944
|
-
data:
|
|
945
|
-
loading: !
|
|
946
|
-
idle:
|
|
947
|
-
isEmpty:
|
|
948
|
-
failed: !
|
|
972
|
+
data: y ? v.data : r.fallback,
|
|
973
|
+
loading: !y && !i,
|
|
974
|
+
idle: i,
|
|
975
|
+
isEmpty: S,
|
|
976
|
+
failed: !y && w.error !== void 0
|
|
949
977
|
};
|
|
950
978
|
}
|
|
951
979
|
//#endregion
|
|
952
980
|
//#region src/runRpc.ts
|
|
953
|
-
var
|
|
981
|
+
var X = async (e, t) => {
|
|
954
982
|
let n = await e.runPromiseExit(t);
|
|
955
|
-
if (
|
|
956
|
-
throw
|
|
957
|
-
},
|
|
958
|
-
|
|
959
|
-
},
|
|
960
|
-
|
|
961
|
-
for (let e of
|
|
983
|
+
if (D.isSuccess(n)) return n.value;
|
|
984
|
+
throw w.squash(n.cause);
|
|
985
|
+
}, Ct = 100, Z = [], wt = /* @__PURE__ */ new Set(), Tt = [], Et = () => {
|
|
986
|
+
Tt = Z.slice();
|
|
987
|
+
}, Dt = () => {
|
|
988
|
+
Et();
|
|
989
|
+
for (let e of wt) try {
|
|
962
990
|
e();
|
|
963
991
|
} catch {}
|
|
964
|
-
},
|
|
992
|
+
}, Ot = (e) => {
|
|
965
993
|
let t = {
|
|
966
994
|
...e,
|
|
967
995
|
status: "pending",
|
|
968
996
|
startedAt: Date.now()
|
|
969
997
|
};
|
|
970
|
-
|
|
971
|
-
},
|
|
972
|
-
let n =
|
|
998
|
+
Z.unshift(t), Z.length > Ct && (Z.length = Ct), Dt();
|
|
999
|
+
}, kt = (e, t) => {
|
|
1000
|
+
let n = Z.findIndex((t) => t.id === e);
|
|
973
1001
|
if (n === -1) return;
|
|
974
|
-
let r =
|
|
975
|
-
|
|
1002
|
+
let r = Z[n], i = Date.now();
|
|
1003
|
+
Z[n] = t.status === "success" ? {
|
|
976
1004
|
...r,
|
|
977
1005
|
status: "success",
|
|
978
1006
|
output: t.output,
|
|
@@ -984,12 +1012,12 @@ var H = async (e, t) => {
|
|
|
984
1012
|
error: t.error,
|
|
985
1013
|
settledAt: i,
|
|
986
1014
|
durationMs: i - r.startedAt
|
|
987
|
-
},
|
|
988
|
-
},
|
|
989
|
-
|
|
990
|
-
}),
|
|
991
|
-
|
|
992
|
-
},
|
|
1015
|
+
}, Dt();
|
|
1016
|
+
}, At = () => Tt, jt = (e) => (wt.add(e), () => {
|
|
1017
|
+
wt.delete(e);
|
|
1018
|
+
}), Mt = () => {
|
|
1019
|
+
Z.length !== 0 && (Z.length = 0, Dt());
|
|
1020
|
+
}, Nt = (e, t) => {
|
|
993
1021
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
994
1022
|
try {
|
|
995
1023
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -999,107 +1027,107 @@ var H = async (e, t) => {
|
|
|
999
1027
|
});
|
|
1000
1028
|
} catch {}
|
|
1001
1029
|
return e;
|
|
1002
|
-
},
|
|
1003
|
-
|
|
1004
|
-
},
|
|
1030
|
+
}, Pt, Ft = (e) => {
|
|
1031
|
+
Pt = e;
|
|
1032
|
+
}, It = () => Pt, Lt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Rt = 0, zt = () => `mut_${++Rt}`, Bt = 0, Vt = () => {
|
|
1005
1033
|
let e = typeof crypto < "u" ? crypto : void 0;
|
|
1006
|
-
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${
|
|
1007
|
-
},
|
|
1034
|
+
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${Bt += 1}`;
|
|
1035
|
+
}, Ht = (e, t) => e.pipe(E.locallyWith(N.currentHeaders, (e) => ne.set(e, "idempotency-key", t))), Ut = (e, t) => ({
|
|
1008
1036
|
update: (n, r) => {
|
|
1009
1037
|
e.update(n, r, t);
|
|
1010
1038
|
},
|
|
1011
1039
|
forTag: (n, r) => e.forTag(n, r, t)
|
|
1012
|
-
}),
|
|
1013
|
-
let { runtime:
|
|
1040
|
+
}), Q = (e, t) => {
|
|
1041
|
+
let { runtime: n, cache: r, client: i, descriptors: a, errorBus: o } = W(e), s = a[t], c = s?.targets;
|
|
1014
1042
|
if (process.env.NODE_ENV !== "production") {
|
|
1015
|
-
let n =
|
|
1043
|
+
let n = s?.kind;
|
|
1016
1044
|
n !== void 0 && n !== "mutation" && console.error(`[@voltro/client] useMutation('${e}', '${t}') targets a ${n}, not a mutation. Use ${n === "action" ? "useAction" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
|
|
1017
1045
|
}
|
|
1018
|
-
let [
|
|
1019
|
-
let
|
|
1020
|
-
|
|
1021
|
-
let t =
|
|
1022
|
-
t !== void 0 &&
|
|
1046
|
+
let [l, u] = S(!1), [d, f] = S(void 0), [p, m] = S(void 0), h = x(null), _ = x(!1), v = g(async (a, s) => {
|
|
1047
|
+
let l = s?.onError !== void 0 || s?.notify?.error !== void 0, d = (e) => {
|
|
1048
|
+
s?.onError?.(e, a);
|
|
1049
|
+
let t = Lt(s?.notify?.error, e, a);
|
|
1050
|
+
t !== void 0 && Pt?.error(t);
|
|
1023
1051
|
};
|
|
1024
|
-
|
|
1025
|
-
let
|
|
1026
|
-
|
|
1027
|
-
id:
|
|
1052
|
+
u(!0), f(void 0);
|
|
1053
|
+
let p = zt(), g = s?.idempotencyKey ?? Vt();
|
|
1054
|
+
Ot({
|
|
1055
|
+
id: p,
|
|
1028
1056
|
apiName: e,
|
|
1029
1057
|
tag: t,
|
|
1030
|
-
input:
|
|
1058
|
+
input: a
|
|
1031
1059
|
});
|
|
1032
|
-
let
|
|
1033
|
-
if (
|
|
1034
|
-
|
|
1060
|
+
let v = h.current, y = _.current;
|
|
1061
|
+
if (v) try {
|
|
1062
|
+
v(Ut(r, p), a);
|
|
1035
1063
|
} catch (e) {
|
|
1036
|
-
if (
|
|
1064
|
+
if (f(e), u(!1), r.revertByMutation(p), kt(p, {
|
|
1037
1065
|
status: "error",
|
|
1038
1066
|
error: e
|
|
1039
|
-
}),
|
|
1067
|
+
}), l) return d(e);
|
|
1040
1068
|
throw e;
|
|
1041
1069
|
}
|
|
1042
|
-
else !
|
|
1043
|
-
let
|
|
1070
|
+
else !y && c && c.length > 0 && r.autoApply(c, a, p);
|
|
1071
|
+
let b;
|
|
1044
1072
|
try {
|
|
1045
|
-
let
|
|
1046
|
-
|
|
1073
|
+
let o = J(i, t), c = E.currentSpan.pipe(E.tap((e) => E.sync(() => {
|
|
1074
|
+
b = e.traceId, I({
|
|
1047
1075
|
traceId: e.traceId,
|
|
1048
1076
|
spanId: e.spanId,
|
|
1049
1077
|
source: "mutation",
|
|
1050
1078
|
tag: t
|
|
1051
1079
|
});
|
|
1052
|
-
})),
|
|
1080
|
+
})), E.catchAll(() => E.void), E.zipRight(Ht(o(a), g))).pipe(E.withSpan(`client.mutation.${t}`, { attributes: {
|
|
1053
1081
|
"voltro.api": e,
|
|
1054
|
-
"voltro.mutationId":
|
|
1082
|
+
"voltro.mutationId": p,
|
|
1055
1083
|
"rpc.tag": t
|
|
1056
|
-
} })),
|
|
1057
|
-
|
|
1084
|
+
} })), l = await X(n, c);
|
|
1085
|
+
m(l), kt(p, {
|
|
1058
1086
|
status: "success",
|
|
1059
|
-
output:
|
|
1060
|
-
}),
|
|
1061
|
-
let
|
|
1062
|
-
return
|
|
1087
|
+
output: l
|
|
1088
|
+
}), r.confirmByMutation(p), s?.onSuccess?.(l, a);
|
|
1089
|
+
let u = Lt(s?.notify?.success, l, a);
|
|
1090
|
+
return u !== void 0 && Pt?.success(u), l;
|
|
1063
1091
|
} catch (e) {
|
|
1064
|
-
let n =
|
|
1065
|
-
if (
|
|
1092
|
+
let n = Nt(e, b);
|
|
1093
|
+
if (f(n), kt(p, {
|
|
1066
1094
|
status: "error",
|
|
1067
1095
|
error: n
|
|
1068
|
-
}),
|
|
1096
|
+
}), r.revertByMutation(p), o.emit({
|
|
1069
1097
|
source: "mutation",
|
|
1070
1098
|
tag: t,
|
|
1071
1099
|
error: n,
|
|
1072
|
-
...
|
|
1073
|
-
}),
|
|
1100
|
+
...b === void 0 ? {} : { traceId: b }
|
|
1101
|
+
}), l) return d(n);
|
|
1074
1102
|
throw n;
|
|
1075
1103
|
} finally {
|
|
1076
|
-
|
|
1104
|
+
u(!1);
|
|
1077
1105
|
}
|
|
1078
1106
|
}, [
|
|
1107
|
+
n,
|
|
1079
1108
|
r,
|
|
1080
1109
|
i,
|
|
1081
|
-
a,
|
|
1082
1110
|
e,
|
|
1083
1111
|
t,
|
|
1084
|
-
|
|
1112
|
+
c
|
|
1085
1113
|
]);
|
|
1086
|
-
return
|
|
1114
|
+
return b(() => {
|
|
1087
1115
|
let e = {
|
|
1088
|
-
mutate:
|
|
1089
|
-
pending:
|
|
1090
|
-
error:
|
|
1091
|
-
data:
|
|
1092
|
-
withOptimistic: (t) => (
|
|
1093
|
-
withoutOptimistic: () => (
|
|
1116
|
+
mutate: v,
|
|
1117
|
+
pending: l,
|
|
1118
|
+
error: d,
|
|
1119
|
+
data: p,
|
|
1120
|
+
withOptimistic: (t) => (h.current = t, e),
|
|
1121
|
+
withoutOptimistic: () => (_.current = !0, e)
|
|
1094
1122
|
};
|
|
1095
1123
|
return e;
|
|
1096
1124
|
}, [
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1125
|
+
v,
|
|
1126
|
+
l,
|
|
1127
|
+
d,
|
|
1128
|
+
p
|
|
1101
1129
|
]);
|
|
1102
|
-
},
|
|
1130
|
+
}, Wt = (e, t) => {
|
|
1103
1131
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
1104
1132
|
try {
|
|
1105
1133
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -1109,228 +1137,570 @@ var H = async (e, t) => {
|
|
|
1109
1137
|
});
|
|
1110
1138
|
} catch {}
|
|
1111
1139
|
return e;
|
|
1112
|
-
},
|
|
1113
|
-
if (!
|
|
1114
|
-
let r = Date.now() +
|
|
1115
|
-
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !
|
|
1116
|
-
throw Error(`Voltro: the api "${t}" did not resolve within ${
|
|
1117
|
-
},
|
|
1118
|
-
let
|
|
1119
|
-
if (
|
|
1120
|
-
let n =
|
|
1140
|
+
}, Gt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Kt = 0, qt = () => `act_${++Kt}`, Jt = 15e3, Yt = async (e, t, n) => {
|
|
1141
|
+
if (!ke(e.current)) return e.current;
|
|
1142
|
+
let r = Date.now() + Jt;
|
|
1143
|
+
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !ke(e.current)) return e.current;
|
|
1144
|
+
throw Error(`Voltro: the api "${t}" did not resolve within ${Jt}ms, so ${n} was never sent. This is not the boot window — that is waited out. Check that "${t}" is a configured api name and that its client could connect.`);
|
|
1145
|
+
}, Xt = (e, t) => {
|
|
1146
|
+
let n = W(e), { descriptors: r, errorBus: i } = n, a = x(n);
|
|
1147
|
+
if (a.current = n, process.env.NODE_ENV !== "production") {
|
|
1148
|
+
let n = r[t]?.kind;
|
|
1121
1149
|
n !== void 0 && n !== "action" && console.error(`[@voltro/client] useAction('${e}', '${t}') targets a ${n}, not an action. Use ${n === "mutation" ? "useMutation" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
|
|
1122
1150
|
}
|
|
1123
|
-
let [
|
|
1124
|
-
let
|
|
1125
|
-
|
|
1126
|
-
let
|
|
1127
|
-
|
|
1128
|
-
id:
|
|
1151
|
+
let [o, s] = S(!1), [c, l] = S(void 0), [u, d] = S(void 0), f = g(async (n, r) => {
|
|
1152
|
+
let o = r?.onError !== void 0 || r?.notify?.error !== void 0;
|
|
1153
|
+
s(!0), l(void 0);
|
|
1154
|
+
let c = qt(), u = r?.idempotencyKey ?? Vt();
|
|
1155
|
+
Ot({
|
|
1156
|
+
id: c,
|
|
1129
1157
|
apiName: e,
|
|
1130
1158
|
tag: t,
|
|
1131
1159
|
input: n
|
|
1132
1160
|
});
|
|
1133
|
-
let
|
|
1161
|
+
let f;
|
|
1134
1162
|
try {
|
|
1135
|
-
let { runtime: i, client:
|
|
1136
|
-
|
|
1163
|
+
let { runtime: i, client: o } = await Yt(a, e, t), s = J(o, t), l = await X(i, E.currentSpan.pipe(E.tap((e) => E.sync(() => {
|
|
1164
|
+
f = e.traceId, I({
|
|
1137
1165
|
traceId: e.traceId,
|
|
1138
1166
|
spanId: e.spanId,
|
|
1139
1167
|
source: "action",
|
|
1140
1168
|
tag: t
|
|
1141
1169
|
});
|
|
1142
|
-
})),
|
|
1170
|
+
})), E.catchAll(() => E.void), E.zipRight(Ht(s(n), u))).pipe(E.withSpan(`client.action.${t}`, { attributes: {
|
|
1143
1171
|
"voltro.api": e,
|
|
1144
|
-
"voltro.actionId":
|
|
1172
|
+
"voltro.actionId": c,
|
|
1145
1173
|
"rpc.tag": t
|
|
1146
1174
|
} })));
|
|
1147
|
-
|
|
1175
|
+
d(l), kt(c, {
|
|
1148
1176
|
status: "success",
|
|
1149
|
-
output:
|
|
1150
|
-
}), r?.onSuccess?.(
|
|
1151
|
-
let
|
|
1152
|
-
return
|
|
1177
|
+
output: l
|
|
1178
|
+
}), r?.onSuccess?.(l, n);
|
|
1179
|
+
let p = Gt(r?.notify?.success, l, n);
|
|
1180
|
+
return p !== void 0 && It()?.success(p), l;
|
|
1153
1181
|
} catch (e) {
|
|
1154
|
-
let
|
|
1155
|
-
if (
|
|
1182
|
+
let a = Wt(e, f);
|
|
1183
|
+
if (l(a), kt(c, {
|
|
1156
1184
|
status: "error",
|
|
1157
|
-
error:
|
|
1158
|
-
}),
|
|
1185
|
+
error: a
|
|
1186
|
+
}), i.emit({
|
|
1159
1187
|
source: "action",
|
|
1160
1188
|
tag: t,
|
|
1161
|
-
error:
|
|
1162
|
-
...
|
|
1163
|
-
}),
|
|
1164
|
-
r?.onError?.(
|
|
1165
|
-
let e =
|
|
1166
|
-
e !== void 0 &&
|
|
1189
|
+
error: a,
|
|
1190
|
+
...f === void 0 ? {} : { traceId: f }
|
|
1191
|
+
}), o) {
|
|
1192
|
+
r?.onError?.(a, n);
|
|
1193
|
+
let e = Gt(r?.notify?.error, a, n);
|
|
1194
|
+
e !== void 0 && It()?.error(e);
|
|
1167
1195
|
return;
|
|
1168
1196
|
}
|
|
1169
|
-
throw
|
|
1197
|
+
throw a;
|
|
1170
1198
|
} finally {
|
|
1171
|
-
|
|
1199
|
+
s(!1);
|
|
1172
1200
|
}
|
|
1173
1201
|
}, [
|
|
1174
1202
|
e,
|
|
1175
1203
|
t,
|
|
1176
|
-
|
|
1204
|
+
i
|
|
1177
1205
|
]);
|
|
1178
|
-
return
|
|
1179
|
-
run:
|
|
1180
|
-
pending:
|
|
1181
|
-
error:
|
|
1182
|
-
lastResult:
|
|
1206
|
+
return b(() => ({
|
|
1207
|
+
run: f,
|
|
1208
|
+
pending: o,
|
|
1209
|
+
error: c,
|
|
1210
|
+
lastResult: u
|
|
1183
1211
|
}), [
|
|
1184
|
-
_,
|
|
1185
|
-
u,
|
|
1186
1212
|
f,
|
|
1187
|
-
|
|
1213
|
+
o,
|
|
1214
|
+
c,
|
|
1215
|
+
u
|
|
1188
1216
|
]);
|
|
1189
|
-
},
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1217
|
+
}, Zt = m(void 0), Qt = (e) => h(Zt.Provider, { value: e.messages }, e.children), $t = () => _(Zt), en = Symbol.for("voltro.client.formEngine"), tn = (e, t) => {
|
|
1218
|
+
let n = e;
|
|
1219
|
+
for (let e of t.split(".")) {
|
|
1220
|
+
if (typeof n != "object" || !n) return;
|
|
1221
|
+
n = n[e];
|
|
1222
|
+
}
|
|
1223
|
+
return n;
|
|
1224
|
+
}, nn = (e, t, n) => `vf-${e}-${t}-${n}`.replace(/[^a-zA-Z0-9_-]/g, "-"), rn = {
|
|
1225
|
+
isTouched: !1,
|
|
1226
|
+
isBlurred: !1,
|
|
1227
|
+
isDirty: !1,
|
|
1228
|
+
isPristine: !0,
|
|
1229
|
+
isDefaultValue: !0,
|
|
1230
|
+
isValidating: !1,
|
|
1231
|
+
errorMap: {},
|
|
1232
|
+
errorSourceMap: {}
|
|
1233
|
+
}, an = (e, t) => {
|
|
1234
|
+
let n = e.find((e) => e.name === t);
|
|
1235
|
+
if (n !== void 0) return n;
|
|
1236
|
+
let r = /^(.+?)\.\d+\.(.+)$/.exec(t);
|
|
1237
|
+
if (r !== null) return e.find((e) => e.name === r[1] && e.widget === "array")?.item?.find((e) => e.name === r[2]);
|
|
1238
|
+
}, on = (e, t, n) => {
|
|
1239
|
+
let r = W(e), i = Q(e, t), s = n.schema ?? r.descriptors[t]?.input;
|
|
1240
|
+
process.env.NODE_ENV !== "production" && s === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
|
|
1241
|
+
let c = b(() => s ? o(s) : [], [s]), l = $t(), u = n.messages ?? l, d = b(() => ({
|
|
1242
|
+
...n.locale === void 0 ? {} : { locale: n.locale },
|
|
1243
|
+
...u === void 0 ? {} : { messages: u }
|
|
1244
|
+
}), [n.locale, u]), f = x(n.asyncFields);
|
|
1245
|
+
f.current = n.asyncFields;
|
|
1246
|
+
let m = x(n);
|
|
1247
|
+
m.current = n;
|
|
1248
|
+
let h = x(i);
|
|
1249
|
+
h.current = i;
|
|
1250
|
+
let _ = x(d);
|
|
1251
|
+
_.current = d;
|
|
1252
|
+
let v = x(s);
|
|
1253
|
+
v.current = s;
|
|
1254
|
+
let [C, w] = S(() => n.flash?.errors ?? {}), [T, ee] = S(n.flash?.formError), E = x(void 0), D = g((e) => {
|
|
1255
|
+
let t = v.current;
|
|
1256
|
+
if (t === void 0) return [];
|
|
1257
|
+
let n = m.current, r = e;
|
|
1258
|
+
if (n.toInput !== void 0) try {
|
|
1259
|
+
r = n.toInput(e);
|
|
1260
|
+
} catch {
|
|
1261
|
+
r = e;
|
|
1262
|
+
}
|
|
1263
|
+
let i = p(t, r, _.current).issues;
|
|
1264
|
+
if (n.toInput === void 0) return i;
|
|
1265
|
+
let a = n.errorPath ?? {};
|
|
1266
|
+
return i.map((t) => {
|
|
1267
|
+
let n = a[t.path];
|
|
1268
|
+
return n === void 0 ? (tn(e, t.path) !== void 0 || t.path.includes("."), t) : {
|
|
1269
|
+
...t,
|
|
1270
|
+
path: n
|
|
1271
|
+
};
|
|
1272
|
+
});
|
|
1273
|
+
}, []), O = g((e) => {
|
|
1274
|
+
let t = { ...e ?? {} }, n = v.current;
|
|
1275
|
+
if (n !== void 0) for (let e of o(n)) (e.widget === "checkbox" || e.widget === "switch") && !(e.name in t) && (t[e.name] = !1);
|
|
1276
|
+
return t;
|
|
1277
|
+
}, []), k = x(() => Promise.resolve()), te = x(void 0);
|
|
1278
|
+
if (te.current === void 0) {
|
|
1279
|
+
let e = n.flash, t = e === void 0 ? O(n.defaults) : {
|
|
1280
|
+
...O(n.defaults),
|
|
1281
|
+
...e.values
|
|
1282
|
+
};
|
|
1283
|
+
te.current = new oe({
|
|
1284
|
+
onSubmit: ({ value: e }) => k.current(e),
|
|
1285
|
+
defaultValues: t,
|
|
1286
|
+
validators: { onChange: ({ value: e }) => {
|
|
1287
|
+
let t = D(e);
|
|
1288
|
+
if (t.length === 0) return;
|
|
1289
|
+
let n = {};
|
|
1290
|
+
for (let e of t) e.path !== "" && !(e.path in n) && (n[e.path] = a(e, _.current));
|
|
1291
|
+
return { fields: n };
|
|
1292
|
+
} }
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
let A = te.current, j = A;
|
|
1296
|
+
y(() => j.mount(), [j]);
|
|
1297
|
+
let M = n.subscribe ?? "all";
|
|
1298
|
+
se(A.store, (e) => M === "all" ? e : `${e.submissionAttempts}|${String(e.isSubmitting)}|${String(e.isDirty)}|${String(e.isTouched)}`);
|
|
1299
|
+
let ne = A.store.state.values, N = A.store.state, P = b(() => D(ne), [D, ne]), F = n.isLoading === !0, ie = n.validate, ae = ie?.onChange ?? "afterTouched", ce = ie?.onBlur ?? !0, le = N.submissionAttempts, I = N.fieldMetaBase ?? {}, ue = g((e) => {
|
|
1300
|
+
if (F) return !1;
|
|
1301
|
+
if (le > 0 || ae === "always") return !0;
|
|
1302
|
+
if (ae === "never") return !1;
|
|
1303
|
+
let t = I[e];
|
|
1304
|
+
return t === void 0 ? !1 : ce ? t.isBlurred === !0 : t.isTouched === !0;
|
|
1305
|
+
}, [
|
|
1306
|
+
le,
|
|
1307
|
+
I,
|
|
1308
|
+
F,
|
|
1309
|
+
ae,
|
|
1310
|
+
ce
|
|
1311
|
+
]), L = g((e) => {
|
|
1312
|
+
let t = C[e];
|
|
1313
|
+
if (t !== void 0) return t;
|
|
1314
|
+
let n = f.current?.[e];
|
|
1315
|
+
if (n !== void 0 && n.status === "invalid") return n.message ?? a({
|
|
1316
|
+
id: "validation.invalid",
|
|
1317
|
+
fallback: "Invalid value"
|
|
1318
|
+
}, _.current);
|
|
1319
|
+
if (!ue(e)) return;
|
|
1320
|
+
let r = P.find((t) => t.path === e);
|
|
1321
|
+
return r === void 0 ? void 0 : a(r, _.current);
|
|
1322
|
+
}, [
|
|
1323
|
+
C,
|
|
1324
|
+
ue,
|
|
1325
|
+
P
|
|
1326
|
+
]), de = b(() => {
|
|
1327
|
+
let e = {}, t = /* @__PURE__ */ new Set([...P.map((e) => e.path).filter((e) => e !== ""), ...Object.keys(C)]);
|
|
1328
|
+
for (let [e, n] of Object.entries(f.current ?? {})) n.status === "invalid" && t.add(e);
|
|
1329
|
+
for (let n of t) {
|
|
1330
|
+
let t = L(n);
|
|
1331
|
+
t !== void 0 && (e[n] = t);
|
|
1332
|
+
}
|
|
1333
|
+
return e;
|
|
1334
|
+
}, [
|
|
1335
|
+
P,
|
|
1336
|
+
C,
|
|
1337
|
+
L
|
|
1338
|
+
]), fe = g((e) => {
|
|
1339
|
+
w((t) => {
|
|
1340
|
+
if (!(e in t)) return t;
|
|
1341
|
+
let n = { ...t };
|
|
1342
|
+
return delete n[e], n;
|
|
1343
|
+
});
|
|
1344
|
+
}, []), R = g((n) => {
|
|
1345
|
+
let r = an(c, n), i = j.getFieldMeta(n), a = L(n), o = nn(e, t, n), s = f.current?.[n], l = [a === void 0 ? void 0 : `${o}-error`, r?.description === void 0 ? void 0 : `${o}-help`].filter((e) => e !== void 0);
|
|
1346
|
+
return {
|
|
1347
|
+
value: j.getFieldValue(n),
|
|
1348
|
+
setValue: (e) => {
|
|
1349
|
+
fe(n), j.setFieldValue(n, e);
|
|
1350
|
+
},
|
|
1351
|
+
onBlur: () => {
|
|
1352
|
+
j.setFieldMeta(n, (e) => ({
|
|
1353
|
+
...rn,
|
|
1354
|
+
...e ?? {},
|
|
1355
|
+
isTouched: !0,
|
|
1356
|
+
isBlurred: !0
|
|
1357
|
+
}));
|
|
1358
|
+
},
|
|
1359
|
+
error: a,
|
|
1360
|
+
serverError: C[n],
|
|
1361
|
+
touched: i?.isTouched === !0,
|
|
1362
|
+
blurred: i?.isBlurred === !0,
|
|
1363
|
+
dirty: i?.isDirty === !0,
|
|
1364
|
+
required: r?.required === !0,
|
|
1365
|
+
label: r?.label ?? n,
|
|
1366
|
+
widget: r?.widget ?? "text",
|
|
1367
|
+
options: r?.options,
|
|
1368
|
+
description: r?.description,
|
|
1369
|
+
asyncStatus: s?.status ?? "idle",
|
|
1370
|
+
a11y: {
|
|
1371
|
+
id: o,
|
|
1372
|
+
"aria-invalid": a !== void 0 || void 0,
|
|
1373
|
+
"aria-required": r?.required === !0 || void 0,
|
|
1374
|
+
"aria-describedby": l.length > 0 ? l.join(" ") : void 0
|
|
1375
|
+
}
|
|
1376
|
+
};
|
|
1377
|
+
}, [
|
|
1378
|
+
e,
|
|
1379
|
+
fe,
|
|
1380
|
+
j,
|
|
1381
|
+
c,
|
|
1382
|
+
t,
|
|
1383
|
+
C,
|
|
1384
|
+
L
|
|
1385
|
+
]), pe = g((e) => ({
|
|
1386
|
+
items: j.getFieldValue(e) ?? [],
|
|
1387
|
+
push: (t) => {
|
|
1388
|
+
j.pushFieldValue(e, t);
|
|
1389
|
+
},
|
|
1390
|
+
insert: (t, n) => {
|
|
1391
|
+
j.insertFieldValue(e, t, n);
|
|
1392
|
+
},
|
|
1393
|
+
remove: (t) => {
|
|
1394
|
+
j.removeFieldValue(e, t);
|
|
1395
|
+
},
|
|
1396
|
+
move: (t, n) => {
|
|
1397
|
+
j.moveFieldValues(e, t, n);
|
|
1398
|
+
},
|
|
1399
|
+
swap: (t, n) => {
|
|
1400
|
+
j.swapFieldValues(e, t, n);
|
|
1401
|
+
},
|
|
1402
|
+
field: (t, n) => R(`${e}.${t}.${n}`)
|
|
1403
|
+
}), [j, R]), me = g((e) => c.filter((t) => t.section === e), [c]), z = g((e, t) => {
|
|
1404
|
+
fe(e), j.setFieldValue(e, t);
|
|
1405
|
+
}, [fe, j]), he = g((e) => {
|
|
1406
|
+
for (let [t, n] of Object.entries(e)) j.setFieldValue(t, n);
|
|
1407
|
+
}, [j]), ge = g((e) => {
|
|
1408
|
+
w({}), ee(void 0), E.current = void 0, e === void 0 ? j.reset() : j.reset(O(e));
|
|
1409
|
+
}, [j, O]), _e = n.asyncTimeoutMs ?? 5e3, ve = g(async () => {
|
|
1410
|
+
let e = Date.now();
|
|
1411
|
+
for (;;) {
|
|
1412
|
+
let t = f.current;
|
|
1413
|
+
if (t === void 0) return;
|
|
1414
|
+
let n = Object.entries(t), r = n.filter(([, e]) => e.status === "checking");
|
|
1415
|
+
if (r.length === 0) {
|
|
1416
|
+
let e = n.filter(([, e]) => e.status === "invalid");
|
|
1417
|
+
return e.length === 0 ? void 0 : Object.fromEntries(e.map(([e, t]) => [e, t.message ?? a({
|
|
1418
|
+
id: "validation.invalid",
|
|
1419
|
+
fallback: "Invalid value"
|
|
1420
|
+
}, _.current)]));
|
|
1421
|
+
}
|
|
1422
|
+
if (Date.now() - e > _e) return Object.fromEntries(r.map(([e]) => [e, a({
|
|
1423
|
+
id: "validation.checking",
|
|
1424
|
+
fallback: "Still checking…"
|
|
1425
|
+
}, _.current)]));
|
|
1426
|
+
await new Promise((e) => setTimeout(e, 50));
|
|
1427
|
+
}
|
|
1428
|
+
}, [_e]), ye = g(() => {
|
|
1429
|
+
let n = globalThis.document;
|
|
1430
|
+
if (n?.getElementById === void 0) return;
|
|
1431
|
+
let r = [...c.map((e) => e.name), ...Object.keys(C).filter((e) => !c.some((t) => t.name === e))];
|
|
1432
|
+
for (let i of r) if (L(i) !== void 0) {
|
|
1433
|
+
n.getElementById(nn(e, t, i))?.focus?.();
|
|
1434
|
+
return;
|
|
1435
|
+
}
|
|
1436
|
+
}, [
|
|
1437
|
+
e,
|
|
1438
|
+
c,
|
|
1439
|
+
t,
|
|
1440
|
+
C,
|
|
1441
|
+
L
|
|
1442
|
+
]), B = x(ye);
|
|
1443
|
+
B.current = ye;
|
|
1444
|
+
let be = g(async () => {
|
|
1445
|
+
ee(void 0), w({}), E.current = void 0;
|
|
1446
|
+
let e, t = !1;
|
|
1447
|
+
if (await j.handleSubmit().catch((n) => {
|
|
1448
|
+
t = !0, e = n;
|
|
1449
|
+
}), t) throw e;
|
|
1450
|
+
return E.current === void 0 && queueMicrotask(() => {
|
|
1451
|
+
B.current();
|
|
1452
|
+
}), E.current;
|
|
1453
|
+
}, [j]);
|
|
1454
|
+
k.current = (async (e) => {
|
|
1455
|
+
let t = m.current, n = e, r = n;
|
|
1456
|
+
if (t.toInput !== void 0) try {
|
|
1457
|
+
r = t.toInput(n);
|
|
1458
|
+
} catch (e) {
|
|
1459
|
+
ee(e instanceof Error ? e.message : String(e));
|
|
1460
|
+
return;
|
|
1461
|
+
}
|
|
1462
|
+
if (D(n).length > 0) {
|
|
1463
|
+
queueMicrotask(() => {
|
|
1464
|
+
B.current();
|
|
1465
|
+
});
|
|
1466
|
+
return;
|
|
1467
|
+
}
|
|
1468
|
+
let i = await ve();
|
|
1469
|
+
if (i !== void 0) {
|
|
1470
|
+
w((e) => ({
|
|
1471
|
+
...e,
|
|
1472
|
+
...i
|
|
1473
|
+
})), queueMicrotask(() => {
|
|
1474
|
+
B.current();
|
|
1475
|
+
});
|
|
1476
|
+
return;
|
|
1477
|
+
}
|
|
1478
|
+
let o = (e) => h.current.mutate(e);
|
|
1479
|
+
try {
|
|
1480
|
+
let e = t.onSubmit === void 0 ? await o(r) : await t.onSubmit({
|
|
1481
|
+
input: r,
|
|
1482
|
+
values: n,
|
|
1483
|
+
mutate: o
|
|
1484
|
+
});
|
|
1485
|
+
E.current = e, t.onSuccess?.(e);
|
|
1486
|
+
} catch (e) {
|
|
1487
|
+
let t = re(e);
|
|
1488
|
+
if (t.length === 0) throw e;
|
|
1489
|
+
let n = {};
|
|
1490
|
+
for (let e of t) e.field in n || (n[e.field] = a({
|
|
1491
|
+
id: e.message,
|
|
1492
|
+
...e.params === void 0 ? {} : { params: e.params },
|
|
1493
|
+
fallback: e.message
|
|
1494
|
+
}, _.current));
|
|
1495
|
+
w((e) => ({
|
|
1496
|
+
...e,
|
|
1497
|
+
...n
|
|
1498
|
+
})), queueMicrotask(() => {
|
|
1499
|
+
B.current();
|
|
1500
|
+
});
|
|
1501
|
+
}
|
|
1502
|
+
});
|
|
1503
|
+
let V = P.length === 0, xe = Object.values(f.current ?? {}).some((e) => e.status === "checking"), Se = i.error !== void 0 && re(i.error).length > 0 ? void 0 : i.error, Ce = Object.keys(de).length, we = (() => {
|
|
1504
|
+
for (let e of c) if (de[e.name] !== void 0) return e.name;
|
|
1505
|
+
let e = Object.keys(de);
|
|
1506
|
+
return e.length > 0 ? e[0] : void 0;
|
|
1507
|
+
})(), Te = {
|
|
1508
|
+
isDirty: !F && N.isDirty,
|
|
1509
|
+
isPristine: N.isPristine,
|
|
1510
|
+
isTouched: N.isTouched,
|
|
1511
|
+
isValid: V,
|
|
1512
|
+
isValidating: xe,
|
|
1513
|
+
canSubmit: V && !xe && !N.isSubmitting && !F,
|
|
1514
|
+
isSubmitting: N.isSubmitting,
|
|
1515
|
+
isSubmitted: N.isSubmitted,
|
|
1516
|
+
isSubmitSuccessful: N.isSubmitSuccessful && E.current !== void 0,
|
|
1517
|
+
submissionAttempts: N.submissionAttempts,
|
|
1518
|
+
errorCount: Ce,
|
|
1519
|
+
firstInvalidPath: we,
|
|
1520
|
+
pending: i.pending,
|
|
1521
|
+
isLoading: F,
|
|
1522
|
+
submitError: Se,
|
|
1523
|
+
data: i.data
|
|
1524
|
+
}, H = {
|
|
1525
|
+
fields: c,
|
|
1526
|
+
values: ne,
|
|
1527
|
+
errors: de,
|
|
1528
|
+
issues: P,
|
|
1529
|
+
isValid: V,
|
|
1530
|
+
pending: i.pending,
|
|
1531
|
+
submitError: Se,
|
|
1532
|
+
formError: T,
|
|
1533
|
+
data: i.data,
|
|
1534
|
+
setValue: z,
|
|
1535
|
+
setValues: he,
|
|
1536
|
+
reset: ge,
|
|
1537
|
+
submit: be,
|
|
1538
|
+
field: R,
|
|
1539
|
+
array: pe,
|
|
1540
|
+
section: me,
|
|
1541
|
+
state: Te,
|
|
1542
|
+
focusFirstInvalid: ye
|
|
1543
|
+
};
|
|
1544
|
+
return Object.defineProperty(H, en, {
|
|
1545
|
+
value: {
|
|
1546
|
+
store: A.store,
|
|
1547
|
+
field: R
|
|
1548
|
+
},
|
|
1549
|
+
enumerable: !1
|
|
1550
|
+
}), H;
|
|
1551
|
+
}, sn = (e, t) => {
|
|
1552
|
+
let n = e[en];
|
|
1553
|
+
if (n === void 0) throw Error("useFormField: not a useFormBinding result");
|
|
1554
|
+
return se(n.store, (e) => {
|
|
1555
|
+
let n = e.fieldMetaBase[t];
|
|
1556
|
+
return `${JSON.stringify(tn(e.values, t))}|${n === void 0 ? "" : `${String(n.isTouched)}${String(n.isBlurred)}${JSON.stringify(n.errorMap)}`}|${e.submissionAttempts}`;
|
|
1557
|
+
}), n.field(t);
|
|
1558
|
+
}, cn = Y, ln = (e) => ({
|
|
1559
|
+
useSubscription: (t, n, r) => cn(e, t, n, r),
|
|
1560
|
+
useMutation: (t) => Q(e, t),
|
|
1561
|
+
useAction: (t) => Xt(e, t),
|
|
1562
|
+
useFormBinding: (t, n) => on(e, t, n ?? {})
|
|
1563
|
+
}), un = () => ({ seeds: [] }), dn = null, fn = (e) => {
|
|
1564
|
+
dn = e;
|
|
1565
|
+
}, pn = /* @__PURE__ */ new Map(), mn = (e, t) => `${e}\u0000${t}`, hn = (e, t, n, r) => {
|
|
1566
|
+
let i = dn?.() ?? null;
|
|
1197
1567
|
if (i === null) throw Error(`seedPreloadedSubscription('${e}', '${t}') was called outside a server render. Preload seeds exist to put a subscription's first value into the SSR hydration payload; on the client the live subscription already provides it. (If this IS server code, the render did not install a seed bag — that is a framework bug.)`);
|
|
1198
1568
|
i.seeds.push({
|
|
1199
1569
|
api: e,
|
|
1200
|
-
key:
|
|
1570
|
+
key: L([t, n]),
|
|
1201
1571
|
value: r
|
|
1202
1572
|
});
|
|
1203
|
-
},
|
|
1204
|
-
let r =
|
|
1573
|
+
}, gn = (e, t, n) => {
|
|
1574
|
+
let r = dn?.() ?? null;
|
|
1205
1575
|
r !== null && r.seeds.push({
|
|
1206
1576
|
api: e,
|
|
1207
|
-
key:
|
|
1577
|
+
key: L([t, n]),
|
|
1208
1578
|
value: void 0,
|
|
1209
1579
|
failed: !0
|
|
1210
1580
|
});
|
|
1211
|
-
},
|
|
1212
|
-
if (e !== void 0) for (let t of e)
|
|
1581
|
+
}, _n = (e) => {
|
|
1582
|
+
if (e !== void 0) for (let t of e) pn.set(mn(t.api, t.key), {
|
|
1213
1583
|
value: t.value,
|
|
1214
1584
|
failed: t.failed === !0
|
|
1215
1585
|
});
|
|
1216
|
-
},
|
|
1217
|
-
let r =
|
|
1586
|
+
}, vn = (e, t, n) => {
|
|
1587
|
+
let r = L([t, n]), i = dn?.() ?? null;
|
|
1218
1588
|
if (i !== null) {
|
|
1219
1589
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
|
|
1220
1590
|
return;
|
|
1221
1591
|
}
|
|
1222
|
-
let a =
|
|
1592
|
+
let a = pn.get(mn(e, r));
|
|
1223
1593
|
return a === void 0 || a.failed ? void 0 : a.value;
|
|
1224
|
-
},
|
|
1225
|
-
let r =
|
|
1594
|
+
}, yn = (e, t, n) => {
|
|
1595
|
+
let r = L([t, n]), i = dn?.() ?? null;
|
|
1226
1596
|
if (i !== null) {
|
|
1227
1597
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
|
|
1228
1598
|
return "absent";
|
|
1229
1599
|
}
|
|
1230
|
-
let a =
|
|
1600
|
+
let a = pn.get(mn(e, r));
|
|
1231
1601
|
return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
|
|
1232
|
-
},
|
|
1233
|
-
|
|
1602
|
+
}, bn = () => {
|
|
1603
|
+
pn.clear();
|
|
1234
1604
|
};
|
|
1235
1605
|
//#endregion
|
|
1236
1606
|
//#region src/usePreloadedSubscription.ts
|
|
1237
|
-
function
|
|
1238
|
-
let i =
|
|
1607
|
+
function xn(e, t, n = {}, r = {}) {
|
|
1608
|
+
let i = vn(e, t, n), a = Y(e, t, n, i === void 0 ? r : {
|
|
1239
1609
|
...r,
|
|
1240
1610
|
initialSnapshot: i
|
|
1241
1611
|
});
|
|
1242
|
-
return
|
|
1612
|
+
return yn(e, t, n) === "failed" ? {
|
|
1243
1613
|
...a,
|
|
1244
1614
|
preloadFailed: !0
|
|
1245
1615
|
} : a;
|
|
1246
1616
|
}
|
|
1247
1617
|
//#endregion
|
|
1248
1618
|
//#region src/useEvent.ts
|
|
1249
|
-
var
|
|
1619
|
+
var Sn = {
|
|
1250
1620
|
status: "idle",
|
|
1251
1621
|
missed: 0,
|
|
1252
1622
|
lastMiss: void 0
|
|
1253
|
-
},
|
|
1623
|
+
}, Cn = class {
|
|
1254
1624
|
_tag = "EventStreamClosed";
|
|
1255
1625
|
};
|
|
1256
|
-
function
|
|
1257
|
-
let { skip:
|
|
1258
|
-
|
|
1259
|
-
let
|
|
1260
|
-
|
|
1261
|
-
let
|
|
1262
|
-
|
|
1263
|
-
let
|
|
1264
|
-
|
|
1265
|
-
let
|
|
1266
|
-
|
|
1267
|
-
let
|
|
1268
|
-
|
|
1269
|
-
let
|
|
1270
|
-
e <= 0 || (
|
|
1626
|
+
function wn(e, t, n, r = {}) {
|
|
1627
|
+
let { skip: i = !1, apiName: a = "app", onMissed: o } = r, s = W(a), { runtime: c, client: l } = s, [u, d] = S(Sn), f = x(n);
|
|
1628
|
+
f.current = n;
|
|
1629
|
+
let p = x(o);
|
|
1630
|
+
p.current = o;
|
|
1631
|
+
let m = x(l);
|
|
1632
|
+
m.current = l;
|
|
1633
|
+
let h = x(c);
|
|
1634
|
+
h.current = c;
|
|
1635
|
+
let _ = x(/* @__PURE__ */ new Map()), v = t === null ? null : JSON.stringify(Object.entries(t).sort(([e], [t]) => e < t ? -1 : 1)), b = x(t);
|
|
1636
|
+
b.current = t;
|
|
1637
|
+
let C = x(null);
|
|
1638
|
+
C.current !== v && (C.current = v, _.current = /* @__PURE__ */ new Map());
|
|
1639
|
+
let w = g((e, t) => {
|
|
1640
|
+
e <= 0 || (d((n) => ({
|
|
1271
1641
|
...n,
|
|
1272
1642
|
missed: n.missed + e,
|
|
1273
1643
|
lastMiss: {
|
|
1274
1644
|
count: e,
|
|
1275
1645
|
reason: t
|
|
1276
1646
|
}
|
|
1277
|
-
})),
|
|
1647
|
+
})), p.current?.({
|
|
1278
1648
|
count: e,
|
|
1279
1649
|
reason: t
|
|
1280
1650
|
}));
|
|
1281
|
-
}, []),
|
|
1282
|
-
return
|
|
1283
|
-
if (!
|
|
1284
|
-
|
|
1651
|
+
}, []), T = !i && v !== null && !ke(s);
|
|
1652
|
+
return y(() => {
|
|
1653
|
+
if (!T) {
|
|
1654
|
+
d(Sn);
|
|
1285
1655
|
return;
|
|
1286
1656
|
}
|
|
1287
|
-
|
|
1657
|
+
d((e) => ({
|
|
1288
1658
|
...e,
|
|
1289
1659
|
status: "connecting"
|
|
1290
1660
|
}));
|
|
1291
|
-
let t = 0, n =
|
|
1292
|
-
let t = [...
|
|
1661
|
+
let t = 0, n = E.sync(() => {
|
|
1662
|
+
let t = [..._.current].map(([e, t]) => ({
|
|
1293
1663
|
origin: e,
|
|
1294
1664
|
n: t
|
|
1295
1665
|
}));
|
|
1296
|
-
return
|
|
1297
|
-
key:
|
|
1666
|
+
return J(m.current, e.name)({
|
|
1667
|
+
key: b.current,
|
|
1298
1668
|
...t.length > 0 ? { resume: t } : {}
|
|
1299
1669
|
});
|
|
1300
|
-
}), r =
|
|
1670
|
+
}), r = M.unwrap(n).pipe(M.tap(() => E.sync(() => {
|
|
1301
1671
|
t = 0;
|
|
1302
|
-
})),
|
|
1303
|
-
t += 1,
|
|
1672
|
+
})), M.concat(M.fail(new Cn())), M.retry(A.exponential("250 millis", 2).pipe(A.either(A.spaced("30 seconds")), A.jittered, A.tapOutput(() => E.sync(() => {
|
|
1673
|
+
t += 1, d((e) => ({
|
|
1304
1674
|
...e,
|
|
1305
1675
|
status: "connecting"
|
|
1306
1676
|
}));
|
|
1307
|
-
}))))), i =
|
|
1677
|
+
}))))), i = h.current.runFork(M.runForEach(r, (e) => E.sync(() => {
|
|
1308
1678
|
if (e._tag === "attached") {
|
|
1309
|
-
|
|
1679
|
+
d((e) => ({
|
|
1310
1680
|
...e,
|
|
1311
1681
|
status: "live"
|
|
1312
1682
|
}));
|
|
1313
1683
|
return;
|
|
1314
1684
|
}
|
|
1315
1685
|
if (e._tag === "gap") {
|
|
1316
|
-
|
|
1686
|
+
w(e.missed, e.reason);
|
|
1317
1687
|
return;
|
|
1318
1688
|
}
|
|
1319
|
-
|
|
1689
|
+
_.current.set(e.origin, Math.max(_.current.get(e.origin) ?? 0, e.n)), f.current(e.payload);
|
|
1320
1690
|
})));
|
|
1321
1691
|
return () => {
|
|
1322
|
-
|
|
1692
|
+
h.current.runFork(i.interruptAsFork(i.id()));
|
|
1323
1693
|
};
|
|
1324
1694
|
}, [
|
|
1325
|
-
|
|
1326
|
-
|
|
1695
|
+
T,
|
|
1696
|
+
v,
|
|
1327
1697
|
e.name,
|
|
1328
|
-
|
|
1329
|
-
]),
|
|
1698
|
+
w
|
|
1699
|
+
]), T ? u : Sn;
|
|
1330
1700
|
}
|
|
1331
1701
|
//#endregion
|
|
1332
1702
|
//#region src/sequence.ts
|
|
1333
|
-
var
|
|
1703
|
+
var Tn = () => {
|
|
1334
1704
|
let e = (t) => ({
|
|
1335
1705
|
steps: t,
|
|
1336
1706
|
step: ((n, r, i) => e([...t, {
|
|
@@ -1342,7 +1712,7 @@ var tn = () => {
|
|
|
1342
1712
|
}]))
|
|
1343
1713
|
});
|
|
1344
1714
|
return e([]);
|
|
1345
|
-
},
|
|
1715
|
+
}, En = async (e, t = {}) => {
|
|
1346
1716
|
let n = {}, r = [];
|
|
1347
1717
|
for (let i of e.steps) {
|
|
1348
1718
|
if (i.when !== void 0 && !i.when(n)) {
|
|
@@ -1402,26 +1772,26 @@ var tn = () => {
|
|
|
1402
1772
|
ok: !0,
|
|
1403
1773
|
data: n
|
|
1404
1774
|
};
|
|
1405
|
-
},
|
|
1406
|
-
let [t,
|
|
1407
|
-
return
|
|
1408
|
-
run:
|
|
1409
|
-
|
|
1775
|
+
}, Dn = (e = {}) => {
|
|
1776
|
+
let [t, n] = S(!1), [r, i] = S(void 0), [a, o] = S(void 0), s = x(e);
|
|
1777
|
+
return s.current = e, {
|
|
1778
|
+
run: g(async (e, t = {}) => {
|
|
1779
|
+
n(!0), i(void 0), o(void 0);
|
|
1410
1780
|
try {
|
|
1411
|
-
let n = await
|
|
1412
|
-
...
|
|
1781
|
+
let n = await En(e, {
|
|
1782
|
+
...s.current,
|
|
1413
1783
|
...t
|
|
1414
1784
|
});
|
|
1415
|
-
return n.ok || (
|
|
1785
|
+
return n.ok || (i(n.error), o(n.failedStep)), n;
|
|
1416
1786
|
} finally {
|
|
1417
|
-
|
|
1787
|
+
n(!1);
|
|
1418
1788
|
}
|
|
1419
1789
|
}, []),
|
|
1420
1790
|
pending: t,
|
|
1421
|
-
error:
|
|
1422
|
-
failedStep:
|
|
1791
|
+
error: r,
|
|
1792
|
+
failedStep: a
|
|
1423
1793
|
};
|
|
1424
|
-
},
|
|
1794
|
+
}, On = "storage.mintUploadTicket", kn = "storage.mintPresignedUpload", An = "storage.finalizeUpload", jn = "storage.beginResumableUpload", Mn = "storage.beginMultipartUpload", Nn = "storage.signMultipartPart", Pn = "storage.completeMultipartUpload", Fn = "storage.abortMultipartUpload", In = (e, t, n, r) => new Promise((i, a) => {
|
|
1425
1795
|
let o = new XMLHttpRequest();
|
|
1426
1796
|
if (o.open("PUT", e), o.upload.onprogress = (e) => {
|
|
1427
1797
|
e.lengthComputable && n(e.loaded / e.total);
|
|
@@ -1435,7 +1805,7 @@ var tn = () => {
|
|
|
1435
1805
|
return;
|
|
1436
1806
|
}
|
|
1437
1807
|
r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
|
|
1438
|
-
}),
|
|
1808
|
+
}), Ln = (e, t, n, r, i, a) => new Promise((o, s) => {
|
|
1439
1809
|
let c = new XMLHttpRequest();
|
|
1440
1810
|
if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
|
|
1441
1811
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1453,7 +1823,7 @@ var tn = () => {
|
|
|
1453
1823
|
return;
|
|
1454
1824
|
}
|
|
1455
1825
|
i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
|
|
1456
|
-
}),
|
|
1826
|
+
}), Rn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1457
1827
|
let s = new XMLHttpRequest();
|
|
1458
1828
|
if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1459
1829
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1464,7 +1834,7 @@ var tn = () => {
|
|
|
1464
1834
|
return;
|
|
1465
1835
|
}
|
|
1466
1836
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1467
|
-
}),
|
|
1837
|
+
}), zn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1468
1838
|
let s = new XMLHttpRequest();
|
|
1469
1839
|
if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1470
1840
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1480,94 +1850,94 @@ var tn = () => {
|
|
|
1480
1850
|
return;
|
|
1481
1851
|
}
|
|
1482
1852
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1483
|
-
}),
|
|
1484
|
-
let { runtime:
|
|
1485
|
-
|
|
1486
|
-
}, []),
|
|
1487
|
-
|
|
1488
|
-
}, []),
|
|
1489
|
-
let s = Math.max(0,
|
|
1853
|
+
}), Bn = (e, t = {}) => {
|
|
1854
|
+
let { runtime: n, client: r, inspectBaseUrl: i, errorBus: a } = W(e), [o, s] = S(0), [c, l] = S("idle"), [u, d] = S(void 0), f = x(null), p = g(() => {
|
|
1855
|
+
s(0), l("idle"), d(void 0);
|
|
1856
|
+
}, []), m = g(() => {
|
|
1857
|
+
f.current?.abort();
|
|
1858
|
+
}, []), h = g((e) => /^https?:\/\//.test(e) ? e : `${i}${e}`, [i]), _ = g(async (e, i, a, o) => {
|
|
1859
|
+
let s = Math.max(0, i.retries ?? t.retries ?? 1), c = (e instanceof File, e.type || "application/octet-stream"), l = e instanceof File ? e.name : "blob", u = i.visibility ?? t.visibility, d = i.key ?? t.key, f = i.folder ?? t.folder, p = i.tags ?? t.tags, m = {
|
|
1490
1860
|
...u ? { visibility: u } : {},
|
|
1491
1861
|
...f ? { folder: f } : {},
|
|
1492
1862
|
...p ? { tags: p } : {},
|
|
1493
|
-
...
|
|
1494
|
-
...
|
|
1495
|
-
},
|
|
1863
|
+
...i.alt ? { alt: i.alt } : {},
|
|
1864
|
+
...i.caption ? { caption: i.caption } : {}
|
|
1865
|
+
}, g = (e) => ({
|
|
1496
1866
|
id: e.id,
|
|
1497
|
-
url:
|
|
1867
|
+
url: h(e.url),
|
|
1498
1868
|
name: l,
|
|
1499
1869
|
mime: e.contentType,
|
|
1500
1870
|
size: e.size,
|
|
1501
1871
|
...e.width === void 0 ? {} : { width: e.width },
|
|
1502
1872
|
...e.height === void 0 ? {} : { height: e.height }
|
|
1503
|
-
}),
|
|
1504
|
-
let s =
|
|
1873
|
+
}), _ = async () => {
|
|
1874
|
+
let s = i.mintTag ?? t.mintTag ?? On, l = J(r, s), u = await X(n, l({
|
|
1505
1875
|
contentType: c,
|
|
1506
1876
|
...m,
|
|
1507
1877
|
...d ? { key: d } : {}
|
|
1508
|
-
})), f = await
|
|
1509
|
-
return
|
|
1510
|
-
},
|
|
1511
|
-
let s =
|
|
1878
|
+
})), f = await zn(h(u.uploadUrl), c, e, o, a);
|
|
1879
|
+
return g(f);
|
|
1880
|
+
}, v = async () => {
|
|
1881
|
+
let s = i.presignMintTag ?? t.presignMintTag ?? kn, l = i.finalizeTag ?? t.finalizeTag ?? An, u;
|
|
1512
1882
|
try {
|
|
1513
|
-
let e =
|
|
1514
|
-
u = await
|
|
1883
|
+
let e = J(r, s);
|
|
1884
|
+
u = await X(n, e({
|
|
1515
1885
|
contentType: c,
|
|
1516
1886
|
...m
|
|
1517
1887
|
}));
|
|
1518
1888
|
} catch {
|
|
1519
1889
|
return null;
|
|
1520
1890
|
}
|
|
1521
|
-
await
|
|
1522
|
-
let d =
|
|
1523
|
-
return
|
|
1524
|
-
},
|
|
1525
|
-
let s =
|
|
1891
|
+
await Rn(u.uploadUrl, c, e, o, a);
|
|
1892
|
+
let d = J(r, l), f = await X(n, d({ finalizeToken: u.finalizeToken }));
|
|
1893
|
+
return g(f);
|
|
1894
|
+
}, y = async () => {
|
|
1895
|
+
let s = i.beginResumableTag ?? t.beginResumableTag ?? jn, l = J(r, s), u = e.size, d = i.chunkSize ?? t.chunkSize, f = await X(n, l({
|
|
1526
1896
|
contentType: c,
|
|
1527
1897
|
size: u,
|
|
1528
1898
|
...m,
|
|
1529
1899
|
...d ? { chunkSize: d } : {}
|
|
1530
|
-
})), p =
|
|
1531
|
-
for (let t = 0; t <
|
|
1532
|
-
let n = t *
|
|
1900
|
+
})), p = h(f.uploadUrl), _ = Math.max(1, f.chunkSize), v = Math.max(1, Math.ceil(u / _)), y = Math.max(0, i.retries ?? t.retries ?? 1), b = 0, x = null;
|
|
1901
|
+
for (let t = 0; t < v; t++) {
|
|
1902
|
+
let n = t * _, r = Math.min(u, n + _), i = e.slice(n, r), s = t === v - 1, l = r - n, d = 0;
|
|
1533
1903
|
for (;;) {
|
|
1534
1904
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1535
1905
|
try {
|
|
1536
|
-
let e = await
|
|
1906
|
+
let e = await Ln(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
|
|
1537
1907
|
s && (x = e);
|
|
1538
1908
|
break;
|
|
1539
1909
|
} catch (e) {
|
|
1540
|
-
if (e instanceof DOMException && e.name === "AbortError" || d++ >=
|
|
1910
|
+
if (e instanceof DOMException && e.name === "AbortError" || d++ >= y) throw e;
|
|
1541
1911
|
}
|
|
1542
1912
|
}
|
|
1543
1913
|
b += l, o(b / u);
|
|
1544
1914
|
}
|
|
1545
1915
|
if (!x) throw Error("resumable upload produced no final reply");
|
|
1546
|
-
return
|
|
1916
|
+
return g(x);
|
|
1547
1917
|
}, b = async () => {
|
|
1548
|
-
let s =
|
|
1918
|
+
let s = i.multipartBeginTag ?? t.multipartBeginTag ?? Mn, u = i.multipartSignTag ?? t.multipartSignTag ?? Nn, d = i.multipartCompleteTag ?? t.multipartCompleteTag ?? Pn, f = i.multipartAbortTag ?? t.multipartAbortTag ?? Fn, p = e.size, g = i.chunkSize ?? t.chunkSize, _;
|
|
1549
1919
|
try {
|
|
1550
|
-
let e =
|
|
1551
|
-
|
|
1920
|
+
let e = J(r, s);
|
|
1921
|
+
_ = await X(n, e({
|
|
1552
1922
|
contentType: c,
|
|
1553
1923
|
size: p,
|
|
1554
1924
|
...m,
|
|
1555
|
-
...
|
|
1925
|
+
...g ? { partSize: g } : {}
|
|
1556
1926
|
}));
|
|
1557
1927
|
} catch {
|
|
1558
1928
|
return null;
|
|
1559
1929
|
}
|
|
1560
|
-
let
|
|
1930
|
+
let v = J(r, u), y = J(r, d), b = J(r, f), x = Math.max(1, _.partSize), S = Math.max(1, Math.ceil(p / x)), C = Math.max(0, i.retries ?? t.retries ?? 1), w = [], T = 0;
|
|
1561
1931
|
try {
|
|
1562
1932
|
for (let t = 0; t < S; t++) {
|
|
1563
|
-
let
|
|
1933
|
+
let r = t * x, i = Math.min(p, r + x), s = e.slice(r, i), c = t + 1, l = i - r, u = 0;
|
|
1564
1934
|
for (;;) {
|
|
1565
1935
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1566
1936
|
try {
|
|
1567
|
-
let { url: e } = await
|
|
1568
|
-
multipartToken:
|
|
1937
|
+
let { url: e } = await X(n, v({
|
|
1938
|
+
multipartToken: _.multipartToken,
|
|
1569
1939
|
partNumber: c
|
|
1570
|
-
})), t = await
|
|
1940
|
+
})), t = await In(e, s, (e) => o((T + e * l) / p), a);
|
|
1571
1941
|
w.push({
|
|
1572
1942
|
partNumber: c,
|
|
1573
1943
|
etag: t
|
|
@@ -1579,44 +1949,44 @@ var tn = () => {
|
|
|
1579
1949
|
}
|
|
1580
1950
|
T += l, o(T / p);
|
|
1581
1951
|
}
|
|
1582
|
-
let t = await
|
|
1583
|
-
multipartToken:
|
|
1952
|
+
let t = await X(n, y({
|
|
1953
|
+
multipartToken: _.multipartToken,
|
|
1584
1954
|
parts: w
|
|
1585
1955
|
}));
|
|
1586
1956
|
return {
|
|
1587
1957
|
id: t.id,
|
|
1588
|
-
url:
|
|
1958
|
+
url: h(t.url),
|
|
1589
1959
|
name: l,
|
|
1590
1960
|
mime: c,
|
|
1591
1961
|
size: t.size
|
|
1592
1962
|
};
|
|
1593
1963
|
} catch (e) {
|
|
1594
1964
|
try {
|
|
1595
|
-
await
|
|
1965
|
+
await X(n, b({ multipartToken: _.multipartToken }));
|
|
1596
1966
|
} catch {}
|
|
1597
1967
|
throw e;
|
|
1598
1968
|
}
|
|
1599
1969
|
};
|
|
1600
|
-
if ((
|
|
1601
|
-
if ((
|
|
1602
|
-
let x = (
|
|
1970
|
+
if ((i.prefer ?? t.prefer) === "multipart") return await b() || await y();
|
|
1971
|
+
if ((i.prefer ?? t.prefer) === "resumable") return await y();
|
|
1972
|
+
let x = (i.prefer ?? t.prefer) === "presign", S;
|
|
1603
1973
|
for (let e = 0; e <= s; e++) {
|
|
1604
1974
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1605
1975
|
try {
|
|
1606
1976
|
if (x) {
|
|
1607
|
-
let e = await
|
|
1977
|
+
let e = await v();
|
|
1608
1978
|
if (e) return e;
|
|
1609
1979
|
}
|
|
1610
|
-
return await
|
|
1980
|
+
return await _();
|
|
1611
1981
|
} catch (t) {
|
|
1612
1982
|
if (t instanceof DOMException && t.name === "AbortError" || (S = t, e === s)) throw t;
|
|
1613
1983
|
}
|
|
1614
1984
|
}
|
|
1615
1985
|
throw S;
|
|
1616
1986
|
}, [
|
|
1987
|
+
n,
|
|
1617
1988
|
r,
|
|
1618
|
-
|
|
1619
|
-
y,
|
|
1989
|
+
h,
|
|
1620
1990
|
t.mintTag,
|
|
1621
1991
|
t.presignMintTag,
|
|
1622
1992
|
t.finalizeTag,
|
|
@@ -1632,283 +2002,283 @@ var tn = () => {
|
|
|
1632
2002
|
t.folder,
|
|
1633
2003
|
t.tags,
|
|
1634
2004
|
t.retries
|
|
1635
|
-
]),
|
|
2005
|
+
]), v = g(async (e, n = {}) => {
|
|
1636
2006
|
let r = new AbortController();
|
|
1637
|
-
|
|
2007
|
+
f.current = r, l("uploading"), d(void 0), s(0);
|
|
1638
2008
|
try {
|
|
1639
|
-
let t = await
|
|
1640
|
-
return
|
|
2009
|
+
let t = await _(e, n, r.signal, s);
|
|
2010
|
+
return s(1), l("success"), t;
|
|
1641
2011
|
} catch (e) {
|
|
1642
|
-
throw
|
|
2012
|
+
throw l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1643
2013
|
source: "action",
|
|
1644
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
2014
|
+
tag: n.mintTag ?? t.mintTag ?? On,
|
|
1645
2015
|
error: e
|
|
1646
2016
|
}), e;
|
|
1647
2017
|
}
|
|
1648
2018
|
}, [
|
|
1649
|
-
|
|
1650
|
-
|
|
2019
|
+
_,
|
|
2020
|
+
a,
|
|
1651
2021
|
t.mintTag
|
|
1652
|
-
]),
|
|
2022
|
+
]), y = g(async (e, n = {}) => {
|
|
1653
2023
|
if (e.length === 0) return [];
|
|
1654
2024
|
let r = new AbortController();
|
|
1655
|
-
|
|
1656
|
-
let i = Math.max(1, n.concurrency ?? t.concurrency ?? 3),
|
|
2025
|
+
f.current = r, l("uploading"), d(void 0), s(0);
|
|
2026
|
+
let i = Math.max(1, n.concurrency ?? t.concurrency ?? 3), o = Array(e.length), c = Array(e.length).fill(0), u = () => s(c.reduce((e, t) => e + t, 0) / e.length), p = 0, m = async () => {
|
|
1657
2027
|
for (;;) {
|
|
1658
|
-
let t =
|
|
2028
|
+
let t = p++;
|
|
1659
2029
|
if (t >= e.length) return;
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
}),
|
|
2030
|
+
o[t] = await _(e[t], n, r.signal, (e) => {
|
|
2031
|
+
c[t] = e, u();
|
|
2032
|
+
}), c[t] = 1, u();
|
|
1663
2033
|
}
|
|
1664
2034
|
};
|
|
1665
2035
|
try {
|
|
1666
|
-
return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () =>
|
|
2036
|
+
return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () => m())), s(1), l("success"), o;
|
|
1667
2037
|
} catch (e) {
|
|
1668
|
-
throw r.abort(),
|
|
2038
|
+
throw r.abort(), l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1669
2039
|
source: "action",
|
|
1670
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
2040
|
+
tag: n.mintTag ?? t.mintTag ?? On,
|
|
1671
2041
|
error: e
|
|
1672
2042
|
}), e;
|
|
1673
2043
|
}
|
|
1674
2044
|
}, [
|
|
1675
|
-
|
|
1676
|
-
|
|
2045
|
+
_,
|
|
2046
|
+
a,
|
|
1677
2047
|
t.concurrency,
|
|
1678
2048
|
t.mintTag
|
|
1679
|
-
]), C =
|
|
2049
|
+
]), C = g((e, t = {}) => {
|
|
1680
2050
|
e.preventDefault();
|
|
1681
2051
|
let n = e.dataTransfer ? Array.from(e.dataTransfer.files) : [];
|
|
1682
|
-
return n.length ?
|
|
1683
|
-
}, [
|
|
2052
|
+
return n.length ? y(n, t) : Promise.resolve([]);
|
|
2053
|
+
}, [y]), w = g((e, t = {}) => {
|
|
1684
2054
|
let n = e.clipboardData ? Array.from(e.clipboardData.files) : [];
|
|
1685
|
-
return n.length ?
|
|
1686
|
-
}, [
|
|
2055
|
+
return n.length ? y(n, t) : Promise.resolve([]);
|
|
2056
|
+
}, [y]), T = b(() => ({
|
|
1687
2057
|
onDragOver: (e) => e.preventDefault(),
|
|
1688
2058
|
onDrop: (e) => {
|
|
1689
2059
|
C(e);
|
|
1690
2060
|
}
|
|
1691
2061
|
}), [C]);
|
|
1692
|
-
return
|
|
1693
|
-
upload:
|
|
1694
|
-
uploadMany:
|
|
1695
|
-
progress:
|
|
1696
|
-
status:
|
|
1697
|
-
error:
|
|
1698
|
-
cancel:
|
|
1699
|
-
reset:
|
|
2062
|
+
return b(() => ({
|
|
2063
|
+
upload: v,
|
|
2064
|
+
uploadMany: y,
|
|
2065
|
+
progress: o,
|
|
2066
|
+
status: c,
|
|
2067
|
+
error: u,
|
|
2068
|
+
cancel: m,
|
|
2069
|
+
reset: p,
|
|
1700
2070
|
onDrop: C,
|
|
1701
2071
|
onPaste: w,
|
|
1702
2072
|
dropzoneProps: T
|
|
1703
2073
|
}), [
|
|
1704
|
-
|
|
1705
|
-
|
|
2074
|
+
v,
|
|
2075
|
+
y,
|
|
2076
|
+
o,
|
|
2077
|
+
c,
|
|
1706
2078
|
u,
|
|
1707
|
-
f,
|
|
1708
2079
|
m,
|
|
1709
|
-
|
|
1710
|
-
_,
|
|
2080
|
+
p,
|
|
1711
2081
|
C,
|
|
1712
2082
|
w,
|
|
1713
2083
|
T
|
|
1714
2084
|
]);
|
|
1715
|
-
},
|
|
1716
|
-
let t =
|
|
1717
|
-
|
|
2085
|
+
}, $ = async (e) => {
|
|
2086
|
+
let t = J(e.client, e.tag), n = E.currentSpan.pipe(E.tap((t) => E.sync(() => {
|
|
2087
|
+
I({
|
|
1718
2088
|
traceId: t.traceId,
|
|
1719
2089
|
spanId: t.spanId,
|
|
1720
2090
|
source: "mutation",
|
|
1721
2091
|
tag: e.tag
|
|
1722
2092
|
});
|
|
1723
|
-
})),
|
|
2093
|
+
})), E.catchAll(() => E.void), E.zipRight(t(e.input)), E.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
|
|
1724
2094
|
"voltro.api": e.apiName,
|
|
1725
2095
|
"rpc.tag": e.tag
|
|
1726
2096
|
} }));
|
|
1727
|
-
return
|
|
1728
|
-
},
|
|
1729
|
-
let { runtime:
|
|
2097
|
+
return X(e.runtime, n);
|
|
2098
|
+
}, Vn = (e, t) => {
|
|
2099
|
+
let { runtime: n, client: r, descriptors: i } = W(e);
|
|
1730
2100
|
if (process.env.NODE_ENV !== "production") {
|
|
1731
|
-
let n =
|
|
2101
|
+
let n = i[t]?.kind;
|
|
1732
2102
|
n !== void 0 && n !== "workflow" && console.error(`[@voltro/client] useWorkflow('${e}', '${t}') targets a ${n}, not a workflow. Use ${n === "mutation" ? "useMutation" : n === "action" ? "useAction" : `the ${n} hook`} instead.`);
|
|
1733
2103
|
}
|
|
1734
|
-
let [
|
|
1735
|
-
|
|
2104
|
+
let [a, o] = S(!1), [s, c] = S(void 0), [l, u] = S(void 0), d = g(async (i) => {
|
|
2105
|
+
o(!0), c(void 0);
|
|
1736
2106
|
try {
|
|
1737
|
-
let a = await
|
|
2107
|
+
let a = await $({
|
|
1738
2108
|
apiName: e,
|
|
1739
|
-
runtime:
|
|
1740
|
-
client:
|
|
2109
|
+
runtime: n,
|
|
2110
|
+
client: r,
|
|
1741
2111
|
tag: t,
|
|
1742
|
-
input:
|
|
2112
|
+
input: i,
|
|
1743
2113
|
spanPrefix: "client.workflow.start"
|
|
1744
2114
|
});
|
|
1745
|
-
return
|
|
2115
|
+
return u(a), a;
|
|
1746
2116
|
} catch (e) {
|
|
1747
|
-
throw
|
|
2117
|
+
throw c(e), e;
|
|
1748
2118
|
} finally {
|
|
1749
|
-
|
|
2119
|
+
o(!1);
|
|
1750
2120
|
}
|
|
1751
2121
|
}, [
|
|
1752
2122
|
e,
|
|
2123
|
+
n,
|
|
1753
2124
|
r,
|
|
1754
|
-
i,
|
|
1755
2125
|
t
|
|
1756
|
-
]),
|
|
1757
|
-
await
|
|
2126
|
+
]), f = g(async (t) => {
|
|
2127
|
+
await $({
|
|
1758
2128
|
apiName: e,
|
|
1759
|
-
runtime:
|
|
1760
|
-
client:
|
|
2129
|
+
runtime: n,
|
|
2130
|
+
client: r,
|
|
1761
2131
|
tag: "__voltro.workflow.cancel",
|
|
1762
2132
|
input: t,
|
|
1763
2133
|
spanPrefix: "client.workflow.cancel"
|
|
1764
2134
|
});
|
|
1765
2135
|
}, [
|
|
1766
2136
|
e,
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
]),
|
|
1770
|
-
await
|
|
2137
|
+
n,
|
|
2138
|
+
r
|
|
2139
|
+
]), p = g(async (t) => {
|
|
2140
|
+
await $({
|
|
1771
2141
|
apiName: e,
|
|
1772
|
-
runtime:
|
|
1773
|
-
client:
|
|
2142
|
+
runtime: n,
|
|
2143
|
+
client: r,
|
|
1774
2144
|
tag: "__voltro.workflow.resume",
|
|
1775
2145
|
input: t,
|
|
1776
2146
|
spanPrefix: "client.workflow.resume"
|
|
1777
2147
|
});
|
|
1778
2148
|
}, [
|
|
1779
2149
|
e,
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
]),
|
|
2150
|
+
n,
|
|
2151
|
+
r
|
|
2152
|
+
]), m = g(async (t, i, a) => $({
|
|
1783
2153
|
apiName: e,
|
|
1784
|
-
runtime:
|
|
1785
|
-
client:
|
|
2154
|
+
runtime: n,
|
|
2155
|
+
client: r,
|
|
1786
2156
|
tag: "__voltro.workflow.signal",
|
|
1787
2157
|
input: {
|
|
1788
2158
|
id: t.id,
|
|
1789
|
-
signalName:
|
|
2159
|
+
signalName: i,
|
|
1790
2160
|
...a === void 0 ? {} : { payload: a }
|
|
1791
2161
|
},
|
|
1792
2162
|
spanPrefix: "client.workflow.signal"
|
|
1793
2163
|
}), [
|
|
1794
2164
|
e,
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
]),
|
|
2165
|
+
n,
|
|
2166
|
+
r
|
|
2167
|
+
]), h = g(async (t, i, a, o) => $({
|
|
1798
2168
|
apiName: e,
|
|
1799
|
-
runtime:
|
|
1800
|
-
client:
|
|
2169
|
+
runtime: n,
|
|
2170
|
+
client: r,
|
|
1801
2171
|
tag: "__voltro.workflow.update",
|
|
1802
2172
|
input: {
|
|
1803
2173
|
id: t.id,
|
|
1804
|
-
updateName:
|
|
2174
|
+
updateName: i,
|
|
1805
2175
|
...a === void 0 ? {} : { payload: a },
|
|
1806
2176
|
...o?.timeoutMs === void 0 ? {} : { timeoutMs: o.timeoutMs }
|
|
1807
2177
|
},
|
|
1808
2178
|
spanPrefix: "client.workflow.update"
|
|
1809
2179
|
}), [
|
|
1810
2180
|
e,
|
|
1811
|
-
|
|
1812
|
-
|
|
2181
|
+
n,
|
|
2182
|
+
r
|
|
1813
2183
|
]);
|
|
1814
|
-
return
|
|
1815
|
-
start:
|
|
1816
|
-
cancel:
|
|
1817
|
-
resume:
|
|
1818
|
-
signal:
|
|
1819
|
-
update:
|
|
1820
|
-
pending:
|
|
1821
|
-
error:
|
|
1822
|
-
data:
|
|
2184
|
+
return b(() => ({
|
|
2185
|
+
start: d,
|
|
2186
|
+
cancel: f,
|
|
2187
|
+
resume: p,
|
|
2188
|
+
signal: m,
|
|
2189
|
+
update: h,
|
|
2190
|
+
pending: a,
|
|
2191
|
+
error: s,
|
|
2192
|
+
data: l
|
|
1823
2193
|
}), [
|
|
2194
|
+
d,
|
|
2195
|
+
f,
|
|
2196
|
+
p,
|
|
1824
2197
|
m,
|
|
1825
2198
|
h,
|
|
1826
|
-
|
|
1827
|
-
_,
|
|
1828
|
-
v,
|
|
2199
|
+
a,
|
|
1829
2200
|
s,
|
|
1830
|
-
|
|
1831
|
-
f
|
|
2201
|
+
l
|
|
1832
2202
|
]);
|
|
1833
|
-
},
|
|
1834
|
-
let { runtime: t, client:
|
|
1835
|
-
|
|
2203
|
+
}, Hn = (e) => {
|
|
2204
|
+
let { runtime: t, client: n } = W(e), [r, i] = S(!1), [a, o] = S(void 0), [s, c] = S(void 0), l = g(async (r, a, s) => {
|
|
2205
|
+
i(!0), o(void 0);
|
|
1836
2206
|
try {
|
|
1837
|
-
let
|
|
2207
|
+
let i = await $({
|
|
1838
2208
|
apiName: e,
|
|
1839
2209
|
runtime: t,
|
|
1840
|
-
client:
|
|
2210
|
+
client: n,
|
|
1841
2211
|
tag: "__voltro.workflow.signal",
|
|
1842
2212
|
input: {
|
|
1843
|
-
id:
|
|
1844
|
-
signalName:
|
|
1845
|
-
...
|
|
2213
|
+
id: r.id,
|
|
2214
|
+
signalName: a,
|
|
2215
|
+
...s === void 0 ? {} : { payload: s }
|
|
1846
2216
|
},
|
|
1847
2217
|
spanPrefix: "client.workflow.signal"
|
|
1848
2218
|
});
|
|
1849
|
-
return
|
|
2219
|
+
return c(i), i;
|
|
1850
2220
|
} catch (e) {
|
|
1851
|
-
throw
|
|
2221
|
+
throw o(e), e;
|
|
1852
2222
|
} finally {
|
|
1853
|
-
|
|
2223
|
+
i(!1);
|
|
1854
2224
|
}
|
|
1855
2225
|
}, [
|
|
1856
2226
|
e,
|
|
1857
2227
|
t,
|
|
1858
|
-
|
|
2228
|
+
n
|
|
1859
2229
|
]);
|
|
1860
|
-
return
|
|
1861
|
-
signal:
|
|
1862
|
-
pending:
|
|
1863
|
-
error:
|
|
1864
|
-
data:
|
|
2230
|
+
return b(() => ({
|
|
2231
|
+
signal: l,
|
|
2232
|
+
pending: r,
|
|
2233
|
+
error: a,
|
|
2234
|
+
data: s
|
|
1865
2235
|
}), [
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
2236
|
+
l,
|
|
2237
|
+
r,
|
|
2238
|
+
a,
|
|
2239
|
+
s
|
|
1870
2240
|
]);
|
|
1871
|
-
},
|
|
1872
|
-
let { runtime: t, client:
|
|
1873
|
-
|
|
2241
|
+
}, Un = (e) => {
|
|
2242
|
+
let { runtime: t, client: n } = W(e), [r, i] = S(!1), [a, o] = S(void 0), [s, c] = S(void 0), l = g(async (r, a, s, l) => {
|
|
2243
|
+
i(!0), o(void 0);
|
|
1874
2244
|
try {
|
|
1875
|
-
let
|
|
2245
|
+
let i = await $({
|
|
1876
2246
|
apiName: e,
|
|
1877
2247
|
runtime: t,
|
|
1878
|
-
client:
|
|
2248
|
+
client: n,
|
|
1879
2249
|
tag: "__voltro.workflow.update",
|
|
1880
2250
|
input: {
|
|
1881
|
-
id:
|
|
1882
|
-
updateName:
|
|
1883
|
-
...
|
|
1884
|
-
...
|
|
2251
|
+
id: r.id,
|
|
2252
|
+
updateName: a,
|
|
2253
|
+
...s === void 0 ? {} : { payload: s },
|
|
2254
|
+
...l?.timeoutMs === void 0 ? {} : { timeoutMs: l.timeoutMs }
|
|
1885
2255
|
},
|
|
1886
2256
|
spanPrefix: "client.workflow.update"
|
|
1887
2257
|
});
|
|
1888
|
-
return
|
|
2258
|
+
return c(i), i;
|
|
1889
2259
|
} catch (e) {
|
|
1890
|
-
throw
|
|
2260
|
+
throw o(e), e;
|
|
1891
2261
|
} finally {
|
|
1892
|
-
|
|
2262
|
+
i(!1);
|
|
1893
2263
|
}
|
|
1894
2264
|
}, [
|
|
1895
2265
|
e,
|
|
1896
2266
|
t,
|
|
1897
|
-
|
|
2267
|
+
n
|
|
1898
2268
|
]);
|
|
1899
|
-
return
|
|
1900
|
-
update:
|
|
1901
|
-
pending:
|
|
1902
|
-
error:
|
|
1903
|
-
data:
|
|
2269
|
+
return b(() => ({
|
|
2270
|
+
update: l,
|
|
2271
|
+
pending: r,
|
|
2272
|
+
error: a,
|
|
2273
|
+
data: s
|
|
1904
2274
|
}), [
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
2275
|
+
l,
|
|
2276
|
+
r,
|
|
2277
|
+
a,
|
|
2278
|
+
s
|
|
1909
2279
|
]);
|
|
1910
|
-
},
|
|
1911
|
-
let n =
|
|
2280
|
+
}, Wn = (e, t) => {
|
|
2281
|
+
let n = Y(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
|
|
1912
2282
|
return n.loading || n.idle || n.failed ? {
|
|
1913
2283
|
...n,
|
|
1914
2284
|
run: void 0
|
|
@@ -1916,8 +2286,8 @@ var tn = () => {
|
|
|
1916
2286
|
...n,
|
|
1917
2287
|
run: n.data[0]
|
|
1918
2288
|
};
|
|
1919
|
-
},
|
|
1920
|
-
let r =
|
|
2289
|
+
}, Gn = (e, t = {}, n = {}) => {
|
|
2290
|
+
let r = Y(e, "__voltro.workflow.runs", t, n);
|
|
1921
2291
|
return r.loading || r.idle || r.failed ? {
|
|
1922
2292
|
...r,
|
|
1923
2293
|
runs: []
|
|
@@ -1925,8 +2295,8 @@ var tn = () => {
|
|
|
1925
2295
|
...r,
|
|
1926
2296
|
runs: r.data
|
|
1927
2297
|
};
|
|
1928
|
-
},
|
|
1929
|
-
let n =
|
|
2298
|
+
}, Kn = (e, t) => {
|
|
2299
|
+
let n = Y(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1930
2300
|
return n.loading || n.idle || n.failed ? {
|
|
1931
2301
|
...n,
|
|
1932
2302
|
steps: []
|
|
@@ -1934,8 +2304,8 @@ var tn = () => {
|
|
|
1934
2304
|
...n,
|
|
1935
2305
|
steps: n.data
|
|
1936
2306
|
};
|
|
1937
|
-
},
|
|
1938
|
-
let n =
|
|
2307
|
+
}, qn = (e, t) => {
|
|
2308
|
+
let n = Y(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1939
2309
|
return n.loading || n.idle || n.failed ? {
|
|
1940
2310
|
...n,
|
|
1941
2311
|
events: []
|
|
@@ -1943,8 +2313,8 @@ var tn = () => {
|
|
|
1943
2313
|
...n,
|
|
1944
2314
|
events: n.data
|
|
1945
2315
|
};
|
|
1946
|
-
},
|
|
1947
|
-
let r =
|
|
2316
|
+
}, Jn = qn, Yn = (e, t = {}, n = {}) => {
|
|
2317
|
+
let r = Y(e, "__voltro.workflow.domainEvents", t, n);
|
|
1948
2318
|
return r.loading || r.idle || r.failed ? {
|
|
1949
2319
|
...r,
|
|
1950
2320
|
events: []
|
|
@@ -1952,8 +2322,8 @@ var tn = () => {
|
|
|
1952
2322
|
...r,
|
|
1953
2323
|
events: r.data
|
|
1954
2324
|
};
|
|
1955
|
-
},
|
|
1956
|
-
let n =
|
|
2325
|
+
}, Xn = (e, t) => {
|
|
2326
|
+
let n = Y(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
|
|
1957
2327
|
return n.loading || n.idle || n.failed ? {
|
|
1958
2328
|
...n,
|
|
1959
2329
|
deliveries: []
|
|
@@ -1961,42 +2331,42 @@ var tn = () => {
|
|
|
1961
2331
|
...n,
|
|
1962
2332
|
deliveries: n.data
|
|
1963
2333
|
};
|
|
1964
|
-
},
|
|
2334
|
+
}, Zn = (e, t) => {
|
|
1965
2335
|
let n = e.payload;
|
|
1966
2336
|
if (!n || typeof n != "object") return;
|
|
1967
2337
|
let r = n[t];
|
|
1968
2338
|
return typeof r == "string" ? r : void 0;
|
|
1969
|
-
},
|
|
2339
|
+
}, Qn = (e) => {
|
|
1970
2340
|
let t = e.payload;
|
|
1971
2341
|
if (!t || typeof t != "object") return;
|
|
1972
2342
|
let n = t.updateId;
|
|
1973
2343
|
return typeof n == "string" ? n : void 0;
|
|
1974
|
-
},
|
|
2344
|
+
}, $n = (e) => {
|
|
1975
2345
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
1976
2346
|
for (let r of e) if (r.eventType === "signal-received") {
|
|
1977
|
-
let e =
|
|
2347
|
+
let e = Zn(r, "signalName");
|
|
1978
2348
|
e && t.add(e);
|
|
1979
2349
|
} else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
|
|
1980
|
-
let e =
|
|
2350
|
+
let e = Qn(r);
|
|
1981
2351
|
e && n.add(e);
|
|
1982
2352
|
}
|
|
1983
2353
|
for (let r = e.length - 1; r >= 0; --r) {
|
|
1984
2354
|
let i = e[r];
|
|
1985
2355
|
if (i.eventType === "signal-awaited") {
|
|
1986
|
-
let e =
|
|
2356
|
+
let e = Zn(i, "signalName");
|
|
1987
2357
|
if (e && !t.has(e)) return {
|
|
1988
2358
|
name: e,
|
|
1989
2359
|
kind: "signal"
|
|
1990
2360
|
};
|
|
1991
2361
|
} else if (i.eventType === "update-requested") {
|
|
1992
|
-
let e =
|
|
2362
|
+
let e = Qn(i), t = Zn(i, "updateName");
|
|
1993
2363
|
if (t && (!e || !n.has(e))) return {
|
|
1994
2364
|
name: t,
|
|
1995
2365
|
kind: "update"
|
|
1996
2366
|
};
|
|
1997
2367
|
}
|
|
1998
2368
|
}
|
|
1999
|
-
},
|
|
2369
|
+
}, er = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), tr = (e, t) => {
|
|
2000
2370
|
if (!e || e.status !== "failed") return;
|
|
2001
2371
|
let n = t.find((e) => e.status === "failed");
|
|
2002
2372
|
return {
|
|
@@ -2004,182 +2374,182 @@ var tn = () => {
|
|
|
2004
2374
|
message: e.errorMessage,
|
|
2005
2375
|
step: n?.stepName
|
|
2006
2376
|
};
|
|
2007
|
-
},
|
|
2008
|
-
let
|
|
2009
|
-
if (!
|
|
2010
|
-
await
|
|
2011
|
-
workflowName:
|
|
2012
|
-
executionId:
|
|
2377
|
+
}, nr = (e, t) => {
|
|
2378
|
+
let n = Wn(e, t), r = Kn(e, t), i = qn(e, t), a = Vn(e, n.run?.tag ?? ""), o = n.run, s = r.steps, c = i.events, l = g(async () => {
|
|
2379
|
+
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
|
|
2380
|
+
await a.cancel({
|
|
2381
|
+
workflowName: o.tag,
|
|
2382
|
+
executionId: o.executionId
|
|
2013
2383
|
});
|
|
2014
|
-
}, [
|
|
2015
|
-
if (!
|
|
2016
|
-
await
|
|
2017
|
-
workflowName:
|
|
2018
|
-
executionId:
|
|
2384
|
+
}, [a, o]), u = g(async () => {
|
|
2385
|
+
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot resume");
|
|
2386
|
+
await a.resume({
|
|
2387
|
+
workflowName: o.tag,
|
|
2388
|
+
executionId: o.executionId
|
|
2019
2389
|
});
|
|
2020
|
-
}, [
|
|
2390
|
+
}, [a, o]), d = g((e, n) => {
|
|
2021
2391
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot signal");
|
|
2022
|
-
return
|
|
2023
|
-
}, [
|
|
2392
|
+
return a.signal({ id: t }, e, n);
|
|
2393
|
+
}, [a, t]), f = g((e, n, r) => {
|
|
2024
2394
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot update");
|
|
2025
|
-
return
|
|
2026
|
-
}, [
|
|
2027
|
-
return
|
|
2028
|
-
run:
|
|
2029
|
-
status:
|
|
2030
|
-
steps:
|
|
2031
|
-
events:
|
|
2032
|
-
currentStep:
|
|
2033
|
-
waitingFor:
|
|
2034
|
-
error:
|
|
2035
|
-
traceId:
|
|
2036
|
-
loading:
|
|
2037
|
-
cancel:
|
|
2038
|
-
resume:
|
|
2039
|
-
signal:
|
|
2040
|
-
update:
|
|
2395
|
+
return a.update({ id: t }, e, n, r);
|
|
2396
|
+
}, [a, t]);
|
|
2397
|
+
return b(() => ({
|
|
2398
|
+
run: o,
|
|
2399
|
+
status: o?.status,
|
|
2400
|
+
steps: s,
|
|
2401
|
+
events: c,
|
|
2402
|
+
currentStep: er(s),
|
|
2403
|
+
waitingFor: o?.status === "suspended" ? $n(c) : void 0,
|
|
2404
|
+
error: tr(o, s),
|
|
2405
|
+
traceId: o?.traceId,
|
|
2406
|
+
loading: n.data === void 0,
|
|
2407
|
+
cancel: l,
|
|
2408
|
+
resume: u,
|
|
2409
|
+
signal: d,
|
|
2410
|
+
update: f
|
|
2041
2411
|
}), [
|
|
2412
|
+
o,
|
|
2413
|
+
s,
|
|
2042
2414
|
c,
|
|
2415
|
+
n.data,
|
|
2043
2416
|
l,
|
|
2044
2417
|
u,
|
|
2045
|
-
r.data,
|
|
2046
2418
|
d,
|
|
2047
|
-
f
|
|
2048
|
-
p,
|
|
2049
|
-
m
|
|
2419
|
+
f
|
|
2050
2420
|
]);
|
|
2051
|
-
},
|
|
2052
|
-
let { runtime:
|
|
2053
|
-
let e =
|
|
2054
|
-
e && (
|
|
2055
|
-
}, [
|
|
2421
|
+
}, rr = (e, t) => {
|
|
2422
|
+
let { runtime: n, client: r } = W(e), [i, a] = S([]), [o, s] = S("idle"), [c, l] = S(void 0), u = x(null), d = g(() => {
|
|
2423
|
+
let e = u.current;
|
|
2424
|
+
e && (u.current = null, n.runFork(O.interrupt(e)), s((e) => e === "streaming" ? "idle" : e));
|
|
2425
|
+
}, [n]);
|
|
2056
2426
|
return {
|
|
2057
|
-
events:
|
|
2058
|
-
status:
|
|
2059
|
-
error:
|
|
2060
|
-
start:
|
|
2061
|
-
let
|
|
2062
|
-
|
|
2063
|
-
let
|
|
2427
|
+
events: i,
|
|
2428
|
+
status: o,
|
|
2429
|
+
error: c,
|
|
2430
|
+
start: g((e = {}) => {
|
|
2431
|
+
let i = u.current;
|
|
2432
|
+
i && n.runFork(O.interrupt(i)), a([]), l(void 0), s("streaming");
|
|
2433
|
+
let o = J(r, t)(e), c = M.runForEach(o, (e) => E.sync(() => a((t) => [...t, e]))).pipe(E.matchCause({
|
|
2064
2434
|
onSuccess: () => {
|
|
2065
|
-
|
|
2435
|
+
s("done");
|
|
2066
2436
|
},
|
|
2067
2437
|
onFailure: (e) => {
|
|
2068
|
-
|
|
2438
|
+
w.isInterruptedOnly(e) || (l(w.squash(e)), s("error"));
|
|
2069
2439
|
}
|
|
2070
2440
|
}));
|
|
2071
|
-
|
|
2441
|
+
u.current = n.runFork(c);
|
|
2072
2442
|
}, [
|
|
2443
|
+
n,
|
|
2073
2444
|
r,
|
|
2074
|
-
i,
|
|
2075
2445
|
t
|
|
2076
2446
|
]),
|
|
2077
|
-
cancel:
|
|
2447
|
+
cancel: d
|
|
2078
2448
|
};
|
|
2079
|
-
},
|
|
2080
|
-
let i = 0, a = !1, o = (e) =>
|
|
2449
|
+
}, ir = (e, t, n, r) => {
|
|
2450
|
+
let i = 0, a = !1, o = (e) => E.sync(() => {
|
|
2081
2451
|
e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
|
|
2082
2452
|
}), s = (e, t, a) => {
|
|
2083
2453
|
let o = i > t ? 0 : e + 1;
|
|
2084
|
-
if (o > r.maxReconnects) return
|
|
2454
|
+
if (o > r.maxReconnects) return E.sync(() => {
|
|
2085
2455
|
n.onError(a ?? /* @__PURE__ */ Error("stream connection lost")), n.onStatus("error");
|
|
2086
2456
|
});
|
|
2087
2457
|
let s = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, o - 1));
|
|
2088
|
-
return
|
|
2458
|
+
return E.sync(() => {
|
|
2089
2459
|
n.onStatus("reconnecting"), n.onReconnect();
|
|
2090
|
-
}).pipe(
|
|
2091
|
-
}, c = (r) =>
|
|
2460
|
+
}).pipe(E.zipRight(E.sleep(ee.millis(s))), E.zipRight(E.sync(() => n.onStatus("streaming"))), E.zipRight(c(o)));
|
|
2461
|
+
}, c = (r) => E.suspend(() => {
|
|
2092
2462
|
let c = i, l = e({
|
|
2093
2463
|
...t,
|
|
2094
2464
|
fromSeq: c
|
|
2095
2465
|
});
|
|
2096
|
-
return
|
|
2097
|
-
onSuccess: () => a ?
|
|
2098
|
-
onFailure: (e) =>
|
|
2466
|
+
return M.runForEach(l, o).pipe(E.matchCauseEffect({
|
|
2467
|
+
onSuccess: () => a ? E.sync(() => n.onStatus("done")) : s(r, c, void 0),
|
|
2468
|
+
onFailure: (e) => w.isInterruptedOnly(e) ? E.void : a ? E.sync(() => n.onStatus("done")) : s(r, c, w.squash(e))
|
|
2099
2469
|
}));
|
|
2100
2470
|
});
|
|
2101
2471
|
return c(0);
|
|
2102
|
-
},
|
|
2472
|
+
}, ar = (e) => {
|
|
2103
2473
|
let t = e?._tag;
|
|
2104
2474
|
return t === "done" || t === "error";
|
|
2105
|
-
},
|
|
2106
|
-
let { runtime:
|
|
2107
|
-
maxReconnects:
|
|
2108
|
-
backoffMs:
|
|
2109
|
-
maxBackoffMs:
|
|
2110
|
-
isTerminal:
|
|
2111
|
-
},
|
|
2112
|
-
let e =
|
|
2113
|
-
e && (
|
|
2114
|
-
}, [
|
|
2475
|
+
}, or = (e, t, n = {}) => {
|
|
2476
|
+
let { runtime: r, client: i } = W(e), [a, o] = S([]), [s, c] = S("idle"), [l, u] = S(0), [d, f] = S(void 0), p = x(null), m = {
|
|
2477
|
+
maxReconnects: n.maxReconnects ?? 6,
|
|
2478
|
+
backoffMs: n.backoffMs ?? 400,
|
|
2479
|
+
maxBackoffMs: n.maxBackoffMs ?? 8e3,
|
|
2480
|
+
isTerminal: n.isTerminal ?? ar
|
|
2481
|
+
}, h = g(() => {
|
|
2482
|
+
let e = p.current;
|
|
2483
|
+
e && (p.current = null, r.runFork(O.interrupt(e)), c((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
|
|
2484
|
+
}, [r]);
|
|
2115
2485
|
return {
|
|
2116
|
-
events:
|
|
2117
|
-
status:
|
|
2118
|
-
reconnects:
|
|
2119
|
-
error:
|
|
2120
|
-
start:
|
|
2121
|
-
let n =
|
|
2122
|
-
n &&
|
|
2123
|
-
let
|
|
2124
|
-
onEvent: (e) =>
|
|
2125
|
-
onStatus:
|
|
2126
|
-
onReconnect: () =>
|
|
2127
|
-
onError:
|
|
2486
|
+
events: a,
|
|
2487
|
+
status: s,
|
|
2488
|
+
reconnects: l,
|
|
2489
|
+
error: d,
|
|
2490
|
+
start: g((e = {}) => {
|
|
2491
|
+
let n = p.current;
|
|
2492
|
+
n && r.runFork(O.interrupt(n)), o([]), f(void 0), u(0), c("streaming");
|
|
2493
|
+
let a = J(i, t), s = {
|
|
2494
|
+
onEvent: (e) => o((t) => [...t, e]),
|
|
2495
|
+
onStatus: c,
|
|
2496
|
+
onReconnect: () => u((e) => e + 1),
|
|
2497
|
+
onError: f
|
|
2128
2498
|
};
|
|
2129
|
-
|
|
2499
|
+
p.current = r.runFork(ir(a, e, s, m));
|
|
2130
2500
|
}, [
|
|
2501
|
+
r,
|
|
2131
2502
|
i,
|
|
2132
|
-
a,
|
|
2133
2503
|
t,
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2504
|
+
m.maxReconnects,
|
|
2505
|
+
m.backoffMs,
|
|
2506
|
+
m.maxBackoffMs,
|
|
2507
|
+
m.isTerminal
|
|
2138
2508
|
]),
|
|
2139
|
-
cancel:
|
|
2509
|
+
cancel: h
|
|
2140
2510
|
};
|
|
2141
|
-
},
|
|
2511
|
+
}, sr = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), cr = (e) => {
|
|
2142
2512
|
for (let t = e.length - 1; t >= 0; --t) {
|
|
2143
2513
|
let n = e[t];
|
|
2144
2514
|
if (n.role === "user" && n.content) return n.content;
|
|
2145
2515
|
}
|
|
2146
|
-
},
|
|
2147
|
-
let { threadId:
|
|
2148
|
-
threadId:
|
|
2149
|
-
order:
|
|
2516
|
+
}, lr = (e, t, n) => {
|
|
2517
|
+
let { threadId: r } = n, i = Y(e, `${t}.messages`, { threadId: r }), a = Xt(e, `${t}.send`), o = b(() => [...i.data ?? []].sort(sr), [i.data]), s = g((e, t = {}) => a.run({
|
|
2518
|
+
threadId: r,
|
|
2519
|
+
order: i.data?.length ?? 0,
|
|
2150
2520
|
prompt: e,
|
|
2151
2521
|
...t
|
|
2152
2522
|
}), [
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
]),
|
|
2157
|
-
let e =
|
|
2158
|
-
return e === void 0 ? void 0 :
|
|
2159
|
-
}, [
|
|
2160
|
-
return
|
|
2161
|
-
messages:
|
|
2162
|
-
streaming:
|
|
2163
|
-
loading:
|
|
2164
|
-
error:
|
|
2165
|
-
send:
|
|
2166
|
-
regenerate:
|
|
2167
|
-
sending:
|
|
2523
|
+
a,
|
|
2524
|
+
r,
|
|
2525
|
+
i.data
|
|
2526
|
+
]), c = g(() => {
|
|
2527
|
+
let e = cr(o);
|
|
2528
|
+
return e === void 0 ? void 0 : s(e);
|
|
2529
|
+
}, [o, s]);
|
|
2530
|
+
return b(() => ({
|
|
2531
|
+
messages: o,
|
|
2532
|
+
streaming: o.some((e) => e.streaming),
|
|
2533
|
+
loading: i.data === void 0,
|
|
2534
|
+
error: i.error ?? a.error,
|
|
2535
|
+
send: s,
|
|
2536
|
+
regenerate: c,
|
|
2537
|
+
sending: a.pending
|
|
2168
2538
|
}), [
|
|
2169
|
-
|
|
2170
|
-
|
|
2539
|
+
o,
|
|
2540
|
+
i.data,
|
|
2541
|
+
i.error,
|
|
2171
2542
|
a.error,
|
|
2172
|
-
|
|
2173
|
-
s
|
|
2174
|
-
|
|
2175
|
-
u
|
|
2543
|
+
a.pending,
|
|
2544
|
+
s,
|
|
2545
|
+
c
|
|
2176
2546
|
]);
|
|
2177
|
-
},
|
|
2178
|
-
let { events:
|
|
2179
|
-
return
|
|
2180
|
-
if (
|
|
2181
|
-
let e =
|
|
2182
|
-
|
|
2547
|
+
}, ur = (e, t) => {
|
|
2548
|
+
let { events: n, status: r, error: i, start: a, cancel: o } = rr(e, t), [s, c] = S([]), l = x(null), u = b(() => n.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [n]);
|
|
2549
|
+
return y(() => {
|
|
2550
|
+
if (r !== "done" || l.current === null) return;
|
|
2551
|
+
let e = l.current;
|
|
2552
|
+
l.current = null, c((t) => [
|
|
2183
2553
|
...t,
|
|
2184
2554
|
{
|
|
2185
2555
|
role: "user",
|
|
@@ -2187,48 +2557,48 @@ var tn = () => {
|
|
|
2187
2557
|
},
|
|
2188
2558
|
{
|
|
2189
2559
|
role: "assistant",
|
|
2190
|
-
content:
|
|
2560
|
+
content: u
|
|
2191
2561
|
}
|
|
2192
2562
|
]);
|
|
2193
|
-
}, [
|
|
2194
|
-
tokens:
|
|
2195
|
-
history:
|
|
2196
|
-
status:
|
|
2197
|
-
error:
|
|
2198
|
-
send:
|
|
2563
|
+
}, [r, u]), {
|
|
2564
|
+
tokens: u,
|
|
2565
|
+
history: s,
|
|
2566
|
+
status: r,
|
|
2567
|
+
error: i,
|
|
2568
|
+
send: g((e = {}) => {
|
|
2199
2569
|
let t = e.message;
|
|
2200
|
-
|
|
2201
|
-
}, [
|
|
2202
|
-
cancel:
|
|
2570
|
+
l.current = typeof t == "string" ? t : "", a(e);
|
|
2571
|
+
}, [a]),
|
|
2572
|
+
cancel: o
|
|
2203
2573
|
};
|
|
2204
|
-
},
|
|
2205
|
-
let
|
|
2206
|
-
let t = await
|
|
2207
|
-
return
|
|
2208
|
-
}, [
|
|
2209
|
-
return
|
|
2210
|
-
ask:
|
|
2211
|
-
answer:
|
|
2212
|
-
pending:
|
|
2213
|
-
error:
|
|
2214
|
-
reset:
|
|
2574
|
+
}, dr = (e, t) => {
|
|
2575
|
+
let n = Xt(e, t), [r, i] = S(void 0), a = g(async (e) => {
|
|
2576
|
+
let t = await n.run({ question: e });
|
|
2577
|
+
return i(t), t;
|
|
2578
|
+
}, [n]), o = g(() => i(void 0), []);
|
|
2579
|
+
return b(() => ({
|
|
2580
|
+
ask: a,
|
|
2581
|
+
answer: r,
|
|
2582
|
+
pending: n.pending,
|
|
2583
|
+
error: n.error,
|
|
2584
|
+
reset: o
|
|
2215
2585
|
}), [
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2586
|
+
a,
|
|
2587
|
+
r,
|
|
2588
|
+
n.pending,
|
|
2589
|
+
n.error,
|
|
2590
|
+
o
|
|
2221
2591
|
]);
|
|
2222
|
-
},
|
|
2223
|
-
let { cache: t, runtime:
|
|
2224
|
-
return
|
|
2225
|
-
t.refreshAll(
|
|
2226
|
-
}, [t,
|
|
2227
|
-
},
|
|
2592
|
+
}, fr = (e) => {
|
|
2593
|
+
let { cache: t, runtime: n } = W(e);
|
|
2594
|
+
return g(() => {
|
|
2595
|
+
t.refreshAll(n);
|
|
2596
|
+
}, [t, n]);
|
|
2597
|
+
}, pr = (e) => e?._tag === "Unauthenticated", mr = (e, t, n = {}) => {
|
|
2228
2598
|
let r = n.cooldownMs ?? 15e3, i = n.maxConsecutive ?? 3, a = n.now ?? (() => Date.now()), o = -Infinity, s = 0;
|
|
2229
2599
|
return {
|
|
2230
2600
|
dispose: e.on((e) => {
|
|
2231
|
-
if (!
|
|
2601
|
+
if (!pr(e.error) || s >= i) return;
|
|
2232
2602
|
let n = a();
|
|
2233
2603
|
n - o < r || (o = n, s += 1, t());
|
|
2234
2604
|
}),
|
|
@@ -2236,207 +2606,78 @@ var tn = () => {
|
|
|
2236
2606
|
s = 0;
|
|
2237
2607
|
}
|
|
2238
2608
|
};
|
|
2239
|
-
},
|
|
2240
|
-
for (let t of
|
|
2609
|
+
}, hr = /* @__PURE__ */ new Set(), gr = (e) => {
|
|
2610
|
+
for (let t of hr) try {
|
|
2241
2611
|
t(e);
|
|
2242
2612
|
} catch {}
|
|
2243
|
-
},
|
|
2244
|
-
|
|
2245
|
-
}),
|
|
2246
|
-
|
|
2613
|
+
}, _r = (e) => (hr.add(e), () => {
|
|
2614
|
+
hr.delete(e);
|
|
2615
|
+
}), vr = (e, t) => {
|
|
2616
|
+
gr({
|
|
2247
2617
|
error: e,
|
|
2248
2618
|
source: "manual",
|
|
2249
2619
|
...t ? { context: t } : {}
|
|
2250
2620
|
});
|
|
2251
|
-
},
|
|
2252
|
-
let { errorBus: n } =
|
|
2253
|
-
|
|
2254
|
-
},
|
|
2255
|
-
let n = e;
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
let t = n.filter((e) => e !== "null");
|
|
2274
|
-
return {
|
|
2275
|
-
node: {
|
|
2276
|
-
...e,
|
|
2277
|
-
type: t.length === 1 ? t[0] : t
|
|
2278
|
-
},
|
|
2279
|
-
nullable: !0
|
|
2280
|
-
};
|
|
2281
|
-
}
|
|
2282
|
-
for (let n of ["anyOf", "oneOf"]) {
|
|
2283
|
-
let r = e[n];
|
|
2284
|
-
if (!Array.isArray(r)) continue;
|
|
2285
|
-
let i = r.filter((e) => !$n(e));
|
|
2286
|
-
if (i.length !== r.length) return i.length === 1 ? {
|
|
2287
|
-
node: Z(i[0], t),
|
|
2288
|
-
nullable: !0
|
|
2289
|
-
} : {
|
|
2290
|
-
node: {
|
|
2291
|
-
...e,
|
|
2292
|
-
[n]: i
|
|
2293
|
-
},
|
|
2294
|
-
nullable: !0
|
|
2295
|
-
};
|
|
2296
|
-
}
|
|
2297
|
-
return {
|
|
2298
|
-
node: e,
|
|
2299
|
-
nullable: !1
|
|
2300
|
-
};
|
|
2301
|
-
}, tr = (e) => e.map((e) => ({
|
|
2302
|
-
value: String(e),
|
|
2303
|
-
label: Qn(String(e))
|
|
2304
|
-
})), nr = (e) => {
|
|
2305
|
-
let t = e.enum;
|
|
2306
|
-
if (Array.isArray(t) && t.length > 0) return {
|
|
2307
|
-
widget: "select",
|
|
2308
|
-
options: tr(t)
|
|
2309
|
-
};
|
|
2310
|
-
let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
|
|
2311
|
-
switch (r) {
|
|
2312
|
-
case "string": return i === "date" ? { widget: "date" } : i === "date-time" ? { widget: "datetime" } : { widget: "text" };
|
|
2313
|
-
case "integer":
|
|
2314
|
-
case "number": return { widget: "number" };
|
|
2315
|
-
case "boolean": return { widget: "checkbox" };
|
|
2316
|
-
case "array": return { widget: "multi-select" };
|
|
2317
|
-
default: return { widget: "custom" };
|
|
2318
|
-
}
|
|
2319
|
-
}, rr = (e, t, n) => Object.entries(e).map(([e, r]) => {
|
|
2320
|
-
let { node: i, nullable: a } = er(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = nr(o);
|
|
2321
|
-
return {
|
|
2322
|
-
name: e,
|
|
2323
|
-
label: Qn(e),
|
|
2324
|
-
widget: s,
|
|
2325
|
-
required: t.has(e),
|
|
2326
|
-
nullable: a,
|
|
2327
|
-
...c ? { options: c } : {},
|
|
2328
|
-
jsonSchema: o
|
|
2329
|
-
};
|
|
2330
|
-
}), ir = (e) => {
|
|
2331
|
-
try {
|
|
2332
|
-
return g.make(e);
|
|
2333
|
-
} catch {
|
|
2334
|
-
return;
|
|
2335
|
-
}
|
|
2336
|
-
}, Q = (e) => {
|
|
2337
|
-
let t = ir(e);
|
|
2338
|
-
if (t === void 0) return [];
|
|
2339
|
-
let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
|
|
2340
|
-
return i ? rr(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
|
|
2341
|
-
}, ar = (e) => {
|
|
2342
|
-
let t = ir(e);
|
|
2343
|
-
if (t === void 0) return [];
|
|
2344
|
-
let n = t.$defs ?? {}, r = Z(t, n);
|
|
2345
|
-
if (r.type !== "array") return [];
|
|
2346
|
-
let i = r.items;
|
|
2347
|
-
if (!i || typeof i != "object") return [];
|
|
2348
|
-
let a = Z(i, n), o = a.properties;
|
|
2349
|
-
return o ? rr(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
|
|
2350
|
-
}, or = (e, t) => {
|
|
2351
|
-
let n = b.decodeUnknownEither(e, { errors: "all" })(t);
|
|
2352
|
-
if (n._tag === "Right") return {
|
|
2353
|
-
valid: !0,
|
|
2354
|
-
errors: {}
|
|
2355
|
-
};
|
|
2356
|
-
let r = {};
|
|
2357
|
-
for (let e of E.formatErrorSync(n.left)) {
|
|
2358
|
-
let t = e.path.length === 0 ? "" : String(e.path[0]);
|
|
2359
|
-
t !== "" && !(t in r) && (r[t] = e.message);
|
|
2360
|
-
}
|
|
2361
|
-
return {
|
|
2362
|
-
valid: !1,
|
|
2363
|
-
errors: r
|
|
2364
|
-
};
|
|
2365
|
-
}, sr = (e, t, r) => {
|
|
2366
|
-
let i = N(e), a = K(e, t), l = r.schema ?? i.descriptors[t]?.input;
|
|
2367
|
-
process.env.NODE_ENV !== "production" && l === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
|
|
2368
|
-
let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
|
|
2369
|
-
p((n) => ({
|
|
2370
|
-
...n,
|
|
2371
|
-
[e]: t
|
|
2372
|
-
}));
|
|
2373
|
-
}, []), _ = n((e) => {
|
|
2374
|
-
p((t) => ({
|
|
2375
|
-
...t,
|
|
2376
|
-
...e
|
|
2377
|
-
}));
|
|
2378
|
-
}, []), v = n(() => {
|
|
2379
|
-
p(d.current), h({});
|
|
2380
|
-
}, []), y = n(async () => {
|
|
2381
|
-
if (l !== void 0) {
|
|
2382
|
-
let e = or(l, f);
|
|
2383
|
-
if (h(e.errors), !e.valid) return;
|
|
2621
|
+
}, yr = (e, t) => {
|
|
2622
|
+
let { errorBus: n } = W(e);
|
|
2623
|
+
y(() => n.on(t), [n, t]);
|
|
2624
|
+
}, br = (e, t) => {
|
|
2625
|
+
let n = globalThis, r = Symbol.for(`@voltro/web/context:${e}`), i = n[r];
|
|
2626
|
+
if (i) return i;
|
|
2627
|
+
let a = m(t);
|
|
2628
|
+
return n[r] = a, a;
|
|
2629
|
+
}, xr = br("serverRequest", null), Sr = () => _(xr), Cr = ({ value: e, children: t }) => /* @__PURE__ */ ae(xr.Provider, {
|
|
2630
|
+
value: e,
|
|
2631
|
+
children: t
|
|
2632
|
+
}), wr = (e) => {
|
|
2633
|
+
let t = Sr();
|
|
2634
|
+
return b(() => {
|
|
2635
|
+
if (t !== null) return t.formFlash?.formKey === e ? t.formFlash : void 0;
|
|
2636
|
+
if (typeof document > "u") return;
|
|
2637
|
+
let n = document.getElementById(f);
|
|
2638
|
+
if (n !== null && n.textContent !== null && n.textContent !== "") try {
|
|
2639
|
+
let t = JSON.parse(n.textContent);
|
|
2640
|
+
return t.formKey === e ? t : void 0;
|
|
2641
|
+
} catch {
|
|
2642
|
+
return;
|
|
2384
2643
|
}
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
l,
|
|
2388
|
-
f,
|
|
2389
|
-
a
|
|
2390
|
-
]);
|
|
2391
|
-
return {
|
|
2392
|
-
fields: u,
|
|
2393
|
-
values: f,
|
|
2394
|
-
errors: m,
|
|
2395
|
-
isValid: o(() => l === void 0 || or(l, f).valid, [l, f]),
|
|
2396
|
-
pending: a.pending,
|
|
2397
|
-
submitError: a.error,
|
|
2398
|
-
data: a.data,
|
|
2399
|
-
setValue: g,
|
|
2400
|
-
setValues: _,
|
|
2401
|
-
reset: v,
|
|
2402
|
-
submit: y
|
|
2403
|
-
};
|
|
2404
|
-
}, cr = (e, t, n) => e.map((e) => {
|
|
2644
|
+
}, [t, e]);
|
|
2645
|
+
}, Tr = (e, t, n) => e.map((e) => {
|
|
2405
2646
|
let r = String(e[n] ?? ""), i = e[t];
|
|
2406
2647
|
return {
|
|
2407
2648
|
value: r,
|
|
2408
2649
|
label: i == null ? r : String(i)
|
|
2409
2650
|
};
|
|
2410
|
-
}),
|
|
2411
|
-
let
|
|
2412
|
-
|
|
2413
|
-
if (
|
|
2414
|
-
let e = setTimeout(() =>
|
|
2651
|
+
}), Er = (e, t, n = {}) => {
|
|
2652
|
+
let r = n.debounceMs ?? 200, i = n.labelField ?? "name", a = n.valueField ?? "id", o = n.input ?? ((e) => ({ q: e })), [s, c] = S(n.initialTerm ?? ""), [l, u] = S(s);
|
|
2653
|
+
y(() => {
|
|
2654
|
+
if (s === l) return;
|
|
2655
|
+
let e = setTimeout(() => u(s), r);
|
|
2415
2656
|
return () => clearTimeout(e);
|
|
2416
2657
|
}, [
|
|
2417
|
-
d,
|
|
2418
|
-
p,
|
|
2419
|
-
i
|
|
2420
|
-
]);
|
|
2421
|
-
let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => cr(g.data ?? [], s, l), [
|
|
2422
|
-
g.data,
|
|
2423
2658
|
s,
|
|
2424
|
-
l
|
|
2425
|
-
|
|
2659
|
+
l,
|
|
2660
|
+
r
|
|
2661
|
+
]);
|
|
2662
|
+
let d = n.skipUntilTerm === !0 && l.trim() === "", f = Y(e, t, b(() => o(l), [o, l]), { skip: d }), p = b(() => Tr(f.data ?? [], i, a), [
|
|
2663
|
+
f.data,
|
|
2664
|
+
i,
|
|
2665
|
+
a
|
|
2666
|
+
]), m = g((e) => c(e), []);
|
|
2426
2667
|
return {
|
|
2427
|
-
options:
|
|
2428
|
-
loading: !
|
|
2429
|
-
term:
|
|
2430
|
-
search:
|
|
2668
|
+
options: p,
|
|
2669
|
+
loading: !d && f.data === void 0,
|
|
2670
|
+
term: s,
|
|
2671
|
+
search: m
|
|
2431
2672
|
};
|
|
2432
|
-
},
|
|
2433
|
-
let
|
|
2434
|
-
...
|
|
2435
|
-
limit:
|
|
2436
|
-
}, [
|
|
2437
|
-
|
|
2438
|
-
}, [
|
|
2439
|
-
|
|
2673
|
+
}, Dr = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Or = (e, t, n = {}) => {
|
|
2674
|
+
let r = W(e), [i, a] = S(n.pageSize), o = Y(e, t, b(() => i === void 0 ? n.input ?? {} : {
|
|
2675
|
+
...n.input,
|
|
2676
|
+
limit: i
|
|
2677
|
+
}, [n.input, i])), s = r.descriptors[t]?.output, c = g(() => {
|
|
2678
|
+
n.pageSize !== void 0 && a((e) => (e ?? n.pageSize) + n.pageSize);
|
|
2679
|
+
}, [n.pageSize]), u = b(() => n.columns ?? (s === void 0 ? [] : l(s)), [n.columns, s]), [d, f] = S(n.initialSort), p = g((e) => {
|
|
2680
|
+
f((t) => t?.column === e ? {
|
|
2440
2681
|
column: e,
|
|
2441
2682
|
direction: t.direction === "asc" ? "desc" : "asc"
|
|
2442
2683
|
} : {
|
|
@@ -2445,51 +2686,51 @@ var tn = () => {
|
|
|
2445
2686
|
});
|
|
2446
2687
|
}, []);
|
|
2447
2688
|
return {
|
|
2448
|
-
columns:
|
|
2449
|
-
rows:
|
|
2450
|
-
let e =
|
|
2451
|
-
if (
|
|
2452
|
-
let t =
|
|
2453
|
-
return [...e].sort((e, n) =>
|
|
2454
|
-
}, [
|
|
2455
|
-
loading:
|
|
2456
|
-
error:
|
|
2457
|
-
sort:
|
|
2458
|
-
toggleSort:
|
|
2459
|
-
loadMore:
|
|
2460
|
-
hasMore:
|
|
2689
|
+
columns: u,
|
|
2690
|
+
rows: b(() => {
|
|
2691
|
+
let e = o.data ?? [];
|
|
2692
|
+
if (d === void 0) return e;
|
|
2693
|
+
let t = d.direction === "asc" ? 1 : -1;
|
|
2694
|
+
return [...e].sort((e, n) => Dr(e[d.column], n[d.column]) * t);
|
|
2695
|
+
}, [o.data, d]),
|
|
2696
|
+
loading: o.data === void 0,
|
|
2697
|
+
error: o.error,
|
|
2698
|
+
sort: d,
|
|
2699
|
+
toggleSort: p,
|
|
2700
|
+
loadMore: c,
|
|
2701
|
+
hasMore: i !== void 0 && (o.data?.length ?? 0) >= i
|
|
2461
2702
|
};
|
|
2462
|
-
},
|
|
2703
|
+
}, kr = (e, t, n, r) => {
|
|
2463
2704
|
let i = e.replace(/\/$/, ""), a = new URLSearchParams({
|
|
2464
2705
|
table: t,
|
|
2465
2706
|
id: n
|
|
2466
2707
|
});
|
|
2467
2708
|
return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
|
|
2468
|
-
},
|
|
2469
|
-
let { inspectBaseUrl: i } =
|
|
2709
|
+
}, Ar = kr, jr = (e, t, n, r) => {
|
|
2710
|
+
let { inspectBaseUrl: i } = W(e), [a, o] = S({
|
|
2470
2711
|
data: void 0,
|
|
2471
2712
|
loading: !0,
|
|
2472
2713
|
error: void 0
|
|
2473
2714
|
});
|
|
2474
|
-
return
|
|
2715
|
+
return y(() => {
|
|
2475
2716
|
let e = !1;
|
|
2476
|
-
|
|
2717
|
+
o({
|
|
2477
2718
|
data: void 0,
|
|
2478
2719
|
loading: !0,
|
|
2479
2720
|
error: void 0
|
|
2480
2721
|
});
|
|
2481
|
-
let a =
|
|
2722
|
+
let a = kr(i ?? "", t, n, r);
|
|
2482
2723
|
return fetch(a).then(async (e) => {
|
|
2483
2724
|
if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
|
|
2484
2725
|
return await e.json();
|
|
2485
2726
|
}).then((t) => {
|
|
2486
|
-
e ||
|
|
2727
|
+
e || o({
|
|
2487
2728
|
data: t,
|
|
2488
2729
|
loading: !1,
|
|
2489
2730
|
error: void 0
|
|
2490
2731
|
});
|
|
2491
2732
|
}).catch((t) => {
|
|
2492
|
-
e ||
|
|
2733
|
+
e || o({
|
|
2493
2734
|
data: void 0,
|
|
2494
2735
|
loading: !1,
|
|
2495
2736
|
error: t
|
|
@@ -2503,24 +2744,24 @@ var tn = () => {
|
|
|
2503
2744
|
t,
|
|
2504
2745
|
n,
|
|
2505
2746
|
r
|
|
2506
|
-
]),
|
|
2507
|
-
},
|
|
2508
|
-
function
|
|
2509
|
-
return
|
|
2747
|
+
]), a;
|
|
2748
|
+
}, Mr = "admin:full", Nr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Pr = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), Fr = m({ scopes: [] });
|
|
2749
|
+
function Ir(e) {
|
|
2750
|
+
return h(Fr.Provider, { value: { scopes: e.scopes } }, e.children);
|
|
2510
2751
|
}
|
|
2511
|
-
var
|
|
2512
|
-
let { inspectBaseUrl: t } =
|
|
2752
|
+
var Lr = () => _(Fr), Rr = (e) => Nr(Lr().scopes, e), zr = (e) => Pr(Lr().scopes, e), Br = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, Vr = (e) => {
|
|
2753
|
+
let { inspectBaseUrl: t } = W(e), [n, r] = S({
|
|
2513
2754
|
manifest: void 0,
|
|
2514
2755
|
loading: !0,
|
|
2515
2756
|
error: void 0
|
|
2516
2757
|
});
|
|
2517
|
-
return
|
|
2758
|
+
return y(() => {
|
|
2518
2759
|
let e = !1;
|
|
2519
2760
|
return r({
|
|
2520
2761
|
manifest: void 0,
|
|
2521
2762
|
loading: !0,
|
|
2522
2763
|
error: void 0
|
|
2523
|
-
}), fetch(
|
|
2764
|
+
}), fetch(Br(t ?? "")).then(async (e) => {
|
|
2524
2765
|
if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
|
|
2525
2766
|
return await e.json();
|
|
2526
2767
|
}).then((t) => {
|
|
@@ -2539,7 +2780,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2539
2780
|
e = !0;
|
|
2540
2781
|
};
|
|
2541
2782
|
}, [e, t]), n;
|
|
2542
|
-
},
|
|
2783
|
+
}, Hr = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), Ur = (e, t) => {
|
|
2543
2784
|
if (e === void 0) return "unknown";
|
|
2544
2785
|
if (t.includes("admin:full") || e.length === 0) return "allowed";
|
|
2545
2786
|
let n = !1;
|
|
@@ -2548,7 +2789,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2548
2789
|
n = !0;
|
|
2549
2790
|
continue;
|
|
2550
2791
|
}
|
|
2551
|
-
if (!
|
|
2792
|
+
if (!Hr(t, r)) {
|
|
2552
2793
|
if (r.resourceScoped) {
|
|
2553
2794
|
n = !0;
|
|
2554
2795
|
continue;
|
|
@@ -2557,13 +2798,13 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2557
2798
|
}
|
|
2558
2799
|
}
|
|
2559
2800
|
return n ? "unknown" : "allowed";
|
|
2560
|
-
},
|
|
2801
|
+
}, Wr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), Gr = (e) => {
|
|
2561
2802
|
for (let t of e ?? []) if (t.kind === "open") return t.reason;
|
|
2562
|
-
},
|
|
2803
|
+
}, Kr = (e) => Ur(e, Lr().scopes), qr = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Jr = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Yr = (e) => e === void 0 ? {} : {
|
|
2563
2804
|
tag: e.tag,
|
|
2564
2805
|
...e.guards === void 0 ? {} : { guards: e.guards }
|
|
2565
|
-
},
|
|
2566
|
-
let n = e.procedures.find((e) => e.kind === "query" &&
|
|
2806
|
+
}, Xr = (e) => e.tables.filter((e) => !e.framework).map((t) => {
|
|
2807
|
+
let n = e.procedures.find((e) => e.kind === "query" && qr(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Jr(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Jr(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Jr(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
|
|
2567
2808
|
return {
|
|
2568
2809
|
table: t.name,
|
|
2569
2810
|
columns: t.columns.filter((e) => e.serverOnly !== !0),
|
|
@@ -2572,75 +2813,75 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2572
2813
|
reactive: t.reactive,
|
|
2573
2814
|
...o === void 0 ? {} : { pkColumn: o },
|
|
2574
2815
|
editable: (t.editable ?? !0) && o !== void 0,
|
|
2575
|
-
list:
|
|
2576
|
-
create:
|
|
2577
|
-
update:
|
|
2578
|
-
delete:
|
|
2816
|
+
list: Yr(n),
|
|
2817
|
+
create: Yr(r),
|
|
2818
|
+
update: Yr(i),
|
|
2819
|
+
delete: Yr(a)
|
|
2579
2820
|
};
|
|
2580
|
-
}),
|
|
2581
|
-
let [t,
|
|
2582
|
-
|
|
2583
|
-
}, []),
|
|
2584
|
-
let
|
|
2585
|
-
|
|
2586
|
-
}, [t, e]),
|
|
2587
|
-
let t =
|
|
2588
|
-
t !== void 0 && (await e.onRedo(t.invocationId),
|
|
2589
|
-
}, [
|
|
2590
|
-
return
|
|
2821
|
+
}), Zr = (e) => {
|
|
2822
|
+
let [t, n] = S([]), [r, i] = S([]), a = g((e) => {
|
|
2823
|
+
n((t) => [...t, e]), i([]);
|
|
2824
|
+
}, []), o = g(async () => {
|
|
2825
|
+
let r = t[t.length - 1];
|
|
2826
|
+
r !== void 0 && r.blockedBy === void 0 && (await e.onUndo(r.invocationId), n((e) => e.slice(0, -1)), i((e) => [...e, r]));
|
|
2827
|
+
}, [t, e]), s = g(async () => {
|
|
2828
|
+
let t = r[r.length - 1];
|
|
2829
|
+
t !== void 0 && (await e.onRedo(t.invocationId), i((e) => e.slice(0, -1)), n((e) => [...e, t]));
|
|
2830
|
+
}, [r, e]);
|
|
2831
|
+
return b(() => {
|
|
2591
2832
|
let e = t[t.length - 1];
|
|
2592
2833
|
return {
|
|
2593
|
-
record:
|
|
2594
|
-
undo:
|
|
2595
|
-
redo:
|
|
2834
|
+
record: a,
|
|
2835
|
+
undo: o,
|
|
2836
|
+
redo: s,
|
|
2596
2837
|
canUndo: t.length > 0 && e?.blockedBy === void 0,
|
|
2597
|
-
canRedo:
|
|
2838
|
+
canRedo: r.length > 0,
|
|
2598
2839
|
stack: t,
|
|
2599
2840
|
nextBlockedBy: e?.blockedBy
|
|
2600
2841
|
};
|
|
2601
2842
|
}, [
|
|
2602
2843
|
t,
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2844
|
+
r,
|
|
2845
|
+
a,
|
|
2846
|
+
o,
|
|
2847
|
+
s
|
|
2607
2848
|
]);
|
|
2608
|
-
},
|
|
2609
|
-
let
|
|
2849
|
+
}, Qr = "__voltro.undo.log", $r = "__voltro.undo.apply", ei = "__voltro.undo.redo", ti = (e, t) => {
|
|
2850
|
+
let n = t?.limit, { data: r } = Y(e, Qr, n === void 0 ? {} : { limit: n }), i = Q(e, $r), a = Q(e, ei), o = r ?? [], s = o.find((e) => !e.undone && !e.crossesAction), c = o.find((e) => e.undone), l = g(async (e) => {
|
|
2851
|
+
await i.mutate({ invocationId: e });
|
|
2852
|
+
}, [i]), u = g(async (e) => {
|
|
2610
2853
|
await a.mutate({ invocationId: e });
|
|
2611
|
-
}, [a]), d =
|
|
2612
|
-
await
|
|
2613
|
-
}, [
|
|
2854
|
+
}, [a]), d = g(async () => {
|
|
2855
|
+
s && await l(s.id);
|
|
2856
|
+
}, [s, l]), f = g(async () => {
|
|
2614
2857
|
c && await u(c.id);
|
|
2615
|
-
}, [c, u])
|
|
2616
|
-
l && await d(l.id);
|
|
2617
|
-
}, [l, d]);
|
|
2858
|
+
}, [c, u]);
|
|
2618
2859
|
return {
|
|
2619
|
-
entries:
|
|
2620
|
-
loading:
|
|
2621
|
-
canUndo:
|
|
2622
|
-
canRedo:
|
|
2623
|
-
undo:
|
|
2624
|
-
redo:
|
|
2625
|
-
undoLast:
|
|
2626
|
-
redoLast:
|
|
2860
|
+
entries: o,
|
|
2861
|
+
loading: r === void 0,
|
|
2862
|
+
canUndo: s !== void 0,
|
|
2863
|
+
canRedo: c !== void 0,
|
|
2864
|
+
undo: l,
|
|
2865
|
+
redo: u,
|
|
2866
|
+
undoLast: d,
|
|
2867
|
+
redoLast: f
|
|
2627
2868
|
};
|
|
2628
|
-
},
|
|
2869
|
+
}, ni = (e, t) => ({
|
|
2629
2870
|
name: e,
|
|
2630
2871
|
map: t
|
|
2631
|
-
}),
|
|
2872
|
+
}), ri = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), ii = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), ai = (e, t, n) => {
|
|
2632
2873
|
let r = { ...t };
|
|
2633
2874
|
for (let [i, a] of Object.entries(e.map)) {
|
|
2634
|
-
if (
|
|
2875
|
+
if (ii.has(i) || a === void 0) continue;
|
|
2635
2876
|
let e = t[i];
|
|
2636
2877
|
r[i] = (...r) => {
|
|
2637
|
-
let i =
|
|
2878
|
+
let i = ri(a, t);
|
|
2638
2879
|
if (i !== null && n(i), typeof e == "function") return e(...r);
|
|
2639
2880
|
};
|
|
2640
2881
|
}
|
|
2641
2882
|
return r;
|
|
2642
|
-
},
|
|
2643
|
-
let r =
|
|
2883
|
+
}, oi = (e, t, n) => {
|
|
2884
|
+
let r = x({
|
|
2644
2885
|
spec: e,
|
|
2645
2886
|
props: t,
|
|
2646
2887
|
sink: n
|
|
@@ -2649,47 +2890,47 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2649
2890
|
spec: e,
|
|
2650
2891
|
props: t,
|
|
2651
2892
|
sink: n
|
|
2652
|
-
},
|
|
2653
|
-
let e = r.current, t =
|
|
2893
|
+
}, y(() => {
|
|
2894
|
+
let e = r.current, t = ri(e.spec.map.onMount, e.props);
|
|
2654
2895
|
return t !== null && e.sink(t), () => {
|
|
2655
|
-
let e = r.current, t =
|
|
2896
|
+
let e = r.current, t = ri(e.spec.map.onUnmount, e.props);
|
|
2656
2897
|
t !== null && e.sink(t);
|
|
2657
2898
|
};
|
|
2658
|
-
}, []),
|
|
2899
|
+
}, []), b(() => ai(e, t, n), [
|
|
2659
2900
|
e,
|
|
2660
2901
|
t,
|
|
2661
2902
|
n
|
|
2662
2903
|
]);
|
|
2663
|
-
},
|
|
2664
|
-
let n =
|
|
2665
|
-
return
|
|
2666
|
-
},
|
|
2667
|
-
let n =
|
|
2668
|
-
return
|
|
2669
|
-
},
|
|
2904
|
+
}, si = (e, t) => {
|
|
2905
|
+
let n = W(e).descriptors[t]?.input;
|
|
2906
|
+
return b(() => n === void 0 ? [] : o(n), [n]);
|
|
2907
|
+
}, ci = (e, t) => {
|
|
2908
|
+
let n = W(e).descriptors[t]?.output;
|
|
2909
|
+
return b(() => n === void 0 ? [] : l(n), [n]);
|
|
2910
|
+
}, li = (e, t) => {
|
|
2670
2911
|
if (e === t) return !0;
|
|
2671
2912
|
if (e.length !== t.length) return !1;
|
|
2672
2913
|
for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
|
|
2673
2914
|
return !0;
|
|
2674
|
-
},
|
|
2675
|
-
let n =
|
|
2676
|
-
return (n.current === null || !
|
|
2915
|
+
}, ui = (e) => Object.keys(e).sort().map((t) => e[t]), di = (e, t) => {
|
|
2916
|
+
let n = x(null), r = ui(e);
|
|
2917
|
+
return (n.current === null || !li(n.current.key, r)) && (n.current = {
|
|
2677
2918
|
key: r,
|
|
2678
2919
|
value: t(e)
|
|
2679
2920
|
}), n.current.value;
|
|
2680
|
-
},
|
|
2681
|
-
let i =
|
|
2682
|
-
return
|
|
2921
|
+
}, fi = (e, t, n, r = {}) => {
|
|
2922
|
+
let i = Y(e, t, { ...n }, r);
|
|
2923
|
+
return b(() => ({
|
|
2683
2924
|
allowed: i.data?.allowed === !0,
|
|
2684
2925
|
pending: i.data === void 0
|
|
2685
2926
|
}), [i.data]);
|
|
2686
|
-
},
|
|
2687
|
-
let i =
|
|
2688
|
-
return
|
|
2927
|
+
}, pi = (e, t, n, r = {}) => {
|
|
2928
|
+
let i = Y(e, t, { ...n }, r);
|
|
2929
|
+
return b(() => ({
|
|
2689
2930
|
allowedIds: new Set(i.data?.allowedIds ?? []),
|
|
2690
2931
|
pending: i.data === void 0
|
|
2691
2932
|
}), [i.data]);
|
|
2692
|
-
},
|
|
2933
|
+
}, mi = (e) => {
|
|
2693
2934
|
switch (e) {
|
|
2694
2935
|
case "select":
|
|
2695
2936
|
case "radio":
|
|
@@ -2705,49 +2946,50 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2705
2946
|
case "switch": return "boolean";
|
|
2706
2947
|
default: return null;
|
|
2707
2948
|
}
|
|
2708
|
-
},
|
|
2709
|
-
|
|
2949
|
+
}, hi = (e) => o(e).map((e) => {
|
|
2950
|
+
if (e.name.includes(".")) return null;
|
|
2951
|
+
let t = mi(e.widget);
|
|
2710
2952
|
return t === null ? null : {
|
|
2711
2953
|
name: e.name,
|
|
2712
2954
|
label: e.label,
|
|
2713
2955
|
kind: t,
|
|
2714
2956
|
...e.options ? { options: e.options } : {}
|
|
2715
2957
|
};
|
|
2716
|
-
}).filter((e) => e !== null),
|
|
2958
|
+
}).filter((e) => e !== null), gi = (e) => {
|
|
2717
2959
|
let t = {};
|
|
2718
2960
|
for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
|
|
2719
2961
|
return t;
|
|
2720
|
-
},
|
|
2721
|
-
let
|
|
2722
|
-
|
|
2962
|
+
}, _i = (e, t, n = {}) => {
|
|
2963
|
+
let r = W(e).descriptors[t]?.input, i = b(() => r === void 0 ? [] : hi(r), [r]), [a, o] = S(n.initial ?? {}), s = g((e, t) => {
|
|
2964
|
+
o((n) => gi({
|
|
2723
2965
|
...n,
|
|
2724
2966
|
[e]: t
|
|
2725
2967
|
}));
|
|
2726
|
-
}, []),
|
|
2968
|
+
}, []), c = g(() => o({}), []), l = Y(e, t, b(() => gi(a), [a]));
|
|
2727
2969
|
return {
|
|
2728
|
-
filters:
|
|
2729
|
-
values:
|
|
2730
|
-
setFilter:
|
|
2731
|
-
clear:
|
|
2732
|
-
rows:
|
|
2733
|
-
count:
|
|
2734
|
-
loading:
|
|
2735
|
-
error:
|
|
2970
|
+
filters: i,
|
|
2971
|
+
values: a,
|
|
2972
|
+
setFilter: s,
|
|
2973
|
+
clear: c,
|
|
2974
|
+
rows: l.data ?? [],
|
|
2975
|
+
count: l.data?.length,
|
|
2976
|
+
loading: l.data === void 0,
|
|
2977
|
+
error: l.error
|
|
2736
2978
|
};
|
|
2737
|
-
},
|
|
2738
|
-
let r =
|
|
2979
|
+
}, vi = (e, t, n = {}) => {
|
|
2980
|
+
let r = Y(e, t, n), i = r.data;
|
|
2739
2981
|
return {
|
|
2740
2982
|
record: Array.isArray(i) ? i[0] : i,
|
|
2741
2983
|
loading: i === void 0,
|
|
2742
2984
|
error: r.error
|
|
2743
2985
|
};
|
|
2744
|
-
},
|
|
2745
|
-
let [n, r] =
|
|
2746
|
-
return
|
|
2986
|
+
}, yi = (e, t = 300) => {
|
|
2987
|
+
let [n, r] = S(e);
|
|
2988
|
+
return y(() => {
|
|
2747
2989
|
let n = setTimeout(() => r(e), t);
|
|
2748
2990
|
return () => clearTimeout(n);
|
|
2749
2991
|
}, [e, t]), n;
|
|
2750
|
-
},
|
|
2992
|
+
}, bi = (e) => {
|
|
2751
2993
|
let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
|
|
2752
2994
|
if (a && t.trim() === "") return {
|
|
2753
2995
|
status: "idle",
|
|
@@ -2765,39 +3007,39 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2765
3007
|
valid: o.valid,
|
|
2766
3008
|
message: o.message
|
|
2767
3009
|
};
|
|
2768
|
-
},
|
|
2769
|
-
let { input: i, interpret: a, debounceMs:
|
|
2770
|
-
return
|
|
3010
|
+
}, xi = (e, t, n, r) => {
|
|
3011
|
+
let { input: i, interpret: a, debounceMs: o = 300, skipEmpty: s = !0 } = r, c = yi(n, o), l = s && c.trim() === "", u = Y(e, t, b(() => i ? i(c) : { value: c }, [i, c]), { skip: l });
|
|
3012
|
+
return bi({
|
|
2771
3013
|
value: n,
|
|
2772
|
-
debouncedValue:
|
|
2773
|
-
data:
|
|
3014
|
+
debouncedValue: c,
|
|
3015
|
+
data: l ? null : u.data,
|
|
2774
3016
|
interpret: a,
|
|
2775
|
-
skipEmpty:
|
|
3017
|
+
skipEmpty: s
|
|
2776
3018
|
});
|
|
2777
|
-
},
|
|
3019
|
+
}, Si = (e, t) => ({
|
|
2778
3020
|
name: e,
|
|
2779
3021
|
payload: t
|
|
2780
|
-
}),
|
|
2781
|
-
let n =
|
|
3022
|
+
}), Ci = (e, t) => {
|
|
3023
|
+
let n = j.decodeUnknownEither(e.payload, { errors: "all" })(t);
|
|
2782
3024
|
if (n._tag === "Right") return {
|
|
2783
3025
|
valid: !0,
|
|
2784
3026
|
errors: {}
|
|
2785
3027
|
};
|
|
2786
3028
|
let r = {};
|
|
2787
|
-
for (let e of
|
|
3029
|
+
for (let e of ce.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
|
|
2788
3030
|
return {
|
|
2789
3031
|
valid: !1,
|
|
2790
3032
|
errors: r
|
|
2791
3033
|
};
|
|
2792
|
-
},
|
|
3034
|
+
}, wi = (e) => {
|
|
2793
3035
|
let t = new Map(e.map((e) => [e.name, e]));
|
|
2794
3036
|
return {
|
|
2795
3037
|
names: [...t.keys()].sort(),
|
|
2796
3038
|
get: (e) => t.get(e),
|
|
2797
3039
|
events: e
|
|
2798
3040
|
};
|
|
2799
|
-
},
|
|
2800
|
-
let n =
|
|
3041
|
+
}, Ti = (e, t) => {
|
|
3042
|
+
let n = wi(e);
|
|
2801
3043
|
return {
|
|
2802
3044
|
track: (e, r) => {
|
|
2803
3045
|
let i = n.get(e);
|
|
@@ -2806,7 +3048,7 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2806
3048
|
return;
|
|
2807
3049
|
}
|
|
2808
3050
|
if (process.env.NODE_ENV !== "production") {
|
|
2809
|
-
let t =
|
|
3051
|
+
let t = Ci(i, r);
|
|
2810
3052
|
t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
|
|
2811
3053
|
}
|
|
2812
3054
|
t({
|
|
@@ -2817,44 +3059,49 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2817
3059
|
names: n.names,
|
|
2818
3060
|
catalog: n
|
|
2819
3061
|
};
|
|
2820
|
-
},
|
|
2821
|
-
let
|
|
3062
|
+
}, Ei = (e, t) => {
|
|
3063
|
+
let n = Xt(e, t);
|
|
2822
3064
|
return {
|
|
2823
|
-
preview:
|
|
2824
|
-
diff:
|
|
2825
|
-
pending:
|
|
2826
|
-
error:
|
|
3065
|
+
preview: g((e) => n.run(e), [n]),
|
|
3066
|
+
diff: n.lastResult,
|
|
3067
|
+
pending: n.pending,
|
|
3068
|
+
error: n.error
|
|
2827
3069
|
};
|
|
2828
|
-
},
|
|
3070
|
+
}, Di = (e, t, n, r) => [...e, {
|
|
2829
3071
|
id: t,
|
|
2830
3072
|
tag: n,
|
|
2831
3073
|
input: r,
|
|
2832
3074
|
status: "pending",
|
|
2833
3075
|
attempts: 0
|
|
2834
|
-
}],
|
|
3076
|
+
}], Oi = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2835
3077
|
...e,
|
|
2836
3078
|
...n
|
|
2837
|
-
} : e),
|
|
3079
|
+
} : e), ki = (e, t) => Oi(e, t, { status: "sent" }), Ai = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2838
3080
|
...e,
|
|
2839
3081
|
status: "failed",
|
|
2840
3082
|
error: n,
|
|
2841
3083
|
attempts: e.attempts + 1
|
|
2842
|
-
} : e),
|
|
3084
|
+
} : e), ji = (e, t, n) => Oi(e, t, {
|
|
2843
3085
|
status: "conflict",
|
|
2844
3086
|
error: n
|
|
2845
|
-
}),
|
|
3087
|
+
}), Mi = (e, t, n) => e.map((e) => e.id === t && e.status === "conflict" ? {
|
|
3088
|
+
...e,
|
|
3089
|
+
input: n,
|
|
3090
|
+
status: "pending",
|
|
3091
|
+
error: void 0
|
|
3092
|
+
} : e), Ni = (e) => e.filter((e) => e.status !== "sent"), Pi = (e) => {
|
|
2846
3093
|
let t = [];
|
|
2847
3094
|
for (let n of e) {
|
|
2848
3095
|
if (n.status === "conflict") break;
|
|
2849
3096
|
(n.status === "pending" || n.status === "failed") && t.push(n);
|
|
2850
3097
|
}
|
|
2851
3098
|
return t;
|
|
2852
|
-
},
|
|
3099
|
+
}, Fi = (e) => {
|
|
2853
3100
|
let t = e;
|
|
2854
3101
|
return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
|
|
2855
|
-
},
|
|
2856
|
-
let [t, n] =
|
|
2857
|
-
return
|
|
3102
|
+
}, Ii = (e) => {
|
|
3103
|
+
let [t, n] = S(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
|
|
3104
|
+
return y(() => {
|
|
2858
3105
|
if (e !== void 0) {
|
|
2859
3106
|
n(e);
|
|
2860
3107
|
return;
|
|
@@ -2865,34 +3112,53 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2865
3112
|
window.removeEventListener("online", t), window.removeEventListener("offline", r);
|
|
2866
3113
|
};
|
|
2867
3114
|
}, [e]), t;
|
|
2868
|
-
},
|
|
2869
|
-
let { send: t, isConflict: r =
|
|
2870
|
-
|
|
2871
|
-
let
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
3115
|
+
}, Li = (e) => {
|
|
3116
|
+
let { send: t, persistence: n, isConflict: r = Fi, idFor: i } = e, [a, o] = S([]), s = Ii(e.online), c = x(a);
|
|
3117
|
+
c.current = a;
|
|
3118
|
+
let l = x(0), u = x(Math.random().toString(36).slice(2, 8)), d = x(n === void 0);
|
|
3119
|
+
y(() => {
|
|
3120
|
+
if (n === void 0 || d.current) return;
|
|
3121
|
+
let e = !1;
|
|
3122
|
+
return n.load().then((t) => {
|
|
3123
|
+
e || (d.current = !0, t.length > 0 && o((e) => [...t, ...e]));
|
|
3124
|
+
}).catch(() => {
|
|
3125
|
+
d.current = !0;
|
|
3126
|
+
}), () => {
|
|
3127
|
+
e = !0;
|
|
3128
|
+
};
|
|
3129
|
+
}, [n]), y(() => {
|
|
3130
|
+
n === void 0 || !d.current || n.save(Ni(a)).catch(() => {});
|
|
3131
|
+
}, [n, a]);
|
|
3132
|
+
let f = g((e, t) => {
|
|
3133
|
+
let n = i?.() ?? `obx_${u.current}_${l.current++}_${e}`;
|
|
3134
|
+
o((r) => Di(r, n, e, t));
|
|
3135
|
+
}, [i]), p = g(async () => {
|
|
3136
|
+
for (let e of Pi(c.current)) try {
|
|
3137
|
+
await t(e), o((t) => ki(t, e.id));
|
|
2877
3138
|
} catch (t) {
|
|
2878
3139
|
if (r(t)) {
|
|
2879
|
-
|
|
3140
|
+
o((n) => ji(n, e.id, t));
|
|
2880
3141
|
break;
|
|
2881
3142
|
}
|
|
2882
|
-
|
|
3143
|
+
o((n) => Ai(n, e.id, t));
|
|
2883
3144
|
}
|
|
2884
3145
|
}, [t, r]);
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
}, [
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
3146
|
+
y(() => {
|
|
3147
|
+
s && p();
|
|
3148
|
+
}, [s, p]);
|
|
3149
|
+
let m = g((e, t) => {
|
|
3150
|
+
o((n) => Mi(n, e, t)), s && p();
|
|
3151
|
+
}, [s, p]);
|
|
3152
|
+
return {
|
|
3153
|
+
queue: a,
|
|
3154
|
+
enqueue: f,
|
|
3155
|
+
replay: p,
|
|
3156
|
+
online: s,
|
|
3157
|
+
pending: a.filter((e) => e.status === "pending" || e.status === "failed").length,
|
|
3158
|
+
conflicts: a.filter((e) => e.status === "conflict"),
|
|
3159
|
+
resolveConflict: m
|
|
2894
3160
|
};
|
|
2895
|
-
},
|
|
3161
|
+
}, Ri = (e) => {
|
|
2896
3162
|
let { scrollTop: t, viewportHeight: n, rowHeight: r, overscan: i = 5, total: a } = e, o = r > 0 ? r : 1, s = Math.max(0, Math.floor(t / o)), c = Math.ceil(n / o), l = Math.max(0, s - i), u = s + c + i, d = a === void 0 ? u : Math.min(u, a);
|
|
2897
3163
|
return {
|
|
2898
3164
|
startIndex: l,
|
|
@@ -2902,67 +3168,67 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2902
3168
|
topSpacer: l * r,
|
|
2903
3169
|
bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
|
|
2904
3170
|
};
|
|
2905
|
-
},
|
|
2906
|
-
let { rowHeight:
|
|
2907
|
-
scrollTop:
|
|
2908
|
-
viewportHeight:
|
|
2909
|
-
rowHeight:
|
|
2910
|
-
...
|
|
2911
|
-
...
|
|
3171
|
+
}, zi = (e, t, n) => {
|
|
3172
|
+
let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] = S(0), u = b(() => Ri({
|
|
3173
|
+
scrollTop: c,
|
|
3174
|
+
viewportHeight: i,
|
|
3175
|
+
rowHeight: r,
|
|
3176
|
+
...a === void 0 ? {} : { overscan: a },
|
|
3177
|
+
...o === void 0 ? {} : { total: o }
|
|
2912
3178
|
}), [
|
|
2913
|
-
|
|
2914
|
-
a,
|
|
3179
|
+
c,
|
|
2915
3180
|
i,
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
3181
|
+
r,
|
|
3182
|
+
a,
|
|
3183
|
+
o
|
|
3184
|
+
]), d = Y(e, t, b(() => ({
|
|
3185
|
+
...s,
|
|
3186
|
+
offset: u.offset,
|
|
3187
|
+
limit: u.limit
|
|
2922
3188
|
}), [
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
])),
|
|
2927
|
-
|
|
3189
|
+
s,
|
|
3190
|
+
u.offset,
|
|
3191
|
+
u.limit
|
|
3192
|
+
])), f = g((e) => {
|
|
3193
|
+
l(e.currentTarget.scrollTop);
|
|
2928
3194
|
}, []);
|
|
2929
3195
|
return {
|
|
2930
|
-
rows:
|
|
2931
|
-
window:
|
|
2932
|
-
onScroll:
|
|
2933
|
-
topSpacer:
|
|
2934
|
-
bottomSpacer:
|
|
2935
|
-
loading:
|
|
2936
|
-
error:
|
|
3196
|
+
rows: d.data ?? [],
|
|
3197
|
+
window: u,
|
|
3198
|
+
onScroll: f,
|
|
3199
|
+
topSpacer: u.topSpacer,
|
|
3200
|
+
bottomSpacer: u.bottomSpacer,
|
|
3201
|
+
loading: d.data === void 0,
|
|
3202
|
+
error: d.error
|
|
2937
3203
|
};
|
|
2938
|
-
},
|
|
2939
|
-
let { errorBus: t } =
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
}), []),
|
|
3204
|
+
}, Bi = () => typeof navigator > "u" || navigator.onLine, Vi = (e) => {
|
|
3205
|
+
let { errorBus: t } = W(e), [n, r] = S(Bi), [i, a] = S(0), [o, s] = S(void 0), c = x(!0);
|
|
3206
|
+
y(() => (c.current = !0, () => {
|
|
3207
|
+
c.current = !1;
|
|
3208
|
+
}), []), y(() => {
|
|
2943
3209
|
if (typeof window > "u") return;
|
|
2944
3210
|
let e = () => {
|
|
2945
|
-
|
|
2946
|
-
}, t = () =>
|
|
3211
|
+
r(!0), a(0);
|
|
3212
|
+
}, t = () => r(!1);
|
|
2947
3213
|
return window.addEventListener("online", e), window.addEventListener("offline", t), () => {
|
|
2948
3214
|
window.removeEventListener("online", e), window.removeEventListener("offline", t);
|
|
2949
3215
|
};
|
|
2950
|
-
}, []),
|
|
3216
|
+
}, []), y(() => {
|
|
2951
3217
|
if (t?.on) return t.on(() => {
|
|
2952
|
-
|
|
3218
|
+
c.current && (a((e) => e + 1), s(Date.now()));
|
|
2953
3219
|
});
|
|
2954
3220
|
}, [t]);
|
|
2955
|
-
let
|
|
2956
|
-
|
|
3221
|
+
let l = g(() => {
|
|
3222
|
+
a(0);
|
|
2957
3223
|
}, []);
|
|
2958
3224
|
return {
|
|
2959
|
-
status:
|
|
2960
|
-
online:
|
|
2961
|
-
failureCount:
|
|
2962
|
-
lastFailureAt:
|
|
2963
|
-
reportSuccess:
|
|
3225
|
+
status: n ? i > 0 ? "degraded" : "connected" : "offline",
|
|
3226
|
+
online: n,
|
|
3227
|
+
failureCount: i,
|
|
3228
|
+
lastFailureAt: o,
|
|
3229
|
+
reportSuccess: l
|
|
2964
3230
|
};
|
|
2965
|
-
},
|
|
3231
|
+
}, Hi = "__voltro.connections.list", Ui = "__voltro.connections.start", Wi = "__voltro.connections.submitToken", Gi = "__voltro.connections.disconnect", Ki = {
|
|
2966
3232
|
connectionId: "",
|
|
2967
3233
|
kind: "oauth2",
|
|
2968
3234
|
label: "",
|
|
@@ -2973,55 +3239,55 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
2973
3239
|
expiresAt: null,
|
|
2974
3240
|
lastError: null,
|
|
2975
3241
|
connectedAt: null
|
|
2976
|
-
},
|
|
3242
|
+
}, qi = (e, t) => {
|
|
2977
3243
|
if (t === "redirect") {
|
|
2978
3244
|
globalThis.location.assign(e);
|
|
2979
3245
|
return;
|
|
2980
3246
|
}
|
|
2981
3247
|
globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
|
|
2982
|
-
},
|
|
2983
|
-
let { data: t } =
|
|
3248
|
+
}, Ji = (e) => {
|
|
3249
|
+
let { data: t } = Y(e, Hi, {}), n = Xt(e, Ui), r = Q(e, Wi), i = Q(e, Gi), a = t ?? [], o = n.pending || r.pending || i.pending, s = g((e) => ({
|
|
2984
3250
|
...e,
|
|
2985
3251
|
connected: e.status === "connected",
|
|
2986
3252
|
needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
|
|
2987
|
-
pending:
|
|
3253
|
+
pending: o,
|
|
2988
3254
|
connect: async (t) => {
|
|
2989
3255
|
if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
|
|
2990
|
-
let
|
|
2991
|
-
|
|
3256
|
+
let r = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
|
|
3257
|
+
qi((await n.run({
|
|
2992
3258
|
connectionId: e.connectionId,
|
|
2993
|
-
redirectTo:
|
|
3259
|
+
redirectTo: r
|
|
2994
3260
|
})).authorizeUrl, t?.mode);
|
|
2995
3261
|
},
|
|
2996
3262
|
submitToken: async (t) => {
|
|
2997
3263
|
if (e.kind !== "pat") throw Error(`connection "${e.connectionId}" uses OAuth — call connect(), not submitToken().`);
|
|
2998
|
-
await
|
|
3264
|
+
await r.mutate({
|
|
2999
3265
|
connectionId: e.connectionId,
|
|
3000
3266
|
token: t
|
|
3001
3267
|
});
|
|
3002
3268
|
},
|
|
3003
3269
|
disconnect: async () => {
|
|
3004
|
-
await
|
|
3270
|
+
await i.mutate({ connectionId: e.connectionId });
|
|
3005
3271
|
}
|
|
3006
3272
|
}), [
|
|
3007
|
-
|
|
3273
|
+
o,
|
|
3274
|
+
n,
|
|
3008
3275
|
r,
|
|
3009
|
-
i
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
}, [o, c]);
|
|
3276
|
+
i
|
|
3277
|
+
]), c = g((e) => {
|
|
3278
|
+
let t = a.find((t) => t.connectionId === e);
|
|
3279
|
+
return t === void 0 ? void 0 : s(t);
|
|
3280
|
+
}, [a, s]);
|
|
3015
3281
|
return {
|
|
3016
|
-
connections:
|
|
3282
|
+
connections: a,
|
|
3017
3283
|
loading: t === void 0,
|
|
3018
|
-
get:
|
|
3019
|
-
pending:
|
|
3284
|
+
get: c,
|
|
3285
|
+
pending: o
|
|
3020
3286
|
};
|
|
3021
|
-
},
|
|
3022
|
-
let n =
|
|
3023
|
-
return
|
|
3024
|
-
...
|
|
3287
|
+
}, Yi = (e, t) => {
|
|
3288
|
+
let n = Ji(e), r = n.get(t);
|
|
3289
|
+
return b(() => r === void 0 ? {
|
|
3290
|
+
...Ki,
|
|
3025
3291
|
connectionId: t,
|
|
3026
3292
|
label: t,
|
|
3027
3293
|
connected: !1,
|
|
@@ -3046,6 +3312,6 @@ var $ = () => r(vr), br = (e) => gr($().scopes, e), xr = (e) => _r($().scopes, e
|
|
|
3046
3312
|
n.loading,
|
|
3047
3313
|
n.pending
|
|
3048
3314
|
]);
|
|
3049
|
-
},
|
|
3315
|
+
}, Xi = "framework-client";
|
|
3050
3316
|
//#endregion
|
|
3051
|
-
export {
|
|
3317
|
+
export { Mr as ADMIN_SCOPE, Xi as CLIENT_NAME, Hi as CONNECTIONS_LIST_TAG, Gi as CONNECTION_DISCONNECT_TAG, Ui as CONNECTION_START_TAG, Wi as CONNECTION_SUBMIT_TOKEN_TAG, f as FORM_FLASH_SCRIPT_ID, s as FORM_KEY_FIELD, u as FORM_PATH_PREFIX, i as FORM_REDIRECT_FIELD, xe as FrameworkRuntimesContext, Ie as FrameworkRuntimesProvider, be as LoadingSubscriptionCache, Ir as PermissionProvider, V as RpcErrorBus, xr as ServerRequestContext, Cr as ServerRequestProvider, B as SubscriptionCache, $r as UNDO_APPLY_TAG, Qr as UNDO_LOG_TAG, ei as UNDO_REDO_TAG, Qt as ValidationMessagesProvider, De as _resetFrameworkRuntimesWarning, _n as applyPreloadSeeds, bt as applyStoreSeeds, Ae as buildApiRuntime, Nr as canCall, Pr as canCallAny, Mt as clearMutations, Ni as clearSent, nt as clearStoreHistory, Ri as computeWindow, Ti as createAnalytics, ln as createHooks, Ur as decideAccess, d as decodeFieldIssues, Si as defineEvent, ht as defineStore, ni as defineTracking, mt as definedStores, Xr as deriveEntityAdmins, t as documentLocale, Di as enqueueEntry, wi as eventCatalog, hi as filtersFromSchema, e as formActionPath, c as formDataToInput, n as formField, r as formSections, Vt as freshIdempotencyKey, It as getMutationNotifier, At as getMutations, br as globalContext, pr as isUnauthenticated, ke as isUnresolvedApi, un as makePreloadSeedBag, _t as makeStoreSeedBag, Br as manifestUrl, ji as markConflict, Ai as markFailed, ki as markSent, Gr as openAccessReason, Ar as provenanceUrl, gr as publishClientError, I as publishClientTrace, yn as readPreloadedSeedOutcome, vn as readPreloadedSnapshot, Pi as replayable, vr as reportClientError, Wr as requiredScopes, bn as resetPreloadSeeds, gt as resetStoreRegistryForTests, He as resetStoreStorageForTest, J as resolveByTag, Mi as resolveConflictEntry, Ve as resolveStoreStorage, ri as resolveTrackingEvent, a as resolveValidationMessage, ir as resumableConsumeProgram, Tr as rowsToOptions, En as runSequence, l as schemaToColumns, o as schemaToFields, hn as seedPreloadedSubscription, gn as seedPreloadedSubscriptionFailure, yt as seedStore, Tn as sequence, Ft as setMutationNotifier, fn as setPreloadSeedResolver, vt as setStoreSeedResolver, Be as setStoreStorage, kt as settleMutation, Ue as shallow, li as shallowArrayEqual, ui as sourceValues, Ce as ssrClientProxy, we as ssrStubHandle, L as stableKey, Fe as startApiSupervisor, Ot as startMutation, et as storeHistory, _r as subscribeClientErrors, ue as subscribeClientTraces, jt as subscribeMutations, tt as subscribeStoreHistory, R as supersedesConfirmedPatches, rt as travelToStoreState, Kr as useAccessDecision, Xt as useAction, ur as useAgent, lr as useAgentChat, rr as useAgentStream, xi as useAsyncValidation, Rr as useCan, zr as useCanAny, Vr as useCapabilityManifest, Yi as useConnection, Vi as useConnectionStatus, Ji as useConnections, dr as useDataCopilot, Or as useDataTable, yi as useDebounced, di as useDerived, wn as useEvent, on as useFormBinding, sn as useFormField, wr as useFormFlash, si as useFormSkeleton, W as useFrameworkApi, Oe as useFrameworkRuntimes, Q as useMutation, yr as useOnRpcError, Li as useOutbox, Lr as usePermissions, xn as usePreloadedSubscription, Ei as usePreview, jr as useProvenance, Er as useQueryField, _i as useQueryFilters, vi as useRecord, fr as useRefreshSubscriptions, fi as useResourceCan, pi as useResourceCans, or as useResumableAgentStream, Dn as useSequence, Sr as useServerRequest, Y as useSubscription, ci as useTableSkeleton, oi as useTracking, Zr as useUndo, ti as useUndoLog, Bn as useUpload, $t as useValidationMessages, zi as useWindowedSubscription, Vn as useWorkflow, Yn as useWorkflowDomainEvents, Xn as useWorkflowEventDeliveries, Jn as useWorkflowEvents, Wn as useWorkflowRun, qn as useWorkflowRunEvents, nr as useWorkflowRunState, Kn as useWorkflowRunSteps, Gn as useWorkflowRuns, Hn as useWorkflowSignal, Un as useWorkflowUpdate, Ci as validateEventPayload, p as validateFields, bi as validationStatus, mr as wireAuthRefresh, Ht as withIdempotencyKey, ai as wrapTrackedCallbacks };
|