@voltro/client 0.53.0 → 0.55.0

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