@voltro/client 0.37.0 → 0.39.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
@@ -22,21 +22,29 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
22
22
  emittedAt: void 0,
23
23
  error: void 0,
24
24
  pendingPatches: 0
25
- }), ae = 5e3, oe = 0, se = () => `patch_${++oe}`, k = (e, t) => {
25
+ }), ae = 5e3, oe = (e, t, n) => {
26
+ if (e._tag === "error") return !1;
27
+ if (e._tag === "delta") return !0;
28
+ try {
29
+ return JSON.stringify(t) !== JSON.stringify(n);
30
+ } catch {
31
+ return !1;
32
+ }
33
+ }, se = 0, ce = () => `patch_${++se}`, k = (e, t) => {
26
34
  let n = e;
27
35
  for (let e of t.split(".")) {
28
36
  if (typeof n != "object" || !n) return;
29
37
  n = n[e];
30
38
  }
31
39
  return n;
32
- }, ce = (e, t, n) => {
40
+ }, le = (e, t, n) => {
33
41
  let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
34
42
  for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
35
43
  return o[r[r.length - 1]] = n, a;
36
- }, le = (e, t) => {
44
+ }, ue = (e, t) => {
37
45
  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];
38
46
  return i.length === 0 ? null : new Set(i);
39
- }, ue = (e, t, n) => {
47
+ }, de = (e, t, n) => {
40
48
  let r = e.path, i = e.by ?? "id";
41
49
  if (e.op === "insert") {
42
50
  let a = e.shapeItem ?? e.shape, o = a ? {
@@ -50,10 +58,10 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
50
58
  }, s = e.order ?? "append";
51
59
  return (e) => {
52
60
  let t = Array.isArray(k(e, r)) ? k(e, r) : [];
53
- return ce(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
61
+ return le(e ?? {}, r, s === "append" ? [...t, o] : [o, ...t]);
54
62
  };
55
63
  }
56
- let a = le(e, t);
64
+ let a = ue(e, t);
57
65
  if (a === null) return null;
58
66
  if (e.op === "update") {
59
67
  let n = e.shapeItem ?? e.shape, o = n ? (e) => ({
@@ -68,15 +76,15 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
68
76
  });
69
77
  return (e) => {
70
78
  let t = Array.isArray(k(e, r)) ? k(e, r) : [];
71
- return ce(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
79
+ return le(e, r, t.map((e) => a.has(e[i]) ? o(e) : e));
72
80
  };
73
81
  }
74
82
  return (e) => {
75
83
  let t = Array.isArray(k(e, r)) ? k(e, r) : [];
76
- return ce(e, r, t.filter((e) => !a.has(e[i])));
84
+ return le(e, r, t.filter((e) => !a.has(e[i])));
77
85
  };
78
- }, de = (e, t, n) => {
79
- if (e.path !== void 0) return ue(e, t, n);
86
+ }, fe = (e, t, n) => {
87
+ if (e.path !== void 0) return de(e, t, n);
80
88
  switch (e.op) {
81
89
  case "insert": {
82
90
  let r = e.shape ? {
@@ -94,7 +102,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
94
102
  };
95
103
  }
96
104
  case "update": {
97
- let n = le(e, t);
105
+ let n = ue(e, t);
98
106
  if (n === null) return null;
99
107
  let r = e.shape, i = r ? (e) => ({
100
108
  ...r(t, e),
@@ -111,21 +119,21 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
111
119
  });
112
120
  }
113
121
  case "delete": {
114
- let n = le(e, t);
122
+ let n = ue(e, t);
115
123
  return n === null ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => !n.has(e.id));
116
124
  }
117
125
  }
118
- }, fe = 5e3, pe = class {
126
+ }, pe = 5e3, me = class {
119
127
  entries = /* @__PURE__ */ new Map();
120
128
  inactiveTtlMs;
121
129
  onChangeHook;
122
130
  errorBus;
123
131
  constructor(e = {}) {
124
- this.inactiveTtlMs = e.inactiveTtlMs ?? fe, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
132
+ this.inactiveTtlMs = e.inactiveTtlMs ?? pe, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
125
133
  }
126
134
  subscribe(e, t, n, r, i = {}) {
127
135
  let a = O(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
128
- return s && s.evictionTimer !== null && (clearTimeout(s.evictionTimer), s.evictionTimer = null), s ? (s.fiber === null && (s.fetch = t, this.startFiber(s, t, n)), s.source === void 0 && i.source !== void 0 && (s.source = i.source)) : s = this.create(a, o, t, n, i.source), s.subscribers.add(r), {
136
+ 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), {
129
137
  getSnapshot: () => this.getSnapshot(a),
130
138
  unsubscribe: () => this.unsubscribe(a, r)
131
139
  };
@@ -134,7 +142,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
134
142
  let r = O(e), i = typeof e[0] == "string" ? e[0] : void 0, a = this.entries.get(r);
135
143
  a ||= this.createStub(r, i);
136
144
  let o = {
137
- id: se(),
145
+ id: ce(),
138
146
  mutationId: n,
139
147
  reducer: t
140
148
  };
@@ -148,7 +156,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
148
156
  for (let i of this.entries.values()) {
149
157
  if (i.tag !== e) continue;
150
158
  let a = {
151
- id: `forTag-${++oe}`,
159
+ id: `forTag-${++se}`,
152
160
  mutationId: n,
153
161
  reducer: t
154
162
  };
@@ -165,10 +173,25 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
165
173
  confirmByMutation(e) {
166
174
  let t = !1;
167
175
  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);
168
- t && setTimeout(() => this.revertByMutation(e), ae);
176
+ t && setTimeout(() => this.resyncUnechoedMutation(e), ae);
177
+ }
178
+ resyncUnechoedMutation(e) {
179
+ for (let t of this.entries.values()) {
180
+ if (!t.state.patches.some((t) => t.mutationId === e && t.confirmed === !0)) continue;
181
+ let n = t.tag ?? t.key, r = `optimistic patch for ${n} got no superseding server event within ${ae}ms — the write is confirmed, so the preview is KEPT. Check reactivity for this query's source table.`;
182
+ this.errorBus?.emit({
183
+ source: "subscription",
184
+ tag: n,
185
+ error: Error(r),
186
+ ...t.traceId === void 0 ? {} : { traceId: t.traceId }
187
+ }), console.warn(`[voltro] ${r}`, {
188
+ mutationId: e,
189
+ tag: n
190
+ }), t.fetch !== null && t.runtime !== null && this.reissue(t, t.runtime, !1);
191
+ }
169
192
  }
170
193
  autoApply(e, t, n) {
171
- let r = `optimistic-${n}-${++oe}`;
194
+ let r = `optimistic-${n}-${++se}`;
172
195
  for (let i of e) for (let e of this.entries.values()) {
173
196
  if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
174
197
  if (i.match !== void 0) {
@@ -181,7 +204,7 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
181
204
  if (!n) continue;
182
205
  }
183
206
  if (e.computed && i.op === "insert" && i.path === void 0) continue;
184
- let a = de(i, t, r);
207
+ let a = fe(i, t, r);
185
208
  if (a === null) continue;
186
209
  let o = {
187
210
  id: `${r}-${e.key}`,
@@ -224,12 +247,13 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
224
247
  this.entries.clear();
225
248
  }
226
249
  refreshAll(e) {
227
- for (let t of this.entries.values()) {
228
- if (!t.fetch) continue;
229
- t.fiber && e.runFork(h.interrupt(t.fiber)), t.fiber = null;
230
- let n = t.state.patches;
231
- t.state = this.freshState(), t.state.patches = n, this.startFiber(t, t.fetch, e);
232
- }
250
+ for (let t of this.entries.values()) t.fetch && this.reissue(t, e);
251
+ }
252
+ reissue(e, t, n = !0) {
253
+ if (!e.fetch) return;
254
+ e.fiber && t.runFork(h.interrupt(e.fiber)), e.fiber = null;
255
+ let r = e.state.patches, i = e.state.base, a = e.state.baseRevision;
256
+ e.state = this.freshState(), e.state.patches = r, n || (e.state.base = i, e.state.baseRevision = a), this.startFiber(e, e.fetch, t);
233
257
  }
234
258
  seedStaleFrom(e) {
235
259
  let t = 0;
@@ -251,7 +275,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
251
275
  evictionTimer: null,
252
276
  source: n.source,
253
277
  computed: n.computed,
254
- fetch: null
278
+ fetch: null,
279
+ runtime: null
255
280
  };
256
281
  this.entries.set(e.key, e), this.scheduleEviction(e), t += 1;
257
282
  }
@@ -267,7 +292,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
267
292
  evictionTimer: null,
268
293
  source: i,
269
294
  computed: !1,
270
- fetch: n
295
+ fetch: n,
296
+ runtime: r
271
297
  };
272
298
  return this.entries.set(e, a), this.startFiber(a, n, r), a;
273
299
  }
@@ -281,7 +307,8 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
281
307
  evictionTimer: null,
282
308
  source: void 0,
283
309
  computed: !1,
284
- fetch: null
310
+ fetch: null,
311
+ runtime: null
285
312
  };
286
313
  return this.entries.set(e, n), n;
287
314
  }
@@ -303,13 +330,14 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
303
330
  tag: r
304
331
  })), i)))).pipe(x.withSpan(`client.subscription.${r}`, { attributes: { "rpc.tag": r } }));
305
332
  e.fiber = n.runFork(a.pipe(x.runForEach((t) => p.sync(() => {
333
+ let n = e.state.base;
306
334
  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);
307
335
  else if (t._tag === "error") e.state.baseError = u.fail(t.error), typeof t.revision == "number" && (e.state.baseRevision = t.revision);
308
336
  else {
309
337
  let n = e.state.base;
310
338
  Array.isArray(n) && (e.state.base = S(n, t.patch)), e.state.baseRevision = t.revision, e.state.baseEmittedAt = t.emittedAt, e.state.baseError = void 0;
311
339
  }
312
- e.state.patches.some((e) => e.confirmed === !0) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
340
+ e.state.patches.some((e) => e.confirmed === !0) && oe(t, n, e.state.base) && (e.state.patches = e.state.patches.filter((e) => e.confirmed !== !0)), this.invalidate(e);
313
341
  })))), e.fiber.addObserver((t) => {
314
342
  if (m.isFailure(t) && !m.isInterrupted(t) && (e.state.baseRevision === -1 && (e.state.baseError = t.cause, this.invalidate(e)), this.errorBus)) {
315
343
  let n = u.squash(t.cause);
@@ -352,14 +380,14 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
352
380
  t && t.subscribers.size === 0 && (t.fiber && p.runFork(h.interrupt(t.fiber)), this.entries.delete(e.key));
353
381
  }, this.inactiveTtlMs);
354
382
  }
355
- }, me = class extends pe {
383
+ }, he = class extends me {
356
384
  subscribe(e, t, n, r, i = {}) {
357
385
  return {
358
386
  getSnapshot: () => this.peek(e),
359
387
  unsubscribe: () => {}
360
388
  };
361
389
  }
362
- }, he = class {
390
+ }, ge = class {
363
391
  #e = /* @__PURE__ */ new Set();
364
392
  on(e) {
365
393
  return this.#e.add(e), () => {
@@ -371,45 +399,133 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
371
399
  t(e);
372
400
  } catch {}
373
401
  }
374
- }, ge = e(null), _e = () => {
402
+ }, _e = e(null), ve = () => {
375
403
  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");
376
- }, ve = new Proxy(() => _e(), {
377
- get: (e, t) => ve,
404
+ }, ye = new Proxy(() => ve(), {
405
+ get: (e, t) => ye,
378
406
  has: () => !0,
379
- apply: () => _e()
380
- }), ye = {
407
+ apply: () => ve()
408
+ }), be = {
381
409
  runtime: { runPromiseExit: () => Promise.resolve(m.die(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR"))) },
382
- cache: new me(),
383
- client: ve,
410
+ cache: new he(),
411
+ client: ye,
384
412
  descriptors: {},
385
413
  inspectBaseUrl: "",
386
- errorBus: new he()
387
- }, be = {
388
- get: () => ye,
414
+ errorBus: new ge()
415
+ }, xe = {
416
+ get: () => be,
389
417
  names: []
390
- }, A = !1, j = !1, M = null, xe = () => {
418
+ }, A = !1, j = !1, M = null, Se = () => {
391
419
  A = !1, j = !1, M !== null && (clearTimeout(M), M = null);
392
- }, Se = () => {
393
- let e = r(ge);
420
+ }, Ce = () => {
421
+ let e = r(_e);
394
422
  return e ? (j || (j = !0, M !== null && (clearTimeout(M), M = null)), e) : (typeof window < "u" && !A && !j && M === null && process.env.NODE_ENV !== "production" && (M = setTimeout(() => {
395
423
  M = null, !(A || j) && (A = !0, console.warn("useFrameworkRuntimes: no <FrameworkRuntimesProvider> in the tree — returning a loading baseline (subscriptions read `undefined`, mutations are no-ops). If this is not an intentional lazy/conditional mount, mount your app via @voltro/web mount() or wrap the subtree in <VoltroRuntimeProvider>."));
396
- }, 0)), be);
397
- }, N = (e) => Se().get(e), P = (e) => typeof e.runtime?.runFork != "function", Ce = async (e) => {
424
+ }, 0)), xe);
425
+ }, N = (e) => Ce().get(e), P = (e) => typeof e.runtime?.runFork != "function", we = async (e) => {
398
426
  let { name: t, wsUrl: n, group: r, headers: i, webSocketConstructor: a } = e;
399
427
  class o extends d.Tag(`@voltro/client/AppClient/${t}`)() {}
400
428
  let s = _.succeed(C.WebSocketConstructor, (e, t) => a(e, t)), c = T.layerProtocolSocket().pipe(_.provide(ee.layerJson), _.provide(C.layerWebSocket(n)), _.provide(s)), l = typeof i == "function" ? await i() : i, u = _.scoped(o, T.make(r)).pipe(_.provide(c)), f = l ? _.locallyScoped(T.currentHeaders, w.fromInput(l)) : _.empty, p = v.make(_.merge(u, f));
401
429
  try {
402
- let e = await p.runPromise(o), t = new he();
430
+ let e = await p.runPromise(o), t = new ge();
403
431
  return {
404
432
  runtime: p,
405
433
  client: e,
406
- cache: new pe({ errorBus: t }),
434
+ cache: new me({ errorBus: t }),
407
435
  errorBus: t
408
436
  };
409
437
  } catch (e) {
410
438
  throw p.dispose(), e;
411
439
  }
412
- }, we = ({ apis: e, children: t }) => {
440
+ }, Te = (e) => Math.min(500 * 2 ** Math.min(e - 1, 4), 5e3), Ee = () => ({
441
+ resolved: null,
442
+ retryToken: 0,
443
+ failureCount: 0,
444
+ generation: 0,
445
+ reconnectStatusDispose: null,
446
+ everOpened: !1,
447
+ wedgeStop: null,
448
+ subjectMayHaveChanged: !1
449
+ }), De = (e) => {
450
+ e.wedgeStop !== null && (e.wedgeStop(), e.wedgeStop = null);
451
+ }, Oe = (e) => {
452
+ e.cache.destroy(e.runtime), e.runtime.dispose();
453
+ }, ke = (e) => {
454
+ let t = e.apis, n = e.buildClient, r = e.onChange, i = e.retryDelayMs ?? Te, a = e.stableWindowMs ?? 5e3, o = e.scheduler?.setTimeout ?? ((e, t) => setTimeout(e, t)), s = e.scheduler?.clearTimeout ?? ((e) => {
455
+ clearTimeout(e);
456
+ }), c = e.scheduler?.queueMicrotask ?? queueMicrotask, l = e.onReconnecting, u = e.wedgeBackstop, d = /* @__PURE__ */ new Map();
457
+ for (let e of t) d.set(e.name, Ee());
458
+ let f = !1, p = /* @__PURE__ */ new Set(), m = (e, t) => {
459
+ let n = o(() => {
460
+ p.delete(n), e();
461
+ }, t);
462
+ return p.add(n), n;
463
+ }, h = () => {
464
+ if (f) return;
465
+ let e = /* @__PURE__ */ new Map();
466
+ for (let [t, n] of d) n.resolved && e.set(t, n.resolved);
467
+ r(e, t.every((t) => e.has(t.name)));
468
+ }, g = (e) => {
469
+ if (f) return;
470
+ let t = d.get(e.name);
471
+ if (!t) return;
472
+ t.failureCount += 1;
473
+ let n = i(t.failureCount), r = ++t.retryToken;
474
+ !t.reconnectStatusDispose && l && (t.reconnectStatusDispose = l(e.name)), u && t.everOpened && t.failureCount >= u.afterFailures && t.wedgeStop === null && (t.wedgeStop = u.arm(e.name)), m(() => {
475
+ f || t.retryToken === r && (t.generation += 1, _(e));
476
+ }, n);
477
+ }, _ = async (e) => {
478
+ if (f) return;
479
+ let t = d.get(e.name);
480
+ if (!t) return;
481
+ let r = t.generation, i = () => {
482
+ if (f || t.generation !== r) return;
483
+ t.everOpened = !0, De(t), t.retryToken++;
484
+ let e = t.failureCount;
485
+ m(() => {
486
+ f || t.failureCount === e && (t.failureCount = 0);
487
+ }, a);
488
+ }, o = (n) => {
489
+ f || t.generation !== r || g(e);
490
+ };
491
+ try {
492
+ let a = await n(e, r, i, o);
493
+ if (f || t.generation !== r) {
494
+ Oe(a);
495
+ return;
496
+ }
497
+ let s = t.resolved;
498
+ s && !t.subjectMayHaveChanged && a.cache.seedStaleFrom(s.cache), t.subjectMayHaveChanged = !1, t.resolved = a, t.reconnectStatusDispose &&= (t.reconnectStatusDispose(), null), h(), s && Oe(s);
499
+ } catch {
500
+ if (f || t.generation !== r) return;
501
+ g(e);
502
+ }
503
+ };
504
+ return t.length === 0 ? (r(/* @__PURE__ */ new Map(), !0), {
505
+ dispose: () => {
506
+ f = !0;
507
+ },
508
+ reconnect: () => {}
509
+ }) : (c(() => {
510
+ if (!f) for (let e of t) _(e);
511
+ }), {
512
+ dispose: () => {
513
+ if (!f) {
514
+ f = !0;
515
+ for (let e of p) s(e);
516
+ p.clear();
517
+ for (let [, e] of d) e.resolved && Oe(e.resolved), e.reconnectStatusDispose && e.reconnectStatusDispose(), De(e);
518
+ d.clear();
519
+ }
520
+ },
521
+ reconnect: () => {
522
+ if (!f) for (let e of t) {
523
+ let t = d.get(e.name);
524
+ t && (t.subjectMayHaveChanged = !0, t.retryToken += 1, t.generation += 1, t.failureCount = 0, De(t), _(e));
525
+ }
526
+ }
527
+ });
528
+ }, Ae = ({ apis: e, children: t }) => {
413
529
  let n = o(() => ({
414
530
  get: (t) => {
415
531
  let n = e.get(t);
@@ -421,10 +537,34 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
421
537
  },
422
538
  names: Array.from(e.keys())
423
539
  }), [e]);
424
- return /* @__PURE__ */ te(ge.Provider, {
540
+ return /* @__PURE__ */ te(_e.Provider, {
425
541
  value: n,
426
542
  children: t
427
543
  });
544
+ }, je = Symbol.for("@voltro/client/storeStorageProvider"), Me = () => {
545
+ let e = globalThis, t = e[je];
546
+ if (t !== void 0) return t;
547
+ let n = {
548
+ provider: void 0,
549
+ used: !1
550
+ };
551
+ return e[je] = n, n;
552
+ }, Ne = (e) => {
553
+ if (typeof window > "u") return null;
554
+ try {
555
+ return (e === "session" ? window.sessionStorage : window.localStorage) ?? null;
556
+ } catch {
557
+ return null;
558
+ }
559
+ }, Pe = (e) => {
560
+ let t = Me();
561
+ 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;
562
+ }, Fe = (e) => {
563
+ let t = Me();
564
+ return t.used = !0, (t.provider ?? Ne)(e);
565
+ }, Ie = () => {
566
+ let e = Me();
567
+ e.provider = void 0, e.used = !1;
428
568
  }, F = (e, t) => {
429
569
  if (Object.is(e, t)) return !0;
430
570
  if (typeof e != "object" || typeof t != "object" || e === null || t === null || Array.isArray(e) !== Array.isArray(t)) return !1;
@@ -432,20 +572,20 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
432
572
  if (n.length !== r.length) return !1;
433
573
  for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || !Object.is(e[r], t[r])) return !1;
434
574
  return !0;
435
- }, Te = 50, Ee = /* @__PURE__ */ new Set(), De = (e, t) => {
436
- Ee.has(e) || (Ee.add(e), console.warn(t));
437
- }, Oe = "\0global", ke = null, Ae = (e, t, n) => {
438
- let r = ke?.() ?? null;
575
+ }, Le = 50, Re = /* @__PURE__ */ new Set(), ze = (e, t) => {
576
+ Re.has(e) || (Re.add(e), console.warn(t));
577
+ }, Be = "\0global", Ve = null, He = (e, t, n) => {
578
+ let r = Ve?.() ?? null;
439
579
  if (r === null) return n;
440
580
  let i = n;
441
- for (let n of r.seeds) n.store !== e || n.key !== t || (i = {
581
+ for (let n of r.seeds) n.store === e && n.key === t && (i = {
442
582
  ...i,
443
583
  ...n.value
444
584
  });
445
585
  return i;
446
- }, je = (e, t) => {
586
+ }, Ue = (e, t) => {
447
587
  let n = e(), r = /* @__PURE__ */ new Set(), i = 0, a = 0, o, s, c = () => {
448
- if (i >= Te) throw i = 0, Error(`defineStore: notification depth exceeded ${Te} — 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.`);
588
+ if (i >= Le) throw i = 0, Error(`defineStore: notification depth exceeded ${Le} — 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.`);
449
589
  i += 1;
450
590
  try {
451
591
  for (let e of [...r]) e();
@@ -487,11 +627,11 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
487
627
  r.delete(e);
488
628
  })
489
629
  };
490
- }, Me = 200, I = [], Ne = /* @__PURE__ */ new Set(), Pe = [], Fe = () => Pe, Ie = (e) => (Ne.add(e), () => {
491
- Ne.delete(e);
492
- }), Le = () => {
493
- I.length = 0, Pe = [];
494
- }, Re = (e, t) => {
630
+ }, We = 200, I = [], Ge = /* @__PURE__ */ new Set(), Ke = [], qe = () => Ke, Je = (e) => (Ge.add(e), () => {
631
+ Ge.delete(e);
632
+ }), Ye = () => {
633
+ I.length = 0, Ke = [];
634
+ }, Xe = (e, t) => {
495
635
  let n = I[e];
496
636
  if (n === void 0) return !1;
497
637
  let r = z.get(n.store);
@@ -504,41 +644,34 @@ var ne = /* @__PURE__ */ new Set(), D = (e) => {
504
644
  R = !1;
505
645
  }
506
646
  return !0;
507
- }, L = !1, R = !1, ze = (e) => {
508
- I.push(e), I.length > Me && I.shift(), Pe = [...I];
509
- for (let e of [...Ne]) e();
510
- }, z = /* @__PURE__ */ new Map(), Be = /* @__PURE__ */ new Map(), Ve = 0, He = !1, Ue = /* @__PURE__ */ new Map(), We = () => (He || (He = !0, queueMicrotask(() => {
511
- Ve += 1, He = !1;
512
- })), Ve), Ge = Ke(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
513
- function Ke(e) {
647
+ }, L = !1, R = !1, Ze = (e) => {
648
+ I.push(e), I.length > We && I.shift(), Ke = [...I];
649
+ for (let e of [...Ge]) e();
650
+ }, z = /* @__PURE__ */ new Map(), Qe = /* @__PURE__ */ new Map(), $e = 0, et = !1, tt = /* @__PURE__ */ new Map(), nt = () => (et || (et = !0, queueMicrotask(() => {
651
+ $e += 1, et = !1;
652
+ })), $e), rt = it(((/* @__PURE__ */ Error()).stack ?? "").split("\n")[1] ?? "") ?? "";
653
+ function it(e) {
514
654
  let t = e.trim().replace(/^at\s+/, ""), n = /\(([^()]+)\)\s*$/.exec(t)?.[1] ?? t;
515
655
  return n.length > 0 ? n : void 0;
516
656
  }
517
- var qe = () => {
657
+ var at = () => {
518
658
  let e = (/* @__PURE__ */ Error()).stack;
519
659
  if (typeof e != "string") return "<unknown>";
520
660
  for (let t of e.split("\n").slice(1)) {
521
- let e = Ke(t);
661
+ let e = it(t);
522
662
  if (e === void 0) continue;
523
663
  let n = e.replace(/:\d+:\d+$/, "");
524
- if (!(Ge !== "" && n === Ge.replace(/:\d+:\d+$/, ""))) return n;
664
+ if (rt === "" || n !== rt.replace(/:\d+:\d+$/, "")) return n;
525
665
  }
526
666
  return "<unknown>";
527
- }, Je = () => [...z.values()], Ye = (e, t, r) => {
528
- let a = qe(), o = We(), c = z.get(e);
667
+ }, ot = () => [...z.values()], st = (e, t, r) => {
668
+ let a = at(), o = nt(), c = z.get(e);
529
669
  if (c !== void 0) {
530
- let t = Be.get(e) ?? "<unknown>", n = Ue.get(e) === o;
670
+ let t = Qe.get(e) ?? "<unknown>", n = tt.get(e) === o;
531
671
  if (a !== "<unknown>" && a === t && !n) return c;
532
672
  throw Error(`defineStore: '${e}' is already defined. Store names are the devtools + seed key, so two stores sharing one name would silently share state. Rename one.\n first: ${t}\n second: ${a}`);
533
673
  }
534
- let u = r?.persist, d = () => {
535
- if (typeof window > "u") return null;
536
- try {
537
- return (u?.storage === "session" ? window.sessionStorage : window.localStorage) ?? null;
538
- } catch {
539
- return null;
540
- }
541
- }, f = () => {
674
+ let u = r?.persist, d = () => Fe(u?.storage === "session" ? "session" : "local"), f = () => {
542
675
  let e = d();
543
676
  if (e === null || u === void 0) return;
544
677
  let t;
@@ -563,10 +696,10 @@ var qe = () => {
563
696
  t.setItem(u.key, JSON.stringify(n));
564
697
  } catch {}
565
698
  }, m = /* @__PURE__ */ new Map(), h = (n) => {
566
- let r = n ?? Oe, i = m.get(r);
699
+ let r = n ?? Be, i = m.get(r);
567
700
  if (i === void 0) {
568
701
  let a = n;
569
- i = je(u !== void 0 && n === void 0 ? () => {
702
+ i = Ue(u !== void 0 && n === void 0 ? () => {
570
703
  let e = t();
571
704
  return g = e, {
572
705
  ...e,
@@ -580,7 +713,7 @@ var qe = () => {
580
713
  next: n
581
714
  }), e.steps.length > y && e.steps.shift(), e.cursor = e.steps.length;
582
715
  }
583
- ze({
716
+ Ze({
584
717
  store: e,
585
718
  ...a === void 0 ? {} : { key: a },
586
719
  ...r === void 0 ? {} : { label: r },
@@ -593,7 +726,7 @@ var qe = () => {
593
726
  }
594
727
  return i;
595
728
  }, g, _ = /* @__PURE__ */ new Map(), v = (e) => {
596
- let t = e ?? Oe, n = _.get(t);
729
+ let t = e ?? Be, n = _.get(t);
597
730
  return n === void 0 && (n = {
598
731
  steps: [],
599
732
  cursor: 0
@@ -625,14 +758,14 @@ var qe = () => {
625
758
  let n = u.current;
626
759
  if (n.has && Object.is(n.state, t)) return n.value;
627
760
  let r = o.current(t), i = c.current, a = n.has && (i ? i(n.value, r) : Object.is(n.value, r));
628
- process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && F(n.value, r) && De(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.`);
761
+ process.env.NODE_ENV !== "production" && i === void 0 && n.has && !a && typeof r == "object" && r && F(n.value, r) && ze(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.`);
629
762
  let s = a ? n.value : r;
630
763
  return u.current = {
631
764
  state: t,
632
765
  value: s,
633
766
  has: !0
634
767
  }, s;
635
- }, []), f = r?.key, p = r?.retain === !0, m = l(n((e) => {
768
+ }, []), f = r?.key, p = r?.retain === !0, m = n((e) => {
636
769
  let t = a.subscribe(e);
637
770
  return f !== void 0 && !p && S(f), () => {
638
771
  t(), f !== void 0 && !p && C(f);
@@ -641,12 +774,12 @@ var qe = () => {
641
774
  a,
642
775
  f,
643
776
  p
644
- ]), n(() => d(a.get()), [a, d]), n(() => d(Ae(e, r?.key, r?.key === void 0 && g !== void 0 ? g : a.get())), [
777
+ ]), _ = n(() => d(a.get()), [a, d]), v = n(() => d(He(e, r?.key, r?.key === void 0 && g !== void 0 ? g : a.get())), [
645
778
  a,
646
779
  r?.key,
647
780
  d
648
- ]));
649
- return i(m), m;
781
+ ]), y = l(m, _, v);
782
+ return i(y), y;
650
783
  },
651
784
  instance: h,
652
785
  get: (e) => h(e).get(),
@@ -687,22 +820,22 @@ var qe = () => {
687
820
  release: (e) => {
688
821
  m.delete(e), _.delete(e);
689
822
  },
690
- keys: () => [...m.keys()].filter((e) => e !== Oe)
823
+ keys: () => [...m.keys()].filter((e) => e !== Be)
691
824
  };
692
- return z.set(e, w), Be.set(e, a), Ue.set(e, o), w;
693
- }, Xe = () => {
694
- z.clear(), Be.clear(), Ue.clear(), Ee.clear();
695
- }, Ze = () => ({ seeds: [] }), Qe = (e) => {
696
- ke = e;
697
- }, $e = (e, t, n) => {
698
- let r = ke?.() ?? null;
825
+ return z.set(e, w), Qe.set(e, a), tt.set(e, o), w;
826
+ }, ct = () => {
827
+ z.clear(), Qe.clear(), tt.clear(), Re.clear();
828
+ }, lt = () => ({ seeds: [] }), ut = (e) => {
829
+ Ve = e;
830
+ }, dt = (e, t, n) => {
831
+ let r = Ve?.() ?? null;
699
832
  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.)`);
700
833
  r.seeds.push({
701
834
  store: e.name,
702
835
  ...n?.key === void 0 ? {} : { key: n.key },
703
836
  value: t
704
837
  });
705
- }, et = (e) => {
838
+ }, ft = (e) => {
706
839
  if (e !== void 0) for (let t of e) {
707
840
  let e = z.get(t.store);
708
841
  e !== void 0 && e.set(t.value, t.key);
@@ -726,74 +859,74 @@ var qe = () => {
726
859
  }
727
860
  if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
728
861
  return r;
729
- }, tt = Object.freeze({
862
+ }, pt = Object.freeze({
730
863
  data: void 0,
731
864
  revision: -1,
732
865
  emittedAt: void 0,
733
866
  error: void 0,
734
867
  pendingPatches: 0
735
- }), nt = () => tt;
868
+ }), mt = () => pt;
736
869
  function V(e, t, r = {}, i = {}) {
737
870
  let a = i.skip === !0, { runtime: c, cache: u, client: d, descriptors: f } = N(e), p = f[t]?.source, m = s(r);
738
871
  m.current = r;
739
872
  let h = s(d);
740
873
  h.current = d;
741
- let g = o(() => {
874
+ let g = o(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r]), _ = o(() => {
742
875
  let e = m.current;
743
876
  return {
744
877
  queryKey: [t, e],
745
878
  fetch: () => B(h.current, t)(e)
746
879
  };
747
- }, [t, o(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r])]), _ = g.queryKey, v = l(n((e) => a ? () => {} : u.subscribe(g.queryKey, g.fetch, c, e, p === void 0 ? {} : { source: p }).unsubscribe, [
880
+ }, [t, g]), v = _.queryKey, y = n((e) => a ? () => {} : u.subscribe(_.queryKey, _.fetch, c, e, p === void 0 ? {} : { source: p }).unsubscribe, [
748
881
  u,
749
882
  c,
750
883
  p,
751
884
  a,
752
- g
753
- ]), n(() => a ? tt : u.peek(_), [
885
+ _
886
+ ]), b = n(() => a ? pt : u.peek(v), [
754
887
  u,
755
888
  a,
756
- _
757
- ]), nt), y = v.data !== void 0, b = y && (Array.isArray(v.data) ? v.data.length === 0 : v.data === null), x = {
758
- revision: v.revision,
759
- emittedAt: v.emittedAt,
760
- error: v.error,
761
- pendingPatches: v.pendingPatches
889
+ v
890
+ ]), x = l(y, b, mt), S = x.data !== void 0, C = S && (Array.isArray(x.data) ? x.data.length === 0 : x.data === null), w = {
891
+ revision: x.revision,
892
+ emittedAt: x.emittedAt,
893
+ error: x.error,
894
+ pendingPatches: x.pendingPatches
762
895
  };
763
896
  if (i.initialSnapshot !== void 0) {
764
897
  let e = Array.isArray(i.initialSnapshot) ? i.initialSnapshot.length === 0 : i.initialSnapshot === null;
765
898
  return {
766
- ...x,
767
- data: y ? v.data : i.initialSnapshot,
899
+ ...w,
900
+ data: S ? x.data : i.initialSnapshot,
768
901
  loading: !1,
769
902
  idle: a,
770
- isEmpty: y ? b : e
903
+ isEmpty: S ? C : e
771
904
  };
772
905
  }
773
906
  return i.fallback === void 0 ? a ? {
774
- ...x,
907
+ ...w,
775
908
  data: void 0,
776
909
  loading: !1,
777
910
  isEmpty: !1,
778
911
  idle: !0
779
- } : y ? {
780
- ...x,
781
- data: v.data,
912
+ } : S ? {
913
+ ...w,
914
+ data: x.data,
782
915
  loading: !1,
783
- isEmpty: b,
916
+ isEmpty: C,
784
917
  idle: !1
785
918
  } : {
786
- ...x,
919
+ ...w,
787
920
  data: void 0,
788
921
  loading: !0,
789
922
  isEmpty: !1,
790
923
  idle: !1
791
924
  } : {
792
- ...x,
793
- data: y ? v.data : i.fallback,
794
- loading: !y && !a,
925
+ ...w,
926
+ data: S ? x.data : i.fallback,
927
+ loading: !S && !a,
795
928
  idle: a,
796
- isEmpty: b
929
+ isEmpty: C
797
930
  };
798
931
  }
799
932
  //#endregion
@@ -802,20 +935,20 @@ var H = async (e, t) => {
802
935
  let n = await e.runPromiseExit(t);
803
936
  if (m.isSuccess(n)) return n.value;
804
937
  throw u.squash(n.cause);
805
- }, rt = 100, U = [], it = /* @__PURE__ */ new Set(), at = [], ot = () => {
806
- at = U.slice();
807
- }, st = () => {
808
- ot();
809
- for (let e of it) try {
938
+ }, ht = 100, U = [], gt = /* @__PURE__ */ new Set(), _t = [], vt = () => {
939
+ _t = U.slice();
940
+ }, yt = () => {
941
+ vt();
942
+ for (let e of gt) try {
810
943
  e();
811
944
  } catch {}
812
- }, ct = (e) => {
945
+ }, bt = (e) => {
813
946
  let t = {
814
947
  ...e,
815
948
  status: "pending",
816
949
  startedAt: Date.now()
817
950
  };
818
- U.unshift(t), U.length > rt && (U.length = rt), st();
951
+ U.unshift(t), U.length > ht && (U.length = ht), yt();
819
952
  }, W = (e, t) => {
820
953
  let n = U.findIndex((t) => t.id === e);
821
954
  if (n === -1) return;
@@ -832,12 +965,12 @@ var H = async (e, t) => {
832
965
  error: t.error,
833
966
  settledAt: i,
834
967
  durationMs: i - r.startedAt
835
- }, st();
836
- }, lt = () => at, ut = (e) => (it.add(e), () => {
837
- it.delete(e);
838
- }), dt = () => {
839
- U.length !== 0 && (U.length = 0, st());
840
- }, ft = (e, t) => {
968
+ }, yt();
969
+ }, xt = () => _t, St = (e) => (gt.add(e), () => {
970
+ gt.delete(e);
971
+ }), Ct = () => {
972
+ U.length !== 0 && (U.length = 0, yt());
973
+ }, wt = (e, t) => {
841
974
  if (t === void 0 || typeof e != "object" || !e) return e;
842
975
  try {
843
976
  Object.defineProperty(e, "__voltroTraceId", {
@@ -847,12 +980,12 @@ var H = async (e, t) => {
847
980
  });
848
981
  } catch {}
849
982
  return e;
850
- }, G, pt = (e) => {
983
+ }, G, Tt = (e) => {
851
984
  G = e;
852
- }, mt = () => G, ht = (e, t, n) => typeof e == "function" ? e(t, n) : e, gt = 0, _t = () => `mut_${++gt}`, vt = 0, yt = () => {
985
+ }, Et = () => G, Dt = (e, t, n) => typeof e == "function" ? e(t, n) : e, Ot = 0, kt = () => `mut_${++Ot}`, At = 0, jt = () => {
853
986
  let e = typeof crypto < "u" ? crypto : void 0;
854
- return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${vt += 1}`;
855
- }, bt = (e, t) => e.pipe(p.locallyWith(T.currentHeaders, (e) => w.set(e, "idempotency-key", t))), xt = (e, t) => ({
987
+ return e && typeof e.randomUUID == "function" ? e.randomUUID() : `idem_${Date.now().toString(36)}_${At += 1}`;
988
+ }, Mt = (e, t) => e.pipe(p.locallyWith(T.currentHeaders, (e) => w.set(e, "idempotency-key", t))), Nt = (e, t) => ({
856
989
  update: (n, r) => {
857
990
  e.update(n, r, t);
858
991
  },
@@ -866,12 +999,12 @@ var H = async (e, t) => {
866
999
  let [m, h] = c(!1), [g, _] = c(void 0), [v, y] = c(void 0), b = s(null), x = s(!1), S = n(async (n, o) => {
867
1000
  let s = o?.onError !== void 0 || o?.notify?.error !== void 0, c = (e) => {
868
1001
  o?.onError?.(e, n);
869
- let t = ht(o?.notify?.error, e, n);
1002
+ let t = Dt(o?.notify?.error, e, n);
870
1003
  t !== void 0 && G?.error(t);
871
1004
  };
872
1005
  h(!0), _(void 0);
873
- let l = _t(), d = o?.idempotencyKey ?? yt();
874
- ct({
1006
+ let l = kt(), d = o?.idempotencyKey ?? jt();
1007
+ bt({
875
1008
  id: l,
876
1009
  apiName: e,
877
1010
  tag: t,
@@ -879,7 +1012,7 @@ var H = async (e, t) => {
879
1012
  });
880
1013
  let m = b.current, g = x.current;
881
1014
  if (m) try {
882
- m(xt(i, l), n);
1015
+ m(Nt(i, l), n);
883
1016
  } catch (e) {
884
1017
  if (_(e), h(!1), i.revertByMutation(l), W(l, {
885
1018
  status: "error",
@@ -897,7 +1030,7 @@ var H = async (e, t) => {
897
1030
  source: "mutation",
898
1031
  tag: t
899
1032
  });
900
- })), p.catchAll(() => p.void), p.zipRight(bt(s(n), d))).pipe(p.withSpan(`client.mutation.${t}`, { attributes: {
1033
+ })), p.catchAll(() => p.void), p.zipRight(Mt(s(n), d))).pipe(p.withSpan(`client.mutation.${t}`, { attributes: {
901
1034
  "voltro.api": e,
902
1035
  "voltro.mutationId": l,
903
1036
  "rpc.tag": t
@@ -906,10 +1039,10 @@ var H = async (e, t) => {
906
1039
  status: "success",
907
1040
  output: u
908
1041
  }), i.confirmByMutation(l), o?.onSuccess?.(u, n);
909
- let f = ht(o?.notify?.success, u, n);
1042
+ let f = Dt(o?.notify?.success, u, n);
910
1043
  return f !== void 0 && G?.success(f), u;
911
1044
  } catch (e) {
912
- let n = ft(e, v);
1045
+ let n = wt(e, v);
913
1046
  if (_(n), W(l, {
914
1047
  status: "error",
915
1048
  error: n
@@ -947,7 +1080,7 @@ var H = async (e, t) => {
947
1080
  g,
948
1081
  v
949
1082
  ]);
950
- }, St = (e, t) => {
1083
+ }, Pt = (e, t) => {
951
1084
  if (t === void 0 || typeof e != "object" || !e) return e;
952
1085
  try {
953
1086
  Object.defineProperty(e, "__voltroTraceId", {
@@ -957,11 +1090,11 @@ var H = async (e, t) => {
957
1090
  });
958
1091
  } catch {}
959
1092
  return e;
960
- }, Ct = (e, t, n) => typeof e == "function" ? e(t, n) : e, wt = 0, Tt = () => `act_${++wt}`, Et = 15e3, Dt = async (e, t, n) => {
1093
+ }, Ft = (e, t, n) => typeof e == "function" ? e(t, n) : e, It = 0, Lt = () => `act_${++It}`, Rt = 15e3, zt = async (e, t, n) => {
961
1094
  if (!P(e.current)) return e.current;
962
- let r = Date.now() + Et;
1095
+ let r = Date.now() + Rt;
963
1096
  for (; Date.now() < r;) if (await new Promise((e) => setTimeout(e, 16)), !P(e.current)) return e.current;
964
- throw Error(`Voltro: the api "${t}" did not resolve within ${Et}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.`);
1097
+ throw Error(`Voltro: the api "${t}" did not resolve within ${Rt}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.`);
965
1098
  }, q = (e, t) => {
966
1099
  let r = N(e), { descriptors: i, errorBus: a } = r, l = s(r);
967
1100
  if (l.current = r, process.env.NODE_ENV !== "production") {
@@ -971,8 +1104,8 @@ var H = async (e, t) => {
971
1104
  let [u, d] = c(!1), [f, m] = c(void 0), [h, g] = c(void 0), _ = n(async (n, r) => {
972
1105
  let i = r?.onError !== void 0 || r?.notify?.error !== void 0;
973
1106
  d(!0), m(void 0);
974
- let o = Tt(), s = r?.idempotencyKey ?? yt();
975
- ct({
1107
+ let o = Lt(), s = r?.idempotencyKey ?? jt();
1108
+ bt({
976
1109
  id: o,
977
1110
  apiName: e,
978
1111
  tag: t,
@@ -980,14 +1113,14 @@ var H = async (e, t) => {
980
1113
  });
981
1114
  let c;
982
1115
  try {
983
- let { runtime: i, client: a } = await Dt(l, e, t), u = B(a, t), d = await H(i, p.currentSpan.pipe(p.tap((e) => p.sync(() => {
1116
+ let { runtime: i, client: a } = await zt(l, e, t), u = B(a, t), d = await H(i, p.currentSpan.pipe(p.tap((e) => p.sync(() => {
984
1117
  c = e.traceId, D({
985
1118
  traceId: e.traceId,
986
1119
  spanId: e.spanId,
987
1120
  source: "action",
988
1121
  tag: t
989
1122
  });
990
- })), p.catchAll(() => p.void), p.zipRight(bt(u(n), s))).pipe(p.withSpan(`client.action.${t}`, { attributes: {
1123
+ })), p.catchAll(() => p.void), p.zipRight(Mt(u(n), s))).pipe(p.withSpan(`client.action.${t}`, { attributes: {
991
1124
  "voltro.api": e,
992
1125
  "voltro.actionId": o,
993
1126
  "rpc.tag": t
@@ -996,10 +1129,10 @@ var H = async (e, t) => {
996
1129
  status: "success",
997
1130
  output: d
998
1131
  }), r?.onSuccess?.(d, n);
999
- let f = Ct(r?.notify?.success, d, n);
1000
- return f !== void 0 && mt()?.success(f), d;
1132
+ let f = Ft(r?.notify?.success, d, n);
1133
+ return f !== void 0 && Et()?.success(f), d;
1001
1134
  } catch (e) {
1002
- let s = St(e, c);
1135
+ let s = Pt(e, c);
1003
1136
  if (m(s), W(o, {
1004
1137
  status: "error",
1005
1138
  error: s
@@ -1010,8 +1143,8 @@ var H = async (e, t) => {
1010
1143
  ...c === void 0 ? {} : { traceId: c }
1011
1144
  }), i) {
1012
1145
  r?.onError?.(s, n);
1013
- let e = Ct(r?.notify?.error, s, n);
1014
- e !== void 0 && mt()?.error(e);
1146
+ let e = Ft(r?.notify?.error, s, n);
1147
+ e !== void 0 && Et()?.error(e);
1015
1148
  return;
1016
1149
  }
1017
1150
  throw s;
@@ -1034,52 +1167,75 @@ var H = async (e, t) => {
1034
1167
  f,
1035
1168
  h
1036
1169
  ]);
1037
- }, Ot = V, kt = (e) => ({
1038
- useSubscription: (t, n, r) => Ot(e, t, n, r),
1170
+ }, Bt = V, Vt = (e) => ({
1171
+ useSubscription: (t, n, r) => Bt(e, t, n, r),
1039
1172
  useMutation: (t) => K(e, t),
1040
1173
  useAction: (t) => q(e, t)
1041
- }), At = () => ({ seeds: [] }), jt = null, Mt = (e) => {
1042
- jt = e;
1043
- }, Nt = /* @__PURE__ */ new Map(), Pt = (e, t) => `${e}\u0000${t}`, Ft = (e, t, n, r) => {
1044
- let i = jt?.() ?? null;
1174
+ }), Ht = () => ({ seeds: [] }), J = null, Ut = (e) => {
1175
+ J = e;
1176
+ }, Y = /* @__PURE__ */ new Map(), Wt = (e, t) => `${e}\u0000${t}`, Gt = (e, t, n, r) => {
1177
+ let i = J?.() ?? null;
1045
1178
  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.)`);
1046
1179
  i.seeds.push({
1047
1180
  api: e,
1048
1181
  key: O([t, n]),
1049
1182
  value: r
1050
1183
  });
1051
- }, It = (e) => {
1052
- if (e !== void 0) for (let t of e) Nt.set(Pt(t.api, t.key), t.value);
1053
- }, Lt = (e, t, n) => {
1054
- let r = O([t, n]), i = jt?.() ?? null;
1184
+ }, Kt = (e, t, n) => {
1185
+ let r = J?.() ?? null;
1186
+ r !== null && r.seeds.push({
1187
+ api: e,
1188
+ key: O([t, n]),
1189
+ value: void 0,
1190
+ failed: !0
1191
+ });
1192
+ }, qt = (e) => {
1193
+ if (e !== void 0) for (let t of e) Y.set(Wt(t.api, t.key), {
1194
+ value: t.value,
1195
+ failed: t.failed === !0
1196
+ });
1197
+ }, Jt = (e, t, n) => {
1198
+ let r = O([t, n]), i = J?.() ?? null;
1055
1199
  if (i !== null) {
1056
- for (let t of i.seeds) if (t.api === e && t.key === r) return t.value;
1200
+ for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? void 0 : t.value;
1057
1201
  return;
1058
1202
  }
1059
- return Nt.get(Pt(e, r));
1060
- }, Rt = () => {
1061
- Nt.clear();
1203
+ let a = Y.get(Wt(e, r));
1204
+ return a === void 0 || a.failed ? void 0 : a.value;
1205
+ }, Yt = (e, t, n) => {
1206
+ let r = O([t, n]), i = J?.() ?? null;
1207
+ if (i !== null) {
1208
+ for (let t of i.seeds) if (t.api === e && t.key === r) return t.failed === !0 ? "failed" : "seeded";
1209
+ return "absent";
1210
+ }
1211
+ let a = Y.get(Wt(e, r));
1212
+ return a === void 0 ? "absent" : a.failed ? "failed" : "seeded";
1213
+ }, Xt = () => {
1214
+ Y.clear();
1062
1215
  };
1063
1216
  //#endregion
1064
1217
  //#region src/usePreloadedSubscription.ts
1065
- function zt(e, t, n = {}, r = {}) {
1066
- let i = Lt(e, t, n);
1067
- return V(e, t, n, i === void 0 ? r : {
1218
+ function Zt(e, t, n = {}, r = {}) {
1219
+ let i = Jt(e, t, n), a = V(e, t, n, i === void 0 ? r : {
1068
1220
  ...r,
1069
1221
  initialSnapshot: i
1070
1222
  });
1223
+ return Yt(e, t, n) === "failed" ? {
1224
+ ...a,
1225
+ preloadFailed: !0
1226
+ } : a;
1071
1227
  }
1072
1228
  //#endregion
1073
1229
  //#region src/useEvent.ts
1074
- var Bt = {
1230
+ var Qt = {
1075
1231
  status: "idle",
1076
1232
  missed: 0,
1077
1233
  lastMiss: void 0
1078
- }, Vt = class {
1234
+ }, $t = class {
1079
1235
  _tag = "EventStreamClosed";
1080
1236
  };
1081
- function Ht(e, t, r, i = {}) {
1082
- let { skip: o = !1, apiName: l = "app", onMissed: u } = i, d = N(l), { runtime: f, client: m } = d, [h, g] = c(Bt), _ = s(r);
1237
+ function en(e, t, r, i = {}) {
1238
+ let { skip: o = !1, apiName: l = "app", onMissed: u } = i, d = N(l), { runtime: f, client: m } = d, [h, g] = c(Qt), _ = s(r);
1083
1239
  _.current = r;
1084
1240
  let v = s(u);
1085
1241
  v.current = u;
@@ -1106,7 +1262,7 @@ function Ht(e, t, r, i = {}) {
1106
1262
  }, []), E = !o && w !== null && !P(d);
1107
1263
  return a(() => {
1108
1264
  if (!E) {
1109
- g(Bt);
1265
+ g(Qt);
1110
1266
  return;
1111
1267
  }
1112
1268
  g((e) => ({
@@ -1124,7 +1280,7 @@ function Ht(e, t, r, i = {}) {
1124
1280
  });
1125
1281
  }), r = x.unwrap(n).pipe(x.tap(() => p.sync(() => {
1126
1282
  t = 0;
1127
- })), x.concat(x.fail(new Vt())), x.retry(y.exponential("250 millis", 2).pipe(y.either(y.spaced("30 seconds")), y.jittered, y.tapOutput(() => p.sync(() => {
1283
+ })), x.concat(x.fail(new $t())), x.retry(y.exponential("250 millis", 2).pipe(y.either(y.spaced("30 seconds")), y.jittered, y.tapOutput(() => p.sync(() => {
1128
1284
  t += 1, g((e) => ({
1129
1285
  ...e,
1130
1286
  status: "connecting"
@@ -1151,11 +1307,11 @@ function Ht(e, t, r, i = {}) {
1151
1307
  w,
1152
1308
  e.name,
1153
1309
  te
1154
- ]), E ? h : Bt;
1310
+ ]), E ? h : Qt;
1155
1311
  }
1156
1312
  //#endregion
1157
1313
  //#region src/sequence.ts
1158
- var Ut = () => {
1314
+ var tn = () => {
1159
1315
  let e = (t) => ({
1160
1316
  steps: t,
1161
1317
  step: ((n, r, i) => e([...t, {
@@ -1167,7 +1323,7 @@ var Ut = () => {
1167
1323
  }]))
1168
1324
  });
1169
1325
  return e([]);
1170
- }, Wt = async (e, t = {}) => {
1326
+ }, nn = async (e, t = {}) => {
1171
1327
  let n = {}, r = [];
1172
1328
  for (let i of e.steps) {
1173
1329
  if (i.when !== void 0 && !i.when(n)) {
@@ -1227,13 +1383,13 @@ var Ut = () => {
1227
1383
  ok: !0,
1228
1384
  data: n
1229
1385
  };
1230
- }, Gt = (e = {}) => {
1386
+ }, rn = (e = {}) => {
1231
1387
  let [t, r] = c(!1), [i, a] = c(void 0), [o, l] = c(void 0), u = s(e);
1232
1388
  return u.current = e, {
1233
1389
  run: n(async (e, t = {}) => {
1234
1390
  r(!0), a(void 0), l(void 0);
1235
1391
  try {
1236
- let n = await Wt(e, {
1392
+ let n = await nn(e, {
1237
1393
  ...u.current,
1238
1394
  ...t
1239
1395
  });
@@ -1246,7 +1402,7 @@ var Ut = () => {
1246
1402
  error: i,
1247
1403
  failedStep: o
1248
1404
  };
1249
- }, Kt = "storage.mintUploadTicket", qt = "storage.mintPresignedUpload", Jt = "storage.finalizeUpload", Yt = "storage.beginResumableUpload", Xt = "storage.beginMultipartUpload", Zt = "storage.signMultipartPart", Qt = "storage.completeMultipartUpload", $t = "storage.abortMultipartUpload", en = (e, t, n, r) => new Promise((i, a) => {
1405
+ }, an = "storage.mintUploadTicket", on = "storage.mintPresignedUpload", sn = "storage.finalizeUpload", cn = "storage.beginResumableUpload", ln = "storage.beginMultipartUpload", un = "storage.signMultipartPart", dn = "storage.completeMultipartUpload", fn = "storage.abortMultipartUpload", pn = (e, t, n, r) => new Promise((i, a) => {
1250
1406
  let o = new XMLHttpRequest();
1251
1407
  if (o.open("PUT", e), o.upload.onprogress = (e) => {
1252
1408
  e.lengthComputable && n(e.loaded / e.total);
@@ -1260,7 +1416,7 @@ var Ut = () => {
1260
1416
  return;
1261
1417
  }
1262
1418
  r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
1263
- }), tn = (e, t, n, r, i, a) => new Promise((o, s) => {
1419
+ }), mn = (e, t, n, r, i, a) => new Promise((o, s) => {
1264
1420
  let c = new XMLHttpRequest();
1265
1421
  if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
1266
1422
  e.lengthComputable && r(e.loaded / e.total);
@@ -1278,7 +1434,7 @@ var Ut = () => {
1278
1434
  return;
1279
1435
  }
1280
1436
  i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
1281
- }), nn = (e, t, n, r, i) => new Promise((a, o) => {
1437
+ }), hn = (e, t, n, r, i) => new Promise((a, o) => {
1282
1438
  let s = new XMLHttpRequest();
1283
1439
  if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1284
1440
  e.lengthComputable && r(e.loaded / e.total);
@@ -1289,7 +1445,7 @@ var Ut = () => {
1289
1445
  return;
1290
1446
  }
1291
1447
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1292
- }), rn = (e, t, n, r, i) => new Promise((a, o) => {
1448
+ }), gn = (e, t, n, r, i) => new Promise((a, o) => {
1293
1449
  let s = new XMLHttpRequest();
1294
1450
  if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
1295
1451
  e.lengthComputable && r(e.loaded / e.total);
@@ -1305,13 +1461,13 @@ var Ut = () => {
1305
1461
  return;
1306
1462
  }
1307
1463
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
1308
- }), an = (e, t = {}) => {
1464
+ }), _n = (e, t = {}) => {
1309
1465
  let { runtime: r, client: i, inspectBaseUrl: a, errorBus: l } = N(e), [u, d] = c(0), [f, p] = c("idle"), [m, h] = c(void 0), g = s(null), _ = n(() => {
1310
1466
  d(0), p("idle"), h(void 0);
1311
1467
  }, []), v = n(() => {
1312
1468
  g.current?.abort();
1313
1469
  }, []), y = n((e) => /^https?:\/\//.test(e) ? e : `${a}${e}`, [a]), b = n(async (e, n, a, o) => {
1314
- let s = Math.max(0, n.retries ?? t.retries ?? 1), c = (e instanceof File, e.type) || "application/octet-stream", l = e instanceof File ? e.name : "blob", u = n.visibility ?? t.visibility, d = n.key ?? t.key, f = n.folder ?? t.folder, p = n.tags ?? t.tags, m = {
1470
+ let s = Math.max(0, n.retries ?? t.retries ?? 1), c = (e instanceof File, e.type || "application/octet-stream"), l = e instanceof File ? e.name : "blob", u = n.visibility ?? t.visibility, d = n.key ?? t.key, f = n.folder ?? t.folder, p = n.tags ?? t.tags, m = {
1315
1471
  ...u ? { visibility: u } : {},
1316
1472
  ...f ? { folder: f } : {},
1317
1473
  ...p ? { tags: p } : {},
@@ -1326,14 +1482,14 @@ var Ut = () => {
1326
1482
  ...e.width === void 0 ? {} : { width: e.width },
1327
1483
  ...e.height === void 0 ? {} : { height: e.height }
1328
1484
  }), g = async () => {
1329
- let s = n.mintTag ?? t.mintTag ?? Kt, l = B(i, s), u = await H(r, l({
1485
+ let s = n.mintTag ?? t.mintTag ?? an, l = B(i, s), u = await H(r, l({
1330
1486
  contentType: c,
1331
1487
  ...m,
1332
1488
  ...d ? { key: d } : {}
1333
- })), f = await rn(y(u.uploadUrl), c, e, o, a);
1489
+ })), f = await gn(y(u.uploadUrl), c, e, o, a);
1334
1490
  return h(f);
1335
1491
  }, _ = async () => {
1336
- let s = n.presignMintTag ?? t.presignMintTag ?? qt, l = n.finalizeTag ?? t.finalizeTag ?? Jt, u;
1492
+ let s = n.presignMintTag ?? t.presignMintTag ?? on, l = n.finalizeTag ?? t.finalizeTag ?? sn, u;
1337
1493
  try {
1338
1494
  let e = B(i, s);
1339
1495
  u = await H(r, e({
@@ -1343,11 +1499,11 @@ var Ut = () => {
1343
1499
  } catch {
1344
1500
  return null;
1345
1501
  }
1346
- await nn(u.uploadUrl, c, e, o, a);
1502
+ await hn(u.uploadUrl, c, e, o, a);
1347
1503
  let d = B(i, l), f = await H(r, d({ finalizeToken: u.finalizeToken }));
1348
1504
  return h(f);
1349
1505
  }, v = async () => {
1350
- let s = n.beginResumableTag ?? t.beginResumableTag ?? Yt, l = B(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await H(r, l({
1506
+ let s = n.beginResumableTag ?? t.beginResumableTag ?? cn, l = B(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await H(r, l({
1351
1507
  contentType: c,
1352
1508
  size: u,
1353
1509
  ...m,
@@ -1358,7 +1514,7 @@ var Ut = () => {
1358
1514
  for (;;) {
1359
1515
  if (a.aborted) throw new DOMException("upload aborted", "AbortError");
1360
1516
  try {
1361
- let e = await tn(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
1517
+ let e = await mn(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
1362
1518
  s && (x = e);
1363
1519
  break;
1364
1520
  } catch (e) {
@@ -1370,7 +1526,7 @@ var Ut = () => {
1370
1526
  if (!x) throw Error("resumable upload produced no final reply");
1371
1527
  return h(x);
1372
1528
  }, b = async () => {
1373
- let s = n.multipartBeginTag ?? t.multipartBeginTag ?? Xt, u = n.multipartSignTag ?? t.multipartSignTag ?? Zt, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? Qt, f = n.multipartAbortTag ?? t.multipartAbortTag ?? $t, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
1529
+ let s = n.multipartBeginTag ?? t.multipartBeginTag ?? ln, u = n.multipartSignTag ?? t.multipartSignTag ?? un, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? dn, f = n.multipartAbortTag ?? t.multipartAbortTag ?? fn, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
1374
1530
  try {
1375
1531
  let e = B(i, s);
1376
1532
  g = await H(r, e({
@@ -1392,7 +1548,7 @@ var Ut = () => {
1392
1548
  let { url: e } = await H(r, _({
1393
1549
  multipartToken: g.multipartToken,
1394
1550
  partNumber: c
1395
- })), t = await en(e, s, (e) => o((T + e * l) / p), a);
1551
+ })), t = await pn(e, s, (e) => o((T + e * l) / p), a);
1396
1552
  w.push({
1397
1553
  partNumber: c,
1398
1554
  etag: t
@@ -1466,7 +1622,7 @@ var Ut = () => {
1466
1622
  } catch (e) {
1467
1623
  throw p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
1468
1624
  source: "action",
1469
- tag: n.mintTag ?? t.mintTag ?? Kt,
1625
+ tag: n.mintTag ?? t.mintTag ?? an,
1470
1626
  error: e
1471
1627
  }), e;
1472
1628
  }
@@ -1492,7 +1648,7 @@ var Ut = () => {
1492
1648
  } catch (e) {
1493
1649
  throw r.abort(), p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
1494
1650
  source: "action",
1495
- tag: n.mintTag ?? t.mintTag ?? Kt,
1651
+ tag: n.mintTag ?? t.mintTag ?? an,
1496
1652
  error: e
1497
1653
  }), e;
1498
1654
  }
@@ -1537,7 +1693,7 @@ var Ut = () => {
1537
1693
  w,
1538
1694
  T
1539
1695
  ]);
1540
- }, J = async (e) => {
1696
+ }, X = async (e) => {
1541
1697
  let t = B(e.client, e.tag), n = p.currentSpan.pipe(p.tap((t) => p.sync(() => {
1542
1698
  D({
1543
1699
  traceId: t.traceId,
@@ -1550,7 +1706,7 @@ var Ut = () => {
1550
1706
  "rpc.tag": e.tag
1551
1707
  } }));
1552
1708
  return H(e.runtime, n);
1553
- }, on = (e, t) => {
1709
+ }, vn = (e, t) => {
1554
1710
  let { runtime: r, client: i, descriptors: a } = N(e);
1555
1711
  if (process.env.NODE_ENV !== "production") {
1556
1712
  let n = a[t]?.kind;
@@ -1559,7 +1715,7 @@ var Ut = () => {
1559
1715
  let [s, l] = c(!1), [u, d] = c(void 0), [f, p] = c(void 0), m = n(async (n) => {
1560
1716
  l(!0), d(void 0);
1561
1717
  try {
1562
- let a = await J({
1718
+ let a = await X({
1563
1719
  apiName: e,
1564
1720
  runtime: r,
1565
1721
  client: i,
@@ -1579,7 +1735,7 @@ var Ut = () => {
1579
1735
  i,
1580
1736
  t
1581
1737
  ]), h = n(async (t) => {
1582
- await J({
1738
+ await X({
1583
1739
  apiName: e,
1584
1740
  runtime: r,
1585
1741
  client: i,
@@ -1592,7 +1748,7 @@ var Ut = () => {
1592
1748
  r,
1593
1749
  i
1594
1750
  ]), g = n(async (t) => {
1595
- await J({
1751
+ await X({
1596
1752
  apiName: e,
1597
1753
  runtime: r,
1598
1754
  client: i,
@@ -1604,7 +1760,7 @@ var Ut = () => {
1604
1760
  e,
1605
1761
  r,
1606
1762
  i
1607
- ]), _ = n(async (t, n, a) => J({
1763
+ ]), _ = n(async (t, n, a) => X({
1608
1764
  apiName: e,
1609
1765
  runtime: r,
1610
1766
  client: i,
@@ -1619,7 +1775,7 @@ var Ut = () => {
1619
1775
  e,
1620
1776
  r,
1621
1777
  i
1622
- ]), v = n(async (t, n, a, o) => J({
1778
+ ]), v = n(async (t, n, a, o) => X({
1623
1779
  apiName: e,
1624
1780
  runtime: r,
1625
1781
  client: i,
@@ -1655,11 +1811,11 @@ var Ut = () => {
1655
1811
  u,
1656
1812
  f
1657
1813
  ]);
1658
- }, sn = (e) => {
1814
+ }, yn = (e) => {
1659
1815
  let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o) => {
1660
1816
  a(!0), l(void 0);
1661
1817
  try {
1662
- let a = await J({
1818
+ let a = await X({
1663
1819
  apiName: e,
1664
1820
  runtime: t,
1665
1821
  client: r,
@@ -1693,11 +1849,11 @@ var Ut = () => {
1693
1849
  s,
1694
1850
  u
1695
1851
  ]);
1696
- }, cn = (e) => {
1852
+ }, bn = (e) => {
1697
1853
  let { runtime: t, client: r } = N(e), [i, a] = c(!1), [s, l] = c(void 0), [u, d] = c(void 0), f = n(async (n, i, o, s) => {
1698
1854
  a(!0), l(void 0);
1699
1855
  try {
1700
- let a = await J({
1856
+ let a = await X({
1701
1857
  apiName: e,
1702
1858
  runtime: t,
1703
1859
  client: r,
@@ -1732,7 +1888,7 @@ var Ut = () => {
1732
1888
  s,
1733
1889
  u
1734
1890
  ]);
1735
- }, ln = (e, t) => {
1891
+ }, xn = (e, t) => {
1736
1892
  let n = V(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
1737
1893
  return n.loading || n.idle ? {
1738
1894
  ...n,
@@ -1741,7 +1897,7 @@ var Ut = () => {
1741
1897
  ...n,
1742
1898
  run: n.data[0]
1743
1899
  };
1744
- }, un = (e, t = {}, n = {}) => {
1900
+ }, Sn = (e, t = {}, n = {}) => {
1745
1901
  let r = V(e, "__voltro.workflow.runs", t, n);
1746
1902
  return r.loading || r.idle ? {
1747
1903
  ...r,
@@ -1750,7 +1906,7 @@ var Ut = () => {
1750
1906
  ...r,
1751
1907
  runs: r.data
1752
1908
  };
1753
- }, dn = (e, t) => {
1909
+ }, Cn = (e, t) => {
1754
1910
  let n = V(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
1755
1911
  return n.loading || n.idle ? {
1756
1912
  ...n,
@@ -1759,7 +1915,7 @@ var Ut = () => {
1759
1915
  ...n,
1760
1916
  steps: n.data
1761
1917
  };
1762
- }, fn = (e, t) => {
1918
+ }, wn = (e, t) => {
1763
1919
  let n = V(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
1764
1920
  return n.loading || n.idle ? {
1765
1921
  ...n,
@@ -1768,7 +1924,7 @@ var Ut = () => {
1768
1924
  ...n,
1769
1925
  events: n.data
1770
1926
  };
1771
- }, pn = fn, mn = (e, t = {}, n = {}) => {
1927
+ }, Tn = wn, En = (e, t = {}, n = {}) => {
1772
1928
  let r = V(e, "__voltro.workflow.domainEvents", t, n);
1773
1929
  return r.loading || r.idle ? {
1774
1930
  ...r,
@@ -1777,7 +1933,7 @@ var Ut = () => {
1777
1933
  ...r,
1778
1934
  events: r.data
1779
1935
  };
1780
- }, hn = (e, t) => {
1936
+ }, Dn = (e, t) => {
1781
1937
  let n = V(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
1782
1938
  return n.loading || n.idle ? {
1783
1939
  ...n,
@@ -1786,42 +1942,42 @@ var Ut = () => {
1786
1942
  ...n,
1787
1943
  deliveries: n.data
1788
1944
  };
1789
- }, gn = (e, t) => {
1945
+ }, On = (e, t) => {
1790
1946
  let n = e.payload;
1791
1947
  if (!n || typeof n != "object") return;
1792
1948
  let r = n[t];
1793
1949
  return typeof r == "string" ? r : void 0;
1794
- }, _n = (e) => {
1950
+ }, kn = (e) => {
1795
1951
  let t = e.payload;
1796
1952
  if (!t || typeof t != "object") return;
1797
1953
  let n = t.updateId;
1798
1954
  return typeof n == "string" ? n : void 0;
1799
- }, vn = (e) => {
1955
+ }, An = (e) => {
1800
1956
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
1801
1957
  for (let r of e) if (r.eventType === "signal-received") {
1802
- let e = gn(r, "signalName");
1958
+ let e = On(r, "signalName");
1803
1959
  e && t.add(e);
1804
1960
  } else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
1805
- let e = _n(r);
1961
+ let e = kn(r);
1806
1962
  e && n.add(e);
1807
1963
  }
1808
1964
  for (let r = e.length - 1; r >= 0; --r) {
1809
1965
  let i = e[r];
1810
1966
  if (i.eventType === "signal-awaited") {
1811
- let e = gn(i, "signalName");
1967
+ let e = On(i, "signalName");
1812
1968
  if (e && !t.has(e)) return {
1813
1969
  name: e,
1814
1970
  kind: "signal"
1815
1971
  };
1816
1972
  } else if (i.eventType === "update-requested") {
1817
- let e = _n(i), t = gn(i, "updateName");
1973
+ let e = kn(i), t = On(i, "updateName");
1818
1974
  if (t && (!e || !n.has(e))) return {
1819
1975
  name: t,
1820
1976
  kind: "update"
1821
1977
  };
1822
1978
  }
1823
1979
  }
1824
- }, yn = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), bn = (e, t) => {
1980
+ }, jn = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Mn = (e, t) => {
1825
1981
  if (!e || e.status !== "failed") return;
1826
1982
  let n = t.find((e) => e.status === "failed");
1827
1983
  return {
@@ -1829,8 +1985,8 @@ var Ut = () => {
1829
1985
  message: e.errorMessage,
1830
1986
  step: n?.stepName
1831
1987
  };
1832
- }, xn = (e, t) => {
1833
- let r = ln(e, t), i = dn(e, t), a = fn(e, t), s = on(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
1988
+ }, Nn = (e, t) => {
1989
+ let r = xn(e, t), i = Cn(e, t), a = wn(e, t), s = vn(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = a.events, d = n(async () => {
1834
1990
  if (!c) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
1835
1991
  await s.cancel({
1836
1992
  workflowName: c.tag,
@@ -1854,9 +2010,9 @@ var Ut = () => {
1854
2010
  status: c?.status,
1855
2011
  steps: l,
1856
2012
  events: u,
1857
- currentStep: yn(l),
1858
- waitingFor: c?.status === "suspended" ? vn(u) : void 0,
1859
- error: bn(c, l),
2013
+ currentStep: jn(l),
2014
+ waitingFor: c?.status === "suspended" ? An(u) : void 0,
2015
+ error: Mn(c, l),
1860
2016
  traceId: c?.traceId,
1861
2017
  loading: r.data === void 0,
1862
2018
  cancel: d,
@@ -1873,7 +2029,7 @@ var Ut = () => {
1873
2029
  p,
1874
2030
  m
1875
2031
  ]);
1876
- }, Sn = (e, t) => {
2032
+ }, Pn = (e, t) => {
1877
2033
  let { runtime: r, client: i } = N(e), [a, o] = c([]), [l, d] = c("idle"), [f, m] = c(void 0), g = s(null), _ = n(() => {
1878
2034
  let e = g.current;
1879
2035
  e && (g.current = null, r.runFork(h.interrupt(e)), d((e) => e === "streaming" ? "idle" : e));
@@ -1901,7 +2057,7 @@ var Ut = () => {
1901
2057
  ]),
1902
2058
  cancel: _
1903
2059
  };
1904
- }, Cn = (e, t, n, r) => {
2060
+ }, Fn = (e, t, n, r) => {
1905
2061
  let i = 0, a = !1, o = (e) => p.sync(() => {
1906
2062
  e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
1907
2063
  }), s = (e, t, a) => {
@@ -1924,15 +2080,15 @@ var Ut = () => {
1924
2080
  }));
1925
2081
  });
1926
2082
  return c(0);
1927
- }, wn = (e) => {
2083
+ }, In = (e) => {
1928
2084
  let t = e?._tag;
1929
2085
  return t === "done" || t === "error";
1930
- }, Tn = (e, t, r = {}) => {
2086
+ }, Ln = (e, t, r = {}) => {
1931
2087
  let { runtime: i, client: a } = N(e), [o, l] = c([]), [u, d] = c("idle"), [f, p] = c(0), [m, g] = c(void 0), _ = s(null), v = {
1932
2088
  maxReconnects: r.maxReconnects ?? 6,
1933
2089
  backoffMs: r.backoffMs ?? 400,
1934
2090
  maxBackoffMs: r.maxBackoffMs ?? 8e3,
1935
- isTerminal: r.isTerminal ?? wn
2091
+ isTerminal: r.isTerminal ?? In
1936
2092
  }, y = n(() => {
1937
2093
  let e = _.current;
1938
2094
  e && (_.current = null, i.runFork(h.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
@@ -1951,7 +2107,7 @@ var Ut = () => {
1951
2107
  onReconnect: () => p((e) => e + 1),
1952
2108
  onError: g
1953
2109
  };
1954
- _.current = i.runFork(Cn(r, e, o, v));
2110
+ _.current = i.runFork(Fn(r, e, o, v));
1955
2111
  }, [
1956
2112
  i,
1957
2113
  a,
@@ -1963,13 +2119,13 @@ var Ut = () => {
1963
2119
  ]),
1964
2120
  cancel: y
1965
2121
  };
1966
- }, En = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), Dn = (e) => {
2122
+ }, Rn = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), zn = (e) => {
1967
2123
  for (let t = e.length - 1; t >= 0; --t) {
1968
2124
  let n = e[t];
1969
2125
  if (n.role === "user" && n.content) return n.content;
1970
2126
  }
1971
- }, On = (e, t, r) => {
1972
- let { threadId: i } = r, a = V(e, `${t}.messages`, { threadId: i }), s = q(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(En), [a.data]), l = n((e, t = {}) => s.run({
2127
+ }, Bn = (e, t, r) => {
2128
+ let { threadId: i } = r, a = V(e, `${t}.messages`, { threadId: i }), s = q(e, `${t}.send`), c = o(() => [...a.data ?? []].sort(Rn), [a.data]), l = n((e, t = {}) => s.run({
1973
2129
  threadId: i,
1974
2130
  order: a.data?.length ?? 0,
1975
2131
  prompt: e,
@@ -1979,7 +2135,7 @@ var Ut = () => {
1979
2135
  i,
1980
2136
  a.data
1981
2137
  ]), u = n(() => {
1982
- let e = Dn(c);
2138
+ let e = zn(c);
1983
2139
  return e === void 0 ? void 0 : l(e);
1984
2140
  }, [c, l]);
1985
2141
  return o(() => ({
@@ -1999,8 +2155,8 @@ var Ut = () => {
1999
2155
  l,
2000
2156
  u
2001
2157
  ]);
2002
- }, kn = (e, t) => {
2003
- let { events: r, status: i, error: l, start: u, cancel: d } = Sn(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
2158
+ }, Vn = (e, t) => {
2159
+ let { events: r, status: i, error: l, start: u, cancel: d } = Pn(e, t), [f, p] = c([]), m = s(null), h = o(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
2004
2160
  return a(() => {
2005
2161
  if (i !== "done" || m.current === null) return;
2006
2162
  let e = m.current;
@@ -2026,7 +2182,7 @@ var Ut = () => {
2026
2182
  }, [u]),
2027
2183
  cancel: d
2028
2184
  };
2029
- }, An = (e, t) => {
2185
+ }, Hn = (e, t) => {
2030
2186
  let r = q(e, t), [i, a] = c(void 0), s = n(async (e) => {
2031
2187
  let t = await r.run({ question: e });
2032
2188
  return a(t), t;
@@ -2044,43 +2200,43 @@ var Ut = () => {
2044
2200
  r.error,
2045
2201
  l
2046
2202
  ]);
2047
- }, jn = (e) => {
2203
+ }, Un = (e) => {
2048
2204
  let { cache: t, runtime: r } = N(e);
2049
2205
  return n(() => {
2050
2206
  t.refreshAll(r);
2051
2207
  }, [t, r]);
2052
- }, Mn = /* @__PURE__ */ new Set(), Nn = (e) => {
2053
- for (let t of Mn) try {
2208
+ }, Wn = /* @__PURE__ */ new Set(), Gn = (e) => {
2209
+ for (let t of Wn) try {
2054
2210
  t(e);
2055
2211
  } catch {}
2056
- }, Pn = (e) => (Mn.add(e), () => {
2057
- Mn.delete(e);
2058
- }), Fn = (e, t) => {
2059
- Nn({
2212
+ }, Kn = (e) => (Wn.add(e), () => {
2213
+ Wn.delete(e);
2214
+ }), qn = (e, t) => {
2215
+ Gn({
2060
2216
  error: e,
2061
2217
  source: "manual",
2062
2218
  ...t ? { context: t } : {}
2063
2219
  });
2064
- }, In = (e, t) => {
2220
+ }, Jn = (e, t) => {
2065
2221
  let { errorBus: n } = N(e);
2066
2222
  a(() => n.on(t), [n, t]);
2067
- }, Ln = "#/$defs/", Rn = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Y = (e, t) => {
2223
+ }, Yn = "#/$defs/", Xn = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Z = (e, t) => {
2068
2224
  let n = e;
2069
2225
  for (let e = 0; e < 8; e += 1) {
2070
2226
  let e = n.$ref;
2071
- if (typeof e != "string" || !e.startsWith(Ln)) return n;
2227
+ if (typeof e != "string" || !e.startsWith(Yn)) return n;
2072
2228
  let r = t[e.slice(8)];
2073
2229
  if (!r || typeof r != "object") return n;
2074
2230
  n = r;
2075
2231
  }
2076
2232
  return n;
2077
- }, zn = (e) => {
2233
+ }, Zn = (e) => {
2078
2234
  if (!e || typeof e != "object") return !1;
2079
2235
  let t = e;
2080
2236
  if (t.type === "null" || t.const === null) return !0;
2081
2237
  let n = t.enum;
2082
2238
  return Array.isArray(n) && n.length === 1 && n[0] === null;
2083
- }, Bn = (e, t) => {
2239
+ }, Qn = (e, t) => {
2084
2240
  let n = e.type;
2085
2241
  if (Array.isArray(n) && n.includes("null")) {
2086
2242
  let t = n.filter((e) => e !== "null");
@@ -2095,9 +2251,9 @@ var Ut = () => {
2095
2251
  for (let n of ["anyOf", "oneOf"]) {
2096
2252
  let r = e[n];
2097
2253
  if (!Array.isArray(r)) continue;
2098
- let i = r.filter((e) => !zn(e));
2254
+ let i = r.filter((e) => !Zn(e));
2099
2255
  if (i.length !== r.length) return i.length === 1 ? {
2100
- node: Y(i[0], t),
2256
+ node: Z(i[0], t),
2101
2257
  nullable: !0
2102
2258
  } : {
2103
2259
  node: {
@@ -2111,14 +2267,14 @@ var Ut = () => {
2111
2267
  node: e,
2112
2268
  nullable: !1
2113
2269
  };
2114
- }, Vn = (e) => e.map((e) => ({
2270
+ }, $n = (e) => e.map((e) => ({
2115
2271
  value: String(e),
2116
- label: Rn(String(e))
2117
- })), Hn = (e) => {
2272
+ label: Xn(String(e))
2273
+ })), er = (e) => {
2118
2274
  let t = e.enum;
2119
2275
  if (Array.isArray(t) && t.length > 0) return {
2120
2276
  widget: "select",
2121
- options: Vn(t)
2277
+ options: $n(t)
2122
2278
  };
2123
2279
  let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
2124
2280
  switch (r) {
@@ -2129,38 +2285,38 @@ var Ut = () => {
2129
2285
  case "array": return { widget: "multi-select" };
2130
2286
  default: return { widget: "custom" };
2131
2287
  }
2132
- }, Un = (e, t, n) => Object.entries(e).map(([e, r]) => {
2133
- let { node: i, nullable: a } = Bn(Y(r, n), n), o = Y(i, n), { widget: s, options: c } = Hn(o);
2288
+ }, tr = (e, t, n) => Object.entries(e).map(([e, r]) => {
2289
+ let { node: i, nullable: a } = Qn(Z(r, n), n), o = Z(i, n), { widget: s, options: c } = er(o);
2134
2290
  return {
2135
2291
  name: e,
2136
- label: Rn(e),
2292
+ label: Xn(e),
2137
2293
  widget: s,
2138
2294
  required: t.has(e),
2139
2295
  nullable: a,
2140
2296
  ...c ? { options: c } : {},
2141
2297
  jsonSchema: o
2142
2298
  };
2143
- }), Wn = (e) => {
2299
+ }), nr = (e) => {
2144
2300
  try {
2145
2301
  return g.make(e);
2146
2302
  } catch {
2147
2303
  return;
2148
2304
  }
2149
- }, X = (e) => {
2150
- let t = Wn(e);
2305
+ }, Q = (e) => {
2306
+ let t = nr(e);
2151
2307
  if (t === void 0) return [];
2152
- let n = t.$defs ?? {}, r = Y(t, n), i = r.properties;
2153
- return i ? Un(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
2154
- }, Gn = (e) => {
2155
- let t = Wn(e);
2308
+ let n = t.$defs ?? {}, r = Z(t, n), i = r.properties;
2309
+ return i ? tr(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
2310
+ }, rr = (e) => {
2311
+ let t = nr(e);
2156
2312
  if (t === void 0) return [];
2157
- let n = t.$defs ?? {}, r = Y(t, n);
2313
+ let n = t.$defs ?? {}, r = Z(t, n);
2158
2314
  if (r.type !== "array") return [];
2159
2315
  let i = r.items;
2160
2316
  if (!i || typeof i != "object") return [];
2161
- let a = Y(i, n), o = a.properties;
2162
- return o ? Un(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
2163
- }, Kn = (e, t) => {
2317
+ let a = Z(i, n), o = a.properties;
2318
+ return o ? tr(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
2319
+ }, ir = (e, t) => {
2164
2320
  let n = b.decodeUnknownEither(e, { errors: "all" })(t);
2165
2321
  if (n._tag === "Right") return {
2166
2322
  valid: !0,
@@ -2175,10 +2331,10 @@ var Ut = () => {
2175
2331
  valid: !1,
2176
2332
  errors: r
2177
2333
  };
2178
- }, qn = (e, t, r) => {
2334
+ }, ar = (e, t, r) => {
2179
2335
  let i = N(e), a = K(e, t), l = r.schema ?? i.descriptors[t]?.input;
2180
2336
  process.env.NODE_ENV !== "production" && l === void 0 && console.error(`[@voltro/client] useFormBinding('${e}', '${t}'): no input schema. Pass options.schema, or mount the descriptor so its input reaches the client. Rendering no fields; submit skips client-side validation.`);
2181
- let u = o(() => l ? X(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
2337
+ let u = o(() => l ? Q(l) : [], [l]), d = s(r.defaults ?? {}), [f, p] = c(d.current), [m, h] = c({}), g = n((e, t) => {
2182
2338
  p((n) => ({
2183
2339
  ...n,
2184
2340
  [e]: t
@@ -2192,7 +2348,7 @@ var Ut = () => {
2192
2348
  p(d.current), h({});
2193
2349
  }, []), y = n(async () => {
2194
2350
  if (l !== void 0) {
2195
- let e = Kn(l, f);
2351
+ let e = ir(l, f);
2196
2352
  if (h(e.errors), !e.valid) return;
2197
2353
  }
2198
2354
  return a.mutate(f);
@@ -2205,7 +2361,7 @@ var Ut = () => {
2205
2361
  fields: u,
2206
2362
  values: f,
2207
2363
  errors: m,
2208
- isValid: o(() => l === void 0 || Kn(l, f).valid, [l, f]),
2364
+ isValid: o(() => l === void 0 || ir(l, f).valid, [l, f]),
2209
2365
  pending: a.pending,
2210
2366
  submitError: a.error,
2211
2367
  data: a.data,
@@ -2214,13 +2370,13 @@ var Ut = () => {
2214
2370
  reset: v,
2215
2371
  submit: y
2216
2372
  };
2217
- }, Jn = (e, t, n) => e.map((e) => {
2373
+ }, or = (e, t, n) => e.map((e) => {
2218
2374
  let r = String(e[n] ?? ""), i = e[t];
2219
2375
  return {
2220
2376
  value: r,
2221
2377
  label: i == null ? r : String(i)
2222
2378
  };
2223
- }), Yn = (e, t, r = {}) => {
2379
+ }), sr = (e, t, r = {}) => {
2224
2380
  let i = r.debounceMs ?? 200, s = r.labelField ?? "name", l = r.valueField ?? "id", u = r.input ?? ((e) => ({ q: e })), [d, f] = c(r.initialTerm ?? ""), [p, m] = c(d);
2225
2381
  a(() => {
2226
2382
  if (d === p) return;
@@ -2231,7 +2387,7 @@ var Ut = () => {
2231
2387
  p,
2232
2388
  i
2233
2389
  ]);
2234
- let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => Jn(g.data ?? [], s, l), [
2390
+ let h = r.skipUntilTerm === !0 && p.trim() === "", g = V(e, t, o(() => u(p), [u, p]), { skip: h }), _ = o(() => or(g.data ?? [], s, l), [
2235
2391
  g.data,
2236
2392
  s,
2237
2393
  l
@@ -2242,13 +2398,13 @@ var Ut = () => {
2242
2398
  term: d,
2243
2399
  search: v
2244
2400
  };
2245
- }, Xn = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Zn = (e, t, r = {}) => {
2401
+ }, cr = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, lr = (e, t, r = {}) => {
2246
2402
  let i = N(e), [a, s] = c(r.pageSize), l = V(e, t, o(() => a === void 0 ? r.input ?? {} : {
2247
2403
  ...r.input,
2248
2404
  limit: a
2249
2405
  }, [r.input, a])), u = i.descriptors[t]?.output, d = n(() => {
2250
2406
  r.pageSize !== void 0 && s((e) => (e ?? r.pageSize) + r.pageSize);
2251
- }, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : Gn(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
2407
+ }, [r.pageSize]), f = o(() => r.columns ?? (u === void 0 ? [] : rr(u)), [r.columns, u]), [p, m] = c(r.initialSort), h = n((e) => {
2252
2408
  m((t) => t?.column === e ? {
2253
2409
  column: e,
2254
2410
  direction: t.direction === "asc" ? "desc" : "asc"
@@ -2263,7 +2419,7 @@ var Ut = () => {
2263
2419
  let e = l.data ?? [];
2264
2420
  if (p === void 0) return e;
2265
2421
  let t = p.direction === "asc" ? 1 : -1;
2266
- return [...e].sort((e, n) => Xn(e[p.column], n[p.column]) * t);
2422
+ return [...e].sort((e, n) => cr(e[p.column], n[p.column]) * t);
2267
2423
  }, [l.data, p]),
2268
2424
  loading: l.data === void 0,
2269
2425
  error: l.error,
@@ -2272,13 +2428,13 @@ var Ut = () => {
2272
2428
  loadMore: d,
2273
2429
  hasMore: a !== void 0 && (l.data?.length ?? 0) >= a
2274
2430
  };
2275
- }, Qn = (e, t, n, r) => {
2431
+ }, ur = (e, t, n, r) => {
2276
2432
  let i = e.replace(/\/$/, ""), a = new URLSearchParams({
2277
2433
  table: t,
2278
2434
  id: n
2279
2435
  });
2280
2436
  return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
2281
- }, $n = Qn, er = (e, t, n, r) => {
2437
+ }, dr = ur, fr = (e, t, n, r) => {
2282
2438
  let { inspectBaseUrl: i } = N(e), [o, s] = c({
2283
2439
  data: void 0,
2284
2440
  loading: !0,
@@ -2291,7 +2447,7 @@ var Ut = () => {
2291
2447
  loading: !0,
2292
2448
  error: void 0
2293
2449
  });
2294
- let a = Qn(i ?? "", t, n, r);
2450
+ let a = ur(i ?? "", t, n, r);
2295
2451
  return fetch(a).then(async (e) => {
2296
2452
  if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
2297
2453
  return await e.json();
@@ -2317,11 +2473,11 @@ var Ut = () => {
2317
2473
  n,
2318
2474
  r
2319
2475
  ]), o;
2320
- }, tr = "admin:full", nr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), rr = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), ir = e({ scopes: [] });
2321
- function ar(e) {
2322
- return t(ir.Provider, { value: { scopes: e.scopes } }, e.children);
2476
+ }, pr = "admin:full", mr = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), hr = (e, t) => t.length === 0 || e.includes("admin:full") ? !0 : t.some((t) => e.includes(t)), gr = e({ scopes: [] });
2477
+ function _r(e) {
2478
+ return t(gr.Provider, { value: { scopes: e.scopes } }, e.children);
2323
2479
  }
2324
- var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e), cr = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, lr = (e) => {
2480
+ var $ = () => r(gr), vr = (e) => mr($().scopes, e), yr = (e) => hr($().scopes, e), br = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, xr = (e) => {
2325
2481
  let { inspectBaseUrl: t } = N(e), [n, r] = c({
2326
2482
  manifest: void 0,
2327
2483
  loading: !0,
@@ -2333,7 +2489,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2333
2489
  manifest: void 0,
2334
2490
  loading: !0,
2335
2491
  error: void 0
2336
- }), fetch(cr(t ?? "")).then(async (e) => {
2492
+ }), fetch(br(t ?? "")).then(async (e) => {
2337
2493
  if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
2338
2494
  return await e.json();
2339
2495
  }).then((t) => {
@@ -2352,7 +2508,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2352
2508
  e = !0;
2353
2509
  };
2354
2510
  }, [e, t]), n;
2355
- }, ur = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), dr = (e, t) => {
2511
+ }, Sr = (e, t) => t.scope.length === 0 || (t.mode === "any" ? t.scope.some((t) => e.includes(t)) : t.scope.every((t) => e.includes(t))), Cr = (e, t) => {
2356
2512
  if (e === void 0) return "unknown";
2357
2513
  if (t.includes("admin:full") || e.length === 0) return "allowed";
2358
2514
  let n = !1;
@@ -2361,7 +2517,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2361
2517
  n = !0;
2362
2518
  continue;
2363
2519
  }
2364
- if (!ur(t, r)) {
2520
+ if (!Sr(t, r)) {
2365
2521
  if (r.resourceScoped) {
2366
2522
  n = !0;
2367
2523
  continue;
@@ -2370,13 +2526,13 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2370
2526
  }
2371
2527
  }
2372
2528
  return n ? "unknown" : "allowed";
2373
- }, fr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), pr = (e) => {
2529
+ }, wr = (e) => (e ?? []).flatMap((e) => e.kind === "scope" ? [...e.scope] : []), Tr = (e) => {
2374
2530
  for (let t of e ?? []) if (t.kind === "open") return t.reason;
2375
- }, mr = (e) => dr(e, Z().scopes), hr = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, gr = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Q = (e) => e === void 0 ? {} : {
2531
+ }, Er = (e) => Cr(e, $().scopes), Dr = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Or = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, kr = (e) => e === void 0 ? {} : {
2376
2532
  tag: e.tag,
2377
2533
  ...e.guards === void 0 ? {} : { guards: e.guards }
2378
- }, _r = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2379
- let n = e.procedures.find((e) => e.kind === "query" && hr(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && gr(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && gr(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && gr(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
2534
+ }, Ar = (e) => e.tables.filter((e) => !e.framework).map((t) => {
2535
+ let n = e.procedures.find((e) => e.kind === "query" && Dr(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Or(e, t.name, "delete")), o = t.pkColumn ?? (t.columns.some((e) => e.name === "id") ? "id" : void 0);
2380
2536
  return {
2381
2537
  table: t.name,
2382
2538
  columns: t.columns.filter((e) => e.serverOnly !== !0),
@@ -2385,17 +2541,17 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2385
2541
  reactive: t.reactive,
2386
2542
  ...o === void 0 ? {} : { pkColumn: o },
2387
2543
  editable: (t.editable ?? !0) && o !== void 0,
2388
- list: Q(n),
2389
- create: Q(r),
2390
- update: Q(i),
2391
- delete: Q(a)
2544
+ list: kr(n),
2545
+ create: kr(r),
2546
+ update: kr(i),
2547
+ delete: kr(a)
2392
2548
  };
2393
- }), vr = (e) => {
2549
+ }), jr = (e) => {
2394
2550
  let [t, r] = c([]), [i, a] = c([]), s = n((e) => {
2395
2551
  r((t) => [...t, e]), a([]);
2396
2552
  }, []), l = n(async () => {
2397
2553
  let n = t[t.length - 1];
2398
- n === void 0 || n.blockedBy !== void 0 || (await e.onUndo(n.invocationId), r((e) => e.slice(0, -1)), a((e) => [...e, n]));
2554
+ n !== void 0 && n.blockedBy === void 0 && (await e.onUndo(n.invocationId), r((e) => e.slice(0, -1)), a((e) => [...e, n]));
2399
2555
  }, [t, e]), u = n(async () => {
2400
2556
  let t = i[i.length - 1];
2401
2557
  t !== void 0 && (await e.onRedo(t.invocationId), a((e) => e.slice(0, -1)), r((e) => [...e, t]));
@@ -2418,8 +2574,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2418
2574
  l,
2419
2575
  u
2420
2576
  ]);
2421
- }, yr = "__voltro.undo.log", br = "__voltro.undo.apply", xr = "__voltro.undo.redo", Sr = (e, t) => {
2422
- let r = t?.limit, { data: i } = V(e, yr, r === void 0 ? {} : { limit: r }), a = K(e, br), o = K(e, xr), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
2577
+ }, Mr = "__voltro.undo.log", Nr = "__voltro.undo.apply", Pr = "__voltro.undo.redo", Fr = (e, t) => {
2578
+ let r = t?.limit, { data: i } = V(e, Mr, r === void 0 ? {} : { limit: r }), a = K(e, Nr), o = K(e, Pr), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
2423
2579
  await a.mutate({ invocationId: e });
2424
2580
  }, [a]), d = n(async (e) => {
2425
2581
  await o.mutate({ invocationId: e });
@@ -2438,21 +2594,21 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2438
2594
  undoLast: f,
2439
2595
  redoLast: p
2440
2596
  };
2441
- }, Cr = (e, t) => ({
2597
+ }, Ir = (e, t) => ({
2442
2598
  name: e,
2443
2599
  map: t
2444
- }), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), wr = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Tr = (e, t, n) => {
2600
+ }), Lr = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Rr = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), zr = (e, t, n) => {
2445
2601
  let r = { ...t };
2446
2602
  for (let [i, a] of Object.entries(e.map)) {
2447
- if (wr.has(i) || a === void 0) continue;
2603
+ if (Rr.has(i) || a === void 0) continue;
2448
2604
  let e = t[i];
2449
2605
  r[i] = (...r) => {
2450
- let i = $(a, t);
2606
+ let i = Lr(a, t);
2451
2607
  if (i !== null && n(i), typeof e == "function") return e(...r);
2452
2608
  };
2453
2609
  }
2454
2610
  return r;
2455
- }, Er = (e, t, n) => {
2611
+ }, Br = (e, t, n) => {
2456
2612
  let r = s({
2457
2613
  spec: e,
2458
2614
  props: t,
@@ -2463,46 +2619,46 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2463
2619
  props: t,
2464
2620
  sink: n
2465
2621
  }, a(() => {
2466
- let e = r.current, t = $(e.spec.map.onMount, e.props);
2622
+ let e = r.current, t = Lr(e.spec.map.onMount, e.props);
2467
2623
  return t !== null && e.sink(t), () => {
2468
- let e = r.current, t = $(e.spec.map.onUnmount, e.props);
2624
+ let e = r.current, t = Lr(e.spec.map.onUnmount, e.props);
2469
2625
  t !== null && e.sink(t);
2470
2626
  };
2471
- }, []), o(() => Tr(e, t, n), [
2627
+ }, []), o(() => zr(e, t, n), [
2472
2628
  e,
2473
2629
  t,
2474
2630
  n
2475
2631
  ]);
2476
- }, Dr = (e, t) => {
2632
+ }, Vr = (e, t) => {
2477
2633
  let n = N(e).descriptors[t]?.input;
2478
- return o(() => n === void 0 ? [] : X(n), [n]);
2479
- }, Or = (e, t) => {
2634
+ return o(() => n === void 0 ? [] : Q(n), [n]);
2635
+ }, Hr = (e, t) => {
2480
2636
  let n = N(e).descriptors[t]?.output;
2481
- return o(() => n === void 0 ? [] : Gn(n), [n]);
2482
- }, kr = (e, t) => {
2637
+ return o(() => n === void 0 ? [] : rr(n), [n]);
2638
+ }, Ur = (e, t) => {
2483
2639
  if (e === t) return !0;
2484
2640
  if (e.length !== t.length) return !1;
2485
2641
  for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
2486
2642
  return !0;
2487
- }, Ar = (e) => Object.keys(e).sort().map((t) => e[t]), jr = (e, t) => {
2488
- let n = s(null), r = Ar(e);
2489
- return (n.current === null || !kr(n.current.key, r)) && (n.current = {
2643
+ }, Wr = (e) => Object.keys(e).sort().map((t) => e[t]), Gr = (e, t) => {
2644
+ let n = s(null), r = Wr(e);
2645
+ return (n.current === null || !Ur(n.current.key, r)) && (n.current = {
2490
2646
  key: r,
2491
2647
  value: t(e)
2492
2648
  }), n.current.value;
2493
- }, Mr = (e, t, n, r = {}) => {
2649
+ }, Kr = (e, t, n, r = {}) => {
2494
2650
  let i = V(e, t, { ...n }, r);
2495
2651
  return o(() => ({
2496
2652
  allowed: i.data?.allowed === !0,
2497
2653
  pending: i.data === void 0
2498
2654
  }), [i.data]);
2499
- }, Nr = (e, t, n, r = {}) => {
2655
+ }, qr = (e, t, n, r = {}) => {
2500
2656
  let i = V(e, t, { ...n }, r);
2501
2657
  return o(() => ({
2502
2658
  allowedIds: new Set(i.data?.allowedIds ?? []),
2503
2659
  pending: i.data === void 0
2504
2660
  }), [i.data]);
2505
- }, Pr = (e) => {
2661
+ }, Jr = (e) => {
2506
2662
  switch (e) {
2507
2663
  case "select":
2508
2664
  case "radio":
@@ -2518,25 +2674,25 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2518
2674
  case "switch": return "boolean";
2519
2675
  default: return null;
2520
2676
  }
2521
- }, Fr = (e) => X(e).map((e) => {
2522
- let t = Pr(e.widget);
2677
+ }, Yr = (e) => Q(e).map((e) => {
2678
+ let t = Jr(e.widget);
2523
2679
  return t === null ? null : {
2524
2680
  name: e.name,
2525
2681
  label: e.label,
2526
2682
  kind: t,
2527
2683
  ...e.options ? { options: e.options } : {}
2528
2684
  };
2529
- }).filter((e) => e !== null), Ir = (e) => {
2685
+ }).filter((e) => e !== null), Xr = (e) => {
2530
2686
  let t = {};
2531
2687
  for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
2532
2688
  return t;
2533
- }, Lr = (e, t, r = {}) => {
2534
- let i = N(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : Fr(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
2535
- l((n) => Ir({
2689
+ }, Zr = (e, t, r = {}) => {
2690
+ let i = N(e).descriptors[t]?.input, a = o(() => i === void 0 ? [] : Yr(i), [i]), [s, l] = c(r.initial ?? {}), u = n((e, t) => {
2691
+ l((n) => Xr({
2536
2692
  ...n,
2537
2693
  [e]: t
2538
2694
  }));
2539
- }, []), d = n(() => l({}), []), f = V(e, t, o(() => Ir(s), [s]));
2695
+ }, []), d = n(() => l({}), []), f = V(e, t, o(() => Xr(s), [s]));
2540
2696
  return {
2541
2697
  filters: a,
2542
2698
  values: s,
@@ -2547,20 +2703,20 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2547
2703
  loading: f.data === void 0,
2548
2704
  error: f.error
2549
2705
  };
2550
- }, Rr = (e, t, n = {}) => {
2706
+ }, Qr = (e, t, n = {}) => {
2551
2707
  let r = V(e, t, n), i = r.data;
2552
2708
  return {
2553
2709
  record: Array.isArray(i) ? i[0] : i,
2554
2710
  loading: i === void 0,
2555
2711
  error: r.error
2556
2712
  };
2557
- }, zr = (e, t = 300) => {
2713
+ }, $r = (e, t = 300) => {
2558
2714
  let [n, r] = c(e);
2559
2715
  return a(() => {
2560
2716
  let n = setTimeout(() => r(e), t);
2561
2717
  return () => clearTimeout(n);
2562
2718
  }, [e, t]), n;
2563
- }, Br = (e) => {
2719
+ }, ei = (e) => {
2564
2720
  let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
2565
2721
  if (a && t.trim() === "") return {
2566
2722
  status: "idle",
@@ -2578,19 +2734,19 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2578
2734
  valid: o.valid,
2579
2735
  message: o.message
2580
2736
  };
2581
- }, Vr = (e, t, n, r) => {
2582
- let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = zr(n, s), u = c && l.trim() === "", d = V(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
2583
- return Br({
2737
+ }, ti = (e, t, n, r) => {
2738
+ let { input: i, interpret: a, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = $r(n, s), u = c && l.trim() === "", d = V(e, t, o(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
2739
+ return ei({
2584
2740
  value: n,
2585
2741
  debouncedValue: l,
2586
2742
  data: u ? null : d.data,
2587
2743
  interpret: a,
2588
2744
  skipEmpty: c
2589
2745
  });
2590
- }, Hr = (e, t) => ({
2746
+ }, ni = (e, t) => ({
2591
2747
  name: e,
2592
2748
  payload: t
2593
- }), Ur = (e, t) => {
2749
+ }), ri = (e, t) => {
2594
2750
  let n = b.decodeUnknownEither(e.payload, { errors: "all" })(t);
2595
2751
  if (n._tag === "Right") return {
2596
2752
  valid: !0,
@@ -2602,15 +2758,15 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2602
2758
  valid: !1,
2603
2759
  errors: r
2604
2760
  };
2605
- }, Wr = (e) => {
2761
+ }, ii = (e) => {
2606
2762
  let t = new Map(e.map((e) => [e.name, e]));
2607
2763
  return {
2608
2764
  names: [...t.keys()].sort(),
2609
2765
  get: (e) => t.get(e),
2610
2766
  events: e
2611
2767
  };
2612
- }, Gr = (e, t) => {
2613
- let n = Wr(e);
2768
+ }, ai = (e, t) => {
2769
+ let n = ii(e);
2614
2770
  return {
2615
2771
  track: (e, r) => {
2616
2772
  let i = n.get(e);
@@ -2619,7 +2775,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2619
2775
  return;
2620
2776
  }
2621
2777
  if (process.env.NODE_ENV !== "production") {
2622
- let t = Ur(i, r);
2778
+ let t = ri(i, r);
2623
2779
  t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
2624
2780
  }
2625
2781
  t({
@@ -2630,7 +2786,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2630
2786
  names: n.names,
2631
2787
  catalog: n
2632
2788
  };
2633
- }, Kr = (e, t) => {
2789
+ }, oi = (e, t) => {
2634
2790
  let r = q(e, t);
2635
2791
  return {
2636
2792
  preview: n((e) => r.run(e), [r]),
@@ -2638,34 +2794,34 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2638
2794
  pending: r.pending,
2639
2795
  error: r.error
2640
2796
  };
2641
- }, qr = (e, t, n, r) => [...e, {
2797
+ }, si = (e, t, n, r) => [...e, {
2642
2798
  id: t,
2643
2799
  tag: n,
2644
2800
  input: r,
2645
2801
  status: "pending",
2646
2802
  attempts: 0
2647
- }], Jr = (e, t, n) => e.map((e) => e.id === t ? {
2803
+ }], ci = (e, t, n) => e.map((e) => e.id === t ? {
2648
2804
  ...e,
2649
2805
  ...n
2650
- } : e), Yr = (e, t) => Jr(e, t, { status: "sent" }), Xr = (e, t, n) => e.map((e) => e.id === t ? {
2806
+ } : e), li = (e, t) => ci(e, t, { status: "sent" }), ui = (e, t, n) => e.map((e) => e.id === t ? {
2651
2807
  ...e,
2652
2808
  status: "failed",
2653
2809
  error: n,
2654
2810
  attempts: e.attempts + 1
2655
- } : e), Zr = (e, t, n) => Jr(e, t, {
2811
+ } : e), di = (e, t, n) => ci(e, t, {
2656
2812
  status: "conflict",
2657
2813
  error: n
2658
- }), Qr = (e) => e.filter((e) => e.status !== "sent"), $r = (e) => {
2814
+ }), fi = (e) => e.filter((e) => e.status !== "sent"), pi = (e) => {
2659
2815
  let t = [];
2660
2816
  for (let n of e) {
2661
2817
  if (n.status === "conflict") break;
2662
2818
  (n.status === "pending" || n.status === "failed") && t.push(n);
2663
2819
  }
2664
2820
  return t;
2665
- }, ei = (e) => {
2821
+ }, mi = (e) => {
2666
2822
  let t = e;
2667
2823
  return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
2668
- }, ti = (e) => {
2824
+ }, hi = (e) => {
2669
2825
  let [t, n] = c(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
2670
2826
  return a(() => {
2671
2827
  if (e !== void 0) {
@@ -2678,21 +2834,21 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2678
2834
  window.removeEventListener("online", t), window.removeEventListener("offline", r);
2679
2835
  };
2680
2836
  }, [e]), t;
2681
- }, ni = (e) => {
2682
- let { send: t, isConflict: r = ei, idFor: i } = e, [o, l] = c([]), u = ti(e.online), d = s(o);
2837
+ }, gi = (e) => {
2838
+ let { send: t, isConflict: r = mi, idFor: i } = e, [o, l] = c([]), u = hi(e.online), d = s(o);
2683
2839
  d.current = o;
2684
2840
  let f = s(0), p = n((e, t) => {
2685
2841
  let n = i?.() ?? `obx_${f.current++}_${e}`;
2686
- l((r) => qr(r, n, e, t));
2842
+ l((r) => si(r, n, e, t));
2687
2843
  }, [i]), m = n(async () => {
2688
- for (let e of $r(d.current)) try {
2689
- await t(e), l((t) => Yr(t, e.id));
2844
+ for (let e of pi(d.current)) try {
2845
+ await t(e), l((t) => li(t, e.id));
2690
2846
  } catch (t) {
2691
2847
  if (r(t)) {
2692
- l((n) => Zr(n, e.id, t));
2848
+ l((n) => di(n, e.id, t));
2693
2849
  break;
2694
2850
  }
2695
- l((n) => Xr(n, e.id, t));
2851
+ l((n) => ui(n, e.id, t));
2696
2852
  }
2697
2853
  }, [t, r]);
2698
2854
  return a(() => {
@@ -2705,7 +2861,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2705
2861
  pending: o.filter((e) => e.status === "pending" || e.status === "failed").length,
2706
2862
  conflicts: o.filter((e) => e.status === "conflict")
2707
2863
  };
2708
- }, ri = (e) => {
2864
+ }, _i = (e) => {
2709
2865
  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);
2710
2866
  return {
2711
2867
  startIndex: l,
@@ -2715,8 +2871,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2715
2871
  topSpacer: l * r,
2716
2872
  bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
2717
2873
  };
2718
- }, ii = (e, t, r) => {
2719
- let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => ri({
2874
+ }, vi = (e, t, r) => {
2875
+ let { rowHeight: i, viewportHeight: a, overscan: s, total: l, input: u } = r, [d, f] = c(0), p = o(() => _i({
2720
2876
  scrollTop: d,
2721
2877
  viewportHeight: a,
2722
2878
  rowHeight: i,
@@ -2748,8 +2904,8 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2748
2904
  loading: m.data === void 0,
2749
2905
  error: m.error
2750
2906
  };
2751
- }, ai = () => typeof navigator > "u" || navigator.onLine, oi = (e) => {
2752
- let { errorBus: t } = N(e), [r, i] = c(ai), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
2907
+ }, yi = () => typeof navigator > "u" || navigator.onLine, bi = (e) => {
2908
+ let { errorBus: t } = N(e), [r, i] = c(yi), [o, l] = c(0), [u, d] = c(void 0), f = s(!0);
2753
2909
  a(() => (f.current = !0, () => {
2754
2910
  f.current = !1;
2755
2911
  }), []), a(() => {
@@ -2775,7 +2931,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2775
2931
  lastFailureAt: u,
2776
2932
  reportSuccess: p
2777
2933
  };
2778
- }, si = "__voltro.connections.list", ci = "__voltro.connections.start", li = "__voltro.connections.submitToken", ui = "__voltro.connections.disconnect", di = {
2934
+ }, xi = "__voltro.connections.list", Si = "__voltro.connections.start", Ci = "__voltro.connections.submitToken", wi = "__voltro.connections.disconnect", Ti = {
2779
2935
  connectionId: "",
2780
2936
  kind: "oauth2",
2781
2937
  label: "",
@@ -2786,14 +2942,14 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2786
2942
  expiresAt: null,
2787
2943
  lastError: null,
2788
2944
  connectedAt: null
2789
- }, fi = (e, t) => {
2945
+ }, Ei = (e, t) => {
2790
2946
  if (t === "redirect") {
2791
2947
  globalThis.location.assign(e);
2792
2948
  return;
2793
2949
  }
2794
2950
  globalThis.open(e, "voltro-connect", "width=620,height=760,menubar=no,toolbar=no") === null && globalThis.location.assign(e);
2795
- }, pi = (e) => {
2796
- let { data: t } = V(e, si, {}), r = q(e, ci), i = K(e, li), a = K(e, ui), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
2951
+ }, Di = (e) => {
2952
+ let { data: t } = V(e, xi, {}), r = q(e, Si), i = K(e, Ci), a = K(e, wi), o = t ?? [], s = r.pending || i.pending || a.pending, c = n((e) => ({
2797
2953
  ...e,
2798
2954
  connected: e.status === "connected",
2799
2955
  needsAttention: e.status === "expired" || e.status === "revoked" || e.status === "error",
@@ -2801,7 +2957,7 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2801
2957
  connect: async (t) => {
2802
2958
  if (e.kind !== "oauth2") throw Error(`connection "${e.connectionId}" is a personal-access-token connection — call submitToken(token), not connect().`);
2803
2959
  let n = t?.redirectTo ?? `${globalThis.location.pathname}${globalThis.location.search}`;
2804
- fi((await r.run({
2960
+ Ei((await r.run({
2805
2961
  connectionId: e.connectionId,
2806
2962
  redirectTo: n
2807
2963
  })).authorizeUrl, t?.mode);
@@ -2831,10 +2987,10 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2831
2987
  get: l,
2832
2988
  pending: s
2833
2989
  };
2834
- }, mi = (e, t) => {
2835
- let n = pi(e), r = n.get(t);
2990
+ }, Oi = (e, t) => {
2991
+ let n = Di(e), r = n.get(t);
2836
2992
  return o(() => r === void 0 ? {
2837
- ...di,
2993
+ ...Ti,
2838
2994
  connectionId: t,
2839
2995
  label: t,
2840
2996
  connected: !1,
@@ -2859,6 +3015,6 @@ var Z = () => r(ir), or = (e) => nr(Z().scopes, e), sr = (e) => rr(Z().scopes, e
2859
3015
  n.loading,
2860
3016
  n.pending
2861
3017
  ]);
2862
- }, hi = "framework-client";
3018
+ }, ki = "framework-client";
2863
3019
  //#endregion
2864
- export { tr as ADMIN_SCOPE, hi as CLIENT_NAME, si as CONNECTIONS_LIST_TAG, ui as CONNECTION_DISCONNECT_TAG, ci as CONNECTION_START_TAG, li as CONNECTION_SUBMIT_TOKEN_TAG, ge as FrameworkRuntimesContext, we as FrameworkRuntimesProvider, me as LoadingSubscriptionCache, ar as PermissionProvider, he as RpcErrorBus, pe as SubscriptionCache, br as UNDO_APPLY_TAG, yr as UNDO_LOG_TAG, xr as UNDO_REDO_TAG, xe as _resetFrameworkRuntimesWarning, It as applyPreloadSeeds, et as applyStoreSeeds, Ce as buildApiRuntime, nr as canCall, rr as canCallAny, dt as clearMutations, Qr as clearSent, Le as clearStoreHistory, ri as computeWindow, Gr as createAnalytics, kt as createHooks, dr as decideAccess, Hr as defineEvent, Ye as defineStore, Cr as defineTracking, Je as definedStores, _r as deriveEntityAdmins, qr as enqueueEntry, Wr as eventCatalog, Fr as filtersFromSchema, yt as freshIdempotencyKey, mt as getMutationNotifier, lt as getMutations, P as isUnresolvedApi, At as makePreloadSeedBag, Ze as makeStoreSeedBag, cr as manifestUrl, Zr as markConflict, Xr as markFailed, Yr as markSent, pr as openAccessReason, $n as provenanceUrl, Nn as publishClientError, D as publishClientTrace, Lt as readPreloadedSnapshot, $r as replayable, Fn as reportClientError, fr as requiredScopes, Rt as resetPreloadSeeds, Xe as resetStoreRegistryForTests, B as resolveByTag, $ as resolveTrackingEvent, Cn as resumableConsumeProgram, Jn as rowsToOptions, Wt as runSequence, Gn as schemaToColumns, X as schemaToFields, Ft as seedPreloadedSubscription, $e as seedStore, Ut as sequence, pt as setMutationNotifier, Mt as setPreloadSeedResolver, Qe as setStoreSeedResolver, W as settleMutation, F as shallow, kr as shallowArrayEqual, Ar as sourceValues, ve as ssrClientProxy, ye as ssrStubHandle, O as stableKey, ct as startMutation, Fe as storeHistory, Pn as subscribeClientErrors, re as subscribeClientTraces, ut as subscribeMutations, Ie as subscribeStoreHistory, Re as travelToStoreState, mr as useAccessDecision, q as useAction, kn as useAgent, On as useAgentChat, Sn as useAgentStream, Vr as useAsyncValidation, or as useCan, sr as useCanAny, lr as useCapabilityManifest, mi as useConnection, oi as useConnectionStatus, pi as useConnections, An as useDataCopilot, Zn as useDataTable, zr as useDebounced, jr as useDerived, Ht as useEvent, qn as useFormBinding, Dr as useFormSkeleton, N as useFrameworkApi, Se as useFrameworkRuntimes, K as useMutation, In as useOnRpcError, ni as useOutbox, Z as usePermissions, zt as usePreloadedSubscription, Kr as usePreview, er as useProvenance, Yn as useQueryField, Lr as useQueryFilters, Rr as useRecord, jn as useRefreshSubscriptions, Mr as useResourceCan, Nr as useResourceCans, Tn as useResumableAgentStream, Gt as useSequence, V as useSubscription, Or as useTableSkeleton, Er as useTracking, vr as useUndo, Sr as useUndoLog, an as useUpload, ii as useWindowedSubscription, on as useWorkflow, mn as useWorkflowDomainEvents, hn as useWorkflowEventDeliveries, pn as useWorkflowEvents, ln as useWorkflowRun, fn as useWorkflowRunEvents, xn as useWorkflowRunState, dn as useWorkflowRunSteps, un as useWorkflowRuns, sn as useWorkflowSignal, cn as useWorkflowUpdate, Ur as validateEventPayload, Kn as validateFields, Br as validationStatus, bt as withIdempotencyKey, Tr as wrapTrackedCallbacks };
3020
+ export { pr as ADMIN_SCOPE, ki as CLIENT_NAME, xi as CONNECTIONS_LIST_TAG, wi as CONNECTION_DISCONNECT_TAG, Si as CONNECTION_START_TAG, Ci as CONNECTION_SUBMIT_TOKEN_TAG, _e as FrameworkRuntimesContext, Ae as FrameworkRuntimesProvider, he as LoadingSubscriptionCache, _r as PermissionProvider, ge as RpcErrorBus, me as SubscriptionCache, Nr as UNDO_APPLY_TAG, Mr as UNDO_LOG_TAG, Pr as UNDO_REDO_TAG, Se as _resetFrameworkRuntimesWarning, qt as applyPreloadSeeds, ft as applyStoreSeeds, we as buildApiRuntime, mr as canCall, hr as canCallAny, Ct as clearMutations, fi as clearSent, Ye as clearStoreHistory, _i as computeWindow, ai as createAnalytics, Vt as createHooks, Cr as decideAccess, ni as defineEvent, st as defineStore, Ir as defineTracking, ot as definedStores, Ar as deriveEntityAdmins, si as enqueueEntry, ii as eventCatalog, Yr as filtersFromSchema, jt as freshIdempotencyKey, Et as getMutationNotifier, xt as getMutations, P as isUnresolvedApi, Ht as makePreloadSeedBag, lt as makeStoreSeedBag, br as manifestUrl, di as markConflict, ui as markFailed, li as markSent, Tr as openAccessReason, dr as provenanceUrl, Gn as publishClientError, D as publishClientTrace, Yt as readPreloadedSeedOutcome, Jt as readPreloadedSnapshot, pi as replayable, qn as reportClientError, wr as requiredScopes, Xt as resetPreloadSeeds, ct as resetStoreRegistryForTests, Ie as resetStoreStorageForTest, B as resolveByTag, Fe as resolveStoreStorage, Lr as resolveTrackingEvent, Fn as resumableConsumeProgram, or as rowsToOptions, nn as runSequence, rr as schemaToColumns, Q as schemaToFields, Gt as seedPreloadedSubscription, Kt as seedPreloadedSubscriptionFailure, dt as seedStore, tn as sequence, Tt as setMutationNotifier, Ut as setPreloadSeedResolver, ut as setStoreSeedResolver, Pe as setStoreStorage, W as settleMutation, F as shallow, Ur as shallowArrayEqual, Wr as sourceValues, ye as ssrClientProxy, be as ssrStubHandle, O as stableKey, ke as startApiSupervisor, bt as startMutation, qe as storeHistory, Kn as subscribeClientErrors, re as subscribeClientTraces, St as subscribeMutations, Je as subscribeStoreHistory, oe as supersedesConfirmedPatches, Xe as travelToStoreState, Er as useAccessDecision, q as useAction, Vn as useAgent, Bn as useAgentChat, Pn as useAgentStream, ti as useAsyncValidation, vr as useCan, yr as useCanAny, xr as useCapabilityManifest, Oi as useConnection, bi as useConnectionStatus, Di as useConnections, Hn as useDataCopilot, lr as useDataTable, $r as useDebounced, Gr as useDerived, en as useEvent, ar as useFormBinding, Vr as useFormSkeleton, N as useFrameworkApi, Ce as useFrameworkRuntimes, K as useMutation, Jn as useOnRpcError, gi as useOutbox, $ as usePermissions, Zt as usePreloadedSubscription, oi as usePreview, fr as useProvenance, sr as useQueryField, Zr as useQueryFilters, Qr as useRecord, Un as useRefreshSubscriptions, Kr as useResourceCan, qr as useResourceCans, Ln as useResumableAgentStream, rn as useSequence, V as useSubscription, Hr as useTableSkeleton, Br as useTracking, jr as useUndo, Fr as useUndoLog, _n as useUpload, vi as useWindowedSubscription, vn as useWorkflow, En as useWorkflowDomainEvents, Dn as useWorkflowEventDeliveries, Tn as useWorkflowEvents, xn as useWorkflowRun, wn as useWorkflowRunEvents, Nn as useWorkflowRunState, Cn as useWorkflowRunSteps, Sn as useWorkflowRuns, yn as useWorkflowSignal, bn as useWorkflowUpdate, ri as validateEventPayload, ir as validateFields, ei as validationStatus, Mt as withIdempotencyKey, zr as wrapTrackedCallbacks };