@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/dist/index.js CHANGED
@@ -1,25 +1,25 @@
1
- import { createContext as e, createElement as t, useCallback as n, useContext as r, useEffect as i, useMemo as a, useRef as o, useState as s, useSyncExternalStore as c } from "react";
2
- import { Cause as l, Duration as u, Effect as d, Exit as f, Fiber as p, JSONSchema as m, Schema as h, Stream as g } from "effect";
3
- import { applyRowPatch as _ } from "@voltro/protocol";
4
- import { jsx as v } from "react/jsx-runtime";
5
- import { ArrayFormatter as y } from "effect/ParseResult";
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 b = /* @__PURE__ */ new Set(), x = (e) => {
8
- for (let t of b) try {
7
+ var x = /* @__PURE__ */ new Set(), S = (e) => {
8
+ for (let t of x) try {
9
9
  t(e);
10
10
  } catch {}
11
- }, S = (e) => (b.add(e), () => {
12
- b.delete(e);
13
- }), C = (e) => {
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
- }, w = Object.freeze({
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
- }), T = 5e3, E = 0, ee = () => `patch_${++E}`, D = (e, t) => {
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
- }, te = (e, t) => {
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 = te(e, t);
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 = te(e, t);
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 = te(e, t);
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 = C(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(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 = C(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(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: ee(),
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), T);
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(C(e));
198
+ return this.getSnapshot(w(e));
199
199
  }
200
200
  getEntry(e) {
201
- return this.entries.get(C(e));
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(p.interrupt(t.fiber));
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(p.interrupt(t.fiber)), t.fiber = null;
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 = g.unwrapScoped(d.currentSpan.pipe(d.catchAll(() => d.succeed(void 0)), d.map((t) => (t && (e.traceId = t.traceId, x({
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(g.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } }));
276
- e.fiber = n.runFork(a.pipe(g.runForEach((t) => d.sync(() => {
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 = l.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
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 = _(n, t.patch)), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
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 (f.isFailure(t) && !f.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
286
- let n = l.squash(t.cause);
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 w;
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 && d.runFork(p.interrupt(t.fiber)), this.entries.delete(e));
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
- }, k = new Proxy(() => ue(), {
349
- get: (e, t) => k,
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: k,
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
- }, A = !1, j = !1, M = null, pe = () => {
363
- A = !1, j = !1, M !== null && (clearTimeout(M), M = null);
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 ? (j || (j = !0, M !== null && (clearTimeout(M), M = null)), e) : (typeof window < "u" && !A && !j && M === null && process.env.NODE_ENV !== "production" && (M = setTimeout(() => {
367
- M = null, !(A || j) && (A = !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>."));
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
- }, N = (e) => me().get(e), he = ({ apis: e, children: t }) => {
370
- let n = a(() => ({
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__ */ v(le.Provider, {
381
+ return /* @__PURE__ */ y(le.Provider, {
382
382
  value: n,
383
383
  children: t
384
384
  });
385
- }, P = (e, t) => {
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
- }, ge = Object.freeze({
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
- }), _e = () => ge;
411
- function F(e, t, r = {}, i = {}) {
412
- let s = i.skip === !0, { runtime: l, cache: u, client: d, descriptors: f } = N(e), p = f[t]?.source, m = o(r);
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 = o(d);
674
+ let h = s(d);
415
675
  h.current = d;
416
- let g = o(() => P(h.current, t)(m.current)), _ = a(() => [t, m.current], [t, a(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r])]), v = c(n((e) => s ? () => {} : u.subscribe(_, g.current, l, e, p === void 0 ? {} : { source: p }).unsubscribe, [
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
- l,
678
+ c,
419
679
  p,
420
- s,
680
+ a,
421
681
  _
422
- ]), n(() => s ? ge : u.peek(_), [
682
+ ]), n(() => a ? Ie : u.peek(_), [
423
683
  u,
424
- s,
684
+ a,
425
685
  _
426
- ]), _e), y = v.data !== void 0, b = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), x = {
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: s,
698
+ idle: a,
439
699
  isEmpty: y ? b : e
440
700
  };
441
701
  }
442
- return i.fallback === void 0 ? s ? {
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 && !s,
464
- idle: s,
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 ve = () => {
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
- }, ye = async (e, t = {}) => {
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
- }, be = (e = {}) => {
543
- let [t, r] = s(!1), [i, a] = s(void 0), [c, l] = s(void 0), u = o(e);
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 ye(e, {
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: c
819
+ failedStep: o
560
820
  };
561
- }, xe = 100, I = [], L = /* @__PURE__ */ new Set(), Se = [], Ce = () => {
562
- Se = I.slice();
563
- }, R = () => {
564
- Ce();
565
- for (let e of L) try {
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
- }, z = (e) => {
828
+ }, Ge = (e) => {
569
829
  let t = {
570
830
  ...e,
571
831
  status: "pending",
572
832
  startedAt: Date.now()
573
833
  };
574
- I.unshift(t), I.length > xe && (I.length = xe), R();
575
- }, B = (e, t) => {
576
- let n = I.findIndex((t) => t.id === e);
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 = I[n], i = Date.now();
579
- I[n] = t.status === "success" ? {
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
- }, R();
592
- }, we = () => Se, Te = (e) => (L.add(e), () => {
593
- L.delete(e);
594
- }), Ee = () => {
595
- I.length !== 0 && (I.length = 0, R());
596
- }, De = (e, t) => {
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
- }, V, Oe = (e) => {
607
- V = e;
608
- }, H = () => V, ke = (e, t, n) => typeof e == "function" ? e(t, n) : e, Ae = 0, je = () => `mut_${++Ae}`, Me = (e, t) => ({
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
- }), U = (e, t) => {
614
- let { runtime: r, cache: i, client: c, descriptors: l, errorBus: u } = N(e), f = l[t], p = f?.targets;
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 = f?.kind;
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] = s(!1), [g, _] = s(void 0), [v, y] = s(void 0), b = o(null), S = o(!1), C = n(async (n, a) => {
620
- let o = a?.onError !== void 0 || a?.notify?.error !== void 0, s = (e) => {
621
- a?.onError?.(e, n);
622
- let t = ke(a?.notify?.error, e, n);
623
- t !== void 0 && V?.error(t);
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 = je();
627
- z({
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 f = b.current, m = S.current;
634
- if (f) try {
635
- f(Me(i, l), n);
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), B(l, {
897
+ if (_(e), h(!1), i.revertByMutation(l), K(l, {
638
898
  status: "error",
639
899
  error: e
640
- }), o) return s(e);
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 o = P(c, t), s = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
647
- g = e.traceId, x({
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
- })), d.catchAll(() => d.void), d.zipRight(o(n))).pipe(d.withSpan(`client.mutation.${t}`, { attributes: {
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(s);
658
- y(u), B(l, {
917
+ } })), u = await r.runPromise(c);
918
+ y(u), K(l, {
659
919
  status: "success",
660
920
  output: u
661
- }), i.confirmByMutation(l), a?.onSuccess?.(u, n);
662
- let f = ke(a?.notify?.success, u, n);
663
- return f !== void 0 && V?.success(f), u;
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 = De(e, g);
666
- if (_(n), B(l, {
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
- }), o) return s(n);
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
- c,
942
+ a,
683
943
  e,
684
944
  t,
685
945
  p
686
946
  ]);
687
- return a(() => {
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: () => (S.current = !0, e)
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
- }, Ne = (e, t) => {
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
- }, Pe = (e, t, n) => typeof e == "function" ? e(t, n) : e, Fe = 0, Ie = () => `act_${++Fe}`, W = (e, t) => {
714
- let { runtime: r, client: i, descriptors: o, errorBus: c } = N(e);
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 = o[t]?.kind;
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] = s(!1), [f, p] = s(void 0), [m, h] = s(void 0), g = n(async (n, a) => {
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 s = Ie();
723
- z({
724
- id: s,
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 = P(i, t), c = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
732
- l = e.traceId, x({
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
- })), d.catchAll(() => d.void), d.zipRight(o(n))).pipe(d.withSpan(`client.action.${t}`, { attributes: {
998
+ })), f.catchAll(() => f.void), f.zipRight(o(n))).pipe(f.withSpan(`client.action.${t}`, { attributes: {
739
999
  "voltro.api": e,
740
- "voltro.actionId": s,
1000
+ "voltro.actionId": c,
741
1001
  "rpc.tag": t
742
- } })), u = await r.runPromise(c);
743
- h(u), B(s, {
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 f = Pe(a?.notify?.success, u, n);
748
- return f !== void 0 && H()?.success(f), u;
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 = Ne(e, l);
751
- if (p(r), B(s, {
1010
+ let r = nt(e, l);
1011
+ if (p(r), K(c, {
752
1012
  status: "error",
753
1013
  error: r
754
- }), c.emit({
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 = Pe(a?.notify?.error, r, n);
762
- e !== void 0 && H()?.error(e);
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
- c
1034
+ s
775
1035
  ]);
776
- return a(() => ({
1036
+ return o(() => ({
777
1037
  run: g,
778
1038
  pending: l,
779
- error: f,
1039
+ error: d,
780
1040
  lastResult: m
781
1041
  }), [
782
1042
  g,
783
1043
  l,
784
- f,
1044
+ d,
785
1045
  m
786
1046
  ]);
787
- }, G = "storage.mintUploadTicket", Le = "storage.mintPresignedUpload", Re = "storage.finalizeUpload", ze = "storage.beginResumableUpload", Be = "storage.beginMultipartUpload", Ve = "storage.signMultipartPart", He = "storage.completeMultipartUpload", Ue = "storage.abortMultipartUpload", We = (e, t, n, r) => new Promise((i, a) => {
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
- }), Ge = (e, t, n, r, i, a) => new Promise((o, s) => {
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
- }), Ke = (e, t, n, r, i) => new Promise((a, o) => {
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
- }), qe = (e, t, n, r, i) => new Promise((a, o) => {
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
- }), Je = (e, t = {}) => {
847
- let { runtime: r, client: i, inspectBaseUrl: c, errorBus: l } = N(e), [u, d] = s(0), [f, p] = s("idle"), [m, h] = s(void 0), g = o(null), _ = n(() => {
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 : `${c}${e}`, [c]), b = n(async (e, n, a, o) => {
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 ?? G, l = P(i, s), u = await r.runPromise(l({
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 qe(y(u.uploadUrl), c, e, o, a);
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 ?? Le, l = n.finalizeTag ?? t.finalizeTag ?? Re, u;
1134
+ let s = n.presignMintTag ?? t.presignMintTag ?? st, l = n.finalizeTag ?? t.finalizeTag ?? ct, u;
875
1135
  try {
876
- let e = P(i, s);
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 Ke(u.uploadUrl, c, e, o, a);
885
- let d = P(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
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 ?? ze, l = P(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
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 Ge(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
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 ?? Be, u = n.multipartSignTag ?? t.multipartSignTag ?? Ve, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? He, f = n.multipartAbortTag ?? t.multipartAbortTag ?? Ue, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
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 = P(i, s);
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 _ = P(i, u), v = P(i, d), b = P(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;
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 We(e, s, (e) => o((T + e * l) / p), a);
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 ?? G,
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 ?? G,
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 = a(() => ({
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 a(() => ({
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
- }, K = async (e) => {
1079
- let t = P(e.client, e.tag), n = d.currentSpan.pipe(d.tap((t) => d.sync(() => {
1080
- x({
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
- })), d.catchAll(() => d.void), d.zipRight(t(e.input)), d.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
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
- }, Ye = (e, t) => {
1092
- let { runtime: r, client: i, descriptors: o } = N(e);
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 = o[t]?.kind;
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 [c, l] = s(!1), [u, d] = s(void 0), [f, p] = s(void 0), m = n(async (n) => {
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 K({
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 K({
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 K({
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) => K({
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) => K({
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 a(() => ({
1437
+ return o(() => ({
1178
1438
  start: m,
1179
1439
  cancel: h,
1180
1440
  resume: g,
1181
1441
  signal: _,
1182
1442
  update: v,
1183
- pending: c,
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
- c,
1452
+ s,
1193
1453
  u,
1194
1454
  f
1195
1455
  ]);
1196
- }, Xe = (e) => {
1197
- let { runtime: t, client: r } = N(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a) => {
1198
- o(!0), l(void 0);
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 o = await K({
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
- ...a === void 0 ? {} : { payload: a }
1468
+ ...o === void 0 ? {} : { payload: o }
1209
1469
  },
1210
1470
  spanPrefix: "client.workflow.signal"
1211
1471
  });
1212
- return d(o), o;
1472
+ return d(a), a;
1213
1473
  } catch (e) {
1214
1474
  throw l(e), e;
1215
1475
  } finally {
1216
- o(!1);
1476
+ a(!1);
1217
1477
  }
1218
1478
  }, [
1219
1479
  e,
1220
1480
  t,
1221
1481
  r
1222
1482
  ]);
1223
- return a(() => ({
1483
+ return o(() => ({
1224
1484
  signal: f,
1225
1485
  pending: i,
1226
- error: c,
1486
+ error: s,
1227
1487
  data: u
1228
1488
  }), [
1229
1489
  f,
1230
1490
  i,
1231
- c,
1491
+ s,
1232
1492
  u
1233
1493
  ]);
1234
- }, Ze = (e) => {
1235
- let { runtime: t, client: r } = N(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a, s) => {
1236
- o(!0), l(void 0);
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 o = await K({
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
- ...a === void 0 ? {} : { payload: a },
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(o), o;
1511
+ return d(a), a;
1252
1512
  } catch (e) {
1253
1513
  throw l(e), e;
1254
1514
  } finally {
1255
- o(!1);
1515
+ a(!1);
1256
1516
  }
1257
1517
  }, [
1258
1518
  e,
1259
1519
  t,
1260
1520
  r
1261
1521
  ]);
1262
- return a(() => ({
1522
+ return o(() => ({
1263
1523
  update: f,
1264
1524
  pending: i,
1265
- error: c,
1525
+ error: s,
1266
1526
  data: u
1267
1527
  }), [
1268
1528
  f,
1269
1529
  i,
1270
- c,
1530
+ s,
1271
1531
  u
1272
1532
  ]);
1273
- }, Qe = (e, t) => {
1274
- let n = F(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
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
- }, $e = (e, t = {}, n = {}) => {
1283
- let r = F(e, "__voltro.workflow.runs", t, n);
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
- }, et = (e, t) => {
1292
- let n = F(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
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
- }, q = (e, t) => {
1301
- let n = F(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
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
- }, tt = q, nt = (e, t = {}, n = {}) => {
1310
- let r = F(e, "__voltro.workflow.domainEvents", t, n);
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
- }, rt = (e, t) => {
1319
- let n = F(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
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
- }, J = (e, t) => {
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
- }, it = (e) => {
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
- }, at = (e) => {
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 = J(r, "signalName");
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 = it(r);
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 = J(i, "signalName");
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 = it(i), t = J(i, "updateName");
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
- }, ot = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), st = (e, t) => {
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
- }, ct = (e, t) => {
1371
- let r = Qe(e, t), i = et(e, t), o = q(e, t), s = Ye(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = o.events, d = n(async () => {
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 a(() => ({
1650
+ return o(() => ({
1391
1651
  run: c,
1392
1652
  status: c?.status,
1393
1653
  steps: l,
1394
1654
  events: u,
1395
- currentStep: ot(l),
1396
- waitingFor: c?.status === "suspended" ? at(u) : void 0,
1397
- error: st(c, l),
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
- }, lt = (e, t) => {
1415
- let { runtime: r, client: i } = N(e), [a, c] = s([]), [u, f] = s("idle"), [m, h] = s(void 0), _ = o(null), v = n(() => {
1416
- let e = _.current;
1417
- e && (_.current = null, r.runFork(p.interrupt(e)), f((e) => e === "streaming" ? "idle" : 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: u,
1422
- error: m,
1681
+ status: l,
1682
+ error: p,
1423
1683
  start: n((e = {}) => {
1424
- let n = _.current;
1425
- n && r.runFork(p.interrupt(n)), c([]), h(void 0), f("streaming");
1426
- let a = P(i, t)(e), o = g.runForEach(a, (e) => d.sync(() => c((t) => [...t, e]))).pipe(d.matchCause({
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
- f("done");
1688
+ d("done");
1429
1689
  },
1430
1690
  onFailure: (e) => {
1431
- l.isInterruptedOnly(e) || (h(l.squash(e)), f("error"));
1691
+ u.isInterruptedOnly(e) || (h(u.squash(e)), d("error"));
1432
1692
  }
1433
1693
  }));
1434
- _.current = r.runFork(o);
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
- }, ut = (e, t, n, r) => {
1443
- let i = 0, a = !1, o = (e) => d.sync(() => {
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 d.sync(() => {
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 d.sync(() => {
1711
+ return f.sync(() => {
1452
1712
  n.onStatus("reconnecting"), n.onReconnect();
1453
- }).pipe(d.zipRight(d.sleep(u.millis(s))), d.zipRight(d.sync(() => n.onStatus("streaming"))), d.zipRight(c(o)));
1454
- }, c = (r) => d.suspend(() => {
1455
- let c = i, u = e({
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 g.runForEach(u, o).pipe(d.matchCauseEffect({
1460
- onSuccess: () => a ? d.sync(() => n.onStatus("done")) : s(r, c, void 0),
1461
- onFailure: (e) => l.isInterruptedOnly(e) ? d.void : a ? d.sync(() => n.onStatus("done")) : s(r, c, l.squash(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
- }, dt = (e) => {
1725
+ }, Lt = (e) => {
1466
1726
  let t = e?._tag;
1467
1727
  return t === "done" || t === "error";
1468
- }, ft = (e, t, r = {}) => {
1469
- let { runtime: i, client: a } = N(e), [c, l] = s([]), [u, d] = s("idle"), [f, m] = s(0), [h, g] = s(void 0), _ = o(null), v = {
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 ?? dt
1733
+ isTerminal: r.isTerminal ?? Lt
1474
1734
  }, y = n(() => {
1475
1735
  let e = _.current;
1476
- e && (_.current = null, i.runFork(p.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
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: c,
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(p.interrupt(n)), l([]), g(void 0), m(0), d("streaming");
1486
- let r = P(a, t), o = {
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: () => m((e) => e + 1),
1749
+ onReconnect: () => p((e) => e + 1),
1490
1750
  onError: g
1491
1751
  };
1492
- _.current = i.runFork(ut(r, e, o, v));
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
- }, pt = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), mt = (e) => {
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
- }, ht = (e, t, r) => {
1510
- let { threadId: i } = r, o = F(e, `${t}.messages`, { threadId: i }), s = W(e, `${t}.send`), c = a(() => [...o.data ?? []].sort(pt), [o.data]), l = n((e, t = {}) => s.run({
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: o.data?.length ?? 0,
1772
+ order: a.data?.length ?? 0,
1513
1773
  prompt: e,
1514
1774
  ...t
1515
1775
  }), [
1516
1776
  s,
1517
1777
  i,
1518
- o.data
1778
+ a.data
1519
1779
  ]), u = n(() => {
1520
- let e = mt(c);
1780
+ let e = Bt(c);
1521
1781
  return e === void 0 ? void 0 : l(e);
1522
1782
  }, [c, l]);
1523
- return a(() => ({
1783
+ return o(() => ({
1524
1784
  messages: c,
1525
1785
  streaming: c.some((e) => e.streaming),
1526
- loading: o.data === void 0,
1527
- error: o.error ?? s.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
- o.data,
1534
- o.error,
1793
+ a.data,
1794
+ a.error,
1535
1795
  s.error,
1536
1796
  s.pending,
1537
1797
  l,
1538
1798
  u
1539
1799
  ]);
1540
- }, gt = (e, t) => {
1541
- let { events: r, status: c, error: l, start: u, cancel: d } = lt(e, t), [f, p] = s([]), m = o(null), h = a(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
1542
- return i(() => {
1543
- if (c !== "done" || m.current === null) return;
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
- }, [c, h]), {
1816
+ }, [i, h]), {
1557
1817
  tokens: h,
1558
1818
  history: f,
1559
- status: c,
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
- }, _t = (e, t) => {
1568
- let r = W(e, t), [i, o] = s(void 0), c = n(async (e) => {
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 o(t), t;
1571
- }, [r]), l = n(() => o(void 0), []);
1572
- return a(() => ({
1573
- ask: c,
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
- c,
1839
+ s,
1580
1840
  i,
1581
1841
  r.pending,
1582
1842
  r.error,
1583
1843
  l
1584
1844
  ]);
1585
- }, vt = (e) => {
1586
- let { cache: t, runtime: r } = N(e);
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
- }, Y = /* @__PURE__ */ new Set(), yt = (e) => {
1591
- for (let t of Y) try {
1850
+ }, Gt = /* @__PURE__ */ new Set(), Kt = (e) => {
1851
+ for (let t of Gt) try {
1592
1852
  t(e);
1593
1853
  } catch {}
1594
- }, bt = (e) => (Y.add(e), () => {
1595
- Y.delete(e);
1596
- }), xt = (e, t) => {
1597
- yt({
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
- }, St = (e, t) => {
1603
- let { errorBus: n } = N(e);
1604
- i(() => n.on(t), [n, t]);
1605
- }, Ct = "#/$defs/", wt = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), X = (e, t) => {
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(Ct)) return n;
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
- }, Tt = (e) => {
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
- }, Et = (e, t) => {
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) => !Tt(e));
1896
+ let i = r.filter((e) => !Qt(e));
1637
1897
  if (i.length !== r.length) return i.length === 1 ? {
1638
- node: X(i[0], t),
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
- }, Dt = (e) => e.map((e) => ({
1912
+ }, en = (e) => e.map((e) => ({
1653
1913
  value: String(e),
1654
- label: wt(String(e))
1655
- })), Ot = (e) => {
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: Dt(t)
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
- }, kt = (e, t, n) => Object.entries(e).map(([e, r]) => {
1671
- let { node: i, nullable: a } = Et(X(r, n), n), o = X(i, n), { widget: s, options: c } = Ot(o);
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: wt(e),
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
- }), At = (e) => {
1941
+ }), rn = (e) => {
1682
1942
  try {
1683
- return m.make(e);
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 = At(e);
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 = X(t, n);
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 = X(i, n), o = a.properties;
1700
- return o ? kt(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
1701
- }, jt = (e, t) => {
1702
- let n = h.decodeUnknownEither(e, { errors: "all" })(t);
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 y.formatErrorSync(n.left)) {
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
- }, Mt = (e, t, r) => {
1717
- let i = N(e), c = U(e, t), l = r.schema ?? i.descriptors[t]?.input;
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 = a(() => l ? Z(l) : [], [l]), d = o(r.defaults ?? {}), [f, p] = s(d.current), [m, h] = s({}), g = n((e, t) => {
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 = jt(l, f);
1993
+ let e = on(l, f);
1734
1994
  if (h(e.errors), !e.valid) return;
1735
1995
  }
1736
- return c.mutate(f);
1996
+ return a.mutate(f);
1737
1997
  }, [
1738
1998
  l,
1739
1999
  f,
1740
- c
2000
+ a
1741
2001
  ]);
1742
2002
  return {
1743
2003
  fields: u,
1744
2004
  values: f,
1745
2005
  errors: m,
1746
- isValid: a(() => l === void 0 || jt(l, f).valid, [l, f]),
1747
- pending: c.pending,
1748
- submitError: c.error,
1749
- data: c.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
- }, Nt = (e, t, n) => e.map((e) => {
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
- }), Pt = (e, t, r = {}) => {
1762
- let o = r.debounceMs ?? 200, c = r.labelField ?? "name", l = r.valueField ?? "id", u = r.input ?? ((e) => ({ q: e })), [d, f] = s(r.initialTerm ?? ""), [p, m] = s(d);
1763
- i(() => {
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), o);
2025
+ let e = setTimeout(() => m(d), i);
1766
2026
  return () => clearTimeout(e);
1767
2027
  }, [
1768
2028
  d,
1769
2029
  p,
1770
- o
2030
+ i
1771
2031
  ]);
1772
- let h = r.skipUntilTerm === !0 && p.trim() === "", g = F(e, t, a(() => u(p), [u, p]), { skip: h }), _ = a(() => Nt(g.data ?? [], c, l), [
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
- c,
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
- }, Ft = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, It = (e, t, r = {}) => {
1784
- let i = N(e), [o, c] = s(r.pageSize), l = F(e, t, a(() => o === void 0 ? r.input ?? {} : {
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: o
1787
- }, [r.input, o])), u = i.descriptors[t]?.output, d = n(() => {
1788
- r.pageSize !== void 0 && c((e) => (e ?? r.pageSize) + r.pageSize);
1789
- }, [r.pageSize]), f = a(() => r.columns ?? (u === void 0 ? [] : Q(u)), [r.columns, u]), [p, m] = s(r.initialSort), h = n((e) => {
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: a(() => {
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) => Ft(e[p.column], n[p.column]) * t);
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: o !== void 0 && (l.data?.length ?? 0) >= o
2071
+ hasMore: a !== void 0 && (l.data?.length ?? 0) >= a
1812
2072
  };
1813
- }, Lt = (e, t, n, r) => {
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
- }, Rt = Lt, zt = (e, t, n, r) => {
1820
- let { inspectBaseUrl: a } = N(e), [o, c] = s({
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 i(() => {
2085
+ return a(() => {
1826
2086
  let e = !1;
1827
- c({
2087
+ s({
1828
2088
  data: void 0,
1829
2089
  loading: !0,
1830
2090
  error: void 0
1831
2091
  });
1832
- let i = Lt(a ?? "", t, n, r);
1833
- return fetch(i).then(async (e) => {
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 || c({
2097
+ e || s({
1838
2098
  data: t,
1839
2099
  loading: !1,
1840
2100
  error: void 0
1841
2101
  });
1842
2102
  }).catch((t) => {
1843
- e || c({
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
- a,
2113
+ i,
1854
2114
  t,
1855
2115
  n,
1856
2116
  r
1857
2117
  ]), o;
1858
- }, Bt = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, Vt = (e) => {
1859
- let { inspectBaseUrl: t } = N(e), [n, r] = s({
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 i(() => {
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(Bt(t ?? "")).then(async (e) => {
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
- }, Ht = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Ut = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Wt = (e) => e.tables.filter((e) => !e.framework).map((t) => {
1890
- let n = e.procedures.find((e) => e.kind === "query" && Ht(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Ut(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Ut(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Ut(e, t.name, "delete"));
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
- }), Gt = (e) => {
1904
- let [t, r] = s([]), [i, o] = s([]), c = n((e) => {
1905
- r((t) => [...t, e]), o([]);
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)), o((e) => [...e, n]));
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), o((e) => e.slice(0, -1)), r((e) => [...e, t]));
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 a(() => {
2173
+ return o(() => {
1914
2174
  let e = t[t.length - 1];
1915
2175
  return {
1916
- record: c,
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
- c,
2187
+ s,
1928
2188
  l,
1929
2189
  u
1930
2190
  ]);
1931
- }, Kt = "__voltro.undo.log", qt = "__voltro.undo.apply", Jt = "__voltro.undo.redo", Yt = (e, t) => {
1932
- let r = t?.limit, { data: i } = F(e, Kt, r === void 0 ? {} : { limit: r }), a = U(e, qt), o = U(e, Jt), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
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
- }, Xt = (e, t) => ({
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), Zt = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Qt = (e, t, n) => {
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 (Zt.has(i) || a === void 0) continue;
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
- }, $t = (e, t, n) => {
1966
- let r = o({
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
- }, i(() => {
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
- }, []), a(() => Qt(e, t, n), [
2241
+ }, []), o(() => Dn(e, t, n), [
1982
2242
  e,
1983
2243
  t,
1984
2244
  n
1985
2245
  ]);
1986
- }, en = (e, t) => {
1987
- let n = N(e).descriptors[t]?.input;
1988
- return a(() => n === void 0 ? [] : Z(n), [n]);
1989
- }, tn = (e, t) => {
1990
- let n = N(e).descriptors[t]?.output;
1991
- return a(() => n === void 0 ? [] : Q(n), [n]);
1992
- }, nn = (e, t) => {
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
- }, rn = (e) => Object.keys(e).sort().map((t) => e[t]), an = (e, t) => {
1998
- let n = o(null), r = rn(e);
1999
- return (n.current === null || !nn(n.current.key, r)) && (n.current = {
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
- }, on = "admin:full", sn = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), cn = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), ln = e({ scopes: [] });
2004
- function un(e) {
2005
- return t(ln.Provider, { value: { scopes: e.scopes } }, e.children);
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 dn = () => r(ln), fn = (e) => sn(dn().scopes, e), pn = (e) => cn(dn().scopes, e), mn = (e, t, n, r = {}) => {
2008
- let i = F(e, t, { ...n }, r);
2009
- return a(() => ({
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
- }, hn = (e, t, n, r = {}) => {
2014
- let i = F(e, t, { ...n }, r);
2015
- return a(() => ({
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
- }, gn = (e) => {
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
- }, _n = (e) => Z(e).map((e) => {
2036
- let t = gn(e.widget);
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), vn = (e) => {
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
- }, yn = (e, t, r = {}) => {
2048
- let i = N(e).descriptors[t]?.input, o = a(() => i === void 0 ? [] : _n(i), [i]), [c, l] = s(r.initial ?? {}), u = n((e, t) => {
2049
- l((n) => vn({
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 = F(e, t, a(() => vn(c), [c]));
2313
+ }, []), d = n(() => l({}), []), f = U(e, t, o(() => Kn(s), [s]));
2054
2314
  return {
2055
- filters: o,
2056
- values: c,
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
- }, bn = (e, t, n = {}) => {
2065
- let r = F(e, t, n), i = r.data;
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
- }, xn = (e, t = 300) => {
2072
- let [n, r] = s(e);
2073
- return i(() => {
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
- }, Sn = (e) => {
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
- }, Cn = (e, t, n, r) => {
2096
- let { input: i, interpret: o, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = xn(n, s), u = c && l.trim() === "", d = F(e, t, a(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
2097
- return Sn({
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: o,
2361
+ interpret: a,
2102
2362
  skipEmpty: c
2103
2363
  });
2104
- }, wn = (e, t) => ({
2364
+ }, Qn = (e, t) => ({
2105
2365
  name: e,
2106
2366
  payload: t
2107
- }), Tn = (e, t) => {
2108
- let n = h.decodeUnknownEither(e.payload, { errors: "all" })(t);
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 y.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
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
- }, En = (e) => {
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
- }, Dn = (e, t) => {
2127
- let n = En(e);
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 = Tn(i, r);
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
- }, On = (e, t) => {
2148
- let r = W(e, t);
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
- }, kn = (e, t, n, r) => [...e, {
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
- }], An = (e, t, n) => e.map((e) => e.id === t ? {
2421
+ }], ir = (e, t, n) => e.map((e) => e.id === t ? {
2162
2422
  ...e,
2163
2423
  ...n
2164
- } : e), jn = (e, t) => An(e, t, { status: "sent" }), Mn = (e, t, n) => e.map((e) => e.id === t ? {
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), Nn = (e, t, n) => An(e, t, {
2429
+ } : e), sr = (e, t, n) => ir(e, t, {
2170
2430
  status: "conflict",
2171
2431
  error: n
2172
- }), Pn = (e) => e.filter((e) => e.status !== "sent"), Fn = (e) => {
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
- }, In = (e) => {
2439
+ }, ur = (e) => {
2180
2440
  let t = e;
2181
2441
  return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
2182
- }, Ln = (e) => {
2183
- let [t, n] = s(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
2184
- return i(() => {
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
- }, Rn = (e) => {
2196
- let { send: t, isConflict: r = In, idFor: a } = e, [c, l] = s([]), u = Ln(e.online), d = o(c);
2197
- d.current = c;
2198
- let f = o(0), p = n((e, t) => {
2199
- let n = a?.() ?? `obx_${f.current++}_${e}`;
2200
- l((r) => kn(r, n, e, t));
2201
- }, [a]), m = n(async () => {
2202
- for (let e of Fn(d.current)) try {
2203
- await t(e), l((t) => jn(t, e.id));
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) => Nn(n, e.id, t));
2466
+ l((n) => sr(n, e.id, t));
2207
2467
  break;
2208
2468
  }
2209
- l((n) => Mn(n, e.id, t));
2469
+ l((n) => or(n, e.id, t));
2210
2470
  }
2211
2471
  }, [t, r]);
2212
- return i(() => {
2472
+ return a(() => {
2213
2473
  u && m();
2214
2474
  }, [u, m]), {
2215
- queue: c,
2475
+ queue: o,
2216
2476
  enqueue: p,
2217
2477
  replay: m,
2218
2478
  online: u,
2219
- pending: c.filter((e) => e.status === "pending" || e.status === "failed").length,
2220
- conflicts: c.filter((e) => e.status === "conflict")
2479
+ pending: o.filter((e) => e.status === "pending" || e.status === "failed").length,
2480
+ conflicts: o.filter((e) => e.status === "conflict")
2221
2481
  };
2222
- }, zn = (e) => {
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
- }, Bn = (e, t, r) => {
2233
- let { rowHeight: i, viewportHeight: o, overscan: c, total: l, input: u } = r, [d, f] = s(0), p = a(() => zn({
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: o,
2495
+ viewportHeight: a,
2236
2496
  rowHeight: i,
2237
- ...c === void 0 ? {} : { overscan: c },
2497
+ ...s === void 0 ? {} : { overscan: s },
2238
2498
  ...l === void 0 ? {} : { total: l }
2239
2499
  }), [
2240
2500
  d,
2241
- o,
2501
+ a,
2242
2502
  i,
2243
- c,
2503
+ s,
2244
2504
  l
2245
- ]), m = F(e, t, a(() => ({
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
- }, Vn = () => typeof navigator > "u" || navigator.onLine, Hn = (e) => {
2266
- let { errorBus: t } = N(e), [r, a] = s(Vn), [c, l] = s(0), [u, d] = s(void 0), f = o(!0);
2267
- i(() => (f.current = !0, () => {
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
- }), []), i(() => {
2529
+ }), []), a(() => {
2270
2530
  if (typeof window > "u") return;
2271
2531
  let e = () => {
2272
- a(!0), l(0);
2273
- }, t = () => a(!1);
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
- }, []), i(() => {
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 ? c > 0 ? "degraded" : "connected" : "offline",
2546
+ status: r ? o > 0 ? "degraded" : "connected" : "offline",
2287
2547
  online: r,
2288
- failureCount: c,
2548
+ failureCount: o,
2289
2549
  lastFailureAt: u,
2290
2550
  reportSuccess: p
2291
2551
  };
2292
- }, Un = "__voltro.connections.list", Wn = "__voltro.connections.start", Gn = "__voltro.connections.submitToken", Kn = "__voltro.connections.disconnect", qn = {
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
- }, Jn = (e, t) => {
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
- }, Yn = (e) => {
2310
- let { data: t } = F(e, Un, {}), r = W(e, Wn), i = U(e, Gn), a = U(e, Kn), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
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
- Jn((await r.run({
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
- }, Xn = (e, t) => {
2349
- let n = Yn(e), r = n.get(t);
2350
- return a(() => r === void 0 ? {
2351
- ...qn,
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
- }, Zn = "framework-client";
2636
+ }, Tr = "framework-client";
2377
2637
  //#endregion
2378
- export { on as ADMIN_SCOPE, Zn as CLIENT_NAME, Un as CONNECTIONS_LIST_TAG, Kn as CONNECTION_DISCONNECT_TAG, Wn as CONNECTION_START_TAG, Gn as CONNECTION_SUBMIT_TOKEN_TAG, le as FrameworkRuntimesContext, he as FrameworkRuntimesProvider, oe as LoadingSubscriptionCache, un as PermissionProvider, se as RpcErrorBus, ae as SubscriptionCache, qt as UNDO_APPLY_TAG, Kt as UNDO_LOG_TAG, Jt as UNDO_REDO_TAG, pe as _resetFrameworkRuntimesWarning, sn as canCall, cn as canCallAny, Ee as clearMutations, Pn as clearSent, zn as computeWindow, Dn as createAnalytics, wn as defineEvent, Xt as defineTracking, Wt as deriveEntityAdmins, kn as enqueueEntry, ce as errorTag, En as eventCatalog, _n as filtersFromSchema, H as getMutationNotifier, we as getMutations, Bt as manifestUrl, Nn as markConflict, Mn as markFailed, jn as markSent, Rt as provenanceUrl, yt as publishClientError, x as publishClientTrace, Fn as replayable, xt as reportClientError, P as resolveByTag, $ as resolveTrackingEvent, ut as resumableConsumeProgram, Nt as rowsToOptions, ye as runSequence, Q as schemaToColumns, Z as schemaToFields, ve as sequence, Oe as setMutationNotifier, B as settleMutation, nn as shallowArrayEqual, rn as sourceValues, k as ssrClientProxy, de as ssrStubHandle, C as stableKey, z as startMutation, bt as subscribeClientErrors, S as subscribeClientTraces, Te as subscribeMutations, W as useAction, gt as useAgent, ht as useAgentChat, lt as useAgentStream, Cn as useAsyncValidation, fn as useCan, pn as useCanAny, Vt as useCapabilityManifest, Xn as useConnection, Hn as useConnectionStatus, Yn as useConnections, _t as useDataCopilot, It as useDataTable, xn as useDebounced, an as useDerived, Mt as useFormBinding, en as useFormSkeleton, N as useFrameworkApi, me as useFrameworkRuntimes, U as useMutation, St as useOnRpcError, Rn as useOutbox, dn as usePermissions, On as usePreview, zt as useProvenance, Pt as useQueryField, yn as useQueryFilters, bn as useRecord, vt as useRefreshSubscriptions, mn as useResourceCan, hn as useResourceCans, ft as useResumableAgentStream, be as useSequence, F as useSubscription, tn as useTableSkeleton, $t as useTracking, Gt as useUndo, Yt as useUndoLog, Je as useUpload, Bn as useWindowedSubscription, Ye as useWorkflow, nt as useWorkflowDomainEvents, rt as useWorkflowEventDeliveries, tt as useWorkflowEvents, Qe as useWorkflowRun, q as useWorkflowRunEvents, ct as useWorkflowRunState, et as useWorkflowRunSteps, $e as useWorkflowRuns, Xe as useWorkflowSignal, Ze as useWorkflowUpdate, Tn as validateEventPayload, jt as validateFields, Sn as validationStatus, Qt as wrapTrackedCallbacks };
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 };