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