@voltro/client 0.13.0 → 0.15.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 +412 -0
- package/dist/index.d.ts +270 -17
- package/dist/index.js +747 -491
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { createContext as e, createElement as t, useCallback as n, useContext as r,
|
|
2
|
-
import { Cause as
|
|
3
|
-
import { applyRowPatch as
|
|
4
|
-
import { jsx as
|
|
5
|
-
import { ArrayFormatter as
|
|
1
|
+
import { createContext as e, createElement as t, useCallback as n, useContext as r, useDebugValue as i, useEffect as a, useMemo as o, useRef as s, useState as c, useSyncExternalStore as l } from "react";
|
|
2
|
+
import { Cause as u, Duration as d, Effect as f, Exit as p, Fiber as m, JSONSchema as h, Schema as g, Stream as _ } from "effect";
|
|
3
|
+
import { applyRowPatch as v } from "@voltro/protocol";
|
|
4
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
5
|
+
import { ArrayFormatter as b } from "effect/ParseResult";
|
|
6
6
|
//#region src/traceBus.ts
|
|
7
|
-
var
|
|
8
|
-
for (let t of
|
|
7
|
+
var x = /* @__PURE__ */ new Set(), S = (e) => {
|
|
8
|
+
for (let t of x) try {
|
|
9
9
|
t(e);
|
|
10
10
|
} catch {}
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
}),
|
|
11
|
+
}, C = (e) => (x.add(e), () => {
|
|
12
|
+
x.delete(e);
|
|
13
|
+
}), w = (e) => {
|
|
14
14
|
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);
|
|
15
15
|
return t(e);
|
|
16
|
-
},
|
|
16
|
+
}, T = Object.freeze({
|
|
17
17
|
data: void 0,
|
|
18
18
|
revision: -1,
|
|
19
19
|
emittedAt: void 0,
|
|
20
20
|
error: void 0,
|
|
21
21
|
pendingPatches: 0
|
|
22
|
-
}),
|
|
22
|
+
}), ee = 5e3, E = 0, te = () => `patch_${++E}`, D = (e, t) => {
|
|
23
23
|
let n = e;
|
|
24
24
|
for (let e of t.split(".")) {
|
|
25
25
|
if (typeof n != "object" || !n) return;
|
|
@@ -30,7 +30,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
30
30
|
let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
|
|
31
31
|
for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
|
|
32
32
|
return o[r[r.length - 1]] = n, a;
|
|
33
|
-
},
|
|
33
|
+
}, k = (e, t) => {
|
|
34
34
|
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];
|
|
35
35
|
return i.length === 0 ? null : new Set(i);
|
|
36
36
|
}, ne = (e, t, n) => {
|
|
@@ -50,7 +50,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
50
50
|
return O(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
let a =
|
|
53
|
+
let a = k(e, t);
|
|
54
54
|
if (a === null) return null;
|
|
55
55
|
if (e.op === "update") {
|
|
56
56
|
let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
|
|
@@ -91,7 +91,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
case "update": {
|
|
94
|
-
let n =
|
|
94
|
+
let n = k(e, t);
|
|
95
95
|
if (n === null) return null;
|
|
96
96
|
let r = e.shape, i = r ? (e) => ({
|
|
97
97
|
...r(t, e),
|
|
@@ -108,7 +108,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
case "delete": {
|
|
111
|
-
let n =
|
|
111
|
+
let n = k(e, t);
|
|
112
112
|
return n === null ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => !n.has(e.id));
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -121,17 +121,17 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
121
121
|
this.inactiveTtlMs = e.inactiveTtlMs ?? ie, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
|
|
122
122
|
}
|
|
123
123
|
subscribe(e, t, n, r, i = {}) {
|
|
124
|
-
let a =
|
|
124
|
+
let a = w(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
|
|
125
125
|
return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, 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), {
|
|
126
126
|
getSnapshot: () => this.getSnapshot(a),
|
|
127
127
|
unsubscribe: () => this.unsubscribe(a, r)
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
update(e, t, n) {
|
|
131
|
-
let r =
|
|
131
|
+
let r = w(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
|
|
132
132
|
a ||= this.createStub(r, i);
|
|
133
133
|
let o = {
|
|
134
|
-
id:
|
|
134
|
+
id: te(),
|
|
135
135
|
mutationId: n,
|
|
136
136
|
reducer: t
|
|
137
137
|
};
|
|
@@ -162,7 +162,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
162
162
|
confirmByMutation(e) {
|
|
163
163
|
let t = !1;
|
|
164
164
|
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);
|
|
165
|
-
t && setTimeout(() => this.revertByMutation(e),
|
|
165
|
+
t && setTimeout(() => this.revertByMutation(e), ee);
|
|
166
166
|
}
|
|
167
167
|
autoApply(e, t, n) {
|
|
168
168
|
let r = `optimistic-${n}-${++E}`;
|
|
@@ -195,10 +195,10 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
195
195
|
n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
|
|
196
196
|
}
|
|
197
197
|
peek(e) {
|
|
198
|
-
return this.getSnapshot(
|
|
198
|
+
return this.getSnapshot(w(e));
|
|
199
199
|
}
|
|
200
200
|
getEntry(e) {
|
|
201
|
-
return this.entries.get(
|
|
201
|
+
return this.entries.get(w(e));
|
|
202
202
|
}
|
|
203
203
|
size() {
|
|
204
204
|
return this.entries.size;
|
|
@@ -217,13 +217,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
217
217
|
return e;
|
|
218
218
|
}
|
|
219
219
|
destroy(e) {
|
|
220
|
-
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(
|
|
220
|
+
for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(m.interrupt(t.fiber));
|
|
221
221
|
this.entries.clear();
|
|
222
222
|
}
|
|
223
223
|
refreshAll(e) {
|
|
224
224
|
for (let t of this.entries.values()) {
|
|
225
225
|
if (!t.fetch) continue;
|
|
226
|
-
t.fiber && e.runFork(
|
|
226
|
+
t.fiber && e.runFork(m.interrupt(t.fiber)), t.fiber = null;
|
|
227
227
|
let n = t.state.patches;
|
|
228
228
|
t.state = this.freshState(), t.state.patches = n, this.startFiber(t, t.fetch, e);
|
|
229
229
|
}
|
|
@@ -267,23 +267,23 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
269
|
startFiber(e, t, n) {
|
|
270
|
-
let r = e.tag ?? e.key, i = t(), a =
|
|
270
|
+
let r = e.tag ?? e.key, i = t(), a = _.unwrapScoped(f.currentSpan.pipe(f.catchAll(() => f.succeed(void 0)), f.map((t) => (t && (e.traceId = t.traceId, S({
|
|
271
271
|
traceId: t.traceId,
|
|
272
272
|
spanId: t.spanId,
|
|
273
273
|
source: "subscription",
|
|
274
274
|
tag: r
|
|
275
|
-
})), i)))).pipe(
|
|
276
|
-
e.fiber = n.runFork(a.pipe(
|
|
275
|
+
})), i)))).pipe(_.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } }));
|
|
276
|
+
e.fiber = n.runFork(a.pipe(_.runForEach((t) => f.sync(() => {
|
|
277
277
|
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);
|
|
278
|
-
else if (t._tag === "error") e.state.baseError =
|
|
278
|
+
else if (t._tag === "error") e.state.baseError = u.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
|
|
279
279
|
else {
|
|
280
280
|
let n = e.state.base;
|
|
281
|
-
Array.isArray(n) && (e.state.base =
|
|
281
|
+
Array.isArray(n) && (e.state.base = v(n, t.patch)), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
|
|
282
282
|
}
|
|
283
283
|
e.state.patches.some((e) => e.confirmed === !0) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
|
|
284
284
|
})))), e.fiber.addObserver((t) => {
|
|
285
|
-
if (
|
|
286
|
-
let n =
|
|
285
|
+
if (p.isFailure(t) && !p.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
|
|
286
|
+
let n = u.squash(t.cause);
|
|
287
287
|
this.errorBus.emit({
|
|
288
288
|
source: "subscription",
|
|
289
289
|
tag: e.tag ?? e.key,
|
|
@@ -300,7 +300,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
300
300
|
}
|
|
301
301
|
getSnapshot(e) {
|
|
302
302
|
let t = this.entries.get(e);
|
|
303
|
-
if (!t) return
|
|
303
|
+
if (!t) return T;
|
|
304
304
|
if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
|
|
305
305
|
let n = t.state.base;
|
|
306
306
|
if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
|
|
@@ -317,7 +317,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
317
317
|
let n = this.entries.get(e);
|
|
318
318
|
n && (n.subscribers.delete(t), !(n.subscribers.size > 0) && (n.evictionTimer !== null && clearTimeout(n.evictionTimer), n.evictionTimer = setTimeout(() => {
|
|
319
319
|
let t = this.entries.get(e);
|
|
320
|
-
t && t.subscribers.size === 0 && (t.fiber &&
|
|
320
|
+
t && t.subscribers.size === 0 && (t.fiber && f.runFork(m.interrupt(t.fiber)), this.entries.delete(e));
|
|
321
321
|
}, this.inactiveTtlMs)));
|
|
322
322
|
}
|
|
323
323
|
}, oe = class extends ae {
|
|
@@ -339,35 +339,31 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
339
339
|
t(e);
|
|
340
340
|
} catch {}
|
|
341
341
|
}
|
|
342
|
-
}, ce = (
|
|
343
|
-
if (typeof e != "object" || !e) return;
|
|
344
|
-
let t = e._tag;
|
|
345
|
-
return typeof t == "string" ? t : void 0;
|
|
346
|
-
}, le = e(null), ue = () => {
|
|
342
|
+
}, ce = e(null), le = () => {
|
|
347
343
|
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");
|
|
348
|
-
},
|
|
349
|
-
get: (e, t) =>
|
|
344
|
+
}, A = new Proxy(() => le(), {
|
|
345
|
+
get: (e, t) => A,
|
|
350
346
|
has: () => !0,
|
|
351
|
-
apply: () =>
|
|
352
|
-
}),
|
|
347
|
+
apply: () => le()
|
|
348
|
+
}), ue = {
|
|
353
349
|
runtime: { runPromise: () => Promise.reject(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR")) },
|
|
354
350
|
cache: new oe(),
|
|
355
|
-
client:
|
|
351
|
+
client: A,
|
|
356
352
|
descriptors: {},
|
|
357
353
|
inspectBaseUrl: "",
|
|
358
354
|
errorBus: new se()
|
|
359
|
-
},
|
|
360
|
-
get: () =>
|
|
355
|
+
}, de = {
|
|
356
|
+
get: () => ue,
|
|
361
357
|
names: []
|
|
362
|
-
},
|
|
363
|
-
|
|
364
|
-
},
|
|
365
|
-
let e = r(
|
|
366
|
-
return e ? (
|
|
367
|
-
|
|
368
|
-
}, 0)),
|
|
369
|
-
},
|
|
370
|
-
let n =
|
|
358
|
+
}, j = !1, M = !1, N = null, fe = () => {
|
|
359
|
+
j = !1, M = !1, N !== null && (clearTimeout(N), N = null);
|
|
360
|
+
}, pe = () => {
|
|
361
|
+
let e = r(ce);
|
|
362
|
+
return e ? (M || (M = !0, N !== null && (clearTimeout(N), N = null)), e) : (typeof window < "u" && !j && !M && N === null && process.env.NODE_ENV !== "production" && (N = setTimeout(() => {
|
|
363
|
+
N = null, !(j || M) && (j = !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>."));
|
|
364
|
+
}, 0)), de);
|
|
365
|
+
}, P = (e) => pe().get(e), me = ({ apis: e, children: t }) => {
|
|
366
|
+
let n = o(() => ({
|
|
371
367
|
get: (t) => {
|
|
372
368
|
let n = e.get(t);
|
|
373
369
|
if (!n) {
|
|
@@ -378,11 +374,271 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
378
374
|
},
|
|
379
375
|
names: Array.from(e.keys())
|
|
380
376
|
}), [e]);
|
|
381
|
-
return /* @__PURE__ */
|
|
377
|
+
return /* @__PURE__ */ y(ce.Provider, {
|
|
382
378
|
value: n,
|
|
383
379
|
children: t
|
|
384
380
|
});
|
|
385
|
-
},
|
|
381
|
+
}, F = (e, t) => {
|
|
382
|
+
if (Object.is(e, t)) return !0;
|
|
383
|
+
if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
384
|
+
let n = Object.keys(e), r = Object.keys(t);
|
|
385
|
+
if (n.length !== r.length) return !1;
|
|
386
|
+
for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
|
|
387
|
+
return !0;
|
|
388
|
+
}, he = 50, ge = /* @__PURE__ */ new Set(), _e = (e, t) => {
|
|
389
|
+
ge.has(e) || (ge.add(e), console.warn(t));
|
|
390
|
+
}, ve = "\0global", ye = null, be = (e, t, n) => {
|
|
391
|
+
let r = ye?.() ?? null;
|
|
392
|
+
if (r === null) return n;
|
|
393
|
+
let i = n;
|
|
394
|
+
for (let n of r.seeds) n.store !== e || n.key !== t || (i = {
|
|
395
|
+
...i,
|
|
396
|
+
...n.value
|
|
397
|
+
});
|
|
398
|
+
return i;
|
|
399
|
+
}, xe = (e, t) => {
|
|
400
|
+
let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
|
|
401
|
+
if (i >= he) throw i = 0, Error(`defineStore: notification depth exceeded ${he} — 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.`);
|
|
402
|
+
i += 1;
|
|
403
|
+
try {
|
|
404
|
+
for (let e of [...r]) e();
|
|
405
|
+
} finally {
|
|
406
|
+
--i;
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
return {
|
|
410
|
+
get: () => n,
|
|
411
|
+
batch: (e, r) => {
|
|
412
|
+
a === 0 && (o = n, s = e), a += 1;
|
|
413
|
+
let i;
|
|
414
|
+
try {
|
|
415
|
+
i = r();
|
|
416
|
+
} catch (e) {
|
|
417
|
+
throw a === 1 && o !== void 0 && (n = o), --a, a === 0 && (o = void 0, s = void 0), e;
|
|
418
|
+
}
|
|
419
|
+
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}', () => { … })\`.`);
|
|
420
|
+
if (--a, a > 0) return;
|
|
421
|
+
let l = o, u = s;
|
|
422
|
+
o = void 0, s = void 0, !F(l, n) && (t(l, n, u), c());
|
|
423
|
+
},
|
|
424
|
+
set: (e, r) => {
|
|
425
|
+
let i = typeof e == "function" ? e(n) : {
|
|
426
|
+
...n,
|
|
427
|
+
...e
|
|
428
|
+
};
|
|
429
|
+
if (F(i, n)) return;
|
|
430
|
+
let o = n;
|
|
431
|
+
n = i, !(a > 0) && (t(o, i, r), c());
|
|
432
|
+
},
|
|
433
|
+
reset: () => {
|
|
434
|
+
let r = e();
|
|
435
|
+
if (F(r, n)) return;
|
|
436
|
+
let i = n;
|
|
437
|
+
n = r, !(a > 0) && (t(i, r, "reset"), c());
|
|
438
|
+
},
|
|
439
|
+
subscribe: (e) => (r.add(e), () => {
|
|
440
|
+
r.delete(e);
|
|
441
|
+
})
|
|
442
|
+
};
|
|
443
|
+
}, Se = 200, I = [], L = /* @__PURE__ */ new Set(), R = [], Ce = () => R, we = (e) => (L.add(e), () => {
|
|
444
|
+
L.delete(e);
|
|
445
|
+
}), Te = () => {
|
|
446
|
+
I.length = 0, R = [];
|
|
447
|
+
}, Ee = (e, t) => {
|
|
448
|
+
let n = I[e];
|
|
449
|
+
if (n === void 0) return !1;
|
|
450
|
+
let r = V.get(n.store);
|
|
451
|
+
if (r === void 0) return !1;
|
|
452
|
+
let i = t === "before" ? n.prev : n.next;
|
|
453
|
+
B = !0;
|
|
454
|
+
try {
|
|
455
|
+
r.set(() => i, n.key, `travel:${t}`);
|
|
456
|
+
} finally {
|
|
457
|
+
B = !1;
|
|
458
|
+
}
|
|
459
|
+
return !0;
|
|
460
|
+
}, z = !1, B = !1, De = (e) => {
|
|
461
|
+
I.push(e), I.length > Se && I.shift(), R = [...I];
|
|
462
|
+
for (let e of [...L]) e();
|
|
463
|
+
}, V = /* @__PURE__ */ new Map(), Oe = () => [...V.values()], ke = (e, t, r) => {
|
|
464
|
+
if (V.has(e)) 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.`);
|
|
465
|
+
let a = r?.persist, o = () => {
|
|
466
|
+
if (typeof window > "u") return null;
|
|
467
|
+
try {
|
|
468
|
+
return (a?.storage === "session" ? window.sessionStorage : window.localStorage) ?? null;
|
|
469
|
+
} catch {
|
|
470
|
+
return null;
|
|
471
|
+
}
|
|
472
|
+
}, c = () => {
|
|
473
|
+
let e = o();
|
|
474
|
+
if (e === null || a === void 0) return;
|
|
475
|
+
let t;
|
|
476
|
+
try {
|
|
477
|
+
t = e.getItem(a.key);
|
|
478
|
+
} catch {
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
if (t === null) return;
|
|
482
|
+
let n;
|
|
483
|
+
try {
|
|
484
|
+
n = JSON.parse(t);
|
|
485
|
+
} catch {
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
return a.migrate ? a.migrate(n) : n;
|
|
489
|
+
}, u = (e) => {
|
|
490
|
+
let t = o();
|
|
491
|
+
if (t === null || a === void 0) return;
|
|
492
|
+
let n = a.pick ? a.pick(e) : e;
|
|
493
|
+
try {
|
|
494
|
+
t.setItem(a.key, JSON.stringify(n));
|
|
495
|
+
} catch {}
|
|
496
|
+
}, d = /* @__PURE__ */ new Map(), f = (n) => {
|
|
497
|
+
let r = n ?? ve, i = d.get(r);
|
|
498
|
+
if (i === void 0) {
|
|
499
|
+
let o = n;
|
|
500
|
+
i = xe(a !== void 0 && n === void 0 ? () => {
|
|
501
|
+
let e = t();
|
|
502
|
+
return p = e, {
|
|
503
|
+
...e,
|
|
504
|
+
...c() ?? {}
|
|
505
|
+
};
|
|
506
|
+
} : t, (t, n, r) => {
|
|
507
|
+
if (a !== void 0 && o === void 0 && u(n), !z && !B) {
|
|
508
|
+
let e = h(o);
|
|
509
|
+
e.steps.length = e.cursor, e.steps.push({
|
|
510
|
+
prev: t,
|
|
511
|
+
next: n
|
|
512
|
+
}), e.steps.length > g && e.steps.shift(), e.cursor = e.steps.length;
|
|
513
|
+
}
|
|
514
|
+
De({
|
|
515
|
+
store: e,
|
|
516
|
+
...o === void 0 ? {} : { key: o },
|
|
517
|
+
...r === void 0 ? {} : { label: r },
|
|
518
|
+
...z || B ? { isUndo: !0 } : {},
|
|
519
|
+
prev: t,
|
|
520
|
+
next: n,
|
|
521
|
+
at: Date.now()
|
|
522
|
+
});
|
|
523
|
+
}), d.set(r, i);
|
|
524
|
+
}
|
|
525
|
+
return i;
|
|
526
|
+
}, p, m = /* @__PURE__ */ new Map(), h = (e) => {
|
|
527
|
+
let t = e ?? ve, n = m.get(t);
|
|
528
|
+
return n === void 0 && (n = {
|
|
529
|
+
steps: [],
|
|
530
|
+
cursor: 0
|
|
531
|
+
}, m.set(t, n)), n;
|
|
532
|
+
}, g = 100, _ = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), y = (e) => {
|
|
533
|
+
let t = v.get(e);
|
|
534
|
+
t !== void 0 && (clearTimeout(t), v.delete(e)), _.set(e, (_.get(e) ?? 0) + 1);
|
|
535
|
+
}, b = (e) => {
|
|
536
|
+
let t = (_.get(e) ?? 1) - 1;
|
|
537
|
+
if (t > 0) {
|
|
538
|
+
_.set(e, t);
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
_.delete(e), v.set(e, setTimeout(() => {
|
|
542
|
+
v.delete(e), (_.get(e) ?? 0) === 0 && d.delete(e);
|
|
543
|
+
}, 0));
|
|
544
|
+
}, x = {
|
|
545
|
+
name: e,
|
|
546
|
+
use: (t, r) => {
|
|
547
|
+
let a = f(r?.key), o = s(t);
|
|
548
|
+
o.current = t;
|
|
549
|
+
let c = s(r?.equals);
|
|
550
|
+
c.current = r?.equals;
|
|
551
|
+
let u = s({
|
|
552
|
+
state: void 0,
|
|
553
|
+
value: void 0,
|
|
554
|
+
has: !1
|
|
555
|
+
}), d = n((t) => {
|
|
556
|
+
let n = u.current;
|
|
557
|
+
if (n.has && Object.is(n.state, t)) return n.value;
|
|
558
|
+
let r = o.current(t), i = c.current, a = n.has && (i ? i(n.value, r) : Object.is(n.value, r));
|
|
559
|
+
process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && F(n.value, r) && _e(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.`);
|
|
560
|
+
let s = a ? n.value : r;
|
|
561
|
+
return u.current = {
|
|
562
|
+
state: t,
|
|
563
|
+
value: s,
|
|
564
|
+
has: !0
|
|
565
|
+
}, s;
|
|
566
|
+
}, []), m = r?.key, h = r?.retain === !0, g = l(n((e) => {
|
|
567
|
+
let t = a.subscribe(e);
|
|
568
|
+
return m !== void 0 && !h && y(m), () => {
|
|
569
|
+
t(), m !== void 0 && !h && b(m);
|
|
570
|
+
};
|
|
571
|
+
}, [
|
|
572
|
+
a,
|
|
573
|
+
m,
|
|
574
|
+
h
|
|
575
|
+
]), n(() => d(a.get()), [a, d]), n(() => d(be(e, r?.key, r?.key === void 0 && p !== void 0 ? p : a.get())), [
|
|
576
|
+
a,
|
|
577
|
+
r?.key,
|
|
578
|
+
d
|
|
579
|
+
]));
|
|
580
|
+
return i(g), g;
|
|
581
|
+
},
|
|
582
|
+
instance: f,
|
|
583
|
+
get: (e) => f(e).get(),
|
|
584
|
+
set: (e, t, n) => {
|
|
585
|
+
f(t).set(e, n);
|
|
586
|
+
},
|
|
587
|
+
batch: (e, t, n) => {
|
|
588
|
+
f(n).batch(e, t);
|
|
589
|
+
},
|
|
590
|
+
undo: (e) => {
|
|
591
|
+
let t = h(e);
|
|
592
|
+
if (t.cursor === 0) return !1;
|
|
593
|
+
--t.cursor, z = !0;
|
|
594
|
+
try {
|
|
595
|
+
f(e).set(() => t.steps[t.cursor].prev, "undo");
|
|
596
|
+
} finally {
|
|
597
|
+
z = !1;
|
|
598
|
+
}
|
|
599
|
+
return !0;
|
|
600
|
+
},
|
|
601
|
+
redo: (e) => {
|
|
602
|
+
let t = h(e);
|
|
603
|
+
if (t.cursor >= t.steps.length) return !1;
|
|
604
|
+
let n = t.steps[t.cursor];
|
|
605
|
+
t.cursor += 1, z = !0;
|
|
606
|
+
try {
|
|
607
|
+
f(e).set(() => n.next, "redo");
|
|
608
|
+
} finally {
|
|
609
|
+
z = !1;
|
|
610
|
+
}
|
|
611
|
+
return !0;
|
|
612
|
+
},
|
|
613
|
+
canUndo: (e) => h(e).cursor > 0,
|
|
614
|
+
canRedo: (e) => {
|
|
615
|
+
let t = h(e);
|
|
616
|
+
return t.cursor < t.steps.length;
|
|
617
|
+
},
|
|
618
|
+
release: (e) => {
|
|
619
|
+
d.delete(e), m.delete(e);
|
|
620
|
+
},
|
|
621
|
+
keys: () => [...d.keys()].filter((e) => e !== ve)
|
|
622
|
+
};
|
|
623
|
+
return V.set(e, x), x;
|
|
624
|
+
}, Ae = () => {
|
|
625
|
+
V.clear(), ge.clear();
|
|
626
|
+
}, je = () => ({ seeds: [] }), Me = (e) => {
|
|
627
|
+
ye = e;
|
|
628
|
+
}, Ne = (e, t, n) => {
|
|
629
|
+
let r = ye?.() ?? null;
|
|
630
|
+
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.)`);
|
|
631
|
+
r.seeds.push({
|
|
632
|
+
store: e.name,
|
|
633
|
+
...n?.key === void 0 ? {} : { key: n.key },
|
|
634
|
+
value: t
|
|
635
|
+
});
|
|
636
|
+
}, Pe = (e) => {
|
|
637
|
+
if (e !== void 0) for (let t of e) {
|
|
638
|
+
let e = V.get(t.store);
|
|
639
|
+
e !== void 0 && e.set(t.value, t.key);
|
|
640
|
+
}
|
|
641
|
+
}, H = (e, t) => {
|
|
386
642
|
let n = t.split("."), r = e;
|
|
387
643
|
for (let e = 0; e < n.length; e++) {
|
|
388
644
|
let i = n[e];
|
|
@@ -401,29 +657,29 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
|
|
|
401
657
|
}
|
|
402
658
|
if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
|
|
403
659
|
return r;
|
|
404
|
-
},
|
|
660
|
+
}, Fe = Object.freeze({
|
|
405
661
|
data: void 0,
|
|
406
662
|
revision: -1,
|
|
407
663
|
emittedAt: void 0,
|
|
408
664
|
error: void 0,
|
|
409
665
|
pendingPatches: 0
|
|
410
|
-
}),
|
|
411
|
-
function
|
|
412
|
-
let
|
|
666
|
+
}), Ie = () => Fe;
|
|
667
|
+
function U(e, t, r = {}, i = {}) {
|
|
668
|
+
let a = i.skip === !0, { runtime: c, cache: u, client: d, descriptors: f } = P(e), p = f[t]?.source, m = s(r);
|
|
413
669
|
m.current = r;
|
|
414
|
-
let h =
|
|
670
|
+
let h = s(d);
|
|
415
671
|
h.current = d;
|
|
416
|
-
let g =
|
|
672
|
+
let g = s(() => H(h.current, t)(m.current)), _ = o(() => [t, m.current], [t, o(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r])]), v = l(n((e) => a ? () => {} : u.subscribe(_, g.current, c, e, p === void 0 ? {} : { source: p }).unsubscribe, [
|
|
417
673
|
u,
|
|
418
|
-
|
|
674
|
+
c,
|
|
419
675
|
p,
|
|
420
|
-
|
|
676
|
+
a,
|
|
421
677
|
_
|
|
422
|
-
]), n(() =>
|
|
678
|
+
]), n(() => a ? Fe : u.peek(_), [
|
|
423
679
|
u,
|
|
424
|
-
|
|
680
|
+
a,
|
|
425
681
|
_
|
|
426
|
-
]),
|
|
682
|
+
]), Ie), y = v.data !== void 0, b = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), x = {
|
|
427
683
|
revision: v.revision,
|
|
428
684
|
emittedAt: v.emittedAt,
|
|
429
685
|
error: v.error,
|
|
@@ -435,11 +691,11 @@ function F(e, t, r = {}, i = {}) {
|
|
|
435
691
|
...x,
|
|
436
692
|
data: y ? v.data : i.initialSnapshot,
|
|
437
693
|
loading: !1,
|
|
438
|
-
idle:
|
|
694
|
+
idle: a,
|
|
439
695
|
isEmpty: y ? b : e
|
|
440
696
|
};
|
|
441
697
|
}
|
|
442
|
-
return i.fallback === void 0 ?
|
|
698
|
+
return i.fallback === void 0 ? a ? {
|
|
443
699
|
...x,
|
|
444
700
|
data: void 0,
|
|
445
701
|
loading: !1,
|
|
@@ -460,14 +716,14 @@ function F(e, t, r = {}, i = {}) {
|
|
|
460
716
|
} : {
|
|
461
717
|
...x,
|
|
462
718
|
data: y ? v.data : i.fallback,
|
|
463
|
-
loading: !y && !
|
|
464
|
-
idle:
|
|
719
|
+
loading: !y && !a,
|
|
720
|
+
idle: a,
|
|
465
721
|
isEmpty: b
|
|
466
722
|
};
|
|
467
723
|
}
|
|
468
724
|
//#endregion
|
|
469
725
|
//#region src/sequence.ts
|
|
470
|
-
var
|
|
726
|
+
var Le = () => {
|
|
471
727
|
let e = (t) => ({
|
|
472
728
|
steps: t,
|
|
473
729
|
step: ((n, r, i) => e([...t, {
|
|
@@ -479,7 +735,7 @@ var ve = () => {
|
|
|
479
735
|
}]))
|
|
480
736
|
});
|
|
481
737
|
return e([]);
|
|
482
|
-
},
|
|
738
|
+
}, Re = async (e, t = {}) => {
|
|
483
739
|
let n = {}, r = [];
|
|
484
740
|
for (let i of e.steps) {
|
|
485
741
|
if (i.when !== void 0 && !i.when(n)) {
|
|
@@ -539,13 +795,13 @@ var ve = () => {
|
|
|
539
795
|
ok: !0,
|
|
540
796
|
data: n
|
|
541
797
|
};
|
|
542
|
-
},
|
|
543
|
-
let [t, r] =
|
|
798
|
+
}, ze = (e = {}) => {
|
|
799
|
+
let [t, r] = c(!1), [i, a] = c(void 0), [o, l] = c(void 0), u = s(e);
|
|
544
800
|
return u.current = e, {
|
|
545
801
|
run: n(async (e, t = {}) => {
|
|
546
802
|
r(!0), a(void 0), l(void 0);
|
|
547
803
|
try {
|
|
548
|
-
let n = await
|
|
804
|
+
let n = await Re(e, {
|
|
549
805
|
...u.current,
|
|
550
806
|
...t
|
|
551
807
|
});
|
|
@@ -556,27 +812,27 @@ var ve = () => {
|
|
|
556
812
|
}, []),
|
|
557
813
|
pending: t,
|
|
558
814
|
error: i,
|
|
559
|
-
failedStep:
|
|
815
|
+
failedStep: o
|
|
560
816
|
};
|
|
561
|
-
},
|
|
562
|
-
|
|
563
|
-
},
|
|
564
|
-
|
|
565
|
-
for (let e of
|
|
817
|
+
}, Be = 100, W = [], G = /* @__PURE__ */ new Set(), Ve = [], He = () => {
|
|
818
|
+
Ve = W.slice();
|
|
819
|
+
}, Ue = () => {
|
|
820
|
+
He();
|
|
821
|
+
for (let e of G) try {
|
|
566
822
|
e();
|
|
567
823
|
} catch {}
|
|
568
|
-
},
|
|
824
|
+
}, We = (e) => {
|
|
569
825
|
let t = {
|
|
570
826
|
...e,
|
|
571
827
|
status: "pending",
|
|
572
828
|
startedAt: Date.now()
|
|
573
829
|
};
|
|
574
|
-
|
|
575
|
-
},
|
|
576
|
-
let n =
|
|
830
|
+
W.unshift(t), W.length > Be && (W.length = Be), Ue();
|
|
831
|
+
}, K = (e, t) => {
|
|
832
|
+
let n = W.findIndex((t) => t.id === e);
|
|
577
833
|
if (n === -1) return;
|
|
578
|
-
let r =
|
|
579
|
-
|
|
834
|
+
let r = W[n], i = Date.now();
|
|
835
|
+
W[n] = t.status === "success" ? {
|
|
580
836
|
...r,
|
|
581
837
|
status: "success",
|
|
582
838
|
output: t.output,
|
|
@@ -588,12 +844,12 @@ var ve = () => {
|
|
|
588
844
|
error: t.error,
|
|
589
845
|
settledAt: i,
|
|
590
846
|
durationMs: i - r.startedAt
|
|
591
|
-
},
|
|
592
|
-
},
|
|
593
|
-
|
|
594
|
-
}),
|
|
595
|
-
|
|
596
|
-
},
|
|
847
|
+
}, Ue();
|
|
848
|
+
}, Ge = () => Ve, Ke = (e) => (G.add(e), () => {
|
|
849
|
+
G.delete(e);
|
|
850
|
+
}), qe = () => {
|
|
851
|
+
W.length !== 0 && (W.length = 0, Ue());
|
|
852
|
+
}, Je = (e, t) => {
|
|
597
853
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
598
854
|
try {
|
|
599
855
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -603,67 +859,67 @@ var ve = () => {
|
|
|
603
859
|
});
|
|
604
860
|
} catch {}
|
|
605
861
|
return e;
|
|
606
|
-
},
|
|
607
|
-
|
|
608
|
-
},
|
|
862
|
+
}, q, Ye = (e) => {
|
|
863
|
+
q = e;
|
|
864
|
+
}, Xe = () => q, Ze = (e, t, n) => typeof e == "function" ? e(t, n) : e, Qe = 0, $e = () => `mut_${++Qe}`, et = (e, t) => ({
|
|
609
865
|
update: (n, r) => {
|
|
610
866
|
e.update(n, r, t);
|
|
611
867
|
},
|
|
612
868
|
forTag: (n, r) => e.forTag(n, r, t)
|
|
613
|
-
}),
|
|
614
|
-
let { runtime: r, cache: i, client:
|
|
869
|
+
}), J = (e, t) => {
|
|
870
|
+
let { runtime: r, cache: i, client: a, descriptors: l, errorBus: u } = P(e), d = l[t], p = d?.targets;
|
|
615
871
|
if (process.env.NODE_ENV !== "production") {
|
|
616
|
-
let n =
|
|
872
|
+
let n = d?.kind;
|
|
617
873
|
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.`);
|
|
618
874
|
}
|
|
619
|
-
let [m, h] =
|
|
620
|
-
let
|
|
621
|
-
|
|
622
|
-
let t =
|
|
623
|
-
t !== void 0 &&
|
|
875
|
+
let [m, h] = c(!1), [g, _] = c(void 0), [v, y] = c(void 0), b = s(null), x = s(!1), C = n(async (n, o) => {
|
|
876
|
+
let s = o?.onError !== void 0 || o?.notify?.error !== void 0, c = (e) => {
|
|
877
|
+
o?.onError?.(e, n);
|
|
878
|
+
let t = Ze(o?.notify?.error, e, n);
|
|
879
|
+
t !== void 0 && q?.error(t);
|
|
624
880
|
};
|
|
625
881
|
h(!0), _(void 0);
|
|
626
|
-
let l =
|
|
627
|
-
|
|
882
|
+
let l = $e();
|
|
883
|
+
We({
|
|
628
884
|
id: l,
|
|
629
885
|
apiName: e,
|
|
630
886
|
tag: t,
|
|
631
887
|
input: n
|
|
632
888
|
});
|
|
633
|
-
let
|
|
634
|
-
if (
|
|
635
|
-
|
|
889
|
+
let d = b.current, m = x.current;
|
|
890
|
+
if (d) try {
|
|
891
|
+
d(et(i, l), n);
|
|
636
892
|
} catch (e) {
|
|
637
|
-
if (_(e), h(!1), i.revertByMutation(l),
|
|
893
|
+
if (_(e), h(!1), i.revertByMutation(l), K(l, {
|
|
638
894
|
status: "error",
|
|
639
895
|
error: e
|
|
640
|
-
}),
|
|
896
|
+
}), s) return c(e);
|
|
641
897
|
throw e;
|
|
642
898
|
}
|
|
643
899
|
else !m && p && p.length > 0 && i.autoApply(p, n, l);
|
|
644
900
|
let g;
|
|
645
901
|
try {
|
|
646
|
-
let
|
|
647
|
-
g = e.traceId,
|
|
902
|
+
let s = H(a, t), c = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
|
|
903
|
+
g = e.traceId, S({
|
|
648
904
|
traceId: e.traceId,
|
|
649
905
|
spanId: e.spanId,
|
|
650
906
|
source: "mutation",
|
|
651
907
|
tag: t
|
|
652
908
|
});
|
|
653
|
-
})),
|
|
909
|
+
})), f.catchAll(() => f.void), f.zipRight(s(n))).pipe(f.withSpan(`client.mutation.${t}`, { attributes: {
|
|
654
910
|
"voltro.api": e,
|
|
655
911
|
"voltro.mutationId": l,
|
|
656
912
|
"rpc.tag": t
|
|
657
|
-
} })), u = await r.runPromise(
|
|
658
|
-
y(u),
|
|
913
|
+
} })), u = await r.runPromise(c);
|
|
914
|
+
y(u), K(l, {
|
|
659
915
|
status: "success",
|
|
660
916
|
output: u
|
|
661
|
-
}), i.confirmByMutation(l),
|
|
662
|
-
let
|
|
663
|
-
return
|
|
917
|
+
}), i.confirmByMutation(l), o?.onSuccess?.(u, n);
|
|
918
|
+
let d = Ze(o?.notify?.success, u, n);
|
|
919
|
+
return d !== void 0 && q?.success(d), u;
|
|
664
920
|
} catch (e) {
|
|
665
|
-
let n =
|
|
666
|
-
if (_(n),
|
|
921
|
+
let n = Je(e, g);
|
|
922
|
+
if (_(n), K(l, {
|
|
667
923
|
status: "error",
|
|
668
924
|
error: n
|
|
669
925
|
}), i.revertByMutation(l), u.emit({
|
|
@@ -671,7 +927,7 @@ var ve = () => {
|
|
|
671
927
|
tag: t,
|
|
672
928
|
error: n,
|
|
673
929
|
...g === void 0 ? {} : { traceId: g }
|
|
674
|
-
}),
|
|
930
|
+
}), s) return c(n);
|
|
675
931
|
throw n;
|
|
676
932
|
} finally {
|
|
677
933
|
h(!1);
|
|
@@ -679,19 +935,19 @@ var ve = () => {
|
|
|
679
935
|
}, [
|
|
680
936
|
r,
|
|
681
937
|
i,
|
|
682
|
-
|
|
938
|
+
a,
|
|
683
939
|
e,
|
|
684
940
|
t,
|
|
685
941
|
p
|
|
686
942
|
]);
|
|
687
|
-
return
|
|
943
|
+
return o(() => {
|
|
688
944
|
let e = {
|
|
689
945
|
mutate: C,
|
|
690
946
|
pending: m,
|
|
691
947
|
error: g,
|
|
692
948
|
data: v,
|
|
693
949
|
withOptimistic: (t) => (b.current = t, e),
|
|
694
|
-
withoutOptimistic: () => (
|
|
950
|
+
withoutOptimistic: () => (x.current = !0, e)
|
|
695
951
|
};
|
|
696
952
|
return e;
|
|
697
953
|
}, [
|
|
@@ -700,7 +956,7 @@ var ve = () => {
|
|
|
700
956
|
g,
|
|
701
957
|
v
|
|
702
958
|
]);
|
|
703
|
-
},
|
|
959
|
+
}, tt = (e, t) => {
|
|
704
960
|
if (t === void 0 || typeof e != "object" || !e) return e;
|
|
705
961
|
try {
|
|
706
962
|
Object.defineProperty(e, "__voltroTraceId", {
|
|
@@ -710,56 +966,56 @@ var ve = () => {
|
|
|
710
966
|
});
|
|
711
967
|
} catch {}
|
|
712
968
|
return e;
|
|
713
|
-
},
|
|
714
|
-
let { runtime: r, client: i, descriptors:
|
|
969
|
+
}, nt = (e, t, n) => typeof e == "function" ? e(t, n) : e, rt = 0, it = () => `act_${++rt}`, Y = (e, t) => {
|
|
970
|
+
let { runtime: r, client: i, descriptors: a, errorBus: s } = P(e);
|
|
715
971
|
if (process.env.NODE_ENV !== "production") {
|
|
716
|
-
let n =
|
|
972
|
+
let n = a[t]?.kind;
|
|
717
973
|
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.`);
|
|
718
974
|
}
|
|
719
|
-
let [l, u] =
|
|
975
|
+
let [l, u] = c(!1), [d, p] = c(void 0), [m, h] = c(void 0), g = n(async (n, a) => {
|
|
720
976
|
let o = a?.onError !== void 0 || a?.notify?.error !== void 0;
|
|
721
977
|
u(!0), p(void 0);
|
|
722
|
-
let
|
|
723
|
-
|
|
724
|
-
id:
|
|
978
|
+
let c = it();
|
|
979
|
+
We({
|
|
980
|
+
id: c,
|
|
725
981
|
apiName: e,
|
|
726
982
|
tag: t,
|
|
727
983
|
input: n
|
|
728
984
|
});
|
|
729
985
|
let l;
|
|
730
986
|
try {
|
|
731
|
-
let o =
|
|
732
|
-
l = e.traceId,
|
|
987
|
+
let o = H(i, t), s = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
|
|
988
|
+
l = e.traceId, S({
|
|
733
989
|
traceId: e.traceId,
|
|
734
990
|
spanId: e.spanId,
|
|
735
991
|
source: "action",
|
|
736
992
|
tag: t
|
|
737
993
|
});
|
|
738
|
-
})),
|
|
994
|
+
})), f.catchAll(() => f.void), f.zipRight(o(n))).pipe(f.withSpan(`client.action.${t}`, { attributes: {
|
|
739
995
|
"voltro.api": e,
|
|
740
|
-
"voltro.actionId":
|
|
996
|
+
"voltro.actionId": c,
|
|
741
997
|
"rpc.tag": t
|
|
742
|
-
} })), u = await r.runPromise(
|
|
743
|
-
h(u),
|
|
998
|
+
} })), u = await r.runPromise(s);
|
|
999
|
+
h(u), K(c, {
|
|
744
1000
|
status: "success",
|
|
745
1001
|
output: u
|
|
746
1002
|
}), a?.onSuccess?.(u, n);
|
|
747
|
-
let
|
|
748
|
-
return
|
|
1003
|
+
let d = nt(a?.notify?.success, u, n);
|
|
1004
|
+
return d !== void 0 && Xe()?.success(d), u;
|
|
749
1005
|
} catch (e) {
|
|
750
|
-
let r =
|
|
751
|
-
if (p(r),
|
|
1006
|
+
let r = tt(e, l);
|
|
1007
|
+
if (p(r), K(c, {
|
|
752
1008
|
status: "error",
|
|
753
1009
|
error: r
|
|
754
|
-
}),
|
|
1010
|
+
}), s.emit({
|
|
755
1011
|
source: "action",
|
|
756
1012
|
tag: t,
|
|
757
1013
|
error: r,
|
|
758
1014
|
...l === void 0 ? {} : { traceId: l }
|
|
759
1015
|
}), o) {
|
|
760
1016
|
a?.onError?.(r, n);
|
|
761
|
-
let e =
|
|
762
|
-
e !== void 0 &&
|
|
1017
|
+
let e = nt(a?.notify?.error, r, n);
|
|
1018
|
+
e !== void 0 && Xe()?.error(e);
|
|
763
1019
|
return;
|
|
764
1020
|
}
|
|
765
1021
|
throw r;
|
|
@@ -771,20 +1027,20 @@ var ve = () => {
|
|
|
771
1027
|
i,
|
|
772
1028
|
e,
|
|
773
1029
|
t,
|
|
774
|
-
|
|
1030
|
+
s
|
|
775
1031
|
]);
|
|
776
|
-
return
|
|
1032
|
+
return o(() => ({
|
|
777
1033
|
run: g,
|
|
778
1034
|
pending: l,
|
|
779
|
-
error:
|
|
1035
|
+
error: d,
|
|
780
1036
|
lastResult: m
|
|
781
1037
|
}), [
|
|
782
1038
|
g,
|
|
783
1039
|
l,
|
|
784
|
-
|
|
1040
|
+
d,
|
|
785
1041
|
m
|
|
786
1042
|
]);
|
|
787
|
-
},
|
|
1043
|
+
}, at = "storage.mintUploadTicket", ot = "storage.mintPresignedUpload", st = "storage.finalizeUpload", ct = "storage.beginResumableUpload", lt = "storage.beginMultipartUpload", ut = "storage.signMultipartPart", dt = "storage.completeMultipartUpload", ft = "storage.abortMultipartUpload", pt = (e, t, n, r) => new Promise((i, a) => {
|
|
788
1044
|
let o = new XMLHttpRequest();
|
|
789
1045
|
if (o.open("PUT", e), o.upload.onprogress = (e) => {
|
|
790
1046
|
e.lengthComputable && n(e.loaded / e.total);
|
|
@@ -798,7 +1054,7 @@ var ve = () => {
|
|
|
798
1054
|
return;
|
|
799
1055
|
}
|
|
800
1056
|
r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
|
|
801
|
-
}),
|
|
1057
|
+
}), mt = (e, t, n, r, i, a) => new Promise((o, s) => {
|
|
802
1058
|
let c = new XMLHttpRequest();
|
|
803
1059
|
if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
|
|
804
1060
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -816,7 +1072,7 @@ var ve = () => {
|
|
|
816
1072
|
return;
|
|
817
1073
|
}
|
|
818
1074
|
i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
|
|
819
|
-
}),
|
|
1075
|
+
}), ht = (e, t, n, r, i) => new Promise((a, o) => {
|
|
820
1076
|
let s = new XMLHttpRequest();
|
|
821
1077
|
if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
822
1078
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -827,7 +1083,7 @@ var ve = () => {
|
|
|
827
1083
|
return;
|
|
828
1084
|
}
|
|
829
1085
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
830
|
-
}),
|
|
1086
|
+
}), gt = (e, t, n, r, i) => new Promise((a, o) => {
|
|
831
1087
|
let s = new XMLHttpRequest();
|
|
832
1088
|
if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
|
|
833
1089
|
e.lengthComputable && r(e.loaded / e.total);
|
|
@@ -843,12 +1099,12 @@ var ve = () => {
|
|
|
843
1099
|
return;
|
|
844
1100
|
}
|
|
845
1101
|
i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
|
|
846
|
-
}),
|
|
847
|
-
let { runtime: r, client: i, inspectBaseUrl:
|
|
1102
|
+
}), _t = (e, t = {}) => {
|
|
1103
|
+
let { runtime: r, client: i, inspectBaseUrl: a, errorBus: l } = P(e), [u, d] = c(0), [f, p] = c("idle"), [m, h] = c(void 0), g = s(null), _ = n(() => {
|
|
848
1104
|
d(0), p("idle"), h(void 0);
|
|
849
1105
|
}, []), v = n(() => {
|
|
850
1106
|
g.current?.abort();
|
|
851
|
-
}, []), y = n((e) => /^https?:\/\//.test(e) ? e : `${
|
|
1107
|
+
}, []), y = n((e) => /^https?:\/\//.test(e) ? e : `${a}${e}`, [a]), b = n(async (e, n, a, o) => {
|
|
852
1108
|
let s = Math.max(0, n.retries ?? t.retries ?? 1), c = (e instanceof File, e.type) || "application/octet-stream", l = e instanceof File ? e.name : "blob", u = n.visibility ?? t.visibility, d = n.key ?? t.key, f = n.folder ?? t.folder, p = n.tags ?? t.tags, m = {
|
|
853
1109
|
...u ? { visibility: u } : {},
|
|
854
1110
|
...f ? { folder: f } : {},
|
|
@@ -864,16 +1120,16 @@ var ve = () => {
|
|
|
864
1120
|
...e.width === void 0 ? {} : { width: e.width },
|
|
865
1121
|
...e.height === void 0 ? {} : { height: e.height }
|
|
866
1122
|
}), g = async () => {
|
|
867
|
-
let s = n.mintTag ?? t.mintTag ??
|
|
1123
|
+
let s = n.mintTag ?? t.mintTag ?? at, l = H(i, s), u = await r.runPromise(l({
|
|
868
1124
|
contentType: c,
|
|
869
1125
|
...m,
|
|
870
1126
|
...d ? { key: d } : {}
|
|
871
|
-
})), f = await
|
|
1127
|
+
})), f = await gt(y(u.uploadUrl), c, e, o, a);
|
|
872
1128
|
return h(f);
|
|
873
1129
|
}, _ = async () => {
|
|
874
|
-
let s = n.presignMintTag ?? t.presignMintTag ??
|
|
1130
|
+
let s = n.presignMintTag ?? t.presignMintTag ?? ot, l = n.finalizeTag ?? t.finalizeTag ?? st, u;
|
|
875
1131
|
try {
|
|
876
|
-
let e =
|
|
1132
|
+
let e = H(i, s);
|
|
877
1133
|
u = await r.runPromise(e({
|
|
878
1134
|
contentType: c,
|
|
879
1135
|
...m
|
|
@@ -881,11 +1137,11 @@ var ve = () => {
|
|
|
881
1137
|
} catch {
|
|
882
1138
|
return null;
|
|
883
1139
|
}
|
|
884
|
-
await
|
|
885
|
-
let d =
|
|
1140
|
+
await ht(u.uploadUrl, c, e, o, a);
|
|
1141
|
+
let d = H(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
|
|
886
1142
|
return h(f);
|
|
887
1143
|
}, v = async () => {
|
|
888
|
-
let s = n.beginResumableTag ?? t.beginResumableTag ??
|
|
1144
|
+
let s = n.beginResumableTag ?? t.beginResumableTag ?? ct, l = H(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
|
|
889
1145
|
contentType: c,
|
|
890
1146
|
size: u,
|
|
891
1147
|
...m,
|
|
@@ -896,7 +1152,7 @@ var ve = () => {
|
|
|
896
1152
|
for (;;) {
|
|
897
1153
|
if (a.aborted) throw new DOMException("upload aborted", "AbortError");
|
|
898
1154
|
try {
|
|
899
|
-
let e = await
|
|
1155
|
+
let e = await mt(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
|
|
900
1156
|
s && (x = e);
|
|
901
1157
|
break;
|
|
902
1158
|
} catch (e) {
|
|
@@ -908,9 +1164,9 @@ var ve = () => {
|
|
|
908
1164
|
if (!x) throw Error("resumable upload produced no final reply");
|
|
909
1165
|
return h(x);
|
|
910
1166
|
}, b = async () => {
|
|
911
|
-
let s = n.multipartBeginTag ?? t.multipartBeginTag ??
|
|
1167
|
+
let s = n.multipartBeginTag ?? t.multipartBeginTag ?? lt, u = n.multipartSignTag ?? t.multipartSignTag ?? ut, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? dt, f = n.multipartAbortTag ?? t.multipartAbortTag ?? ft, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
|
|
912
1168
|
try {
|
|
913
|
-
let e =
|
|
1169
|
+
let e = H(i, s);
|
|
914
1170
|
g = await r.runPromise(e({
|
|
915
1171
|
contentType: c,
|
|
916
1172
|
size: p,
|
|
@@ -920,7 +1176,7 @@ var ve = () => {
|
|
|
920
1176
|
} catch {
|
|
921
1177
|
return null;
|
|
922
1178
|
}
|
|
923
|
-
let _ =
|
|
1179
|
+
let _ = H(i, u), v = H(i, d), b = H(i, f), x = Math.max(1, g.partSize), S = Math.max(1, Math.ceil(p / x)), C = Math.max(0, n.retries ?? t.retries ?? 1), w = [], T = 0;
|
|
924
1180
|
try {
|
|
925
1181
|
for (let t = 0; t < S; t++) {
|
|
926
1182
|
let n = t * x, i = Math.min(p, n + x), s = e.slice(n, i), c = t + 1, l = i - n, u = 0;
|
|
@@ -930,7 +1186,7 @@ var ve = () => {
|
|
|
930
1186
|
let { url: e } = await r.runPromise(_({
|
|
931
1187
|
multipartToken: g.multipartToken,
|
|
932
1188
|
partNumber: c
|
|
933
|
-
})), t = await
|
|
1189
|
+
})), t = await pt(e, s, (e) => o((T + e * l) / p), a);
|
|
934
1190
|
w.push({
|
|
935
1191
|
partNumber: c,
|
|
936
1192
|
etag: t
|
|
@@ -1004,7 +1260,7 @@ var ve = () => {
|
|
|
1004
1260
|
} catch (e) {
|
|
1005
1261
|
throw p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
|
|
1006
1262
|
source: "action",
|
|
1007
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1263
|
+
tag: n.mintTag ?? t.mintTag ?? at,
|
|
1008
1264
|
error: e
|
|
1009
1265
|
}), e;
|
|
1010
1266
|
}
|
|
@@ -1030,7 +1286,7 @@ var ve = () => {
|
|
|
1030
1286
|
} catch (e) {
|
|
1031
1287
|
throw r.abort(), p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
|
|
1032
1288
|
source: "action",
|
|
1033
|
-
tag: n.mintTag ?? t.mintTag ??
|
|
1289
|
+
tag: n.mintTag ?? t.mintTag ?? at,
|
|
1034
1290
|
error: e
|
|
1035
1291
|
}), e;
|
|
1036
1292
|
}
|
|
@@ -1046,13 +1302,13 @@ var ve = () => {
|
|
|
1046
1302
|
}, [S]), w = n((e, t = {}) => {
|
|
1047
1303
|
let n = e.clipboardData ? Array.from(e.clipboardData.files) : [];
|
|
1048
1304
|
return n.length ? S(n, t) : Promise.resolve([]);
|
|
1049
|
-
}, [S]), T =
|
|
1305
|
+
}, [S]), T = o(() => ({
|
|
1050
1306
|
onDragOver: (e) => e.preventDefault(),
|
|
1051
1307
|
onDrop: (e) => {
|
|
1052
1308
|
C(e);
|
|
1053
1309
|
}
|
|
1054
1310
|
}), [C]);
|
|
1055
|
-
return
|
|
1311
|
+
return o(() => ({
|
|
1056
1312
|
upload: x,
|
|
1057
1313
|
uploadMany: S,
|
|
1058
1314
|
progress: u,
|
|
@@ -1075,29 +1331,29 @@ var ve = () => {
|
|
|
1075
1331
|
w,
|
|
1076
1332
|
T
|
|
1077
1333
|
]);
|
|
1078
|
-
},
|
|
1079
|
-
let t =
|
|
1080
|
-
|
|
1334
|
+
}, X = async (e) => {
|
|
1335
|
+
let t = H(e.client, e.tag), n = f.currentSpan.pipe(f.tap((t) => f.sync(() => {
|
|
1336
|
+
S({
|
|
1081
1337
|
traceId: t.traceId,
|
|
1082
1338
|
spanId: t.spanId,
|
|
1083
1339
|
source: "mutation",
|
|
1084
1340
|
tag: e.tag
|
|
1085
1341
|
});
|
|
1086
|
-
})),
|
|
1342
|
+
})), f.catchAll(() => f.void), f.zipRight(t(e.input)), f.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
|
|
1087
1343
|
"voltro.api": e.apiName,
|
|
1088
1344
|
"rpc.tag": e.tag
|
|
1089
1345
|
} }));
|
|
1090
1346
|
return e.runtime.runPromise(n);
|
|
1091
|
-
},
|
|
1092
|
-
let { runtime: r, client: i, descriptors:
|
|
1347
|
+
}, vt = (e, t) => {
|
|
1348
|
+
let { runtime: r, client: i, descriptors: a } = P(e);
|
|
1093
1349
|
if (process.env.NODE_ENV !== "production") {
|
|
1094
|
-
let n =
|
|
1350
|
+
let n = a[t]?.kind;
|
|
1095
1351
|
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.`);
|
|
1096
1352
|
}
|
|
1097
|
-
let [
|
|
1353
|
+
let [s, l] = c(!1), [u, d] = c(void 0), [f, p] = c(void 0), m = n(async (n) => {
|
|
1098
1354
|
l(!0), d(void 0);
|
|
1099
1355
|
try {
|
|
1100
|
-
let a = await
|
|
1356
|
+
let a = await X({
|
|
1101
1357
|
apiName: e,
|
|
1102
1358
|
runtime: r,
|
|
1103
1359
|
client: i,
|
|
@@ -1117,7 +1373,7 @@ var ve = () => {
|
|
|
1117
1373
|
i,
|
|
1118
1374
|
t
|
|
1119
1375
|
]), h = n(async (t) => {
|
|
1120
|
-
await
|
|
1376
|
+
await X({
|
|
1121
1377
|
apiName: e,
|
|
1122
1378
|
runtime: r,
|
|
1123
1379
|
client: i,
|
|
@@ -1130,7 +1386,7 @@ var ve = () => {
|
|
|
1130
1386
|
r,
|
|
1131
1387
|
i
|
|
1132
1388
|
]), g = n(async (t) => {
|
|
1133
|
-
await
|
|
1389
|
+
await X({
|
|
1134
1390
|
apiName: e,
|
|
1135
1391
|
runtime: r,
|
|
1136
1392
|
client: i,
|
|
@@ -1142,7 +1398,7 @@ var ve = () => {
|
|
|
1142
1398
|
e,
|
|
1143
1399
|
r,
|
|
1144
1400
|
i
|
|
1145
|
-
]), _ = n(async (t, n, a) =>
|
|
1401
|
+
]), _ = n(async (t, n, a) => X({
|
|
1146
1402
|
apiName: e,
|
|
1147
1403
|
runtime: r,
|
|
1148
1404
|
client: i,
|
|
@@ -1157,7 +1413,7 @@ var ve = () => {
|
|
|
1157
1413
|
e,
|
|
1158
1414
|
r,
|
|
1159
1415
|
i
|
|
1160
|
-
]), v = n(async (t, n, a, o) =>
|
|
1416
|
+
]), v = n(async (t, n, a, o) => X({
|
|
1161
1417
|
apiName: e,
|
|
1162
1418
|
runtime: r,
|
|
1163
1419
|
client: i,
|
|
@@ -1174,13 +1430,13 @@ var ve = () => {
|
|
|
1174
1430
|
r,
|
|
1175
1431
|
i
|
|
1176
1432
|
]);
|
|
1177
|
-
return
|
|
1433
|
+
return o(() => ({
|
|
1178
1434
|
start: m,
|
|
1179
1435
|
cancel: h,
|
|
1180
1436
|
resume: g,
|
|
1181
1437
|
signal: _,
|
|
1182
1438
|
update: v,
|
|
1183
|
-
pending:
|
|
1439
|
+
pending: s,
|
|
1184
1440
|
error: u,
|
|
1185
1441
|
data: f
|
|
1186
1442
|
}), [
|
|
@@ -1189,15 +1445,15 @@ var ve = () => {
|
|
|
1189
1445
|
g,
|
|
1190
1446
|
_,
|
|
1191
1447
|
v,
|
|
1192
|
-
|
|
1448
|
+
s,
|
|
1193
1449
|
u,
|
|
1194
1450
|
f
|
|
1195
1451
|
]);
|
|
1196
|
-
},
|
|
1197
|
-
let { runtime: t, client: r } =
|
|
1198
|
-
|
|
1452
|
+
}, yt = (e) => {
|
|
1453
|
+
let { runtime: t, client: r } = P(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o) => {
|
|
1454
|
+
a(!0), l(void 0);
|
|
1199
1455
|
try {
|
|
1200
|
-
let
|
|
1456
|
+
let a = await X({
|
|
1201
1457
|
apiName: e,
|
|
1202
1458
|
runtime: t,
|
|
1203
1459
|
client: r,
|
|
@@ -1205,37 +1461,37 @@ var ve = () => {
|
|
|
1205
1461
|
input: {
|
|
1206
1462
|
id: n.id,
|
|
1207
1463
|
signalName: i,
|
|
1208
|
-
...
|
|
1464
|
+
...o === void 0 ? {} : { payload: o }
|
|
1209
1465
|
},
|
|
1210
1466
|
spanPrefix: "client.workflow.signal"
|
|
1211
1467
|
});
|
|
1212
|
-
return d(
|
|
1468
|
+
return d(a), a;
|
|
1213
1469
|
} catch (e) {
|
|
1214
1470
|
throw l(e), e;
|
|
1215
1471
|
} finally {
|
|
1216
|
-
|
|
1472
|
+
a(!1);
|
|
1217
1473
|
}
|
|
1218
1474
|
}, [
|
|
1219
1475
|
e,
|
|
1220
1476
|
t,
|
|
1221
1477
|
r
|
|
1222
1478
|
]);
|
|
1223
|
-
return
|
|
1479
|
+
return o(() => ({
|
|
1224
1480
|
signal: f,
|
|
1225
1481
|
pending: i,
|
|
1226
|
-
error:
|
|
1482
|
+
error: s,
|
|
1227
1483
|
data: u
|
|
1228
1484
|
}), [
|
|
1229
1485
|
f,
|
|
1230
1486
|
i,
|
|
1231
|
-
|
|
1487
|
+
s,
|
|
1232
1488
|
u
|
|
1233
1489
|
]);
|
|
1234
|
-
},
|
|
1235
|
-
let { runtime: t, client: r } =
|
|
1236
|
-
|
|
1490
|
+
}, bt = (e) => {
|
|
1491
|
+
let { runtime: t, client: r } = P(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o, s) => {
|
|
1492
|
+
a(!0), l(void 0);
|
|
1237
1493
|
try {
|
|
1238
|
-
let
|
|
1494
|
+
let a = await X({
|
|
1239
1495
|
apiName: e,
|
|
1240
1496
|
runtime: t,
|
|
1241
1497
|
client: r,
|
|
@@ -1243,35 +1499,35 @@ var ve = () => {
|
|
|
1243
1499
|
input: {
|
|
1244
1500
|
id: n.id,
|
|
1245
1501
|
updateName: i,
|
|
1246
|
-
...
|
|
1502
|
+
...o === void 0 ? {} : { payload: o },
|
|
1247
1503
|
...s?.timeoutMs === void 0 ? {} : { timeoutMs: s.timeoutMs }
|
|
1248
1504
|
},
|
|
1249
1505
|
spanPrefix: "client.workflow.update"
|
|
1250
1506
|
});
|
|
1251
|
-
return d(
|
|
1507
|
+
return d(a), a;
|
|
1252
1508
|
} catch (e) {
|
|
1253
1509
|
throw l(e), e;
|
|
1254
1510
|
} finally {
|
|
1255
|
-
|
|
1511
|
+
a(!1);
|
|
1256
1512
|
}
|
|
1257
1513
|
}, [
|
|
1258
1514
|
e,
|
|
1259
1515
|
t,
|
|
1260
1516
|
r
|
|
1261
1517
|
]);
|
|
1262
|
-
return
|
|
1518
|
+
return o(() => ({
|
|
1263
1519
|
update: f,
|
|
1264
1520
|
pending: i,
|
|
1265
|
-
error:
|
|
1521
|
+
error: s,
|
|
1266
1522
|
data: u
|
|
1267
1523
|
}), [
|
|
1268
1524
|
f,
|
|
1269
1525
|
i,
|
|
1270
|
-
|
|
1526
|
+
s,
|
|
1271
1527
|
u
|
|
1272
1528
|
]);
|
|
1273
|
-
},
|
|
1274
|
-
let n =
|
|
1529
|
+
}, xt = (e, t) => {
|
|
1530
|
+
let n = U(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
|
|
1275
1531
|
return n.loading || n.idle ? {
|
|
1276
1532
|
...n,
|
|
1277
1533
|
run: void 0
|
|
@@ -1279,8 +1535,8 @@ var ve = () => {
|
|
|
1279
1535
|
...n,
|
|
1280
1536
|
run: n.data[0]
|
|
1281
1537
|
};
|
|
1282
|
-
},
|
|
1283
|
-
let r =
|
|
1538
|
+
}, St = (e, t = {}, n = {}) => {
|
|
1539
|
+
let r = U(e, "__voltro.workflow.runs", t, n);
|
|
1284
1540
|
return r.loading || r.idle ? {
|
|
1285
1541
|
...r,
|
|
1286
1542
|
runs: []
|
|
@@ -1288,8 +1544,8 @@ var ve = () => {
|
|
|
1288
1544
|
...r,
|
|
1289
1545
|
runs: r.data
|
|
1290
1546
|
};
|
|
1291
|
-
},
|
|
1292
|
-
let n =
|
|
1547
|
+
}, Ct = (e, t) => {
|
|
1548
|
+
let n = U(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1293
1549
|
return n.loading || n.idle ? {
|
|
1294
1550
|
...n,
|
|
1295
1551
|
steps: []
|
|
@@ -1297,8 +1553,8 @@ var ve = () => {
|
|
|
1297
1553
|
...n,
|
|
1298
1554
|
steps: n.data
|
|
1299
1555
|
};
|
|
1300
|
-
},
|
|
1301
|
-
let n =
|
|
1556
|
+
}, wt = (e, t) => {
|
|
1557
|
+
let n = U(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
|
|
1302
1558
|
return n.loading || n.idle ? {
|
|
1303
1559
|
...n,
|
|
1304
1560
|
events: []
|
|
@@ -1306,8 +1562,8 @@ var ve = () => {
|
|
|
1306
1562
|
...n,
|
|
1307
1563
|
events: n.data
|
|
1308
1564
|
};
|
|
1309
|
-
},
|
|
1310
|
-
let r =
|
|
1565
|
+
}, Tt = wt, Et = (e, t = {}, n = {}) => {
|
|
1566
|
+
let r = U(e, "__voltro.workflow.domainEvents", t, n);
|
|
1311
1567
|
return r.loading || r.idle ? {
|
|
1312
1568
|
...r,
|
|
1313
1569
|
events: []
|
|
@@ -1315,8 +1571,8 @@ var ve = () => {
|
|
|
1315
1571
|
...r,
|
|
1316
1572
|
events: r.data
|
|
1317
1573
|
};
|
|
1318
|
-
},
|
|
1319
|
-
let n =
|
|
1574
|
+
}, Dt = (e, t) => {
|
|
1575
|
+
let n = U(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
|
|
1320
1576
|
return n.loading || n.idle ? {
|
|
1321
1577
|
...n,
|
|
1322
1578
|
deliveries: []
|
|
@@ -1324,42 +1580,42 @@ var ve = () => {
|
|
|
1324
1580
|
...n,
|
|
1325
1581
|
deliveries: n.data
|
|
1326
1582
|
};
|
|
1327
|
-
},
|
|
1583
|
+
}, Ot = (e, t) => {
|
|
1328
1584
|
let n = e.payload;
|
|
1329
1585
|
if (!n || typeof n != "object") return;
|
|
1330
1586
|
let r = n[t];
|
|
1331
1587
|
return typeof r == "string" ? r : void 0;
|
|
1332
|
-
},
|
|
1588
|
+
}, kt = (e) => {
|
|
1333
1589
|
let t = e.payload;
|
|
1334
1590
|
if (!t || typeof t != "object") return;
|
|
1335
1591
|
let n = t.updateId;
|
|
1336
1592
|
return typeof n == "string" ? n : void 0;
|
|
1337
|
-
},
|
|
1593
|
+
}, At = (e) => {
|
|
1338
1594
|
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
1339
1595
|
for (let r of e) if (r.eventType === "signal-received") {
|
|
1340
|
-
let e =
|
|
1596
|
+
let e = Ot(r, "signalName");
|
|
1341
1597
|
e && t.add(e);
|
|
1342
1598
|
} else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
|
|
1343
|
-
let e =
|
|
1599
|
+
let e = kt(r);
|
|
1344
1600
|
e && n.add(e);
|
|
1345
1601
|
}
|
|
1346
1602
|
for (let r = e.length - 1; r >= 0; --r) {
|
|
1347
1603
|
let i = e[r];
|
|
1348
1604
|
if (i.eventType === "signal-awaited") {
|
|
1349
|
-
let e =
|
|
1605
|
+
let e = Ot(i, "signalName");
|
|
1350
1606
|
if (e && !t.has(e)) return {
|
|
1351
1607
|
name: e,
|
|
1352
1608
|
kind: "signal"
|
|
1353
1609
|
};
|
|
1354
1610
|
} else if (i.eventType === "update-requested") {
|
|
1355
|
-
let e =
|
|
1611
|
+
let e = kt(i), t = Ot(i, "updateName");
|
|
1356
1612
|
if (t && (!e || !n.has(e))) return {
|
|
1357
1613
|
name: t,
|
|
1358
1614
|
kind: "update"
|
|
1359
1615
|
};
|
|
1360
1616
|
}
|
|
1361
1617
|
}
|
|
1362
|
-
},
|
|
1618
|
+
}, jt = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Mt = (e, t) => {
|
|
1363
1619
|
if (!e || e.status !== "failed") return;
|
|
1364
1620
|
let n = t.find((e) => e.status === "failed");
|
|
1365
1621
|
return {
|
|
@@ -1367,8 +1623,8 @@ var ve = () => {
|
|
|
1367
1623
|
message: e.errorMessage,
|
|
1368
1624
|
step: n?.stepName
|
|
1369
1625
|
};
|
|
1370
|
-
},
|
|
1371
|
-
let r =
|
|
1626
|
+
}, Nt = (e, t) => {
|
|
1627
|
+
let r = xt(e, t), i = Ct(e, t), a = wt(e, t), s = vt(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
|
|
1372
1628
|
if (!c) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
|
|
1373
1629
|
await s.cancel({
|
|
1374
1630
|
workflowName: c.tag,
|
|
@@ -1387,14 +1643,14 @@ var ve = () => {
|
|
|
1387
1643
|
if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot update");
|
|
1388
1644
|
return s.update({ id: t }, e, n, r);
|
|
1389
1645
|
}, [s, t]);
|
|
1390
|
-
return
|
|
1646
|
+
return o(() => ({
|
|
1391
1647
|
run: c,
|
|
1392
1648
|
status: c?.status,
|
|
1393
1649
|
steps: l,
|
|
1394
1650
|
events: u,
|
|
1395
|
-
currentStep:
|
|
1396
|
-
waitingFor: c?.status === "suspended" ?
|
|
1397
|
-
error:
|
|
1651
|
+
currentStep: jt(l),
|
|
1652
|
+
waitingFor: c?.status === "suspended" ? At(u) : void 0,
|
|
1653
|
+
error: Mt(c, l),
|
|
1398
1654
|
traceId: c?.traceId,
|
|
1399
1655
|
loading: r.data === void 0,
|
|
1400
1656
|
cancel: d,
|
|
@@ -1411,27 +1667,27 @@ var ve = () => {
|
|
|
1411
1667
|
p,
|
|
1412
1668
|
m
|
|
1413
1669
|
]);
|
|
1414
|
-
},
|
|
1415
|
-
let { runtime: r, client: i } =
|
|
1416
|
-
let e =
|
|
1417
|
-
e && (
|
|
1670
|
+
}, Pt = (e, t) => {
|
|
1671
|
+
let { runtime: r, client: i } = P(e), [a, o] = c([]), [l, d] = c("idle"), [p, h] = c(void 0), g = s(null), v = n(() => {
|
|
1672
|
+
let e = g.current;
|
|
1673
|
+
e && (g.current = null, r.runFork(m.interrupt(e)), d((e) => e === "streaming" ? "idle" : e));
|
|
1418
1674
|
}, [r]);
|
|
1419
1675
|
return {
|
|
1420
1676
|
events: a,
|
|
1421
|
-
status:
|
|
1422
|
-
error:
|
|
1677
|
+
status: l,
|
|
1678
|
+
error: p,
|
|
1423
1679
|
start: n((e = {}) => {
|
|
1424
|
-
let n =
|
|
1425
|
-
n && r.runFork(
|
|
1426
|
-
let a =
|
|
1680
|
+
let n = g.current;
|
|
1681
|
+
n && r.runFork(m.interrupt(n)), o([]), h(void 0), d("streaming");
|
|
1682
|
+
let a = H(i, t)(e), s = _.runForEach(a, (e) => f.sync(() => o((t) => [...t, e]))).pipe(f.matchCause({
|
|
1427
1683
|
onSuccess: () => {
|
|
1428
|
-
|
|
1684
|
+
d("done");
|
|
1429
1685
|
},
|
|
1430
1686
|
onFailure: (e) => {
|
|
1431
|
-
|
|
1687
|
+
u.isInterruptedOnly(e) || (h(u.squash(e)), d("error"));
|
|
1432
1688
|
}
|
|
1433
1689
|
}));
|
|
1434
|
-
|
|
1690
|
+
g.current = r.runFork(s);
|
|
1435
1691
|
}, [
|
|
1436
1692
|
r,
|
|
1437
1693
|
i,
|
|
@@ -1439,57 +1695,57 @@ var ve = () => {
|
|
|
1439
1695
|
]),
|
|
1440
1696
|
cancel: v
|
|
1441
1697
|
};
|
|
1442
|
-
},
|
|
1443
|
-
let i = 0, a = !1, o = (e) =>
|
|
1698
|
+
}, Ft = (e, t, n, r) => {
|
|
1699
|
+
let i = 0, a = !1, o = (e) => f.sync(() => {
|
|
1444
1700
|
e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
|
|
1445
1701
|
}), s = (e, t, a) => {
|
|
1446
1702
|
let o = i > t ? 0 : e + 1;
|
|
1447
|
-
if (o > r.maxReconnects) return
|
|
1703
|
+
if (o > r.maxReconnects) return f.sync(() => {
|
|
1448
1704
|
n.onError(a ?? /* @__PURE__ */ Error("stream connection lost")), n.onStatus("error");
|
|
1449
1705
|
});
|
|
1450
1706
|
let s = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, o - 1));
|
|
1451
|
-
return
|
|
1707
|
+
return f.sync(() => {
|
|
1452
1708
|
n.onStatus("reconnecting"), n.onReconnect();
|
|
1453
|
-
}).pipe(
|
|
1454
|
-
}, c = (r) =>
|
|
1455
|
-
let c = i,
|
|
1709
|
+
}).pipe(f.zipRight(f.sleep(d.millis(s))), f.zipRight(f.sync(() => n.onStatus("streaming"))), f.zipRight(c(o)));
|
|
1710
|
+
}, c = (r) => f.suspend(() => {
|
|
1711
|
+
let c = i, l = e({
|
|
1456
1712
|
...t,
|
|
1457
1713
|
fromSeq: c
|
|
1458
1714
|
});
|
|
1459
|
-
return
|
|
1460
|
-
onSuccess: () => a ?
|
|
1461
|
-
onFailure: (e) =>
|
|
1715
|
+
return _.runForEach(l, o).pipe(f.matchCauseEffect({
|
|
1716
|
+
onSuccess: () => a ? f.sync(() => n.onStatus("done")) : s(r, c, void 0),
|
|
1717
|
+
onFailure: (e) => u.isInterruptedOnly(e) ? f.void : a ? f.sync(() => n.onStatus("done")) : s(r, c, u.squash(e))
|
|
1462
1718
|
}));
|
|
1463
1719
|
});
|
|
1464
1720
|
return c(0);
|
|
1465
|
-
},
|
|
1721
|
+
}, It = (e) => {
|
|
1466
1722
|
let t = e?._tag;
|
|
1467
1723
|
return t === "done" || t === "error";
|
|
1468
|
-
},
|
|
1469
|
-
let { runtime: i, client: a } =
|
|
1724
|
+
}, Lt = (e, t, r = {}) => {
|
|
1725
|
+
let { runtime: i, client: a } = P(e), [o, l] = c([]), [u, d] = c("idle"), [f, p] = c(0), [h, g] = c(void 0), _ = s(null), v = {
|
|
1470
1726
|
maxReconnects: r.maxReconnects ?? 6,
|
|
1471
1727
|
backoffMs: r.backoffMs ?? 400,
|
|
1472
1728
|
maxBackoffMs: r.maxBackoffMs ?? 8e3,
|
|
1473
|
-
isTerminal: r.isTerminal ??
|
|
1729
|
+
isTerminal: r.isTerminal ?? It
|
|
1474
1730
|
}, y = n(() => {
|
|
1475
1731
|
let e = _.current;
|
|
1476
|
-
e && (_.current = null, i.runFork(
|
|
1732
|
+
e && (_.current = null, i.runFork(m.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
|
|
1477
1733
|
}, [i]);
|
|
1478
1734
|
return {
|
|
1479
|
-
events:
|
|
1735
|
+
events: o,
|
|
1480
1736
|
status: u,
|
|
1481
1737
|
reconnects: f,
|
|
1482
1738
|
error: h,
|
|
1483
1739
|
start: n((e = {}) => {
|
|
1484
1740
|
let n = _.current;
|
|
1485
|
-
n && i.runFork(
|
|
1486
|
-
let r =
|
|
1741
|
+
n && i.runFork(m.interrupt(n)), l([]), g(void 0), p(0), d("streaming");
|
|
1742
|
+
let r = H(a, t), o = {
|
|
1487
1743
|
onEvent: (e) => l((t) => [...t, e]),
|
|
1488
1744
|
onStatus: d,
|
|
1489
|
-
onReconnect: () =>
|
|
1745
|
+
onReconnect: () => p((e) => e + 1),
|
|
1490
1746
|
onError: g
|
|
1491
1747
|
};
|
|
1492
|
-
_.current = i.runFork(
|
|
1748
|
+
_.current = i.runFork(Ft(r, e, o, v));
|
|
1493
1749
|
}, [
|
|
1494
1750
|
i,
|
|
1495
1751
|
a,
|
|
@@ -1501,46 +1757,46 @@ var ve = () => {
|
|
|
1501
1757
|
]),
|
|
1502
1758
|
cancel: y
|
|
1503
1759
|
};
|
|
1504
|
-
},
|
|
1760
|
+
}, Rt = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), zt = (e) => {
|
|
1505
1761
|
for (let t = e.length - 1; t >= 0; --t) {
|
|
1506
1762
|
let n = e[t];
|
|
1507
1763
|
if (n.role === "user" && n.content) return n.content;
|
|
1508
1764
|
}
|
|
1509
|
-
},
|
|
1510
|
-
let { threadId: i } = r,
|
|
1765
|
+
}, Bt = (e, t, r) => {
|
|
1766
|
+
let { threadId: i } = r, a = U(e, `${t}.messages`, { threadId: i }), s = Y(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(Rt), [a.data]), l = n((e, t = {}) => s.run({
|
|
1511
1767
|
threadId: i,
|
|
1512
|
-
order:
|
|
1768
|
+
order: a.data?.length ?? 0,
|
|
1513
1769
|
prompt: e,
|
|
1514
1770
|
...t
|
|
1515
1771
|
}), [
|
|
1516
1772
|
s,
|
|
1517
1773
|
i,
|
|
1518
|
-
|
|
1774
|
+
a.data
|
|
1519
1775
|
]), u = n(() => {
|
|
1520
|
-
let e =
|
|
1776
|
+
let e = zt(c);
|
|
1521
1777
|
return e === void 0 ? void 0 : l(e);
|
|
1522
1778
|
}, [c, l]);
|
|
1523
|
-
return
|
|
1779
|
+
return o(() => ({
|
|
1524
1780
|
messages: c,
|
|
1525
1781
|
streaming: c.some((e) => e.streaming),
|
|
1526
|
-
loading:
|
|
1527
|
-
error:
|
|
1782
|
+
loading: a.data === void 0,
|
|
1783
|
+
error: a.error ?? s.error,
|
|
1528
1784
|
send: l,
|
|
1529
1785
|
regenerate: u,
|
|
1530
1786
|
sending: s.pending
|
|
1531
1787
|
}), [
|
|
1532
1788
|
c,
|
|
1533
|
-
|
|
1534
|
-
|
|
1789
|
+
a.data,
|
|
1790
|
+
a.error,
|
|
1535
1791
|
s.error,
|
|
1536
1792
|
s.pending,
|
|
1537
1793
|
l,
|
|
1538
1794
|
u
|
|
1539
1795
|
]);
|
|
1540
|
-
},
|
|
1541
|
-
let { events: r, status:
|
|
1542
|
-
return
|
|
1543
|
-
if (
|
|
1796
|
+
}, Vt = (e, t) => {
|
|
1797
|
+
let { events: r, status: i, error: l, start: u, cancel: d } = Pt(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
|
|
1798
|
+
return a(() => {
|
|
1799
|
+
if (i !== "done" || m.current === null) return;
|
|
1544
1800
|
let e = m.current;
|
|
1545
1801
|
m.current = null, p((t) => [
|
|
1546
1802
|
...t,
|
|
@@ -1553,10 +1809,10 @@ var ve = () => {
|
|
|
1553
1809
|
content: h
|
|
1554
1810
|
}
|
|
1555
1811
|
]);
|
|
1556
|
-
}, [
|
|
1812
|
+
}, [i, h]), {
|
|
1557
1813
|
tokens: h,
|
|
1558
1814
|
history: f,
|
|
1559
|
-
status:
|
|
1815
|
+
status: i,
|
|
1560
1816
|
error: l,
|
|
1561
1817
|
send: n((e = {}) => {
|
|
1562
1818
|
let t = e.message;
|
|
@@ -1564,61 +1820,61 @@ var ve = () => {
|
|
|
1564
1820
|
}, [u]),
|
|
1565
1821
|
cancel: d
|
|
1566
1822
|
};
|
|
1567
|
-
},
|
|
1568
|
-
let r =
|
|
1823
|
+
}, Ht = (e, t) => {
|
|
1824
|
+
let r = Y(e, t), [i, a] = c(void 0), s = n(async (e) => {
|
|
1569
1825
|
let t = await r.run({ question: e });
|
|
1570
|
-
return
|
|
1571
|
-
}, [r]), l = n(() =>
|
|
1572
|
-
return
|
|
1573
|
-
ask:
|
|
1826
|
+
return a(t), t;
|
|
1827
|
+
}, [r]), l = n(() => a(void 0), []);
|
|
1828
|
+
return o(() => ({
|
|
1829
|
+
ask: s,
|
|
1574
1830
|
answer: i,
|
|
1575
1831
|
pending: r.pending,
|
|
1576
1832
|
error: r.error,
|
|
1577
1833
|
reset: l
|
|
1578
1834
|
}), [
|
|
1579
|
-
|
|
1835
|
+
s,
|
|
1580
1836
|
i,
|
|
1581
1837
|
r.pending,
|
|
1582
1838
|
r.error,
|
|
1583
1839
|
l
|
|
1584
1840
|
]);
|
|
1585
|
-
},
|
|
1586
|
-
let { cache: t, runtime: r } =
|
|
1841
|
+
}, Ut = (e) => {
|
|
1842
|
+
let { cache: t, runtime: r } = P(e);
|
|
1587
1843
|
return n(() => {
|
|
1588
1844
|
t.refreshAll(r);
|
|
1589
1845
|
}, [t, r]);
|
|
1590
|
-
},
|
|
1591
|
-
for (let t of
|
|
1846
|
+
}, Wt = /* @__PURE__ */ new Set(), Gt = (e) => {
|
|
1847
|
+
for (let t of Wt) try {
|
|
1592
1848
|
t(e);
|
|
1593
1849
|
} catch {}
|
|
1594
|
-
},
|
|
1595
|
-
|
|
1596
|
-
}),
|
|
1597
|
-
|
|
1850
|
+
}, Kt = (e) => (Wt.add(e), () => {
|
|
1851
|
+
Wt.delete(e);
|
|
1852
|
+
}), qt = (e, t) => {
|
|
1853
|
+
Gt({
|
|
1598
1854
|
error: e,
|
|
1599
1855
|
source: "manual",
|
|
1600
1856
|
...t ? { context: t } : {}
|
|
1601
1857
|
});
|
|
1602
|
-
},
|
|
1603
|
-
let { errorBus: n } =
|
|
1604
|
-
|
|
1605
|
-
},
|
|
1858
|
+
}, Jt = (e, t) => {
|
|
1859
|
+
let { errorBus: n } = P(e);
|
|
1860
|
+
a(() => n.on(t), [n, t]);
|
|
1861
|
+
}, Yt = "#/$defs/", Xt = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Z = (e, t) => {
|
|
1606
1862
|
let n = e;
|
|
1607
1863
|
for (let e = 0; e < 8; e += 1) {
|
|
1608
1864
|
let e = n.$ref;
|
|
1609
|
-
if (typeof e != "string" || !e.startsWith(
|
|
1865
|
+
if (typeof e != "string" || !e.startsWith(Yt)) return n;
|
|
1610
1866
|
let r = t[e.slice(8)];
|
|
1611
1867
|
if (!r || typeof r != "object") return n;
|
|
1612
1868
|
n = r;
|
|
1613
1869
|
}
|
|
1614
1870
|
return n;
|
|
1615
|
-
},
|
|
1871
|
+
}, Zt = (e) => {
|
|
1616
1872
|
if (!e || typeof e != "object") return !1;
|
|
1617
1873
|
let t = e;
|
|
1618
1874
|
if (t.type === "null" || t.const === null) return !0;
|
|
1619
1875
|
let n = t.enum;
|
|
1620
1876
|
return Array.isArray(n) && n.length === 1 && n[0] === null;
|
|
1621
|
-
},
|
|
1877
|
+
}, Qt = (e, t) => {
|
|
1622
1878
|
let n = e.type;
|
|
1623
1879
|
if (Array.isArray(n) && n.includes("null")) {
|
|
1624
1880
|
let t = n.filter((e) => e !== "null");
|
|
@@ -1633,9 +1889,9 @@ var ve = () => {
|
|
|
1633
1889
|
for (let n of ["anyOf", "oneOf"]) {
|
|
1634
1890
|
let r = e[n];
|
|
1635
1891
|
if (!Array.isArray(r)) continue;
|
|
1636
|
-
let i = r.filter((e) => !
|
|
1892
|
+
let i = r.filter((e) => !Zt(e));
|
|
1637
1893
|
if (i.length !== r.length) return i.length === 1 ? {
|
|
1638
|
-
node:
|
|
1894
|
+
node: Z(i[0], t),
|
|
1639
1895
|
nullable: !0
|
|
1640
1896
|
} : {
|
|
1641
1897
|
node: {
|
|
@@ -1649,14 +1905,14 @@ var ve = () => {
|
|
|
1649
1905
|
node: e,
|
|
1650
1906
|
nullable: !1
|
|
1651
1907
|
};
|
|
1652
|
-
},
|
|
1908
|
+
}, $t = (e) => e.map((e) => ({
|
|
1653
1909
|
value: String(e),
|
|
1654
|
-
label:
|
|
1655
|
-
})),
|
|
1910
|
+
label: Xt(String(e))
|
|
1911
|
+
})), en = (e) => {
|
|
1656
1912
|
let t = e.enum;
|
|
1657
1913
|
if (Array.isArray(t) && t.length > 0) return {
|
|
1658
1914
|
widget: "select",
|
|
1659
|
-
options:
|
|
1915
|
+
options: $t(t)
|
|
1660
1916
|
};
|
|
1661
1917
|
let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
|
|
1662
1918
|
switch (r) {
|
|
@@ -1667,45 +1923,45 @@ var ve = () => {
|
|
|
1667
1923
|
case "array": return { widget: "multi-select" };
|
|
1668
1924
|
default: return { widget: "custom" };
|
|
1669
1925
|
}
|
|
1670
|
-
},
|
|
1671
|
-
let { node: i, nullable: a } =
|
|
1926
|
+
}, tn = (e, t, n) => Object.entries(e).map(([e, r]) => {
|
|
1927
|
+
let { node: i, nullable: a } = Qt(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = en(o);
|
|
1672
1928
|
return {
|
|
1673
1929
|
name: e,
|
|
1674
|
-
label:
|
|
1930
|
+
label: Xt(e),
|
|
1675
1931
|
widget: s,
|
|
1676
1932
|
required: t.has(e),
|
|
1677
1933
|
nullable: a,
|
|
1678
1934
|
...c ? { options: c } : {},
|
|
1679
1935
|
jsonSchema: o
|
|
1680
1936
|
};
|
|
1681
|
-
}),
|
|
1937
|
+
}), nn = (e) => {
|
|
1682
1938
|
try {
|
|
1683
|
-
return
|
|
1939
|
+
return h.make(e);
|
|
1684
1940
|
} catch {
|
|
1685
1941
|
return;
|
|
1686
1942
|
}
|
|
1687
|
-
}, Z = (e) => {
|
|
1688
|
-
let t = At(e);
|
|
1689
|
-
if (t === void 0) return [];
|
|
1690
|
-
let n = t.$defs ?? {}, r = X(t, n), i = r.properties;
|
|
1691
|
-
return i ? kt(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
|
|
1692
1943
|
}, Q = (e) => {
|
|
1693
|
-
let t =
|
|
1944
|
+
let t = nn(e);
|
|
1945
|
+
if (t === void 0) return [];
|
|
1946
|
+
let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
|
|
1947
|
+
return i ? tn(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
|
|
1948
|
+
}, rn = (e) => {
|
|
1949
|
+
let t = nn(e);
|
|
1694
1950
|
if (t === void 0) return [];
|
|
1695
|
-
let n = t.$defs ?? {}, r =
|
|
1951
|
+
let n = t.$defs ?? {}, r = Z(t, n);
|
|
1696
1952
|
if (r.type !== "array") return [];
|
|
1697
1953
|
let i = r.items;
|
|
1698
1954
|
if (!i || typeof i != "object") return [];
|
|
1699
|
-
let a =
|
|
1700
|
-
return o ?
|
|
1701
|
-
},
|
|
1702
|
-
let n =
|
|
1955
|
+
let a = Z(i, n), o = a.properties;
|
|
1956
|
+
return o ? tn(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
|
|
1957
|
+
}, an = (e, t) => {
|
|
1958
|
+
let n = g.decodeUnknownEither(e, { errors: "all" })(t);
|
|
1703
1959
|
if (n._tag === "Right") return {
|
|
1704
1960
|
valid: !0,
|
|
1705
1961
|
errors: {}
|
|
1706
1962
|
};
|
|
1707
1963
|
let r = {};
|
|
1708
|
-
for (let e of
|
|
1964
|
+
for (let e of b.formatErrorSync(n.left)) {
|
|
1709
1965
|
let t = e.path.length === 0 ? "" : String(e.path[0]);
|
|
1710
1966
|
t !== "" && !(t in r) && (r[t] = e.message);
|
|
1711
1967
|
}
|
|
@@ -1713,10 +1969,10 @@ var ve = () => {
|
|
|
1713
1969
|
valid: !1,
|
|
1714
1970
|
errors: r
|
|
1715
1971
|
};
|
|
1716
|
-
},
|
|
1717
|
-
let i =
|
|
1972
|
+
}, on = (e, t, r) => {
|
|
1973
|
+
let i = P(e), a = J(e, t), l = r.schema ?? i.descriptors[t]?.input;
|
|
1718
1974
|
process.env.NODE_ENV !== "production" && l === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
|
|
1719
|
-
let u =
|
|
1975
|
+
let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
|
|
1720
1976
|
p((n) => ({
|
|
1721
1977
|
...n,
|
|
1722
1978
|
[e]: t
|
|
@@ -1730,48 +1986,48 @@ var ve = () => {
|
|
|
1730
1986
|
p(d.current), h({});
|
|
1731
1987
|
}, []), y = n(async () => {
|
|
1732
1988
|
if (l !== void 0) {
|
|
1733
|
-
let e =
|
|
1989
|
+
let e = an(l, f);
|
|
1734
1990
|
if (h(e.errors), !e.valid) return;
|
|
1735
1991
|
}
|
|
1736
|
-
return
|
|
1992
|
+
return a.mutate(f);
|
|
1737
1993
|
}, [
|
|
1738
1994
|
l,
|
|
1739
1995
|
f,
|
|
1740
|
-
|
|
1996
|
+
a
|
|
1741
1997
|
]);
|
|
1742
1998
|
return {
|
|
1743
1999
|
fields: u,
|
|
1744
2000
|
values: f,
|
|
1745
2001
|
errors: m,
|
|
1746
|
-
isValid:
|
|
1747
|
-
pending:
|
|
1748
|
-
submitError:
|
|
1749
|
-
data:
|
|
2002
|
+
isValid: o(() => l === void 0 || an(l, f).valid, [l, f]),
|
|
2003
|
+
pending: a.pending,
|
|
2004
|
+
submitError: a.error,
|
|
2005
|
+
data: a.data,
|
|
1750
2006
|
setValue: g,
|
|
1751
2007
|
setValues: _,
|
|
1752
2008
|
reset: v,
|
|
1753
2009
|
submit: y
|
|
1754
2010
|
};
|
|
1755
|
-
},
|
|
2011
|
+
}, sn = (e, t, n) => e.map((e) => {
|
|
1756
2012
|
let r = String(e[n] ?? ""), i = e[t];
|
|
1757
2013
|
return {
|
|
1758
2014
|
value: r,
|
|
1759
2015
|
label: i == null ? r : String(i)
|
|
1760
2016
|
};
|
|
1761
|
-
}),
|
|
1762
|
-
let
|
|
1763
|
-
|
|
2017
|
+
}), cn = (e, t, r = {}) => {
|
|
2018
|
+
let i = r.debounceMs ?? 200, s = r.labelField ?? "name", l = r.valueField ?? "id", u = r.input ?? ((e) => ({ q: e })), [d, f] = c(r.initialTerm ?? ""), [p, m] = c(d);
|
|
2019
|
+
a(() => {
|
|
1764
2020
|
if (d === p) return;
|
|
1765
|
-
let e = setTimeout(() => m(d),
|
|
2021
|
+
let e = setTimeout(() => m(d), i);
|
|
1766
2022
|
return () => clearTimeout(e);
|
|
1767
2023
|
}, [
|
|
1768
2024
|
d,
|
|
1769
2025
|
p,
|
|
1770
|
-
|
|
2026
|
+
i
|
|
1771
2027
|
]);
|
|
1772
|
-
let h = r.skipUntilTerm === !0 && p.trim() === "", g =
|
|
2028
|
+
let h = r.skipUntilTerm === !0 && p.trim() === "", g = U(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => sn(g.data ?? [], s, l), [
|
|
1773
2029
|
g.data,
|
|
1774
|
-
|
|
2030
|
+
s,
|
|
1775
2031
|
l
|
|
1776
2032
|
]), v = n((e) => f(e), []);
|
|
1777
2033
|
return {
|
|
@@ -1780,13 +2036,13 @@ var ve = () => {
|
|
|
1780
2036
|
term: d,
|
|
1781
2037
|
search: v
|
|
1782
2038
|
};
|
|
1783
|
-
},
|
|
1784
|
-
let i =
|
|
2039
|
+
}, ln = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, un = (e, t, r = {}) => {
|
|
2040
|
+
let i = P(e), [a, s] = c(r.pageSize), l = U(e, t, o(() => a === void 0 ? r.input ?? {} : {
|
|
1785
2041
|
...r.input,
|
|
1786
|
-
limit:
|
|
1787
|
-
}, [r.input,
|
|
1788
|
-
r.pageSize !== void 0 &&
|
|
1789
|
-
}, [r.pageSize]), f =
|
|
2042
|
+
limit: a
|
|
2043
|
+
}, [r.input, a])), u = i.descriptors[t]?.output, d = n(() => {
|
|
2044
|
+
r.pageSize !== void 0 && s((e) => (e ?? r.pageSize) + r.pageSize);
|
|
2045
|
+
}, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : rn(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
|
|
1790
2046
|
m((t) => t?.column === e ? {
|
|
1791
2047
|
column: e,
|
|
1792
2048
|
direction: t.direction === "asc" ? "desc" : "asc"
|
|
@@ -1797,50 +2053,50 @@ var ve = () => {
|
|
|
1797
2053
|
}, []);
|
|
1798
2054
|
return {
|
|
1799
2055
|
columns: f,
|
|
1800
|
-
rows:
|
|
2056
|
+
rows: o(() => {
|
|
1801
2057
|
let e = l.data ?? [];
|
|
1802
2058
|
if (p === void 0) return e;
|
|
1803
2059
|
let t = p.direction === "asc" ? 1 : -1;
|
|
1804
|
-
return [...e].sort((e, n) =>
|
|
2060
|
+
return [...e].sort((e, n) => ln(e[p.column], n[p.column]) * t);
|
|
1805
2061
|
}, [l.data, p]),
|
|
1806
2062
|
loading: l.data === void 0,
|
|
1807
2063
|
error: l.error,
|
|
1808
2064
|
sort: p,
|
|
1809
2065
|
toggleSort: h,
|
|
1810
2066
|
loadMore: d,
|
|
1811
|
-
hasMore:
|
|
2067
|
+
hasMore: a !== void 0 && (l.data?.length ?? 0) >= a
|
|
1812
2068
|
};
|
|
1813
|
-
},
|
|
2069
|
+
}, dn = (e, t, n, r) => {
|
|
1814
2070
|
let i = e.replace(/\/$/, ""), a = new URLSearchParams({
|
|
1815
2071
|
table: t,
|
|
1816
2072
|
id: n
|
|
1817
2073
|
});
|
|
1818
2074
|
return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
|
|
1819
|
-
},
|
|
1820
|
-
let { inspectBaseUrl:
|
|
2075
|
+
}, fn = dn, pn = (e, t, n, r) => {
|
|
2076
|
+
let { inspectBaseUrl: i } = P(e), [o, s] = c({
|
|
1821
2077
|
data: void 0,
|
|
1822
2078
|
loading: !0,
|
|
1823
2079
|
error: void 0
|
|
1824
2080
|
});
|
|
1825
|
-
return
|
|
2081
|
+
return a(() => {
|
|
1826
2082
|
let e = !1;
|
|
1827
|
-
|
|
2083
|
+
s({
|
|
1828
2084
|
data: void 0,
|
|
1829
2085
|
loading: !0,
|
|
1830
2086
|
error: void 0
|
|
1831
2087
|
});
|
|
1832
|
-
let
|
|
1833
|
-
return fetch(
|
|
2088
|
+
let a = dn(i ?? "", t, n, r);
|
|
2089
|
+
return fetch(a).then(async (e) => {
|
|
1834
2090
|
if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
|
|
1835
2091
|
return await e.json();
|
|
1836
2092
|
}).then((t) => {
|
|
1837
|
-
e ||
|
|
2093
|
+
e || s({
|
|
1838
2094
|
data: t,
|
|
1839
2095
|
loading: !1,
|
|
1840
2096
|
error: void 0
|
|
1841
2097
|
});
|
|
1842
2098
|
}).catch((t) => {
|
|
1843
|
-
e ||
|
|
2099
|
+
e || s({
|
|
1844
2100
|
data: void 0,
|
|
1845
2101
|
loading: !1,
|
|
1846
2102
|
error: t
|
|
@@ -1850,24 +2106,24 @@ var ve = () => {
|
|
|
1850
2106
|
};
|
|
1851
2107
|
}, [
|
|
1852
2108
|
e,
|
|
1853
|
-
|
|
2109
|
+
i,
|
|
1854
2110
|
t,
|
|
1855
2111
|
n,
|
|
1856
2112
|
r
|
|
1857
2113
|
]), o;
|
|
1858
|
-
},
|
|
1859
|
-
let { inspectBaseUrl: t } =
|
|
2114
|
+
}, mn = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, hn = (e) => {
|
|
2115
|
+
let { inspectBaseUrl: t } = P(e), [n, r] = c({
|
|
1860
2116
|
manifest: void 0,
|
|
1861
2117
|
loading: !0,
|
|
1862
2118
|
error: void 0
|
|
1863
2119
|
});
|
|
1864
|
-
return
|
|
2120
|
+
return a(() => {
|
|
1865
2121
|
let e = !1;
|
|
1866
2122
|
return r({
|
|
1867
2123
|
manifest: void 0,
|
|
1868
2124
|
loading: !0,
|
|
1869
2125
|
error: void 0
|
|
1870
|
-
}), fetch(
|
|
2126
|
+
}), fetch(mn(t ?? "")).then(async (e) => {
|
|
1871
2127
|
if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
|
|
1872
2128
|
return await e.json();
|
|
1873
2129
|
}).then((t) => {
|
|
@@ -1886,8 +2142,8 @@ var ve = () => {
|
|
|
1886
2142
|
e = !0;
|
|
1887
2143
|
};
|
|
1888
2144
|
}, [e, t]), n;
|
|
1889
|
-
},
|
|
1890
|
-
let n = e.procedures.find((e) => e.kind === "query" &&
|
|
2145
|
+
}, gn = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, _n = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, vn = (e) => e.tables.filter((e) => !e.framework).map((t) => {
|
|
2146
|
+
let n = e.procedures.find((e) => e.kind === "query" && gn(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && _n(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && _n(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && _n(e, t.name, "delete"));
|
|
1891
2147
|
return {
|
|
1892
2148
|
table: t.name,
|
|
1893
2149
|
columns: t.columns,
|
|
@@ -1900,20 +2156,20 @@ var ve = () => {
|
|
|
1900
2156
|
writeScope: `${t.name}:write`,
|
|
1901
2157
|
deleteScope: `${t.name}:delete`
|
|
1902
2158
|
};
|
|
1903
|
-
}),
|
|
1904
|
-
let [t, r] =
|
|
1905
|
-
r((t) => [...t, e]),
|
|
2159
|
+
}), yn = (e) => {
|
|
2160
|
+
let [t, r] = c([]), [i, a] = c([]), s = n((e) => {
|
|
2161
|
+
r((t) => [...t, e]), a([]);
|
|
1906
2162
|
}, []), l = n(async () => {
|
|
1907
2163
|
let n = t[t.length - 1];
|
|
1908
|
-
n === void 0 || n.blockedBy !== void 0 || (await e.onUndo(n.invocationId), r((e) => e.slice(0, -1)),
|
|
2164
|
+
n === void 0 || n.blockedBy !== void 0 || (await e.onUndo(n.invocationId), r((e) => e.slice(0, -1)), a((e) => [...e, n]));
|
|
1909
2165
|
}, [t, e]), u = n(async () => {
|
|
1910
2166
|
let t = i[i.length - 1];
|
|
1911
|
-
t !== void 0 && (await e.onRedo(t.invocationId),
|
|
2167
|
+
t !== void 0 && (await e.onRedo(t.invocationId), a((e) => e.slice(0, -1)), r((e) => [...e, t]));
|
|
1912
2168
|
}, [i, e]);
|
|
1913
|
-
return
|
|
2169
|
+
return o(() => {
|
|
1914
2170
|
let e = t[t.length - 1];
|
|
1915
2171
|
return {
|
|
1916
|
-
record:
|
|
2172
|
+
record: s,
|
|
1917
2173
|
undo: l,
|
|
1918
2174
|
redo: u,
|
|
1919
2175
|
canUndo: t.length > 0 && e?.blockedBy === void 0,
|
|
@@ -1924,12 +2180,12 @@ var ve = () => {
|
|
|
1924
2180
|
}, [
|
|
1925
2181
|
t,
|
|
1926
2182
|
i,
|
|
1927
|
-
|
|
2183
|
+
s,
|
|
1928
2184
|
l,
|
|
1929
2185
|
u
|
|
1930
2186
|
]);
|
|
1931
|
-
},
|
|
1932
|
-
let r = t?.limit, { data: i } =
|
|
2187
|
+
}, bn = "__voltro.undo.log", xn = "__voltro.undo.apply", Sn = "__voltro.undo.redo", Cn = (e, t) => {
|
|
2188
|
+
let r = t?.limit, { data: i } = U(e, bn, r === void 0 ? {} : { limit: r }), a = J(e, xn), o = J(e, Sn), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
|
|
1933
2189
|
await a.mutate({ invocationId: e });
|
|
1934
2190
|
}, [a]), d = n(async (e) => {
|
|
1935
2191
|
await o.mutate({ invocationId: e });
|
|
@@ -1948,13 +2204,13 @@ var ve = () => {
|
|
|
1948
2204
|
undoLast: f,
|
|
1949
2205
|
redoLast: p
|
|
1950
2206
|
};
|
|
1951
|
-
},
|
|
2207
|
+
}, wn = (e, t) => ({
|
|
1952
2208
|
name: e,
|
|
1953
2209
|
map: t
|
|
1954
|
-
}), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t),
|
|
2210
|
+
}), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Tn = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), En = (e, t, n) => {
|
|
1955
2211
|
let r = { ...t };
|
|
1956
2212
|
for (let [i, a] of Object.entries(e.map)) {
|
|
1957
|
-
if (
|
|
2213
|
+
if (Tn.has(i) || a === void 0) continue;
|
|
1958
2214
|
let e = t[i];
|
|
1959
2215
|
r[i] = (...r) => {
|
|
1960
2216
|
let i = $(a, t);
|
|
@@ -1962,8 +2218,8 @@ var ve = () => {
|
|
|
1962
2218
|
};
|
|
1963
2219
|
}
|
|
1964
2220
|
return r;
|
|
1965
|
-
},
|
|
1966
|
-
let r =
|
|
2221
|
+
}, Dn = (e, t, n) => {
|
|
2222
|
+
let r = s({
|
|
1967
2223
|
spec: e,
|
|
1968
2224
|
props: t,
|
|
1969
2225
|
sink: n
|
|
@@ -1972,51 +2228,51 @@ var ve = () => {
|
|
|
1972
2228
|
spec: e,
|
|
1973
2229
|
props: t,
|
|
1974
2230
|
sink: n
|
|
1975
|
-
},
|
|
2231
|
+
}, a(() => {
|
|
1976
2232
|
let e = r.current, t = $(e.spec.map.onMount, e.props);
|
|
1977
2233
|
return t !== null && e.sink(t), () => {
|
|
1978
2234
|
let e = r.current, t = $(e.spec.map.onUnmount, e.props);
|
|
1979
2235
|
t !== null && e.sink(t);
|
|
1980
2236
|
};
|
|
1981
|
-
}, []),
|
|
2237
|
+
}, []), o(() => En(e, t, n), [
|
|
1982
2238
|
e,
|
|
1983
2239
|
t,
|
|
1984
2240
|
n
|
|
1985
2241
|
]);
|
|
1986
|
-
},
|
|
1987
|
-
let n =
|
|
1988
|
-
return
|
|
1989
|
-
},
|
|
1990
|
-
let n =
|
|
1991
|
-
return
|
|
1992
|
-
},
|
|
2242
|
+
}, On = (e, t) => {
|
|
2243
|
+
let n = P(e).descriptors[t]?.input;
|
|
2244
|
+
return o(() => n === void 0 ? [] : Q(n), [n]);
|
|
2245
|
+
}, kn = (e, t) => {
|
|
2246
|
+
let n = P(e).descriptors[t]?.output;
|
|
2247
|
+
return o(() => n === void 0 ? [] : rn(n), [n]);
|
|
2248
|
+
}, An = (e, t) => {
|
|
1993
2249
|
if (e === t) return !0;
|
|
1994
2250
|
if (e.length !== t.length) return !1;
|
|
1995
2251
|
for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
|
|
1996
2252
|
return !0;
|
|
1997
|
-
},
|
|
1998
|
-
let n =
|
|
1999
|
-
return (n.current === null || !
|
|
2253
|
+
}, jn = (e) => Object.keys(e).sort().map((t) => e[t]), Mn = (e, t) => {
|
|
2254
|
+
let n = s(null), r = jn(e);
|
|
2255
|
+
return (n.current === null || !An(n.current.key, r)) && (n.current = {
|
|
2000
2256
|
key: r,
|
|
2001
2257
|
value: t(e)
|
|
2002
2258
|
}), n.current.value;
|
|
2003
|
-
},
|
|
2004
|
-
function
|
|
2005
|
-
return t(
|
|
2259
|
+
}, Nn = "admin:full", Pn = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Fn = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), In = e({ scopes: [] });
|
|
2260
|
+
function Ln(e) {
|
|
2261
|
+
return t(In.Provider, { value: { scopes: e.scopes } }, e.children);
|
|
2006
2262
|
}
|
|
2007
|
-
var
|
|
2008
|
-
let i =
|
|
2009
|
-
return
|
|
2263
|
+
var Rn = () => r(In), zn = (e) => Pn(Rn().scopes, e), Bn = (e) => Fn(Rn().scopes, e), Vn = (e, t, n, r = {}) => {
|
|
2264
|
+
let i = U(e, t, { ...n }, r);
|
|
2265
|
+
return o(() => ({
|
|
2010
2266
|
allowed: i.data?.allowed === !0,
|
|
2011
2267
|
pending: i.data === void 0
|
|
2012
2268
|
}), [i.data]);
|
|
2013
|
-
},
|
|
2014
|
-
let i =
|
|
2015
|
-
return
|
|
2269
|
+
}, Hn = (e, t, n, r = {}) => {
|
|
2270
|
+
let i = U(e, t, { ...n }, r);
|
|
2271
|
+
return o(() => ({
|
|
2016
2272
|
allowedIds: new Set(i.data?.allowedIds ?? []),
|
|
2017
2273
|
pending: i.data === void 0
|
|
2018
2274
|
}), [i.data]);
|
|
2019
|
-
},
|
|
2275
|
+
}, Un = (e) => {
|
|
2020
2276
|
switch (e) {
|
|
2021
2277
|
case "select":
|
|
2022
2278
|
case "radio":
|
|
@@ -2032,28 +2288,28 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2032
2288
|
case "switch": return "boolean";
|
|
2033
2289
|
default: return null;
|
|
2034
2290
|
}
|
|
2035
|
-
},
|
|
2036
|
-
let t =
|
|
2291
|
+
}, Wn = (e) => Q(e).map((e) => {
|
|
2292
|
+
let t = Un(e.widget);
|
|
2037
2293
|
return t === null ? null : {
|
|
2038
2294
|
name: e.name,
|
|
2039
2295
|
label: e.label,
|
|
2040
2296
|
kind: t,
|
|
2041
2297
|
...e.options ? { options: e.options } : {}
|
|
2042
2298
|
};
|
|
2043
|
-
}).filter((e) => e !== null),
|
|
2299
|
+
}).filter((e) => e !== null), Gn = (e) => {
|
|
2044
2300
|
let t = {};
|
|
2045
2301
|
for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
|
|
2046
2302
|
return t;
|
|
2047
|
-
},
|
|
2048
|
-
let i =
|
|
2049
|
-
l((n) =>
|
|
2303
|
+
}, Kn = (e, t, r = {}) => {
|
|
2304
|
+
let i = P(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : Wn(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
|
|
2305
|
+
l((n) => Gn({
|
|
2050
2306
|
...n,
|
|
2051
2307
|
[e]: t
|
|
2052
2308
|
}));
|
|
2053
|
-
}, []), d = n(() => l({}), []), f =
|
|
2309
|
+
}, []), d = n(() => l({}), []), f = U(e, t, o(() => Gn(s), [s]));
|
|
2054
2310
|
return {
|
|
2055
|
-
filters:
|
|
2056
|
-
values:
|
|
2311
|
+
filters: a,
|
|
2312
|
+
values: s,
|
|
2057
2313
|
setFilter: u,
|
|
2058
2314
|
clear: d,
|
|
2059
2315
|
rows: f.data ?? [],
|
|
@@ -2061,20 +2317,20 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2061
2317
|
loading: f.data === void 0,
|
|
2062
2318
|
error: f.error
|
|
2063
2319
|
};
|
|
2064
|
-
},
|
|
2065
|
-
let r =
|
|
2320
|
+
}, qn = (e, t, n = {}) => {
|
|
2321
|
+
let r = U(e, t, n), i = r.data;
|
|
2066
2322
|
return {
|
|
2067
2323
|
record: Array.isArray(i) ? i[0] : i,
|
|
2068
2324
|
loading: i === void 0,
|
|
2069
2325
|
error: r.error
|
|
2070
2326
|
};
|
|
2071
|
-
},
|
|
2072
|
-
let [n, r] =
|
|
2073
|
-
return
|
|
2327
|
+
}, Jn = (e, t = 300) => {
|
|
2328
|
+
let [n, r] = c(e);
|
|
2329
|
+
return a(() => {
|
|
2074
2330
|
let n = setTimeout(() => r(e), t);
|
|
2075
2331
|
return () => clearTimeout(n);
|
|
2076
2332
|
}, [e, t]), n;
|
|
2077
|
-
},
|
|
2333
|
+
}, Yn = (e) => {
|
|
2078
2334
|
let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
|
|
2079
2335
|
if (a && t.trim() === "") return {
|
|
2080
2336
|
status: "idle",
|
|
@@ -2092,39 +2348,39 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2092
2348
|
valid: o.valid,
|
|
2093
2349
|
message: o.message
|
|
2094
2350
|
};
|
|
2095
|
-
},
|
|
2096
|
-
let { input: i, interpret:
|
|
2097
|
-
return
|
|
2351
|
+
}, Xn = (e, t, n, r) => {
|
|
2352
|
+
let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = Jn(n, s), u = c && l.trim() === "", d = U(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
|
|
2353
|
+
return Yn({
|
|
2098
2354
|
value: n,
|
|
2099
2355
|
debouncedValue: l,
|
|
2100
2356
|
data: u ? null : d.data,
|
|
2101
|
-
interpret:
|
|
2357
|
+
interpret: a,
|
|
2102
2358
|
skipEmpty: c
|
|
2103
2359
|
});
|
|
2104
|
-
},
|
|
2360
|
+
}, Zn = (e, t) => ({
|
|
2105
2361
|
name: e,
|
|
2106
2362
|
payload: t
|
|
2107
|
-
}),
|
|
2108
|
-
let n =
|
|
2363
|
+
}), Qn = (e, t) => {
|
|
2364
|
+
let n = g.decodeUnknownEither(e.payload, { errors: "all" })(t);
|
|
2109
2365
|
if (n._tag === "Right") return {
|
|
2110
2366
|
valid: !0,
|
|
2111
2367
|
errors: {}
|
|
2112
2368
|
};
|
|
2113
2369
|
let r = {};
|
|
2114
|
-
for (let e of
|
|
2370
|
+
for (let e of b.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
|
|
2115
2371
|
return {
|
|
2116
2372
|
valid: !1,
|
|
2117
2373
|
errors: r
|
|
2118
2374
|
};
|
|
2119
|
-
},
|
|
2375
|
+
}, $n = (e) => {
|
|
2120
2376
|
let t = new Map(e.map((e) => [e.name, e]));
|
|
2121
2377
|
return {
|
|
2122
2378
|
names: [...t.keys()].sort(),
|
|
2123
2379
|
get: (e) => t.get(e),
|
|
2124
2380
|
events: e
|
|
2125
2381
|
};
|
|
2126
|
-
},
|
|
2127
|
-
let n =
|
|
2382
|
+
}, er = (e, t) => {
|
|
2383
|
+
let n = $n(e);
|
|
2128
2384
|
return {
|
|
2129
2385
|
track: (e, r) => {
|
|
2130
2386
|
let i = n.get(e);
|
|
@@ -2133,7 +2389,7 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2133
2389
|
return;
|
|
2134
2390
|
}
|
|
2135
2391
|
if (process.env.NODE_ENV !== "production") {
|
|
2136
|
-
let t =
|
|
2392
|
+
let t = Qn(i, r);
|
|
2137
2393
|
t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
|
|
2138
2394
|
}
|
|
2139
2395
|
t({
|
|
@@ -2144,44 +2400,44 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2144
2400
|
names: n.names,
|
|
2145
2401
|
catalog: n
|
|
2146
2402
|
};
|
|
2147
|
-
},
|
|
2148
|
-
let r =
|
|
2403
|
+
}, tr = (e, t) => {
|
|
2404
|
+
let r = Y(e, t);
|
|
2149
2405
|
return {
|
|
2150
2406
|
preview: n((e) => r.run(e), [r]),
|
|
2151
2407
|
diff: r.lastResult,
|
|
2152
2408
|
pending: r.pending,
|
|
2153
2409
|
error: r.error
|
|
2154
2410
|
};
|
|
2155
|
-
},
|
|
2411
|
+
}, nr = (e, t, n, r) => [...e, {
|
|
2156
2412
|
id: t,
|
|
2157
2413
|
tag: n,
|
|
2158
2414
|
input: r,
|
|
2159
2415
|
status: "pending",
|
|
2160
2416
|
attempts: 0
|
|
2161
|
-
}],
|
|
2417
|
+
}], rr = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2162
2418
|
...e,
|
|
2163
2419
|
...n
|
|
2164
|
-
} : e),
|
|
2420
|
+
} : e), ir = (e, t) => rr(e, t, { status: "sent" }), ar = (e, t, n) => e.map((e) => e.id === t ? {
|
|
2165
2421
|
...e,
|
|
2166
2422
|
status: "failed",
|
|
2167
2423
|
error: n,
|
|
2168
2424
|
attempts: e.attempts + 1
|
|
2169
|
-
} : e),
|
|
2425
|
+
} : e), or = (e, t, n) => rr(e, t, {
|
|
2170
2426
|
status: "conflict",
|
|
2171
2427
|
error: n
|
|
2172
|
-
}),
|
|
2428
|
+
}), sr = (e) => e.filter((e) => e.status !== "sent"), cr = (e) => {
|
|
2173
2429
|
let t = [];
|
|
2174
2430
|
for (let n of e) {
|
|
2175
2431
|
if (n.status === "conflict") break;
|
|
2176
2432
|
(n.status === "pending" || n.status === "failed") && t.push(n);
|
|
2177
2433
|
}
|
|
2178
2434
|
return t;
|
|
2179
|
-
},
|
|
2435
|
+
}, lr = (e) => {
|
|
2180
2436
|
let t = e;
|
|
2181
2437
|
return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
|
|
2182
|
-
},
|
|
2183
|
-
let [t, n] =
|
|
2184
|
-
return
|
|
2438
|
+
}, ur = (e) => {
|
|
2439
|
+
let [t, n] = c(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
|
|
2440
|
+
return a(() => {
|
|
2185
2441
|
if (e !== void 0) {
|
|
2186
2442
|
n(e);
|
|
2187
2443
|
return;
|
|
@@ -2192,34 +2448,34 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2192
2448
|
window.removeEventListener("online", t), window.removeEventListener("offline", r);
|
|
2193
2449
|
};
|
|
2194
2450
|
}, [e]), t;
|
|
2195
|
-
},
|
|
2196
|
-
let { send: t, isConflict: r =
|
|
2197
|
-
d.current =
|
|
2198
|
-
let f =
|
|
2199
|
-
let n =
|
|
2200
|
-
l((r) =>
|
|
2201
|
-
}, [
|
|
2202
|
-
for (let e of
|
|
2203
|
-
await t(e), l((t) =>
|
|
2451
|
+
}, dr = (e) => {
|
|
2452
|
+
let { send: t, isConflict: r = lr, idFor: i } = e, [o, l] = c([]), u = ur(e.online), d = s(o);
|
|
2453
|
+
d.current = o;
|
|
2454
|
+
let f = s(0), p = n((e, t) => {
|
|
2455
|
+
let n = i?.() ?? `obx_${f.current++}_${e}`;
|
|
2456
|
+
l((r) => nr(r, n, e, t));
|
|
2457
|
+
}, [i]), m = n(async () => {
|
|
2458
|
+
for (let e of cr(d.current)) try {
|
|
2459
|
+
await t(e), l((t) => ir(t, e.id));
|
|
2204
2460
|
} catch (t) {
|
|
2205
2461
|
if (r(t)) {
|
|
2206
|
-
l((n) =>
|
|
2462
|
+
l((n) => or(n, e.id, t));
|
|
2207
2463
|
break;
|
|
2208
2464
|
}
|
|
2209
|
-
l((n) =>
|
|
2465
|
+
l((n) => ar(n, e.id, t));
|
|
2210
2466
|
}
|
|
2211
2467
|
}, [t, r]);
|
|
2212
|
-
return
|
|
2468
|
+
return a(() => {
|
|
2213
2469
|
u && m();
|
|
2214
2470
|
}, [u, m]), {
|
|
2215
|
-
queue:
|
|
2471
|
+
queue: o,
|
|
2216
2472
|
enqueue: p,
|
|
2217
2473
|
replay: m,
|
|
2218
2474
|
online: u,
|
|
2219
|
-
pending:
|
|
2220
|
-
conflicts:
|
|
2475
|
+
pending: o.filter((e) => e.status === "pending" || e.status === "failed").length,
|
|
2476
|
+
conflicts: o.filter((e) => e.status === "conflict")
|
|
2221
2477
|
};
|
|
2222
|
-
},
|
|
2478
|
+
}, fr = (e) => {
|
|
2223
2479
|
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);
|
|
2224
2480
|
return {
|
|
2225
2481
|
startIndex: l,
|
|
@@ -2229,20 +2485,20 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2229
2485
|
topSpacer: l * r,
|
|
2230
2486
|
bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
|
|
2231
2487
|
};
|
|
2232
|
-
},
|
|
2233
|
-
let { rowHeight: i, viewportHeight:
|
|
2488
|
+
}, pr = (e, t, r) => {
|
|
2489
|
+
let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => fr({
|
|
2234
2490
|
scrollTop: d,
|
|
2235
|
-
viewportHeight:
|
|
2491
|
+
viewportHeight: a,
|
|
2236
2492
|
rowHeight: i,
|
|
2237
|
-
...
|
|
2493
|
+
...s === void 0 ? {} : { overscan: s },
|
|
2238
2494
|
...l === void 0 ? {} : { total: l }
|
|
2239
2495
|
}), [
|
|
2240
2496
|
d,
|
|
2241
|
-
|
|
2497
|
+
a,
|
|
2242
2498
|
i,
|
|
2243
|
-
|
|
2499
|
+
s,
|
|
2244
2500
|
l
|
|
2245
|
-
]), m =
|
|
2501
|
+
]), m = U(e, t, o(() => ({
|
|
2246
2502
|
...u,
|
|
2247
2503
|
offset: p.offset,
|
|
2248
2504
|
limit: p.limit
|
|
@@ -2262,19 +2518,19 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2262
2518
|
loading: m.data === void 0,
|
|
2263
2519
|
error: m.error
|
|
2264
2520
|
};
|
|
2265
|
-
},
|
|
2266
|
-
let { errorBus: t } =
|
|
2267
|
-
|
|
2521
|
+
}, mr = () => typeof navigator > "u" || navigator.onLine, hr = (e) => {
|
|
2522
|
+
let { errorBus: t } = P(e), [r, i] = c(mr), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
|
|
2523
|
+
a(() => (f.current = !0, () => {
|
|
2268
2524
|
f.current = !1;
|
|
2269
|
-
}), []),
|
|
2525
|
+
}), []), a(() => {
|
|
2270
2526
|
if (typeof window > "u") return;
|
|
2271
2527
|
let e = () => {
|
|
2272
|
-
|
|
2273
|
-
}, t = () =>
|
|
2528
|
+
i(!0), l(0);
|
|
2529
|
+
}, t = () => i(!1);
|
|
2274
2530
|
return window.addEventListener("online", e), window.addEventListener("offline", t), () => {
|
|
2275
2531
|
window.removeEventListener("online", e), window.removeEventListener("offline", t);
|
|
2276
2532
|
};
|
|
2277
|
-
}, []),
|
|
2533
|
+
}, []), a(() => {
|
|
2278
2534
|
if (t?.on) return t.on(() => {
|
|
2279
2535
|
f.current && (l((e) => e + 1), d(Date.now()));
|
|
2280
2536
|
});
|
|
@@ -2283,13 +2539,13 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2283
2539
|
l(0);
|
|
2284
2540
|
}, []);
|
|
2285
2541
|
return {
|
|
2286
|
-
status: r ?
|
|
2542
|
+
status: r ? o > 0 ? "degraded" : "connected" : "offline",
|
|
2287
2543
|
online: r,
|
|
2288
|
-
failureCount:
|
|
2544
|
+
failureCount: o,
|
|
2289
2545
|
lastFailureAt: u,
|
|
2290
2546
|
reportSuccess: p
|
|
2291
2547
|
};
|
|
2292
|
-
},
|
|
2548
|
+
}, gr = "__voltro.connections.list", _r = "__voltro.connections.start", vr = "__voltro.connections.submitToken", yr = "__voltro.connections.disconnect", br = {
|
|
2293
2549
|
connectionId: "",
|
|
2294
2550
|
kind: "oauth2",
|
|
2295
2551
|
label: "",
|
|
@@ -2300,14 +2556,14 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2300
2556
|
expiresAt: null,
|
|
2301
2557
|
lastError: null,
|
|
2302
2558
|
connectedAt: null
|
|
2303
|
-
},
|
|
2559
|
+
}, xr = (e, t) => {
|
|
2304
2560
|
if (t === "redirect") {
|
|
2305
2561
|
globalThis.location.assign(e);
|
|
2306
2562
|
return;
|
|
2307
2563
|
}
|
|
2308
2564
|
globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
|
|
2309
|
-
},
|
|
2310
|
-
let { data: t } =
|
|
2565
|
+
}, Sr = (e) => {
|
|
2566
|
+
let { data: t } = U(e, gr, {}), r = Y(e, _r), i = J(e, vr), a = J(e, yr), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
|
|
2311
2567
|
...e,
|
|
2312
2568
|
connected: e.status === "connected",
|
|
2313
2569
|
needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
|
|
@@ -2315,7 +2571,7 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2315
2571
|
connect: async (t) => {
|
|
2316
2572
|
if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
|
|
2317
2573
|
let n = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
|
|
2318
|
-
|
|
2574
|
+
xr((await r.run({
|
|
2319
2575
|
connectionId: e.connectionId,
|
|
2320
2576
|
redirectTo: n
|
|
2321
2577
|
})).authorizeUrl, t?.mode);
|
|
@@ -2345,10 +2601,10 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2345
2601
|
get: l,
|
|
2346
2602
|
pending: s
|
|
2347
2603
|
};
|
|
2348
|
-
},
|
|
2349
|
-
let n =
|
|
2350
|
-
return
|
|
2351
|
-
...
|
|
2604
|
+
}, Cr = (e, t) => {
|
|
2605
|
+
let n = Sr(e), r = n.get(t);
|
|
2606
|
+
return o(() => r === void 0 ? {
|
|
2607
|
+
...br,
|
|
2352
2608
|
connectionId: t,
|
|
2353
2609
|
label: t,
|
|
2354
2610
|
connected: !1,
|
|
@@ -2373,6 +2629,6 @@ var dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes
|
|
|
2373
2629
|
n.loading,
|
|
2374
2630
|
n.pending
|
|
2375
2631
|
]);
|
|
2376
|
-
},
|
|
2632
|
+
}, wr = "framework-client";
|
|
2377
2633
|
//#endregion
|
|
2378
|
-
export {
|
|
2634
|
+
export { Nn as ADMIN_SCOPE, wr as CLIENT_NAME, gr as CONNECTIONS_LIST_TAG, yr as CONNECTION_DISCONNECT_TAG, _r as CONNECTION_START_TAG, vr as CONNECTION_SUBMIT_TOKEN_TAG, ce as FrameworkRuntimesContext, me as FrameworkRuntimesProvider, oe as LoadingSubscriptionCache, Ln as PermissionProvider, se as RpcErrorBus, ae as SubscriptionCache, xn as UNDO_APPLY_TAG, bn as UNDO_LOG_TAG, Sn as UNDO_REDO_TAG, fe as _resetFrameworkRuntimesWarning, Pe as applyStoreSeeds, Pn as canCall, Fn as canCallAny, qe as clearMutations, sr as clearSent, Te as clearStoreHistory, fr as computeWindow, er as createAnalytics, Zn as defineEvent, ke as defineStore, wn as defineTracking, Oe as definedStores, vn as deriveEntityAdmins, nr as enqueueEntry, $n as eventCatalog, Wn as filtersFromSchema, Xe as getMutationNotifier, Ge as getMutations, je as makeStoreSeedBag, mn as manifestUrl, or as markConflict, ar as markFailed, ir as markSent, fn as provenanceUrl, Gt as publishClientError, S as publishClientTrace, cr as replayable, qt as reportClientError, Ae as resetStoreRegistryForTests, H as resolveByTag, $ as resolveTrackingEvent, Ft as resumableConsumeProgram, sn as rowsToOptions, Re as runSequence, rn as schemaToColumns, Q as schemaToFields, Ne as seedStore, Le as sequence, Ye as setMutationNotifier, Me as setStoreSeedResolver, K as settleMutation, F as shallow, An as shallowArrayEqual, jn as sourceValues, A as ssrClientProxy, ue as ssrStubHandle, w as stableKey, We as startMutation, Ce as storeHistory, Kt as subscribeClientErrors, C as subscribeClientTraces, Ke as subscribeMutations, we as subscribeStoreHistory, Ee as travelToStoreState, Y as useAction, Vt as useAgent, Bt as useAgentChat, Pt as useAgentStream, Xn as useAsyncValidation, zn as useCan, Bn as useCanAny, hn as useCapabilityManifest, Cr as useConnection, hr as useConnectionStatus, Sr as useConnections, Ht as useDataCopilot, un as useDataTable, Jn as useDebounced, Mn as useDerived, on as useFormBinding, On as useFormSkeleton, P as useFrameworkApi, pe as useFrameworkRuntimes, J as useMutation, Jt as useOnRpcError, dr as useOutbox, Rn as usePermissions, tr as usePreview, pn as useProvenance, cn as useQueryField, Kn as useQueryFilters, qn as useRecord, Ut as useRefreshSubscriptions, Vn as useResourceCan, Hn as useResourceCans, Lt as useResumableAgentStream, ze as useSequence, U as useSubscription, kn as useTableSkeleton, Dn as useTracking, yn as useUndo, Cn as useUndoLog, _t as useUpload, pr as useWindowedSubscription, vt as useWorkflow, Et as useWorkflowDomainEvents, Dt as useWorkflowEventDeliveries, Tt as useWorkflowEvents, xt as useWorkflowRun, wt as useWorkflowRunEvents, Nt as useWorkflowRunState, Ct as useWorkflowRunSteps, St as useWorkflowRuns, yt as useWorkflowSignal, bt as useWorkflowUpdate, Qn as validateEventPayload, an as validateFields, Yn as validationStatus, En as wrapTrackedCallbacks };
|