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