@voltro/client 0.13.0 → 0.15.0

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