@voltro/client 0.22.1 → 0.24.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
@@ -2,38 +2,40 @@ import { createContext as e, createElement as t, useCallback as n, useContext as
2
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
3
  import { applyRowPatch as v } from "@voltro/protocol";
4
4
  import { jsx as y } from "react/jsx-runtime";
5
- import { ArrayFormatter as b } from "effect/ParseResult";
5
+ import * as b from "@effect/platform/Headers";
6
+ import { RpcClient as x } from "@effect/rpc";
7
+ import { ArrayFormatter as S } from "effect/ParseResult";
6
8
  //#region src/traceBus.ts
7
- var x = /* @__PURE__ */ new Set(), S = (e) => {
8
- for (let t of x) try {
9
+ var C = /* @__PURE__ */ new Set(), w = (e) => {
10
+ for (let t of C) try {
9
11
  t(e);
10
12
  } catch {}
11
- }, C = (e) => (x.add(e), () => {
12
- x.delete(e);
13
- }), w = (e) => {
13
+ }, T = (e) => (C.add(e), () => {
14
+ C.delete(e);
15
+ }), E = (e) => {
14
16
  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
17
  return t(e);
16
- }, T = Object.freeze({
18
+ }, ee = Object.freeze({
17
19
  data: void 0,
18
20
  revision: -1,
19
21
  emittedAt: void 0,
20
22
  error: void 0,
21
23
  pendingPatches: 0
22
- }), ee = 5e3, te = 0, ne = () => `patch_${++te}`, E = (e, t) => {
24
+ }), te = 5e3, ne = 0, re = () => `patch_${++ne}`, D = (e, t) => {
23
25
  let n = e;
24
26
  for (let e of t.split(".")) {
25
27
  if (typeof n != "object" || !n) return;
26
28
  n = n[e];
27
29
  }
28
30
  return n;
29
- }, re = (e, t, n) => {
31
+ }, ie = (e, t, n) => {
30
32
  let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
31
33
  for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
32
34
  return o[r[r.length - 1]] = n, a;
33
- }, ie = (e, t) => {
35
+ }, ae = (e, t) => {
34
36
  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
37
  return i.length === 0 ? null : new Set(i);
36
- }, ae = (e, t, n) => {
38
+ }, oe = (e, t, n) => {
37
39
  let r = e.path, i = e.by ?? "id";
38
40
  if (e.op === "insert") {
39
41
  let a = e.shapeItem ?? e.shape, o = a ? {
@@ -46,11 +48,11 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
46
48
  optimistic: !0
47
49
  }, s = e.order ?? "append";
48
50
  return (e) => {
49
- let t = Array.isArray(E(e, r)) ? E(e, r) : [];
50
- return re(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
51
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
52
+ return ie(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
51
53
  };
52
54
  }
53
- let a = ie(e, t);
55
+ let a = ae(e, t);
54
56
  if (a === null) return null;
55
57
  if (e.op === "update") {
56
58
  let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
@@ -64,16 +66,16 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
64
66
  optimistic: !0
65
67
  });
66
68
  return (e) => {
67
- let t = Array.isArray(E(e, r)) ? E(e, r) : [];
68
- return re(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
69
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
70
+ return ie(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
69
71
  };
70
72
  }
71
73
  return (e) => {
72
- let t = Array.isArray(E(e, r)) ? E(e, r) : [];
73
- return re(e, r, t.filter((e) => !a.has(e[i])));
74
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
75
+ return ie(e, r, t.filter((e) => !a.has(e[i])));
74
76
  };
75
- }, oe = (e, t, n) => {
76
- if (e.path !== void 0) return ae(e, t, n);
77
+ }, se = (e, t, n) => {
78
+ if (e.path !== void 0) return oe(e, t, n);
77
79
  switch (e.op) {
78
80
  case "insert": {
79
81
  let r = e.shape ? {
@@ -91,7 +93,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
91
93
  };
92
94
  }
93
95
  case "update": {
94
- let n = ie(e, t);
96
+ let n = ae(e, t);
95
97
  if (n === null) return null;
96
98
  let r = e.shape, i = r ? (e) => ({
97
99
  ...r(t, e),
@@ -108,30 +110,30 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
108
110
  });
109
111
  }
110
112
  case "delete": {
111
- let n = ie(e, t);
113
+ let n = ae(e, t);
112
114
  return n === null ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => !n.has(e.id));
113
115
  }
114
116
  }
115
- }, se = 5e3, ce = class {
117
+ }, ce = 5e3, le = class {
116
118
  entries = /* @__PURE__ */ new Map();
117
119
  inactiveTtlMs;
118
120
  onChangeHook;
119
121
  errorBus;
120
122
  constructor(e = {}) {
121
- this.inactiveTtlMs = e.inactiveTtlMs ?? se, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
123
+ this.inactiveTtlMs = e.inactiveTtlMs ?? ce, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
122
124
  }
123
125
  subscribe(e, t, n, r, i = {}) {
124
- let a = w(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
126
+ let a = E(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
125
127
  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
128
  getSnapshot: () => this.getSnapshot(a),
127
129
  unsubscribe: () => this.unsubscribe(a, r)
128
130
  };
129
131
  }
130
132
  update(e, t, n) {
131
- let r = w(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
133
+ let r = E(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
132
134
  a ||= this.createStub(r, i);
133
135
  let o = {
134
- id: ne(),
136
+ id: re(),
135
137
  mutationId: n,
136
138
  reducer: t
137
139
  };
@@ -145,7 +147,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
145
147
  for (let i of this.entries.values()) {
146
148
  if (i.tag !== e) continue;
147
149
  let a = {
148
- id: `forTag-${++te}`,
150
+ id: `forTag-${++ne}`,
149
151
  mutationId: n,
150
152
  reducer: t
151
153
  };
@@ -162,10 +164,10 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
162
164
  confirmByMutation(e) {
163
165
  let t = !1;
164
166
  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), ee);
167
+ t && setTimeout(() => this.revertByMutation(e), te);
166
168
  }
167
169
  autoApply(e, t, n) {
168
- let r = `optimistic-${n}-${++te}`;
170
+ let r = `optimistic-${n}-${++ne}`;
169
171
  for (let i of e) for (let e of this.entries.values()) {
170
172
  if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
171
173
  if (i.match !== void 0) {
@@ -178,7 +180,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
178
180
  if (!n) continue;
179
181
  }
180
182
  if (e.computed && i.op === "insert" && i.path === void 0) continue;
181
- let a = oe(i, t, r);
183
+ let a = se(i, t, r);
182
184
  if (a === null) continue;
183
185
  let o = {
184
186
  id: `${r}-${e.key}`,
@@ -195,10 +197,10 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
195
197
  n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
196
198
  }
197
199
  peek(e) {
198
- return this.getSnapshot(w(e));
200
+ return this.getSnapshot(E(e));
199
201
  }
200
202
  getEntry(e) {
201
- return this.entries.get(w(e));
203
+ return this.entries.get(E(e));
202
204
  }
203
205
  size() {
204
206
  return this.entries.size;
@@ -267,7 +269,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
267
269
  };
268
270
  }
269
271
  startFiber(e, t, n) {
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({
272
+ 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, w({
271
273
  traceId: t.traceId,
272
274
  spanId: t.spanId,
273
275
  source: "subscription",
@@ -300,7 +302,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
300
302
  }
301
303
  getSnapshot(e) {
302
304
  let t = this.entries.get(e);
303
- if (!t) return T;
305
+ if (!t) return ee;
304
306
  if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
305
307
  let n = t.state.base;
306
308
  if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
@@ -320,14 +322,14 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
320
322
  t && t.subscribers.size === 0 && (t.fiber && f.runFork(m.interrupt(t.fiber)), this.entries.delete(e));
321
323
  }, this.inactiveTtlMs)));
322
324
  }
323
- }, le = class extends ce {
325
+ }, ue = class extends le {
324
326
  subscribe(e, t, n, r, i = {}) {
325
327
  return {
326
328
  getSnapshot: () => this.peek(e),
327
329
  unsubscribe: () => {}
328
330
  };
329
331
  }
330
- }, ue = class {
332
+ }, de = class {
331
333
  #e = /* @__PURE__ */ new Set();
332
334
  on(e) {
333
335
  return this.#e.add(e), () => {
@@ -339,30 +341,30 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
339
341
  t(e);
340
342
  } catch {}
341
343
  }
342
- }, de = e(null), fe = () => {
344
+ }, O = e(null), fe = () => {
343
345
  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");
344
- }, D = new Proxy(() => fe(), {
345
- get: (e, t) => D,
346
+ }, k = new Proxy(() => fe(), {
347
+ get: (e, t) => k,
346
348
  has: () => !0,
347
349
  apply: () => fe()
348
350
  }), pe = {
349
351
  runtime: { runPromise: () => Promise.reject(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR")) },
350
- cache: new le(),
351
- client: D,
352
+ cache: new ue(),
353
+ client: k,
352
354
  descriptors: {},
353
355
  inspectBaseUrl: "",
354
- errorBus: new ue()
356
+ errorBus: new de()
355
357
  }, me = {
356
358
  get: () => pe,
357
359
  names: []
358
- }, O = !1, k = !1, A = null, he = () => {
359
- O = !1, k = !1, A !== null && (clearTimeout(A), A = null);
360
+ }, A = !1, j = !1, M = null, he = () => {
361
+ A = !1, j = !1, M !== null && (clearTimeout(M), M = null);
360
362
  }, ge = () => {
361
- let e = r(de);
362
- return e ? (k || (k = !0, A !== null && (clearTimeout(A), A = null)), e) : (typeof window < "u" && !O && !k && A === null && process.env.NODE_ENV !== "production" && (A = setTimeout(() => {
363
- A = null, !(O || k) && (O = !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>."));
363
+ let e = r(O);
364
+ 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(() => {
365
+ 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>."));
364
366
  }, 0)), me);
365
- }, j = (e) => ge().get(e), _e = ({ apis: e, children: t }) => {
367
+ }, N = (e) => ge().get(e), _e = ({ apis: e, children: t }) => {
366
368
  let n = o(() => ({
367
369
  get: (t) => {
368
370
  let n = e.get(t);
@@ -374,21 +376,21 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
374
376
  },
375
377
  names: Array.from(e.keys())
376
378
  }), [e]);
377
- return /* @__PURE__ */ y(de.Provider, {
379
+ return /* @__PURE__ */ y(O.Provider, {
378
380
  value: n,
379
381
  children: t
380
382
  });
381
- }, M = (e, t) => {
383
+ }, P = (e, t) => {
382
384
  if (Object.is(e, t)) return !0;
383
385
  if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
384
386
  let n = Object.keys(e), r = Object.keys(t);
385
387
  if (n.length !== r.length) return !1;
386
388
  for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
387
389
  return !0;
388
- }, ve = 50, N = /* @__PURE__ */ new Set(), ye = (e, t) => {
389
- N.has(e) || (N.add(e), console.warn(t));
390
- }, P = "\0global", be = null, xe = (e, t, n) => {
391
- let r = be?.() ?? null;
390
+ }, ve = 50, ye = /* @__PURE__ */ new Set(), be = (e, t) => {
391
+ ye.has(e) || (ye.add(e), console.warn(t));
392
+ }, xe = "\0global", Se = null, Ce = (e, t, n) => {
393
+ let r = Se?.() ?? null;
392
394
  if (r === null) return n;
393
395
  let i = n;
394
396
  for (let n of r.seeds) n.store !== e || n.key !== t || (i = {
@@ -396,7 +398,7 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
396
398
  ...n.value
397
399
  });
398
400
  return i;
399
- }, Se = (e, t) => {
401
+ }, we = (e, t) => {
400
402
  let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
401
403
  if (i >= ve) throw i = 0, Error(`defineStore: notification depth exceeded ${ve} — 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
404
  i += 1;
@@ -419,20 +421,20 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
419
421
  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
422
  if (--a, a > 0) return;
421
423
  let l = o, u = s;
422
- o = void 0, s = void 0, !M(l, n) && (t(l, n, u), c());
424
+ o = void 0, s = void 0, !P(l, n) && (t(l, n, u), c());
423
425
  },
424
426
  set: (e, r) => {
425
427
  let i = typeof e == "function" ? e(n) : {
426
428
  ...n,
427
429
  ...e
428
430
  };
429
- if (M(i, n)) return;
431
+ if (P(i, n)) return;
430
432
  let o = n;
431
433
  n = i, !(a > 0) && (t(o, i, r), c());
432
434
  },
433
435
  reset: () => {
434
436
  let r = e();
435
- if (M(r, n)) return;
437
+ if (P(r, n)) return;
436
438
  let i = n;
437
439
  n = r, !(a > 0) && (t(i, r, "reset"), c());
438
440
  },
@@ -440,11 +442,11 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
440
442
  r.delete(e);
441
443
  })
442
444
  };
443
- }, Ce = 200, F = [], we = /* @__PURE__ */ new Set(), Te = [], Ee = () => Te, De = (e) => (we.add(e), () => {
444
- we.delete(e);
445
- }), Oe = () => {
446
- F.length = 0, Te = [];
447
- }, ke = (e, t) => {
445
+ }, Te = 200, F = [], Ee = /* @__PURE__ */ new Set(), De = [], Oe = () => De, ke = (e) => (Ee.add(e), () => {
446
+ Ee.delete(e);
447
+ }), Ae = () => {
448
+ F.length = 0, De = [];
449
+ }, je = (e, t) => {
448
450
  let n = F[e];
449
451
  if (n === void 0) return !1;
450
452
  let r = R.get(n.store);
@@ -457,30 +459,30 @@ var x = /* @__PURE__ */ new Set(), S = (e) => {
457
459
  L = !1;
458
460
  }
459
461
  return !0;
460
- }, I = !1, L = !1, Ae = (e) => {
461
- F.push(e), F.length > Ce && F.shift(), Te = [...F];
462
- for (let e of [...we]) e();
463
- }, R = /* @__PURE__ */ new Map(), je = /* @__PURE__ */ new Map(), Me = 0, Ne = !1, Pe = /* @__PURE__ */ new Map(), Fe = () => (Ne || (Ne = !0, queueMicrotask(() => {
464
- Me += 1, Ne = !1;
465
- })), Me), Ie = Le(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
466
- function Le(e) {
462
+ }, I = !1, L = !1, Me = (e) => {
463
+ F.push(e), F.length > Te && F.shift(), De = [...F];
464
+ for (let e of [...Ee]) e();
465
+ }, R = /* @__PURE__ */ new Map(), z = /* @__PURE__ */ new Map(), Ne = 0, B = !1, V = /* @__PURE__ */ new Map(), Pe = () => (B || (B = !0, queueMicrotask(() => {
466
+ Ne += 1, B = !1;
467
+ })), Ne), Fe = Ie(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
468
+ function Ie(e) {
467
469
  let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
468
470
  return n.length > 0 ? n : void 0;
469
471
  }
470
- var Re = () => {
472
+ var Le = () => {
471
473
  let e = (/* @__PURE__ */ Error()).stack;
472
474
  if (typeof e != "string") return "<unknown>";
473
475
  for (let t of e.split("\n").slice(1)) {
474
- let e = Le(t);
476
+ let e = Ie(t);
475
477
  if (e === void 0) continue;
476
478
  let n = e.replace(/:\d+:\d+$/, "");
477
- if (!(Ie !== "" && n === Ie.replace(/:\d+:\d+$/, ""))) return n;
479
+ if (!(Fe !== "" && n === Fe.replace(/:\d+:\d+$/, ""))) return n;
478
480
  }
479
481
  return "<unknown>";
480
- }, ze = () => [...R.values()], Be = (e, t, r) => {
481
- let a = Re(), o = Fe(), c = R.get(e);
482
+ }, Re = () => [...R.values()], ze = (e, t, r) => {
483
+ let a = Le(), o = Pe(), c = R.get(e);
482
484
  if (c !== void 0) {
483
- let t = je.get(e) ?? "<unknown>", n = Pe.get(e) === o;
485
+ let t = z.get(e) ?? "<unknown>", n = V.get(e) === o;
484
486
  if (a !== "<unknown>" && a === t && !n) return c;
485
487
  throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${a}`);
486
488
  }
@@ -516,10 +518,10 @@ var Re = () => {
516
518
  t.setItem(u.key, JSON.stringify(n));
517
519
  } catch {}
518
520
  }, m = /* @__PURE__ */ new Map(), h = (n) => {
519
- let r = n ?? P, i = m.get(r);
521
+ let r = n ?? xe, i = m.get(r);
520
522
  if (i === void 0) {
521
523
  let a = n;
522
- i = Se(u !== void 0 && n === void 0 ? () => {
524
+ i = we(u !== void 0 && n === void 0 ? () => {
523
525
  let e = t();
524
526
  return g = e, {
525
527
  ...e,
@@ -533,7 +535,7 @@ var Re = () => {
533
535
  next: n
534
536
  }), e.steps.length > y && e.steps.shift(), e.cursor = e.steps.length;
535
537
  }
536
- Ae({
538
+ Me({
537
539
  store: e,
538
540
  ...a === void 0 ? {} : { key: a },
539
541
  ...r === void 0 ? {} : { label: r },
@@ -546,7 +548,7 @@ var Re = () => {
546
548
  }
547
549
  return i;
548
550
  }, g, _ = /* @__PURE__ */ new Map(), v = (e) => {
549
- let t = e ?? P, n = _.get(t);
551
+ let t = e ?? xe, n = _.get(t);
550
552
  return n === void 0 && (n = {
551
553
  steps: [],
552
554
  cursor: 0
@@ -578,7 +580,7 @@ var Re = () => {
578
580
  let n = u.current;
579
581
  if (n.has && Object.is(n.state, t)) return n.value;
580
582
  let r = o.current(t), i = c.current, a = n.has && (i ? i(n.value, r) : Object.is(n.value, r));
581
- process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && M(n.value, r) && ye(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.`);
583
+ process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && P(n.value, r) && be(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.`);
582
584
  let s = a ? n.value : r;
583
585
  return u.current = {
584
586
  state: t,
@@ -594,7 +596,7 @@ var Re = () => {
594
596
  a,
595
597
  f,
596
598
  p
597
- ]), n(() => d(a.get()), [a, d]), n(() => d(xe(e, r?.key, r?.key === void 0 && g !== void 0 ? g : a.get())), [
599
+ ]), n(() => d(a.get()), [a, d]), n(() => d(Ce(e, r?.key, r?.key === void 0 && g !== void 0 ? g : a.get())), [
598
600
  a,
599
601
  r?.key,
600
602
  d
@@ -640,27 +642,27 @@ var Re = () => {
640
642
  release: (e) => {
641
643
  m.delete(e), _.delete(e);
642
644
  },
643
- keys: () => [...m.keys()].filter((e) => e !== P)
645
+ keys: () => [...m.keys()].filter((e) => e !== xe)
644
646
  };
645
- return R.set(e, w), je.set(e, a), Pe.set(e, o), w;
646
- }, Ve = () => {
647
- R.clear(), je.clear(), Pe.clear(), N.clear();
648
- }, He = () => ({ seeds: [] }), Ue = (e) => {
649
- be = e;
650
- }, We = (e, t, n) => {
651
- let r = be?.() ?? null;
647
+ return R.set(e, w), z.set(e, a), V.set(e, o), w;
648
+ }, Be = () => {
649
+ R.clear(), z.clear(), V.clear(), ye.clear();
650
+ }, Ve = () => ({ seeds: [] }), He = (e) => {
651
+ Se = e;
652
+ }, Ue = (e, t, n) => {
653
+ let r = Se?.() ?? null;
652
654
  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.)`);
653
655
  r.seeds.push({
654
656
  store: e.name,
655
657
  ...n?.key === void 0 ? {} : { key: n.key },
656
658
  value: t
657
659
  });
658
- }, Ge = (e) => {
660
+ }, We = (e) => {
659
661
  if (e !== void 0) for (let t of e) {
660
662
  let e = R.get(t.store);
661
663
  e !== void 0 && e.set(t.value, t.key);
662
664
  }
663
- }, z = (e, t) => {
665
+ }, H = (e, t) => {
664
666
  let n = t.split("."), r = e;
665
667
  for (let e = 0; e < n.length; e++) {
666
668
  let i = n[e];
@@ -679,29 +681,29 @@ var Re = () => {
679
681
  }
680
682
  if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
681
683
  return r;
682
- }, Ke = Object.freeze({
684
+ }, Ge = Object.freeze({
683
685
  data: void 0,
684
686
  revision: -1,
685
687
  emittedAt: void 0,
686
688
  error: void 0,
687
689
  pendingPatches: 0
688
- }), qe = () => Ke;
689
- function B(e, t, r = {}, i = {}) {
690
- let a = i.skip === !0, { runtime: c, cache: u, client: d, descriptors: f } = j(e), p = f[t]?.source, m = s(r);
690
+ }), Ke = () => Ge;
691
+ function U(e, t, r = {}, i = {}) {
692
+ let a = i.skip === !0, { runtime: c, cache: u, client: d, descriptors: f } = N(e), p = f[t]?.source, m = s(r);
691
693
  m.current = r;
692
694
  let h = s(d);
693
695
  h.current = d;
694
- let g = s(() => z(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, [
696
+ 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, [
695
697
  u,
696
698
  c,
697
699
  p,
698
700
  a,
699
701
  _
700
- ]), n(() => a ? Ke : u.peek(_), [
702
+ ]), n(() => a ? Ge : u.peek(_), [
701
703
  u,
702
704
  a,
703
705
  _
704
- ]), qe), y = v.data !== void 0, b = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), x = {
706
+ ]), Ke), y = v.data !== void 0, b = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), x = {
705
707
  revision: v.revision,
706
708
  emittedAt: v.emittedAt,
707
709
  error: v.error,
@@ -745,7 +747,7 @@ function B(e, t, r = {}, i = {}) {
745
747
  }
746
748
  //#endregion
747
749
  //#region src/sequence.ts
748
- var Je = () => {
750
+ var qe = () => {
749
751
  let e = (t) => ({
750
752
  steps: t,
751
753
  step: ((n, r, i) => e([...t, {
@@ -757,7 +759,7 @@ var Je = () => {
757
759
  }]))
758
760
  });
759
761
  return e([]);
760
- }, Ye = async (e, t = {}) => {
762
+ }, Je = async (e, t = {}) => {
761
763
  let n = {}, r = [];
762
764
  for (let i of e.steps) {
763
765
  if (i.when !== void 0 && !i.when(n)) {
@@ -817,13 +819,13 @@ var Je = () => {
817
819
  ok: !0,
818
820
  data: n
819
821
  };
820
- }, Xe = (e = {}) => {
822
+ }, Ye = (e = {}) => {
821
823
  let [t, r] = c(!1), [i, a] = c(void 0), [o, l] = c(void 0), u = s(e);
822
824
  return u.current = e, {
823
825
  run: n(async (e, t = {}) => {
824
826
  r(!0), a(void 0), l(void 0);
825
827
  try {
826
- let n = await Ye(e, {
828
+ let n = await Je(e, {
827
829
  ...u.current,
828
830
  ...t
829
831
  });
@@ -836,25 +838,25 @@ var Je = () => {
836
838
  error: i,
837
839
  failedStep: o
838
840
  };
839
- }, Ze = 100, V = [], H = /* @__PURE__ */ new Set(), Qe = [], $e = () => {
840
- Qe = V.slice();
841
- }, U = () => {
841
+ }, Xe = 100, W = [], Ze = /* @__PURE__ */ new Set(), Qe = [], $e = () => {
842
+ Qe = W.slice();
843
+ }, et = () => {
842
844
  $e();
843
- for (let e of H) try {
845
+ for (let e of Ze) try {
844
846
  e();
845
847
  } catch {}
846
- }, W = (e) => {
848
+ }, tt = (e) => {
847
849
  let t = {
848
850
  ...e,
849
851
  status: "pending",
850
852
  startedAt: Date.now()
851
853
  };
852
- V.unshift(t), V.length > Ze && (V.length = Ze), U();
854
+ W.unshift(t), W.length > Xe && (W.length = Xe), et();
853
855
  }, G = (e, t) => {
854
- let n = V.findIndex((t) => t.id === e);
856
+ let n = W.findIndex((t) => t.id === e);
855
857
  if (n === -1) return;
856
- let r = V[n], i = Date.now();
857
- V[n] = t.status === "success" ? {
858
+ let r = W[n], i = Date.now();
859
+ W[n] = t.status === "success" ? {
858
860
  ...r,
859
861
  status: "success",
860
862
  output: t.output,
@@ -866,12 +868,12 @@ var Je = () => {
866
868
  error: t.error,
867
869
  settledAt: i,
868
870
  durationMs: i - r.startedAt
869
- }, U();
870
- }, et = () => Qe, tt = (e) => (H.add(e), () => {
871
- H.delete(e);
872
- }), nt = () => {
873
- V.length !== 0 && (V.length = 0, U());
874
- }, rt = (e, t) => {
871
+ }, et();
872
+ }, nt = () => Qe, rt = (e) => (Ze.add(e), () => {
873
+ Ze.delete(e);
874
+ }), it = () => {
875
+ W.length !== 0 && (W.length = 0, et());
876
+ }, at = (e, t) => {
875
877
  if (t === void 0 || typeof e != "object" || !e) return e;
876
878
  try {
877
879
  Object.defineProperty(e, "__voltroTraceId", {
@@ -881,36 +883,39 @@ var Je = () => {
881
883
  });
882
884
  } catch {}
883
885
  return e;
884
- }, K, it = (e) => {
886
+ }, K, ot = (e) => {
885
887
  K = e;
886
- }, at = () => K, ot = (e, t, n) => typeof e == "function" ? e(t, n) : e, st = 0, ct = () => `mut_${++st}`, lt = (e, t) => ({
888
+ }, st = () => K, ct = (e, t, n) => typeof e == "function" ? e(t, n) : e, lt = 0, ut = () => `mut_${++lt}`, dt = 0, ft = () => {
889
+ let e = typeof crypto < "u" ? crypto : void 0;
890
+ return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${dt += 1}`;
891
+ }, pt = (e, t) => e.pipe(f.locallyWith(x.currentHeaders, (e) => b.set(e, "idempotency-key", t))), mt = (e, t) => ({
887
892
  update: (n, r) => {
888
893
  e.update(n, r, t);
889
894
  },
890
895
  forTag: (n, r) => e.forTag(n, r, t)
891
896
  }), q = (e, t) => {
892
- let { runtime: r, cache: i, client: a, descriptors: l, errorBus: u } = j(e), d = l[t], p = d?.targets;
897
+ let { runtime: r, cache: i, client: a, descriptors: l, errorBus: u } = N(e), d = l[t], p = d?.targets;
893
898
  if (process.env.NODE_ENV !== "production") {
894
899
  let n = d?.kind;
895
900
  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.`);
896
901
  }
897
- 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) => {
902
+ let [m, h] = c(!1), [g, _] = c(void 0), [v, y] = c(void 0), b = s(null), x = s(!1), S = n(async (n, o) => {
898
903
  let s = o?.onError !== void 0 || o?.notify?.error !== void 0, c = (e) => {
899
904
  o?.onError?.(e, n);
900
- let t = ot(o?.notify?.error, e, n);
905
+ let t = ct(o?.notify?.error, e, n);
901
906
  t !== void 0 && K?.error(t);
902
907
  };
903
908
  h(!0), _(void 0);
904
- let l = ct();
905
- W({
909
+ let l = ut(), d = o?.idempotencyKey ?? ft();
910
+ tt({
906
911
  id: l,
907
912
  apiName: e,
908
913
  tag: t,
909
914
  input: n
910
915
  });
911
- let d = b.current, m = x.current;
912
- if (d) try {
913
- d(lt(i, l), n);
916
+ let m = b.current, g = x.current;
917
+ if (m) try {
918
+ m(mt(i, l), n);
914
919
  } catch (e) {
915
920
  if (_(e), h(!1), i.revertByMutation(l), G(l, {
916
921
  status: "error",
@@ -918,17 +923,17 @@ var Je = () => {
918
923
  }), s) return c(e);
919
924
  throw e;
920
925
  }
921
- else !m && p && p.length > 0 && i.autoApply(p, n, l);
922
- let g;
926
+ else !g && p && p.length > 0 && i.autoApply(p, n, l);
927
+ let v;
923
928
  try {
924
- let s = z(a, t), c = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
925
- g = e.traceId, S({
929
+ let s = H(a, t), c = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
930
+ v = e.traceId, w({
926
931
  traceId: e.traceId,
927
932
  spanId: e.spanId,
928
933
  source: "mutation",
929
934
  tag: t
930
935
  });
931
- })), f.catchAll(() => f.void), f.zipRight(s(n))).pipe(f.withSpan(`client.mutation.${t}`, { attributes: {
936
+ })), f.catchAll(() => f.void), f.zipRight(pt(s(n), d))).pipe(f.withSpan(`client.mutation.${t}`, { attributes: {
932
937
  "voltro.api": e,
933
938
  "voltro.mutationId": l,
934
939
  "rpc.tag": t
@@ -937,10 +942,10 @@ var Je = () => {
937
942
  status: "success",
938
943
  output: u
939
944
  }), i.confirmByMutation(l), o?.onSuccess?.(u, n);
940
- let d = ot(o?.notify?.success, u, n);
941
- return d !== void 0 && K?.success(d), u;
945
+ let p = ct(o?.notify?.success, u, n);
946
+ return p !== void 0 && K?.success(p), u;
942
947
  } catch (e) {
943
- let n = rt(e, g);
948
+ let n = at(e, v);
944
949
  if (_(n), G(l, {
945
950
  status: "error",
946
951
  error: n
@@ -948,7 +953,7 @@ var Je = () => {
948
953
  source: "mutation",
949
954
  tag: t,
950
955
  error: n,
951
- ...g === void 0 ? {} : { traceId: g }
956
+ ...v === void 0 ? {} : { traceId: v }
952
957
  }), s) return c(n);
953
958
  throw n;
954
959
  } finally {
@@ -964,7 +969,7 @@ var Je = () => {
964
969
  ]);
965
970
  return o(() => {
966
971
  let e = {
967
- mutate: C,
972
+ mutate: S,
968
973
  pending: m,
969
974
  error: g,
970
975
  data: v,
@@ -973,12 +978,12 @@ var Je = () => {
973
978
  };
974
979
  return e;
975
980
  }, [
976
- C,
981
+ S,
977
982
  m,
978
983
  g,
979
984
  v
980
985
  ]);
981
- }, ut = (e, t) => {
986
+ }, ht = (e, t) => {
982
987
  if (t === void 0 || typeof e != "object" || !e) return e;
983
988
  try {
984
989
  Object.defineProperty(e, "__voltroTraceId", {
@@ -988,8 +993,8 @@ var Je = () => {
988
993
  });
989
994
  } catch {}
990
995
  return e;
991
- }, dt = (e, t, n) => typeof e == "function" ? e(t, n) : e, ft = 0, pt = () => `act_${++ft}`, J = (e, t) => {
992
- let { runtime: r, client: i, descriptors: a, errorBus: s } = j(e);
996
+ }, gt = (e, t, n) => typeof e == "function" ? e(t, n) : e, _t = 0, vt = () => `act_${++_t}`, J = (e, t) => {
997
+ let { runtime: r, client: i, descriptors: a, errorBus: s } = N(e);
993
998
  if (process.env.NODE_ENV !== "production") {
994
999
  let n = a[t]?.kind;
995
1000
  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.`);
@@ -997,23 +1002,23 @@ var Je = () => {
997
1002
  let [l, u] = c(!1), [d, p] = c(void 0), [m, h] = c(void 0), g = n(async (n, a) => {
998
1003
  let o = a?.onError !== void 0 || a?.notify?.error !== void 0;
999
1004
  u(!0), p(void 0);
1000
- let c = pt();
1001
- W({
1005
+ let c = vt(), l = a?.idempotencyKey ?? ft();
1006
+ tt({
1002
1007
  id: c,
1003
1008
  apiName: e,
1004
1009
  tag: t,
1005
1010
  input: n
1006
1011
  });
1007
- let l;
1012
+ let d;
1008
1013
  try {
1009
- let o = z(i, t), s = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
1010
- l = e.traceId, S({
1014
+ let o = H(i, t), s = f.currentSpan.pipe(f.tap((e) => f.sync(() => {
1015
+ d = e.traceId, w({
1011
1016
  traceId: e.traceId,
1012
1017
  spanId: e.spanId,
1013
1018
  source: "action",
1014
1019
  tag: t
1015
1020
  });
1016
- })), f.catchAll(() => f.void), f.zipRight(o(n))).pipe(f.withSpan(`client.action.${t}`, { attributes: {
1021
+ })), f.catchAll(() => f.void), f.zipRight(pt(o(n), l))).pipe(f.withSpan(`client.action.${t}`, { attributes: {
1017
1022
  "voltro.api": e,
1018
1023
  "voltro.actionId": c,
1019
1024
  "rpc.tag": t
@@ -1022,10 +1027,10 @@ var Je = () => {
1022
1027
  status: "success",
1023
1028
  output: u
1024
1029
  }), a?.onSuccess?.(u, n);
1025
- let d = dt(a?.notify?.success, u, n);
1026
- return d !== void 0 && at()?.success(d), u;
1030
+ let p = gt(a?.notify?.success, u, n);
1031
+ return p !== void 0 && st()?.success(p), u;
1027
1032
  } catch (e) {
1028
- let r = ut(e, l);
1033
+ let r = ht(e, d);
1029
1034
  if (p(r), G(c, {
1030
1035
  status: "error",
1031
1036
  error: r
@@ -1033,11 +1038,11 @@ var Je = () => {
1033
1038
  source: "action",
1034
1039
  tag: t,
1035
1040
  error: r,
1036
- ...l === void 0 ? {} : { traceId: l }
1041
+ ...d === void 0 ? {} : { traceId: d }
1037
1042
  }), o) {
1038
1043
  a?.onError?.(r, n);
1039
- let e = dt(a?.notify?.error, r, n);
1040
- e !== void 0 && at()?.error(e);
1044
+ let e = gt(a?.notify?.error, r, n);
1045
+ e !== void 0 && st()?.error(e);
1041
1046
  return;
1042
1047
  }
1043
1048
  throw r;
@@ -1062,7 +1067,7 @@ var Je = () => {
1062
1067
  d,
1063
1068
  m
1064
1069
  ]);
1065
- }, mt = "storage.mintUploadTicket", ht = "storage.mintPresignedUpload", gt = "storage.finalizeUpload", _t = "storage.beginResumableUpload", vt = "storage.beginMultipartUpload", yt = "storage.signMultipartPart", bt = "storage.completeMultipartUpload", xt = "storage.abortMultipartUpload", St = (e, t, n, r) => new Promise((i, a) => {
1070
+ }, Y = "storage.mintUploadTicket", yt = "storage.mintPresignedUpload", bt = "storage.finalizeUpload", xt = "storage.beginResumableUpload", St = "storage.beginMultipartUpload", Ct = "storage.signMultipartPart", wt = "storage.completeMultipartUpload", Tt = "storage.abortMultipartUpload", Et = (e, t, n, r) => new Promise((i, a) => {
1066
1071
  let o = new XMLHttpRequest();
1067
1072
  if (o.open("PUT", e), o.upload.onprogress = (e) => {
1068
1073
  e.lengthComputable && n(e.loaded / e.total);
@@ -1076,7 +1081,7 @@ var Je = () => {
1076
1081
  return;
1077
1082
  }
1078
1083
  r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
1079
- }), Ct = (e, t, n, r, i, a) => new Promise((o, s) => {
1084
+ }), Dt = (e, t, n, r, i, a) => new Promise((o, s) => {
1080
1085
  let c = new XMLHttpRequest();
1081
1086
  if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
1082
1087
  e.lengthComputable && r(e.loaded / e.total);
@@ -1094,7 +1099,7 @@ var Je = () => {
1094
1099
  return;
1095
1100
  }
1096
1101
  i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
1097
- }), wt = (e, t, n, r, i) => new Promise((a, o) => {
1102
+ }), Ot = (e, t, n, r, i) => new Promise((a, o) => {
1098
1103
  let s = new XMLHttpRequest();
1099
1104
  if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1100
1105
  e.lengthComputable && r(e.loaded / e.total);
@@ -1105,7 +1110,7 @@ var Je = () => {
1105
1110
  return;
1106
1111
  }
1107
1112
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1108
- }), Tt = (e, t, n, r, i) => new Promise((a, o) => {
1113
+ }), kt = (e, t, n, r, i) => new Promise((a, o) => {
1109
1114
  let s = new XMLHttpRequest();
1110
1115
  if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1111
1116
  e.lengthComputable && r(e.loaded / e.total);
@@ -1121,8 +1126,8 @@ var Je = () => {
1121
1126
  return;
1122
1127
  }
1123
1128
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1124
- }), Et = (e, t = {}) => {
1125
- let { runtime: r, client: i, inspectBaseUrl: a, errorBus: l } = j(e), [u, d] = c(0), [f, p] = c("idle"), [m, h] = c(void 0), g = s(null), _ = n(() => {
1129
+ }), At = (e, t = {}) => {
1130
+ let { runtime: r, client: i, inspectBaseUrl: a, errorBus: l } = N(e), [u, d] = c(0), [f, p] = c("idle"), [m, h] = c(void 0), g = s(null), _ = n(() => {
1126
1131
  d(0), p("idle"), h(void 0);
1127
1132
  }, []), v = n(() => {
1128
1133
  g.current?.abort();
@@ -1142,16 +1147,16 @@ var Je = () => {
1142
1147
  ...e.width === void 0 ? {} : { width: e.width },
1143
1148
  ...e.height === void 0 ? {} : { height: e.height }
1144
1149
  }), g = async () => {
1145
- let s = n.mintTag ?? t.mintTag ?? mt, l = z(i, s), u = await r.runPromise(l({
1150
+ let s = n.mintTag ?? t.mintTag ?? Y, l = H(i, s), u = await r.runPromise(l({
1146
1151
  contentType: c,
1147
1152
  ...m,
1148
1153
  ...d ? { key: d } : {}
1149
- })), f = await Tt(y(u.uploadUrl), c, e, o, a);
1154
+ })), f = await kt(y(u.uploadUrl), c, e, o, a);
1150
1155
  return h(f);
1151
1156
  }, _ = async () => {
1152
- let s = n.presignMintTag ?? t.presignMintTag ?? ht, l = n.finalizeTag ?? t.finalizeTag ?? gt, u;
1157
+ let s = n.presignMintTag ?? t.presignMintTag ?? yt, l = n.finalizeTag ?? t.finalizeTag ?? bt, u;
1153
1158
  try {
1154
- let e = z(i, s);
1159
+ let e = H(i, s);
1155
1160
  u = await r.runPromise(e({
1156
1161
  contentType: c,
1157
1162
  ...m
@@ -1159,11 +1164,11 @@ var Je = () => {
1159
1164
  } catch {
1160
1165
  return null;
1161
1166
  }
1162
- await wt(u.uploadUrl, c, e, o, a);
1163
- let d = z(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
1167
+ await Ot(u.uploadUrl, c, e, o, a);
1168
+ let d = H(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
1164
1169
  return h(f);
1165
1170
  }, v = async () => {
1166
- let s = n.beginResumableTag ?? t.beginResumableTag ?? _t, l = z(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
1171
+ let s = n.beginResumableTag ?? t.beginResumableTag ?? xt, l = H(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
1167
1172
  contentType: c,
1168
1173
  size: u,
1169
1174
  ...m,
@@ -1174,7 +1179,7 @@ var Je = () => {
1174
1179
  for (;;) {
1175
1180
  if (a.aborted) throw new DOMException("upload aborted", "AbortError");
1176
1181
  try {
1177
- let e = await Ct(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
1182
+ let e = await Dt(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
1178
1183
  s && (x = e);
1179
1184
  break;
1180
1185
  } catch (e) {
@@ -1186,9 +1191,9 @@ var Je = () => {
1186
1191
  if (!x) throw Error("resumable upload produced no final reply");
1187
1192
  return h(x);
1188
1193
  }, b = async () => {
1189
- let s = n.multipartBeginTag ?? t.multipartBeginTag ?? vt, u = n.multipartSignTag ?? t.multipartSignTag ?? yt, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? bt, f = n.multipartAbortTag ?? t.multipartAbortTag ?? xt, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
1194
+ let s = n.multipartBeginTag ?? t.multipartBeginTag ?? St, u = n.multipartSignTag ?? t.multipartSignTag ?? Ct, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? wt, f = n.multipartAbortTag ?? t.multipartAbortTag ?? Tt, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
1190
1195
  try {
1191
- let e = z(i, s);
1196
+ let e = H(i, s);
1192
1197
  g = await r.runPromise(e({
1193
1198
  contentType: c,
1194
1199
  size: p,
@@ -1198,7 +1203,7 @@ var Je = () => {
1198
1203
  } catch {
1199
1204
  return null;
1200
1205
  }
1201
- let _ = z(i, u), v = z(i, d), b = z(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;
1206
+ 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;
1202
1207
  try {
1203
1208
  for (let t = 0; t < S; t++) {
1204
1209
  let n = t * x, i = Math.min(p, n + x), s = e.slice(n, i), c = t + 1, l = i - n, u = 0;
@@ -1208,7 +1213,7 @@ var Je = () => {
1208
1213
  let { url: e } = await r.runPromise(_({
1209
1214
  multipartToken: g.multipartToken,
1210
1215
  partNumber: c
1211
- })), t = await St(e, s, (e) => o((T + e * l) / p), a);
1216
+ })), t = await Et(e, s, (e) => o((T + e * l) / p), a);
1212
1217
  w.push({
1213
1218
  partNumber: c,
1214
1219
  etag: t
@@ -1282,7 +1287,7 @@ var Je = () => {
1282
1287
  } catch (e) {
1283
1288
  throw p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
1284
1289
  source: "action",
1285
- tag: n.mintTag ?? t.mintTag ?? mt,
1290
+ tag: n.mintTag ?? t.mintTag ?? Y,
1286
1291
  error: e
1287
1292
  }), e;
1288
1293
  }
@@ -1308,7 +1313,7 @@ var Je = () => {
1308
1313
  } catch (e) {
1309
1314
  throw r.abort(), p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
1310
1315
  source: "action",
1311
- tag: n.mintTag ?? t.mintTag ?? mt,
1316
+ tag: n.mintTag ?? t.mintTag ?? Y,
1312
1317
  error: e
1313
1318
  }), e;
1314
1319
  }
@@ -1353,9 +1358,9 @@ var Je = () => {
1353
1358
  w,
1354
1359
  T
1355
1360
  ]);
1356
- }, Y = async (e) => {
1357
- let t = z(e.client, e.tag), n = f.currentSpan.pipe(f.tap((t) => f.sync(() => {
1358
- S({
1361
+ }, X = async (e) => {
1362
+ let t = H(e.client, e.tag), n = f.currentSpan.pipe(f.tap((t) => f.sync(() => {
1363
+ w({
1359
1364
  traceId: t.traceId,
1360
1365
  spanId: t.spanId,
1361
1366
  source: "mutation",
@@ -1366,8 +1371,8 @@ var Je = () => {
1366
1371
  "rpc.tag": e.tag
1367
1372
  } }));
1368
1373
  return e.runtime.runPromise(n);
1369
- }, Dt = (e, t) => {
1370
- let { runtime: r, client: i, descriptors: a } = j(e);
1374
+ }, jt = (e, t) => {
1375
+ let { runtime: r, client: i, descriptors: a } = N(e);
1371
1376
  if (process.env.NODE_ENV !== "production") {
1372
1377
  let n = a[t]?.kind;
1373
1378
  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.`);
@@ -1375,7 +1380,7 @@ var Je = () => {
1375
1380
  let [s, l] = c(!1), [u, d] = c(void 0), [f, p] = c(void 0), m = n(async (n) => {
1376
1381
  l(!0), d(void 0);
1377
1382
  try {
1378
- let a = await Y({
1383
+ let a = await X({
1379
1384
  apiName: e,
1380
1385
  runtime: r,
1381
1386
  client: i,
@@ -1395,7 +1400,7 @@ var Je = () => {
1395
1400
  i,
1396
1401
  t
1397
1402
  ]), h = n(async (t) => {
1398
- await Y({
1403
+ await X({
1399
1404
  apiName: e,
1400
1405
  runtime: r,
1401
1406
  client: i,
@@ -1408,7 +1413,7 @@ var Je = () => {
1408
1413
  r,
1409
1414
  i
1410
1415
  ]), g = n(async (t) => {
1411
- await Y({
1416
+ await X({
1412
1417
  apiName: e,
1413
1418
  runtime: r,
1414
1419
  client: i,
@@ -1420,7 +1425,7 @@ var Je = () => {
1420
1425
  e,
1421
1426
  r,
1422
1427
  i
1423
- ]), _ = n(async (t, n, a) => Y({
1428
+ ]), _ = n(async (t, n, a) => X({
1424
1429
  apiName: e,
1425
1430
  runtime: r,
1426
1431
  client: i,
@@ -1435,7 +1440,7 @@ var Je = () => {
1435
1440
  e,
1436
1441
  r,
1437
1442
  i
1438
- ]), v = n(async (t, n, a, o) => Y({
1443
+ ]), v = n(async (t, n, a, o) => X({
1439
1444
  apiName: e,
1440
1445
  runtime: r,
1441
1446
  client: i,
@@ -1471,11 +1476,11 @@ var Je = () => {
1471
1476
  u,
1472
1477
  f
1473
1478
  ]);
1474
- }, Ot = (e) => {
1475
- let { runtime: t, client: r } = j(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o) => {
1479
+ }, Mt = (e) => {
1480
+ let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o) => {
1476
1481
  a(!0), l(void 0);
1477
1482
  try {
1478
- let a = await Y({
1483
+ let a = await X({
1479
1484
  apiName: e,
1480
1485
  runtime: t,
1481
1486
  client: r,
@@ -1509,11 +1514,11 @@ var Je = () => {
1509
1514
  s,
1510
1515
  u
1511
1516
  ]);
1512
- }, kt = (e) => {
1513
- let { runtime: t, client: r } = j(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o, s) => {
1517
+ }, Nt = (e) => {
1518
+ let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o, s) => {
1514
1519
  a(!0), l(void 0);
1515
1520
  try {
1516
- let a = await Y({
1521
+ let a = await X({
1517
1522
  apiName: e,
1518
1523
  runtime: t,
1519
1524
  client: r,
@@ -1548,8 +1553,8 @@ var Je = () => {
1548
1553
  s,
1549
1554
  u
1550
1555
  ]);
1551
- }, At = (e, t) => {
1552
- let n = B(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
1556
+ }, Pt = (e, t) => {
1557
+ let n = U(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
1553
1558
  return n.loading || n.idle ? {
1554
1559
  ...n,
1555
1560
  run: void 0
@@ -1557,8 +1562,8 @@ var Je = () => {
1557
1562
  ...n,
1558
1563
  run: n.data[0]
1559
1564
  };
1560
- }, jt = (e, t = {}, n = {}) => {
1561
- let r = B(e, "__voltro.workflow.runs", t, n);
1565
+ }, Ft = (e, t = {}, n = {}) => {
1566
+ let r = U(e, "__voltro.workflow.runs", t, n);
1562
1567
  return r.loading || r.idle ? {
1563
1568
  ...r,
1564
1569
  runs: []
@@ -1566,8 +1571,8 @@ var Je = () => {
1566
1571
  ...r,
1567
1572
  runs: r.data
1568
1573
  };
1569
- }, Mt = (e, t) => {
1570
- let n = B(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
1574
+ }, It = (e, t) => {
1575
+ let n = U(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
1571
1576
  return n.loading || n.idle ? {
1572
1577
  ...n,
1573
1578
  steps: []
@@ -1575,8 +1580,8 @@ var Je = () => {
1575
1580
  ...n,
1576
1581
  steps: n.data
1577
1582
  };
1578
- }, Nt = (e, t) => {
1579
- let n = B(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
1583
+ }, Lt = (e, t) => {
1584
+ let n = U(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
1580
1585
  return n.loading || n.idle ? {
1581
1586
  ...n,
1582
1587
  events: []
@@ -1584,8 +1589,8 @@ var Je = () => {
1584
1589
  ...n,
1585
1590
  events: n.data
1586
1591
  };
1587
- }, Pt = Nt, Ft = (e, t = {}, n = {}) => {
1588
- let r = B(e, "__voltro.workflow.domainEvents", t, n);
1592
+ }, Rt = Lt, zt = (e, t = {}, n = {}) => {
1593
+ let r = U(e, "__voltro.workflow.domainEvents", t, n);
1589
1594
  return r.loading || r.idle ? {
1590
1595
  ...r,
1591
1596
  events: []
@@ -1593,8 +1598,8 @@ var Je = () => {
1593
1598
  ...r,
1594
1599
  events: r.data
1595
1600
  };
1596
- }, It = (e, t) => {
1597
- let n = B(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
1601
+ }, Bt = (e, t) => {
1602
+ let n = U(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
1598
1603
  return n.loading || n.idle ? {
1599
1604
  ...n,
1600
1605
  deliveries: []
@@ -1602,42 +1607,42 @@ var Je = () => {
1602
1607
  ...n,
1603
1608
  deliveries: n.data
1604
1609
  };
1605
- }, Lt = (e, t) => {
1610
+ }, Vt = (e, t) => {
1606
1611
  let n = e.payload;
1607
1612
  if (!n || typeof n != "object") return;
1608
1613
  let r = n[t];
1609
1614
  return typeof r == "string" ? r : void 0;
1610
- }, Rt = (e) => {
1615
+ }, Ht = (e) => {
1611
1616
  let t = e.payload;
1612
1617
  if (!t || typeof t != "object") return;
1613
1618
  let n = t.updateId;
1614
1619
  return typeof n == "string" ? n : void 0;
1615
- }, zt = (e) => {
1620
+ }, Ut = (e) => {
1616
1621
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
1617
1622
  for (let r of e) if (r.eventType === "signal-received") {
1618
- let e = Lt(r, "signalName");
1623
+ let e = Vt(r, "signalName");
1619
1624
  e && t.add(e);
1620
1625
  } else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
1621
- let e = Rt(r);
1626
+ let e = Ht(r);
1622
1627
  e && n.add(e);
1623
1628
  }
1624
1629
  for (let r = e.length - 1; r >= 0; --r) {
1625
1630
  let i = e[r];
1626
1631
  if (i.eventType === "signal-awaited") {
1627
- let e = Lt(i, "signalName");
1632
+ let e = Vt(i, "signalName");
1628
1633
  if (e && !t.has(e)) return {
1629
1634
  name: e,
1630
1635
  kind: "signal"
1631
1636
  };
1632
1637
  } else if (i.eventType === "update-requested") {
1633
- let e = Rt(i), t = Lt(i, "updateName");
1638
+ let e = Ht(i), t = Vt(i, "updateName");
1634
1639
  if (t && (!e || !n.has(e))) return {
1635
1640
  name: t,
1636
1641
  kind: "update"
1637
1642
  };
1638
1643
  }
1639
1644
  }
1640
- }, Bt = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Vt = (e, t) => {
1645
+ }, Wt = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Gt = (e, t) => {
1641
1646
  if (!e || e.status !== "failed") return;
1642
1647
  let n = t.find((e) => e.status === "failed");
1643
1648
  return {
@@ -1645,8 +1650,8 @@ var Je = () => {
1645
1650
  message: e.errorMessage,
1646
1651
  step: n?.stepName
1647
1652
  };
1648
- }, Ht = (e, t) => {
1649
- let r = At(e, t), i = Mt(e, t), a = Nt(e, t), s = Dt(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
1653
+ }, Kt = (e, t) => {
1654
+ let r = Pt(e, t), i = It(e, t), a = Lt(e, t), s = jt(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
1650
1655
  if (!c) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
1651
1656
  await s.cancel({
1652
1657
  workflowName: c.tag,
@@ -1670,9 +1675,9 @@ var Je = () => {
1670
1675
  status: c?.status,
1671
1676
  steps: l,
1672
1677
  events: u,
1673
- currentStep: Bt(l),
1674
- waitingFor: c?.status === "suspended" ? zt(u) : void 0,
1675
- error: Vt(c, l),
1678
+ currentStep: Wt(l),
1679
+ waitingFor: c?.status === "suspended" ? Ut(u) : void 0,
1680
+ error: Gt(c, l),
1676
1681
  traceId: c?.traceId,
1677
1682
  loading: r.data === void 0,
1678
1683
  cancel: d,
@@ -1689,8 +1694,8 @@ var Je = () => {
1689
1694
  p,
1690
1695
  m
1691
1696
  ]);
1692
- }, Ut = (e, t) => {
1693
- let { runtime: r, client: i } = j(e), [a, o] = c([]), [l, d] = c("idle"), [p, h] = c(void 0), g = s(null), v = n(() => {
1697
+ }, qt = (e, t) => {
1698
+ let { runtime: r, client: i } = N(e), [a, o] = c([]), [l, d] = c("idle"), [p, h] = c(void 0), g = s(null), v = n(() => {
1694
1699
  let e = g.current;
1695
1700
  e && (g.current = null, r.runFork(m.interrupt(e)), d((e) => e === "streaming" ? "idle" : e));
1696
1701
  }, [r]);
@@ -1701,7 +1706,7 @@ var Je = () => {
1701
1706
  start: n((e = {}) => {
1702
1707
  let n = g.current;
1703
1708
  n && r.runFork(m.interrupt(n)), o([]), h(void 0), d("streaming");
1704
- let a = z(i, t)(e), s = _.runForEach(a, (e) => f.sync(() => o((t) => [...t, e]))).pipe(f.matchCause({
1709
+ let a = H(i, t)(e), s = _.runForEach(a, (e) => f.sync(() => o((t) => [...t, e]))).pipe(f.matchCause({
1705
1710
  onSuccess: () => {
1706
1711
  d("done");
1707
1712
  },
@@ -1717,7 +1722,7 @@ var Je = () => {
1717
1722
  ]),
1718
1723
  cancel: v
1719
1724
  };
1720
- }, Wt = (e, t, n, r) => {
1725
+ }, Jt = (e, t, n, r) => {
1721
1726
  let i = 0, a = !1, o = (e) => f.sync(() => {
1722
1727
  e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
1723
1728
  }), s = (e, t, a) => {
@@ -1740,15 +1745,15 @@ var Je = () => {
1740
1745
  }));
1741
1746
  });
1742
1747
  return c(0);
1743
- }, Gt = (e) => {
1748
+ }, Yt = (e) => {
1744
1749
  let t = e?._tag;
1745
1750
  return t === "done" || t === "error";
1746
- }, Kt = (e, t, r = {}) => {
1747
- let { runtime: i, client: a } = j(e), [o, l] = c([]), [u, d] = c("idle"), [f, p] = c(0), [h, g] = c(void 0), _ = s(null), v = {
1751
+ }, Xt = (e, t, r = {}) => {
1752
+ let { runtime: i, client: a } = N(e), [o, l] = c([]), [u, d] = c("idle"), [f, p] = c(0), [h, g] = c(void 0), _ = s(null), v = {
1748
1753
  maxReconnects: r.maxReconnects ?? 6,
1749
1754
  backoffMs: r.backoffMs ?? 400,
1750
1755
  maxBackoffMs: r.maxBackoffMs ?? 8e3,
1751
- isTerminal: r.isTerminal ?? Gt
1756
+ isTerminal: r.isTerminal ?? Yt
1752
1757
  }, y = n(() => {
1753
1758
  let e = _.current;
1754
1759
  e && (_.current = null, i.runFork(m.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
@@ -1761,13 +1766,13 @@ var Je = () => {
1761
1766
  start: n((e = {}) => {
1762
1767
  let n = _.current;
1763
1768
  n && i.runFork(m.interrupt(n)), l([]), g(void 0), p(0), d("streaming");
1764
- let r = z(a, t), o = {
1769
+ let r = H(a, t), o = {
1765
1770
  onEvent: (e) => l((t) => [...t, e]),
1766
1771
  onStatus: d,
1767
1772
  onReconnect: () => p((e) => e + 1),
1768
1773
  onError: g
1769
1774
  };
1770
- _.current = i.runFork(Wt(r, e, o, v));
1775
+ _.current = i.runFork(Jt(r, e, o, v));
1771
1776
  }, [
1772
1777
  i,
1773
1778
  a,
@@ -1779,13 +1784,13 @@ var Je = () => {
1779
1784
  ]),
1780
1785
  cancel: y
1781
1786
  };
1782
- }, qt = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), Jt = (e) => {
1787
+ }, Zt = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), Qt = (e) => {
1783
1788
  for (let t = e.length - 1; t >= 0; --t) {
1784
1789
  let n = e[t];
1785
1790
  if (n.role === "user" && n.content) return n.content;
1786
1791
  }
1787
- }, Yt = (e, t, r) => {
1788
- let { threadId: i } = r, a = B(e, `${t}.messages`, { threadId: i }), s = J(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(qt), [a.data]), l = n((e, t = {}) => s.run({
1792
+ }, $t = (e, t, r) => {
1793
+ let { threadId: i } = r, a = U(e, `${t}.messages`, { threadId: i }), s = J(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(Zt), [a.data]), l = n((e, t = {}) => s.run({
1789
1794
  threadId: i,
1790
1795
  order: a.data?.length ?? 0,
1791
1796
  prompt: e,
@@ -1795,7 +1800,7 @@ var Je = () => {
1795
1800
  i,
1796
1801
  a.data
1797
1802
  ]), u = n(() => {
1798
- let e = Jt(c);
1803
+ let e = Qt(c);
1799
1804
  return e === void 0 ? void 0 : l(e);
1800
1805
  }, [c, l]);
1801
1806
  return o(() => ({
@@ -1815,8 +1820,8 @@ var Je = () => {
1815
1820
  l,
1816
1821
  u
1817
1822
  ]);
1818
- }, Xt = (e, t) => {
1819
- let { events: r, status: i, error: l, start: u, cancel: d } = Ut(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
1823
+ }, en = (e, t) => {
1824
+ let { events: r, status: i, error: l, start: u, cancel: d } = qt(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
1820
1825
  return a(() => {
1821
1826
  if (i !== "done" || m.current === null) return;
1822
1827
  let e = m.current;
@@ -1842,7 +1847,7 @@ var Je = () => {
1842
1847
  }, [u]),
1843
1848
  cancel: d
1844
1849
  };
1845
- }, Zt = (e, t) => {
1850
+ }, tn = (e, t) => {
1846
1851
  let r = J(e, t), [i, a] = c(void 0), s = n(async (e) => {
1847
1852
  let t = await r.run({ question: e });
1848
1853
  return a(t), t;
@@ -1860,43 +1865,43 @@ var Je = () => {
1860
1865
  r.error,
1861
1866
  l
1862
1867
  ]);
1863
- }, Qt = (e) => {
1864
- let { cache: t, runtime: r } = j(e);
1868
+ }, nn = (e) => {
1869
+ let { cache: t, runtime: r } = N(e);
1865
1870
  return n(() => {
1866
1871
  t.refreshAll(r);
1867
1872
  }, [t, r]);
1868
- }, $t = /* @__PURE__ */ new Set(), en = (e) => {
1869
- for (let t of $t) try {
1873
+ }, rn = /* @__PURE__ */ new Set(), an = (e) => {
1874
+ for (let t of rn) try {
1870
1875
  t(e);
1871
1876
  } catch {}
1872
- }, tn = (e) => ($t.add(e), () => {
1873
- $t.delete(e);
1874
- }), nn = (e, t) => {
1875
- en({
1877
+ }, on = (e) => (rn.add(e), () => {
1878
+ rn.delete(e);
1879
+ }), sn = (e, t) => {
1880
+ an({
1876
1881
  error: e,
1877
1882
  source: "manual",
1878
1883
  ...t ? { context: t } : {}
1879
1884
  });
1880
- }, rn = (e, t) => {
1881
- let { errorBus: n } = j(e);
1885
+ }, cn = (e, t) => {
1886
+ let { errorBus: n } = N(e);
1882
1887
  a(() => n.on(t), [n, t]);
1883
- }, an = "#/$defs/", on = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), X = (e, t) => {
1888
+ }, ln = "#/$defs/", un = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Z = (e, t) => {
1884
1889
  let n = e;
1885
1890
  for (let e = 0; e < 8; e += 1) {
1886
1891
  let e = n.$ref;
1887
- if (typeof e != "string" || !e.startsWith(an)) return n;
1892
+ if (typeof e != "string" || !e.startsWith(ln)) return n;
1888
1893
  let r = t[e.slice(8)];
1889
1894
  if (!r || typeof r != "object") return n;
1890
1895
  n = r;
1891
1896
  }
1892
1897
  return n;
1893
- }, sn = (e) => {
1898
+ }, dn = (e) => {
1894
1899
  if (!e || typeof e != "object") return !1;
1895
1900
  let t = e;
1896
1901
  if (t.type === "null" || t.const === null) return !0;
1897
1902
  let n = t.enum;
1898
1903
  return Array.isArray(n) && n.length === 1 && n[0] === null;
1899
- }, cn = (e, t) => {
1904
+ }, fn = (e, t) => {
1900
1905
  let n = e.type;
1901
1906
  if (Array.isArray(n) && n.includes("null")) {
1902
1907
  let t = n.filter((e) => e !== "null");
@@ -1911,9 +1916,9 @@ var Je = () => {
1911
1916
  for (let n of ["anyOf", "oneOf"]) {
1912
1917
  let r = e[n];
1913
1918
  if (!Array.isArray(r)) continue;
1914
- let i = r.filter((e) => !sn(e));
1919
+ let i = r.filter((e) => !dn(e));
1915
1920
  if (i.length !== r.length) return i.length === 1 ? {
1916
- node: X(i[0], t),
1921
+ node: Z(i[0], t),
1917
1922
  nullable: !0
1918
1923
  } : {
1919
1924
  node: {
@@ -1927,14 +1932,14 @@ var Je = () => {
1927
1932
  node: e,
1928
1933
  nullable: !1
1929
1934
  };
1930
- }, ln = (e) => e.map((e) => ({
1935
+ }, pn = (e) => e.map((e) => ({
1931
1936
  value: String(e),
1932
- label: on(String(e))
1933
- })), un = (e) => {
1937
+ label: un(String(e))
1938
+ })), mn = (e) => {
1934
1939
  let t = e.enum;
1935
1940
  if (Array.isArray(t) && t.length > 0) return {
1936
1941
  widget: "select",
1937
- options: ln(t)
1942
+ options: pn(t)
1938
1943
  };
1939
1944
  let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
1940
1945
  switch (r) {
@@ -1945,45 +1950,45 @@ var Je = () => {
1945
1950
  case "array": return { widget: "multi-select" };
1946
1951
  default: return { widget: "custom" };
1947
1952
  }
1948
- }, dn = (e, t, n) => Object.entries(e).map(([e, r]) => {
1949
- let { node: i, nullable: a } = cn(X(r, n), n), o = X(i, n), { widget: s, options: c } = un(o);
1953
+ }, hn = (e, t, n) => Object.entries(e).map(([e, r]) => {
1954
+ let { node: i, nullable: a } = fn(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = mn(o);
1950
1955
  return {
1951
1956
  name: e,
1952
- label: on(e),
1957
+ label: un(e),
1953
1958
  widget: s,
1954
1959
  required: t.has(e),
1955
1960
  nullable: a,
1956
1961
  ...c ? { options: c } : {},
1957
1962
  jsonSchema: o
1958
1963
  };
1959
- }), fn = (e) => {
1964
+ }), gn = (e) => {
1960
1965
  try {
1961
1966
  return h.make(e);
1962
1967
  } catch {
1963
1968
  return;
1964
1969
  }
1965
- }, Z = (e) => {
1966
- let t = fn(e);
1970
+ }, Q = (e) => {
1971
+ let t = gn(e);
1967
1972
  if (t === void 0) return [];
1968
- let n = t.$defs ?? {}, r = X(t, n), i = r.properties;
1969
- return i ? dn(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
1970
- }, pn = (e) => {
1971
- let t = fn(e);
1973
+ let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
1974
+ return i ? hn(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
1975
+ }, _n = (e) => {
1976
+ let t = gn(e);
1972
1977
  if (t === void 0) return [];
1973
- let n = t.$defs ?? {}, r = X(t, n);
1978
+ let n = t.$defs ?? {}, r = Z(t, n);
1974
1979
  if (r.type !== "array") return [];
1975
1980
  let i = r.items;
1976
1981
  if (!i || typeof i != "object") return [];
1977
- let a = X(i, n), o = a.properties;
1978
- return o ? dn(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
1979
- }, Q = (e, t) => {
1982
+ let a = Z(i, n), o = a.properties;
1983
+ return o ? hn(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
1984
+ }, vn = (e, t) => {
1980
1985
  let n = g.decodeUnknownEither(e, { errors: "all" })(t);
1981
1986
  if (n._tag === "Right") return {
1982
1987
  valid: !0,
1983
1988
  errors: {}
1984
1989
  };
1985
1990
  let r = {};
1986
- for (let e of b.formatErrorSync(n.left)) {
1991
+ for (let e of S.formatErrorSync(n.left)) {
1987
1992
  let t = e.path.length === 0 ? "" : String(e.path[0]);
1988
1993
  t !== "" && !(t in r) && (r[t] = e.message);
1989
1994
  }
@@ -1991,10 +1996,10 @@ var Je = () => {
1991
1996
  valid: !1,
1992
1997
  errors: r
1993
1998
  };
1994
- }, mn = (e, t, r) => {
1995
- let i = j(e), a = q(e, t), l = r.schema ?? i.descriptors[t]?.input;
1999
+ }, yn = (e, t, r) => {
2000
+ let i = N(e), a = q(e, t), l = r.schema ?? i.descriptors[t]?.input;
1996
2001
  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.`);
1997
- let u = o(() => l ? Z(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
2002
+ let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
1998
2003
  p((n) => ({
1999
2004
  ...n,
2000
2005
  [e]: t
@@ -2008,7 +2013,7 @@ var Je = () => {
2008
2013
  p(d.current), h({});
2009
2014
  }, []), y = n(async () => {
2010
2015
  if (l !== void 0) {
2011
- let e = Q(l, f);
2016
+ let e = vn(l, f);
2012
2017
  if (h(e.errors), !e.valid) return;
2013
2018
  }
2014
2019
  return a.mutate(f);
@@ -2021,7 +2026,7 @@ var Je = () => {
2021
2026
  fields: u,
2022
2027
  values: f,
2023
2028
  errors: m,
2024
- isValid: o(() => l === void 0 || Q(l, f).valid, [l, f]),
2029
+ isValid: o(() => l === void 0 || vn(l, f).valid, [l, f]),
2025
2030
  pending: a.pending,
2026
2031
  submitError: a.error,
2027
2032
  data: a.data,
@@ -2030,13 +2035,13 @@ var Je = () => {
2030
2035
  reset: v,
2031
2036
  submit: y
2032
2037
  };
2033
- }, hn = (e, t, n) => e.map((e) => {
2038
+ }, bn = (e, t, n) => e.map((e) => {
2034
2039
  let r = String(e[n] ?? ""), i = e[t];
2035
2040
  return {
2036
2041
  value: r,
2037
2042
  label: i == null ? r : String(i)
2038
2043
  };
2039
- }), gn = (e, t, r = {}) => {
2044
+ }), xn = (e, t, r = {}) => {
2040
2045
  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);
2041
2046
  a(() => {
2042
2047
  if (d === p) return;
@@ -2047,7 +2052,7 @@ var Je = () => {
2047
2052
  p,
2048
2053
  i
2049
2054
  ]);
2050
- let h = r.skipUntilTerm === !0 && p.trim() === "", g = B(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => hn(g.data ?? [], s, l), [
2055
+ let h = r.skipUntilTerm === !0 && p.trim() === "", g = U(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => bn(g.data ?? [], s, l), [
2051
2056
  g.data,
2052
2057
  s,
2053
2058
  l
@@ -2058,13 +2063,13 @@ var Je = () => {
2058
2063
  term: d,
2059
2064
  search: v
2060
2065
  };
2061
- }, _n = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, vn = (e, t, r = {}) => {
2062
- let i = j(e), [a, s] = c(r.pageSize), l = B(e, t, o(() => a === void 0 ? r.input ?? {} : {
2066
+ }, Sn = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Cn = (e, t, r = {}) => {
2067
+ let i = N(e), [a, s] = c(r.pageSize), l = U(e, t, o(() => a === void 0 ? r.input ?? {} : {
2063
2068
  ...r.input,
2064
2069
  limit: a
2065
2070
  }, [r.input, a])), u = i.descriptors[t]?.output, d = n(() => {
2066
2071
  r.pageSize !== void 0 && s((e) => (e ?? r.pageSize) + r.pageSize);
2067
- }, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : pn(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
2072
+ }, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : _n(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
2068
2073
  m((t) => t?.column === e ? {
2069
2074
  column: e,
2070
2075
  direction: t.direction === "asc" ? "desc" : "asc"
@@ -2079,7 +2084,7 @@ var Je = () => {
2079
2084
  let e = l.data ?? [];
2080
2085
  if (p === void 0) return e;
2081
2086
  let t = p.direction === "asc" ? 1 : -1;
2082
- return [...e].sort((e, n) => _n(e[p.column], n[p.column]) * t);
2087
+ return [...e].sort((e, n) => Sn(e[p.column], n[p.column]) * t);
2083
2088
  }, [l.data, p]),
2084
2089
  loading: l.data === void 0,
2085
2090
  error: l.error,
@@ -2088,14 +2093,14 @@ var Je = () => {
2088
2093
  loadMore: d,
2089
2094
  hasMore: a !== void 0 && (l.data?.length ?? 0) >= a
2090
2095
  };
2091
- }, yn = (e, t, n, r) => {
2096
+ }, wn = (e, t, n, r) => {
2092
2097
  let i = e.replace(/\/$/, ""), a = new URLSearchParams({
2093
2098
  table: t,
2094
2099
  id: n
2095
2100
  });
2096
2101
  return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
2097
- }, bn = yn, xn = (e, t, n, r) => {
2098
- let { inspectBaseUrl: i } = j(e), [o, s] = c({
2102
+ }, Tn = wn, En = (e, t, n, r) => {
2103
+ let { inspectBaseUrl: i } = N(e), [o, s] = c({
2099
2104
  data: void 0,
2100
2105
  loading: !0,
2101
2106
  error: void 0
@@ -2107,7 +2112,7 @@ var Je = () => {
2107
2112
  loading: !0,
2108
2113
  error: void 0
2109
2114
  });
2110
- let a = yn(i ?? "", t, n, r);
2115
+ let a = wn(i ?? "", t, n, r);
2111
2116
  return fetch(a).then(async (e) => {
2112
2117
  if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
2113
2118
  return await e.json();
@@ -2133,8 +2138,8 @@ var Je = () => {
2133
2138
  n,
2134
2139
  r
2135
2140
  ]), o;
2136
- }, Sn = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, Cn = (e) => {
2137
- let { inspectBaseUrl: t } = j(e), [n, r] = c({
2141
+ }, Dn = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, On = (e) => {
2142
+ let { inspectBaseUrl: t } = N(e), [n, r] = c({
2138
2143
  manifest: void 0,
2139
2144
  loading: !0,
2140
2145
  error: void 0
@@ -2145,7 +2150,7 @@ var Je = () => {
2145
2150
  manifest: void 0,
2146
2151
  loading: !0,
2147
2152
  error: void 0
2148
- }), fetch(Sn(t ?? "")).then(async (e) => {
2153
+ }), fetch(Dn(t ?? "")).then(async (e) => {
2149
2154
  if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
2150
2155
  return await e.json();
2151
2156
  }).then((t) => {
@@ -2164,8 +2169,8 @@ var Je = () => {
2164
2169
  e = !0;
2165
2170
  };
2166
2171
  }, [e, t]), n;
2167
- }, wn = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Tn = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, En = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2168
- let n = e.procedures.find((e) => e.kind === "query" && wn(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Tn(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Tn(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Tn(e, t.name, "delete"));
2172
+ }, kn = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, An = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, jn = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2173
+ let n = e.procedures.find((e) => e.kind === "query" && kn(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && An(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && An(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && An(e, t.name, "delete"));
2169
2174
  return {
2170
2175
  table: t.name,
2171
2176
  columns: t.columns,
@@ -2178,7 +2183,7 @@ var Je = () => {
2178
2183
  writeScope: `${t.name}:write`,
2179
2184
  deleteScope: `${t.name}:delete`
2180
2185
  };
2181
- }), Dn = (e) => {
2186
+ }), Mn = (e) => {
2182
2187
  let [t, r] = c([]), [i, a] = c([]), s = n((e) => {
2183
2188
  r((t) => [...t, e]), a([]);
2184
2189
  }, []), l = n(async () => {
@@ -2206,8 +2211,8 @@ var Je = () => {
2206
2211
  l,
2207
2212
  u
2208
2213
  ]);
2209
- }, On = "__voltro.undo.log", kn = "__voltro.undo.apply", An = "__voltro.undo.redo", jn = (e, t) => {
2210
- let r = t?.limit, { data: i } = B(e, On, r === void 0 ? {} : { limit: r }), a = q(e, kn), o = q(e, An), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
2214
+ }, Nn = "__voltro.undo.log", Pn = "__voltro.undo.apply", Fn = "__voltro.undo.redo", In = (e, t) => {
2215
+ let r = t?.limit, { data: i } = U(e, Nn, r === void 0 ? {} : { limit: r }), a = q(e, Pn), o = q(e, Fn), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
2211
2216
  await a.mutate({ invocationId: e });
2212
2217
  }, [a]), d = n(async (e) => {
2213
2218
  await o.mutate({ invocationId: e });
@@ -2226,13 +2231,13 @@ var Je = () => {
2226
2231
  undoLast: f,
2227
2232
  redoLast: p
2228
2233
  };
2229
- }, Mn = (e, t) => ({
2234
+ }, Ln = (e, t) => ({
2230
2235
  name: e,
2231
2236
  map: t
2232
- }), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Nn = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Pn = (e, t, n) => {
2237
+ }), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Rn = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), zn = (e, t, n) => {
2233
2238
  let r = { ...t };
2234
2239
  for (let [i, a] of Object.entries(e.map)) {
2235
- if (Nn.has(i) || a === void 0) continue;
2240
+ if (Rn.has(i) || a === void 0) continue;
2236
2241
  let e = t[i];
2237
2242
  r[i] = (...r) => {
2238
2243
  let i = $(a, t);
@@ -2240,7 +2245,7 @@ var Je = () => {
2240
2245
  };
2241
2246
  }
2242
2247
  return r;
2243
- }, Fn = (e, t, n) => {
2248
+ }, Bn = (e, t, n) => {
2244
2249
  let r = s({
2245
2250
  spec: e,
2246
2251
  props: t,
@@ -2256,45 +2261,45 @@ var Je = () => {
2256
2261
  let e = r.current, t = $(e.spec.map.onUnmount, e.props);
2257
2262
  t !== null && e.sink(t);
2258
2263
  };
2259
- }, []), o(() => Pn(e, t, n), [
2264
+ }, []), o(() => zn(e, t, n), [
2260
2265
  e,
2261
2266
  t,
2262
2267
  n
2263
2268
  ]);
2264
- }, In = (e, t) => {
2265
- let n = j(e).descriptors[t]?.input;
2266
- return o(() => n === void 0 ? [] : Z(n), [n]);
2267
- }, Ln = (e, t) => {
2268
- let n = j(e).descriptors[t]?.output;
2269
- return o(() => n === void 0 ? [] : pn(n), [n]);
2270
- }, Rn = (e, t) => {
2269
+ }, Vn = (e, t) => {
2270
+ let n = N(e).descriptors[t]?.input;
2271
+ return o(() => n === void 0 ? [] : Q(n), [n]);
2272
+ }, Hn = (e, t) => {
2273
+ let n = N(e).descriptors[t]?.output;
2274
+ return o(() => n === void 0 ? [] : _n(n), [n]);
2275
+ }, Un = (e, t) => {
2271
2276
  if (e === t) return !0;
2272
2277
  if (e.length !== t.length) return !1;
2273
2278
  for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
2274
2279
  return !0;
2275
- }, zn = (e) => Object.keys(e).sort().map((t) => e[t]), Bn = (e, t) => {
2276
- let n = s(null), r = zn(e);
2277
- return (n.current === null || !Rn(n.current.key, r)) && (n.current = {
2280
+ }, Wn = (e) => Object.keys(e).sort().map((t) => e[t]), Gn = (e, t) => {
2281
+ let n = s(null), r = Wn(e);
2282
+ return (n.current === null || !Un(n.current.key, r)) && (n.current = {
2278
2283
  key: r,
2279
2284
  value: t(e)
2280
2285
  }), n.current.value;
2281
- }, Vn = "admin:full", Hn = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Un = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), Wn = e({ scopes: [] });
2282
- function Gn(e) {
2283
- return t(Wn.Provider, { value: { scopes: e.scopes } }, e.children);
2286
+ }, Kn = "admin:full", qn = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Jn = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), Yn = e({ scopes: [] });
2287
+ function Xn(e) {
2288
+ return t(Yn.Provider, { value: { scopes: e.scopes } }, e.children);
2284
2289
  }
2285
- var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes, e), Yn = (e, t, n, r = {}) => {
2286
- let i = B(e, t, { ...n }, r);
2290
+ var Zn = () => r(Yn), Qn = (e) => qn(Zn().scopes, e), $n = (e) => Jn(Zn().scopes, e), er = (e, t, n, r = {}) => {
2291
+ let i = U(e, t, { ...n }, r);
2287
2292
  return o(() => ({
2288
2293
  allowed: i.data?.allowed === !0,
2289
2294
  pending: i.data === void 0
2290
2295
  }), [i.data]);
2291
- }, Xn = (e, t, n, r = {}) => {
2292
- let i = B(e, t, { ...n }, r);
2296
+ }, tr = (e, t, n, r = {}) => {
2297
+ let i = U(e, t, { ...n }, r);
2293
2298
  return o(() => ({
2294
2299
  allowedIds: new Set(i.data?.allowedIds ?? []),
2295
2300
  pending: i.data === void 0
2296
2301
  }), [i.data]);
2297
- }, Zn = (e) => {
2302
+ }, nr = (e) => {
2298
2303
  switch (e) {
2299
2304
  case "select":
2300
2305
  case "radio":
@@ -2310,25 +2315,25 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2310
2315
  case "switch": return "boolean";
2311
2316
  default: return null;
2312
2317
  }
2313
- }, Qn = (e) => Z(e).map((e) => {
2314
- let t = Zn(e.widget);
2318
+ }, rr = (e) => Q(e).map((e) => {
2319
+ let t = nr(e.widget);
2315
2320
  return t === null ? null : {
2316
2321
  name: e.name,
2317
2322
  label: e.label,
2318
2323
  kind: t,
2319
2324
  ...e.options ? { options: e.options } : {}
2320
2325
  };
2321
- }).filter((e) => e !== null), $n = (e) => {
2326
+ }).filter((e) => e !== null), ir = (e) => {
2322
2327
  let t = {};
2323
2328
  for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
2324
2329
  return t;
2325
- }, er = (e, t, r = {}) => {
2326
- let i = j(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : Qn(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
2327
- l((n) => $n({
2330
+ }, ar = (e, t, r = {}) => {
2331
+ let i = N(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : rr(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
2332
+ l((n) => ir({
2328
2333
  ...n,
2329
2334
  [e]: t
2330
2335
  }));
2331
- }, []), d = n(() => l({}), []), f = B(e, t, o(() => $n(s), [s]));
2336
+ }, []), d = n(() => l({}), []), f = U(e, t, o(() => ir(s), [s]));
2332
2337
  return {
2333
2338
  filters: a,
2334
2339
  values: s,
@@ -2339,20 +2344,20 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2339
2344
  loading: f.data === void 0,
2340
2345
  error: f.error
2341
2346
  };
2342
- }, tr = (e, t, n = {}) => {
2343
- let r = B(e, t, n), i = r.data;
2347
+ }, or = (e, t, n = {}) => {
2348
+ let r = U(e, t, n), i = r.data;
2344
2349
  return {
2345
2350
  record: Array.isArray(i) ? i[0] : i,
2346
2351
  loading: i === void 0,
2347
2352
  error: r.error
2348
2353
  };
2349
- }, nr = (e, t = 300) => {
2354
+ }, sr = (e, t = 300) => {
2350
2355
  let [n, r] = c(e);
2351
2356
  return a(() => {
2352
2357
  let n = setTimeout(() => r(e), t);
2353
2358
  return () => clearTimeout(n);
2354
2359
  }, [e, t]), n;
2355
- }, rr = (e) => {
2360
+ }, cr = (e) => {
2356
2361
  let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
2357
2362
  if (a && t.trim() === "") return {
2358
2363
  status: "idle",
@@ -2370,39 +2375,39 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2370
2375
  valid: o.valid,
2371
2376
  message: o.message
2372
2377
  };
2373
- }, ir = (e, t, n, r) => {
2374
- let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = nr(n, s), u = c && l.trim() === "", d = B(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
2375
- return rr({
2378
+ }, lr = (e, t, n, r) => {
2379
+ let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = sr(n, s), u = c && l.trim() === "", d = U(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
2380
+ return cr({
2376
2381
  value: n,
2377
2382
  debouncedValue: l,
2378
2383
  data: u ? null : d.data,
2379
2384
  interpret: a,
2380
2385
  skipEmpty: c
2381
2386
  });
2382
- }, ar = (e, t) => ({
2387
+ }, ur = (e, t) => ({
2383
2388
  name: e,
2384
2389
  payload: t
2385
- }), or = (e, t) => {
2390
+ }), dr = (e, t) => {
2386
2391
  let n = g.decodeUnknownEither(e.payload, { errors: "all" })(t);
2387
2392
  if (n._tag === "Right") return {
2388
2393
  valid: !0,
2389
2394
  errors: {}
2390
2395
  };
2391
2396
  let r = {};
2392
- for (let e of b.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
2397
+ for (let e of S.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
2393
2398
  return {
2394
2399
  valid: !1,
2395
2400
  errors: r
2396
2401
  };
2397
- }, sr = (e) => {
2402
+ }, fr = (e) => {
2398
2403
  let t = new Map(e.map((e) => [e.name, e]));
2399
2404
  return {
2400
2405
  names: [...t.keys()].sort(),
2401
2406
  get: (e) => t.get(e),
2402
2407
  events: e
2403
2408
  };
2404
- }, cr = (e, t) => {
2405
- let n = sr(e);
2409
+ }, pr = (e, t) => {
2410
+ let n = fr(e);
2406
2411
  return {
2407
2412
  track: (e, r) => {
2408
2413
  let i = n.get(e);
@@ -2411,7 +2416,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2411
2416
  return;
2412
2417
  }
2413
2418
  if (process.env.NODE_ENV !== "production") {
2414
- let t = or(i, r);
2419
+ let t = dr(i, r);
2415
2420
  t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
2416
2421
  }
2417
2422
  t({
@@ -2422,7 +2427,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2422
2427
  names: n.names,
2423
2428
  catalog: n
2424
2429
  };
2425
- }, lr = (e, t) => {
2430
+ }, mr = (e, t) => {
2426
2431
  let r = J(e, t);
2427
2432
  return {
2428
2433
  preview: n((e) => r.run(e), [r]),
@@ -2430,34 +2435,34 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2430
2435
  pending: r.pending,
2431
2436
  error: r.error
2432
2437
  };
2433
- }, ur = (e, t, n, r) => [...e, {
2438
+ }, hr = (e, t, n, r) => [...e, {
2434
2439
  id: t,
2435
2440
  tag: n,
2436
2441
  input: r,
2437
2442
  status: "pending",
2438
2443
  attempts: 0
2439
- }], dr = (e, t, n) => e.map((e) => e.id === t ? {
2444
+ }], gr = (e, t, n) => e.map((e) => e.id === t ? {
2440
2445
  ...e,
2441
2446
  ...n
2442
- } : e), fr = (e, t) => dr(e, t, { status: "sent" }), pr = (e, t, n) => e.map((e) => e.id === t ? {
2447
+ } : e), _r = (e, t) => gr(e, t, { status: "sent" }), vr = (e, t, n) => e.map((e) => e.id === t ? {
2443
2448
  ...e,
2444
2449
  status: "failed",
2445
2450
  error: n,
2446
2451
  attempts: e.attempts + 1
2447
- } : e), mr = (e, t, n) => dr(e, t, {
2452
+ } : e), yr = (e, t, n) => gr(e, t, {
2448
2453
  status: "conflict",
2449
2454
  error: n
2450
- }), hr = (e) => e.filter((e) => e.status !== "sent"), gr = (e) => {
2455
+ }), br = (e) => e.filter((e) => e.status !== "sent"), xr = (e) => {
2451
2456
  let t = [];
2452
2457
  for (let n of e) {
2453
2458
  if (n.status === "conflict") break;
2454
2459
  (n.status === "pending" || n.status === "failed") && t.push(n);
2455
2460
  }
2456
2461
  return t;
2457
- }, _r = (e) => {
2462
+ }, Sr = (e) => {
2458
2463
  let t = e;
2459
2464
  return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
2460
- }, vr = (e) => {
2465
+ }, Cr = (e) => {
2461
2466
  let [t, n] = c(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
2462
2467
  return a(() => {
2463
2468
  if (e !== void 0) {
@@ -2470,21 +2475,21 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2470
2475
  window.removeEventListener("online", t), window.removeEventListener("offline", r);
2471
2476
  };
2472
2477
  }, [e]), t;
2473
- }, yr = (e) => {
2474
- let { send: t, isConflict: r = _r, idFor: i } = e, [o, l] = c([]), u = vr(e.online), d = s(o);
2478
+ }, wr = (e) => {
2479
+ let { send: t, isConflict: r = Sr, idFor: i } = e, [o, l] = c([]), u = Cr(e.online), d = s(o);
2475
2480
  d.current = o;
2476
2481
  let f = s(0), p = n((e, t) => {
2477
2482
  let n = i?.() ?? `obx_${f.current++}_${e}`;
2478
- l((r) => ur(r, n, e, t));
2483
+ l((r) => hr(r, n, e, t));
2479
2484
  }, [i]), m = n(async () => {
2480
- for (let e of gr(d.current)) try {
2481
- await t(e), l((t) => fr(t, e.id));
2485
+ for (let e of xr(d.current)) try {
2486
+ await t(e), l((t) => _r(t, e.id));
2482
2487
  } catch (t) {
2483
2488
  if (r(t)) {
2484
- l((n) => mr(n, e.id, t));
2489
+ l((n) => yr(n, e.id, t));
2485
2490
  break;
2486
2491
  }
2487
- l((n) => pr(n, e.id, t));
2492
+ l((n) => vr(n, e.id, t));
2488
2493
  }
2489
2494
  }, [t, r]);
2490
2495
  return a(() => {
@@ -2497,7 +2502,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2497
2502
  pending: o.filter((e) => e.status === "pending" || e.status === "failed").length,
2498
2503
  conflicts: o.filter((e) => e.status === "conflict")
2499
2504
  };
2500
- }, br = (e) => {
2505
+ }, Tr = (e) => {
2501
2506
  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);
2502
2507
  return {
2503
2508
  startIndex: l,
@@ -2507,8 +2512,8 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2507
2512
  topSpacer: l * r,
2508
2513
  bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
2509
2514
  };
2510
- }, xr = (e, t, r) => {
2511
- let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => br({
2515
+ }, Er = (e, t, r) => {
2516
+ let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => Tr({
2512
2517
  scrollTop: d,
2513
2518
  viewportHeight: a,
2514
2519
  rowHeight: i,
@@ -2520,7 +2525,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2520
2525
  i,
2521
2526
  s,
2522
2527
  l
2523
- ]), m = B(e, t, o(() => ({
2528
+ ]), m = U(e, t, o(() => ({
2524
2529
  ...u,
2525
2530
  offset: p.offset,
2526
2531
  limit: p.limit
@@ -2540,8 +2545,8 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2540
2545
  loading: m.data === void 0,
2541
2546
  error: m.error
2542
2547
  };
2543
- }, Sr = () => typeof navigator > "u" || navigator.onLine, Cr = (e) => {
2544
- let { errorBus: t } = j(e), [r, i] = c(Sr), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
2548
+ }, Dr = () => typeof navigator > "u" || navigator.onLine, Or = (e) => {
2549
+ let { errorBus: t } = N(e), [r, i] = c(Dr), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
2545
2550
  a(() => (f.current = !0, () => {
2546
2551
  f.current = !1;
2547
2552
  }), []), a(() => {
@@ -2567,7 +2572,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2567
2572
  lastFailureAt: u,
2568
2573
  reportSuccess: p
2569
2574
  };
2570
- }, wr = "__voltro.connections.list", Tr = "__voltro.connections.start", Er = "__voltro.connections.submitToken", Dr = "__voltro.connections.disconnect", Or = {
2575
+ }, kr = "__voltro.connections.list", Ar = "__voltro.connections.start", jr = "__voltro.connections.submitToken", Mr = "__voltro.connections.disconnect", Nr = {
2571
2576
  connectionId: "",
2572
2577
  kind: "oauth2",
2573
2578
  label: "",
@@ -2578,14 +2583,14 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2578
2583
  expiresAt: null,
2579
2584
  lastError: null,
2580
2585
  connectedAt: null
2581
- }, kr = (e, t) => {
2586
+ }, Pr = (e, t) => {
2582
2587
  if (t === "redirect") {
2583
2588
  globalThis.location.assign(e);
2584
2589
  return;
2585
2590
  }
2586
2591
  globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
2587
- }, Ar = (e) => {
2588
- let { data: t } = B(e, wr, {}), r = J(e, Tr), i = q(e, Er), a = q(e, Dr), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
2592
+ }, Fr = (e) => {
2593
+ let { data: t } = U(e, kr, {}), r = J(e, Ar), i = q(e, jr), a = q(e, Mr), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
2589
2594
  ...e,
2590
2595
  connected: e.status === "connected",
2591
2596
  needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
@@ -2593,7 +2598,7 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2593
2598
  connect: async (t) => {
2594
2599
  if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
2595
2600
  let n = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
2596
- kr((await r.run({
2601
+ Pr((await r.run({
2597
2602
  connectionId: e.connectionId,
2598
2603
  redirectTo: n
2599
2604
  })).authorizeUrl, t?.mode);
@@ -2623,10 +2628,10 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2623
2628
  get: l,
2624
2629
  pending: s
2625
2630
  };
2626
- }, jr = (e, t) => {
2627
- let n = Ar(e), r = n.get(t);
2631
+ }, Ir = (e, t) => {
2632
+ let n = Fr(e), r = n.get(t);
2628
2633
  return o(() => r === void 0 ? {
2629
- ...Or,
2634
+ ...Nr,
2630
2635
  connectionId: t,
2631
2636
  label: t,
2632
2637
  connected: !1,
@@ -2651,6 +2656,6 @@ var Kn = () => r(Wn), qn = (e) => Hn(Kn().scopes, e), Jn = (e) => Un(Kn().scopes
2651
2656
  n.loading,
2652
2657
  n.pending
2653
2658
  ]);
2654
- }, Mr = "framework-client";
2659
+ }, Lr = "framework-client";
2655
2660
  //#endregion
2656
- export { Vn as ADMIN_SCOPE, Mr as CLIENT_NAME, wr as CONNECTIONS_LIST_TAG, Dr as CONNECTION_DISCONNECT_TAG, Tr as CONNECTION_START_TAG, Er as CONNECTION_SUBMIT_TOKEN_TAG, de as FrameworkRuntimesContext, _e as FrameworkRuntimesProvider, le as LoadingSubscriptionCache, Gn as PermissionProvider, ue as RpcErrorBus, ce as SubscriptionCache, kn as UNDO_APPLY_TAG, On as UNDO_LOG_TAG, An as UNDO_REDO_TAG, he as _resetFrameworkRuntimesWarning, Ge as applyStoreSeeds, Hn as canCall, Un as canCallAny, nt as clearMutations, hr as clearSent, Oe as clearStoreHistory, br as computeWindow, cr as createAnalytics, ar as defineEvent, Be as defineStore, Mn as defineTracking, ze as definedStores, En as deriveEntityAdmins, ur as enqueueEntry, sr as eventCatalog, Qn as filtersFromSchema, at as getMutationNotifier, et as getMutations, He as makeStoreSeedBag, Sn as manifestUrl, mr as markConflict, pr as markFailed, fr as markSent, bn as provenanceUrl, en as publishClientError, S as publishClientTrace, gr as replayable, nn as reportClientError, Ve as resetStoreRegistryForTests, z as resolveByTag, $ as resolveTrackingEvent, Wt as resumableConsumeProgram, hn as rowsToOptions, Ye as runSequence, pn as schemaToColumns, Z as schemaToFields, We as seedStore, Je as sequence, it as setMutationNotifier, Ue as setStoreSeedResolver, G as settleMutation, M as shallow, Rn as shallowArrayEqual, zn as sourceValues, D as ssrClientProxy, pe as ssrStubHandle, w as stableKey, W as startMutation, Ee as storeHistory, tn as subscribeClientErrors, C as subscribeClientTraces, tt as subscribeMutations, De as subscribeStoreHistory, ke as travelToStoreState, J as useAction, Xt as useAgent, Yt as useAgentChat, Ut as useAgentStream, ir as useAsyncValidation, qn as useCan, Jn as useCanAny, Cn as useCapabilityManifest, jr as useConnection, Cr as useConnectionStatus, Ar as useConnections, Zt as useDataCopilot, vn as useDataTable, nr as useDebounced, Bn as useDerived, mn as useFormBinding, In as useFormSkeleton, j as useFrameworkApi, ge as useFrameworkRuntimes, q as useMutation, rn as useOnRpcError, yr as useOutbox, Kn as usePermissions, lr as usePreview, xn as useProvenance, gn as useQueryField, er as useQueryFilters, tr as useRecord, Qt as useRefreshSubscriptions, Yn as useResourceCan, Xn as useResourceCans, Kt as useResumableAgentStream, Xe as useSequence, B as useSubscription, Ln as useTableSkeleton, Fn as useTracking, Dn as useUndo, jn as useUndoLog, Et as useUpload, xr as useWindowedSubscription, Dt as useWorkflow, Ft as useWorkflowDomainEvents, It as useWorkflowEventDeliveries, Pt as useWorkflowEvents, At as useWorkflowRun, Nt as useWorkflowRunEvents, Ht as useWorkflowRunState, Mt as useWorkflowRunSteps, jt as useWorkflowRuns, Ot as useWorkflowSignal, kt as useWorkflowUpdate, or as validateEventPayload, Q as validateFields, rr as validationStatus, Pn as wrapTrackedCallbacks };
2661
+ export { Kn as ADMIN_SCOPE, Lr as CLIENT_NAME, kr as CONNECTIONS_LIST_TAG, Mr as CONNECTION_DISCONNECT_TAG, Ar as CONNECTION_START_TAG, jr as CONNECTION_SUBMIT_TOKEN_TAG, O as FrameworkRuntimesContext, _e as FrameworkRuntimesProvider, ue as LoadingSubscriptionCache, Xn as PermissionProvider, de as RpcErrorBus, le as SubscriptionCache, Pn as UNDO_APPLY_TAG, Nn as UNDO_LOG_TAG, Fn as UNDO_REDO_TAG, he as _resetFrameworkRuntimesWarning, We as applyStoreSeeds, qn as canCall, Jn as canCallAny, it as clearMutations, br as clearSent, Ae as clearStoreHistory, Tr as computeWindow, pr as createAnalytics, ur as defineEvent, ze as defineStore, Ln as defineTracking, Re as definedStores, jn as deriveEntityAdmins, hr as enqueueEntry, fr as eventCatalog, rr as filtersFromSchema, ft as freshIdempotencyKey, st as getMutationNotifier, nt as getMutations, Ve as makeStoreSeedBag, Dn as manifestUrl, yr as markConflict, vr as markFailed, _r as markSent, Tn as provenanceUrl, an as publishClientError, w as publishClientTrace, xr as replayable, sn as reportClientError, Be as resetStoreRegistryForTests, H as resolveByTag, $ as resolveTrackingEvent, Jt as resumableConsumeProgram, bn as rowsToOptions, Je as runSequence, _n as schemaToColumns, Q as schemaToFields, Ue as seedStore, qe as sequence, ot as setMutationNotifier, He as setStoreSeedResolver, G as settleMutation, P as shallow, Un as shallowArrayEqual, Wn as sourceValues, k as ssrClientProxy, pe as ssrStubHandle, E as stableKey, tt as startMutation, Oe as storeHistory, on as subscribeClientErrors, T as subscribeClientTraces, rt as subscribeMutations, ke as subscribeStoreHistory, je as travelToStoreState, J as useAction, en as useAgent, $t as useAgentChat, qt as useAgentStream, lr as useAsyncValidation, Qn as useCan, $n as useCanAny, On as useCapabilityManifest, Ir as useConnection, Or as useConnectionStatus, Fr as useConnections, tn as useDataCopilot, Cn as useDataTable, sr as useDebounced, Gn as useDerived, yn as useFormBinding, Vn as useFormSkeleton, N as useFrameworkApi, ge as useFrameworkRuntimes, q as useMutation, cn as useOnRpcError, wr as useOutbox, Zn as usePermissions, mr as usePreview, En as useProvenance, xn as useQueryField, ar as useQueryFilters, or as useRecord, nn as useRefreshSubscriptions, er as useResourceCan, tr as useResourceCans, Xt as useResumableAgentStream, Ye as useSequence, U as useSubscription, Hn as useTableSkeleton, Bn as useTracking, Mn as useUndo, In as useUndoLog, At as useUpload, Er as useWindowedSubscription, jt as useWorkflow, zt as useWorkflowDomainEvents, Bt as useWorkflowEventDeliveries, Rt as useWorkflowEvents, Pt as useWorkflowRun, Lt as useWorkflowRunEvents, Kt as useWorkflowRunState, It as useWorkflowRunSteps, Ft as useWorkflowRuns, Mt as useWorkflowSignal, Nt as useWorkflowUpdate, dr as validateEventPayload, vn as validateFields, cr as validationStatus, pt as withIdempotencyKey, zn as wrapTrackedCallbacks };