@voltro/client 0.56.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as ee, y as te } from "./formData-DtlF8t8h.js";
2
- import { createContext as S, createElement as C, useCallback as w, useContext as T, useDebugValue as ne, useEffect as E, useMemo as D, useRef as O, useState as k, useSyncExternalStore as re } from "react";
3
- import { Cause as A, Context as ie, Duration as j, Effect as M, Exit as N, Fiber as P, Layer as F, ManagedRuntime as ae, Schedule as I, Schema as oe, Stream as L } from "effect";
4
- import * as se from "@effect/platform/Headers";
5
- import { RpcClient as R, RpcSerialization as ce } from "@effect/rpc";
6
- import { applyRowPatch as z, fieldIssuesOf as le, pluginTag as ue } from "@voltro/protocol";
7
- import * as de from "@effect/platform/Socket";
8
- import { jsx as fe } from "react/jsx-runtime";
9
- import { FormApi as pe } from "@tanstack/form-core";
10
- import { useStore as me } from "@tanstack/react-store";
11
- import { ArrayFormatter as he } from "effect/ParseResult";
1
+ import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as ee } from "./formData-He_L4ozH.js";
2
+ import { createContext as C, createElement as w, useCallback as T, useContext as E, useDebugValue as te, useEffect as D, useMemo as O, useRef as k, useState as A, useSyncExternalStore as j } from "react";
3
+ import { Cause as M, Context as ne, Duration as re, Effect as N, Exit as P, Fiber as F, Layer as I, ManagedRuntime as L, Schedule as R, Schema as ie, Stream as z } from "effect";
4
+ import * as ae from "@effect/platform/Headers";
5
+ import { RpcClient as B, RpcSerialization as oe } from "@effect/rpc";
6
+ import { applyRowPatch as se, fieldIssuesOf as ce, pluginTag as le } from "@voltro/protocol";
7
+ import * as V from "@effect/platform/Socket";
8
+ import { jsx as ue } from "react/jsx-runtime";
9
+ import { FormApi as de } from "@tanstack/form-core";
10
+ import { useStore as fe } from "@tanstack/react-store";
11
+ import { ArrayFormatter as pe } from "effect/ParseResult";
12
12
  //#region src/traceBus.ts
13
- var ge = /* @__PURE__ */ new Set(), _e = (e) => {
14
- for (let t of ge) try {
13
+ var H = /* @__PURE__ */ new Set(), me = (e) => {
14
+ for (let t of H) try {
15
15
  t(e);
16
16
  } catch {}
17
- }, ve = (e) => (ge.add(e), () => {
18
- ge.delete(e);
19
- }), B = (e) => {
17
+ }, he = (e) => (H.add(e), () => {
18
+ H.delete(e);
19
+ }), U = (e) => {
20
20
  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);
21
21
  return t(e);
22
- }, ye = Object.freeze({
22
+ }, ge = Object.freeze({
23
23
  data: void 0,
24
24
  revision: -1,
25
25
  emittedAt: void 0,
26
26
  error: void 0,
27
27
  pendingPatches: 0
28
- }), be = 5e3, xe = (e, t, n) => {
28
+ }), _e = 5e3, ve = (e, t, n) => {
29
29
  if (e._tag === "error") return !1;
30
30
  if (e._tag === "delta") return !0;
31
31
  try {
@@ -33,18 +33,18 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
33
33
  } catch {
34
34
  return !1;
35
35
  }
36
- }, V = 0, Se = () => `patch_${++V}`, H = (e, t) => {
36
+ }, ye = 0, be = () => `patch_${++ye}`, W = (e, t) => {
37
37
  let n = e;
38
38
  for (let e of t.split(".")) {
39
39
  if (typeof n != "object" || !n) return;
40
40
  n = n[e];
41
41
  }
42
42
  return n;
43
- }, U = (e, t, n) => {
43
+ }, xe = (e, t, n) => {
44
44
  let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
45
45
  for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
46
46
  return o[r[r.length - 1]] = n, a;
47
- }, W = (e, t) => {
47
+ }, Se = (e, t) => {
48
48
  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];
49
49
  return i.length === 0 ? null : new Set(i);
50
50
  }, Ce = (e, t, n) => {
@@ -60,11 +60,11 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
60
60
  optimistic: !0
61
61
  }, s = e.order ?? "append";
62
62
  return (e) => {
63
- let t = Array.isArray(H(e, r)) ? H(e, r) : [];
64
- return U(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
63
+ let t = Array.isArray(W(e, r)) ? W(e, r) : [];
64
+ return xe(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
65
65
  };
66
66
  }
67
- let a = W(e, t);
67
+ let a = Se(e, t);
68
68
  if (a === null) return null;
69
69
  if (e.op === "update") {
70
70
  let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
@@ -78,18 +78,18 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
78
78
  optimistic: !0
79
79
  });
80
80
  return (e) => {
81
- let t = H(e, r);
81
+ let t = W(e, r);
82
82
  if (!Array.isArray(t)) {
83
83
  if (typeof t != "object" || !t) return e;
84
84
  let n = t;
85
- return a.has(n[i]) ? U(e, r, o(n)) : e;
85
+ return a.has(n[i]) ? xe(e, r, o(n)) : e;
86
86
  }
87
- return U(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
87
+ return xe(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
88
88
  };
89
89
  }
90
90
  return (e) => {
91
- let t = Array.isArray(H(e, r)) ? H(e, r) : [];
92
- return U(e, r, t.filter((e) => !a.has(e[i])));
91
+ let t = Array.isArray(W(e, r)) ? W(e, r) : [];
92
+ return xe(e, r, t.filter((e) => !a.has(e[i])));
93
93
  };
94
94
  }, we = (e, t, n) => {
95
95
  if (e.op === "insert") return n;
@@ -145,7 +145,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
145
145
  };
146
146
  }
147
147
  case "update": {
148
- let n = W(e, t);
148
+ let n = Se(e, t);
149
149
  if (n === null) return null;
150
150
  let r = e.shape, i = r ? (e) => ({
151
151
  ...r(t, e),
@@ -168,7 +168,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
168
168
  };
169
169
  }
170
170
  case "delete": {
171
- let n = W(e, t);
171
+ let n = Se(e, t);
172
172
  return n === null ? null : (e) => {
173
173
  if (!Array.isArray(e)) {
174
174
  let t = e;
@@ -189,17 +189,17 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
189
189
  this.inactiveTtlMs = e.inactiveTtlMs ?? De, this.onChangeHook = e.onChange, this.errorBus = e.errorBus, this.mirror = e.mirror, this.mergeCell = e.mergeCell;
190
190
  }
191
191
  subscribe(e, t, n, r, i = {}) {
192
- let a = B(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
192
+ let a = U(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
193
193
  return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, s.runtime = n, 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), {
194
194
  getSnapshot: () => this.getSnapshot(a),
195
195
  unsubscribe: () => this.unsubscribe(a, r)
196
196
  };
197
197
  }
198
198
  update(e, t, n) {
199
- let r = B(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
199
+ let r = U(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
200
200
  a ||= this.createStub(r, i);
201
201
  let o = {
202
- id: Se(),
202
+ id: be(),
203
203
  mutationId: n,
204
204
  reducer: t
205
205
  };
@@ -213,7 +213,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
213
213
  for (let i of this.entries.values()) {
214
214
  if (i.tag !== e) continue;
215
215
  let a = {
216
- id: `forTag-${++V}`,
216
+ id: `forTag-${++ye}`,
217
217
  mutationId: n,
218
218
  reducer: t
219
219
  };
@@ -230,12 +230,12 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
230
230
  confirmByMutation(e) {
231
231
  let t = !1;
232
232
  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);
233
- t && setTimeout(() => this.resyncUnechoedMutation(e), be);
233
+ t && setTimeout(() => this.resyncUnechoedMutation(e), _e);
234
234
  }
235
235
  resyncUnechoedMutation(e) {
236
236
  for (let t of this.entries.values()) {
237
237
  if (!t.state.patches.some((t) => t.mutationId === e && t.confirmed === !0)) continue;
238
- let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${be}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
238
+ let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${_e}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
239
239
  this.errorBus?.emit({
240
240
  source: "subscription",
241
241
  tag: n,
@@ -248,7 +248,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
248
248
  }
249
249
  }
250
250
  autoApply(e, t, n) {
251
- let r = `optimistic-${n}-${++V}`;
251
+ let r = `optimistic-${n}-${++ye}`;
252
252
  for (let i of e) {
253
253
  for (let e of this.entries.values()) {
254
254
  if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
@@ -295,10 +295,10 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
295
295
  n.state.patches = n.state.patches.filter((e) => e.id !== t), n.state.patches.length !== r && this.invalidate(n);
296
296
  }
297
297
  peek(e) {
298
- return this.getSnapshot(B(e));
298
+ return this.getSnapshot(U(e));
299
299
  }
300
300
  getEntry(e) {
301
- return this.entries.get(B(e));
301
+ return this.entries.get(U(e));
302
302
  }
303
303
  size() {
304
304
  return this.entries.size;
@@ -317,7 +317,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
317
317
  return e;
318
318
  }
319
319
  destroy(e) {
320
- for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(P.interrupt(t.fiber));
320
+ for (let t of this.entries.values()) t.evictionTimer !== null && clearTimeout(t.evictionTimer), t.fiber && e.runFork(F.interrupt(t.fiber));
321
321
  this.entries.clear();
322
322
  }
323
323
  refreshAll(e) {
@@ -325,7 +325,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
325
325
  }
326
326
  reissue(e, t, n = !0) {
327
327
  if (!e.fetch) return;
328
- e.fiber && t.runFork(P.interrupt(e.fiber)), e.fiber = null;
328
+ e.fiber && t.runFork(F.interrupt(e.fiber)), e.fiber = null;
329
329
  let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
330
330
  e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
331
331
  }
@@ -399,28 +399,31 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
399
399
  };
400
400
  }
401
401
  startFiber(e, t, n) {
402
- let r = e.tag ?? e.key, i = t(), a = L.unwrapScoped(M.currentSpan.pipe(M.catchAll(() => M.succeed(void 0)), M.map((t) => (t && (e.traceId = t.traceId, _e({
402
+ let r = e.tag ?? e.key, i = t(), a = z.unwrapScoped(N.currentSpan.pipe(N.catchAll(() => N.succeed(void 0)), N.map((t) => (t && (e.traceId = t.traceId, me({
403
403
  traceId: t.traceId,
404
404
  spanId: t.spanId,
405
405
  source: "subscription",
406
406
  tag: r
407
- })), i)))).pipe(L.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } })), o = e.state.baseRevision >= 0 ? e.state.baseRevision : void 0, s = a.pipe(L.runForEach((t) => M.sync(() => {
407
+ })), i)))).pipe(z.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } })), o = e.state.baseRevision >= 0 ? e.state.baseRevision : void 0, s = a.pipe(z.runForEach((t) => N.sync(() => {
408
408
  let n = e.state.base;
409
- if (t._tag === "snapshot") e.state.base = t.data, e.state.baseRevision = t.revision, e.state.baseEmittedAt = void 0, e.state.baseError = void 0, t.computed === !0 && (e.computed = !0);
410
- else if (t._tag === "error") e.state.baseError = A.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
409
+ if (t._tag === "snapshot") e.state.base = t.data, e.state.baseRevision = t.revision, e.state.baseEmittedAt = void 0, e.state.baseError = void 0, this.errorBus?.emitSuccess({
410
+ source: "subscription",
411
+ tag: e.tag ?? e.key
412
+ }), t.computed === !0 && (e.computed = !0);
413
+ else if (t._tag === "error") e.state.baseError = M.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
411
414
  else {
412
415
  let n = e.state.base;
413
- Array.isArray(n) && (e.state.base = z(n, t.patch, this.mergeCell === void 0 ? {} : { mergeCell: this.mergeCell })), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
416
+ Array.isArray(n) && (e.state.base = se(n, t.patch, this.mergeCell === void 0 ? {} : { mergeCell: this.mergeCell })), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
414
417
  }
415
- e.state.patches.some((e) => e.confirmed === !0) && xe(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.mirror !== void 0 && t._tag !== "error" && this.mirror.save(e.key, {
418
+ e.state.patches.some((e) => e.confirmed === !0) && ve(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.mirror !== void 0 && t._tag !== "error" && this.mirror.save(e.key, {
416
419
  tag: e.tag,
417
420
  data: e.state.base,
418
421
  revision: e.state.baseRevision
419
422
  }).catch(() => {}), this.invalidate(e);
420
423
  })));
421
- e.fiber = n.runFork(o === void 0 ? s : s.pipe(M.locallyWith(R.currentHeaders, (e) => se.set(e, "voltro-resume-from", String(o))))), e.fiber.addObserver((t) => {
422
- if (N.isFailure(t) && !N.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
423
- let n = A.squash(t.cause);
424
+ e.fiber = n.runFork(o === void 0 ? s : s.pipe(N.locallyWith(B.currentHeaders, (e) => ae.set(e, "voltro-resume-from", String(o))))), e.fiber.addObserver((t) => {
425
+ if (P.isFailure(t) && !P.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
426
+ let n = M.squash(t.cause);
424
427
  this.errorBus.emit({
425
428
  source: "subscription",
426
429
  tag: e.tag ?? e.key,
@@ -437,7 +440,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
437
440
  }
438
441
  getSnapshot(e) {
439
442
  let t = this.entries.get(e);
440
- if (!t) return ye;
443
+ if (!t) return ge;
441
444
  if (t.state.cachedSnapshot !== null) return t.state.cachedSnapshot;
442
445
  let n = t.state.base;
443
446
  if (n !== void 0 && t.state.patches.length > 0) for (let e of t.state.patches) n = e.reducer(n);
@@ -457,7 +460,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
457
460
  scheduleEviction(e) {
458
461
  e.evictionTimer !== null && clearTimeout(e.evictionTimer), e.evictionTimer = setTimeout(() => {
459
462
  let t = this.entries.get(e.key);
460
- t && t.subscribers.size === 0 && (t.fiber && M.runFork(P.interrupt(t.fiber)), this.entries.delete(e.key));
463
+ t && t.subscribers.size === 0 && (t.fiber && N.runFork(F.interrupt(t.fiber)), this.entries.delete(e.key));
461
464
  }, this.inactiveTtlMs);
462
465
  }
463
466
  }, ke = class extends Oe {
@@ -467,8 +470,21 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
467
470
  unsubscribe: () => {}
468
471
  };
469
472
  }
470
- }, Ae = class {
473
+ }, Ae = /* @__PURE__ */ new Set(), je = (e) => {
474
+ for (let t of Ae) try {
475
+ t(e);
476
+ } catch {}
477
+ }, Me = (e) => (Ae.add(e), () => {
478
+ Ae.delete(e);
479
+ }), Ne = (e, t) => {
480
+ je({
481
+ error: e,
482
+ source: "manual",
483
+ ...t ? { context: t } : {}
484
+ });
485
+ }, Pe = class {
471
486
  #e = /* @__PURE__ */ new Set();
487
+ #t = /* @__PURE__ */ new Set();
472
488
  on(e) {
473
489
  return this.#e.add(e), () => {
474
490
  this.#e.delete(e);
@@ -478,51 +494,69 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
478
494
  for (let t of this.#e) try {
479
495
  t(e);
480
496
  } catch {}
497
+ je({
498
+ error: e.error,
499
+ source: `rpc.${e.source}`,
500
+ context: {
501
+ rpcTag: e.tag,
502
+ ...e.traceId === void 0 ? {} : { traceId: e.traceId }
503
+ }
504
+ });
505
+ }
506
+ onSuccess(e) {
507
+ return this.#t.add(e), () => {
508
+ this.#t.delete(e);
509
+ };
481
510
  }
482
- }, je = S(null), Me = () => {
511
+ emitSuccess(e) {
512
+ for (let t of this.#t) try {
513
+ t(e);
514
+ } catch {}
515
+ }
516
+ }, Fe = C(null), Ie = () => {
483
517
  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");
484
- }, Ne = new Proxy(() => Me(), {
485
- get: (e, t) => Ne,
518
+ }, Le = new Proxy(() => Ie(), {
519
+ get: (e, t) => Le,
486
520
  has: () => !0,
487
- apply: () => Me()
488
- }), Pe = Symbol.for("@voltro/client/ssrDescriptors"), Fe = globalThis, Ie = Fe[Pe] ?? (Fe[Pe] = { byApi: /* @__PURE__ */ new Map() }), Le = (e, t) => {
489
- Ie.byApi.set(e, t);
490
- }, Re = (e) => Ie.byApi.get(e), ze = () => {
491
- Ie.byApi.clear();
492
- }, Be = {
493
- runtime: { runPromiseExit: () => Promise.resolve(N.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
521
+ apply: () => Ie()
522
+ }), Re = Symbol.for("@voltro/client/ssrDescriptors"), ze = globalThis, Be = ze[Re] ?? (ze[Re] = { byApi: /* @__PURE__ */ new Map() }), Ve = (e, t) => {
523
+ Be.byApi.set(e, t);
524
+ }, He = (e) => Be.byApi.get(e), Ue = () => {
525
+ Be.byApi.clear();
526
+ }, We = {
527
+ runtime: { runPromiseExit: () => Promise.resolve(P.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
494
528
  cache: new ke(),
495
- client: Ne,
529
+ client: Le,
496
530
  descriptors: {},
497
531
  inspectBaseUrl: "",
498
- errorBus: new Ae()
499
- }, Ve = {
532
+ errorBus: new Pe()
533
+ }, Ge = {
500
534
  get: (e) => {
501
- let t = Re(e);
502
- return t === void 0 ? Be : {
503
- ...Be,
535
+ let t = He(e);
536
+ return t === void 0 ? We : {
537
+ ...We,
504
538
  descriptors: t
505
539
  };
506
540
  },
507
541
  names: []
508
- }, He = !1, Ue = !1, G = null, We = () => {
509
- He = !1, Ue = !1, G !== null && (clearTimeout(G), G = null);
510
- }, Ge = () => {
511
- let e = T(je);
512
- return e ? (Ue || (Ue = !0, G !== null && (clearTimeout(G), G = null)), e) : (typeof window < "u" && !He && !Ue && G === null && process.env.NODE_ENV !== "production" && (G = setTimeout(() => {
513
- G = null, !(He || Ue) && (He = !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>."));
514
- }, 0)), Ve);
542
+ }, Ke = !1, qe = !1, G = null, Je = () => {
543
+ Ke = !1, qe = !1, G !== null && (clearTimeout(G), G = null);
544
+ }, Ye = () => {
545
+ let e = E(Fe);
546
+ return e ? (qe || (qe = !0, G !== null && (clearTimeout(G), G = null)), e) : (typeof window < "u" && !Ke && !qe && G === null && process.env.NODE_ENV !== "production" && (G = setTimeout(() => {
547
+ G = null, !(Ke || qe) && (Ke = !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>."));
548
+ }, 0)), Ge);
515
549
  }, K = (e) => {
516
- let t = Ge(), n = t.demand;
517
- return E(() => {
550
+ let t = Ye(), n = t.demand;
551
+ return D(() => {
518
552
  n?.(e);
519
553
  }, [n, e]), t.get(e);
520
- }, Ke = (e) => typeof e.runtime?.runFork != "function", qe = async (e) => {
554
+ }, Xe = (e) => typeof e.runtime?.runFork != "function", Ze = async (e) => {
521
555
  let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
522
- class o extends ie.Tag(`@voltro/client/AppClient/${t}`)() {}
523
- let s = F.succeed(de.WebSocketConstructor, (e, t) => a(e, t)), c = R.layerProtocolSocket().pipe(F.provide(ce.layerJson), F.provide(de.layerWebSocket(n)), F.provide(s)), l = typeof i == "function" ? await i() : i, u = F.scoped(o, R.make(r)).pipe(F.provide(c)), d = l ? F.locallyScoped(R.currentHeaders, se.fromInput(l)) : F.empty, f = ae.make(F.merge(u, d));
556
+ class o extends ne.Tag(`@voltro/client/AppClient/${t}`)() {}
557
+ let s = I.succeed(V.WebSocketConstructor, (e, t) => a(e, t)), c = B.layerProtocolSocket().pipe(I.provide(oe.layerJson), I.provide(V.layerWebSocket(n)), I.provide(s)), l = typeof i == "function" ? await i() : i, u = I.scoped(o, B.make(r)).pipe(I.provide(c)), d = l ? I.locallyScoped(B.currentHeaders, ae.fromInput(l)) : I.empty, f = L.make(I.merge(u, d));
524
558
  try {
525
- let e = await f.runPromise(o), t = new Ae();
559
+ let e = await f.runPromise(o), t = new Pe();
526
560
  return {
527
561
  runtime: f,
528
562
  client: e,
@@ -532,7 +566,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
532
566
  } catch (e) {
533
567
  throw f.dispose(), e;
534
568
  }
535
- }, Je = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), Ye = () => ({
569
+ }, Qe = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), $e = () => ({
536
570
  resolved: null,
537
571
  retryToken: 0,
538
572
  failureCount: 0,
@@ -541,15 +575,15 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
541
575
  everOpened: !1,
542
576
  wedgeStop: null,
543
577
  subjectMayHaveChanged: !1
544
- }), Xe = (e) => {
578
+ }), et = (e) => {
545
579
  e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
546
- }, Ze = (e) => {
580
+ }, tt = (e) => {
547
581
  e.cache.destroy(e.runtime), e.runtime.dispose();
548
- }, Qe = (e) => {
549
- let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? Je, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
582
+ }, nt = (e) => {
583
+ let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? Qe, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
550
584
  clearTimeout(e);
551
585
  }), c = e.scheduler?.queueMicrotask ?? queueMicrotask, l = e.onReconnecting, u = e.wedgeBackstop, d = /* @__PURE__ */ new Map();
552
- for (let e of t) d.set(e.name, Ye());
586
+ for (let e of t) d.set(e.name, $e());
553
587
  let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
554
588
  let n = o(() => {
555
589
  p.delete(n), e();
@@ -575,7 +609,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
575
609
  if (!t) return;
576
610
  let r = t.generation, i = () => {
577
611
  if (f || t.generation !== r) return;
578
- t.everOpened = !0, Xe(t), t.retryToken++;
612
+ t.everOpened = !0, et(t), t.retryToken++;
579
613
  let e = t.failureCount;
580
614
  m(() => {
581
615
  f || t.failureCount === e && (t.failureCount = 0);
@@ -586,11 +620,11 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
586
620
  try {
587
621
  let a = await n(e, r, i, o);
588
622
  if (f || t.generation !== r) {
589
- Ze(a);
623
+ tt(a);
590
624
  return;
591
625
  }
592
626
  let s = t.resolved;
593
- s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s && Ze(s);
627
+ s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s && tt(s);
594
628
  } catch {
595
629
  if (f || t.generation !== r) return;
596
630
  g(e);
@@ -598,7 +632,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
598
632
  }, v = (e) => {
599
633
  if (!f) for (let n of t) {
600
634
  let t = d.get(n.name);
601
- t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0, Xe(t), _(n));
635
+ t && (e && (t.subjectMayHaveChanged = !0), t.retryToken += 1, t.generation += 1, t.failureCount = 0, et(t), _(n));
602
636
  }
603
637
  };
604
638
  return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
@@ -615,7 +649,7 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
615
649
  f = !0;
616
650
  for (let e of p) s(e);
617
651
  p.clear();
618
- for (let [, e] of d) e.resolved && Ze(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), Xe(e);
652
+ for (let [, e] of d) e.resolved && tt(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), et(e);
619
653
  d.clear();
620
654
  }
621
655
  },
@@ -626,8 +660,8 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
626
660
  v(!1);
627
661
  }
628
662
  });
629
- }, $e = ({ apis: e, children: t, demand: n }) => {
630
- let r = D(() => ({
663
+ }, rt = ({ apis: e, children: t, demand: n }) => {
664
+ let r = O(() => ({
631
665
  get: (t) => {
632
666
  let n = e.get(t);
633
667
  if (!n) {
@@ -639,45 +673,45 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
639
673
  names: Array.from(e.keys()),
640
674
  ...n === void 0 ? {} : { demand: n }
641
675
  }), [e]);
642
- return /* @__PURE__ */ fe(je.Provider, {
676
+ return /* @__PURE__ */ ue(Fe.Provider, {
643
677
  value: r,
644
678
  children: t
645
679
  });
646
- }, et = Symbol.for("@voltro/client/storeStorageProvider"), tt = () => {
647
- let e = globalThis, t = e[et];
680
+ }, it = Symbol.for("@voltro/client/storeStorageProvider"), at = () => {
681
+ let e = globalThis, t = e[it];
648
682
  if (t !== void 0) return t;
649
683
  let n = {
650
684
  provider: void 0,
651
685
  used: !1
652
686
  };
653
- return e[et] = n, n;
654
- }, nt = (e) => {
687
+ return e[it] = n, n;
688
+ }, ot = (e) => {
655
689
  if (typeof window > "u") return null;
656
690
  try {
657
691
  return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
658
692
  } catch {
659
693
  return null;
660
694
  }
661
- }, rt = (e) => {
662
- let t = tt();
695
+ }, st = (e) => {
696
+ let t = at();
663
697
  t.used && e !== null && console.warn("[voltro] setStoreStorage() was called after a persisted store had already read. That store booted against the previous backing store and will not be re-read. Install storage before the first render — on React Native, after awaiting hydrate()."), t.provider = e ?? void 0;
664
- }, it = (e) => {
665
- let t = tt();
666
- return t.used = !0, (t.provider ?? nt)(e);
667
- }, at = () => {
668
- let e = tt();
698
+ }, ct = (e) => {
699
+ let t = at();
700
+ return t.used = !0, (t.provider ?? ot)(e);
701
+ }, lt = () => {
702
+ let e = at();
669
703
  e.provider = void 0, e.used = !1;
670
- }, ot = (e, t) => {
704
+ }, ut = (e, t) => {
671
705
  if (Object.is(e, t)) return !0;
672
706
  if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
673
707
  let n = Object.keys(e), r = Object.keys(t);
674
708
  if (n.length !== r.length) return !1;
675
709
  for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
676
710
  return !0;
677
- }, st = 50, ct = /* @__PURE__ */ new Set(), lt = (e, t) => {
678
- ct.has(e) || (ct.add(e), console.warn(t));
679
- }, ut = "\0global", dt = null, ft = (e, t, n) => {
680
- let r = dt?.() ?? null;
711
+ }, dt = 50, ft = /* @__PURE__ */ new Set(), pt = (e, t) => {
712
+ ft.has(e) || (ft.add(e), console.warn(t));
713
+ }, mt = "\0global", ht = null, gt = (e, t, n) => {
714
+ let r = ht?.() ?? null;
681
715
  if (r === null) return n;
682
716
  let i = n;
683
717
  for (let n of r.seeds) n.store === e && n.key === t && (i = {
@@ -685,9 +719,9 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
685
719
  ...n.value
686
720
  });
687
721
  return i;
688
- }, pt = (e, t) => {
722
+ }, _t = (e, t) => {
689
723
  let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
690
- if (i >= st) throw i = 0, Error(`defineStore: notification depth exceeded ${st} — 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.`);
724
+ if (i >= dt) throw i = 0, Error(`defineStore: notification depth exceeded ${dt} — 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.`);
691
725
  i += 1;
692
726
  try {
693
727
  for (let e of [...r]) e();
@@ -708,20 +742,20 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
708
742
  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}', () => { … })\`.`);
709
743
  if (--a, a > 0) return;
710
744
  let l = o, u = s;
711
- o = void 0, s = void 0, !ot(l, n) && (t(l, n, u), c());
745
+ o = void 0, s = void 0, !ut(l, n) && (t(l, n, u), c());
712
746
  },
713
747
  set: (e, r) => {
714
748
  let i = typeof e == "function" ? e(n) : {
715
749
  ...n,
716
750
  ...e
717
751
  };
718
- if (ot(i, n)) return;
752
+ if (ut(i, n)) return;
719
753
  let o = n;
720
754
  n = i, !(a > 0) && (t(o, i, r), c());
721
755
  },
722
756
  reset: () => {
723
757
  let r = e();
724
- if (ot(r, n)) return;
758
+ if (ut(r, n)) return;
725
759
  let i = n;
726
760
  n = r, !(a > 0) && (t(i, r, "reset"), c());
727
761
  },
@@ -729,51 +763,51 @@ var ge = /* @__PURE__ */ new Set(), _e = (e) => {
729
763
  r.delete(e);
730
764
  })
731
765
  };
732
- }, mt = 200, ht = [], gt = /* @__PURE__ */ new Set(), _t = [], vt = () => _t, yt = (e) => (gt.add(e), () => {
733
- gt.delete(e);
734
- }), bt = () => {
735
- ht.length = 0, _t = [];
736
- }, xt = (e, t) => {
737
- let n = ht[e];
766
+ }, vt = 200, yt = [], bt = /* @__PURE__ */ new Set(), xt = [], St = () => xt, Ct = (e) => (bt.add(e), () => {
767
+ bt.delete(e);
768
+ }), wt = () => {
769
+ yt.length = 0, xt = [];
770
+ }, Tt = (e, t) => {
771
+ let n = yt[e];
738
772
  if (n === void 0) return !1;
739
- let r = Tt.get(n.store);
773
+ let r = kt.get(n.store);
740
774
  if (r === void 0) return !1;
741
775
  let i = t === "before" ? n.prev : n.next;
742
- Ct = !0;
776
+ Dt = !0;
743
777
  try {
744
778
  r.set(() => i, n.key, `travel:${t}`);
745
779
  } finally {
746
- Ct = !1;
780
+ Dt = !1;
747
781
  }
748
782
  return !0;
749
- }, St = !1, Ct = !1, wt = (e) => {
750
- ht.push(e), ht.length > mt && ht.shift(), _t = [...ht];
751
- for (let e of [...gt]) e();
752
- }, Tt = /* @__PURE__ */ new Map(), Et = /* @__PURE__ */ new Map(), Dt = 0, Ot = !1, kt = /* @__PURE__ */ new Map(), At = () => (Ot || (Ot = !0, queueMicrotask(() => {
753
- Dt += 1, Ot = !1;
754
- })), Dt), jt = Mt(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
755
- function Mt(e) {
783
+ }, Et = !1, Dt = !1, Ot = (e) => {
784
+ yt.push(e), yt.length > vt && yt.shift(), xt = [...yt];
785
+ for (let e of [...bt]) e();
786
+ }, kt = /* @__PURE__ */ new Map(), At = /* @__PURE__ */ new Map(), jt = 0, Mt = !1, Nt = /* @__PURE__ */ new Map(), Pt = () => (Mt || (Mt = !0, queueMicrotask(() => {
787
+ jt += 1, Mt = !1;
788
+ })), jt), Ft = It(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
789
+ function It(e) {
756
790
  let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
757
791
  return n.length > 0 ? n : void 0;
758
792
  }
759
- var Nt = () => {
793
+ var Lt = () => {
760
794
  let e = (/* @__PURE__ */ Error()).stack;
761
795
  if (typeof e != "string") return "<unknown>";
762
796
  for (let t of e.split("\n").slice(1)) {
763
- let e = Mt(t);
797
+ let e = It(t);
764
798
  if (e === void 0) continue;
765
799
  let n = e.replace(/:\d+:\d+$/, "");
766
- if (jt === "" || n !== jt.replace(/:\d+:\d+$/, "")) return n;
800
+ if (Ft === "" || n !== Ft.replace(/:\d+:\d+$/, "")) return n;
767
801
  }
768
802
  return "<unknown>";
769
- }, Pt = () => [...Tt.values()], Ft = (e, t, n) => {
770
- let r = Nt(), i = At(), a = Tt.get(e);
803
+ }, Rt = () => [...kt.values()], zt = (e, t, n) => {
804
+ let r = Lt(), i = Pt(), a = kt.get(e);
771
805
  if (a !== void 0) {
772
- let t = Et.get(e) ?? "<unknown>", n = kt.get(e) === i;
806
+ let t = At.get(e) ?? "<unknown>", n = Nt.get(e) === i;
773
807
  if (r !== "<unknown>" && r === t && !n) return a;
774
808
  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: ${r}`);
775
809
  }
776
- let o = n?.persist, s = () => it(o?.storage === "session" ? "session" : "local"), c = () => {
810
+ let o = n?.persist, s = () => ct(o?.storage === "session" ? "session" : "local"), c = () => {
777
811
  let e = s();
778
812
  if (e === null || o === void 0) return;
779
813
  let t;
@@ -798,28 +832,28 @@ var Nt = () => {
798
832
  t.setItem(o.key, JSON.stringify(n));
799
833
  } catch {}
800
834
  }, u = /* @__PURE__ */ new Map(), d = (n) => {
801
- let r = n ?? ut, i = u.get(r);
835
+ let r = n ?? mt, i = u.get(r);
802
836
  if (i === void 0) {
803
837
  let a = n;
804
- i = pt(o !== void 0 && n === void 0 ? () => {
838
+ i = _t(o !== void 0 && n === void 0 ? () => {
805
839
  let e = t();
806
840
  return f = e, {
807
841
  ...e,
808
842
  ...c() ?? {}
809
843
  };
810
844
  } : t, (t, n, r) => {
811
- if (o !== void 0 && a === void 0 && l(n), !St && !Ct) {
845
+ if (o !== void 0 && a === void 0 && l(n), !Et && !Dt) {
812
846
  let e = m(a);
813
847
  e.steps.length = e.cursor, e.steps.push({
814
848
  prev: t,
815
849
  next: n
816
850
  }), e.steps.length > h && e.steps.shift(), e.cursor = e.steps.length;
817
851
  }
818
- wt({
852
+ Ot({
819
853
  store: e,
820
854
  ...a === void 0 ? {} : { key: a },
821
855
  ...r === void 0 ? {} : { label: r },
822
- ...St || Ct ? { isUndo: !0 } : {},
856
+ ...Et || Dt ? { isUndo: !0 } : {},
823
857
  prev: t,
824
858
  next: n,
825
859
  at: Date.now()
@@ -828,7 +862,7 @@ var Nt = () => {
828
862
  }
829
863
  return i;
830
864
  }, f, p = /* @__PURE__ */ new Map(), m = (e) => {
831
- let t = e ?? ut, n = p.get(t);
865
+ let t = e ?? mt, n = p.get(t);
832
866
  return n === void 0 && (n = {
833
867
  steps: [],
834
868
  cursor: 0
@@ -848,26 +882,32 @@ var Nt = () => {
848
882
  }, b = {
849
883
  name: e,
850
884
  use: (t, n) => {
851
- let r = d(n?.key), i = O(t);
885
+ let r = d(n?.key), i = k(t);
852
886
  i.current = t;
853
- let a = O(n?.equals);
887
+ let a = k(n?.equals);
854
888
  a.current = n?.equals;
855
- let o = O({
889
+ let o = k({
856
890
  state: void 0,
857
891
  value: void 0,
858
892
  has: !1
859
- }), s = w((t) => {
893
+ }), s = T((t) => {
860
894
  let n = o.current;
861
895
  if (n.has && Object.is(n.state, t)) return n.value;
862
896
  let r = i.current(t), s = a.current, c = n.has && (s ? s(n.value, r) : Object.is(n.value, r));
863
- process.env.NODE_ENV !== "production" && s === void 0 && n.has && !c && typeof r == "object" && r && ot(n.value, r) && lt(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.`);
897
+ if (process.env.NODE_ENV !== "production" && s === void 0 && n.has && !c && typeof r == "object" && r && ut(n.value, r)) {
898
+ let t = !0;
899
+ try {
900
+ t = !Object.is(i.current(n.state), n.value);
901
+ } catch {}
902
+ pt(e, t ? `[@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.` : `[@voltro/client] ${e}.use(): this component re-renders on store changes that do not change what it selects. The selector is stable — it returns the same reference for the same state — and the STORE is writing a new value that is equal one level deep (a fresh \`[]\` or \`{}\`, say).\n Pass \`{ equals: shallow }\` (exported from @voltro/client), or stop writing an equal value.`);
903
+ }
864
904
  let l = c ? n.value : r;
865
905
  return o.current = {
866
906
  state: t,
867
907
  value: l,
868
908
  has: !0
869
909
  }, l;
870
- }, []), c = n?.key, l = n?.retain === !0, u = w((e) => {
910
+ }, []), c = n?.key, l = n?.retain === !0, u = T((e) => {
871
911
  let t = r.subscribe(e);
872
912
  return c !== void 0 && !l && v(c), () => {
873
913
  t(), c !== void 0 && !l && y(c);
@@ -876,12 +916,12 @@ var Nt = () => {
876
916
  r,
877
917
  c,
878
918
  l
879
- ]), p = w(() => s(r.get()), [r, s]), m = w(() => s(ft(e, n?.key, n?.key === void 0 && f !== void 0 ? f : r.get())), [
919
+ ]), p = T(() => s(r.get()), [r, s]), m = T(() => s(gt(e, n?.key, n?.key === void 0 && f !== void 0 ? f : r.get())), [
880
920
  r,
881
921
  n?.key,
882
922
  s
883
- ]), h = re(u, p, m);
884
- return ne(h), h;
923
+ ]), h = j(u, p, m);
924
+ return te(h), h;
885
925
  },
886
926
  instance: d,
887
927
  get: (e) => d(e).get(),
@@ -894,11 +934,11 @@ var Nt = () => {
894
934
  undo: (e) => {
895
935
  let t = m(e);
896
936
  if (t.cursor === 0) return !1;
897
- --t.cursor, St = !0;
937
+ --t.cursor, Et = !0;
898
938
  try {
899
939
  d(e).set(() => t.steps[t.cursor].prev, "undo");
900
940
  } finally {
901
- St = !1;
941
+ Et = !1;
902
942
  }
903
943
  return !0;
904
944
  },
@@ -906,11 +946,11 @@ var Nt = () => {
906
946
  let t = m(e);
907
947
  if (t.cursor >= t.steps.length) return !1;
908
948
  let n = t.steps[t.cursor];
909
- t.cursor += 1, St = !0;
949
+ t.cursor += 1, Et = !0;
910
950
  try {
911
951
  d(e).set(() => n.next, "redo");
912
952
  } finally {
913
- St = !1;
953
+ Et = !1;
914
954
  }
915
955
  return !0;
916
956
  },
@@ -922,24 +962,24 @@ var Nt = () => {
922
962
  release: (e) => {
923
963
  u.delete(e), p.delete(e);
924
964
  },
925
- keys: () => [...u.keys()].filter((e) => e !== ut)
965
+ keys: () => [...u.keys()].filter((e) => e !== mt)
926
966
  };
927
- return Tt.set(e, b), Et.set(e, r), kt.set(e, i), b;
928
- }, It = () => {
929
- Tt.clear(), Et.clear(), kt.clear(), ct.clear();
930
- }, Lt = () => ({ seeds: [] }), Rt = (e) => {
931
- dt = e;
932
- }, zt = (e, t, n) => {
933
- let r = dt?.() ?? null;
967
+ return kt.set(e, b), At.set(e, r), Nt.set(e, i), b;
968
+ }, Bt = () => {
969
+ kt.clear(), At.clear(), Nt.clear(), ft.clear();
970
+ }, Vt = () => ({ seeds: [] }), Ht = (e) => {
971
+ ht = e;
972
+ }, Ut = (e, t, n) => {
973
+ let r = ht?.() ?? null;
934
974
  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.)`);
935
975
  r.seeds.push({
936
976
  store: e.name,
937
977
  ...n?.key === void 0 ? {} : { key: n.key },
938
978
  value: t
939
979
  });
940
- }, Bt = (e) => {
980
+ }, Wt = (e) => {
941
981
  if (e !== void 0) for (let t of e) {
942
- let e = Tt.get(t.store);
982
+ let e = kt.get(t.store);
943
983
  e !== void 0 && e.set(t.value, t.key);
944
984
  }
945
985
  }, q = (e, t) => {
@@ -961,35 +1001,35 @@ var Nt = () => {
961
1001
  }
962
1002
  if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
963
1003
  return r;
964
- }, Vt = Object.freeze({
1004
+ }, Gt = Object.freeze({
965
1005
  data: void 0,
966
1006
  revision: -1,
967
1007
  emittedAt: void 0,
968
1008
  error: void 0,
969
1009
  pendingPatches: 0
970
- }), Ht = () => Vt;
1010
+ }), Kt = () => Gt;
971
1011
  function J(e, t, n = {}, r = {}) {
972
- let i = r.skip === !0, { runtime: a, cache: o, client: s, descriptors: c } = K(e), l = c[t]?.source, u = O(n);
1012
+ let i = r.skip === !0, { runtime: a, cache: o, client: s, descriptors: c } = K(e), l = c[t]?.source, u = k(n);
973
1013
  u.current = n;
974
- let d = O(s);
1014
+ let d = k(s);
975
1015
  d.current = s;
976
- let f = D(() => JSON.stringify(Object.entries(n).sort(([e], [t]) => e.localeCompare(t))), [n]), p = D(() => {
1016
+ let f = O(() => JSON.stringify(Object.entries(n).sort(([e], [t]) => e.localeCompare(t))), [n]), p = O(() => {
977
1017
  let e = u.current;
978
1018
  return {
979
1019
  queryKey: [t, e],
980
1020
  fetch: () => q(d.current, t)(e)
981
1021
  };
982
- }, [t, f]), m = p.queryKey, h = w((e) => i ? () => {} : o.subscribe(p.queryKey, p.fetch, a, e, l === void 0 ? {} : { source: l }).unsubscribe, [
1022
+ }, [t, f]), m = p.queryKey, h = T((e) => i ? () => {} : o.subscribe(p.queryKey, p.fetch, a, e, l === void 0 ? {} : { source: l }).unsubscribe, [
983
1023
  o,
984
1024
  a,
985
1025
  l,
986
1026
  i,
987
1027
  p
988
- ]), g = w(() => i ? Vt : o.peek(m), [
1028
+ ]), g = T(() => i ? Gt : o.peek(m), [
989
1029
  o,
990
1030
  i,
991
1031
  m
992
- ]), _ = re(h, g, Ht), v = _.data !== void 0, y = v && (Array.isArray(_.data) ? _.data.length === 0 : _.data === null), b = {
1032
+ ]), _ = j(h, g, Kt), v = _.data !== void 0, y = v && (Array.isArray(_.data) ? _.data.length === 0 : _.data === null), b = {
993
1033
  revision: _.revision,
994
1034
  emittedAt: _.emittedAt,
995
1035
  error: _.error,
@@ -1045,30 +1085,35 @@ function J(e, t, n = {}, r = {}) {
1045
1085
  };
1046
1086
  }
1047
1087
  //#endregion
1048
- //#region src/runRpc.ts
1049
- var Y = async (e, t) => {
1088
+ //#region src/awaitResolvedApi.ts
1089
+ var qt = 15e3, Y = async (e, t, n) => {
1090
+ if (!Xe(e.current)) return e.current;
1091
+ let r = Date.now() + qt;
1092
+ for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !Xe(e.current)) return e.current;
1093
+ throw Error(`Voltro: the api "${t}" did not resolve within ${qt}ms, so ${n} was never sent. This is not the boot window — that is waited out. Check that "${t}" is a configured api name and that its client could connect.`);
1094
+ }, X = async (e, t) => {
1050
1095
  let n = await e.runPromiseExit(t);
1051
- if (N.isSuccess(n)) return n.value;
1052
- throw A.squash(n.cause);
1053
- }, Ut = 100, X = [], Wt = /* @__PURE__ */ new Set(), Gt = [], Kt = () => {
1054
- Gt = X.slice();
1055
- }, qt = () => {
1056
- Kt();
1057
- for (let e of Wt) try {
1096
+ if (P.isSuccess(n)) return n.value;
1097
+ throw M.squash(n.cause);
1098
+ }, Jt = 100, Z = [], Yt = /* @__PURE__ */ new Set(), Xt = [], Zt = () => {
1099
+ Xt = Z.slice();
1100
+ }, Qt = () => {
1101
+ Zt();
1102
+ for (let e of Yt) try {
1058
1103
  e();
1059
1104
  } catch {}
1060
- }, Jt = (e) => {
1105
+ }, $t = (e) => {
1061
1106
  let t = {
1062
1107
  ...e,
1063
1108
  status: "pending",
1064
1109
  startedAt: Date.now()
1065
1110
  };
1066
- X.unshift(t), X.length > Ut && (X.length = Ut), qt();
1067
- }, Yt = (e, t) => {
1068
- let n = X.findIndex((t) => t.id === e);
1111
+ Z.unshift(t), Z.length > Jt && (Z.length = Jt), Qt();
1112
+ }, en = (e, t) => {
1113
+ let n = Z.findIndex((t) => t.id === e);
1069
1114
  if (n === -1) return;
1070
- let r = X[n], i = Date.now();
1071
- X[n] = t.status === "success" ? {
1115
+ let r = Z[n], i = Date.now();
1116
+ Z[n] = t.status === "success" ? {
1072
1117
  ...r,
1073
1118
  status: "success",
1074
1119
  output: t.output,
@@ -1080,12 +1125,12 @@ var Y = async (e, t) => {
1080
1125
  error: t.error,
1081
1126
  settledAt: i,
1082
1127
  durationMs: i - r.startedAt
1083
- }, qt();
1084
- }, Xt = () => Gt, Zt = (e) => (Wt.add(e), () => {
1085
- Wt.delete(e);
1086
- }), Qt = () => {
1087
- X.length !== 0 && (X.length = 0, qt());
1088
- }, $t = (e, t) => {
1128
+ }, Qt();
1129
+ }, tn = () => Xt, nn = (e) => (Yt.add(e), () => {
1130
+ Yt.delete(e);
1131
+ }), rn = () => {
1132
+ Z.length !== 0 && (Z.length = 0, Qt());
1133
+ }, an = (e, t) => {
1089
1134
  if (t === void 0 || typeof e != "object" || !e) return e;
1090
1135
  try {
1091
1136
  Object.defineProperty(e, "__voltroTraceId", {
@@ -1095,107 +1140,117 @@ var Y = async (e, t) => {
1095
1140
  });
1096
1141
  } catch {}
1097
1142
  return e;
1098
- }, en, tn = (e) => {
1099
- en = e;
1100
- }, nn = () => en, rn = (e, t, n) => typeof e == "function" ? e(t, n) : e, an = 0, on = () => `mut_${++an}`, sn = 0, cn = () => {
1143
+ }, on, sn = (e) => {
1144
+ on = e;
1145
+ }, cn = () => on, ln = (e, t, n) => typeof e == "function" ? e(t, n) : e, un = 0, dn = () => `mut_${++un}`, fn = 0, pn = () => {
1101
1146
  let e = typeof crypto < "u" ? crypto : void 0;
1102
- return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${sn += 1}`;
1103
- }, ln = (e, t) => e.pipe(M.locallyWith(R.currentHeaders, (e) => se.set(e, "idempotency-key", t))), un = (e, t) => ({
1147
+ return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${fn += 1}`;
1148
+ }, mn = (e, t) => e.pipe(N.locallyWith(B.currentHeaders, (e) => ae.set(e, "idempotency-key", t))), hn = (e, t) => ({
1104
1149
  update: (n, r) => {
1105
1150
  e.update(n, r, t);
1106
1151
  },
1107
1152
  forTag: (n, r) => e.forTag(n, r, t)
1108
- }), Z = (e, t) => {
1109
- let { runtime: n, cache: r, client: i, descriptors: a, errorBus: o } = K(e), s = a[t], c = s?.targets;
1153
+ }), Q = (e, t) => {
1154
+ let n = K(e), { descriptors: r, errorBus: i } = n, a = k(n);
1155
+ a.current = n;
1156
+ let o = r[t], s = o?.targets;
1110
1157
  if (process.env.NODE_ENV !== "production") {
1111
- let n = s?.kind;
1158
+ let n = o?.kind;
1112
1159
  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.`);
1113
1160
  }
1114
- let [l, u] = k(!1), [d, f] = k(void 0), [p, m] = k(void 0), h = O(null), g = O(!1), _ = w(async (a, s) => {
1115
- let l = s?.onError !== void 0 || s?.notify?.error !== void 0, d = (e) => {
1116
- s?.onError?.(e, a);
1117
- let t = rn(s?.notify?.error, e, a);
1118
- t !== void 0 && en?.error(t);
1161
+ let [c, l] = A(!1), [u, d] = A(void 0), [f, p] = A(void 0), m = k(null), h = k(!1), g = T(async (n, r) => {
1162
+ let o = r?.onError !== void 0 || r?.notify?.error !== void 0, c = (e) => {
1163
+ r?.onError?.(e, n);
1164
+ let t = ln(r?.notify?.error, e, n);
1165
+ t !== void 0 && on?.error(t);
1119
1166
  };
1120
- u(!0), f(void 0);
1121
- let p = on(), _ = s?.idempotencyKey ?? cn();
1122
- Jt({
1123
- id: p,
1167
+ l(!0), d(void 0);
1168
+ let u, f, g;
1169
+ try {
1170
+ ({runtime: u, cache: f, client: g} = await Y(a, e, t));
1171
+ } catch (e) {
1172
+ if (l(!1), d(e), o) return c(e);
1173
+ throw e;
1174
+ }
1175
+ let _ = dn(), v = r?.idempotencyKey ?? pn();
1176
+ $t({
1177
+ id: _,
1124
1178
  apiName: e,
1125
1179
  tag: t,
1126
- input: a
1180
+ input: n
1127
1181
  });
1128
- let v = h.current, y = g.current;
1129
- if (v) try {
1130
- v(un(r, p), a);
1182
+ let y = m.current, b = h.current;
1183
+ if (y) try {
1184
+ y(hn(f, _), n);
1131
1185
  } catch (e) {
1132
- if (f(e), u(!1), r.revertByMutation(p), Yt(p, {
1186
+ if (d(e), l(!1), f.revertByMutation(_), en(_, {
1133
1187
  status: "error",
1134
1188
  error: e
1135
- }), l) return d(e);
1189
+ }), o) return c(e);
1136
1190
  throw e;
1137
1191
  }
1138
- else !y && c && c.length > 0 && r.autoApply(c, a, p);
1139
- let b;
1192
+ else !b && s && s.length > 0 && f.autoApply(s, n, _);
1193
+ let x;
1140
1194
  try {
1141
- let o = q(i, t), c = M.currentSpan.pipe(M.tap((e) => M.sync(() => {
1142
- b = e.traceId, _e({
1195
+ let a = q(g, t), o = N.currentSpan.pipe(N.tap((e) => N.sync(() => {
1196
+ x = e.traceId, me({
1143
1197
  traceId: e.traceId,
1144
1198
  spanId: e.spanId,
1145
1199
  source: "mutation",
1146
1200
  tag: t
1147
1201
  });
1148
- })), M.catchAll(() => M.void), M.zipRight(ln(o(a), _))).pipe(M.withSpan(`client.mutation.${t}`, { attributes: {
1202
+ })), N.catchAll(() => N.void), N.zipRight(mn(a(n), v))).pipe(N.withSpan(`client.mutation.${t}`, { attributes: {
1149
1203
  "voltro.api": e,
1150
- "voltro.mutationId": p,
1204
+ "voltro.mutationId": _,
1151
1205
  "rpc.tag": t
1152
- } })), l = await Y(n, c);
1153
- m(l), Yt(p, {
1206
+ } })), s = await X(u, o);
1207
+ p(s), en(_, {
1154
1208
  status: "success",
1155
- output: l
1156
- }), r.confirmByMutation(p), s?.onSuccess?.(l, a);
1157
- let u = rn(s?.notify?.success, l, a);
1158
- return u !== void 0 && en?.success(u), l;
1209
+ output: s
1210
+ }), i.emitSuccess({
1211
+ source: "mutation",
1212
+ tag: t
1213
+ }), f.confirmByMutation(_), r?.onSuccess?.(s, n);
1214
+ let c = ln(r?.notify?.success, s, n);
1215
+ return c !== void 0 && on?.success(c), s;
1159
1216
  } catch (e) {
1160
- let n = $t(e, b);
1161
- if (f(n), Yt(p, {
1217
+ let n = an(e, x);
1218
+ if (d(n), en(_, {
1162
1219
  status: "error",
1163
1220
  error: n
1164
- }), r.revertByMutation(p), o.emit({
1221
+ }), f.revertByMutation(_), i.emit({
1165
1222
  source: "mutation",
1166
1223
  tag: t,
1167
1224
  error: n,
1168
- ...b === void 0 ? {} : { traceId: b }
1169
- }), l) return d(n);
1225
+ ...x === void 0 ? {} : { traceId: x }
1226
+ }), o) return c(n);
1170
1227
  throw n;
1171
1228
  } finally {
1172
- u(!1);
1229
+ l(!1);
1173
1230
  }
1174
1231
  }, [
1175
- n,
1176
- r,
1177
- i,
1178
1232
  e,
1179
1233
  t,
1180
- c
1234
+ s,
1235
+ i
1181
1236
  ]);
1182
- return D(() => {
1237
+ return O(() => {
1183
1238
  let e = {
1184
- mutate: _,
1185
- pending: l,
1186
- error: d,
1187
- data: p,
1188
- withOptimistic: (t) => (h.current = t, e),
1189
- withoutOptimistic: () => (g.current = !0, e)
1239
+ mutate: g,
1240
+ pending: c,
1241
+ error: u,
1242
+ data: f,
1243
+ withOptimistic: (t) => (m.current = t, e),
1244
+ withoutOptimistic: () => (h.current = !0, e)
1190
1245
  };
1191
1246
  return e;
1192
1247
  }, [
1193
- _,
1194
- l,
1195
- d,
1196
- p
1248
+ g,
1249
+ c,
1250
+ u,
1251
+ f
1197
1252
  ]);
1198
- }, dn = (e, t) => {
1253
+ }, gn = (e, t) => {
1199
1254
  if (t === void 0 || typeof e != "object" || !e) return e;
1200
1255
  try {
1201
1256
  Object.defineProperty(e, "__voltroTraceId", {
@@ -1205,22 +1260,17 @@ var Y = async (e, t) => {
1205
1260
  });
1206
1261
  } catch {}
1207
1262
  return e;
1208
- }, fn = (e, t, n) => typeof e == "function" ? e(t, n) : e, pn = 0, mn = () => `act_${++pn}`, hn = 15e3, gn = async (e, t, n) => {
1209
- if (!Ke(e.current)) return e.current;
1210
- let r = Date.now() + hn;
1211
- for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !Ke(e.current)) return e.current;
1212
- throw Error(`Voltro: the api "${t}" did not resolve within ${hn}ms, so ${n} was never sent. This is not the boot window — that is waited out. Check that "${t}" is a configured api name and that its client could connect.`);
1213
- }, _n = (e, t) => {
1214
- let n = K(e), { descriptors: r, errorBus: i } = n, a = O(n);
1263
+ }, _n = (e, t, n) => typeof e == "function" ? e(t, n) : e, vn = 0, yn = () => `act_${++vn}`, bn = (e, t) => {
1264
+ let n = K(e), { descriptors: r, errorBus: i } = n, a = k(n);
1215
1265
  if (a.current = n, process.env.NODE_ENV !== "production") {
1216
1266
  let n = r[t]?.kind;
1217
1267
  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.`);
1218
1268
  }
1219
- let [o, s] = k(!1), [c, l] = k(void 0), [u, d] = k(void 0), f = w(async (n, r) => {
1269
+ let [o, s] = A(!1), [c, l] = A(void 0), [u, d] = A(void 0), f = T(async (n, r) => {
1220
1270
  let o = r?.onError !== void 0 || r?.notify?.error !== void 0;
1221
1271
  s(!0), l(void 0);
1222
- let c = mn(), u = r?.idempotencyKey ?? cn();
1223
- Jt({
1272
+ let c = yn(), u = r?.idempotencyKey ?? pn();
1273
+ $t({
1224
1274
  id: c,
1225
1275
  apiName: e,
1226
1276
  tag: t,
@@ -1228,27 +1278,30 @@ var Y = async (e, t) => {
1228
1278
  });
1229
1279
  let f;
1230
1280
  try {
1231
- let { runtime: i, client: o } = await gn(a, e, t), s = q(o, t), l = await Y(i, M.currentSpan.pipe(M.tap((e) => M.sync(() => {
1232
- f = e.traceId, _e({
1281
+ let { runtime: o, client: s } = await Y(a, e, t), l = q(s, t), p = await X(o, N.currentSpan.pipe(N.tap((e) => N.sync(() => {
1282
+ f = e.traceId, me({
1233
1283
  traceId: e.traceId,
1234
1284
  spanId: e.spanId,
1235
1285
  source: "action",
1236
1286
  tag: t
1237
1287
  });
1238
- })), M.catchAll(() => M.void), M.zipRight(ln(s(n), u))).pipe(M.withSpan(`client.action.${t}`, { attributes: {
1288
+ })), N.catchAll(() => N.void), N.zipRight(mn(l(n), u))).pipe(N.withSpan(`client.action.${t}`, { attributes: {
1239
1289
  "voltro.api": e,
1240
1290
  "voltro.actionId": c,
1241
1291
  "rpc.tag": t
1242
1292
  } })));
1243
- d(l), Yt(c, {
1293
+ d(p), en(c, {
1244
1294
  status: "success",
1245
- output: l
1246
- }), r?.onSuccess?.(l, n);
1247
- let p = fn(r?.notify?.success, l, n);
1248
- return p !== void 0 && nn()?.success(p), l;
1295
+ output: p
1296
+ }), i.emitSuccess({
1297
+ source: "action",
1298
+ tag: t
1299
+ }), r?.onSuccess?.(p, n);
1300
+ let m = _n(r?.notify?.success, p, n);
1301
+ return m !== void 0 && cn()?.success(m), p;
1249
1302
  } catch (e) {
1250
- let a = dn(e, f);
1251
- if (l(a), Yt(c, {
1303
+ let a = gn(e, f);
1304
+ if (l(a), en(c, {
1252
1305
  status: "error",
1253
1306
  error: a
1254
1307
  }), i.emit({
@@ -1258,8 +1311,8 @@ var Y = async (e, t) => {
1258
1311
  ...f === void 0 ? {} : { traceId: f }
1259
1312
  }), o) {
1260
1313
  r?.onError?.(a, n);
1261
- let e = fn(r?.notify?.error, a, n);
1262
- e !== void 0 && nn()?.error(e);
1314
+ let e = _n(r?.notify?.error, a, n);
1315
+ e !== void 0 && cn()?.error(e);
1263
1316
  return;
1264
1317
  }
1265
1318
  throw a;
@@ -1271,7 +1324,7 @@ var Y = async (e, t) => {
1271
1324
  t,
1272
1325
  i
1273
1326
  ]);
1274
- return D(() => ({
1327
+ return O(() => ({
1275
1328
  run: f,
1276
1329
  pending: o,
1277
1330
  error: c,
@@ -1282,14 +1335,14 @@ var Y = async (e, t) => {
1282
1335
  c,
1283
1336
  u
1284
1337
  ]);
1285
- }, vn = S(void 0), yn = (e) => C(vn.Provider, { value: e.messages }, e.children), bn = () => T(vn), xn = Symbol.for("voltro.client.formEngine"), Sn = S(void 0), Cn = (e, t) => {
1338
+ }, xn = C(void 0), Sn = (e) => w(xn.Provider, { value: e.messages }, e.children), Cn = () => E(xn), wn = Symbol.for("voltro.client.formEngine"), Tn = C(void 0), En = (e, t) => {
1286
1339
  let n = e;
1287
1340
  for (let e of t.split(".")) {
1288
1341
  if (typeof n != "object" || !n) return;
1289
1342
  n = n[e];
1290
1343
  }
1291
1344
  return n;
1292
- }, wn = (e, t, n) => `vf-${e}-${t}-${n}`.replace(/[^a-zA-Z0-9_-]/g, "-"), Tn = {
1345
+ }, Dn = (e, t, n) => `vf-${e}-${t}-${n}`.replace(/[^a-zA-Z0-9_-]/g, "-"), On = {
1293
1346
  isTouched: !1,
1294
1347
  isBlurred: !1,
1295
1348
  isDirty: !1,
@@ -1298,186 +1351,186 @@ var Y = async (e, t) => {
1298
1351
  isValidating: !1,
1299
1352
  errorMap: {},
1300
1353
  errorSourceMap: {}
1301
- }, En = (e, t) => {
1354
+ }, kn = (e, t) => {
1302
1355
  let n = e.find((e) => e.name === t);
1303
1356
  if (n !== void 0) return n;
1304
1357
  let r = /^(.+?)\.\d+\.(.+)$/.exec(t);
1305
1358
  if (r !== null) return e.find((e) => e.name === r[1] && e.widget === "array")?.item?.find((e) => e.name === r[2]);
1306
- }, Dn = (e, t, n) => {
1307
- let r = K(e), a = Z(e, t), o = n.schema ?? r.descriptors[t]?.input;
1308
- process.env.NODE_ENV !== "production" && o === 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.`);
1309
- let s = D(() => o ? x(o) : [], [o]), c = bn(), l = n.messages ?? c, u = D(() => ({
1359
+ }, An = (e, t, n) => {
1360
+ let r = K(e), a = k(void 0), o = typeof t == "function" ? t(a.current?.state?.values ?? n.defaults ?? {}) : t, s = k(o).current, c = Q(e, o), l = n.schema ?? r.descriptors[o]?.input;
1361
+ 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.`);
1362
+ let u = O(() => l ? x(l) : [], [l]), d = Cn(), f = n.messages ?? d, p = O(() => ({
1310
1363
  ...n.locale === void 0 ? {} : { locale: n.locale },
1311
- ...l === void 0 ? {} : { messages: l }
1312
- }), [n.locale, l]), d = O(n.asyncFields);
1313
- d.current = n.asyncFields;
1314
- let f = O(n);
1315
- f.current = n;
1316
- let p = O(a);
1317
- p.current = a;
1318
- let m = O(u);
1319
- m.current = u;
1320
- let h = O(o);
1321
- h.current = o;
1322
- let [g, _] = k(() => n.flash?.errors ?? {}), [v, y] = k(n.flash?.formError), [ee, S] = k(void 0), C = O(void 0), T = w((e) => {
1323
- let t = h.current;
1364
+ ...f === void 0 ? {} : { messages: f }
1365
+ }), [n.locale, f]), m = k(n.asyncFields);
1366
+ m.current = n.asyncFields;
1367
+ let h = k(n);
1368
+ h.current = n;
1369
+ let g = k(c);
1370
+ g.current = c;
1371
+ let _ = k(p);
1372
+ _.current = p;
1373
+ let v = k(l);
1374
+ v.current = l;
1375
+ let [y, S] = A(() => n.flash?.errors ?? {}), [C, w] = A(n.flash?.formError), [E, te] = A(void 0), j = k(void 0), M = T((e) => {
1376
+ let t = v.current;
1324
1377
  if (t === void 0) return [];
1325
- let n = f.current, r = e;
1378
+ let n = h.current, r = e;
1326
1379
  if (n.toInput !== void 0) try {
1327
1380
  r = n.toInput(e);
1328
1381
  } catch {
1329
1382
  r = e;
1330
1383
  }
1331
- let a = i(t, r, m.current).issues;
1384
+ let a = i(t, r, _.current).issues;
1332
1385
  if (n.toInput === void 0) return a;
1333
1386
  let o = n.errorPath ?? {};
1334
1387
  return a.map((t) => {
1335
1388
  let n = o[t.path];
1336
- return n === void 0 ? (Cn(e, t.path) !== void 0 || t.path.includes("."), t) : {
1389
+ return n === void 0 ? (En(e, t.path) !== void 0 || t.path.includes("."), t) : {
1337
1390
  ...t,
1338
1391
  path: n
1339
1392
  };
1340
1393
  });
1341
- }, []), ne = w((e) => {
1342
- let t = { ...e ?? {} }, n = h.current;
1394
+ }, []), ne = T((e) => {
1395
+ let t = { ...e ?? {} }, n = v.current;
1343
1396
  if (n !== void 0) for (let e of x(n)) (e.widget === "checkbox" || e.widget === "switch") && !(e.name in t) && (t[e.name] = !1);
1344
1397
  return t;
1345
- }, []), re = O(() => Promise.resolve()), A = O(void 0);
1346
- if (A.current === void 0) {
1398
+ }, []), re = k(() => Promise.resolve());
1399
+ if (a.current === void 0) {
1347
1400
  let e = n.flash, t = e === void 0 ? ne(n.defaults) : {
1348
1401
  ...ne(n.defaults),
1349
1402
  ...e.values
1350
1403
  };
1351
- A.current = new pe({
1404
+ a.current = new de({
1352
1405
  onSubmit: ({ value: e }) => re.current(e),
1353
1406
  defaultValues: t,
1354
1407
  validators: { onChange: ({ value: e }) => {
1355
- let t = T(e);
1408
+ let t = M(e);
1356
1409
  if (t.length === 0) return;
1357
1410
  let n = {};
1358
- for (let e of t) e.path !== "" && !(e.path in n) && (n[e.path] = b(e, m.current));
1411
+ for (let e of t) e.path !== "" && !(e.path in n) && (n[e.path] = b(e, _.current));
1359
1412
  return { fields: n };
1360
1413
  } }
1361
1414
  });
1362
1415
  }
1363
- let ie = A.current, j = ie;
1364
- E(() => j.mount(), [j]);
1365
- let M = n.subscribe ?? "all";
1366
- me(ie.store, (e) => M === "all" ? e : `${e.submissionAttempts}|${String(e.isSubmitting)}|${String(e.isDirty)}|${String(e.isTouched)}`);
1367
- let N = ie.store.state.values, P = ie.store.state, F = D(() => T(N), [T, N]), ae = n.isLoading === !0, I = n.validate, oe = I?.onChange ?? "afterTouched", L = I?.onBlur ?? !0, se = P.submissionAttempts, R = P.fieldMetaBase ?? {}, ce = w((e) => {
1368
- if (ae) return !1;
1369
- if (se > 0 || oe === "always") return !0;
1370
- if (oe === "never") return !1;
1371
- let t = R[e];
1372
- return t === void 0 ? !1 : L ? t.isBlurred === !0 : t.isTouched === !0;
1416
+ let N = a.current, P = N;
1417
+ D(() => P.mount(), [P]);
1418
+ let F = n.subscribe ?? "all";
1419
+ fe(N.store, (e) => F === "all" ? e : `${e.submissionAttempts}|${String(e.isSubmitting)}|${String(e.isDirty)}|${String(e.isTouched)}`);
1420
+ let I = N.store.state.values, L = N.store.state, R = O(() => M(I), [M, I]), ie = n.isLoading === !0, z = n.validate, ae = z?.onChange ?? "afterTouched", B = z?.onBlur ?? !0, oe = L.submissionAttempts, se = L.fieldMetaBase ?? {}, le = T((e) => {
1421
+ if (ie) return !1;
1422
+ if (oe > 0 || ae === "always") return !0;
1423
+ if (ae === "never") return !1;
1424
+ let t = se[e];
1425
+ return t === void 0 ? !1 : B ? t.isBlurred === !0 : t.isTouched === !0;
1373
1426
  }, [
1427
+ oe,
1374
1428
  se,
1375
- R,
1429
+ ie,
1376
1430
  ae,
1377
- oe,
1378
- L
1379
- ]), z = w((e) => {
1380
- let t = g[e];
1431
+ B
1432
+ ]), V = T((e) => {
1433
+ let t = y[e];
1381
1434
  if (t !== void 0) return t;
1382
- let n = d.current?.[e];
1435
+ let n = m.current?.[e];
1383
1436
  if (n !== void 0 && n.status === "invalid") return n.message ?? b({
1384
1437
  id: "validation.invalid",
1385
1438
  fallback: "Invalid value"
1386
- }, m.current);
1387
- if (!ce(e)) return;
1388
- let r = F.find((t) => t.path === e);
1389
- return r === void 0 ? void 0 : b(r, m.current);
1439
+ }, _.current);
1440
+ if (!le(e)) return;
1441
+ let r = R.find((t) => t.path === e);
1442
+ return r === void 0 ? void 0 : b(r, _.current);
1390
1443
  }, [
1391
- g,
1392
- ce,
1393
- F
1394
- ]), ue = D(() => {
1395
- let e = {}, t = /* @__PURE__ */ new Set([...F.map((e) => e.path).filter((e) => e !== ""), ...Object.keys(g)]);
1396
- for (let [e, n] of Object.entries(d.current ?? {})) n.status === "invalid" && t.add(e);
1444
+ y,
1445
+ le,
1446
+ R
1447
+ ]), ue = O(() => {
1448
+ let e = {}, t = /* @__PURE__ */ new Set([...R.map((e) => e.path).filter((e) => e !== ""), ...Object.keys(y)]);
1449
+ for (let [e, n] of Object.entries(m.current ?? {})) n.status === "invalid" && t.add(e);
1397
1450
  for (let n of t) {
1398
- let t = z(n);
1451
+ let t = V(n);
1399
1452
  t !== void 0 && (e[n] = t);
1400
1453
  }
1401
1454
  return e;
1402
1455
  }, [
1403
- F,
1404
- g,
1405
- z
1406
- ]), de = w((e) => {
1407
- _((t) => {
1456
+ R,
1457
+ y,
1458
+ V
1459
+ ]), pe = T((e) => {
1460
+ S((t) => {
1408
1461
  if (!(e in t)) return t;
1409
1462
  let n = { ...t };
1410
1463
  return delete n[e], n;
1411
1464
  });
1412
- }, []), fe = w((n) => {
1413
- let r = En(s, n), i = j.getFieldMeta(n), a = z(n), o = wn(e, t, n), c = d.current?.[n], l = [a === void 0 ? void 0 : `${o}-error`, r?.description === void 0 ? void 0 : `${o}-help`].filter((e) => e !== void 0);
1465
+ }, []), H = T((t) => {
1466
+ let n = kn(u, t), r = P.getFieldMeta(t), i = V(t), a = Dn(e, s, t), o = m.current?.[t], c = [i === void 0 ? void 0 : `${a}-error`, n?.description === void 0 ? void 0 : `${a}-help`].filter((e) => e !== void 0);
1414
1467
  return {
1415
- value: j.getFieldValue(n),
1468
+ value: P.getFieldValue(t),
1416
1469
  setValue: (e) => {
1417
- de(n), !Object.is(j.getFieldValue(n), e) && j.setFieldValue(n, e);
1470
+ pe(t), !Object.is(P.getFieldValue(t), e) && P.setFieldValue(t, e);
1418
1471
  },
1419
1472
  onBlur: () => {
1420
- j.setFieldMeta(n, (e) => ({
1421
- ...Tn,
1473
+ P.setFieldMeta(t, (e) => ({
1474
+ ...On,
1422
1475
  ...e ?? {},
1423
1476
  isTouched: !0,
1424
1477
  isBlurred: !0
1425
1478
  }));
1426
1479
  },
1427
- error: a,
1428
- serverError: g[n],
1429
- touched: i?.isTouched === !0,
1430
- blurred: i?.isBlurred === !0,
1431
- dirty: i?.isDirty === !0,
1432
- required: r?.required === !0,
1433
- label: r?.label ?? n,
1434
- widget: r?.widget ?? "text",
1435
- options: r?.options,
1436
- description: r?.description,
1437
- asyncStatus: c?.status ?? "idle",
1480
+ error: i,
1481
+ serverError: y[t],
1482
+ touched: r?.isTouched === !0,
1483
+ blurred: r?.isBlurred === !0,
1484
+ dirty: r?.isDirty === !0,
1485
+ required: n?.required === !0,
1486
+ label: n?.label ?? t,
1487
+ widget: n?.widget ?? "text",
1488
+ options: n?.options,
1489
+ description: n?.description,
1490
+ asyncStatus: o?.status ?? "idle",
1438
1491
  a11y: {
1439
- id: o,
1440
- "aria-invalid": a !== void 0 || void 0,
1441
- "aria-required": r?.required === !0 || void 0,
1442
- "aria-describedby": l.length > 0 ? l.join(" ") : void 0
1492
+ id: a,
1493
+ "aria-invalid": i !== void 0 || void 0,
1494
+ "aria-required": n?.required === !0 || void 0,
1495
+ "aria-describedby": c.length > 0 ? c.join(" ") : void 0
1443
1496
  }
1444
1497
  };
1445
1498
  }, [
1446
1499
  e,
1447
- de,
1448
- j,
1449
1500
  s,
1450
- t,
1451
- g,
1452
- z
1453
- ]), he = w((e) => ({
1454
- items: j.getFieldValue(e) ?? [],
1501
+ pe,
1502
+ P,
1503
+ u,
1504
+ y,
1505
+ V
1506
+ ]), me = T((e) => ({
1507
+ items: P.getFieldValue(e) ?? [],
1455
1508
  push: (t) => {
1456
- j.pushFieldValue(e, t);
1509
+ P.pushFieldValue(e, t);
1457
1510
  },
1458
1511
  insert: (t, n) => {
1459
- j.insertFieldValue(e, t, n);
1512
+ P.insertFieldValue(e, t, n);
1460
1513
  },
1461
1514
  remove: (t) => {
1462
- j.removeFieldValue(e, t);
1515
+ P.removeFieldValue(e, t);
1463
1516
  },
1464
1517
  move: (t, n) => {
1465
- j.moveFieldValues(e, t, n);
1518
+ P.moveFieldValues(e, t, n);
1466
1519
  },
1467
1520
  swap: (t, n) => {
1468
- j.swapFieldValues(e, t, n);
1521
+ P.swapFieldValues(e, t, n);
1469
1522
  },
1470
- field: (t, n) => fe(`${e}.${t}.${n}`)
1471
- }), [j, fe]), ge = w((e) => s.filter((t) => t.section === e), [s]), _e = w((e, t) => {
1472
- de(e), !Object.is(j.getFieldValue(e), t) && j.setFieldValue(e, t);
1473
- }, [de, j]), ve = w((e) => {
1474
- for (let [t, n] of Object.entries(e)) j.setFieldValue(t, n);
1475
- }, [j]), B = w((e) => {
1476
- _({}), y(void 0), S(void 0), C.current = void 0, e === void 0 ? j.reset() : j.reset(ne(e));
1477
- }, [j, ne]), ye = n.asyncTimeoutMs ?? 5e3, be = w(async () => {
1523
+ field: (t, n) => H(`${e}.${t}.${n}`)
1524
+ }), [P, H]), he = T((e) => u.filter((t) => t.section === e), [u]), U = T((e, t) => {
1525
+ pe(e), !Object.is(P.getFieldValue(e), t) && P.setFieldValue(e, t);
1526
+ }, [pe, P]), ge = T((e) => {
1527
+ for (let [t, n] of Object.entries(e)) P.setFieldValue(t, n);
1528
+ }, [P]), _e = T((e) => {
1529
+ S({}), w(void 0), te(void 0), j.current = void 0, e === void 0 ? P.reset() : P.reset(ne(e));
1530
+ }, [P, ne]), ve = n.asyncTimeoutMs ?? 5e3, ye = T(async () => {
1478
1531
  let e = Date.now();
1479
1532
  for (;;) {
1480
- let t = d.current;
1533
+ let t = m.current;
1481
1534
  if (t === void 0) return;
1482
1535
  let n = Object.entries(t), r = n.filter(([, e]) => e.status === "checking");
1483
1536
  if (r.length === 0) {
@@ -1485,81 +1538,81 @@ var Y = async (e, t) => {
1485
1538
  return e.length === 0 ? void 0 : Object.fromEntries(e.map(([e, t]) => [e, t.message ?? b({
1486
1539
  id: "validation.invalid",
1487
1540
  fallback: "Invalid value"
1488
- }, m.current)]));
1541
+ }, _.current)]));
1489
1542
  }
1490
- if (Date.now() - e > ye) return Object.fromEntries(r.map(([e]) => [e, b({
1543
+ if (Date.now() - e > ve) return Object.fromEntries(r.map(([e]) => [e, b({
1491
1544
  id: "validation.checking",
1492
1545
  fallback: "Still checking…"
1493
- }, m.current)]));
1546
+ }, _.current)]));
1494
1547
  await new Promise((e) => setTimeout(e, 50));
1495
1548
  }
1496
- }, [ye]), xe = w(() => {
1497
- let n = globalThis.document;
1498
- if (n?.getElementById === void 0) return;
1499
- let r = [...s.map((e) => e.name), ...Object.keys(g).filter((e) => !s.some((t) => t.name === e))];
1500
- for (let i of r) if (z(i) !== void 0) {
1501
- n.getElementById(wn(e, t, i))?.focus?.();
1549
+ }, [ve]), be = T(() => {
1550
+ let t = globalThis.document;
1551
+ if (t?.getElementById === void 0) return;
1552
+ let n = [...u.map((e) => e.name), ...Object.keys(y).filter((e) => !u.some((t) => t.name === e))];
1553
+ for (let r of n) if (V(r) !== void 0) {
1554
+ t.getElementById(Dn(e, s, r))?.focus?.();
1502
1555
  return;
1503
1556
  }
1504
1557
  }, [
1505
1558
  e,
1506
1559
  s,
1507
- t,
1508
- g,
1509
- z
1510
- ]), V = O(xe);
1511
- V.current = xe;
1512
- let Se = w(async () => {
1513
- y(void 0), _({}), S(void 0), C.current = void 0;
1560
+ u,
1561
+ y,
1562
+ V
1563
+ ]), W = k(be);
1564
+ W.current = be;
1565
+ let xe = T(async () => {
1566
+ w(void 0), S({}), te(void 0), j.current = void 0;
1514
1567
  let e, t = !1;
1515
- if (await j.handleSubmit().catch((n) => {
1568
+ if (await P.handleSubmit().catch((n) => {
1516
1569
  t = !0, e = n;
1517
1570
  }), t) throw e;
1518
- return C.current === void 0 && queueMicrotask(() => {
1519
- V.current();
1520
- }), C.current;
1521
- }, [j]);
1571
+ return j.current === void 0 && queueMicrotask(() => {
1572
+ W.current();
1573
+ }), j.current;
1574
+ }, [P]);
1522
1575
  re.current = (async (e) => {
1523
- let t = f.current, n = e, r = n;
1576
+ let t = h.current, n = e, r = n;
1524
1577
  if (t.toInput !== void 0) try {
1525
1578
  r = t.toInput(n);
1526
1579
  } catch (e) {
1527
- y(e instanceof Error ? e.message : String(e));
1580
+ w(e instanceof Error ? e.message : String(e));
1528
1581
  return;
1529
1582
  }
1530
- if (T(n).length > 0) {
1583
+ if (M(n).length > 0) {
1531
1584
  queueMicrotask(() => {
1532
- V.current();
1585
+ W.current();
1533
1586
  });
1534
1587
  return;
1535
1588
  }
1536
- let i = h.current;
1589
+ let i = v.current;
1537
1590
  if (i !== void 0) {
1538
- let e = te(i, r);
1591
+ let e = ee(i, r);
1539
1592
  e.dropped.length > 0 && process.env.NODE_ENV !== "production" && console.warn(`[@voltro/client] useFormBinding: dropped ${e.dropped.length} value(s) the mutation's input does not declare (${e.dropped.join(", ")}). The server refuses undeclared fields, so they are not sent. Map them with \`toInput\` if they belong in the write; ignore this if they are form-only state.`), r = e.input;
1540
1593
  }
1541
- let a = await be();
1594
+ let a = await ye();
1542
1595
  if (a !== void 0) {
1543
- _((e) => ({
1596
+ S((e) => ({
1544
1597
  ...e,
1545
1598
  ...a
1546
1599
  })), queueMicrotask(() => {
1547
- V.current();
1600
+ W.current();
1548
1601
  });
1549
1602
  return;
1550
1603
  }
1551
- let o = (e) => p.current.mutate(e);
1604
+ let o = (e) => g.current.mutate(e);
1552
1605
  try {
1553
1606
  let e = t.onSubmit === void 0 ? await o(r) : await t.onSubmit({
1554
1607
  input: r,
1555
1608
  values: n,
1556
1609
  mutate: o
1557
1610
  });
1558
- C.current = e, t.onSuccess?.(e);
1611
+ j.current = e, t.onSuccess?.(e);
1559
1612
  } catch (e) {
1560
- let t = le(e);
1613
+ let t = ce(e);
1561
1614
  if (t.length === 0) {
1562
- S(e), f.current.onError?.(e);
1615
+ te(e), h.current.onError?.(e);
1563
1616
  return;
1564
1617
  }
1565
1618
  let n = {};
@@ -1567,158 +1620,158 @@ var Y = async (e, t) => {
1567
1620
  id: e.message,
1568
1621
  ...e.params === void 0 ? {} : { params: e.params },
1569
1622
  fallback: e.message
1570
- }, m.current));
1571
- _((e) => ({
1623
+ }, _.current));
1624
+ S((e) => ({
1572
1625
  ...e,
1573
1626
  ...n
1574
1627
  })), queueMicrotask(() => {
1575
- V.current();
1628
+ W.current();
1576
1629
  });
1577
1630
  }
1578
1631
  });
1579
- let H = F.length === 0, U = Object.values(d.current ?? {}).some((e) => e.status === "checking"), W = ee ?? a.error, Ce = W !== void 0 && le(W).length > 0 ? void 0 : W, we = Object.keys(ue).length, Te = (() => {
1580
- for (let e of s) if (ue[e.name] !== void 0) return e.name;
1632
+ let Se = R.length === 0, Ce = Object.values(m.current ?? {}).some((e) => e.status === "checking"), we = E ?? c.error, Te = we !== void 0 && ce(we).length > 0 ? void 0 : we, Ee = Object.keys(ue).length, De = (() => {
1633
+ for (let e of u) if (ue[e.name] !== void 0) return e.name;
1581
1634
  let e = Object.keys(ue);
1582
1635
  return e.length > 0 ? e[0] : void 0;
1583
- })(), Ee = {
1584
- isDirty: !ae && P.isDirty,
1585
- isPristine: P.isPristine,
1586
- isTouched: P.isTouched,
1587
- isValid: H,
1588
- isValidating: U,
1589
- canSubmit: H && !U && !P.isSubmitting && !ae,
1590
- isSubmitting: P.isSubmitting,
1591
- isSubmitted: P.isSubmitted,
1592
- isSubmitSuccessful: P.isSubmitSuccessful && C.current !== void 0,
1593
- submissionAttempts: P.submissionAttempts,
1594
- errorCount: we,
1595
- firstInvalidPath: Te,
1596
- pending: a.pending,
1597
- isLoading: ae,
1598
- submitError: Ce,
1599
- data: a.data
1600
- }, De = {
1601
- fields: s,
1602
- values: N,
1636
+ })(), Oe = {
1637
+ isDirty: !ie && L.isDirty,
1638
+ isPristine: L.isPristine,
1639
+ isTouched: L.isTouched,
1640
+ isValid: Se,
1641
+ isValidating: Ce,
1642
+ canSubmit: Se && !Ce && !L.isSubmitting && !ie,
1643
+ isSubmitting: L.isSubmitting,
1644
+ isSubmitted: L.isSubmitted,
1645
+ isSubmitSuccessful: L.isSubmitSuccessful && j.current !== void 0,
1646
+ submissionAttempts: L.submissionAttempts,
1647
+ errorCount: Ee,
1648
+ firstInvalidPath: De,
1649
+ pending: c.pending,
1650
+ isLoading: ie,
1651
+ submitError: Te,
1652
+ data: c.data
1653
+ }, ke = {
1654
+ fields: u,
1655
+ values: I,
1603
1656
  errors: ue,
1604
- issues: F,
1605
- isValid: H,
1606
- pending: a.pending,
1607
- submitError: Ce,
1608
- formError: v,
1609
- data: a.data,
1610
- setValue: _e,
1611
- setValues: ve,
1612
- reset: B,
1613
- submit: Se,
1614
- field: fe,
1615
- array: he,
1616
- section: ge,
1617
- state: Ee,
1618
- focusFirstInvalid: xe
1657
+ issues: R,
1658
+ isValid: Se,
1659
+ pending: c.pending,
1660
+ submitError: Te,
1661
+ formError: C,
1662
+ data: c.data,
1663
+ setValue: U,
1664
+ setValues: ge,
1665
+ reset: _e,
1666
+ submit: xe,
1667
+ field: H,
1668
+ array: me,
1669
+ section: he,
1670
+ state: Oe,
1671
+ focusFirstInvalid: be
1619
1672
  };
1620
- return Object.defineProperty(De, xn, {
1673
+ return Object.defineProperty(ke, wn, {
1621
1674
  value: {
1622
- store: ie.store,
1623
- field: fe
1675
+ store: N.store,
1676
+ field: H
1624
1677
  },
1625
1678
  enumerable: !1
1626
- }), De;
1627
- }, On = (e) => C(Sn.Provider, { value: e.binding }, e.children), kn = () => T(Sn);
1628
- function An(e, t) {
1629
- let n = T(Sn), r = typeof e == "string" ? void 0 : e, i = typeof e == "string" ? e : t, a = r ?? n;
1679
+ }), ke;
1680
+ }, jn = (e) => w(Tn.Provider, { value: e.binding }, e.children), Mn = () => E(Tn);
1681
+ function Nn(e, t) {
1682
+ let n = E(Tn), r = typeof e == "string" ? void 0 : e, i = typeof e == "string" ? e : t, a = r ?? n;
1630
1683
  if (a === void 0) throw Error("useFormField(path) found no form binding — mount <FormBindingProvider binding={form}> above this field, or call useFormField(form, path) with the binding in hand.");
1631
- let o = a[xn];
1684
+ let o = a[wn];
1632
1685
  if (o === void 0) throw Error("useFormField: not a useFormBinding result");
1633
- return me(o.store, (e) => {
1686
+ return fe(o.store, (e) => {
1634
1687
  let t = e.fieldMetaBase[i];
1635
- return `${JSON.stringify(Cn(e.values, i))}|${t === void 0 ? "" : `${String(t.isTouched)}${String(t.isBlurred)}${JSON.stringify(t.errorMap)}`}|${e.submissionAttempts}`;
1688
+ return `${JSON.stringify(En(e.values, i))}|${t === void 0 ? "" : `${String(t.isTouched)}${String(t.isBlurred)}${JSON.stringify(t.errorMap)}`}|${e.submissionAttempts}`;
1636
1689
  }), o.field(i);
1637
1690
  }
1638
1691
  //#endregion
1639
1692
  //#region src/createHooks.ts
1640
- var jn = J, Mn = (e) => ({
1641
- useSubscription: (t, n, r) => jn(e, t, n, r),
1642
- useMutation: (t) => Z(e, t),
1643
- useAction: (t) => _n(e, t),
1644
- useFormBinding: (t, n) => Dn(e, t, n ?? {})
1645
- }), Nn = () => ({ seeds: [] }), Pn = null, Fn = (e) => {
1646
- Pn = e;
1647
- }, In = /* @__PURE__ */ new Map(), Ln = (e, t) => `${e}\u0000${t}`, Rn = (e, t, n, r) => {
1648
- let i = Pn?.() ?? null;
1693
+ var Pn = J, Fn = (e) => ({
1694
+ useSubscription: (t, n, r) => Pn(e, t, n, r),
1695
+ useMutation: (t) => Q(e, t),
1696
+ useAction: (t) => bn(e, t),
1697
+ useFormBinding: (t, n) => An(e, t, n ?? {})
1698
+ }), In = () => ({ seeds: [] }), Ln = null, Rn = (e) => {
1699
+ Ln = e;
1700
+ }, zn = /* @__PURE__ */ new Map(), Bn = (e, t) => `${e}\u0000${t}`, Vn = (e, t, n, r) => {
1701
+ let i = Ln?.() ?? null;
1649
1702
  if (i === null) throw Error(`seedPreloadedSubscription('${e}', '${t}') was called outside a server render. Preload seeds exist to put a subscription's first value into the SSR hydration payload; on the client the live subscription already provides it. (If this IS server code, the render did not install a seed bag — that is a framework bug.)`);
1650
1703
  i.seeds.push({
1651
1704
  api: e,
1652
- key: B([t, n]),
1705
+ key: U([t, n]),
1653
1706
  value: r
1654
1707
  });
1655
- }, zn = (e, t, n) => {
1656
- let r = Pn?.() ?? null;
1708
+ }, Hn = (e, t, n) => {
1709
+ let r = Ln?.() ?? null;
1657
1710
  r !== null && r.seeds.push({
1658
1711
  api: e,
1659
- key: B([t, n]),
1712
+ key: U([t, n]),
1660
1713
  value: void 0,
1661
1714
  failed: !0
1662
1715
  });
1663
- }, Bn = (e) => {
1664
- if (e !== void 0) for (let t of e) In.set(Ln(t.api, t.key), {
1716
+ }, Un = (e) => {
1717
+ if (e !== void 0) for (let t of e) zn.set(Bn(t.api, t.key), {
1665
1718
  value: t.value,
1666
1719
  failed: t.failed === !0
1667
1720
  });
1668
- }, Vn = (e, t, n) => {
1669
- let r = B([t, n]), i = Pn?.() ?? null;
1721
+ }, Wn = (e, t, n) => {
1722
+ let r = U([t, n]), i = Ln?.() ?? null;
1670
1723
  if (i !== null) {
1671
1724
  for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
1672
1725
  return;
1673
1726
  }
1674
- let a = In.get(Ln(e, r));
1727
+ let a = zn.get(Bn(e, r));
1675
1728
  return a === void 0 || a.failed ? void 0 : a.value;
1676
- }, Hn = (e, t, n) => {
1677
- let r = B([t, n]), i = Pn?.() ?? null;
1729
+ }, Gn = (e, t, n) => {
1730
+ let r = U([t, n]), i = Ln?.() ?? null;
1678
1731
  if (i !== null) {
1679
1732
  for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
1680
1733
  return "absent";
1681
1734
  }
1682
- let a = In.get(Ln(e, r));
1735
+ let a = zn.get(Bn(e, r));
1683
1736
  return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
1684
- }, Un = () => {
1685
- In.clear();
1737
+ }, Kn = () => {
1738
+ zn.clear();
1686
1739
  };
1687
1740
  //#endregion
1688
1741
  //#region src/usePreloadedSubscription.ts
1689
- function Wn(e, t, n = {}, r = {}) {
1690
- let i = Vn(e, t, n), a = J(e, t, n, i === void 0 ? r : {
1742
+ function qn(e, t, n = {}, r = {}) {
1743
+ let i = Wn(e, t, n), a = J(e, t, n, i === void 0 ? r : {
1691
1744
  ...r,
1692
1745
  initialSnapshot: i
1693
1746
  });
1694
- return Hn(e, t, n) === "failed" ? {
1747
+ return Gn(e, t, n) === "failed" ? {
1695
1748
  ...a,
1696
1749
  preloadFailed: !0
1697
1750
  } : a;
1698
1751
  }
1699
1752
  //#endregion
1700
1753
  //#region src/useEvent.ts
1701
- var Gn = {
1754
+ var Jn = {
1702
1755
  status: "idle",
1703
1756
  missed: 0,
1704
1757
  lastMiss: void 0
1705
- }, Kn = class {
1758
+ }, Yn = class {
1706
1759
  _tag = "EventStreamClosed";
1707
1760
  };
1708
- function qn(e, t, n, r = {}) {
1709
- let { skip: i = !1, apiName: a = "app", onMissed: o } = r, s = K(a), { runtime: c, client: l } = s, [u, d] = k(Gn), f = O(n);
1761
+ function Xn(e, t, n, r = {}) {
1762
+ let { skip: i = !1, apiName: a = "app", onMissed: o } = r, s = K(a), { runtime: c, client: l } = s, [u, d] = A(Jn), f = k(n);
1710
1763
  f.current = n;
1711
- let p = O(o);
1764
+ let p = k(o);
1712
1765
  p.current = o;
1713
- let m = O(l);
1766
+ let m = k(l);
1714
1767
  m.current = l;
1715
- let h = O(c);
1768
+ let h = k(c);
1716
1769
  h.current = c;
1717
- let g = O(/* @__PURE__ */ new Map()), _ = t === null ? null : JSON.stringify(Object.entries(t).sort(([e], [t]) => e < t ? -1 : 1)), v = O(t);
1770
+ let g = k(/* @__PURE__ */ new Map()), _ = t === null ? null : JSON.stringify(Object.entries(t).sort(([e], [t]) => e < t ? -1 : 1)), v = k(t);
1718
1771
  v.current = t;
1719
- let y = O(null);
1772
+ let y = k(null);
1720
1773
  y.current !== _ && (y.current = _, g.current = /* @__PURE__ */ new Map());
1721
- let b = w((e, t) => {
1774
+ let b = T((e, t) => {
1722
1775
  e <= 0 || (d((n) => ({
1723
1776
  ...n,
1724
1777
  missed: n.missed + e,
@@ -1730,17 +1783,17 @@ function qn(e, t, n, r = {}) {
1730
1783
  count: e,
1731
1784
  reason: t
1732
1785
  }));
1733
- }, []), x = !i && _ !== null && !Ke(s);
1734
- return E(() => {
1786
+ }, []), x = !i && _ !== null && !Xe(s);
1787
+ return D(() => {
1735
1788
  if (!x) {
1736
- d(Gn);
1789
+ d(Jn);
1737
1790
  return;
1738
1791
  }
1739
1792
  d((e) => ({
1740
1793
  ...e,
1741
1794
  status: "connecting"
1742
1795
  }));
1743
- let t = 0, n = M.sync(() => {
1796
+ let t = 0, n = N.sync(() => {
1744
1797
  let t = [...g.current].map(([e, t]) => ({
1745
1798
  origin: e,
1746
1799
  n: t
@@ -1749,14 +1802,14 @@ function qn(e, t, n, r = {}) {
1749
1802
  key: v.current,
1750
1803
  ...t.length > 0 ? { resume: t } : {}
1751
1804
  });
1752
- }), r = L.unwrap(n).pipe(L.tap(() => M.sync(() => {
1805
+ }), r = z.unwrap(n).pipe(z.tap(() => N.sync(() => {
1753
1806
  t = 0;
1754
- })), L.concat(L.fail(new Kn())), L.retry(I.exponential("250 millis", 2).pipe(I.either(I.spaced("30 seconds")), I.jittered, I.tapOutput(() => M.sync(() => {
1807
+ })), z.concat(z.fail(new Yn())), z.retry(R.exponential("250 millis", 2).pipe(R.either(R.spaced("30 seconds")), R.jittered, R.tapOutput(() => N.sync(() => {
1755
1808
  t += 1, d((e) => ({
1756
1809
  ...e,
1757
1810
  status: "connecting"
1758
1811
  }));
1759
- }))))), i = h.current.runFork(L.runForEach(r, (e) => M.sync(() => {
1812
+ }))))), i = h.current.runFork(z.runForEach(r, (e) => N.sync(() => {
1760
1813
  if (e._tag === "attached") {
1761
1814
  d((e) => ({
1762
1815
  ...e,
@@ -1778,11 +1831,11 @@ function qn(e, t, n, r = {}) {
1778
1831
  _,
1779
1832
  e.name,
1780
1833
  b
1781
- ]), x ? u : Gn;
1834
+ ]), x ? u : Jn;
1782
1835
  }
1783
1836
  //#endregion
1784
1837
  //#region src/sequence.ts
1785
- var Jn = () => {
1838
+ var Zn = () => {
1786
1839
  let e = (t) => ({
1787
1840
  steps: t,
1788
1841
  step: ((n, r, i) => e([...t, {
@@ -1794,7 +1847,7 @@ var Jn = () => {
1794
1847
  }]))
1795
1848
  });
1796
1849
  return e([]);
1797
- }, Yn = async (e, t = {}) => {
1850
+ }, Qn = async (e, t = {}) => {
1798
1851
  let n = {}, r = [];
1799
1852
  for (let i of e.steps) {
1800
1853
  if (i.when !== void 0 && !i.when(n)) {
@@ -1854,13 +1907,13 @@ var Jn = () => {
1854
1907
  ok: !0,
1855
1908
  data: n
1856
1909
  };
1857
- }, Xn = (e = {}) => {
1858
- let [t, n] = k(!1), [r, i] = k(void 0), [a, o] = k(void 0), s = O(e);
1910
+ }, $n = (e = {}) => {
1911
+ let [t, n] = A(!1), [r, i] = A(void 0), [a, o] = A(void 0), s = k(e);
1859
1912
  return s.current = e, {
1860
- run: w(async (e, t = {}) => {
1913
+ run: T(async (e, t = {}) => {
1861
1914
  n(!0), i(void 0), o(void 0);
1862
1915
  try {
1863
- let n = await Yn(e, {
1916
+ let n = await Qn(e, {
1864
1917
  ...s.current,
1865
1918
  ...t
1866
1919
  });
@@ -1873,7 +1926,7 @@ var Jn = () => {
1873
1926
  error: r,
1874
1927
  failedStep: a
1875
1928
  };
1876
- }, Zn = "@voltro/plugin-storage", Q = (e) => ue(Zn, e), Qn = (e, t, n, r) => new Promise((i, a) => {
1929
+ }, er = "@voltro/plugin-storage", $ = (e) => le(er, e), tr = (e, t, n, r) => new Promise((i, a) => {
1877
1930
  let o = new XMLHttpRequest();
1878
1931
  if (o.open("PUT", e), o.upload.onprogress = (e) => {
1879
1932
  e.lengthComputable && n(e.loaded / e.total);
@@ -1887,7 +1940,7 @@ var Jn = () => {
1887
1940
  return;
1888
1941
  }
1889
1942
  r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
1890
- }), $n = (e, t, n, r, i, a) => new Promise((o, s) => {
1943
+ }), nr = (e, t, n, r, i, a) => new Promise((o, s) => {
1891
1944
  let c = new XMLHttpRequest();
1892
1945
  if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
1893
1946
  e.lengthComputable && r(e.loaded / e.total);
@@ -1905,7 +1958,7 @@ var Jn = () => {
1905
1958
  return;
1906
1959
  }
1907
1960
  i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
1908
- }), er = (e, t, n, r, i) => new Promise((a, o) => {
1961
+ }), rr = (e, t, n, r, i) => new Promise((a, o) => {
1909
1962
  let s = new XMLHttpRequest();
1910
1963
  if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1911
1964
  e.lengthComputable && r(e.loaded / e.total);
@@ -1916,7 +1969,7 @@ var Jn = () => {
1916
1969
  return;
1917
1970
  }
1918
1971
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1919
- }), tr = (e, t, n, r, i) => new Promise((a, o) => {
1972
+ }), ir = (e, t, n, r, i) => new Promise((a, o) => {
1920
1973
  let s = new XMLHttpRequest();
1921
1974
  if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1922
1975
  e.lengthComputable && r(e.loaded / e.total);
@@ -1932,142 +1985,143 @@ var Jn = () => {
1932
1985
  return;
1933
1986
  }
1934
1987
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1935
- }), nr = (e, t = {}) => {
1936
- let { runtime: n, client: r, inspectBaseUrl: i, errorBus: a } = K(e), [o, s] = k(0), [c, l] = k("idle"), [u, d] = k(void 0), f = O(null), p = w(() => {
1988
+ }), ar = (e, t = {}) => {
1989
+ let n = K(e), { inspectBaseUrl: r, errorBus: i } = n, a = k(n);
1990
+ a.current = n;
1991
+ let [o, s] = A(0), [c, l] = A("idle"), [u, d] = A(void 0), f = k(null), p = T(() => {
1937
1992
  s(0), l("idle"), d(void 0);
1938
- }, []), m = w(() => {
1993
+ }, []), m = T(() => {
1939
1994
  f.current?.abort();
1940
- }, []), h = w((e) => /^https?:\/\//.test(e) ? e : `${i}${e}`, [i]), g = w(async (e, i, a, o) => {
1941
- let s = Math.max(0, i.retries ?? t.retries ?? 1), c = (e instanceof File, e.type || "application/octet-stream"), l = e instanceof File ? e.name : "blob", u = i.visibility ?? t.visibility, d = i.key ?? t.key, f = i.folder ?? t.folder, p = i.tags ?? t.tags, m = {
1942
- ...u ? { visibility: u } : {},
1943
- ...f ? { folder: f } : {},
1944
- ...p ? { tags: p } : {},
1945
- ...i.alt ? { alt: i.alt } : {},
1946
- ...i.caption ? { caption: i.caption } : {}
1947
- }, g = (e) => ({
1995
+ }, []), h = T((e) => /^https?:\/\//.test(e) ? e : `${r}${e}`, [r]), g = T(async (n, r, i, o) => {
1996
+ let { runtime: s, client: c } = await Y(a, e, "storage.upload"), l = Math.max(0, r.retries ?? t.retries ?? 1), u = (n instanceof File, n.type || "application/octet-stream"), d = n instanceof File ? n.name : "blob", f = r.visibility ?? t.visibility, p = r.key ?? t.key, m = r.folder ?? t.folder, g = r.tags ?? t.tags, _ = {
1997
+ ...f ? { visibility: f } : {},
1998
+ ...m ? { folder: m } : {},
1999
+ ...g ? { tags: g } : {},
2000
+ ...r.alt ? { alt: r.alt } : {},
2001
+ ...r.caption ? { caption: r.caption } : {}
2002
+ }, v = (e) => ({
1948
2003
  id: e.id,
1949
2004
  url: h(e.url),
1950
- name: l,
2005
+ name: d,
1951
2006
  mime: e.contentType,
1952
2007
  size: e.size,
1953
2008
  ...e.width === void 0 ? {} : { width: e.width },
1954
2009
  ...e.height === void 0 ? {} : { height: e.height }
1955
- }), _ = async () => {
1956
- let s = i.mintTag ?? t.mintTag ?? Q("mintUploadTicket"), l = q(r, s), u = await Y(n, l({
1957
- contentType: c,
1958
- ...m,
1959
- ...d ? { key: d } : {}
1960
- })), f = await tr(h(u.uploadUrl), c, e, o, a);
1961
- return g(f);
1962
- }, v = async () => {
1963
- let s = i.presignMintTag ?? t.presignMintTag ?? Q("mintPresignedUpload"), l = i.finalizeTag ?? t.finalizeTag ?? Q("finalizeUpload"), u;
2010
+ }), y = async () => {
2011
+ let e = r.mintTag ?? t.mintTag ?? $("mintUploadTicket"), a = q(c, e), l = await X(s, a({
2012
+ contentType: u,
2013
+ ..._,
2014
+ ...p ? { key: p } : {}
2015
+ })), d = await ir(h(l.uploadUrl), u, n, o, i);
2016
+ return v(d);
2017
+ }, b = async () => {
2018
+ let e = r.presignMintTag ?? t.presignMintTag ?? $("mintPresignedUpload"), a = r.finalizeTag ?? t.finalizeTag ?? $("finalizeUpload"), l;
1964
2019
  try {
1965
- let e = q(r, s);
1966
- u = await Y(n, e({
1967
- contentType: c,
1968
- ...m
2020
+ let t = q(c, e);
2021
+ l = await X(s, t({
2022
+ contentType: u,
2023
+ ..._
1969
2024
  }));
1970
2025
  } catch {
1971
2026
  return null;
1972
2027
  }
1973
- await er(u.uploadUrl, c, e, o, a);
1974
- let d = q(r, l), f = await Y(n, d({ finalizeToken: u.finalizeToken }));
1975
- return g(f);
1976
- }, y = async () => {
1977
- let s = i.beginResumableTag ?? t.beginResumableTag ?? Q("beginResumableUpload"), l = q(r, s), u = e.size, d = i.chunkSize ?? t.chunkSize, f = await Y(n, l({
1978
- contentType: c,
1979
- size: u,
1980
- ...m,
2028
+ await rr(l.uploadUrl, u, n, o, i);
2029
+ let d = q(c, a), f = await X(s, d({ finalizeToken: l.finalizeToken }));
2030
+ return v(f);
2031
+ }, x = async () => {
2032
+ let e = r.beginResumableTag ?? t.beginResumableTag ?? $("beginResumableUpload"), a = q(c, e), l = n.size, d = r.chunkSize ?? t.chunkSize, f = await X(s, a({
2033
+ contentType: u,
2034
+ size: l,
2035
+ ..._,
1981
2036
  ...d ? { chunkSize: d } : {}
1982
- })), p = h(f.uploadUrl), _ = Math.max(1, f.chunkSize), v = Math.max(1, Math.ceil(u / _)), y = Math.max(0, i.retries ?? t.retries ?? 1), b = 0, x = null;
1983
- for (let t = 0; t < v; t++) {
1984
- let n = t * _, r = Math.min(u, n + _), i = e.slice(n, r), s = t === v - 1, l = r - n, d = 0;
2037
+ })), p = h(f.uploadUrl), m = Math.max(1, f.chunkSize), g = Math.max(1, Math.ceil(l / m)), y = Math.max(0, r.retries ?? t.retries ?? 1), b = 0, x = null;
2038
+ for (let e = 0; e < g; e++) {
2039
+ let t = e * m, r = Math.min(l, t + m), a = n.slice(t, r), s = e === g - 1, c = r - t, d = 0;
1985
2040
  for (;;) {
1986
- if (a.aborted) throw new DOMException("upload aborted", "AbortError");
2041
+ if (i.aborted) throw new DOMException("upload aborted", "AbortError");
1987
2042
  try {
1988
- let e = await $n(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
1989
- s && (x = e);
2043
+ let t = await nr(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${e}${s ? "&final=1" : ""}`}`, u, a, (e) => o((b + e * c) / l), i, s);
2044
+ s && (x = t);
1990
2045
  break;
1991
2046
  } catch (e) {
1992
2047
  if (e instanceof DOMException && e.name === "AbortError" || d++ >= y) throw e;
1993
2048
  }
1994
2049
  }
1995
- b += l, o(b / u);
2050
+ b += c, o(b / l);
1996
2051
  }
1997
2052
  if (!x) throw Error("resumable upload produced no final reply");
1998
- return g(x);
1999
- }, b = async () => {
2000
- let s = i.multipartBeginTag ?? t.multipartBeginTag ?? Q("beginMultipartUpload"), u = i.multipartSignTag ?? t.multipartSignTag ?? Q("signMultipartPart"), d = i.multipartCompleteTag ?? t.multipartCompleteTag ?? Q("completeMultipartUpload"), f = i.multipartAbortTag ?? t.multipartAbortTag ?? Q("abortMultipartUpload"), p = e.size, g = i.chunkSize ?? t.chunkSize, _;
2053
+ return v(x);
2054
+ }, S = async () => {
2055
+ let e = r.multipartBeginTag ?? t.multipartBeginTag ?? $("beginMultipartUpload"), a = r.multipartSignTag ?? t.multipartSignTag ?? $("signMultipartPart"), l = r.multipartCompleteTag ?? t.multipartCompleteTag ?? $("completeMultipartUpload"), f = r.multipartAbortTag ?? t.multipartAbortTag ?? $("abortMultipartUpload"), p = n.size, m = r.chunkSize ?? t.chunkSize, g;
2001
2056
  try {
2002
- let e = q(r, s);
2003
- _ = await Y(n, e({
2004
- contentType: c,
2057
+ let t = q(c, e);
2058
+ g = await X(s, t({
2059
+ contentType: u,
2005
2060
  size: p,
2006
- ...m,
2007
- ...g ? { partSize: g } : {}
2061
+ ..._,
2062
+ ...m ? { partSize: m } : {}
2008
2063
  }));
2009
2064
  } catch {
2010
2065
  return null;
2011
2066
  }
2012
- let v = q(r, u), y = q(r, d), b = q(r, f), x = Math.max(1, _.partSize), ee = Math.max(1, Math.ceil(p / x)), te = Math.max(0, i.retries ?? t.retries ?? 1), S = [], C = 0;
2067
+ let v = q(c, a), y = q(c, l), b = q(c, f), x = Math.max(1, g.partSize), S = Math.max(1, Math.ceil(p / x)), ee = Math.max(0, r.retries ?? t.retries ?? 1), C = [], w = 0;
2013
2068
  try {
2014
- for (let t = 0; t < ee; t++) {
2015
- let r = t * x, i = Math.min(p, r + x), s = e.slice(r, i), c = t + 1, l = i - r, u = 0;
2069
+ for (let e = 0; e < S; e++) {
2070
+ let t = e * x, r = Math.min(p, t + x), a = n.slice(t, r), c = e + 1, l = r - t, u = 0;
2016
2071
  for (;;) {
2017
- if (a.aborted) throw new DOMException("upload aborted", "AbortError");
2072
+ if (i.aborted) throw new DOMException("upload aborted", "AbortError");
2018
2073
  try {
2019
- let { url: e } = await Y(n, v({
2020
- multipartToken: _.multipartToken,
2074
+ let { url: e } = await X(s, v({
2075
+ multipartToken: g.multipartToken,
2021
2076
  partNumber: c
2022
- })), t = await Qn(e, s, (e) => o((C + e * l) / p), a);
2023
- S.push({
2077
+ })), t = await tr(e, a, (e) => o((w + e * l) / p), i);
2078
+ C.push({
2024
2079
  partNumber: c,
2025
2080
  etag: t
2026
2081
  });
2027
2082
  break;
2028
2083
  } catch (e) {
2029
- if (e instanceof DOMException && e.name === "AbortError" || u++ >= te) throw e;
2084
+ if (e instanceof DOMException && e.name === "AbortError" || u++ >= ee) throw e;
2030
2085
  }
2031
2086
  }
2032
- C += l, o(C / p);
2087
+ w += l, o(w / p);
2033
2088
  }
2034
- let t = await Y(n, y({
2035
- multipartToken: _.multipartToken,
2036
- parts: S
2089
+ let e = await X(s, y({
2090
+ multipartToken: g.multipartToken,
2091
+ parts: C
2037
2092
  }));
2038
2093
  return {
2039
- id: t.id,
2040
- url: h(t.url),
2041
- name: l,
2042
- mime: c,
2043
- size: t.size
2094
+ id: e.id,
2095
+ url: h(e.url),
2096
+ name: d,
2097
+ mime: u,
2098
+ size: e.size
2044
2099
  };
2045
2100
  } catch (e) {
2046
2101
  try {
2047
- await Y(n, b({ multipartToken: _.multipartToken }));
2102
+ await X(s, b({ multipartToken: g.multipartToken }));
2048
2103
  } catch {}
2049
2104
  throw e;
2050
2105
  }
2051
2106
  };
2052
- if ((i.prefer ?? t.prefer) === "multipart") return await b() || await y();
2053
- if ((i.prefer ?? t.prefer) === "resumable") return await y();
2054
- let x = (i.prefer ?? t.prefer) === "presign", ee;
2055
- for (let e = 0; e <= s; e++) {
2056
- if (a.aborted) throw new DOMException("upload aborted", "AbortError");
2107
+ if ((r.prefer ?? t.prefer) === "multipart") return await S() || await x();
2108
+ if ((r.prefer ?? t.prefer) === "resumable") return await x();
2109
+ let ee = (r.prefer ?? t.prefer) === "presign", C;
2110
+ for (let e = 0; e <= l; e++) {
2111
+ if (i.aborted) throw new DOMException("upload aborted", "AbortError");
2057
2112
  try {
2058
- if (x) {
2059
- let e = await v();
2113
+ if (ee) {
2114
+ let e = await b();
2060
2115
  if (e) return e;
2061
2116
  }
2062
- return await _();
2117
+ return await y();
2063
2118
  } catch (t) {
2064
- if (t instanceof DOMException && t.name === "AbortError" || (ee = t, e === s)) throw t;
2119
+ if (t instanceof DOMException && t.name === "AbortError" || (C = t, e === l)) throw t;
2065
2120
  }
2066
2121
  }
2067
- throw ee;
2122
+ throw C;
2068
2123
  }, [
2069
- n,
2070
- r,
2124
+ e,
2071
2125
  h,
2072
2126
  t.mintTag,
2073
2127
  t.presignMintTag,
@@ -2084,28 +2138,28 @@ var Jn = () => {
2084
2138
  t.folder,
2085
2139
  t.tags,
2086
2140
  t.retries
2087
- ]), _ = w(async (e, n = {}) => {
2141
+ ]), _ = T(async (e, n = {}) => {
2088
2142
  let r = new AbortController();
2089
2143
  f.current = r, l("uploading"), d(void 0), s(0);
2090
2144
  try {
2091
2145
  let t = await g(e, n, r.signal, s);
2092
2146
  return s(1), l("success"), t;
2093
2147
  } catch (e) {
2094
- throw l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
2148
+ throw l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || i.emit({
2095
2149
  source: "action",
2096
- tag: n.mintTag ?? t.mintTag ?? Q("mintUploadTicket"),
2150
+ tag: n.mintTag ?? t.mintTag ?? $("mintUploadTicket"),
2097
2151
  error: e
2098
2152
  }), e;
2099
2153
  }
2100
2154
  }, [
2101
2155
  g,
2102
- a,
2156
+ i,
2103
2157
  t.mintTag
2104
- ]), v = w(async (e, n = {}) => {
2158
+ ]), v = T(async (e, n = {}) => {
2105
2159
  if (e.length === 0) return [];
2106
2160
  let r = new AbortController();
2107
2161
  f.current = r, l("uploading"), d(void 0), s(0);
2108
- let i = Math.max(1, n.concurrency ?? t.concurrency ?? 3), o = Array(e.length), c = Array(e.length).fill(0), u = () => s(c.reduce((e, t) => e + t, 0) / e.length), p = 0, m = async () => {
2162
+ let a = Math.max(1, n.concurrency ?? t.concurrency ?? 3), o = Array(e.length), c = Array(e.length).fill(0), u = () => s(c.reduce((e, t) => e + t, 0) / e.length), p = 0, m = async () => {
2109
2163
  for (;;) {
2110
2164
  let t = p++;
2111
2165
  if (t >= e.length) return;
@@ -2115,33 +2169,33 @@ var Jn = () => {
2115
2169
  }
2116
2170
  };
2117
2171
  try {
2118
- return await Promise.all(Array.from({ length: Math.min(i, e.length) }, () => m())), s(1), l("success"), o;
2172
+ return await Promise.all(Array.from({ length: Math.min(a, e.length) }, () => m())), s(1), l("success"), o;
2119
2173
  } catch (e) {
2120
- throw r.abort(), l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || a.emit({
2174
+ throw r.abort(), l("error"), d(e), e instanceof DOMException && e.name === "AbortError" || i.emit({
2121
2175
  source: "action",
2122
- tag: n.mintTag ?? t.mintTag ?? Q("mintUploadTicket"),
2176
+ tag: n.mintTag ?? t.mintTag ?? $("mintUploadTicket"),
2123
2177
  error: e
2124
2178
  }), e;
2125
2179
  }
2126
2180
  }, [
2127
2181
  g,
2128
- a,
2182
+ i,
2129
2183
  t.concurrency,
2130
2184
  t.mintTag
2131
- ]), y = w((e, t = {}) => {
2185
+ ]), y = T((e, t = {}) => {
2132
2186
  e.preventDefault();
2133
2187
  let n = e.dataTransfer ? Array.from(e.dataTransfer.files) : [];
2134
2188
  return n.length ? v(n, t) : Promise.resolve([]);
2135
- }, [v]), b = w((e, t = {}) => {
2189
+ }, [v]), b = T((e, t = {}) => {
2136
2190
  let n = e.clipboardData ? Array.from(e.clipboardData.files) : [];
2137
2191
  return n.length ? v(n, t) : Promise.resolve([]);
2138
- }, [v]), x = D(() => ({
2192
+ }, [v]), x = O(() => ({
2139
2193
  onDragOver: (e) => e.preventDefault(),
2140
2194
  onDrop: (e) => {
2141
2195
  y(e);
2142
2196
  }
2143
2197
  }), [y]);
2144
- return D(() => ({
2198
+ return O(() => ({
2145
2199
  upload: _,
2146
2200
  uploadMany: v,
2147
2201
  progress: o,
@@ -2164,49 +2218,89 @@ var Jn = () => {
2164
2218
  b,
2165
2219
  x
2166
2220
  ]);
2167
- }, $ = async (e) => {
2168
- let t = q(e.client, e.tag), n = M.currentSpan.pipe(M.tap((t) => M.sync(() => {
2169
- _e({
2221
+ }, or = (e, t) => {
2222
+ let n = ar(e), r = bn(e, t.action), [i, a] = A("idle"), [o, s] = A(void 0), [c, l] = A(void 0), u = k(t.extra);
2223
+ u.current = t.extra;
2224
+ let d = T(async (e) => {
2225
+ l(void 0), s(void 0), a("uploading");
2226
+ let t;
2227
+ try {
2228
+ t = await n.upload(e);
2229
+ } catch (e) {
2230
+ throw a("error"), l(e), e;
2231
+ }
2232
+ a("transcribing");
2233
+ try {
2234
+ let e = await r.run({
2235
+ storageRef: t.id,
2236
+ ...u.current ?? {}
2237
+ });
2238
+ return s(e), a("done"), e;
2239
+ } catch (e) {
2240
+ throw a("error"), l(e), e;
2241
+ }
2242
+ }, [n, r]), f = T(() => {
2243
+ n.cancel(), a("idle");
2244
+ }, [n]), p = T(() => {
2245
+ n.reset(), a("idle"), s(void 0), l(void 0);
2246
+ }, [n]);
2247
+ return O(() => ({
2248
+ phase: i,
2249
+ progress: i === "uploading" ? n.progress : void 0,
2250
+ result: o,
2251
+ error: c ?? n.error,
2252
+ transcribe: d,
2253
+ cancel: f,
2254
+ reset: p
2255
+ }), [
2256
+ i,
2257
+ n.progress,
2258
+ n.error,
2259
+ o,
2260
+ c,
2261
+ d,
2262
+ f,
2263
+ p
2264
+ ]);
2265
+ }, sr = async (e) => {
2266
+ let t = q(e.client, e.tag), n = N.currentSpan.pipe(N.tap((t) => N.sync(() => {
2267
+ me({
2170
2268
  traceId: t.traceId,
2171
2269
  spanId: t.spanId,
2172
2270
  source: "mutation",
2173
2271
  tag: e.tag
2174
2272
  });
2175
- })), M.catchAll(() => M.void), M.zipRight(t(e.input)), M.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
2273
+ })), N.catchAll(() => N.void), N.zipRight(t(e.input)), N.withSpan(`${e.spanPrefix}.${e.tag}`, { attributes: {
2176
2274
  "voltro.api": e.apiName,
2177
2275
  "rpc.tag": e.tag
2178
2276
  } }));
2179
- return Y(e.runtime, n);
2180
- }, rr = (e, t) => {
2181
- let { runtime: n, client: r, descriptors: i } = K(e);
2182
- if (process.env.NODE_ENV !== "production") {
2183
- let n = i[t]?.kind;
2277
+ return X(e.runtime, n);
2278
+ }, cr = (e, t) => {
2279
+ let n = K(e), { descriptors: r } = n, i = k(n);
2280
+ if (i.current = n, process.env.NODE_ENV !== "production") {
2281
+ let n = r[t]?.kind;
2184
2282
  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.`);
2185
2283
  }
2186
- let [a, o] = k(!1), [s, c] = k(void 0), [l, u] = k(void 0), d = w(async (i) => {
2284
+ let [a, o] = A(!1), [s, c] = A(void 0), [l, u] = A(void 0), d = T(async (n) => {
2187
2285
  o(!0), c(void 0);
2188
2286
  try {
2189
- let a = await $({
2287
+ let { runtime: r, client: a } = await Y(i, e, t), o = await sr({
2190
2288
  apiName: e,
2191
- runtime: n,
2192
- client: r,
2289
+ runtime: r,
2290
+ client: a,
2193
2291
  tag: t,
2194
- input: i,
2292
+ input: n,
2195
2293
  spanPrefix: "client.workflow.start"
2196
2294
  });
2197
- return u(a), a;
2295
+ return u(o), o;
2198
2296
  } catch (e) {
2199
2297
  throw c(e), e;
2200
2298
  } finally {
2201
2299
  o(!1);
2202
2300
  }
2203
- }, [
2204
- e,
2205
- n,
2206
- r,
2207
- t
2208
- ]), f = w(async (t) => {
2209
- await $({
2301
+ }, [e, t]), f = T(async (t) => {
2302
+ let { runtime: n, client: r } = await Y(i, e, "__voltro.workflow.cancel");
2303
+ await sr({
2210
2304
  apiName: e,
2211
2305
  runtime: n,
2212
2306
  client: r,
@@ -2214,12 +2308,9 @@ var Jn = () => {
2214
2308
  input: t,
2215
2309
  spanPrefix: "client.workflow.cancel"
2216
2310
  });
2217
- }, [
2218
- e,
2219
- n,
2220
- r
2221
- ]), p = w(async (t) => {
2222
- await $({
2311
+ }, [e]), p = T(async (t) => {
2312
+ let { runtime: n, client: r } = await Y(i, e, "__voltro.workflow.resume");
2313
+ await sr({
2223
2314
  apiName: e,
2224
2315
  runtime: n,
2225
2316
  client: r,
@@ -2227,43 +2318,37 @@ var Jn = () => {
2227
2318
  input: t,
2228
2319
  spanPrefix: "client.workflow.resume"
2229
2320
  });
2230
- }, [
2231
- e,
2232
- n,
2233
- r
2234
- ]), m = w(async (t, i, a) => $({
2235
- apiName: e,
2236
- runtime: n,
2237
- client: r,
2238
- tag: "__voltro.workflow.signal",
2239
- input: {
2240
- id: t.id,
2241
- signalName: i,
2242
- ...a === void 0 ? {} : { payload: a }
2243
- },
2244
- spanPrefix: "client.workflow.signal"
2245
- }), [
2246
- e,
2247
- n,
2248
- r
2249
- ]), h = w(async (t, i, a, o) => $({
2250
- apiName: e,
2251
- runtime: n,
2252
- client: r,
2253
- tag: "__voltro.workflow.update",
2254
- input: {
2255
- id: t.id,
2256
- updateName: i,
2257
- ...a === void 0 ? {} : { payload: a },
2258
- ...o?.timeoutMs === void 0 ? {} : { timeoutMs: o.timeoutMs }
2259
- },
2260
- spanPrefix: "client.workflow.update"
2261
- }), [
2262
- e,
2263
- n,
2264
- r
2265
- ]);
2266
- return D(() => ({
2321
+ }, [e]), m = T(async (t, n, r) => {
2322
+ let { runtime: a, client: o } = await Y(i, e, "__voltro.workflow.signal");
2323
+ return sr({
2324
+ apiName: e,
2325
+ runtime: a,
2326
+ client: o,
2327
+ tag: "__voltro.workflow.signal",
2328
+ input: {
2329
+ id: t.id,
2330
+ signalName: n,
2331
+ ...r === void 0 ? {} : { payload: r }
2332
+ },
2333
+ spanPrefix: "client.workflow.signal"
2334
+ });
2335
+ }, [e]), h = T(async (t, n, r, a) => {
2336
+ let { runtime: o, client: s } = await Y(i, e, "__voltro.workflow.update");
2337
+ return sr({
2338
+ apiName: e,
2339
+ runtime: o,
2340
+ client: s,
2341
+ tag: "__voltro.workflow.update",
2342
+ input: {
2343
+ id: t.id,
2344
+ updateName: n,
2345
+ ...r === void 0 ? {} : { payload: r },
2346
+ ...a?.timeoutMs === void 0 ? {} : { timeoutMs: a.timeoutMs }
2347
+ },
2348
+ spanPrefix: "client.workflow.update"
2349
+ });
2350
+ }, [e]);
2351
+ return O(() => ({
2267
2352
  start: d,
2268
2353
  cancel: f,
2269
2354
  resume: p,
@@ -2282,34 +2367,32 @@ var Jn = () => {
2282
2367
  s,
2283
2368
  l
2284
2369
  ]);
2285
- }, ir = (e) => {
2286
- let { runtime: t, client: n } = K(e), [r, i] = k(!1), [a, o] = k(void 0), [s, c] = k(void 0), l = w(async (r, a, s) => {
2370
+ }, lr = (e) => {
2371
+ let t = K(e), n = k(t);
2372
+ n.current = t;
2373
+ let [r, i] = A(!1), [a, o] = A(void 0), [s, c] = A(void 0), l = T(async (t, r, a) => {
2287
2374
  i(!0), o(void 0);
2288
2375
  try {
2289
- let i = await $({
2376
+ let { runtime: i, client: o } = await Y(n, e, "__voltro.workflow.signal"), s = await sr({
2290
2377
  apiName: e,
2291
- runtime: t,
2292
- client: n,
2378
+ runtime: i,
2379
+ client: o,
2293
2380
  tag: "__voltro.workflow.signal",
2294
2381
  input: {
2295
- id: r.id,
2296
- signalName: a,
2297
- ...s === void 0 ? {} : { payload: s }
2382
+ id: t.id,
2383
+ signalName: r,
2384
+ ...a === void 0 ? {} : { payload: a }
2298
2385
  },
2299
2386
  spanPrefix: "client.workflow.signal"
2300
2387
  });
2301
- return c(i), i;
2388
+ return c(s), s;
2302
2389
  } catch (e) {
2303
2390
  throw o(e), e;
2304
2391
  } finally {
2305
2392
  i(!1);
2306
2393
  }
2307
- }, [
2308
- e,
2309
- t,
2310
- n
2311
- ]);
2312
- return D(() => ({
2394
+ }, [e]);
2395
+ return O(() => ({
2313
2396
  signal: l,
2314
2397
  pending: r,
2315
2398
  error: a,
@@ -2320,35 +2403,33 @@ var Jn = () => {
2320
2403
  a,
2321
2404
  s
2322
2405
  ]);
2323
- }, ar = (e) => {
2324
- let { runtime: t, client: n } = K(e), [r, i] = k(!1), [a, o] = k(void 0), [s, c] = k(void 0), l = w(async (r, a, s, l) => {
2406
+ }, ur = (e) => {
2407
+ let t = K(e), n = k(t);
2408
+ n.current = t;
2409
+ let [r, i] = A(!1), [a, o] = A(void 0), [s, c] = A(void 0), l = T(async (t, r, a, s) => {
2325
2410
  i(!0), o(void 0);
2326
2411
  try {
2327
- let i = await $({
2412
+ let { runtime: i, client: o } = await Y(n, e, "__voltro.workflow.update"), l = await sr({
2328
2413
  apiName: e,
2329
- runtime: t,
2330
- client: n,
2414
+ runtime: i,
2415
+ client: o,
2331
2416
  tag: "__voltro.workflow.update",
2332
2417
  input: {
2333
- id: r.id,
2334
- updateName: a,
2335
- ...s === void 0 ? {} : { payload: s },
2336
- ...l?.timeoutMs === void 0 ? {} : { timeoutMs: l.timeoutMs }
2418
+ id: t.id,
2419
+ updateName: r,
2420
+ ...a === void 0 ? {} : { payload: a },
2421
+ ...s?.timeoutMs === void 0 ? {} : { timeoutMs: s.timeoutMs }
2337
2422
  },
2338
2423
  spanPrefix: "client.workflow.update"
2339
2424
  });
2340
- return c(i), i;
2425
+ return c(l), l;
2341
2426
  } catch (e) {
2342
2427
  throw o(e), e;
2343
2428
  } finally {
2344
2429
  i(!1);
2345
2430
  }
2346
- }, [
2347
- e,
2348
- t,
2349
- n
2350
- ]);
2351
- return D(() => ({
2431
+ }, [e]);
2432
+ return O(() => ({
2352
2433
  update: l,
2353
2434
  pending: r,
2354
2435
  error: a,
@@ -2359,7 +2440,7 @@ var Jn = () => {
2359
2440
  a,
2360
2441
  s
2361
2442
  ]);
2362
- }, or = (e, t) => {
2443
+ }, dr = (e, t) => {
2363
2444
  let n = J(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
2364
2445
  return n.loading || n.idle || n.failed ? {
2365
2446
  ...n,
@@ -2368,7 +2449,7 @@ var Jn = () => {
2368
2449
  ...n,
2369
2450
  run: n.data[0]
2370
2451
  };
2371
- }, sr = (e, t = {}, n = {}) => {
2452
+ }, fr = (e, t = {}, n = {}) => {
2372
2453
  let r = J(e, "__voltro.workflow.runs", t, n);
2373
2454
  return r.loading || r.idle || r.failed ? {
2374
2455
  ...r,
@@ -2377,7 +2458,7 @@ var Jn = () => {
2377
2458
  ...r,
2378
2459
  runs: r.data
2379
2460
  };
2380
- }, cr = (e, t) => {
2461
+ }, pr = (e, t) => {
2381
2462
  let n = J(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
2382
2463
  return n.loading || n.idle || n.failed ? {
2383
2464
  ...n,
@@ -2386,7 +2467,7 @@ var Jn = () => {
2386
2467
  ...n,
2387
2468
  steps: n.data
2388
2469
  };
2389
- }, lr = (e, t) => {
2470
+ }, mr = (e, t) => {
2390
2471
  let n = J(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
2391
2472
  return n.loading || n.idle || n.failed ? {
2392
2473
  ...n,
@@ -2395,7 +2476,7 @@ var Jn = () => {
2395
2476
  ...n,
2396
2477
  events: n.data
2397
2478
  };
2398
- }, ur = lr, dr = (e, t = {}, n = {}) => {
2479
+ }, hr = mr, gr = (e, t = {}, n = {}) => {
2399
2480
  let r = J(e, "__voltro.workflow.domainEvents", t, n);
2400
2481
  return r.loading || r.idle || r.failed ? {
2401
2482
  ...r,
@@ -2404,7 +2485,7 @@ var Jn = () => {
2404
2485
  ...r,
2405
2486
  events: r.data
2406
2487
  };
2407
- }, fr = (e, t) => {
2488
+ }, _r = (e, t) => {
2408
2489
  let n = J(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
2409
2490
  return n.loading || n.idle || n.failed ? {
2410
2491
  ...n,
@@ -2413,42 +2494,42 @@ var Jn = () => {
2413
2494
  ...n,
2414
2495
  deliveries: n.data
2415
2496
  };
2416
- }, pr = (e, t) => {
2497
+ }, vr = (e, t) => {
2417
2498
  let n = e.payload;
2418
2499
  if (!n || typeof n != "object") return;
2419
2500
  let r = n[t];
2420
2501
  return typeof r == "string" ? r : void 0;
2421
- }, mr = (e) => {
2502
+ }, yr = (e) => {
2422
2503
  let t = e.payload;
2423
2504
  if (!t || typeof t != "object") return;
2424
2505
  let n = t.updateId;
2425
2506
  return typeof n == "string" ? n : void 0;
2426
- }, hr = (e) => {
2507
+ }, br = (e) => {
2427
2508
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
2428
2509
  for (let r of e) if (r.eventType === "signal-received") {
2429
- let e = pr(r, "signalName");
2510
+ let e = vr(r, "signalName");
2430
2511
  e && t.add(e);
2431
2512
  } else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
2432
- let e = mr(r);
2513
+ let e = yr(r);
2433
2514
  e && n.add(e);
2434
2515
  }
2435
2516
  for (let r = e.length - 1; r >= 0; --r) {
2436
2517
  let i = e[r];
2437
2518
  if (i.eventType === "signal-awaited") {
2438
- let e = pr(i, "signalName");
2519
+ let e = vr(i, "signalName");
2439
2520
  if (e && !t.has(e)) return {
2440
2521
  name: e,
2441
2522
  kind: "signal"
2442
2523
  };
2443
2524
  } else if (i.eventType === "update-requested") {
2444
- let e = mr(i), t = pr(i, "updateName");
2525
+ let e = yr(i), t = vr(i, "updateName");
2445
2526
  if (t && (!e || !n.has(e))) return {
2446
2527
  name: t,
2447
2528
  kind: "update"
2448
2529
  };
2449
2530
  }
2450
2531
  }
2451
- }, gr = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), _r = (e, t) => {
2532
+ }, xr = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Sr = (e, t) => {
2452
2533
  if (!e || e.status !== "failed") return;
2453
2534
  let n = t.find((e) => e.status === "failed");
2454
2535
  return {
@@ -2456,34 +2537,34 @@ var Jn = () => {
2456
2537
  message: e.errorMessage,
2457
2538
  step: n?.stepName
2458
2539
  };
2459
- }, vr = (e, t) => {
2460
- let n = or(e, t), r = cr(e, t), i = lr(e, t), a = rr(e, n.run?.tag ?? ""), o = n.run, s = r.steps, c = i.events, l = w(async () => {
2540
+ }, Cr = (e, t) => {
2541
+ let n = dr(e, t), r = pr(e, t), i = mr(e, t), a = cr(e, n.run?.tag ?? ""), o = n.run, s = r.steps, c = i.events, l = T(async () => {
2461
2542
  if (!o) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
2462
2543
  await a.cancel({
2463
2544
  workflowName: o.tag,
2464
2545
  executionId: o.executionId
2465
2546
  });
2466
- }, [a, o]), u = w(async () => {
2547
+ }, [a, o]), u = T(async () => {
2467
2548
  if (!o) throw Error("useWorkflowRunState: no run loaded — cannot resume");
2468
2549
  await a.resume({
2469
2550
  workflowName: o.tag,
2470
2551
  executionId: o.executionId
2471
2552
  });
2472
- }, [a, o]), d = w((e, n) => {
2553
+ }, [a, o]), d = T((e, n) => {
2473
2554
  if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot signal");
2474
2555
  return a.signal({ id: t }, e, n);
2475
- }, [a, t]), f = w((e, n, r) => {
2556
+ }, [a, t]), f = T((e, n, r) => {
2476
2557
  if (t === void 0) throw Error("useWorkflowRunState: no run id — cannot update");
2477
2558
  return a.update({ id: t }, e, n, r);
2478
2559
  }, [a, t]);
2479
- return D(() => ({
2560
+ return O(() => ({
2480
2561
  run: o,
2481
2562
  status: o?.status,
2482
2563
  steps: s,
2483
2564
  events: c,
2484
- currentStep: gr(s),
2485
- waitingFor: o?.status === "suspended" ? hr(c) : void 0,
2486
- error: _r(o, s),
2565
+ currentStep: xr(s),
2566
+ waitingFor: o?.status === "suspended" ? br(c) : void 0,
2567
+ error: Sr(o, s),
2487
2568
  traceId: o?.traceId,
2488
2569
  loading: n.data === void 0,
2489
2570
  cancel: l,
@@ -2500,24 +2581,24 @@ var Jn = () => {
2500
2581
  d,
2501
2582
  f
2502
2583
  ]);
2503
- }, yr = (e, t) => {
2504
- let { runtime: n, client: r } = K(e), [i, a] = k([]), [o, s] = k("idle"), [c, l] = k(void 0), u = O(null), d = w(() => {
2584
+ }, wr = (e, t) => {
2585
+ let { runtime: n, client: r } = K(e), [i, a] = A([]), [o, s] = A("idle"), [c, l] = A(void 0), u = k(null), d = T(() => {
2505
2586
  let e = u.current;
2506
- e && (u.current = null, n.runFork(P.interrupt(e)), s((e) => e === "streaming" ? "idle" : e));
2587
+ e && (u.current = null, n.runFork(F.interrupt(e)), s((e) => e === "streaming" ? "idle" : e));
2507
2588
  }, [n]);
2508
2589
  return {
2509
2590
  events: i,
2510
2591
  status: o,
2511
2592
  error: c,
2512
- start: w((e = {}) => {
2593
+ start: T((e = {}) => {
2513
2594
  let i = u.current;
2514
- i && n.runFork(P.interrupt(i)), a([]), l(void 0), s("streaming");
2515
- let o = q(r, t)(e), c = L.runForEach(o, (e) => M.sync(() => a((t) => [...t, e]))).pipe(M.matchCause({
2595
+ i && n.runFork(F.interrupt(i)), a([]), l(void 0), s("streaming");
2596
+ let o = q(r, t)(e), c = z.runForEach(o, (e) => N.sync(() => a((t) => [...t, e]))).pipe(N.matchCause({
2516
2597
  onSuccess: () => {
2517
2598
  s("done");
2518
2599
  },
2519
2600
  onFailure: (e) => {
2520
- A.isInterruptedOnly(e) || (l(A.squash(e)), s("error"));
2601
+ M.isInterruptedOnly(e) || (l(M.squash(e)), s("error"));
2521
2602
  }
2522
2603
  }));
2523
2604
  u.current = n.runFork(c);
@@ -2528,57 +2609,61 @@ var Jn = () => {
2528
2609
  ]),
2529
2610
  cancel: d
2530
2611
  };
2531
- }, br = (e, t, n, r) => {
2532
- let i = 0, a = !1, o = (e) => M.sync(() => {
2612
+ }, Tr = (e, t, n, r) => {
2613
+ let i = 0, a = !1, o = (e) => N.sync(() => {
2533
2614
  e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
2534
- }), s = (e, t, a) => {
2535
- let o = i > t ? 0 : e + 1;
2536
- if (o > r.maxReconnects) return M.sync(() => {
2615
+ }), s = (e) => {
2616
+ if (typeof e != "object" || !e) return;
2617
+ let t = e.name, n = e.message;
2618
+ if (typeof t == "string" || typeof n == "string") return `${typeof t == "string" ? t : ""}::${typeof n == "string" ? n : ""}`;
2619
+ }, c, l = (e, t, a) => {
2620
+ let o = i > t, l = o ? 0 : e + 1, d = a === void 0 ? void 0 : s(a), f = d !== void 0 && d === c && !o;
2621
+ if (c = o ? void 0 : d, f || l > r.maxReconnects) return N.sync(() => {
2537
2622
  n.onError(a ?? /* @__PURE__ */ Error("stream connection lost")), n.onStatus("error");
2538
2623
  });
2539
- let s = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, o - 1));
2540
- return M.sync(() => {
2624
+ let p = Math.min(r.maxBackoffMs, r.backoffMs * 2 ** Math.max(0, l - 1));
2625
+ return N.sync(() => {
2541
2626
  n.onStatus("reconnecting"), n.onReconnect();
2542
- }).pipe(M.zipRight(M.sleep(j.millis(s))), M.zipRight(M.sync(() => n.onStatus("streaming"))), M.zipRight(c(o)));
2543
- }, c = (r) => M.suspend(() => {
2544
- let c = i, l = e({
2627
+ }).pipe(N.zipRight(N.sleep(re.millis(p))), N.zipRight(N.sync(() => n.onStatus("streaming"))), N.zipRight(u(l)));
2628
+ }, u = (r) => N.suspend(() => {
2629
+ let s = i, c = e({
2545
2630
  ...t,
2546
- fromSeq: c
2631
+ fromSeq: s
2547
2632
  });
2548
- return L.runForEach(l, o).pipe(M.matchCauseEffect({
2549
- onSuccess: () => a ? M.sync(() => n.onStatus("done")) : s(r, c, void 0),
2550
- onFailure: (e) => A.isInterruptedOnly(e) ? M.void : a ? M.sync(() => n.onStatus("done")) : s(r, c, A.squash(e))
2633
+ return z.runForEach(c, o).pipe(N.matchCauseEffect({
2634
+ onSuccess: () => a ? N.sync(() => n.onStatus("done")) : l(r, s, void 0),
2635
+ onFailure: (e) => M.isInterruptedOnly(e) ? N.void : a ? N.sync(() => n.onStatus("done")) : l(r, s, M.squash(e))
2551
2636
  }));
2552
2637
  });
2553
- return c(0);
2554
- }, xr = (e) => {
2638
+ return u(0);
2639
+ }, Er = (e) => {
2555
2640
  let t = e?._tag;
2556
2641
  return t === "done" || t === "error";
2557
- }, Sr = (e, t, n = {}) => {
2558
- let { runtime: r, client: i } = K(e), [a, o] = k([]), [s, c] = k("idle"), [l, u] = k(0), [d, f] = k(void 0), p = O(null), m = {
2642
+ }, Dr = (e, t, n = {}) => {
2643
+ let { runtime: r, client: i } = K(e), [a, o] = A([]), [s, c] = A("idle"), [l, u] = A(0), [d, f] = A(void 0), p = k(null), m = {
2559
2644
  maxReconnects: n.maxReconnects ?? 6,
2560
2645
  backoffMs: n.backoffMs ?? 400,
2561
2646
  maxBackoffMs: n.maxBackoffMs ?? 8e3,
2562
- isTerminal: n.isTerminal ?? xr
2563
- }, h = w(() => {
2647
+ isTerminal: n.isTerminal ?? Er
2648
+ }, h = T(() => {
2564
2649
  let e = p.current;
2565
- e && (p.current = null, r.runFork(P.interrupt(e)), c((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
2650
+ e && (p.current = null, r.runFork(F.interrupt(e)), c((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
2566
2651
  }, [r]);
2567
2652
  return {
2568
2653
  events: a,
2569
2654
  status: s,
2570
2655
  reconnects: l,
2571
2656
  error: d,
2572
- start: w((e = {}) => {
2657
+ start: T((e = {}) => {
2573
2658
  let n = p.current;
2574
- n && r.runFork(P.interrupt(n)), o([]), f(void 0), u(0), c("streaming");
2659
+ n && r.runFork(F.interrupt(n)), o([]), f(void 0), u(0), c("streaming");
2575
2660
  let a = q(i, t), s = {
2576
2661
  onEvent: (e) => o((t) => [...t, e]),
2577
2662
  onStatus: c,
2578
2663
  onReconnect: () => u((e) => e + 1),
2579
2664
  onError: f
2580
2665
  };
2581
- p.current = r.runFork(br(a, e, s, m));
2666
+ p.current = r.runFork(Tr(a, e, s, m));
2582
2667
  }, [
2583
2668
  r,
2584
2669
  i,
@@ -2590,13 +2675,13 @@ var Jn = () => {
2590
2675
  ]),
2591
2676
  cancel: h
2592
2677
  };
2593
- }, Cr = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), wr = (e) => {
2678
+ }, Or = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), kr = (e) => {
2594
2679
  for (let t = e.length - 1; t >= 0; --t) {
2595
2680
  let n = e[t];
2596
2681
  if (n.role === "user" && n.content) return n.content;
2597
2682
  }
2598
- }, Tr = (e, t, n) => {
2599
- let { threadId: r } = n, i = J(e, `${t}.messages`, { threadId: r }), a = _n(e, `${t}.send`), o = D(() => [...i.data ?? []].sort(Cr), [i.data]), s = w((e, t = {}) => a.run({
2683
+ }, Ar = (e, t, n) => {
2684
+ let { threadId: r } = n, i = J(e, `${t}.messages`, { threadId: r }), a = bn(e, `${t}.send`), o = O(() => [...i.data ?? []].sort(Or), [i.data]), s = T((e, t = {}) => a.run({
2600
2685
  threadId: r,
2601
2686
  order: i.data?.length ?? 0,
2602
2687
  prompt: e,
@@ -2605,11 +2690,11 @@ var Jn = () => {
2605
2690
  a,
2606
2691
  r,
2607
2692
  i.data
2608
- ]), c = w(() => {
2609
- let e = wr(o);
2693
+ ]), c = T(() => {
2694
+ let e = kr(o);
2610
2695
  return e === void 0 ? void 0 : s(e);
2611
2696
  }, [o, s]);
2612
- return D(() => ({
2697
+ return O(() => ({
2613
2698
  messages: o,
2614
2699
  streaming: o.some((e) => e.streaming),
2615
2700
  loading: i.data === void 0,
@@ -2626,9 +2711,9 @@ var Jn = () => {
2626
2711
  s,
2627
2712
  c
2628
2713
  ]);
2629
- }, Er = (e, t) => {
2630
- let { events: n, status: r, error: i, start: a, cancel: o } = yr(e, t), [s, c] = k([]), l = O(null), u = D(() => n.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [n]);
2631
- return E(() => {
2714
+ }, jr = (e, t) => {
2715
+ let { events: n, status: r, error: i, start: a, cancel: o } = wr(e, t), [s, c] = A([]), l = k(null), u = O(() => n.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [n]);
2716
+ return D(() => {
2632
2717
  if (r !== "done" || l.current === null) return;
2633
2718
  let e = l.current;
2634
2719
  l.current = null, c((t) => [
@@ -2647,18 +2732,18 @@ var Jn = () => {
2647
2732
  history: s,
2648
2733
  status: r,
2649
2734
  error: i,
2650
- send: w((e = {}) => {
2735
+ send: T((e = {}) => {
2651
2736
  let t = e.message;
2652
2737
  l.current = typeof t == "string" ? t : "", a(e);
2653
2738
  }, [a]),
2654
2739
  cancel: o
2655
2740
  };
2656
- }, Dr = (e, t) => {
2657
- let n = _n(e, t), [r, i] = k(void 0), a = w(async (e) => {
2741
+ }, Mr = (e, t) => {
2742
+ let n = bn(e, t), [r, i] = A(void 0), a = T(async (e) => {
2658
2743
  let t = await n.run({ question: e });
2659
2744
  return i(t), t;
2660
- }, [n]), o = w(() => i(void 0), []);
2661
- return D(() => ({
2745
+ }, [n]), o = T(() => i(void 0), []);
2746
+ return O(() => ({
2662
2747
  ask: a,
2663
2748
  answer: r,
2664
2749
  pending: n.pending,
@@ -2671,49 +2756,67 @@ var Jn = () => {
2671
2756
  n.error,
2672
2757
  o
2673
2758
  ]);
2674
- }, Or = (e) => {
2759
+ }, Nr = (e) => {
2675
2760
  let { cache: t, runtime: n } = K(e);
2676
- return w(() => {
2761
+ return T(() => {
2677
2762
  t.refreshAll(n);
2678
2763
  }, [t, n]);
2679
- }, kr = (e) => e?._tag === "Unauthenticated", Ar = (e, t, n = {}) => {
2680
- let r = n.cooldownMs ?? 15e3, i = n.maxConsecutive ?? 3, a = n.now ?? (() => Date.now()), o = -Infinity, s = 0;
2764
+ }, Pr = (e) => e?._tag === "Unauthenticated", Fr = (e, t, n = {}) => {
2765
+ let r = n.cooldownMs ?? 15e3, i = n.maxConsecutive ?? 3, a = n.now ?? (() => Date.now()), o = -Infinity, s = 0, c = e.on((e) => {
2766
+ if (!Pr(e.error) || s >= i) return;
2767
+ let n = a();
2768
+ n - o < r || (o = n, s += 1, t());
2769
+ }), l = e.onSuccess(() => {
2770
+ s = 0;
2771
+ });
2681
2772
  return {
2682
- dispose: e.on((e) => {
2683
- if (!kr(e.error) || s >= i) return;
2684
- let n = a();
2685
- n - o < r || (o = n, s += 1, t());
2686
- }),
2773
+ dispose: () => {
2774
+ c(), l();
2775
+ },
2687
2776
  noteSuccess: () => {
2688
2777
  s = 0;
2689
2778
  }
2690
2779
  };
2691
- }, jr = /* @__PURE__ */ new Set(), Mr = (e) => {
2692
- for (let t of jr) try {
2693
- t(e);
2694
- } catch {}
2695
- }, Nr = (e) => (jr.add(e), () => {
2696
- jr.delete(e);
2697
- }), Pr = (e, t) => {
2698
- Mr({
2699
- error: e,
2700
- source: "manual",
2701
- ...t ? { context: t } : {}
2702
- });
2703
- }, Fr = (e, t) => {
2704
- let { errorBus: n } = K(e);
2705
- E(() => n.on(t), [n, t]);
2706
2780
  }, Ir = (e, t) => {
2781
+ let { errorBus: n } = K(e);
2782
+ D(() => n.on(t), [n, t]);
2783
+ }, Lr = {
2784
+ failed: [],
2785
+ healthy: !0
2786
+ }, Rr = (e) => {
2787
+ let { errorBus: t } = K(e), [n, r] = A(Lr);
2788
+ return D(() => {
2789
+ let e = /* @__PURE__ */ new Map(), n = () => {
2790
+ let t = [...e.values()].sort((e, t) => t.at - e.at);
2791
+ r(t.length === 0 ? Lr : {
2792
+ failed: t,
2793
+ healthy: !1
2794
+ });
2795
+ }, i = t.on((t) => {
2796
+ e.set(t.tag, {
2797
+ tag: t.tag,
2798
+ source: t.source,
2799
+ error: t.error,
2800
+ at: Date.now()
2801
+ }), n();
2802
+ }), a = t.onSuccess((t) => {
2803
+ e.delete(t.tag) && n();
2804
+ });
2805
+ return () => {
2806
+ i(), a();
2807
+ };
2808
+ }, [t]), n;
2809
+ }, zr = (e, t) => {
2707
2810
  let n = globalThis, r = Symbol.for(`@voltro/web/context:${e}`), i = n[r];
2708
2811
  if (i) return i;
2709
- let a = S(t);
2812
+ let a = C(t);
2710
2813
  return n[r] = a, a;
2711
- }, Lr = Ir("serverRequest", null), Rr = () => T(Lr), zr = ({ value: e, children: t }) => /* @__PURE__ */ fe(Lr.Provider, {
2814
+ }, Br = zr("serverRequest", null), Vr = () => E(Br), Hr = ({ value: e, children: t }) => /* @__PURE__ */ ue(Br.Provider, {
2712
2815
  value: e,
2713
2816
  children: t
2714
- }), Br = (e) => {
2715
- let t = Rr();
2716
- return D(() => {
2817
+ }), Ur = (e) => {
2818
+ let t = Vr();
2819
+ return O(() => {
2717
2820
  if (t !== null) return t.formFlash?.formKey === e ? t.formFlash : void 0;
2718
2821
  if (typeof document > "u") return;
2719
2822
  let n = document.getElementById(v);
@@ -2724,15 +2827,15 @@ var Jn = () => {
2724
2827
  return;
2725
2828
  }
2726
2829
  }, [t, e]);
2727
- }, Vr = (e, t, n) => e.map((e) => {
2830
+ }, Wr = (e, t, n) => e.map((e) => {
2728
2831
  let r = String(e[n] ?? ""), i = e[t];
2729
2832
  return {
2730
2833
  value: r,
2731
2834
  label: i == null ? r : String(i)
2732
2835
  };
2733
- }), Hr = (e, t, n = {}) => {
2734
- let r = n.debounceMs ?? 200, i = n.labelField ?? "name", a = n.valueField ?? "id", o = n.input ?? ((e) => ({ q: e })), [s, c] = k(n.initialTerm ?? ""), [l, u] = k(s);
2735
- E(() => {
2836
+ }), Gr = (e, t, n = {}) => {
2837
+ let r = n.debounceMs ?? 200, i = n.labelField ?? "name", a = n.valueField ?? "id", o = n.input ?? ((e) => ({ q: e })), [s, c] = A(n.initialTerm ?? ""), [l, u] = A(s);
2838
+ D(() => {
2736
2839
  if (s === l) return;
2737
2840
  let e = setTimeout(() => u(s), r);
2738
2841
  return () => clearTimeout(e);
@@ -2741,24 +2844,24 @@ var Jn = () => {
2741
2844
  l,
2742
2845
  r
2743
2846
  ]);
2744
- let d = n.skipUntilTerm === !0 && l.trim() === "", f = J(e, t, D(() => o(l), [o, l]), { skip: d }), p = D(() => Vr(f.data ?? [], i, a), [
2847
+ let d = n.skipUntilTerm === !0 && l.trim() === "", f = J(e, t, O(() => o(l), [o, l]), { skip: d }), p = O(() => Wr(f.data ?? [], i, a), [
2745
2848
  f.data,
2746
2849
  i,
2747
2850
  a
2748
- ]), m = w((e) => c(e), []);
2851
+ ]), m = T((e) => c(e), []);
2749
2852
  return {
2750
2853
  options: p,
2751
2854
  loading: !d && f.data === void 0,
2752
2855
  term: s,
2753
2856
  search: m
2754
2857
  };
2755
- }, Ur = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Wr = (t, n, r = {}) => {
2756
- let i = K(t), [a, o] = k(r.pageSize), s = J(t, n, D(() => a === void 0 ? r.input ?? {} : {
2858
+ }, Kr = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, qr = (t, n, r = {}) => {
2859
+ let i = K(t), [a, o] = A(r.pageSize), s = J(t, n, O(() => a === void 0 ? r.input ?? {} : {
2757
2860
  ...r.input,
2758
2861
  limit: a
2759
- }, [r.input, a])), c = i.descriptors[n]?.output, l = w(() => {
2862
+ }, [r.input, a])), c = i.descriptors[n]?.output, l = T(() => {
2760
2863
  r.pageSize !== void 0 && o((e) => (e ?? r.pageSize) + r.pageSize);
2761
- }, [r.pageSize]), u = D(() => r.columns ?? (c === void 0 ? [] : e(c)), [r.columns, c]), [d, f] = k(r.initialSort), p = w((e) => {
2864
+ }, [r.pageSize]), u = O(() => r.columns ?? (c === void 0 ? [] : e(c)), [r.columns, c]), [d, f] = A(r.initialSort), p = T((e) => {
2762
2865
  f((t) => t?.column === e ? {
2763
2866
  column: e,
2764
2867
  direction: t.direction === "asc" ? "desc" : "asc"
@@ -2769,11 +2872,11 @@ var Jn = () => {
2769
2872
  }, []);
2770
2873
  return {
2771
2874
  columns: u,
2772
- rows: D(() => {
2875
+ rows: O(() => {
2773
2876
  let e = s.data ?? [];
2774
2877
  if (d === void 0) return e;
2775
2878
  let t = d.direction === "asc" ? 1 : -1;
2776
- return [...e].sort((e, n) => Ur(e[d.column], n[d.column]) * t);
2879
+ return [...e].sort((e, n) => Kr(e[d.column], n[d.column]) * t);
2777
2880
  }, [s.data, d]),
2778
2881
  loading: s.data === void 0,
2779
2882
  error: s.error,
@@ -2782,26 +2885,26 @@ var Jn = () => {
2782
2885
  loadMore: l,
2783
2886
  hasMore: a !== void 0 && (s.data?.length ?? 0) >= a
2784
2887
  };
2785
- }, Gr = (e, t, n, r) => {
2888
+ }, Jr = (e, t, n, r) => {
2786
2889
  let i = e.replace(/\/$/, ""), a = new URLSearchParams({
2787
2890
  table: t,
2788
2891
  id: n
2789
2892
  });
2790
2893
  return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
2791
- }, Kr = Gr, qr = (e, t, n, r) => {
2792
- let { inspectBaseUrl: i } = K(e), [a, o] = k({
2894
+ }, Yr = Jr, Xr = (e, t, n, r) => {
2895
+ let { inspectBaseUrl: i } = K(e), [a, o] = A({
2793
2896
  data: void 0,
2794
2897
  loading: !0,
2795
2898
  error: void 0
2796
2899
  });
2797
- return E(() => {
2900
+ return D(() => {
2798
2901
  let e = !1;
2799
2902
  o({
2800
2903
  data: void 0,
2801
2904
  loading: !0,
2802
2905
  error: void 0
2803
2906
  });
2804
- let a = Gr(i ?? "", t, n, r);
2907
+ let a = Jr(i ?? "", t, n, r);
2805
2908
  return fetch(a).then(async (e) => {
2806
2909
  if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
2807
2910
  return await e.json();
@@ -2827,23 +2930,23 @@ var Jn = () => {
2827
2930
  n,
2828
2931
  r
2829
2932
  ]), a;
2830
- }, Jr = "admin:full", Yr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Xr = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), Zr = S({ scopes: [] });
2831
- function Qr(e) {
2832
- return C(Zr.Provider, { value: { scopes: e.scopes } }, e.children);
2933
+ }, Zr = "admin:full", Qr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), $r = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), ei = C({ scopes: [] });
2934
+ function ti(e) {
2935
+ return w(ei.Provider, { value: { scopes: e.scopes } }, e.children);
2833
2936
  }
2834
- var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes, e), ni = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, ri = (e) => {
2835
- let { inspectBaseUrl: t } = K(e), [n, r] = k({
2937
+ var ni = () => E(ei), ri = (e) => Qr(ni().scopes, e), ii = (e) => $r(ni().scopes, e), ai = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, oi = (e) => {
2938
+ let { inspectBaseUrl: t } = K(e), [n, r] = A({
2836
2939
  manifest: void 0,
2837
2940
  loading: !0,
2838
2941
  error: void 0
2839
2942
  });
2840
- return E(() => {
2943
+ return D(() => {
2841
2944
  let e = !1;
2842
2945
  return r({
2843
2946
  manifest: void 0,
2844
2947
  loading: !0,
2845
2948
  error: void 0
2846
- }), fetch(ni(t ?? "")).then(async (e) => {
2949
+ }), fetch(ai(t ?? "")).then(async (e) => {
2847
2950
  if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
2848
2951
  return await e.json();
2849
2952
  }).then((t) => {
@@ -2862,7 +2965,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2862
2965
  e = !0;
2863
2966
  };
2864
2967
  }, [e, t]), n;
2865
- }, ii = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), ai = (e, t) => {
2968
+ }, si = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), ci = (e, t) => {
2866
2969
  if (e === void 0) return "unknown";
2867
2970
  if (t.includes("admin:full") || e.length === 0) return "allowed";
2868
2971
  let n = !1;
@@ -2871,7 +2974,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2871
2974
  n = !0;
2872
2975
  continue;
2873
2976
  }
2874
- if (!ii(t, r)) {
2977
+ if (!si(t, r)) {
2875
2978
  if (r.resourceScoped) {
2876
2979
  n = !0;
2877
2980
  continue;
@@ -2880,13 +2983,13 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2880
2983
  }
2881
2984
  }
2882
2985
  return n ? "unknown" : "allowed";
2883
- }, oi = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), si = (e) => {
2986
+ }, li = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), ui = (e) => {
2884
2987
  for (let t of e ?? []) if (t.kind === "open") return t.reason;
2885
- }, ci = (e) => ai(e, $r().scopes), li = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, ui = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, di = (e) => e === void 0 ? {} : {
2988
+ }, di = (e) => ci(e, ni().scopes), fi = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, pi = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, mi = (e) => e === void 0 ? {} : {
2886
2989
  tag: e.tag,
2887
2990
  ...e.guards === void 0 ? {} : { guards: e.guards }
2888
- }, fi = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2889
- let n = e.procedures.find((e) => e.kind === "query" && li(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && ui(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && ui(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && ui(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
2991
+ }, hi = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2992
+ let n = e.procedures.find((e) => e.kind === "query" && fi(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && pi(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && pi(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && pi(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
2890
2993
  return {
2891
2994
  table: t.name,
2892
2995
  columns: t.columns.filter((e) => e.serverOnly !== !0),
@@ -2895,22 +2998,22 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2895
2998
  reactive: t.reactive,
2896
2999
  ...o === void 0 ? {} : { pkColumn: o },
2897
3000
  editable: (t.editable ?? !0) && o !== void 0,
2898
- list: di(n),
2899
- create: di(r),
2900
- update: di(i),
2901
- delete: di(a)
3001
+ list: mi(n),
3002
+ create: mi(r),
3003
+ update: mi(i),
3004
+ delete: mi(a)
2902
3005
  };
2903
- }), pi = (e) => {
2904
- let [t, n] = k([]), [r, i] = k([]), a = w((e) => {
3006
+ }), gi = (e) => {
3007
+ let [t, n] = A([]), [r, i] = A([]), a = T((e) => {
2905
3008
  n((t) => [...t, e]), i([]);
2906
- }, []), o = w(async () => {
3009
+ }, []), o = T(async () => {
2907
3010
  let r = t[t.length - 1];
2908
3011
  r !== void 0 && r.blockedBy === void 0 && (await e.onUndo(r.invocationId), n((e) => e.slice(0, -1)), i((e) => [...e, r]));
2909
- }, [t, e]), s = w(async () => {
3012
+ }, [t, e]), s = T(async () => {
2910
3013
  let t = r[r.length - 1];
2911
3014
  t !== void 0 && (await e.onRedo(t.invocationId), i((e) => e.slice(0, -1)), n((e) => [...e, t]));
2912
3015
  }, [r, e]);
2913
- return D(() => {
3016
+ return O(() => {
2914
3017
  let e = t[t.length - 1];
2915
3018
  return {
2916
3019
  record: a,
@@ -2928,14 +3031,14 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2928
3031
  o,
2929
3032
  s
2930
3033
  ]);
2931
- }, mi = "__voltro.undo.log", hi = "__voltro.undo.apply", gi = "__voltro.undo.redo", _i = (e, t) => {
2932
- let n = t?.limit, { data: r } = J(e, mi, n === void 0 ? {} : { limit: n }), i = Z(e, hi), a = Z(e, gi), o = r ?? [], s = o.find((e) => !e.undone && !e.crossesAction), c = o.find((e) => e.undone), l = w(async (e) => {
3034
+ }, _i = "__voltro.undo.log", vi = "__voltro.undo.apply", yi = "__voltro.undo.redo", bi = (e, t) => {
3035
+ let n = t?.limit, { data: r } = J(e, _i, n === void 0 ? {} : { limit: n }), i = Q(e, vi), a = Q(e, yi), o = r ?? [], s = o.find((e) => !e.undone && !e.crossesAction), c = o.find((e) => e.undone), l = T(async (e) => {
2933
3036
  await i.mutate({ invocationId: e });
2934
- }, [i]), u = w(async (e) => {
3037
+ }, [i]), u = T(async (e) => {
2935
3038
  await a.mutate({ invocationId: e });
2936
- }, [a]), d = w(async () => {
3039
+ }, [a]), d = T(async () => {
2937
3040
  s && await l(s.id);
2938
- }, [s, l]), f = w(async () => {
3041
+ }, [s, l]), f = T(async () => {
2939
3042
  c && await u(c.id);
2940
3043
  }, [c, u]);
2941
3044
  return {
@@ -2948,22 +3051,22 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2948
3051
  undoLast: d,
2949
3052
  redoLast: f
2950
3053
  };
2951
- }, vi = (e, t) => ({
3054
+ }, xi = (e, t) => ({
2952
3055
  name: e,
2953
3056
  map: t
2954
- }), yi = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), bi = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), xi = (e, t, n) => {
3057
+ }), Si = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Ci = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), wi = (e, t, n) => {
2955
3058
  let r = { ...t };
2956
3059
  for (let [i, a] of Object.entries(e.map)) {
2957
- if (bi.has(i) || a === void 0) continue;
3060
+ if (Ci.has(i) || a === void 0) continue;
2958
3061
  let e = t[i];
2959
3062
  r[i] = (...r) => {
2960
- let i = yi(a, t);
3063
+ let i = Si(a, t);
2961
3064
  if (i !== null && n(i), typeof e == "function") return e(...r);
2962
3065
  };
2963
3066
  }
2964
3067
  return r;
2965
- }, Si = (e, t, n) => {
2966
- let r = O({
3068
+ }, Ti = (e, t, n) => {
3069
+ let r = k({
2967
3070
  spec: e,
2968
3071
  props: t,
2969
3072
  sink: n
@@ -2972,47 +3075,47 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
2972
3075
  spec: e,
2973
3076
  props: t,
2974
3077
  sink: n
2975
- }, E(() => {
2976
- let e = r.current, t = yi(e.spec.map.onMount, e.props);
3078
+ }, D(() => {
3079
+ let e = r.current, t = Si(e.spec.map.onMount, e.props);
2977
3080
  return t !== null && e.sink(t), () => {
2978
- let e = r.current, t = yi(e.spec.map.onUnmount, e.props);
3081
+ let e = r.current, t = Si(e.spec.map.onUnmount, e.props);
2979
3082
  t !== null && e.sink(t);
2980
3083
  };
2981
- }, []), D(() => xi(e, t, n), [
3084
+ }, []), O(() => wi(e, t, n), [
2982
3085
  e,
2983
3086
  t,
2984
3087
  n
2985
3088
  ]);
2986
- }, Ci = (e, t) => {
3089
+ }, Ei = (e, t) => {
2987
3090
  let n = K(e).descriptors[t]?.input;
2988
- return D(() => n === void 0 ? [] : x(n), [n]);
2989
- }, wi = (t, n) => {
3091
+ return O(() => n === void 0 ? [] : x(n), [n]);
3092
+ }, Di = (t, n) => {
2990
3093
  let r = K(t).descriptors[n]?.output;
2991
- return D(() => r === void 0 ? [] : e(r), [r]);
2992
- }, Ti = (e, t) => {
3094
+ return O(() => r === void 0 ? [] : e(r), [r]);
3095
+ }, Oi = (e, t) => {
2993
3096
  if (e === t) return !0;
2994
3097
  if (e.length !== t.length) return !1;
2995
3098
  for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
2996
3099
  return !0;
2997
- }, Ei = (e) => Object.keys(e).sort().map((t) => e[t]), Di = (e, t) => {
2998
- let n = O(null), r = Ei(e);
2999
- return (n.current === null || !Ti(n.current.key, r)) && (n.current = {
3100
+ }, ki = (e) => Object.keys(e).sort().map((t) => e[t]), Ai = (e, t) => {
3101
+ let n = k(null), r = ki(e);
3102
+ return (n.current === null || !Oi(n.current.key, r)) && (n.current = {
3000
3103
  key: r,
3001
3104
  value: t(e)
3002
3105
  }), n.current.value;
3003
- }, Oi = (e, t, n, r = {}) => {
3106
+ }, ji = (e, t, n, r = {}) => {
3004
3107
  let i = J(e, t, { ...n }, r);
3005
- return D(() => ({
3108
+ return O(() => ({
3006
3109
  allowed: i.data?.allowed === !0,
3007
3110
  pending: i.data === void 0
3008
3111
  }), [i.data]);
3009
- }, ki = (e, t, n, r = {}) => {
3112
+ }, Mi = (e, t, n, r = {}) => {
3010
3113
  let i = J(e, t, { ...n }, r);
3011
- return D(() => ({
3114
+ return O(() => ({
3012
3115
  allowedIds: new Set(i.data?.allowedIds ?? []),
3013
3116
  pending: i.data === void 0
3014
3117
  }), [i.data]);
3015
- }, Ai = (e) => {
3118
+ }, Ni = (e) => {
3016
3119
  switch (e) {
3017
3120
  case "select":
3018
3121
  case "radio":
@@ -3028,26 +3131,26 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3028
3131
  case "switch": return "boolean";
3029
3132
  default: return null;
3030
3133
  }
3031
- }, ji = (e) => x(e).map((e) => {
3134
+ }, Pi = (e) => x(e).map((e) => {
3032
3135
  if (e.name.includes(".")) return null;
3033
- let t = Ai(e.widget);
3136
+ let t = Ni(e.widget);
3034
3137
  return t === null ? null : {
3035
3138
  name: e.name,
3036
3139
  label: e.label,
3037
3140
  kind: t,
3038
3141
  ...e.options ? { options: e.options } : {}
3039
3142
  };
3040
- }).filter((e) => e !== null), Mi = (e) => {
3143
+ }).filter((e) => e !== null), Fi = (e) => {
3041
3144
  let t = {};
3042
3145
  for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
3043
3146
  return t;
3044
- }, Ni = (e, t, n = {}) => {
3045
- let r = K(e).descriptors[t]?.input, i = D(() => r === void 0 ? [] : ji(r), [r]), [a, o] = k(n.initial ?? {}), s = w((e, t) => {
3046
- o((n) => Mi({
3147
+ }, Ii = (e, t, n = {}) => {
3148
+ let r = K(e).descriptors[t]?.input, i = O(() => r === void 0 ? [] : Pi(r), [r]), [a, o] = A(n.initial ?? {}), s = T((e, t) => {
3149
+ o((n) => Fi({
3047
3150
  ...n,
3048
3151
  [e]: t
3049
3152
  }));
3050
- }, []), c = w(() => o({}), []), l = J(e, t, D(() => Mi(a), [a]));
3153
+ }, []), c = T(() => o({}), []), l = J(e, t, O(() => Fi(a), [a]));
3051
3154
  return {
3052
3155
  filters: i,
3053
3156
  values: a,
@@ -3058,20 +3161,20 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3058
3161
  loading: l.data === void 0,
3059
3162
  error: l.error
3060
3163
  };
3061
- }, Pi = (e, t, n = {}) => {
3164
+ }, Li = (e, t, n = {}) => {
3062
3165
  let r = J(e, t, n), i = r.data;
3063
3166
  return {
3064
3167
  record: Array.isArray(i) ? i[0] : i,
3065
3168
  loading: i === void 0,
3066
3169
  error: r.error
3067
3170
  };
3068
- }, Fi = (e, t = 300) => {
3069
- let [n, r] = k(e);
3070
- return E(() => {
3171
+ }, Ri = (e, t = 300) => {
3172
+ let [n, r] = A(e);
3173
+ return D(() => {
3071
3174
  let n = setTimeout(() => r(e), t);
3072
3175
  return () => clearTimeout(n);
3073
3176
  }, [e, t]), n;
3074
- }, Ii = (e) => {
3177
+ }, zi = (e) => {
3075
3178
  let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
3076
3179
  if (a && t.trim() === "") return {
3077
3180
  status: "idle",
@@ -3089,39 +3192,39 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3089
3192
  valid: o.valid,
3090
3193
  message: o.message
3091
3194
  };
3092
- }, Li = (e, t, n, r) => {
3093
- let { input: i, interpret: a, debounceMs: o = 300, skipEmpty: s = !0 } = r, c = Fi(n, o), l = s && c.trim() === "", u = J(e, t, D(() => i ? i(c) : { value: c }, [i, c]), { skip: l });
3094
- return Ii({
3195
+ }, Bi = (e, t, n, r) => {
3196
+ let { input: i, interpret: a, debounceMs: o = 300, skipEmpty: s = !0 } = r, c = Ri(n, o), l = s && c.trim() === "", u = J(e, t, O(() => i ? i(c) : { value: c }, [i, c]), { skip: l });
3197
+ return zi({
3095
3198
  value: n,
3096
3199
  debouncedValue: c,
3097
3200
  data: l ? null : u.data,
3098
3201
  interpret: a,
3099
3202
  skipEmpty: s
3100
3203
  });
3101
- }, Ri = (e, t) => ({
3204
+ }, Vi = (e, t) => ({
3102
3205
  name: e,
3103
3206
  payload: t
3104
- }), zi = (e, t) => {
3105
- let n = oe.decodeUnknownEither(e.payload, { errors: "all" })(t);
3207
+ }), Hi = (e, t) => {
3208
+ let n = ie.decodeUnknownEither(e.payload, { errors: "all" })(t);
3106
3209
  if (n._tag === "Right") return {
3107
3210
  valid: !0,
3108
3211
  errors: {}
3109
3212
  };
3110
3213
  let r = {};
3111
- for (let e of he.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
3214
+ for (let e of pe.formatErrorSync(n.left)) r[e.path.join(".") || "(root)"] = e.message;
3112
3215
  return {
3113
3216
  valid: !1,
3114
3217
  errors: r
3115
3218
  };
3116
- }, Bi = (e) => {
3219
+ }, Ui = (e) => {
3117
3220
  let t = new Map(e.map((e) => [e.name, e]));
3118
3221
  return {
3119
3222
  names: [...t.keys()].sort(),
3120
3223
  get: (e) => t.get(e),
3121
3224
  events: e
3122
3225
  };
3123
- }, Vi = (e, t) => {
3124
- let n = Bi(e);
3226
+ }, Wi = (e, t) => {
3227
+ let n = Ui(e);
3125
3228
  return {
3126
3229
  track: (e, r) => {
3127
3230
  let i = n.get(e);
@@ -3130,7 +3233,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3130
3233
  return;
3131
3234
  }
3132
3235
  if (process.env.NODE_ENV !== "production") {
3133
- let t = zi(i, r);
3236
+ let t = Hi(i, r);
3134
3237
  t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
3135
3238
  }
3136
3239
  t({
@@ -3141,49 +3244,49 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3141
3244
  names: n.names,
3142
3245
  catalog: n
3143
3246
  };
3144
- }, Hi = (e, t) => {
3145
- let n = _n(e, t);
3247
+ }, Gi = (e, t) => {
3248
+ let n = bn(e, t);
3146
3249
  return {
3147
- preview: w((e) => n.run(e), [n]),
3250
+ preview: T((e) => n.run(e), [n]),
3148
3251
  diff: n.lastResult,
3149
3252
  pending: n.pending,
3150
3253
  error: n.error
3151
3254
  };
3152
- }, Ui = (e, t, n, r) => [...e, {
3255
+ }, Ki = (e, t, n, r) => [...e, {
3153
3256
  id: t,
3154
3257
  tag: n,
3155
3258
  input: r,
3156
3259
  status: "pending",
3157
3260
  attempts: 0
3158
- }], Wi = (e, t, n) => e.map((e) => e.id === t ? {
3261
+ }], qi = (e, t, n) => e.map((e) => e.id === t ? {
3159
3262
  ...e,
3160
3263
  ...n
3161
- } : e), Gi = (e, t) => Wi(e, t, { status: "sent" }), Ki = (e, t, n) => e.map((e) => e.id === t ? {
3264
+ } : e), Ji = (e, t) => qi(e, t, { status: "sent" }), Yi = (e, t, n) => e.map((e) => e.id === t ? {
3162
3265
  ...e,
3163
3266
  status: "failed",
3164
3267
  error: n,
3165
3268
  attempts: e.attempts + 1
3166
- } : e), qi = (e, t, n) => Wi(e, t, {
3269
+ } : e), Xi = (e, t, n) => qi(e, t, {
3167
3270
  status: "conflict",
3168
3271
  error: n
3169
- }), Ji = (e, t, n) => e.map((e) => e.id === t && e.status === "conflict" ? {
3272
+ }), Zi = (e, t, n) => e.map((e) => e.id === t && e.status === "conflict" ? {
3170
3273
  ...e,
3171
3274
  input: n,
3172
3275
  status: "pending",
3173
3276
  error: void 0
3174
- } : e), Yi = (e) => e.filter((e) => e.status !== "sent"), Xi = (e) => {
3277
+ } : e), Qi = (e) => e.filter((e) => e.status !== "sent"), $i = (e) => {
3175
3278
  let t = [];
3176
3279
  for (let n of e) {
3177
3280
  if (n.status === "conflict") break;
3178
3281
  (n.status === "pending" || n.status === "failed") && t.push(n);
3179
3282
  }
3180
3283
  return t;
3181
- }, Zi = (e) => {
3284
+ }, ea = (e) => {
3182
3285
  let t = e;
3183
3286
  return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
3184
- }, Qi = (e) => {
3185
- let [t, n] = k(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
3186
- return E(() => {
3287
+ }, ta = (e) => {
3288
+ let [t, n] = A(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
3289
+ return D(() => {
3187
3290
  if (e !== void 0) {
3188
3291
  n(e);
3189
3292
  return;
@@ -3194,11 +3297,11 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3194
3297
  window.removeEventListener("online", t), window.removeEventListener("offline", r);
3195
3298
  };
3196
3299
  }, [e]), t;
3197
- }, $i = (e) => {
3198
- let { send: t, persistence: n, isConflict: r = Zi, idFor: i } = e, [a, o] = k([]), s = Qi(e.online), c = O(a);
3300
+ }, na = (e) => {
3301
+ let { send: t, persistence: n, isConflict: r = ea, idFor: i } = e, [a, o] = A([]), s = ta(e.online), c = k(a);
3199
3302
  c.current = a;
3200
- let l = O(0), u = O(Math.random().toString(36).slice(2, 8)), d = O(n === void 0);
3201
- E(() => {
3303
+ let l = k(0), u = k(Math.random().toString(36).slice(2, 8)), d = k(n === void 0);
3304
+ D(() => {
3202
3305
  if (n === void 0 || d.current) return;
3203
3306
  let e = !1;
3204
3307
  return n.load().then((t) => {
@@ -3208,28 +3311,28 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3208
3311
  }), () => {
3209
3312
  e = !0;
3210
3313
  };
3211
- }, [n]), E(() => {
3212
- n === void 0 || !d.current || n.save(Yi(a)).catch(() => {});
3314
+ }, [n]), D(() => {
3315
+ n === void 0 || !d.current || n.save(Qi(a)).catch(() => {});
3213
3316
  }, [n, a]);
3214
- let f = w((e, t) => {
3317
+ let f = T((e, t) => {
3215
3318
  let n = i?.() ?? `obx_${u.current}_${l.current++}_${e}`;
3216
- o((r) => Ui(r, n, e, t));
3217
- }, [i]), p = w(async () => {
3218
- for (let e of Xi(c.current)) try {
3219
- await t(e), o((t) => Gi(t, e.id));
3319
+ o((r) => Ki(r, n, e, t));
3320
+ }, [i]), p = T(async () => {
3321
+ for (let e of $i(c.current)) try {
3322
+ await t(e), o((t) => Ji(t, e.id));
3220
3323
  } catch (t) {
3221
3324
  if (r(t)) {
3222
- o((n) => qi(n, e.id, t));
3325
+ o((n) => Xi(n, e.id, t));
3223
3326
  break;
3224
3327
  }
3225
- o((n) => Ki(n, e.id, t));
3328
+ o((n) => Yi(n, e.id, t));
3226
3329
  }
3227
3330
  }, [t, r]);
3228
- E(() => {
3331
+ D(() => {
3229
3332
  s && p();
3230
3333
  }, [s, p]);
3231
- let m = w((e, t) => {
3232
- let n = Ji(c.current, e, t);
3334
+ let m = T((e, t) => {
3335
+ let n = Zi(c.current, e, t);
3233
3336
  c.current = n, o(n), s && p();
3234
3337
  }, [s, p]);
3235
3338
  return {
@@ -3241,7 +3344,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3241
3344
  conflicts: a.filter((e) => e.status === "conflict"),
3242
3345
  resolveConflict: m
3243
3346
  };
3244
- }, ea = (e) => {
3347
+ }, ra = (e) => {
3245
3348
  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);
3246
3349
  return {
3247
3350
  startIndex: l,
@@ -3251,8 +3354,8 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3251
3354
  topSpacer: l * r,
3252
3355
  bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
3253
3356
  };
3254
- }, ta = (e, t, n) => {
3255
- let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] = k(0), u = D(() => ea({
3357
+ }, ia = (e, t, n) => {
3358
+ let { rowHeight: r, viewportHeight: i, overscan: a, total: o, input: s } = n, [c, l] = A(0), u = O(() => ra({
3256
3359
  scrollTop: c,
3257
3360
  viewportHeight: i,
3258
3361
  rowHeight: r,
@@ -3264,7 +3367,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3264
3367
  r,
3265
3368
  a,
3266
3369
  o
3267
- ]), d = J(e, t, D(() => ({
3370
+ ]), d = J(e, t, O(() => ({
3268
3371
  ...s,
3269
3372
  offset: u.offset,
3270
3373
  limit: u.limit
@@ -3272,7 +3375,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3272
3375
  s,
3273
3376
  u.offset,
3274
3377
  u.limit
3275
- ])), f = w((e) => {
3378
+ ])), f = T((e) => {
3276
3379
  l(e.currentTarget.scrollTop);
3277
3380
  }, []);
3278
3381
  return {
@@ -3284,11 +3387,11 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3284
3387
  loading: d.data === void 0,
3285
3388
  error: d.error
3286
3389
  };
3287
- }, na = () => typeof navigator > "u" || navigator.onLine, ra = (e) => {
3288
- let { errorBus: t } = K(e), [n, r] = k(na), [i, a] = k(0), [o, s] = k(void 0), c = O(!0);
3289
- E(() => (c.current = !0, () => {
3390
+ }, aa = () => typeof navigator > "u" || navigator.onLine, oa = (e) => {
3391
+ let { errorBus: t } = K(e), [n, r] = A(aa), [i, a] = A(0), [o, s] = A(void 0), c = k(!0);
3392
+ D(() => (c.current = !0, () => {
3290
3393
  c.current = !1;
3291
- }), []), E(() => {
3394
+ }), []), D(() => {
3292
3395
  if (typeof window > "u") return;
3293
3396
  let e = () => {
3294
3397
  r(!0), a(0);
@@ -3296,12 +3399,12 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3296
3399
  return window.addEventListener("online", e), window.addEventListener("offline", t), () => {
3297
3400
  window.removeEventListener("online", e), window.removeEventListener("offline", t);
3298
3401
  };
3299
- }, []), E(() => {
3402
+ }, []), D(() => {
3300
3403
  if (t?.on) return t.on(() => {
3301
3404
  c.current && (a((e) => e + 1), s(Date.now()));
3302
3405
  });
3303
3406
  }, [t]);
3304
- let l = w(() => {
3407
+ let l = T(() => {
3305
3408
  a(0);
3306
3409
  }, []);
3307
3410
  return {
@@ -3311,7 +3414,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3311
3414
  lastFailureAt: o,
3312
3415
  reportSuccess: l
3313
3416
  };
3314
- }, ia = "__voltro.connections.list", aa = "__voltro.connections.start", oa = "__voltro.connections.submitToken", sa = "__voltro.connections.disconnect", ca = {
3417
+ }, sa = "__voltro.connections.list", ca = "__voltro.connections.start", la = "__voltro.connections.submitToken", ua = "__voltro.connections.disconnect", da = {
3315
3418
  connectionId: "",
3316
3419
  kind: "oauth2",
3317
3420
  label: "",
@@ -3322,14 +3425,14 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3322
3425
  expiresAt: null,
3323
3426
  lastError: null,
3324
3427
  connectedAt: null
3325
- }, la = (e, t) => {
3428
+ }, fa = (e, t) => {
3326
3429
  if (t === "redirect") {
3327
3430
  globalThis.location.assign(e);
3328
3431
  return;
3329
3432
  }
3330
3433
  globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
3331
- }, ua = (e) => {
3332
- let { data: t } = J(e, ia, {}), n = _n(e, aa), r = Z(e, oa), i = Z(e, sa), a = t ?? [], o = n.pending || r.pending || i.pending, s = w((e) => ({
3434
+ }, pa = (e) => {
3435
+ let { data: t } = J(e, sa, {}), n = bn(e, ca), r = Q(e, la), i = Q(e, ua), a = t ?? [], o = n.pending || r.pending || i.pending, s = T((e) => ({
3333
3436
  ...e,
3334
3437
  connected: e.status === "connected",
3335
3438
  needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
@@ -3337,7 +3440,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3337
3440
  connect: async (t) => {
3338
3441
  if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
3339
3442
  let r = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
3340
- la((await n.run({
3443
+ fa((await n.run({
3341
3444
  connectionId: e.connectionId,
3342
3445
  redirectTo: r
3343
3446
  })).authorizeUrl, t?.mode);
@@ -3357,7 +3460,7 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3357
3460
  n,
3358
3461
  r,
3359
3462
  i
3360
- ]), c = w((e) => {
3463
+ ]), c = T((e) => {
3361
3464
  let t = a.find((t) => t.connectionId === e);
3362
3465
  return t === void 0 ? void 0 : s(t);
3363
3466
  }, [a, s]);
@@ -3367,10 +3470,10 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3367
3470
  get: c,
3368
3471
  pending: o
3369
3472
  };
3370
- }, da = (e, t) => {
3371
- let n = ua(e), r = n.get(t);
3372
- return D(() => r === void 0 ? {
3373
- ...ca,
3473
+ }, ma = (e, t) => {
3474
+ let n = pa(e), r = n.get(t);
3475
+ return O(() => r === void 0 ? {
3476
+ ...da,
3374
3477
  connectionId: t,
3375
3478
  label: t,
3376
3479
  connected: !1,
@@ -3395,6 +3498,6 @@ var $r = () => T(Zr), ei = (e) => Yr($r().scopes, e), ti = (e) => Xr($r().scopes
3395
3498
  n.loading,
3396
3499
  n.pending
3397
3500
  ]);
3398
- }, fa = "framework-client";
3501
+ }, ha = "framework-client";
3399
3502
  //#endregion
3400
- export { Jr as ADMIN_SCOPE, fa as CLIENT_NAME, ia as CONNECTIONS_LIST_TAG, sa as CONNECTION_DISCONNECT_TAG, aa as CONNECTION_START_TAG, oa as CONNECTION_SUBMIT_TOKEN_TAG, v as FORM_FLASH_SCRIPT_ID, p as FORM_KEY_FIELD, g as FORM_PATH_PREFIX, u as FORM_REDIRECT_FIELD, On as FormBindingProvider, je as FrameworkRuntimesContext, $e as FrameworkRuntimesProvider, ke as LoadingSubscriptionCache, Qr as PermissionProvider, _ as RICH_TEXT_MARKS, a as RICH_TEXT_MAX_NODES, d as RichTextDocument, Ae as RpcErrorBus, Lr as ServerRequestContext, zr as ServerRequestProvider, Oe as SubscriptionCache, hi as UNDO_APPLY_TAG, mi as UNDO_LOG_TAG, gi as UNDO_REDO_TAG, yn as ValidationMessagesProvider, We as _resetFrameworkRuntimesWarning, ze as _resetSsrDescriptors, Bn as applyPreloadSeeds, Bt as applyStoreSeeds, qe as buildApiRuntime, Yr as canCall, Xr as canCallAny, Qt as clearMutations, Yi as clearSent, bt as clearStoreHistory, ea as computeWindow, Vi as createAnalytics, Mn as createHooks, ai as decideAccess, c as decodeFieldIssues, Ri as defineEvent, Ft as defineStore, vi as defineTracking, Pt as definedStores, fi as deriveEntityAdmins, n as documentLocale, y as emptyRichTextDocument, Ui as enqueueEntry, Bi as eventCatalog, ji as filtersFromSchema, r as formActionPath, m as formDataToInput, ee as formField, t as formSections, cn as freshIdempotencyKey, nn as getMutationNotifier, Xt as getMutations, Ir as globalContext, o as isRichTextDocument, s as isSafeHref, kr as isUnauthenticated, Ke as isUnresolvedApi, Nn as makePreloadSeedBag, Lt as makeStoreSeedBag, ni as manifestUrl, qi as markConflict, Ki as markFailed, Gi as markSent, si as openAccessReason, h as parseRichText, Kr as provenanceUrl, Mr as publishClientError, _e as publishClientTrace, Hn as readPreloadedSeedOutcome, Vn as readPreloadedSnapshot, Le as registerSsrDescriptors, Xi as replayable, Pr as reportClientError, oi as requiredScopes, Un as resetPreloadSeeds, It as resetStoreRegistryForTests, at as resetStoreStorageForTest, q as resolveByTag, Ji as resolveConflictEntry, it as resolveStoreStorage, yi as resolveTrackingEvent, b as resolveValidationMessage, te as restrictToSchema, br as resumableConsumeProgram, f as richTextToPlainText, Vr as rowsToOptions, Yn as runSequence, e as schemaToColumns, x as schemaToFields, Rn as seedPreloadedSubscription, zn as seedPreloadedSubscriptionFailure, zt as seedStore, Jn as sequence, l as serializeRichText, tn as setMutationNotifier, Fn as setPreloadSeedResolver, Rt as setStoreSeedResolver, rt as setStoreStorage, Yt as settleMutation, ot as shallow, Ti as shallowArrayEqual, Ei as sourceValues, Ne as ssrClientProxy, Re as ssrDescriptorsFor, Be as ssrStubHandle, B as stableKey, Qe as startApiSupervisor, Jt as startMutation, vt as storeHistory, Nr as subscribeClientErrors, ve as subscribeClientTraces, Zt as subscribeMutations, yt as subscribeStoreHistory, xe as supersedesConfirmedPatches, xt as travelToStoreState, ci as useAccessDecision, _n as useAction, Er as useAgent, Tr as useAgentChat, yr as useAgentStream, Li as useAsyncValidation, ei as useCan, ti as useCanAny, ri as useCapabilityManifest, da as useConnection, ra as useConnectionStatus, ua as useConnections, Dr as useDataCopilot, Wr as useDataTable, Fi as useDebounced, Di as useDerived, qn as useEvent, Dn as useFormBinding, kn as useFormBindingContext, An as useFormField, Br as useFormFlash, Ci as useFormSkeleton, K as useFrameworkApi, Ge as useFrameworkRuntimes, Z as useMutation, Fr as useOnRpcError, $i as useOutbox, $r as usePermissions, Wn as usePreloadedSubscription, Hi as usePreview, qr as useProvenance, Hr as useQueryField, Ni as useQueryFilters, Pi as useRecord, Or as useRefreshSubscriptions, Oi as useResourceCan, ki as useResourceCans, Sr as useResumableAgentStream, Xn as useSequence, Rr as useServerRequest, J as useSubscription, wi as useTableSkeleton, Si as useTracking, pi as useUndo, _i as useUndoLog, nr as useUpload, bn as useValidationMessages, ta as useWindowedSubscription, rr as useWorkflow, dr as useWorkflowDomainEvents, fr as useWorkflowEventDeliveries, ur as useWorkflowEvents, or as useWorkflowRun, lr as useWorkflowRunEvents, vr as useWorkflowRunState, cr as useWorkflowRunSteps, sr as useWorkflowRuns, ir as useWorkflowSignal, ar as useWorkflowUpdate, zi as validateEventPayload, i as validateFields, Ii as validationStatus, Ar as wireAuthRefresh, ln as withIdempotencyKey, xi as wrapTrackedCallbacks };
3503
+ export { Zr as ADMIN_SCOPE, ha as CLIENT_NAME, sa as CONNECTIONS_LIST_TAG, ua as CONNECTION_DISCONNECT_TAG, ca as CONNECTION_START_TAG, la as CONNECTION_SUBMIT_TOKEN_TAG, v as FORM_FLASH_SCRIPT_ID, p as FORM_KEY_FIELD, g as FORM_PATH_PREFIX, u as FORM_REDIRECT_FIELD, jn as FormBindingProvider, Fe as FrameworkRuntimesContext, rt as FrameworkRuntimesProvider, ke as LoadingSubscriptionCache, ti as PermissionProvider, _ as RICH_TEXT_MARKS, a as RICH_TEXT_MAX_NODES, d as RichTextDocument, Pe as RpcErrorBus, Br as ServerRequestContext, Hr as ServerRequestProvider, Oe as SubscriptionCache, vi as UNDO_APPLY_TAG, _i as UNDO_LOG_TAG, yi as UNDO_REDO_TAG, Sn as ValidationMessagesProvider, Je as _resetFrameworkRuntimesWarning, Ue as _resetSsrDescriptors, Un as applyPreloadSeeds, Wt as applyStoreSeeds, Ze as buildApiRuntime, Qr as canCall, $r as canCallAny, rn as clearMutations, Qi as clearSent, wt as clearStoreHistory, ra as computeWindow, Wi as createAnalytics, Fn as createHooks, ci as decideAccess, c as decodeFieldIssues, Vi as defineEvent, zt as defineStore, xi as defineTracking, Rt as definedStores, hi as deriveEntityAdmins, n as documentLocale, y as emptyRichTextDocument, Ki as enqueueEntry, Ui as eventCatalog, Pi as filtersFromSchema, r as formActionPath, m as formDataToInput, S as formField, t as formSections, pn as freshIdempotencyKey, cn as getMutationNotifier, tn as getMutations, zr as globalContext, o as isRichTextDocument, s as isSafeHref, Pr as isUnauthenticated, Xe as isUnresolvedApi, In as makePreloadSeedBag, Vt as makeStoreSeedBag, ai as manifestUrl, Xi as markConflict, Yi as markFailed, Ji as markSent, ui as openAccessReason, h as parseRichText, Yr as provenanceUrl, je as publishClientError, me as publishClientTrace, Gn as readPreloadedSeedOutcome, Wn as readPreloadedSnapshot, Ve as registerSsrDescriptors, $i as replayable, Ne as reportClientError, li as requiredScopes, Kn as resetPreloadSeeds, Bt as resetStoreRegistryForTests, lt as resetStoreStorageForTest, q as resolveByTag, Zi as resolveConflictEntry, ct as resolveStoreStorage, Si as resolveTrackingEvent, b as resolveValidationMessage, ee as restrictToSchema, Tr as resumableConsumeProgram, f as richTextToPlainText, Wr as rowsToOptions, Qn as runSequence, e as schemaToColumns, x as schemaToFields, Vn as seedPreloadedSubscription, Hn as seedPreloadedSubscriptionFailure, Ut as seedStore, Zn as sequence, l as serializeRichText, sn as setMutationNotifier, Rn as setPreloadSeedResolver, Ht as setStoreSeedResolver, st as setStoreStorage, en as settleMutation, ut as shallow, Oi as shallowArrayEqual, ki as sourceValues, Le as ssrClientProxy, He as ssrDescriptorsFor, We as ssrStubHandle, U as stableKey, nt as startApiSupervisor, $t as startMutation, St as storeHistory, Me as subscribeClientErrors, he as subscribeClientTraces, nn as subscribeMutations, Ct as subscribeStoreHistory, ve as supersedesConfirmedPatches, Tt as travelToStoreState, di as useAccessDecision, bn as useAction, jr as useAgent, Ar as useAgentChat, wr as useAgentStream, Bi as useAsyncValidation, ri as useCan, ii as useCanAny, oi as useCapabilityManifest, ma as useConnection, oa as useConnectionStatus, pa as useConnections, Mr as useDataCopilot, qr as useDataTable, Ri as useDebounced, Ai as useDerived, Xn as useEvent, An as useFormBinding, Mn as useFormBindingContext, Nn as useFormField, Ur as useFormFlash, Ei as useFormSkeleton, K as useFrameworkApi, Ye as useFrameworkRuntimes, Q as useMutation, Ir as useOnRpcError, na as useOutbox, ni as usePermissions, qn as usePreloadedSubscription, Gi as usePreview, Xr as useProvenance, Gr as useQueryField, Ii as useQueryFilters, Li as useRecord, Nr as useRefreshSubscriptions, ji as useResourceCan, Mi as useResourceCans, Dr as useResumableAgentStream, $n as useSequence, Vr as useServerRequest, J as useSubscription, Rr as useSubscriptionHealth, Di as useTableSkeleton, Ti as useTracking, or as useTranscription, gi as useUndo, bi as useUndoLog, ar as useUpload, Cn as useValidationMessages, ia as useWindowedSubscription, cr as useWorkflow, gr as useWorkflowDomainEvents, _r as useWorkflowEventDeliveries, hr as useWorkflowEvents, dr as useWorkflowRun, mr as useWorkflowRunEvents, Cr as useWorkflowRunState, pr as useWorkflowRunSteps, fr as useWorkflowRuns, lr as useWorkflowSignal, ur as useWorkflowUpdate, Hi as validateEventPayload, i as validateFields, zi as validationStatus, Fr as wireAuthRefresh, mn as withIdempotencyKey, wi as wrapTrackedCallbacks };