@voltro/client 0.52.0 → 0.54.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 +424 -0
- package/THIRD-PARTY-NOTICES.md +169 -1
- package/dist/form.d.ts +111 -10
- package/dist/form.js +2 -2
- package/dist/formData-BO7zkG_F.js +386 -0
- package/dist/index.d.ts +393 -16
- package/dist/index.js +1158 -810
- package/package.json +4 -2
- package/dist/formData-Bw07C0wr.js +0 -155
package/dist/index.js
CHANGED
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import { a as e, c as t,
|
|
2
|
-
import { createContext as
|
|
3
|
-
import { Cause as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
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
8
|
import { jsx as ae } from "react/jsx-runtime";
|
|
9
|
-
import {
|
|
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";
|
|
10
12
|
//#region src/traceBus.ts
|
|
11
|
-
var
|
|
12
|
-
for (let t of
|
|
13
|
+
var le = /* @__PURE__ */ new Set(), I = (e) => {
|
|
14
|
+
for (let t of le) try {
|
|
13
15
|
t(e);
|
|
14
16
|
} catch {}
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
}),
|
|
17
|
+
}, ue = (e) => (le.add(e), () => {
|
|
18
|
+
le.delete(e);
|
|
19
|
+
}), L = (e) => {
|
|
18
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);
|
|
19
21
|
return t(e);
|
|
20
|
-
},
|
|
22
|
+
}, de = Object.freeze({
|
|
21
23
|
data: void 0,
|
|
22
24
|
revision: -1,
|
|
23
25
|
emittedAt: void 0,
|
|
24
26
|
error: void 0,
|
|
25
27
|
pendingPatches: 0
|
|
26
|
-
}),
|
|
28
|
+
}), fe = 5e3, R = (e, t, n) => {
|
|
27
29
|
if (e._tag === "error") return !1;
|
|
28
30
|
if (e._tag === "delta") return !0;
|
|
29
31
|
try {
|
|
@@ -31,21 +33,21 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
31
33
|
} catch {
|
|
32
34
|
return !1;
|
|
33
35
|
}
|
|
34
|
-
},
|
|
36
|
+
}, pe = 0, me = () => `patch_${++pe}`, z = (e, t) => {
|
|
35
37
|
let n = e;
|
|
36
38
|
for (let e of t.split(".")) {
|
|
37
39
|
if (typeof n != "object" || !n) return;
|
|
38
40
|
n = n[e];
|
|
39
41
|
}
|
|
40
42
|
return n;
|
|
41
|
-
},
|
|
43
|
+
}, he = (e, t, n) => {
|
|
42
44
|
let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
|
|
43
45
|
for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
|
|
44
46
|
return o[r[r.length - 1]] = n, a;
|
|
45
|
-
},
|
|
47
|
+
}, ge = (e, t) => {
|
|
46
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];
|
|
47
49
|
return i.length === 0 ? null : new Set(i);
|
|
48
|
-
},
|
|
50
|
+
}, _e = (e, t, n) => {
|
|
49
51
|
let r = e.path, i = e.by ?? "id";
|
|
50
52
|
if (e.op === "insert") {
|
|
51
53
|
let a = e.shapeItem ?? e.shape, o = a ? {
|
|
@@ -58,11 +60,11 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
58
60
|
optimistic: !0
|
|
59
61
|
}, s = e.order ?? "append";
|
|
60
62
|
return (e) => {
|
|
61
|
-
let t = Array.isArray(
|
|
62
|
-
return
|
|
63
|
+
let t = Array.isArray(z(e, r)) ? z(e, r) : [];
|
|
64
|
+
return he(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
|
|
63
65
|
};
|
|
64
66
|
}
|
|
65
|
-
let a =
|
|
67
|
+
let a = ge(e, t);
|
|
66
68
|
if (a === null) return null;
|
|
67
69
|
if (e.op === "update") {
|
|
68
70
|
let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
|
|
@@ -76,16 +78,21 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
76
78
|
optimistic: !0
|
|
77
79
|
});
|
|
78
80
|
return (e) => {
|
|
79
|
-
let t =
|
|
80
|
-
|
|
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));
|
|
81
88
|
};
|
|
82
89
|
}
|
|
83
90
|
return (e) => {
|
|
84
|
-
let t = Array.isArray(
|
|
85
|
-
return
|
|
91
|
+
let t = Array.isArray(z(e, r)) ? z(e, r) : [];
|
|
92
|
+
return he(e, r, t.filter((e) => !a.has(e[i])));
|
|
86
93
|
};
|
|
87
|
-
},
|
|
88
|
-
if (e.path !== void 0) return
|
|
94
|
+
}, ve = (e, t, n) => {
|
|
95
|
+
if (e.path !== void 0) return _e(e, t, n);
|
|
89
96
|
switch (e.op) {
|
|
90
97
|
case "insert": {
|
|
91
98
|
let r = e.shape ? {
|
|
@@ -103,7 +110,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
103
110
|
};
|
|
104
111
|
}
|
|
105
112
|
case "update": {
|
|
106
|
-
let n =
|
|
113
|
+
let n = ge(e, t);
|
|
107
114
|
if (n === null) return null;
|
|
108
115
|
let r = e.shape, i = r ? (e) => ({
|
|
109
116
|
...r(t, e),
|
|
@@ -114,36 +121,50 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
114
121
|
...t,
|
|
115
122
|
optimistic: !0
|
|
116
123
|
});
|
|
117
|
-
return (e) =>
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
+
};
|
|
121
134
|
}
|
|
122
135
|
case "delete": {
|
|
123
|
-
let n =
|
|
124
|
-
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
|
+
};
|
|
125
144
|
}
|
|
126
145
|
}
|
|
127
|
-
},
|
|
146
|
+
}, ye = 5e3, B = class {
|
|
128
147
|
entries = /* @__PURE__ */ new Map();
|
|
129
148
|
inactiveTtlMs;
|
|
130
149
|
onChangeHook;
|
|
131
150
|
errorBus;
|
|
151
|
+
mirror;
|
|
152
|
+
mergeCell;
|
|
132
153
|
constructor(e = {}) {
|
|
133
|
-
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;
|
|
134
155
|
}
|
|
135
156
|
subscribe(e, t, n, r, i = {}) {
|
|
136
|
-
let a =
|
|
157
|
+
let a = L(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
|
|
137
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), {
|
|
138
159
|
getSnapshot: () => this.getSnapshot(a),
|
|
139
160
|
unsubscribe: () => this.unsubscribe(a, r)
|
|
140
161
|
};
|
|
141
162
|
}
|
|
142
163
|
update(e, t, n) {
|
|
143
|
-
let r =
|
|
164
|
+
let r = L(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
|
|
144
165
|
a ||= this.createStub(r, i);
|
|
145
166
|
let o = {
|
|
146
|
-
id:
|
|
167
|
+
id: me(),
|
|
147
168
|
mutationId: n,
|
|
148
169
|
reducer: t
|
|
149
170
|
};
|
|
@@ -157,7 +178,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
157
178
|
for (let i of this.entries.values()) {
|
|
158
179
|
if (i.tag !== e) continue;
|
|
159
180
|
let a = {
|
|
160
|
-
id: `forTag-${++
|
|
181
|
+
id: `forTag-${++pe}`,
|
|
161
182
|
mutationId: n,
|
|
162
183
|
reducer: t
|
|
163
184
|
};
|
|
@@ -174,12 +195,12 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
174
195
|
confirmByMutation(e) {
|
|
175
196
|
let t = !1;
|
|
176
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);
|
|
177
|
-
t && setTimeout(() => this.resyncUnechoedMutation(e),
|
|
198
|
+
t && setTimeout(() => this.resyncUnechoedMutation(e), fe);
|
|
178
199
|
}
|
|
179
200
|
resyncUnechoedMutation(e) {
|
|
180
201
|
for (let t of this.entries.values()) {
|
|
181
202
|
if (!t.state.patches.some((t) => t.mutationId === e && t.confirmed === !0)) continue;
|
|
182
|
-
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.`;
|
|
183
204
|
this.errorBus?.emit({
|
|
184
205
|
source: "subscription",
|
|
185
206
|
tag: n,
|
|
@@ -192,7 +213,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
192
213
|
}
|
|
193
214
|
}
|
|
194
215
|
autoApply(e, t, n) {
|
|
195
|
-
let r = `optimistic-${n}-${++
|
|
216
|
+
let r = `optimistic-${n}-${++pe}`;
|
|
196
217
|
for (let i of e) for (let e of this.entries.values()) {
|
|
197
218
|
if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
|
|
198
219
|
if (i.match !== void 0) {
|
|
@@ -205,7 +226,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
205
226
|
if (!n) continue;
|
|
206
227
|
}
|
|
207
228
|
if (e.computed && i.op === "insert" && i.path === void 0) continue;
|
|
208
|
-
let a =
|
|
229
|
+
let a = ve(i, t, r);
|
|
209
230
|
if (a === null) continue;
|
|
210
231
|
let o = {
|
|
211
232
|
id: `${r}-${e.key}`,
|
|
@@ -222,10 +243,10 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
222
243
|
n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
|
|
223
244
|
}
|
|
224
245
|
peek(e) {
|
|
225
|
-
return this.getSnapshot(
|
|
246
|
+
return this.getSnapshot(L(e));
|
|
226
247
|
}
|
|
227
248
|
getEntry(e) {
|
|
228
|
-
return this.entries.get(
|
|
249
|
+
return this.entries.get(L(e));
|
|
229
250
|
}
|
|
230
251
|
size() {
|
|
231
252
|
return this.entries.size;
|
|
@@ -244,7 +265,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
244
265
|
return e;
|
|
245
266
|
}
|
|
246
267
|
destroy(e) {
|
|
247
|
-
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));
|
|
248
269
|
this.entries.clear();
|
|
249
270
|
}
|
|
250
271
|
refreshAll(e) {
|
|
@@ -252,7 +273,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
252
273
|
}
|
|
253
274
|
reissue(e, t, n = !0) {
|
|
254
275
|
if (!e.fetch) return;
|
|
255
|
-
e.fiber && t.runFork(
|
|
276
|
+
e.fiber && t.runFork(O.interrupt(e.fiber)), e.fiber = null;
|
|
256
277
|
let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
|
|
257
278
|
e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
|
|
258
279
|
}
|
|
@@ -296,7 +317,9 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
296
317
|
fetch: n,
|
|
297
318
|
runtime: r
|
|
298
319
|
};
|
|
299
|
-
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;
|
|
300
323
|
}
|
|
301
324
|
createStub(e, t) {
|
|
302
325
|
let n = {
|
|
@@ -324,24 +347,28 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
324
347
|
};
|
|
325
348
|
}
|
|
326
349
|
startFiber(e, t, n) {
|
|
327
|
-
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({
|
|
328
351
|
traceId: t.traceId,
|
|
329
352
|
spanId: t.spanId,
|
|
330
353
|
source: "subscription",
|
|
331
354
|
tag: r
|
|
332
|
-
})), i)))).pipe(
|
|
333
|
-
e.fiber = n.runFork(a.pipe(O.runForEach((t) => S.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(() => {
|
|
334
356
|
let n = e.state.base;
|
|
335
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);
|
|
336
|
-
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);
|
|
337
359
|
else {
|
|
338
360
|
let n = e.state.base;
|
|
339
|
-
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;
|
|
340
362
|
}
|
|
341
|
-
e.state.patches.some((e) => e.confirmed === !0) &&
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
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);
|
|
345
372
|
this.errorBus.emit({
|
|
346
373
|
source: "subscription",
|
|
347
374
|
tag: e.tag ?? e.key,
|
|
@@ -358,7 +385,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
358
385
|
}
|
|
359
386
|
getSnapshot(e) {
|
|
360
387
|
let t = this.entries.get(e);
|
|
361
|
-
if (!t) return
|
|
388
|
+
if (!t) return de;
|
|
362
389
|
if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
|
|
363
390
|
let n = t.state.base;
|
|
364
391
|
if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
|
|
@@ -378,17 +405,17 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
378
405
|
scheduleEviction(e) {
|
|
379
406
|
e.evictionTimer !== null && clearTimeout(e.evictionTimer), e.evictionTimer = setTimeout(() => {
|
|
380
407
|
let t = this.entries.get(e.key);
|
|
381
|
-
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));
|
|
382
409
|
}, this.inactiveTtlMs);
|
|
383
410
|
}
|
|
384
|
-
}, be = class extends
|
|
411
|
+
}, be = class extends B {
|
|
385
412
|
subscribe(e, t, n, r, i = {}) {
|
|
386
413
|
return {
|
|
387
414
|
getSnapshot: () => this.peek(e),
|
|
388
415
|
unsubscribe: () => {}
|
|
389
416
|
};
|
|
390
417
|
}
|
|
391
|
-
},
|
|
418
|
+
}, V = class {
|
|
392
419
|
#e = /* @__PURE__ */ new Set();
|
|
393
420
|
on(e) {
|
|
394
421
|
return this.#e.add(e), () => {
|
|
@@ -400,45 +427,45 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
400
427
|
t(e);
|
|
401
428
|
} catch {}
|
|
402
429
|
}
|
|
403
|
-
},
|
|
430
|
+
}, xe = m(null), Se = () => {
|
|
404
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");
|
|
405
|
-
},
|
|
406
|
-
get: (e, t) =>
|
|
432
|
+
}, Ce = new Proxy(() => Se(), {
|
|
433
|
+
get: (e, t) => Ce,
|
|
407
434
|
has: () => !0,
|
|
408
|
-
apply: () =>
|
|
409
|
-
}),
|
|
410
|
-
runtime: { runPromiseExit: () => Promise.resolve(
|
|
435
|
+
apply: () => Se()
|
|
436
|
+
}), we = {
|
|
437
|
+
runtime: { runPromiseExit: () => Promise.resolve(D.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
|
|
411
438
|
cache: new be(),
|
|
412
|
-
client:
|
|
439
|
+
client: Ce,
|
|
413
440
|
descriptors: {},
|
|
414
441
|
inspectBaseUrl: "",
|
|
415
|
-
errorBus: new
|
|
416
|
-
},
|
|
417
|
-
get: () =>
|
|
442
|
+
errorBus: new V()
|
|
443
|
+
}, Te = {
|
|
444
|
+
get: () => we,
|
|
418
445
|
names: []
|
|
419
|
-
},
|
|
420
|
-
|
|
446
|
+
}, H = !1, Ee = !1, U = null, De = () => {
|
|
447
|
+
H = !1, Ee = !1, U !== null && (clearTimeout(U), U = null);
|
|
421
448
|
}, Oe = () => {
|
|
422
|
-
let e =
|
|
423
|
-
return e ? (
|
|
424
|
-
|
|
425
|
-
}, 0)),
|
|
426
|
-
},
|
|
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) => {
|
|
427
454
|
let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
|
|
428
|
-
class o extends
|
|
429
|
-
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));
|
|
430
457
|
try {
|
|
431
|
-
let e = await f.runPromise(o), t = new
|
|
458
|
+
let e = await f.runPromise(o), t = new V();
|
|
432
459
|
return {
|
|
433
460
|
runtime: f,
|
|
434
461
|
client: e,
|
|
435
|
-
cache: new
|
|
462
|
+
cache: new B({ errorBus: t }),
|
|
436
463
|
errorBus: t
|
|
437
464
|
};
|
|
438
465
|
} catch (e) {
|
|
439
466
|
throw f.dispose(), e;
|
|
440
467
|
}
|
|
441
|
-
},
|
|
468
|
+
}, je = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), Me = () => ({
|
|
442
469
|
resolved: null,
|
|
443
470
|
retryToken: 0,
|
|
444
471
|
failureCount: 0,
|
|
@@ -447,15 +474,15 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
447
474
|
everOpened: !1,
|
|
448
475
|
wedgeStop: null,
|
|
449
476
|
subjectMayHaveChanged: !1
|
|
450
|
-
}),
|
|
477
|
+
}), Ne = (e) => {
|
|
451
478
|
e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
|
|
452
|
-
}, Ne = (e) => {
|
|
453
|
-
e.cache.destroy(e.runtime), e.runtime.dispose();
|
|
454
479
|
}, Pe = (e) => {
|
|
455
|
-
|
|
480
|
+
e.cache.destroy(e.runtime), e.runtime.dispose();
|
|
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) => {
|
|
456
483
|
clearTimeout(e);
|
|
457
484
|
}), c = e.scheduler?.queueMicrotask ?? queueMicrotask, l = e.onReconnecting, u = e.wedgeBackstop, d = /* @__PURE__ */ new Map();
|
|
458
|
-
for (let e of t) d.set(e.name,
|
|
485
|
+
for (let e of t) d.set(e.name, Me());
|
|
459
486
|
let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
|
|
460
487
|
let n = o(() => {
|
|
461
488
|
p.delete(n), e();
|
|
@@ -481,7 +508,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
481
508
|
if (!t) return;
|
|
482
509
|
let r = t.generation, i = () => {
|
|
483
510
|
if (f || t.generation !== r) return;
|
|
484
|
-
t.everOpened = !0,
|
|
511
|
+
t.everOpened = !0, Ne(t), t.retryToken++;
|
|
485
512
|
let e = t.failureCount;
|
|
486
513
|
m(() => {
|
|
487
514
|
f || t.failureCount === e && (t.failureCount = 0);
|
|
@@ -492,11 +519,11 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
492
519
|
try {
|
|
493
520
|
let a = await n(e, r, i, o);
|
|
494
521
|
if (f || t.generation !== r) {
|
|
495
|
-
|
|
522
|
+
Pe(a);
|
|
496
523
|
return;
|
|
497
524
|
}
|
|
498
525
|
let s = t.resolved;
|
|
499
|
-
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);
|
|
500
527
|
} catch {
|
|
501
528
|
if (f || t.generation !== r) return;
|
|
502
529
|
g(e);
|
|
@@ -504,7 +531,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
504
531
|
}, v = (e) => {
|
|
505
532
|
if (!f) for (let n of t) {
|
|
506
533
|
let t = d.get(n.name);
|
|
507
|
-
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));
|
|
508
535
|
}
|
|
509
536
|
};
|
|
510
537
|
return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
|
|
@@ -521,7 +548,7 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
521
548
|
f = !0;
|
|
522
549
|
for (let e of p) s(e);
|
|
523
550
|
p.clear();
|
|
524
|
-
for (let [, e] of d) e.resolved &&
|
|
551
|
+
for (let [, e] of d) e.resolved && Pe(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), Ne(e);
|
|
525
552
|
d.clear();
|
|
526
553
|
}
|
|
527
554
|
},
|
|
@@ -532,8 +559,8 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
532
559
|
v(!1);
|
|
533
560
|
}
|
|
534
561
|
});
|
|
535
|
-
},
|
|
536
|
-
let n =
|
|
562
|
+
}, Ie = ({ apis: e, children: t }) => {
|
|
563
|
+
let n = b(() => ({
|
|
537
564
|
get: (t) => {
|
|
538
565
|
let n = e.get(t);
|
|
539
566
|
if (!n) {
|
|
@@ -544,45 +571,45 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
544
571
|
},
|
|
545
572
|
names: Array.from(e.keys())
|
|
546
573
|
}), [e]);
|
|
547
|
-
return /* @__PURE__ */ ae(
|
|
574
|
+
return /* @__PURE__ */ ae(xe.Provider, {
|
|
548
575
|
value: n,
|
|
549
576
|
children: t
|
|
550
577
|
});
|
|
551
|
-
},
|
|
552
|
-
let e = globalThis, t = e[
|
|
578
|
+
}, Le = Symbol.for("@voltro/client/storeStorageProvider"), Re = () => {
|
|
579
|
+
let e = globalThis, t = e[Le];
|
|
553
580
|
if (t !== void 0) return t;
|
|
554
581
|
let n = {
|
|
555
582
|
provider: void 0,
|
|
556
583
|
used: !1
|
|
557
584
|
};
|
|
558
|
-
return e[
|
|
559
|
-
},
|
|
585
|
+
return e[Le] = n, n;
|
|
586
|
+
}, ze = (e) => {
|
|
560
587
|
if (typeof window > "u") return null;
|
|
561
588
|
try {
|
|
562
589
|
return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
563
590
|
} catch {
|
|
564
591
|
return null;
|
|
565
592
|
}
|
|
566
|
-
}, ze = (e) => {
|
|
567
|
-
let t = Le();
|
|
568
|
-
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;
|
|
569
593
|
}, Be = (e) => {
|
|
570
|
-
let t =
|
|
571
|
-
|
|
572
|
-
}, Ve = () => {
|
|
573
|
-
let
|
|
594
|
+
let t = Re();
|
|
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;
|
|
596
|
+
}, Ve = (e) => {
|
|
597
|
+
let t = Re();
|
|
598
|
+
return t.used = !0, (t.provider ?? ze)(e);
|
|
599
|
+
}, He = () => {
|
|
600
|
+
let e = Re();
|
|
574
601
|
e.provider = void 0, e.used = !1;
|
|
575
|
-
},
|
|
602
|
+
}, Ue = (e, t) => {
|
|
576
603
|
if (Object.is(e, t)) return !0;
|
|
577
604
|
if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
578
605
|
let n = Object.keys(e), r = Object.keys(t);
|
|
579
606
|
if (n.length !== r.length) return !1;
|
|
580
607
|
for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
|
|
581
608
|
return !0;
|
|
582
|
-
},
|
|
583
|
-
|
|
584
|
-
},
|
|
585
|
-
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;
|
|
586
613
|
if (r === null) return n;
|
|
587
614
|
let i = n;
|
|
588
615
|
for (let n of r.seeds) n.store === e && n.key === t && (i = {
|
|
@@ -590,9 +617,9 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
590
617
|
...n.value
|
|
591
618
|
});
|
|
592
619
|
return i;
|
|
593
|
-
},
|
|
620
|
+
}, Xe = (e, t) => {
|
|
594
621
|
let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
|
|
595
|
-
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.`);
|
|
596
623
|
i += 1;
|
|
597
624
|
try {
|
|
598
625
|
for (let e of [...r]) e();
|
|
@@ -613,20 +640,20 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
613
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}', () => { … })\`.`);
|
|
614
641
|
if (--a, a > 0) return;
|
|
615
642
|
let l = o, u = s;
|
|
616
|
-
o = void 0, s = void 0, !
|
|
643
|
+
o = void 0, s = void 0, !Ue(l, n) && (t(l, n, u), c());
|
|
617
644
|
},
|
|
618
645
|
set: (e, r) => {
|
|
619
646
|
let i = typeof e == "function" ? e(n) : {
|
|
620
647
|
...n,
|
|
621
648
|
...e
|
|
622
649
|
};
|
|
623
|
-
if (
|
|
650
|
+
if (Ue(i, n)) return;
|
|
624
651
|
let o = n;
|
|
625
652
|
n = i, !(a > 0) && (t(o, i, r), c());
|
|
626
653
|
},
|
|
627
654
|
reset: () => {
|
|
628
655
|
let r = e();
|
|
629
|
-
if (
|
|
656
|
+
if (Ue(r, n)) return;
|
|
630
657
|
let i = n;
|
|
631
658
|
n = r, !(a > 0) && (t(i, r, "reset"), c());
|
|
632
659
|
},
|
|
@@ -634,51 +661,51 @@ var se = /* @__PURE__ */ new Set(), A = (e) => {
|
|
|
634
661
|
r.delete(e);
|
|
635
662
|
})
|
|
636
663
|
};
|
|
637
|
-
},
|
|
638
|
-
|
|
639
|
-
}),
|
|
640
|
-
|
|
641
|
-
},
|
|
642
|
-
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];
|
|
643
670
|
if (n === void 0) return !1;
|
|
644
|
-
let r =
|
|
671
|
+
let r = q.get(n.store);
|
|
645
672
|
if (r === void 0) return !1;
|
|
646
673
|
let i = t === "before" ? n.prev : n.next;
|
|
647
|
-
|
|
674
|
+
it = !0;
|
|
648
675
|
try {
|
|
649
676
|
r.set(() => i, n.key, `travel:${t}`);
|
|
650
677
|
} finally {
|
|
651
|
-
|
|
678
|
+
it = !1;
|
|
652
679
|
}
|
|
653
680
|
return !0;
|
|
654
|
-
},
|
|
655
|
-
|
|
656
|
-
for (let e of [...
|
|
657
|
-
},
|
|
658
|
-
|
|
659
|
-
})),
|
|
660
|
-
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) {
|
|
661
688
|
let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
|
|
662
689
|
return n.length > 0 ? n : void 0;
|
|
663
690
|
}
|
|
664
|
-
var
|
|
691
|
+
var pt = () => {
|
|
665
692
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
666
693
|
if (typeof e != "string") return "<unknown>";
|
|
667
694
|
for (let t of e.split("\n").slice(1)) {
|
|
668
|
-
let e =
|
|
695
|
+
let e = ft(t);
|
|
669
696
|
if (e === void 0) continue;
|
|
670
697
|
let n = e.replace(/:\d+:\d+$/, "");
|
|
671
|
-
if (
|
|
698
|
+
if (dt === "" || n !== dt.replace(/:\d+:\d+$/, "")) return n;
|
|
672
699
|
}
|
|
673
700
|
return "<unknown>";
|
|
674
|
-
},
|
|
675
|
-
let r =
|
|
701
|
+
}, mt = () => [...q.values()], ht = (e, t, n) => {
|
|
702
|
+
let r = pt(), i = ut(), a = q.get(e);
|
|
676
703
|
if (a !== void 0) {
|
|
677
|
-
let t =
|
|
704
|
+
let t = ot.get(e) ?? "<unknown>", n = lt.get(e) === i;
|
|
678
705
|
if (r !== "<unknown>" && r === t && !n) return a;
|
|
679
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}`);
|
|
680
707
|
}
|
|
681
|
-
let o = n?.persist, s = () =>
|
|
708
|
+
let o = n?.persist, s = () => Ve(o?.storage === "session" ? "session" : "local"), c = () => {
|
|
682
709
|
let e = s();
|
|
683
710
|
if (e === null || o === void 0) return;
|
|
684
711
|
let t;
|
|
@@ -702,29 +729,29 @@ var ut = () => {
|
|
|
702
729
|
try {
|
|
703
730
|
t.setItem(o.key, JSON.stringify(n));
|
|
704
731
|
} catch {}
|
|
705
|
-
}, u = /* @__PURE__ */ new Map(),
|
|
706
|
-
let r = n ??
|
|
732
|
+
}, u = /* @__PURE__ */ new Map(), d = (n) => {
|
|
733
|
+
let r = n ?? qe, i = u.get(r);
|
|
707
734
|
if (i === void 0) {
|
|
708
735
|
let a = n;
|
|
709
|
-
i =
|
|
736
|
+
i = Xe(o !== void 0 && n === void 0 ? () => {
|
|
710
737
|
let e = t();
|
|
711
|
-
return
|
|
738
|
+
return f = e, {
|
|
712
739
|
...e,
|
|
713
740
|
...c() ?? {}
|
|
714
741
|
};
|
|
715
742
|
} : t, (t, n, r) => {
|
|
716
|
-
if (o !== void 0 && a === void 0 && l(n), !
|
|
717
|
-
let e =
|
|
743
|
+
if (o !== void 0 && a === void 0 && l(n), !K && !it) {
|
|
744
|
+
let e = m(a);
|
|
718
745
|
e.steps.length = e.cursor, e.steps.push({
|
|
719
746
|
prev: t,
|
|
720
747
|
next: n
|
|
721
|
-
}), e.steps.length >
|
|
748
|
+
}), e.steps.length > h && e.steps.shift(), e.cursor = e.steps.length;
|
|
722
749
|
}
|
|
723
|
-
|
|
750
|
+
at({
|
|
724
751
|
store: e,
|
|
725
752
|
...a === void 0 ? {} : { key: a },
|
|
726
753
|
...r === void 0 ? {} : { label: r },
|
|
727
|
-
...
|
|
754
|
+
...K || it ? { isUndo: !0 } : {},
|
|
728
755
|
prev: t,
|
|
729
756
|
next: n,
|
|
730
757
|
at: Date.now()
|
|
@@ -732,122 +759,122 @@ var ut = () => {
|
|
|
732
759
|
}), u.set(r, i);
|
|
733
760
|
}
|
|
734
761
|
return i;
|
|
735
|
-
},
|
|
736
|
-
let t = e ??
|
|
762
|
+
}, f, p = /* @__PURE__ */ new Map(), m = (e) => {
|
|
763
|
+
let t = e ?? qe, n = p.get(t);
|
|
737
764
|
return n === void 0 && (n = {
|
|
738
765
|
steps: [],
|
|
739
766
|
cursor: 0
|
|
740
|
-
},
|
|
741
|
-
},
|
|
742
|
-
let t =
|
|
743
|
-
t !== void 0 && (clearTimeout(t),
|
|
744
|
-
},
|
|
745
|
-
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;
|
|
746
773
|
if (t > 0) {
|
|
747
|
-
|
|
774
|
+
_.set(e, t);
|
|
748
775
|
return;
|
|
749
776
|
}
|
|
750
|
-
|
|
751
|
-
|
|
777
|
+
_.delete(e), y.set(e, setTimeout(() => {
|
|
778
|
+
y.delete(e), (_.get(e) ?? 0) === 0 && u.delete(e);
|
|
752
779
|
}, 0));
|
|
753
780
|
}, w = {
|
|
754
781
|
name: e,
|
|
755
782
|
use: (t, n) => {
|
|
756
|
-
let r =
|
|
783
|
+
let r = d(n?.key), i = x(t);
|
|
757
784
|
i.current = t;
|
|
758
|
-
let a =
|
|
785
|
+
let a = x(n?.equals);
|
|
759
786
|
a.current = n?.equals;
|
|
760
|
-
let o =
|
|
787
|
+
let o = x({
|
|
761
788
|
state: void 0,
|
|
762
789
|
value: void 0,
|
|
763
790
|
has: !1
|
|
764
|
-
}), s =
|
|
791
|
+
}), s = g((t) => {
|
|
765
792
|
let n = o.current;
|
|
766
793
|
if (n.has && Object.is(n.state, t)) return n.value;
|
|
767
794
|
let r = i.current(t), s = a.current, c = n.has && (s ? s(n.value, r) : Object.is(n.value, r));
|
|
768
|
-
process.env.NODE_ENV !== "production" && s === void 0 && n.has && !c && typeof r == "object" && 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.`);
|
|
769
796
|
let l = c ? n.value : r;
|
|
770
797
|
return o.current = {
|
|
771
798
|
state: t,
|
|
772
799
|
value: l,
|
|
773
800
|
has: !0
|
|
774
801
|
}, l;
|
|
775
|
-
}, []), c = n?.key, l = n?.retain === !0, u =
|
|
802
|
+
}, []), c = n?.key, l = n?.retain === !0, u = g((e) => {
|
|
776
803
|
let t = r.subscribe(e);
|
|
777
|
-
return c !== void 0 && !l &&
|
|
778
|
-
t(), c !== void 0 && !l &&
|
|
804
|
+
return c !== void 0 && !l && b(c), () => {
|
|
805
|
+
t(), c !== void 0 && !l && S(c);
|
|
779
806
|
};
|
|
780
807
|
}, [
|
|
781
808
|
r,
|
|
782
809
|
c,
|
|
783
810
|
l
|
|
784
|
-
]),
|
|
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())), [
|
|
785
812
|
r,
|
|
786
813
|
n?.key,
|
|
787
814
|
s
|
|
788
|
-
]),
|
|
789
|
-
return
|
|
815
|
+
]), h = C(u, p, m);
|
|
816
|
+
return v(h), h;
|
|
790
817
|
},
|
|
791
|
-
instance:
|
|
792
|
-
get: (e) =>
|
|
818
|
+
instance: d,
|
|
819
|
+
get: (e) => d(e).get(),
|
|
793
820
|
set: (e, t, n) => {
|
|
794
|
-
|
|
821
|
+
d(t).set(e, n);
|
|
795
822
|
},
|
|
796
823
|
batch: (e, t, n) => {
|
|
797
|
-
|
|
824
|
+
d(n).batch(e, t);
|
|
798
825
|
},
|
|
799
826
|
undo: (e) => {
|
|
800
|
-
let t =
|
|
827
|
+
let t = m(e);
|
|
801
828
|
if (t.cursor === 0) return !1;
|
|
802
|
-
--t.cursor,
|
|
829
|
+
--t.cursor, K = !0;
|
|
803
830
|
try {
|
|
804
|
-
|
|
831
|
+
d(e).set(() => t.steps[t.cursor].prev, "undo");
|
|
805
832
|
} finally {
|
|
806
|
-
|
|
833
|
+
K = !1;
|
|
807
834
|
}
|
|
808
835
|
return !0;
|
|
809
836
|
},
|
|
810
837
|
redo: (e) => {
|
|
811
|
-
let t =
|
|
838
|
+
let t = m(e);
|
|
812
839
|
if (t.cursor >= t.steps.length) return !1;
|
|
813
840
|
let n = t.steps[t.cursor];
|
|
814
|
-
t.cursor += 1,
|
|
841
|
+
t.cursor += 1, K = !0;
|
|
815
842
|
try {
|
|
816
|
-
|
|
843
|
+
d(e).set(() => n.next, "redo");
|
|
817
844
|
} finally {
|
|
818
|
-
|
|
845
|
+
K = !1;
|
|
819
846
|
}
|
|
820
847
|
return !0;
|
|
821
848
|
},
|
|
822
|
-
canUndo: (e) =>
|
|
849
|
+
canUndo: (e) => m(e).cursor > 0,
|
|
823
850
|
canRedo: (e) => {
|
|
824
|
-
let t =
|
|
851
|
+
let t = m(e);
|
|
825
852
|
return t.cursor < t.steps.length;
|
|
826
853
|
},
|
|
827
854
|
release: (e) => {
|
|
828
|
-
u.delete(e),
|
|
855
|
+
u.delete(e), p.delete(e);
|
|
829
856
|
},
|
|
830
|
-
keys: () => [...u.keys()].filter((e) => e !==
|
|
857
|
+
keys: () => [...u.keys()].filter((e) => e !== qe)
|
|
831
858
|
};
|
|
832
|
-
return
|
|
833
|
-
},
|
|
834
|
-
|
|
835
|
-
},
|
|
836
|
-
|
|
837
|
-
},
|
|
838
|
-
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;
|
|
839
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.)`);
|
|
840
867
|
r.seeds.push({
|
|
841
868
|
store: e.name,
|
|
842
869
|
...n?.key === void 0 ? {} : { key: n.key },
|
|
843
870
|
value: t
|
|
844
871
|
});
|
|
845
|
-
},
|
|
872
|
+
}, bt = (e) => {
|
|
846
873
|
if (e !== void 0) for (let t of e) {
|
|
847
|
-
let e =
|
|
874
|
+
let e = q.get(t.store);
|
|
848
875
|
e !== void 0 && e.set(t.value, t.key);
|
|
849
876
|
}
|
|
850
|
-
},
|
|
877
|
+
}, J = (e, t) => {
|
|
851
878
|
let n = t.split("."), r = e;
|
|
852
879
|
for (let e = 0; e < n.length; e++) {
|
|
853
880
|
let i = n[e];
|
|
@@ -866,48 +893,48 @@ var ut = () => {
|
|
|
866
893
|
}
|
|
867
894
|
if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
|
|
868
895
|
return r;
|
|
869
|
-
},
|
|
896
|
+
}, xt = Object.freeze({
|
|
870
897
|
data: void 0,
|
|
871
898
|
revision: -1,
|
|
872
899
|
emittedAt: void 0,
|
|
873
900
|
error: void 0,
|
|
874
901
|
pendingPatches: 0
|
|
875
|
-
}),
|
|
876
|
-
function
|
|
877
|
-
let i = r.skip === !0, { runtime: a, cache: o, client: s, descriptors: c } =
|
|
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);
|
|
878
905
|
u.current = n;
|
|
879
|
-
let
|
|
880
|
-
|
|
881
|
-
let
|
|
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(() => {
|
|
882
909
|
let e = u.current;
|
|
883
910
|
return {
|
|
884
911
|
queryKey: [t, e],
|
|
885
|
-
fetch: () =>
|
|
912
|
+
fetch: () => J(d.current, t)(e)
|
|
886
913
|
};
|
|
887
|
-
}, [t,
|
|
914
|
+
}, [t, f]), m = p.queryKey, h = g((e) => i ? () => {} : o.subscribe(p.queryKey, p.fetch, a, e, l === void 0 ? {} : { source: l }).unsubscribe, [
|
|
888
915
|
o,
|
|
889
916
|
a,
|
|
890
917
|
l,
|
|
891
918
|
i,
|
|
892
|
-
|
|
893
|
-
]),
|
|
919
|
+
p
|
|
920
|
+
]), _ = g(() => i ? xt : o.peek(m), [
|
|
894
921
|
o,
|
|
895
922
|
i,
|
|
896
|
-
|
|
897
|
-
]),
|
|
898
|
-
revision:
|
|
899
|
-
emittedAt:
|
|
900
|
-
error:
|
|
901
|
-
pendingPatches:
|
|
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
|
|
902
929
|
};
|
|
903
930
|
if (r.initialSnapshot !== void 0) {
|
|
904
931
|
let e = Array.isArray(r.initialSnapshot) ? r.initialSnapshot.length === 0 : r.initialSnapshot === null;
|
|
905
932
|
return {
|
|
906
933
|
...w,
|
|
907
|
-
data:
|
|
934
|
+
data: y ? v.data : r.initialSnapshot,
|
|
908
935
|
loading: !1,
|
|
909
936
|
idle: i,
|
|
910
|
-
isEmpty:
|
|
937
|
+
isEmpty: y ? S : e,
|
|
911
938
|
failed: !1
|
|
912
939
|
};
|
|
913
940
|
}
|
|
@@ -918,11 +945,11 @@ function W(e, t, n = {}, r = {}) {
|
|
|
918
945
|
isEmpty: !1,
|
|
919
946
|
idle: !0,
|
|
920
947
|
failed: !1
|
|
921
|
-
} :
|
|
948
|
+
} : y ? {
|
|
922
949
|
...w,
|
|
923
|
-
data:
|
|
950
|
+
data: v.data,
|
|
924
951
|
loading: !1,
|
|
925
|
-
isEmpty:
|
|
952
|
+
isEmpty: S,
|
|
926
953
|
idle: !1,
|
|
927
954
|
failed: !1
|
|
928
955
|
} : w.error === void 0 ? {
|
|
@@ -942,38 +969,38 @@ function W(e, t, n = {}, r = {}) {
|
|
|
942
969
|
error: w.error
|
|
943
970
|
} : {
|
|
944
971
|
...w,
|
|
945
|
-
data:
|
|
946
|
-
loading: !
|
|
972
|
+
data: y ? v.data : r.fallback,
|
|
973
|
+
loading: !y && !i,
|
|
947
974
|
idle: i,
|
|
948
|
-
isEmpty:
|
|
949
|
-
failed: !
|
|
975
|
+
isEmpty: S,
|
|
976
|
+
failed: !y && w.error !== void 0
|
|
950
977
|
};
|
|
951
978
|
}
|
|
952
979
|
//#endregion
|
|
953
980
|
//#region src/runRpc.ts
|
|
954
|
-
var
|
|
981
|
+
var X = async (e, t) => {
|
|
955
982
|
let n = await e.runPromiseExit(t);
|
|
956
|
-
if (
|
|
957
|
-
throw
|
|
958
|
-
},
|
|
959
|
-
|
|
960
|
-
},
|
|
961
|
-
|
|
962
|
-
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 {
|
|
963
990
|
e();
|
|
964
991
|
} catch {}
|
|
965
|
-
},
|
|
992
|
+
}, Ot = (e) => {
|
|
966
993
|
let t = {
|
|
967
994
|
...e,
|
|
968
995
|
status: "pending",
|
|
969
996
|
startedAt: Date.now()
|
|
970
997
|
};
|
|
971
|
-
|
|
972
|
-
},
|
|
973
|
-
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);
|
|
974
1001
|
if (n === -1) return;
|
|
975
|
-
let r =
|
|
976
|
-
|
|
1002
|
+
let r = Z[n], i = Date.now();
|
|
1003
|
+
Z[n] = t.status === "success" ? {
|
|
977
1004
|
...r,
|
|
978
1005
|
status: "success",
|
|
979
1006
|
output: t.output,
|
|
@@ -985,12 +1012,12 @@ var G = async (e, t) => {
|
|
|
985
1012
|
error: t.error,
|
|
986
1013
|
settledAt: i,
|
|
987
1014
|
durationMs: i - r.startedAt
|
|
988
|
-
},
|
|
989
|
-
},
|
|
990
|
-
|
|
991
|
-
}),
|
|
992
|
-
|
|
993
|
-
},
|
|
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) => {
|
|
994
1021
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
995
1022
|
try {
|
|
996
1023
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -1000,77 +1027,77 @@ var G = async (e, t) => {
|
|
|
1000
1027
|
});
|
|
1001
1028
|
} catch {}
|
|
1002
1029
|
return e;
|
|
1003
|
-
},
|
|
1004
|
-
|
|
1005
|
-
},
|
|
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 = () => {
|
|
1006
1033
|
let e = typeof crypto < "u" ? crypto : void 0;
|
|
1007
|
-
return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${
|
|
1008
|
-
},
|
|
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) => ({
|
|
1009
1036
|
update: (n, r) => {
|
|
1010
1037
|
e.update(n, r, t);
|
|
1011
1038
|
},
|
|
1012
1039
|
forTag: (n, r) => e.forTag(n, r, t)
|
|
1013
|
-
}),
|
|
1014
|
-
let { runtime: n, cache: r, client: i, descriptors: a, errorBus: o } =
|
|
1040
|
+
}), Q = (e, t) => {
|
|
1041
|
+
let { runtime: n, cache: r, client: i, descriptors: a, errorBus: o } = W(e), s = a[t], c = s?.targets;
|
|
1015
1042
|
if (process.env.NODE_ENV !== "production") {
|
|
1016
1043
|
let n = s?.kind;
|
|
1017
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.`);
|
|
1018
1045
|
}
|
|
1019
|
-
let [l, u] =
|
|
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) => {
|
|
1020
1047
|
let l = s?.onError !== void 0 || s?.notify?.error !== void 0, d = (e) => {
|
|
1021
1048
|
s?.onError?.(e, a);
|
|
1022
|
-
let t =
|
|
1023
|
-
t !== void 0 &&
|
|
1049
|
+
let t = Lt(s?.notify?.error, e, a);
|
|
1050
|
+
t !== void 0 && Pt?.error(t);
|
|
1024
1051
|
};
|
|
1025
|
-
u(!0),
|
|
1026
|
-
let
|
|
1027
|
-
|
|
1028
|
-
id:
|
|
1052
|
+
u(!0), f(void 0);
|
|
1053
|
+
let p = zt(), g = s?.idempotencyKey ?? Vt();
|
|
1054
|
+
Ot({
|
|
1055
|
+
id: p,
|
|
1029
1056
|
apiName: e,
|
|
1030
1057
|
tag: t,
|
|
1031
1058
|
input: a
|
|
1032
1059
|
});
|
|
1033
|
-
let
|
|
1034
|
-
if (
|
|
1035
|
-
|
|
1060
|
+
let v = h.current, y = _.current;
|
|
1061
|
+
if (v) try {
|
|
1062
|
+
v(Ut(r, p), a);
|
|
1036
1063
|
} catch (e) {
|
|
1037
|
-
if (
|
|
1064
|
+
if (f(e), u(!1), r.revertByMutation(p), kt(p, {
|
|
1038
1065
|
status: "error",
|
|
1039
1066
|
error: e
|
|
1040
1067
|
}), l) return d(e);
|
|
1041
1068
|
throw e;
|
|
1042
1069
|
}
|
|
1043
|
-
else !
|
|
1044
|
-
let
|
|
1070
|
+
else !y && c && c.length > 0 && r.autoApply(c, a, p);
|
|
1071
|
+
let b;
|
|
1045
1072
|
try {
|
|
1046
|
-
let o =
|
|
1047
|
-
|
|
1073
|
+
let o = J(i, t), c = E.currentSpan.pipe(E.tap((e) => E.sync(() => {
|
|
1074
|
+
b = e.traceId, I({
|
|
1048
1075
|
traceId: e.traceId,
|
|
1049
1076
|
spanId: e.spanId,
|
|
1050
1077
|
source: "mutation",
|
|
1051
1078
|
tag: t
|
|
1052
1079
|
});
|
|
1053
|
-
})),
|
|
1080
|
+
})), E.catchAll(() => E.void), E.zipRight(Ht(o(a), g))).pipe(E.withSpan(`client.mutation.${t}`, { attributes: {
|
|
1054
1081
|
"voltro.api": e,
|
|
1055
|
-
"voltro.mutationId":
|
|
1082
|
+
"voltro.mutationId": p,
|
|
1056
1083
|
"rpc.tag": t
|
|
1057
|
-
} })), l = await
|
|
1058
|
-
|
|
1084
|
+
} })), l = await X(n, c);
|
|
1085
|
+
m(l), kt(p, {
|
|
1059
1086
|
status: "success",
|
|
1060
1087
|
output: l
|
|
1061
|
-
}), r.confirmByMutation(
|
|
1062
|
-
let u =
|
|
1063
|
-
return u !== void 0 &&
|
|
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;
|
|
1064
1091
|
} catch (e) {
|
|
1065
|
-
let n =
|
|
1066
|
-
if (
|
|
1092
|
+
let n = Nt(e, b);
|
|
1093
|
+
if (f(n), kt(p, {
|
|
1067
1094
|
status: "error",
|
|
1068
1095
|
error: n
|
|
1069
|
-
}), r.revertByMutation(
|
|
1096
|
+
}), r.revertByMutation(p), o.emit({
|
|
1070
1097
|
source: "mutation",
|
|
1071
1098
|
tag: t,
|
|
1072
1099
|
error: n,
|
|
1073
|
-
...
|
|
1100
|
+
...b === void 0 ? {} : { traceId: b }
|
|
1074
1101
|
}), l) return d(n);
|
|
1075
1102
|
throw n;
|
|
1076
1103
|
} finally {
|
|
@@ -1084,23 +1111,23 @@ var G = async (e, t) => {
|
|
|
1084
1111
|
t,
|
|
1085
1112
|
c
|
|
1086
1113
|
]);
|
|
1087
|
-
return
|
|
1114
|
+
return b(() => {
|
|
1088
1115
|
let e = {
|
|
1089
|
-
mutate:
|
|
1116
|
+
mutate: v,
|
|
1090
1117
|
pending: l,
|
|
1091
|
-
error:
|
|
1092
|
-
data:
|
|
1093
|
-
withOptimistic: (t) => (
|
|
1094
|
-
withoutOptimistic: () => (
|
|
1118
|
+
error: d,
|
|
1119
|
+
data: p,
|
|
1120
|
+
withOptimistic: (t) => (h.current = t, e),
|
|
1121
|
+
withoutOptimistic: () => (_.current = !0, e)
|
|
1095
1122
|
};
|
|
1096
1123
|
return e;
|
|
1097
1124
|
}, [
|
|
1098
|
-
|
|
1125
|
+
v,
|
|
1099
1126
|
l,
|
|
1100
|
-
|
|
1101
|
-
|
|
1127
|
+
d,
|
|
1128
|
+
p
|
|
1102
1129
|
]);
|
|
1103
|
-
},
|
|
1130
|
+
}, Wt = (e, t) => {
|
|
1104
1131
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
1105
1132
|
try {
|
|
1106
1133
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -1110,61 +1137,61 @@ var G = async (e, t) => {
|
|
|
1110
1137
|
});
|
|
1111
1138
|
} catch {}
|
|
1112
1139
|
return e;
|
|
1113
|
-
},
|
|
1114
|
-
if (!
|
|
1115
|
-
let r = Date.now() +
|
|
1116
|
-
for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !
|
|
1117
|
-
throw Error(`Voltro: the api "${t}" did not resolve within ${
|
|
1118
|
-
},
|
|
1119
|
-
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);
|
|
1120
1147
|
if (a.current = n, process.env.NODE_ENV !== "production") {
|
|
1121
1148
|
let n = r[t]?.kind;
|
|
1122
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.`);
|
|
1123
1150
|
}
|
|
1124
|
-
let [o, s] =
|
|
1151
|
+
let [o, s] = S(!1), [c, l] = S(void 0), [u, d] = S(void 0), f = g(async (n, r) => {
|
|
1125
1152
|
let o = r?.onError !== void 0 || r?.notify?.error !== void 0;
|
|
1126
1153
|
s(!0), l(void 0);
|
|
1127
|
-
let c =
|
|
1128
|
-
|
|
1154
|
+
let c = qt(), u = r?.idempotencyKey ?? Vt();
|
|
1155
|
+
Ot({
|
|
1129
1156
|
id: c,
|
|
1130
1157
|
apiName: e,
|
|
1131
1158
|
tag: t,
|
|
1132
1159
|
input: n
|
|
1133
1160
|
});
|
|
1134
|
-
let
|
|
1161
|
+
let f;
|
|
1135
1162
|
try {
|
|
1136
|
-
let { runtime: i, client: o } = await
|
|
1137
|
-
|
|
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({
|
|
1138
1165
|
traceId: e.traceId,
|
|
1139
1166
|
spanId: e.spanId,
|
|
1140
1167
|
source: "action",
|
|
1141
1168
|
tag: t
|
|
1142
1169
|
});
|
|
1143
|
-
})),
|
|
1170
|
+
})), E.catchAll(() => E.void), E.zipRight(Ht(s(n), u))).pipe(E.withSpan(`client.action.${t}`, { attributes: {
|
|
1144
1171
|
"voltro.api": e,
|
|
1145
1172
|
"voltro.actionId": c,
|
|
1146
1173
|
"rpc.tag": t
|
|
1147
1174
|
} })));
|
|
1148
|
-
|
|
1175
|
+
d(l), kt(c, {
|
|
1149
1176
|
status: "success",
|
|
1150
1177
|
output: l
|
|
1151
1178
|
}), r?.onSuccess?.(l, n);
|
|
1152
|
-
let p =
|
|
1153
|
-
return p !== void 0 &&
|
|
1179
|
+
let p = Gt(r?.notify?.success, l, n);
|
|
1180
|
+
return p !== void 0 && It()?.success(p), l;
|
|
1154
1181
|
} catch (e) {
|
|
1155
|
-
let a =
|
|
1156
|
-
if (l(a),
|
|
1182
|
+
let a = Wt(e, f);
|
|
1183
|
+
if (l(a), kt(c, {
|
|
1157
1184
|
status: "error",
|
|
1158
1185
|
error: a
|
|
1159
1186
|
}), i.emit({
|
|
1160
1187
|
source: "action",
|
|
1161
1188
|
tag: t,
|
|
1162
1189
|
error: a,
|
|
1163
|
-
...
|
|
1190
|
+
...f === void 0 ? {} : { traceId: f }
|
|
1164
1191
|
}), o) {
|
|
1165
1192
|
r?.onError?.(a, n);
|
|
1166
|
-
let e =
|
|
1167
|
-
e !== void 0 &&
|
|
1193
|
+
let e = Gt(r?.notify?.error, a, n);
|
|
1194
|
+
e !== void 0 && It()?.error(e);
|
|
1168
1195
|
return;
|
|
1169
1196
|
}
|
|
1170
1197
|
throw a;
|
|
@@ -1176,162 +1203,504 @@ var G = async (e, t) => {
|
|
|
1176
1203
|
t,
|
|
1177
1204
|
i
|
|
1178
1205
|
]);
|
|
1179
|
-
return
|
|
1180
|
-
run:
|
|
1206
|
+
return b(() => ({
|
|
1207
|
+
run: f,
|
|
1181
1208
|
pending: o,
|
|
1182
1209
|
error: c,
|
|
1183
1210
|
lastResult: u
|
|
1184
1211
|
}), [
|
|
1185
|
-
|
|
1212
|
+
f,
|
|
1186
1213
|
o,
|
|
1187
1214
|
c,
|
|
1188
1215
|
u
|
|
1189
1216
|
]);
|
|
1190
|
-
},
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
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;
|
|
1198
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.)`);
|
|
1199
1568
|
i.seeds.push({
|
|
1200
1569
|
api: e,
|
|
1201
|
-
key:
|
|
1570
|
+
key: L([t, n]),
|
|
1202
1571
|
value: r
|
|
1203
1572
|
});
|
|
1204
|
-
},
|
|
1205
|
-
let r =
|
|
1573
|
+
}, gn = (e, t, n) => {
|
|
1574
|
+
let r = dn?.() ?? null;
|
|
1206
1575
|
r !== null && r.seeds.push({
|
|
1207
1576
|
api: e,
|
|
1208
|
-
key:
|
|
1577
|
+
key: L([t, n]),
|
|
1209
1578
|
value: void 0,
|
|
1210
1579
|
failed: !0
|
|
1211
1580
|
});
|
|
1212
|
-
},
|
|
1213
|
-
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), {
|
|
1214
1583
|
value: t.value,
|
|
1215
1584
|
failed: t.failed === !0
|
|
1216
1585
|
});
|
|
1217
|
-
},
|
|
1218
|
-
let r =
|
|
1586
|
+
}, vn = (e, t, n) => {
|
|
1587
|
+
let r = L([t, n]), i = dn?.() ?? null;
|
|
1219
1588
|
if (i !== null) {
|
|
1220
1589
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
|
|
1221
1590
|
return;
|
|
1222
1591
|
}
|
|
1223
|
-
let a =
|
|
1592
|
+
let a = pn.get(mn(e, r));
|
|
1224
1593
|
return a === void 0 || a.failed ? void 0 : a.value;
|
|
1225
|
-
},
|
|
1226
|
-
let r =
|
|
1594
|
+
}, yn = (e, t, n) => {
|
|
1595
|
+
let r = L([t, n]), i = dn?.() ?? null;
|
|
1227
1596
|
if (i !== null) {
|
|
1228
1597
|
for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
|
|
1229
1598
|
return "absent";
|
|
1230
1599
|
}
|
|
1231
|
-
let a =
|
|
1600
|
+
let a = pn.get(mn(e, r));
|
|
1232
1601
|
return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
|
|
1233
|
-
},
|
|
1234
|
-
|
|
1602
|
+
}, bn = () => {
|
|
1603
|
+
pn.clear();
|
|
1235
1604
|
};
|
|
1236
1605
|
//#endregion
|
|
1237
1606
|
//#region src/usePreloadedSubscription.ts
|
|
1238
|
-
function
|
|
1239
|
-
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 : {
|
|
1240
1609
|
...r,
|
|
1241
1610
|
initialSnapshot: i
|
|
1242
1611
|
});
|
|
1243
|
-
return
|
|
1612
|
+
return yn(e, t, n) === "failed" ? {
|
|
1244
1613
|
...a,
|
|
1245
1614
|
preloadFailed: !0
|
|
1246
1615
|
} : a;
|
|
1247
1616
|
}
|
|
1248
1617
|
//#endregion
|
|
1249
1618
|
//#region src/useEvent.ts
|
|
1250
|
-
var
|
|
1619
|
+
var Sn = {
|
|
1251
1620
|
status: "idle",
|
|
1252
1621
|
missed: 0,
|
|
1253
1622
|
lastMiss: void 0
|
|
1254
|
-
},
|
|
1623
|
+
}, Cn = class {
|
|
1255
1624
|
_tag = "EventStreamClosed";
|
|
1256
1625
|
};
|
|
1257
|
-
function
|
|
1258
|
-
let { skip: i = !1, apiName: a = "app", onMissed: o } = r, s =
|
|
1259
|
-
|
|
1260
|
-
let
|
|
1261
|
-
|
|
1262
|
-
let
|
|
1263
|
-
|
|
1264
|
-
let
|
|
1265
|
-
|
|
1266
|
-
let
|
|
1267
|
-
|
|
1268
|
-
let
|
|
1269
|
-
|
|
1270
|
-
let
|
|
1271
|
-
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) => ({
|
|
1272
1641
|
...n,
|
|
1273
1642
|
missed: n.missed + e,
|
|
1274
1643
|
lastMiss: {
|
|
1275
1644
|
count: e,
|
|
1276
1645
|
reason: t
|
|
1277
1646
|
}
|
|
1278
|
-
})),
|
|
1647
|
+
})), p.current?.({
|
|
1279
1648
|
count: e,
|
|
1280
1649
|
reason: t
|
|
1281
1650
|
}));
|
|
1282
|
-
}, []),
|
|
1283
|
-
return
|
|
1284
|
-
if (!
|
|
1285
|
-
|
|
1651
|
+
}, []), T = !i && v !== null && !ke(s);
|
|
1652
|
+
return y(() => {
|
|
1653
|
+
if (!T) {
|
|
1654
|
+
d(Sn);
|
|
1286
1655
|
return;
|
|
1287
1656
|
}
|
|
1288
|
-
|
|
1657
|
+
d((e) => ({
|
|
1289
1658
|
...e,
|
|
1290
1659
|
status: "connecting"
|
|
1291
1660
|
}));
|
|
1292
|
-
let t = 0, n =
|
|
1293
|
-
let t = [...
|
|
1661
|
+
let t = 0, n = E.sync(() => {
|
|
1662
|
+
let t = [..._.current].map(([e, t]) => ({
|
|
1294
1663
|
origin: e,
|
|
1295
1664
|
n: t
|
|
1296
1665
|
}));
|
|
1297
|
-
return
|
|
1298
|
-
key:
|
|
1666
|
+
return J(m.current, e.name)({
|
|
1667
|
+
key: b.current,
|
|
1299
1668
|
...t.length > 0 ? { resume: t } : {}
|
|
1300
1669
|
});
|
|
1301
|
-
}), r =
|
|
1670
|
+
}), r = M.unwrap(n).pipe(M.tap(() => E.sync(() => {
|
|
1302
1671
|
t = 0;
|
|
1303
|
-
})),
|
|
1304
|
-
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) => ({
|
|
1305
1674
|
...e,
|
|
1306
1675
|
status: "connecting"
|
|
1307
1676
|
}));
|
|
1308
|
-
}))))), i =
|
|
1677
|
+
}))))), i = h.current.runFork(M.runForEach(r, (e) => E.sync(() => {
|
|
1309
1678
|
if (e._tag === "attached") {
|
|
1310
|
-
|
|
1679
|
+
d((e) => ({
|
|
1311
1680
|
...e,
|
|
1312
1681
|
status: "live"
|
|
1313
1682
|
}));
|
|
1314
1683
|
return;
|
|
1315
1684
|
}
|
|
1316
1685
|
if (e._tag === "gap") {
|
|
1317
|
-
|
|
1686
|
+
w(e.missed, e.reason);
|
|
1318
1687
|
return;
|
|
1319
1688
|
}
|
|
1320
|
-
|
|
1689
|
+
_.current.set(e.origin, Math.max(_.current.get(e.origin) ?? 0, e.n)), f.current(e.payload);
|
|
1321
1690
|
})));
|
|
1322
1691
|
return () => {
|
|
1323
|
-
|
|
1692
|
+
h.current.runFork(i.interruptAsFork(i.id()));
|
|
1324
1693
|
};
|
|
1325
1694
|
}, [
|
|
1326
|
-
|
|
1327
|
-
|
|
1695
|
+
T,
|
|
1696
|
+
v,
|
|
1328
1697
|
e.name,
|
|
1329
|
-
|
|
1330
|
-
]),
|
|
1698
|
+
w
|
|
1699
|
+
]), T ? u : Sn;
|
|
1331
1700
|
}
|
|
1332
1701
|
//#endregion
|
|
1333
1702
|
//#region src/sequence.ts
|
|
1334
|
-
var
|
|
1703
|
+
var Tn = () => {
|
|
1335
1704
|
let e = (t) => ({
|
|
1336
1705
|
steps: t,
|
|
1337
1706
|
step: ((n, r, i) => e([...t, {
|
|
@@ -1343,7 +1712,7 @@ var sn = () => {
|
|
|
1343
1712
|
}]))
|
|
1344
1713
|
});
|
|
1345
1714
|
return e([]);
|
|
1346
|
-
},
|
|
1715
|
+
}, En = async (e, t = {}) => {
|
|
1347
1716
|
let n = {}, r = [];
|
|
1348
1717
|
for (let i of e.steps) {
|
|
1349
1718
|
if (i.when !== void 0 && !i.when(n)) {
|
|
@@ -1403,13 +1772,13 @@ var sn = () => {
|
|
|
1403
1772
|
ok: !0,
|
|
1404
1773
|
data: n
|
|
1405
1774
|
};
|
|
1406
|
-
},
|
|
1407
|
-
let [t, n] =
|
|
1775
|
+
}, Dn = (e = {}) => {
|
|
1776
|
+
let [t, n] = S(!1), [r, i] = S(void 0), [a, o] = S(void 0), s = x(e);
|
|
1408
1777
|
return s.current = e, {
|
|
1409
|
-
run:
|
|
1778
|
+
run: g(async (e, t = {}) => {
|
|
1410
1779
|
n(!0), i(void 0), o(void 0);
|
|
1411
1780
|
try {
|
|
1412
|
-
let n = await
|
|
1781
|
+
let n = await En(e, {
|
|
1413
1782
|
...s.current,
|
|
1414
1783
|
...t
|
|
1415
1784
|
});
|
|
@@ -1422,7 +1791,7 @@ var sn = () => {
|
|
|
1422
1791
|
error: r,
|
|
1423
1792
|
failedStep: a
|
|
1424
1793
|
};
|
|
1425
|
-
},
|
|
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) => {
|
|
1426
1795
|
let o = new XMLHttpRequest();
|
|
1427
1796
|
if (o.open("PUT", e), o.upload.onprogress = (e) => {
|
|
1428
1797
|
e.lengthComputable && n(e.loaded / e.total);
|
|
@@ -1436,7 +1805,7 @@ var sn = () => {
|
|
|
1436
1805
|
return;
|
|
1437
1806
|
}
|
|
1438
1807
|
r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
|
|
1439
|
-
}),
|
|
1808
|
+
}), Ln = (e, t, n, r, i, a) => new Promise((o, s) => {
|
|
1440
1809
|
let c = new XMLHttpRequest();
|
|
1441
1810
|
if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
|
|
1442
1811
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1454,7 +1823,7 @@ var sn = () => {
|
|
|
1454
1823
|
return;
|
|
1455
1824
|
}
|
|
1456
1825
|
i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
|
|
1457
|
-
}),
|
|
1826
|
+
}), Rn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1458
1827
|
let s = new XMLHttpRequest();
|
|
1459
1828
|
if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1460
1829
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1465,7 +1834,7 @@ var sn = () => {
|
|
|
1465
1834
|
return;
|
|
1466
1835
|
}
|
|
1467
1836
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1468
|
-
}),
|
|
1837
|
+
}), zn = (e, t, n, r, i) => new Promise((a, o) => {
|
|
1469
1838
|
let s = new XMLHttpRequest();
|
|
1470
1839
|
if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
1471
1840
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -1481,94 +1850,94 @@ var sn = () => {
|
|
|
1481
1850
|
return;
|
|
1482
1851
|
}
|
|
1483
1852
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
1484
|
-
}),
|
|
1485
|
-
let { runtime: n, client: r, inspectBaseUrl: i, errorBus: a } =
|
|
1486
|
-
s(0), l("idle"),
|
|
1487
|
-
}, []),
|
|
1488
|
-
|
|
1489
|
-
}, []),
|
|
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) => {
|
|
1490
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 = {
|
|
1491
1860
|
...u ? { visibility: u } : {},
|
|
1492
1861
|
...f ? { folder: f } : {},
|
|
1493
1862
|
...p ? { tags: p } : {},
|
|
1494
1863
|
...i.alt ? { alt: i.alt } : {},
|
|
1495
1864
|
...i.caption ? { caption: i.caption } : {}
|
|
1496
|
-
},
|
|
1865
|
+
}, g = (e) => ({
|
|
1497
1866
|
id: e.id,
|
|
1498
|
-
url:
|
|
1867
|
+
url: h(e.url),
|
|
1499
1868
|
name: l,
|
|
1500
1869
|
mime: e.contentType,
|
|
1501
1870
|
size: e.size,
|
|
1502
1871
|
...e.width === void 0 ? {} : { width: e.width },
|
|
1503
1872
|
...e.height === void 0 ? {} : { height: e.height }
|
|
1504
|
-
}),
|
|
1505
|
-
let s = i.mintTag ?? t.mintTag ??
|
|
1873
|
+
}), _ = async () => {
|
|
1874
|
+
let s = i.mintTag ?? t.mintTag ?? On, l = J(r, s), u = await X(n, l({
|
|
1506
1875
|
contentType: c,
|
|
1507
1876
|
...m,
|
|
1508
1877
|
...d ? { key: d } : {}
|
|
1509
|
-
})), f = await
|
|
1510
|
-
return
|
|
1511
|
-
},
|
|
1512
|
-
let s = i.presignMintTag ?? t.presignMintTag ??
|
|
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;
|
|
1513
1882
|
try {
|
|
1514
|
-
let e =
|
|
1515
|
-
u = await
|
|
1883
|
+
let e = J(r, s);
|
|
1884
|
+
u = await X(n, e({
|
|
1516
1885
|
contentType: c,
|
|
1517
1886
|
...m
|
|
1518
1887
|
}));
|
|
1519
1888
|
} catch {
|
|
1520
1889
|
return null;
|
|
1521
1890
|
}
|
|
1522
|
-
await
|
|
1523
|
-
let d =
|
|
1524
|
-
return
|
|
1525
|
-
},
|
|
1526
|
-
let s = i.beginResumableTag ?? t.beginResumableTag ??
|
|
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({
|
|
1527
1896
|
contentType: c,
|
|
1528
1897
|
size: u,
|
|
1529
1898
|
...m,
|
|
1530
1899
|
...d ? { chunkSize: d } : {}
|
|
1531
|
-
})), p =
|
|
1532
|
-
for (let t = 0; t <
|
|
1533
|
-
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;
|
|
1534
1903
|
for (;;) {
|
|
1535
1904
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1536
1905
|
try {
|
|
1537
|
-
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);
|
|
1538
1907
|
s && (x = e);
|
|
1539
1908
|
break;
|
|
1540
1909
|
} catch (e) {
|
|
1541
|
-
if (e instanceof DOMException && e.name === "AbortError" || d++ >=
|
|
1910
|
+
if (e instanceof DOMException && e.name === "AbortError" || d++ >= y) throw e;
|
|
1542
1911
|
}
|
|
1543
1912
|
}
|
|
1544
1913
|
b += l, o(b / u);
|
|
1545
1914
|
}
|
|
1546
1915
|
if (!x) throw Error("resumable upload produced no final reply");
|
|
1547
|
-
return
|
|
1916
|
+
return g(x);
|
|
1548
1917
|
}, b = async () => {
|
|
1549
|
-
let s = i.multipartBeginTag ?? t.multipartBeginTag ??
|
|
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, _;
|
|
1550
1919
|
try {
|
|
1551
|
-
let e =
|
|
1552
|
-
|
|
1920
|
+
let e = J(r, s);
|
|
1921
|
+
_ = await X(n, e({
|
|
1553
1922
|
contentType: c,
|
|
1554
1923
|
size: p,
|
|
1555
1924
|
...m,
|
|
1556
|
-
...
|
|
1925
|
+
...g ? { partSize: g } : {}
|
|
1557
1926
|
}));
|
|
1558
1927
|
} catch {
|
|
1559
1928
|
return null;
|
|
1560
1929
|
}
|
|
1561
|
-
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;
|
|
1562
1931
|
try {
|
|
1563
1932
|
for (let t = 0; t < S; t++) {
|
|
1564
1933
|
let r = t * x, i = Math.min(p, r + x), s = e.slice(r, i), c = t + 1, l = i - r, u = 0;
|
|
1565
1934
|
for (;;) {
|
|
1566
1935
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1567
1936
|
try {
|
|
1568
|
-
let { url: e } = await
|
|
1569
|
-
multipartToken:
|
|
1937
|
+
let { url: e } = await X(n, v({
|
|
1938
|
+
multipartToken: _.multipartToken,
|
|
1570
1939
|
partNumber: c
|
|
1571
|
-
})), t = await
|
|
1940
|
+
})), t = await In(e, s, (e) => o((T + e * l) / p), a);
|
|
1572
1941
|
w.push({
|
|
1573
1942
|
partNumber: c,
|
|
1574
1943
|
etag: t
|
|
@@ -1580,35 +1949,35 @@ var sn = () => {
|
|
|
1580
1949
|
}
|
|
1581
1950
|
T += l, o(T / p);
|
|
1582
1951
|
}
|
|
1583
|
-
let t = await
|
|
1584
|
-
multipartToken:
|
|
1952
|
+
let t = await X(n, y({
|
|
1953
|
+
multipartToken: _.multipartToken,
|
|
1585
1954
|
parts: w
|
|
1586
1955
|
}));
|
|
1587
1956
|
return {
|
|
1588
1957
|
id: t.id,
|
|
1589
|
-
url:
|
|
1958
|
+
url: h(t.url),
|
|
1590
1959
|
name: l,
|
|
1591
1960
|
mime: c,
|
|
1592
1961
|
size: t.size
|
|
1593
1962
|
};
|
|
1594
1963
|
} catch (e) {
|
|
1595
1964
|
try {
|
|
1596
|
-
await
|
|
1965
|
+
await X(n, b({ multipartToken: _.multipartToken }));
|
|
1597
1966
|
} catch {}
|
|
1598
1967
|
throw e;
|
|
1599
1968
|
}
|
|
1600
1969
|
};
|
|
1601
|
-
if ((i.prefer ?? t.prefer) === "multipart") return await b() || await
|
|
1602
|
-
if ((i.prefer ?? t.prefer) === "resumable") return await
|
|
1970
|
+
if ((i.prefer ?? t.prefer) === "multipart") return await b() || await y();
|
|
1971
|
+
if ((i.prefer ?? t.prefer) === "resumable") return await y();
|
|
1603
1972
|
let x = (i.prefer ?? t.prefer) === "presign", S;
|
|
1604
1973
|
for (let e = 0; e <= s; e++) {
|
|
1605
1974
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
1606
1975
|
try {
|
|
1607
1976
|
if (x) {
|
|
1608
|
-
let e = await
|
|
1977
|
+
let e = await v();
|
|
1609
1978
|
if (e) return e;
|
|
1610
1979
|
}
|
|
1611
|
-
return await
|
|
1980
|
+
return await _();
|
|
1612
1981
|
} catch (t) {
|
|
1613
1982
|
if (t instanceof DOMException && t.name === "AbortError" || (S = t, e === s)) throw t;
|
|
1614
1983
|
}
|
|
@@ -1617,7 +1986,7 @@ var sn = () => {
|
|
|
1617
1986
|
}, [
|
|
1618
1987
|
n,
|
|
1619
1988
|
r,
|
|
1620
|
-
|
|
1989
|
+
h,
|
|
1621
1990
|
t.mintTag,
|
|
1622
1991
|
t.presignMintTag,
|
|
1623
1992
|
t.finalizeTag,
|
|
@@ -1633,32 +2002,32 @@ var sn = () => {
|
|
|
1633
2002
|
t.folder,
|
|
1634
2003
|
t.tags,
|
|
1635
2004
|
t.retries
|
|
1636
|
-
]),
|
|
2005
|
+
]), v = g(async (e, n = {}) => {
|
|
1637
2006
|
let r = new AbortController();
|
|
1638
|
-
|
|
2007
|
+
f.current = r, l("uploading"), d(void 0), s(0);
|
|
1639
2008
|
try {
|
|
1640
|
-
let t = await
|
|
2009
|
+
let t = await _(e, n, r.signal, s);
|
|
1641
2010
|
return s(1), l("success"), t;
|
|
1642
2011
|
} catch (e) {
|
|
1643
|
-
throw l("error"),
|
|
2012
|
+
throw l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1644
2013
|
source: "action",
|
|
1645
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
2014
|
+
tag: n.mintTag ?? t.mintTag ?? On,
|
|
1646
2015
|
error: e
|
|
1647
2016
|
}), e;
|
|
1648
2017
|
}
|
|
1649
2018
|
}, [
|
|
1650
|
-
|
|
2019
|
+
_,
|
|
1651
2020
|
a,
|
|
1652
2021
|
t.mintTag
|
|
1653
|
-
]),
|
|
2022
|
+
]), y = g(async (e, n = {}) => {
|
|
1654
2023
|
if (e.length === 0) return [];
|
|
1655
2024
|
let r = new AbortController();
|
|
1656
|
-
|
|
1657
|
-
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),
|
|
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 () => {
|
|
1658
2027
|
for (;;) {
|
|
1659
|
-
let t =
|
|
2028
|
+
let t = p++;
|
|
1660
2029
|
if (t >= e.length) return;
|
|
1661
|
-
o[t] = await
|
|
2030
|
+
o[t] = await _(e[t], n, r.signal, (e) => {
|
|
1662
2031
|
c[t] = e, u();
|
|
1663
2032
|
}), c[t] = 1, u();
|
|
1664
2033
|
}
|
|
@@ -1666,73 +2035,73 @@ var sn = () => {
|
|
|
1666
2035
|
try {
|
|
1667
2036
|
return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () => m())), s(1), l("success"), o;
|
|
1668
2037
|
} catch (e) {
|
|
1669
|
-
throw r.abort(), l("error"),
|
|
2038
|
+
throw r.abort(), l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
|
|
1670
2039
|
source: "action",
|
|
1671
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
2040
|
+
tag: n.mintTag ?? t.mintTag ?? On,
|
|
1672
2041
|
error: e
|
|
1673
2042
|
}), e;
|
|
1674
2043
|
}
|
|
1675
2044
|
}, [
|
|
1676
|
-
|
|
2045
|
+
_,
|
|
1677
2046
|
a,
|
|
1678
2047
|
t.concurrency,
|
|
1679
2048
|
t.mintTag
|
|
1680
|
-
]), C =
|
|
2049
|
+
]), C = g((e, t = {}) => {
|
|
1681
2050
|
e.preventDefault();
|
|
1682
2051
|
let n = e.dataTransfer ? Array.from(e.dataTransfer.files) : [];
|
|
1683
|
-
return n.length ?
|
|
1684
|
-
}, [
|
|
2052
|
+
return n.length ? y(n, t) : Promise.resolve([]);
|
|
2053
|
+
}, [y]), w = g((e, t = {}) => {
|
|
1685
2054
|
let n = e.clipboardData ? Array.from(e.clipboardData.files) : [];
|
|
1686
|
-
return n.length ?
|
|
1687
|
-
}, [
|
|
2055
|
+
return n.length ? y(n, t) : Promise.resolve([]);
|
|
2056
|
+
}, [y]), T = b(() => ({
|
|
1688
2057
|
onDragOver: (e) => e.preventDefault(),
|
|
1689
2058
|
onDrop: (e) => {
|
|
1690
2059
|
C(e);
|
|
1691
2060
|
}
|
|
1692
2061
|
}), [C]);
|
|
1693
|
-
return
|
|
1694
|
-
upload:
|
|
1695
|
-
uploadMany:
|
|
2062
|
+
return b(() => ({
|
|
2063
|
+
upload: v,
|
|
2064
|
+
uploadMany: y,
|
|
1696
2065
|
progress: o,
|
|
1697
2066
|
status: c,
|
|
1698
2067
|
error: u,
|
|
1699
|
-
cancel:
|
|
1700
|
-
reset:
|
|
2068
|
+
cancel: m,
|
|
2069
|
+
reset: p,
|
|
1701
2070
|
onDrop: C,
|
|
1702
2071
|
onPaste: w,
|
|
1703
2072
|
dropzoneProps: T
|
|
1704
2073
|
}), [
|
|
1705
|
-
|
|
1706
|
-
|
|
2074
|
+
v,
|
|
2075
|
+
y,
|
|
1707
2076
|
o,
|
|
1708
2077
|
c,
|
|
1709
2078
|
u,
|
|
1710
|
-
v,
|
|
1711
2079
|
m,
|
|
2080
|
+
p,
|
|
1712
2081
|
C,
|
|
1713
2082
|
w,
|
|
1714
2083
|
T
|
|
1715
2084
|
]);
|
|
1716
2085
|
}, $ = async (e) => {
|
|
1717
|
-
let t =
|
|
1718
|
-
|
|
2086
|
+
let t = J(e.client, e.tag), n = E.currentSpan.pipe(E.tap((t) => E.sync(() => {
|
|
2087
|
+
I({
|
|
1719
2088
|
traceId: t.traceId,
|
|
1720
2089
|
spanId: t.spanId,
|
|
1721
2090
|
source: "mutation",
|
|
1722
2091
|
tag: e.tag
|
|
1723
2092
|
});
|
|
1724
|
-
})),
|
|
2093
|
+
})), E.catchAll(() => E.void), E.zipRight(t(e.input)), E.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
|
|
1725
2094
|
"voltro.api": e.apiName,
|
|
1726
2095
|
"rpc.tag": e.tag
|
|
1727
2096
|
} }));
|
|
1728
|
-
return
|
|
1729
|
-
},
|
|
1730
|
-
let { runtime: n, client: r, descriptors: i } =
|
|
2097
|
+
return X(e.runtime, n);
|
|
2098
|
+
}, Vn = (e, t) => {
|
|
2099
|
+
let { runtime: n, client: r, descriptors: i } = W(e);
|
|
1731
2100
|
if (process.env.NODE_ENV !== "production") {
|
|
1732
2101
|
let n = i[t]?.kind;
|
|
1733
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.`);
|
|
1734
2103
|
}
|
|
1735
|
-
let [a, o] =
|
|
2104
|
+
let [a, o] = S(!1), [s, c] = S(void 0), [l, u] = S(void 0), d = g(async (i) => {
|
|
1736
2105
|
o(!0), c(void 0);
|
|
1737
2106
|
try {
|
|
1738
2107
|
let a = await $({
|
|
@@ -1754,7 +2123,7 @@ var sn = () => {
|
|
|
1754
2123
|
n,
|
|
1755
2124
|
r,
|
|
1756
2125
|
t
|
|
1757
|
-
]),
|
|
2126
|
+
]), f = g(async (t) => {
|
|
1758
2127
|
await $({
|
|
1759
2128
|
apiName: e,
|
|
1760
2129
|
runtime: n,
|
|
@@ -1767,7 +2136,7 @@ var sn = () => {
|
|
|
1767
2136
|
e,
|
|
1768
2137
|
n,
|
|
1769
2138
|
r
|
|
1770
|
-
]),
|
|
2139
|
+
]), p = g(async (t) => {
|
|
1771
2140
|
await $({
|
|
1772
2141
|
apiName: e,
|
|
1773
2142
|
runtime: n,
|
|
@@ -1780,7 +2149,7 @@ var sn = () => {
|
|
|
1780
2149
|
e,
|
|
1781
2150
|
n,
|
|
1782
2151
|
r
|
|
1783
|
-
]),
|
|
2152
|
+
]), m = g(async (t, i, a) => $({
|
|
1784
2153
|
apiName: e,
|
|
1785
2154
|
runtime: n,
|
|
1786
2155
|
client: r,
|
|
@@ -1795,7 +2164,7 @@ var sn = () => {
|
|
|
1795
2164
|
e,
|
|
1796
2165
|
n,
|
|
1797
2166
|
r
|
|
1798
|
-
]),
|
|
2167
|
+
]), h = g(async (t, i, a, o) => $({
|
|
1799
2168
|
apiName: e,
|
|
1800
2169
|
runtime: n,
|
|
1801
2170
|
client: r,
|
|
@@ -1812,27 +2181,27 @@ var sn = () => {
|
|
|
1812
2181
|
n,
|
|
1813
2182
|
r
|
|
1814
2183
|
]);
|
|
1815
|
-
return
|
|
1816
|
-
start:
|
|
1817
|
-
cancel:
|
|
1818
|
-
resume:
|
|
1819
|
-
signal:
|
|
1820
|
-
update:
|
|
2184
|
+
return b(() => ({
|
|
2185
|
+
start: d,
|
|
2186
|
+
cancel: f,
|
|
2187
|
+
resume: p,
|
|
2188
|
+
signal: m,
|
|
2189
|
+
update: h,
|
|
1821
2190
|
pending: a,
|
|
1822
2191
|
error: s,
|
|
1823
2192
|
data: l
|
|
1824
2193
|
}), [
|
|
2194
|
+
d,
|
|
1825
2195
|
f,
|
|
1826
2196
|
p,
|
|
1827
2197
|
m,
|
|
1828
|
-
|
|
1829
|
-
v,
|
|
2198
|
+
h,
|
|
1830
2199
|
a,
|
|
1831
2200
|
s,
|
|
1832
2201
|
l
|
|
1833
2202
|
]);
|
|
1834
|
-
},
|
|
1835
|
-
let { runtime: t, client: n } =
|
|
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) => {
|
|
1836
2205
|
i(!0), o(void 0);
|
|
1837
2206
|
try {
|
|
1838
2207
|
let i = await $({
|
|
@@ -1858,7 +2227,7 @@ var sn = () => {
|
|
|
1858
2227
|
t,
|
|
1859
2228
|
n
|
|
1860
2229
|
]);
|
|
1861
|
-
return
|
|
2230
|
+
return b(() => ({
|
|
1862
2231
|
signal: l,
|
|
1863
2232
|
pending: r,
|
|
1864
2233
|
error: a,
|
|
@@ -1869,8 +2238,8 @@ var sn = () => {
|
|
|
1869
2238
|
a,
|
|
1870
2239
|
s
|
|
1871
2240
|
]);
|
|
1872
|
-
},
|
|
1873
|
-
let { runtime: t, client: n } =
|
|
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) => {
|
|
1874
2243
|
i(!0), o(void 0);
|
|
1875
2244
|
try {
|
|
1876
2245
|
let i = await $({
|
|
@@ -1897,7 +2266,7 @@ var sn = () => {
|
|
|
1897
2266
|
t,
|
|
1898
2267
|
n
|
|
1899
2268
|
]);
|
|
1900
|
-
return
|
|
2269
|
+
return b(() => ({
|
|
1901
2270
|
update: l,
|
|
1902
2271
|
pending: r,
|
|
1903
2272
|
error: a,
|
|
@@ -1908,8 +2277,8 @@ var sn = () => {
|
|
|
1908
2277
|
a,
|
|
1909
2278
|
s
|
|
1910
2279
|
]);
|
|
1911
|
-
},
|
|
1912
|
-
let n =
|
|
2280
|
+
}, Wn = (e, t) => {
|
|
2281
|
+
let n = Y(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
|
|
1913
2282
|
return n.loading || n.idle || n.failed ? {
|
|
1914
2283
|
...n,
|
|
1915
2284
|
run: void 0
|
|
@@ -1917,8 +2286,8 @@ var sn = () => {
|
|
|
1917
2286
|
...n,
|
|
1918
2287
|
run: n.data[0]
|
|
1919
2288
|
};
|
|
1920
|
-
},
|
|
1921
|
-
let r =
|
|
2289
|
+
}, Gn = (e, t = {}, n = {}) => {
|
|
2290
|
+
let r = Y(e, "__voltro.workflow.runs", t, n);
|
|
1922
2291
|
return r.loading || r.idle || r.failed ? {
|
|
1923
2292
|
...r,
|
|
1924
2293
|
runs: []
|
|
@@ -1926,8 +2295,8 @@ var sn = () => {
|
|
|
1926
2295
|
...r,
|
|
1927
2296
|
runs: r.data
|
|
1928
2297
|
};
|
|
1929
|
-
},
|
|
1930
|
-
let n =
|
|
2298
|
+
}, Kn = (e, t) => {
|
|
2299
|
+
let n = Y(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1931
2300
|
return n.loading || n.idle || n.failed ? {
|
|
1932
2301
|
...n,
|
|
1933
2302
|
steps: []
|
|
@@ -1935,8 +2304,8 @@ var sn = () => {
|
|
|
1935
2304
|
...n,
|
|
1936
2305
|
steps: n.data
|
|
1937
2306
|
};
|
|
1938
|
-
},
|
|
1939
|
-
let n =
|
|
2307
|
+
}, qn = (e, t) => {
|
|
2308
|
+
let n = Y(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1940
2309
|
return n.loading || n.idle || n.failed ? {
|
|
1941
2310
|
...n,
|
|
1942
2311
|
events: []
|
|
@@ -1944,8 +2313,8 @@ var sn = () => {
|
|
|
1944
2313
|
...n,
|
|
1945
2314
|
events: n.data
|
|
1946
2315
|
};
|
|
1947
|
-
},
|
|
1948
|
-
let r =
|
|
2316
|
+
}, Jn = qn, Yn = (e, t = {}, n = {}) => {
|
|
2317
|
+
let r = Y(e, "__voltro.workflow.domainEvents", t, n);
|
|
1949
2318
|
return r.loading || r.idle || r.failed ? {
|
|
1950
2319
|
...r,
|
|
1951
2320
|
events: []
|
|
@@ -1953,8 +2322,8 @@ var sn = () => {
|
|
|
1953
2322
|
...r,
|
|
1954
2323
|
events: r.data
|
|
1955
2324
|
};
|
|
1956
|
-
},
|
|
1957
|
-
let n =
|
|
2325
|
+
}, Xn = (e, t) => {
|
|
2326
|
+
let n = Y(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
|
|
1958
2327
|
return n.loading || n.idle || n.failed ? {
|
|
1959
2328
|
...n,
|
|
1960
2329
|
deliveries: []
|
|
@@ -1962,42 +2331,42 @@ var sn = () => {
|
|
|
1962
2331
|
...n,
|
|
1963
2332
|
deliveries: n.data
|
|
1964
2333
|
};
|
|
1965
|
-
},
|
|
2334
|
+
}, Zn = (e, t) => {
|
|
1966
2335
|
let n = e.payload;
|
|
1967
2336
|
if (!n || typeof n != "object") return;
|
|
1968
2337
|
let r = n[t];
|
|
1969
2338
|
return typeof r == "string" ? r : void 0;
|
|
1970
|
-
},
|
|
2339
|
+
}, Qn = (e) => {
|
|
1971
2340
|
let t = e.payload;
|
|
1972
2341
|
if (!t || typeof t != "object") return;
|
|
1973
2342
|
let n = t.updateId;
|
|
1974
2343
|
return typeof n == "string" ? n : void 0;
|
|
1975
|
-
},
|
|
2344
|
+
}, $n = (e) => {
|
|
1976
2345
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
1977
2346
|
for (let r of e) if (r.eventType === "signal-received") {
|
|
1978
|
-
let e =
|
|
2347
|
+
let e = Zn(r, "signalName");
|
|
1979
2348
|
e && t.add(e);
|
|
1980
2349
|
} else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
|
|
1981
|
-
let e =
|
|
2350
|
+
let e = Qn(r);
|
|
1982
2351
|
e && n.add(e);
|
|
1983
2352
|
}
|
|
1984
2353
|
for (let r = e.length - 1; r >= 0; --r) {
|
|
1985
2354
|
let i = e[r];
|
|
1986
2355
|
if (i.eventType === "signal-awaited") {
|
|
1987
|
-
let e =
|
|
2356
|
+
let e = Zn(i, "signalName");
|
|
1988
2357
|
if (e && !t.has(e)) return {
|
|
1989
2358
|
name: e,
|
|
1990
2359
|
kind: "signal"
|
|
1991
2360
|
};
|
|
1992
2361
|
} else if (i.eventType === "update-requested") {
|
|
1993
|
-
let e =
|
|
2362
|
+
let e = Qn(i), t = Zn(i, "updateName");
|
|
1994
2363
|
if (t && (!e || !n.has(e))) return {
|
|
1995
2364
|
name: t,
|
|
1996
2365
|
kind: "update"
|
|
1997
2366
|
};
|
|
1998
2367
|
}
|
|
1999
2368
|
}
|
|
2000
|
-
},
|
|
2369
|
+
}, er = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), tr = (e, t) => {
|
|
2001
2370
|
if (!e || e.status !== "failed") return;
|
|
2002
2371
|
let n = t.find((e) => e.status === "failed");
|
|
2003
2372
|
return {
|
|
@@ -2005,40 +2374,40 @@ var sn = () => {
|
|
|
2005
2374
|
message: e.errorMessage,
|
|
2006
2375
|
step: n?.stepName
|
|
2007
2376
|
};
|
|
2008
|
-
},
|
|
2009
|
-
let n =
|
|
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 () => {
|
|
2010
2379
|
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
|
|
2011
2380
|
await a.cancel({
|
|
2012
2381
|
workflowName: o.tag,
|
|
2013
2382
|
executionId: o.executionId
|
|
2014
2383
|
});
|
|
2015
|
-
}, [a, o]), u =
|
|
2384
|
+
}, [a, o]), u = g(async () => {
|
|
2016
2385
|
if (!o) throw Error("useWorkflowRunState: no run loaded — cannot resume");
|
|
2017
2386
|
await a.resume({
|
|
2018
2387
|
workflowName: o.tag,
|
|
2019
2388
|
executionId: o.executionId
|
|
2020
2389
|
});
|
|
2021
|
-
}, [a, o]),
|
|
2390
|
+
}, [a, o]), d = g((e, n) => {
|
|
2022
2391
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot signal");
|
|
2023
2392
|
return a.signal({ id: t }, e, n);
|
|
2024
|
-
}, [a, t]),
|
|
2393
|
+
}, [a, t]), f = g((e, n, r) => {
|
|
2025
2394
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot update");
|
|
2026
2395
|
return a.update({ id: t }, e, n, r);
|
|
2027
2396
|
}, [a, t]);
|
|
2028
|
-
return
|
|
2397
|
+
return b(() => ({
|
|
2029
2398
|
run: o,
|
|
2030
2399
|
status: o?.status,
|
|
2031
2400
|
steps: s,
|
|
2032
2401
|
events: c,
|
|
2033
|
-
currentStep:
|
|
2034
|
-
waitingFor: o?.status === "suspended" ?
|
|
2035
|
-
error:
|
|
2402
|
+
currentStep: er(s),
|
|
2403
|
+
waitingFor: o?.status === "suspended" ? $n(c) : void 0,
|
|
2404
|
+
error: tr(o, s),
|
|
2036
2405
|
traceId: o?.traceId,
|
|
2037
2406
|
loading: n.data === void 0,
|
|
2038
2407
|
cancel: l,
|
|
2039
2408
|
resume: u,
|
|
2040
|
-
signal:
|
|
2041
|
-
update:
|
|
2409
|
+
signal: d,
|
|
2410
|
+
update: f
|
|
2042
2411
|
}), [
|
|
2043
2412
|
o,
|
|
2044
2413
|
s,
|
|
@@ -2046,27 +2415,27 @@ var sn = () => {
|
|
|
2046
2415
|
n.data,
|
|
2047
2416
|
l,
|
|
2048
2417
|
u,
|
|
2049
|
-
|
|
2050
|
-
|
|
2418
|
+
d,
|
|
2419
|
+
f
|
|
2051
2420
|
]);
|
|
2052
|
-
},
|
|
2053
|
-
let { runtime: n, client: r } =
|
|
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(() => {
|
|
2054
2423
|
let e = u.current;
|
|
2055
|
-
e && (u.current = null, n.runFork(
|
|
2424
|
+
e && (u.current = null, n.runFork(O.interrupt(e)), s((e) => e === "streaming" ? "idle" : e));
|
|
2056
2425
|
}, [n]);
|
|
2057
2426
|
return {
|
|
2058
2427
|
events: i,
|
|
2059
2428
|
status: o,
|
|
2060
2429
|
error: c,
|
|
2061
|
-
start:
|
|
2430
|
+
start: g((e = {}) => {
|
|
2062
2431
|
let i = u.current;
|
|
2063
|
-
i && n.runFork(
|
|
2064
|
-
let o =
|
|
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({
|
|
2065
2434
|
onSuccess: () => {
|
|
2066
2435
|
s("done");
|
|
2067
2436
|
},
|
|
2068
2437
|
onFailure: (e) => {
|
|
2069
|
-
|
|
2438
|
+
w.isInterruptedOnly(e) || (l(w.squash(e)), s("error"));
|
|
2070
2439
|
}
|
|
2071
2440
|
}));
|
|
2072
2441
|
u.current = n.runFork(c);
|
|
@@ -2075,77 +2444,77 @@ var sn = () => {
|
|
|
2075
2444
|
r,
|
|
2076
2445
|
t
|
|
2077
2446
|
]),
|
|
2078
|
-
cancel:
|
|
2447
|
+
cancel: d
|
|
2079
2448
|
};
|
|
2080
|
-
},
|
|
2081
|
-
let i = 0, a = !1, o = (e) =>
|
|
2449
|
+
}, ir = (e, t, n, r) => {
|
|
2450
|
+
let i = 0, a = !1, o = (e) => E.sync(() => {
|
|
2082
2451
|
e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
|
|
2083
2452
|
}), s = (e, t, a) => {
|
|
2084
2453
|
let o = i > t ? 0 : e + 1;
|
|
2085
|
-
if (o > r.maxReconnects) return
|
|
2454
|
+
if (o > r.maxReconnects) return E.sync(() => {
|
|
2086
2455
|
n.onError(a ?? /* @__PURE__ */ Error("stream connection lost")), n.onStatus("error");
|
|
2087
2456
|
});
|
|
2088
2457
|
let s = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, o - 1));
|
|
2089
|
-
return
|
|
2458
|
+
return E.sync(() => {
|
|
2090
2459
|
n.onStatus("reconnecting"), n.onReconnect();
|
|
2091
|
-
}).pipe(
|
|
2092
|
-
}, 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(() => {
|
|
2093
2462
|
let c = i, l = e({
|
|
2094
2463
|
...t,
|
|
2095
2464
|
fromSeq: c
|
|
2096
2465
|
});
|
|
2097
|
-
return
|
|
2098
|
-
onSuccess: () => a ?
|
|
2099
|
-
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))
|
|
2100
2469
|
}));
|
|
2101
2470
|
});
|
|
2102
2471
|
return c(0);
|
|
2103
|
-
},
|
|
2472
|
+
}, ar = (e) => {
|
|
2104
2473
|
let t = e?._tag;
|
|
2105
2474
|
return t === "done" || t === "error";
|
|
2106
|
-
},
|
|
2107
|
-
let { runtime: r, client: i } =
|
|
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 = {
|
|
2108
2477
|
maxReconnects: n.maxReconnects ?? 6,
|
|
2109
2478
|
backoffMs: n.backoffMs ?? 400,
|
|
2110
2479
|
maxBackoffMs: n.maxBackoffMs ?? 8e3,
|
|
2111
|
-
isTerminal: n.isTerminal ??
|
|
2112
|
-
},
|
|
2113
|
-
let e =
|
|
2114
|
-
e && (
|
|
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));
|
|
2115
2484
|
}, [r]);
|
|
2116
2485
|
return {
|
|
2117
2486
|
events: a,
|
|
2118
2487
|
status: s,
|
|
2119
2488
|
reconnects: l,
|
|
2120
|
-
error:
|
|
2121
|
-
start:
|
|
2122
|
-
let n =
|
|
2123
|
-
n && r.runFork(
|
|
2124
|
-
let a =
|
|
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 = {
|
|
2125
2494
|
onEvent: (e) => o((t) => [...t, e]),
|
|
2126
2495
|
onStatus: c,
|
|
2127
2496
|
onReconnect: () => u((e) => e + 1),
|
|
2128
|
-
onError:
|
|
2497
|
+
onError: f
|
|
2129
2498
|
};
|
|
2130
|
-
|
|
2499
|
+
p.current = r.runFork(ir(a, e, s, m));
|
|
2131
2500
|
}, [
|
|
2132
2501
|
r,
|
|
2133
2502
|
i,
|
|
2134
2503
|
t,
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2504
|
+
m.maxReconnects,
|
|
2505
|
+
m.backoffMs,
|
|
2506
|
+
m.maxBackoffMs,
|
|
2507
|
+
m.isTerminal
|
|
2139
2508
|
]),
|
|
2140
|
-
cancel:
|
|
2509
|
+
cancel: h
|
|
2141
2510
|
};
|
|
2142
|
-
},
|
|
2511
|
+
}, sr = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), cr = (e) => {
|
|
2143
2512
|
for (let t = e.length - 1; t >= 0; --t) {
|
|
2144
2513
|
let n = e[t];
|
|
2145
2514
|
if (n.role === "user" && n.content) return n.content;
|
|
2146
2515
|
}
|
|
2147
|
-
},
|
|
2148
|
-
let { threadId: r } = n, i =
|
|
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({
|
|
2149
2518
|
threadId: r,
|
|
2150
2519
|
order: i.data?.length ?? 0,
|
|
2151
2520
|
prompt: e,
|
|
@@ -2154,11 +2523,11 @@ var sn = () => {
|
|
|
2154
2523
|
a,
|
|
2155
2524
|
r,
|
|
2156
2525
|
i.data
|
|
2157
|
-
]), c =
|
|
2158
|
-
let e =
|
|
2526
|
+
]), c = g(() => {
|
|
2527
|
+
let e = cr(o);
|
|
2159
2528
|
return e === void 0 ? void 0 : s(e);
|
|
2160
2529
|
}, [o, s]);
|
|
2161
|
-
return
|
|
2530
|
+
return b(() => ({
|
|
2162
2531
|
messages: o,
|
|
2163
2532
|
streaming: o.some((e) => e.streaming),
|
|
2164
2533
|
loading: i.data === void 0,
|
|
@@ -2175,9 +2544,9 @@ var sn = () => {
|
|
|
2175
2544
|
s,
|
|
2176
2545
|
c
|
|
2177
2546
|
]);
|
|
2178
|
-
},
|
|
2179
|
-
let { events: n, status: r, error: i, start: a, cancel: o } =
|
|
2180
|
-
return
|
|
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(() => {
|
|
2181
2550
|
if (r !== "done" || l.current === null) return;
|
|
2182
2551
|
let e = l.current;
|
|
2183
2552
|
l.current = null, c((t) => [
|
|
@@ -2196,18 +2565,18 @@ var sn = () => {
|
|
|
2196
2565
|
history: s,
|
|
2197
2566
|
status: r,
|
|
2198
2567
|
error: i,
|
|
2199
|
-
send:
|
|
2568
|
+
send: g((e = {}) => {
|
|
2200
2569
|
let t = e.message;
|
|
2201
2570
|
l.current = typeof t == "string" ? t : "", a(e);
|
|
2202
2571
|
}, [a]),
|
|
2203
2572
|
cancel: o
|
|
2204
2573
|
};
|
|
2205
|
-
},
|
|
2206
|
-
let n =
|
|
2574
|
+
}, dr = (e, t) => {
|
|
2575
|
+
let n = Xt(e, t), [r, i] = S(void 0), a = g(async (e) => {
|
|
2207
2576
|
let t = await n.run({ question: e });
|
|
2208
2577
|
return i(t), t;
|
|
2209
|
-
}, [n]), o =
|
|
2210
|
-
return
|
|
2578
|
+
}, [n]), o = g(() => i(void 0), []);
|
|
2579
|
+
return b(() => ({
|
|
2211
2580
|
ask: a,
|
|
2212
2581
|
answer: r,
|
|
2213
2582
|
pending: n.pending,
|
|
@@ -2220,16 +2589,16 @@ var sn = () => {
|
|
|
2220
2589
|
n.error,
|
|
2221
2590
|
o
|
|
2222
2591
|
]);
|
|
2223
|
-
},
|
|
2224
|
-
let { cache: t, runtime: n } =
|
|
2225
|
-
return
|
|
2592
|
+
}, fr = (e) => {
|
|
2593
|
+
let { cache: t, runtime: n } = W(e);
|
|
2594
|
+
return g(() => {
|
|
2226
2595
|
t.refreshAll(n);
|
|
2227
2596
|
}, [t, n]);
|
|
2228
|
-
},
|
|
2597
|
+
}, pr = (e) => e?._tag === "Unauthenticated", mr = (e, t, n = {}) => {
|
|
2229
2598
|
let r = n.cooldownMs ?? 15e3, i = n.maxConsecutive ?? 3, a = n.now ?? (() => Date.now()), o = -Infinity, s = 0;
|
|
2230
2599
|
return {
|
|
2231
2600
|
dispose: e.on((e) => {
|
|
2232
|
-
if (!
|
|
2601
|
+
if (!pr(e.error) || s >= i) return;
|
|
2233
2602
|
let n = a();
|
|
2234
2603
|
n - o < r || (o = n, s += 1, t());
|
|
2235
2604
|
}),
|
|
@@ -2237,35 +2606,35 @@ var sn = () => {
|
|
|
2237
2606
|
s = 0;
|
|
2238
2607
|
}
|
|
2239
2608
|
};
|
|
2240
|
-
},
|
|
2241
|
-
for (let t of
|
|
2609
|
+
}, hr = /* @__PURE__ */ new Set(), gr = (e) => {
|
|
2610
|
+
for (let t of hr) try {
|
|
2242
2611
|
t(e);
|
|
2243
2612
|
} catch {}
|
|
2244
|
-
},
|
|
2245
|
-
|
|
2246
|
-
}),
|
|
2247
|
-
|
|
2613
|
+
}, _r = (e) => (hr.add(e), () => {
|
|
2614
|
+
hr.delete(e);
|
|
2615
|
+
}), vr = (e, t) => {
|
|
2616
|
+
gr({
|
|
2248
2617
|
error: e,
|
|
2249
2618
|
source: "manual",
|
|
2250
2619
|
...t ? { context: t } : {}
|
|
2251
2620
|
});
|
|
2252
|
-
},
|
|
2253
|
-
let { errorBus: n } =
|
|
2254
|
-
|
|
2255
|
-
},
|
|
2621
|
+
}, yr = (e, t) => {
|
|
2622
|
+
let { errorBus: n } = W(e);
|
|
2623
|
+
y(() => n.on(t), [n, t]);
|
|
2624
|
+
}, br = (e, t) => {
|
|
2256
2625
|
let n = globalThis, r = Symbol.for(`@voltro/web/context:${e}`), i = n[r];
|
|
2257
2626
|
if (i) return i;
|
|
2258
|
-
let a =
|
|
2627
|
+
let a = m(t);
|
|
2259
2628
|
return n[r] = a, a;
|
|
2260
|
-
},
|
|
2629
|
+
}, xr = br("serverRequest", null), Sr = () => _(xr), Cr = ({ value: e, children: t }) => /* @__PURE__ */ ae(xr.Provider, {
|
|
2261
2630
|
value: e,
|
|
2262
2631
|
children: t
|
|
2263
|
-
}),
|
|
2264
|
-
let t =
|
|
2265
|
-
return
|
|
2632
|
+
}), wr = (e) => {
|
|
2633
|
+
let t = Sr();
|
|
2634
|
+
return b(() => {
|
|
2266
2635
|
if (t !== null) return t.formFlash?.formKey === e ? t.formFlash : void 0;
|
|
2267
2636
|
if (typeof document > "u") return;
|
|
2268
|
-
let n = document.getElementById(
|
|
2637
|
+
let n = document.getElementById(f);
|
|
2269
2638
|
if (n !== null && n.textContent !== null && n.textContent !== "") try {
|
|
2270
2639
|
let t = JSON.parse(n.textContent);
|
|
2271
2640
|
return t.formKey === e ? t : void 0;
|
|
@@ -2273,62 +2642,15 @@ var sn = () => {
|
|
|
2273
2642
|
return;
|
|
2274
2643
|
}
|
|
2275
2644
|
}, [t, e]);
|
|
2276
|
-
},
|
|
2277
|
-
let i = I(e), a = Y(e, t), o = n.schema ?? i.descriptors[t]?.input;
|
|
2278
|
-
process.env.NODE_ENV !== "production" && o === 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.`);
|
|
2279
|
-
let c = h(() => o ? r(o) : [], [o]), l = g((() => {
|
|
2280
|
-
let e = { ...n.defaults ?? {} };
|
|
2281
|
-
if (o !== void 0) for (let t of r(o)) (t.widget === "checkbox" || t.widget === "switch") && !(t.name in e) && (e[t.name] = !1);
|
|
2282
|
-
return e;
|
|
2283
|
-
})()), u = g(n.flash), [f, p] = _(u.current === void 0 ? l.current : {
|
|
2284
|
-
...l.current,
|
|
2285
|
-
...u.current.values
|
|
2286
|
-
}), [m, v] = _(u.current?.errors ?? {}), [y, b] = _(u.current?.formError), x = d((e, t) => {
|
|
2287
|
-
p((n) => ({
|
|
2288
|
-
...n,
|
|
2289
|
-
[e]: t
|
|
2290
|
-
}));
|
|
2291
|
-
}, []), S = d((e) => {
|
|
2292
|
-
p((t) => ({
|
|
2293
|
-
...t,
|
|
2294
|
-
...e
|
|
2295
|
-
}));
|
|
2296
|
-
}, []), C = d(() => {
|
|
2297
|
-
p(l.current), v({}), b(void 0);
|
|
2298
|
-
}, []), w = d(async () => {
|
|
2299
|
-
if (b(void 0), o !== void 0) {
|
|
2300
|
-
let e = s(o, f);
|
|
2301
|
-
if (v(e.errors), !e.valid) return;
|
|
2302
|
-
}
|
|
2303
|
-
return a.mutate(f);
|
|
2304
|
-
}, [
|
|
2305
|
-
o,
|
|
2306
|
-
f,
|
|
2307
|
-
a
|
|
2308
|
-
]);
|
|
2309
|
-
return {
|
|
2310
|
-
fields: c,
|
|
2311
|
-
values: f,
|
|
2312
|
-
errors: m,
|
|
2313
|
-
isValid: h(() => o === void 0 || s(o, f).valid, [o, f]),
|
|
2314
|
-
pending: a.pending,
|
|
2315
|
-
submitError: a.error,
|
|
2316
|
-
formError: y,
|
|
2317
|
-
data: a.data,
|
|
2318
|
-
setValue: x,
|
|
2319
|
-
setValues: S,
|
|
2320
|
-
reset: C,
|
|
2321
|
-
submit: w
|
|
2322
|
-
};
|
|
2323
|
-
}, cr = (e, t, n) => e.map((e) => {
|
|
2645
|
+
}, Tr = (e, t, n) => e.map((e) => {
|
|
2324
2646
|
let r = String(e[n] ?? ""), i = e[t];
|
|
2325
2647
|
return {
|
|
2326
2648
|
value: r,
|
|
2327
2649
|
label: i == null ? r : String(i)
|
|
2328
2650
|
};
|
|
2329
|
-
}),
|
|
2330
|
-
let r = n.debounceMs ?? 200, i = n.labelField ?? "name", a = n.valueField ?? "id", o = n.input ?? ((e) => ({ q: e })), [s, c] =
|
|
2331
|
-
|
|
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(() => {
|
|
2332
2654
|
if (s === l) return;
|
|
2333
2655
|
let e = setTimeout(() => u(s), r);
|
|
2334
2656
|
return () => clearTimeout(e);
|
|
@@ -2337,25 +2659,25 @@ var sn = () => {
|
|
|
2337
2659
|
l,
|
|
2338
2660
|
r
|
|
2339
2661
|
]);
|
|
2340
|
-
let
|
|
2341
|
-
|
|
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,
|
|
2342
2664
|
i,
|
|
2343
2665
|
a
|
|
2344
|
-
]),
|
|
2666
|
+
]), m = g((e) => c(e), []);
|
|
2345
2667
|
return {
|
|
2346
|
-
options:
|
|
2347
|
-
loading: !
|
|
2668
|
+
options: p,
|
|
2669
|
+
loading: !d && f.data === void 0,
|
|
2348
2670
|
term: s,
|
|
2349
|
-
search:
|
|
2671
|
+
search: m
|
|
2350
2672
|
};
|
|
2351
|
-
},
|
|
2352
|
-
let
|
|
2353
|
-
...
|
|
2354
|
-
limit:
|
|
2355
|
-
}, [
|
|
2356
|
-
|
|
2357
|
-
}, [
|
|
2358
|
-
|
|
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 ? {
|
|
2359
2681
|
column: e,
|
|
2360
2682
|
direction: t.direction === "asc" ? "desc" : "asc"
|
|
2361
2683
|
} : {
|
|
@@ -2365,39 +2687,39 @@ var sn = () => {
|
|
|
2365
2687
|
}, []);
|
|
2366
2688
|
return {
|
|
2367
2689
|
columns: u,
|
|
2368
|
-
rows:
|
|
2369
|
-
let e =
|
|
2370
|
-
if (
|
|
2371
|
-
let t =
|
|
2372
|
-
return [...e].sort((e, n) =>
|
|
2373
|
-
}, [
|
|
2374
|
-
loading:
|
|
2375
|
-
error:
|
|
2376
|
-
sort:
|
|
2377
|
-
toggleSort:
|
|
2378
|
-
loadMore:
|
|
2379
|
-
hasMore:
|
|
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
|
|
2380
2702
|
};
|
|
2381
|
-
},
|
|
2703
|
+
}, kr = (e, t, n, r) => {
|
|
2382
2704
|
let i = e.replace(/\/$/, ""), a = new URLSearchParams({
|
|
2383
2705
|
table: t,
|
|
2384
2706
|
id: n
|
|
2385
2707
|
});
|
|
2386
2708
|
return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
|
|
2387
|
-
},
|
|
2388
|
-
let { inspectBaseUrl: i } =
|
|
2709
|
+
}, Ar = kr, jr = (e, t, n, r) => {
|
|
2710
|
+
let { inspectBaseUrl: i } = W(e), [a, o] = S({
|
|
2389
2711
|
data: void 0,
|
|
2390
2712
|
loading: !0,
|
|
2391
2713
|
error: void 0
|
|
2392
2714
|
});
|
|
2393
|
-
return
|
|
2715
|
+
return y(() => {
|
|
2394
2716
|
let e = !1;
|
|
2395
2717
|
o({
|
|
2396
2718
|
data: void 0,
|
|
2397
2719
|
loading: !0,
|
|
2398
2720
|
error: void 0
|
|
2399
2721
|
});
|
|
2400
|
-
let a =
|
|
2722
|
+
let a = kr(i ?? "", t, n, r);
|
|
2401
2723
|
return fetch(a).then(async (e) => {
|
|
2402
2724
|
if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
|
|
2403
2725
|
return await e.json();
|
|
@@ -2423,23 +2745,23 @@ var sn = () => {
|
|
|
2423
2745
|
n,
|
|
2424
2746
|
r
|
|
2425
2747
|
]), a;
|
|
2426
|
-
},
|
|
2427
|
-
function
|
|
2428
|
-
return
|
|
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);
|
|
2429
2751
|
}
|
|
2430
|
-
var
|
|
2431
|
-
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({
|
|
2432
2754
|
manifest: void 0,
|
|
2433
2755
|
loading: !0,
|
|
2434
2756
|
error: void 0
|
|
2435
2757
|
});
|
|
2436
|
-
return
|
|
2758
|
+
return y(() => {
|
|
2437
2759
|
let e = !1;
|
|
2438
2760
|
return r({
|
|
2439
2761
|
manifest: void 0,
|
|
2440
2762
|
loading: !0,
|
|
2441
2763
|
error: void 0
|
|
2442
|
-
}), fetch(
|
|
2764
|
+
}), fetch(Br(t ?? "")).then(async (e) => {
|
|
2443
2765
|
if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
|
|
2444
2766
|
return await e.json();
|
|
2445
2767
|
}).then((t) => {
|
|
@@ -2458,7 +2780,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2458
2780
|
e = !0;
|
|
2459
2781
|
};
|
|
2460
2782
|
}, [e, t]), n;
|
|
2461
|
-
},
|
|
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) => {
|
|
2462
2784
|
if (e === void 0) return "unknown";
|
|
2463
2785
|
if (t.includes("admin:full") || e.length === 0) return "allowed";
|
|
2464
2786
|
let n = !1;
|
|
@@ -2467,7 +2789,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2467
2789
|
n = !0;
|
|
2468
2790
|
continue;
|
|
2469
2791
|
}
|
|
2470
|
-
if (!
|
|
2792
|
+
if (!Hr(t, r)) {
|
|
2471
2793
|
if (r.resourceScoped) {
|
|
2472
2794
|
n = !0;
|
|
2473
2795
|
continue;
|
|
@@ -2476,13 +2798,13 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2476
2798
|
}
|
|
2477
2799
|
}
|
|
2478
2800
|
return n ? "unknown" : "allowed";
|
|
2479
|
-
},
|
|
2801
|
+
}, Wr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), Gr = (e) => {
|
|
2480
2802
|
for (let t of e ?? []) if (t.kind === "open") return t.reason;
|
|
2481
|
-
},
|
|
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 ? {} : {
|
|
2482
2804
|
tag: e.tag,
|
|
2483
2805
|
...e.guards === void 0 ? {} : { guards: e.guards }
|
|
2484
|
-
},
|
|
2485
|
-
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);
|
|
2486
2808
|
return {
|
|
2487
2809
|
table: t.name,
|
|
2488
2810
|
columns: t.columns.filter((e) => e.serverOnly !== !0),
|
|
@@ -2491,22 +2813,22 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2491
2813
|
reactive: t.reactive,
|
|
2492
2814
|
...o === void 0 ? {} : { pkColumn: o },
|
|
2493
2815
|
editable: (t.editable ?? !0) && o !== void 0,
|
|
2494
|
-
list:
|
|
2495
|
-
create:
|
|
2496
|
-
update:
|
|
2497
|
-
delete:
|
|
2816
|
+
list: Yr(n),
|
|
2817
|
+
create: Yr(r),
|
|
2818
|
+
update: Yr(i),
|
|
2819
|
+
delete: Yr(a)
|
|
2498
2820
|
};
|
|
2499
|
-
}),
|
|
2500
|
-
let [t, n] =
|
|
2821
|
+
}), Zr = (e) => {
|
|
2822
|
+
let [t, n] = S([]), [r, i] = S([]), a = g((e) => {
|
|
2501
2823
|
n((t) => [...t, e]), i([]);
|
|
2502
|
-
}, []), o =
|
|
2824
|
+
}, []), o = g(async () => {
|
|
2503
2825
|
let r = t[t.length - 1];
|
|
2504
2826
|
r !== void 0 && r.blockedBy === void 0 && (await e.onUndo(r.invocationId), n((e) => e.slice(0, -1)), i((e) => [...e, r]));
|
|
2505
|
-
}, [t, e]), s =
|
|
2827
|
+
}, [t, e]), s = g(async () => {
|
|
2506
2828
|
let t = r[r.length - 1];
|
|
2507
2829
|
t !== void 0 && (await e.onRedo(t.invocationId), i((e) => e.slice(0, -1)), n((e) => [...e, t]));
|
|
2508
2830
|
}, [r, e]);
|
|
2509
|
-
return
|
|
2831
|
+
return b(() => {
|
|
2510
2832
|
let e = t[t.length - 1];
|
|
2511
2833
|
return {
|
|
2512
2834
|
record: a,
|
|
@@ -2524,14 +2846,14 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2524
2846
|
o,
|
|
2525
2847
|
s
|
|
2526
2848
|
]);
|
|
2527
|
-
},
|
|
2528
|
-
let n = t?.limit, { data: r } =
|
|
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) => {
|
|
2529
2851
|
await i.mutate({ invocationId: e });
|
|
2530
|
-
}, [i]), u =
|
|
2852
|
+
}, [i]), u = g(async (e) => {
|
|
2531
2853
|
await a.mutate({ invocationId: e });
|
|
2532
|
-
}, [a]),
|
|
2854
|
+
}, [a]), d = g(async () => {
|
|
2533
2855
|
s && await l(s.id);
|
|
2534
|
-
}, [s, l]),
|
|
2856
|
+
}, [s, l]), f = g(async () => {
|
|
2535
2857
|
c && await u(c.id);
|
|
2536
2858
|
}, [c, u]);
|
|
2537
2859
|
return {
|
|
@@ -2541,25 +2863,25 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2541
2863
|
canRedo: c !== void 0,
|
|
2542
2864
|
undo: l,
|
|
2543
2865
|
redo: u,
|
|
2544
|
-
undoLast:
|
|
2545
|
-
redoLast:
|
|
2866
|
+
undoLast: d,
|
|
2867
|
+
redoLast: f
|
|
2546
2868
|
};
|
|
2547
|
-
},
|
|
2869
|
+
}, ni = (e, t) => ({
|
|
2548
2870
|
name: e,
|
|
2549
2871
|
map: t
|
|
2550
|
-
}),
|
|
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) => {
|
|
2551
2873
|
let r = { ...t };
|
|
2552
2874
|
for (let [i, a] of Object.entries(e.map)) {
|
|
2553
|
-
if (
|
|
2875
|
+
if (ii.has(i) || a === void 0) continue;
|
|
2554
2876
|
let e = t[i];
|
|
2555
2877
|
r[i] = (...r) => {
|
|
2556
|
-
let i =
|
|
2878
|
+
let i = ri(a, t);
|
|
2557
2879
|
if (i !== null && n(i), typeof e == "function") return e(...r);
|
|
2558
2880
|
};
|
|
2559
2881
|
}
|
|
2560
2882
|
return r;
|
|
2561
|
-
},
|
|
2562
|
-
let r =
|
|
2883
|
+
}, oi = (e, t, n) => {
|
|
2884
|
+
let r = x({
|
|
2563
2885
|
spec: e,
|
|
2564
2886
|
props: t,
|
|
2565
2887
|
sink: n
|
|
@@ -2568,47 +2890,47 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2568
2890
|
spec: e,
|
|
2569
2891
|
props: t,
|
|
2570
2892
|
sink: n
|
|
2571
|
-
},
|
|
2572
|
-
let e = r.current, t =
|
|
2893
|
+
}, y(() => {
|
|
2894
|
+
let e = r.current, t = ri(e.spec.map.onMount, e.props);
|
|
2573
2895
|
return t !== null && e.sink(t), () => {
|
|
2574
|
-
let e = r.current, t =
|
|
2896
|
+
let e = r.current, t = ri(e.spec.map.onUnmount, e.props);
|
|
2575
2897
|
t !== null && e.sink(t);
|
|
2576
2898
|
};
|
|
2577
|
-
}, []),
|
|
2899
|
+
}, []), b(() => ai(e, t, n), [
|
|
2578
2900
|
e,
|
|
2579
2901
|
t,
|
|
2580
2902
|
n
|
|
2581
2903
|
]);
|
|
2582
|
-
},
|
|
2583
|
-
let n =
|
|
2584
|
-
return
|
|
2585
|
-
},
|
|
2586
|
-
let
|
|
2587
|
-
return
|
|
2588
|
-
},
|
|
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) => {
|
|
2589
2911
|
if (e === t) return !0;
|
|
2590
2912
|
if (e.length !== t.length) return !1;
|
|
2591
2913
|
for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
|
|
2592
2914
|
return !0;
|
|
2593
|
-
},
|
|
2594
|
-
let n =
|
|
2595
|
-
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 = {
|
|
2596
2918
|
key: r,
|
|
2597
2919
|
value: t(e)
|
|
2598
2920
|
}), n.current.value;
|
|
2599
|
-
},
|
|
2600
|
-
let i =
|
|
2601
|
-
return
|
|
2921
|
+
}, fi = (e, t, n, r = {}) => {
|
|
2922
|
+
let i = Y(e, t, { ...n }, r);
|
|
2923
|
+
return b(() => ({
|
|
2602
2924
|
allowed: i.data?.allowed === !0,
|
|
2603
2925
|
pending: i.data === void 0
|
|
2604
2926
|
}), [i.data]);
|
|
2605
|
-
},
|
|
2606
|
-
let i =
|
|
2607
|
-
return
|
|
2927
|
+
}, pi = (e, t, n, r = {}) => {
|
|
2928
|
+
let i = Y(e, t, { ...n }, r);
|
|
2929
|
+
return b(() => ({
|
|
2608
2930
|
allowedIds: new Set(i.data?.allowedIds ?? []),
|
|
2609
2931
|
pending: i.data === void 0
|
|
2610
2932
|
}), [i.data]);
|
|
2611
|
-
},
|
|
2933
|
+
}, mi = (e) => {
|
|
2612
2934
|
switch (e) {
|
|
2613
2935
|
case "select":
|
|
2614
2936
|
case "radio":
|
|
@@ -2624,25 +2946,26 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2624
2946
|
case "switch": return "boolean";
|
|
2625
2947
|
default: return null;
|
|
2626
2948
|
}
|
|
2627
|
-
},
|
|
2628
|
-
|
|
2949
|
+
}, hi = (e) => o(e).map((e) => {
|
|
2950
|
+
if (e.name.includes(".")) return null;
|
|
2951
|
+
let t = mi(e.widget);
|
|
2629
2952
|
return t === null ? null : {
|
|
2630
2953
|
name: e.name,
|
|
2631
2954
|
label: e.label,
|
|
2632
2955
|
kind: t,
|
|
2633
2956
|
...e.options ? { options: e.options } : {}
|
|
2634
2957
|
};
|
|
2635
|
-
}).filter((e) => e !== null),
|
|
2958
|
+
}).filter((e) => e !== null), gi = (e) => {
|
|
2636
2959
|
let t = {};
|
|
2637
2960
|
for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
|
|
2638
2961
|
return t;
|
|
2639
|
-
},
|
|
2640
|
-
let r =
|
|
2641
|
-
o((n) =>
|
|
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({
|
|
2642
2965
|
...n,
|
|
2643
2966
|
[e]: t
|
|
2644
2967
|
}));
|
|
2645
|
-
}, []), c =
|
|
2968
|
+
}, []), c = g(() => o({}), []), l = Y(e, t, b(() => gi(a), [a]));
|
|
2646
2969
|
return {
|
|
2647
2970
|
filters: i,
|
|
2648
2971
|
values: a,
|
|
@@ -2653,20 +2976,20 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2653
2976
|
loading: l.data === void 0,
|
|
2654
2977
|
error: l.error
|
|
2655
2978
|
};
|
|
2656
|
-
},
|
|
2657
|
-
let r =
|
|
2979
|
+
}, vi = (e, t, n = {}) => {
|
|
2980
|
+
let r = Y(e, t, n), i = r.data;
|
|
2658
2981
|
return {
|
|
2659
2982
|
record: Array.isArray(i) ? i[0] : i,
|
|
2660
2983
|
loading: i === void 0,
|
|
2661
2984
|
error: r.error
|
|
2662
2985
|
};
|
|
2663
|
-
},
|
|
2664
|
-
let [n, r] =
|
|
2665
|
-
return
|
|
2986
|
+
}, yi = (e, t = 300) => {
|
|
2987
|
+
let [n, r] = S(e);
|
|
2988
|
+
return y(() => {
|
|
2666
2989
|
let n = setTimeout(() => r(e), t);
|
|
2667
2990
|
return () => clearTimeout(n);
|
|
2668
2991
|
}, [e, t]), n;
|
|
2669
|
-
},
|
|
2992
|
+
}, bi = (e) => {
|
|
2670
2993
|
let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
|
|
2671
2994
|
if (a && t.trim() === "") return {
|
|
2672
2995
|
status: "idle",
|
|
@@ -2684,39 +3007,39 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2684
3007
|
valid: o.valid,
|
|
2685
3008
|
message: o.message
|
|
2686
3009
|
};
|
|
2687
|
-
},
|
|
2688
|
-
let { input: i, interpret: a, debounceMs: o = 300, skipEmpty: s = !0 } = r, c =
|
|
2689
|
-
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({
|
|
2690
3013
|
value: n,
|
|
2691
3014
|
debouncedValue: c,
|
|
2692
3015
|
data: l ? null : u.data,
|
|
2693
3016
|
interpret: a,
|
|
2694
3017
|
skipEmpty: s
|
|
2695
3018
|
});
|
|
2696
|
-
},
|
|
3019
|
+
}, Si = (e, t) => ({
|
|
2697
3020
|
name: e,
|
|
2698
3021
|
payload: t
|
|
2699
|
-
}),
|
|
2700
|
-
let n =
|
|
3022
|
+
}), Ci = (e, t) => {
|
|
3023
|
+
let n = j.decodeUnknownEither(e.payload, { errors: "all" })(t);
|
|
2701
3024
|
if (n._tag === "Right") return {
|
|
2702
3025
|
valid: !0,
|
|
2703
3026
|
errors: {}
|
|
2704
3027
|
};
|
|
2705
3028
|
let r = {};
|
|
2706
|
-
for (let e of
|
|
3029
|
+
for (let e of ce.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
|
|
2707
3030
|
return {
|
|
2708
3031
|
valid: !1,
|
|
2709
3032
|
errors: r
|
|
2710
3033
|
};
|
|
2711
|
-
},
|
|
3034
|
+
}, wi = (e) => {
|
|
2712
3035
|
let t = new Map(e.map((e) => [e.name, e]));
|
|
2713
3036
|
return {
|
|
2714
3037
|
names: [...t.keys()].sort(),
|
|
2715
3038
|
get: (e) => t.get(e),
|
|
2716
3039
|
events: e
|
|
2717
3040
|
};
|
|
2718
|
-
},
|
|
2719
|
-
let n =
|
|
3041
|
+
}, Ti = (e, t) => {
|
|
3042
|
+
let n = wi(e);
|
|
2720
3043
|
return {
|
|
2721
3044
|
track: (e, r) => {
|
|
2722
3045
|
let i = n.get(e);
|
|
@@ -2725,7 +3048,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2725
3048
|
return;
|
|
2726
3049
|
}
|
|
2727
3050
|
if (process.env.NODE_ENV !== "production") {
|
|
2728
|
-
let t =
|
|
3051
|
+
let t = Ci(i, r);
|
|
2729
3052
|
t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
|
|
2730
3053
|
}
|
|
2731
3054
|
t({
|
|
@@ -2736,44 +3059,49 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2736
3059
|
names: n.names,
|
|
2737
3060
|
catalog: n
|
|
2738
3061
|
};
|
|
2739
|
-
},
|
|
2740
|
-
let n =
|
|
3062
|
+
}, Ei = (e, t) => {
|
|
3063
|
+
let n = Xt(e, t);
|
|
2741
3064
|
return {
|
|
2742
|
-
preview:
|
|
3065
|
+
preview: g((e) => n.run(e), [n]),
|
|
2743
3066
|
diff: n.lastResult,
|
|
2744
3067
|
pending: n.pending,
|
|
2745
3068
|
error: n.error
|
|
2746
3069
|
};
|
|
2747
|
-
},
|
|
3070
|
+
}, Di = (e, t, n, r) => [...e, {
|
|
2748
3071
|
id: t,
|
|
2749
3072
|
tag: n,
|
|
2750
3073
|
input: r,
|
|
2751
3074
|
status: "pending",
|
|
2752
3075
|
attempts: 0
|
|
2753
|
-
}],
|
|
3076
|
+
}], Oi = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2754
3077
|
...e,
|
|
2755
3078
|
...n
|
|
2756
|
-
} : e),
|
|
3079
|
+
} : e), ki = (e, t) => Oi(e, t, { status: "sent" }), Ai = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2757
3080
|
...e,
|
|
2758
3081
|
status: "failed",
|
|
2759
3082
|
error: n,
|
|
2760
3083
|
attempts: e.attempts + 1
|
|
2761
|
-
} : e),
|
|
3084
|
+
} : e), ji = (e, t, n) => Oi(e, t, {
|
|
2762
3085
|
status: "conflict",
|
|
2763
3086
|
error: n
|
|
2764
|
-
}),
|
|
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) => {
|
|
2765
3093
|
let t = [];
|
|
2766
3094
|
for (let n of e) {
|
|
2767
3095
|
if (n.status === "conflict") break;
|
|
2768
3096
|
(n.status === "pending" || n.status === "failed") && t.push(n);
|
|
2769
3097
|
}
|
|
2770
3098
|
return t;
|
|
2771
|
-
},
|
|
3099
|
+
}, Fi = (e) => {
|
|
2772
3100
|
let t = e;
|
|
2773
3101
|
return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
|
|
2774
|
-
},
|
|
2775
|
-
let [t, n] =
|
|
2776
|
-
return
|
|
3102
|
+
}, Ii = (e) => {
|
|
3103
|
+
let [t, n] = S(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
|
|
3104
|
+
return y(() => {
|
|
2777
3105
|
if (e !== void 0) {
|
|
2778
3106
|
n(e);
|
|
2779
3107
|
return;
|
|
@@ -2784,34 +3112,54 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2784
3112
|
window.removeEventListener("online", t), window.removeEventListener("offline", r);
|
|
2785
3113
|
};
|
|
2786
3114
|
}, [e]), t;
|
|
2787
|
-
},
|
|
2788
|
-
let { send: t,
|
|
2789
|
-
|
|
2790
|
-
let
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
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));
|
|
2796
3138
|
} catch (t) {
|
|
2797
|
-
if (
|
|
2798
|
-
|
|
3139
|
+
if (r(t)) {
|
|
3140
|
+
o((n) => ji(n, e.id, t));
|
|
2799
3141
|
break;
|
|
2800
3142
|
}
|
|
2801
|
-
|
|
3143
|
+
o((n) => Ai(n, e.id, t));
|
|
2802
3144
|
}
|
|
2803
|
-
}, [t,
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
}, [
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
3145
|
+
}, [t, r]);
|
|
3146
|
+
y(() => {
|
|
3147
|
+
s && p();
|
|
3148
|
+
}, [s, p]);
|
|
3149
|
+
let m = g((e, t) => {
|
|
3150
|
+
let n = Mi(c.current, e, t);
|
|
3151
|
+
c.current = n, o(n), s && p();
|
|
3152
|
+
}, [s, p]);
|
|
3153
|
+
return {
|
|
3154
|
+
queue: a,
|
|
3155
|
+
enqueue: f,
|
|
3156
|
+
replay: p,
|
|
3157
|
+
online: s,
|
|
3158
|
+
pending: a.filter((e) => e.status === "pending" || e.status === "failed").length,
|
|
3159
|
+
conflicts: a.filter((e) => e.status === "conflict"),
|
|
3160
|
+
resolveConflict: m
|
|
2813
3161
|
};
|
|
2814
|
-
},
|
|
3162
|
+
}, Ri = (e) => {
|
|
2815
3163
|
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);
|
|
2816
3164
|
return {
|
|
2817
3165
|
startIndex: l,
|
|
@@ -2821,8 +3169,8 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2821
3169
|
topSpacer: l * r,
|
|
2822
3170
|
bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
|
|
2823
3171
|
};
|
|
2824
|
-
},
|
|
2825
|
-
let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] =
|
|
3172
|
+
}, zi = (e, t, n) => {
|
|
3173
|
+
let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] = S(0), u = b(() => Ri({
|
|
2826
3174
|
scrollTop: c,
|
|
2827
3175
|
viewportHeight: i,
|
|
2828
3176
|
rowHeight: r,
|
|
@@ -2834,7 +3182,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2834
3182
|
r,
|
|
2835
3183
|
a,
|
|
2836
3184
|
o
|
|
2837
|
-
]),
|
|
3185
|
+
]), d = Y(e, t, b(() => ({
|
|
2838
3186
|
...s,
|
|
2839
3187
|
offset: u.offset,
|
|
2840
3188
|
limit: u.limit
|
|
@@ -2842,23 +3190,23 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2842
3190
|
s,
|
|
2843
3191
|
u.offset,
|
|
2844
3192
|
u.limit
|
|
2845
|
-
])),
|
|
3193
|
+
])), f = g((e) => {
|
|
2846
3194
|
l(e.currentTarget.scrollTop);
|
|
2847
3195
|
}, []);
|
|
2848
3196
|
return {
|
|
2849
|
-
rows:
|
|
3197
|
+
rows: d.data ?? [],
|
|
2850
3198
|
window: u,
|
|
2851
|
-
onScroll:
|
|
3199
|
+
onScroll: f,
|
|
2852
3200
|
topSpacer: u.topSpacer,
|
|
2853
3201
|
bottomSpacer: u.bottomSpacer,
|
|
2854
|
-
loading:
|
|
2855
|
-
error:
|
|
3202
|
+
loading: d.data === void 0,
|
|
3203
|
+
error: d.error
|
|
2856
3204
|
};
|
|
2857
|
-
},
|
|
2858
|
-
let { errorBus: t } =
|
|
2859
|
-
|
|
3205
|
+
}, Bi = () => typeof navigator > "u" || navigator.onLine, Vi = (e) => {
|
|
3206
|
+
let { errorBus: t } = W(e), [n, r] = S(Bi), [i, a] = S(0), [o, s] = S(void 0), c = x(!0);
|
|
3207
|
+
y(() => (c.current = !0, () => {
|
|
2860
3208
|
c.current = !1;
|
|
2861
|
-
}), []),
|
|
3209
|
+
}), []), y(() => {
|
|
2862
3210
|
if (typeof window > "u") return;
|
|
2863
3211
|
let e = () => {
|
|
2864
3212
|
r(!0), a(0);
|
|
@@ -2866,12 +3214,12 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2866
3214
|
return window.addEventListener("online", e), window.addEventListener("offline", t), () => {
|
|
2867
3215
|
window.removeEventListener("online", e), window.removeEventListener("offline", t);
|
|
2868
3216
|
};
|
|
2869
|
-
}, []),
|
|
3217
|
+
}, []), y(() => {
|
|
2870
3218
|
if (t?.on) return t.on(() => {
|
|
2871
3219
|
c.current && (a((e) => e + 1), s(Date.now()));
|
|
2872
3220
|
});
|
|
2873
3221
|
}, [t]);
|
|
2874
|
-
let l =
|
|
3222
|
+
let l = g(() => {
|
|
2875
3223
|
a(0);
|
|
2876
3224
|
}, []);
|
|
2877
3225
|
return {
|
|
@@ -2881,7 +3229,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2881
3229
|
lastFailureAt: o,
|
|
2882
3230
|
reportSuccess: l
|
|
2883
3231
|
};
|
|
2884
|
-
},
|
|
3232
|
+
}, Hi = "__voltro.connections.list", Ui = "__voltro.connections.start", Wi = "__voltro.connections.submitToken", Gi = "__voltro.connections.disconnect", Ki = {
|
|
2885
3233
|
connectionId: "",
|
|
2886
3234
|
kind: "oauth2",
|
|
2887
3235
|
label: "",
|
|
@@ -2892,14 +3240,14 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2892
3240
|
expiresAt: null,
|
|
2893
3241
|
lastError: null,
|
|
2894
3242
|
connectedAt: null
|
|
2895
|
-
},
|
|
3243
|
+
}, qi = (e, t) => {
|
|
2896
3244
|
if (t === "redirect") {
|
|
2897
3245
|
globalThis.location.assign(e);
|
|
2898
3246
|
return;
|
|
2899
3247
|
}
|
|
2900
3248
|
globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
|
|
2901
|
-
},
|
|
2902
|
-
let { data: t } =
|
|
3249
|
+
}, Ji = (e) => {
|
|
3250
|
+
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) => ({
|
|
2903
3251
|
...e,
|
|
2904
3252
|
connected: e.status === "connected",
|
|
2905
3253
|
needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
|
|
@@ -2907,7 +3255,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2907
3255
|
connect: async (t) => {
|
|
2908
3256
|
if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
|
|
2909
3257
|
let r = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
|
|
2910
|
-
|
|
3258
|
+
qi((await n.run({
|
|
2911
3259
|
connectionId: e.connectionId,
|
|
2912
3260
|
redirectTo: r
|
|
2913
3261
|
})).authorizeUrl, t?.mode);
|
|
@@ -2927,7 +3275,7 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2927
3275
|
n,
|
|
2928
3276
|
r,
|
|
2929
3277
|
i
|
|
2930
|
-
]), c =
|
|
3278
|
+
]), c = g((e) => {
|
|
2931
3279
|
let t = a.find((t) => t.connectionId === e);
|
|
2932
3280
|
return t === void 0 ? void 0 : s(t);
|
|
2933
3281
|
}, [a, s]);
|
|
@@ -2937,10 +3285,10 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2937
3285
|
get: c,
|
|
2938
3286
|
pending: o
|
|
2939
3287
|
};
|
|
2940
|
-
},
|
|
2941
|
-
let n =
|
|
2942
|
-
return
|
|
2943
|
-
...
|
|
3288
|
+
}, Yi = (e, t) => {
|
|
3289
|
+
let n = Ji(e), r = n.get(t);
|
|
3290
|
+
return b(() => r === void 0 ? {
|
|
3291
|
+
...Ki,
|
|
2944
3292
|
connectionId: t,
|
|
2945
3293
|
label: t,
|
|
2946
3294
|
connected: !1,
|
|
@@ -2965,6 +3313,6 @@ var br = () => f(vr), xr = (e) => gr(br().scopes, e), Sr = (e) => _r(br().scopes
|
|
|
2965
3313
|
n.loading,
|
|
2966
3314
|
n.pending
|
|
2967
3315
|
]);
|
|
2968
|
-
},
|
|
3316
|
+
}, Xi = "framework-client";
|
|
2969
3317
|
//#endregion
|
|
2970
|
-
export {
|
|
3318
|
+
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 };
|