@voltro/client 0.2.2 → 0.3.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
@@ -19,7 +19,58 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
19
19
  emittedAt: void 0,
20
20
  error: void 0,
21
21
  pendingPatches: 0
22
- }), T = 5e3, E = 0, ee = () => `patch_${++E}`, te = (e, t, n) => {
22
+ }), T = 5e3, E = 0, ee = () => `patch_${++E}`, D = (e, t) => {
23
+ let n = e;
24
+ for (let e of t.split(".")) {
25
+ if (typeof n != "object" || !n) return;
26
+ n = n[e];
27
+ }
28
+ return n;
29
+ }, O = (e, t, n) => {
30
+ let r = t.split("."), i = (e) => typeof e == "object" && e && !Array.isArray(e) ? { ...e } : {}, a = i(e), o = a;
31
+ for (let e = 0; e < r.length - 1; e += 1) o[r[e]] = i(o[r[e]]), o = o[r[e]];
32
+ return o[r[r.length - 1]] = n, a;
33
+ }, te = (e, t, n) => {
34
+ let r = e.path, i = e.by ?? "id";
35
+ if (e.op === "insert") {
36
+ let a = e.shape ? {
37
+ [i]: n,
38
+ ...e.shape(t, n),
39
+ optimistic: !0
40
+ } : {
41
+ [i]: n,
42
+ ...t,
43
+ optimistic: !0
44
+ }, o = e.order ?? "append";
45
+ return (e) => {
46
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
47
+ return O(e ?? {}, r, o === "append" ? [...t, a] : [a, ...t]);
48
+ };
49
+ }
50
+ let a = e.identify ? e.identify(t) : typeof t[i] == "string" ? t[i] : typeof t.id == "string" ? t.id : void 0;
51
+ if (a === void 0) return null;
52
+ if (e.op === "update") {
53
+ let n = e.shape ? (n) => ({
54
+ ...e.shape(t, n),
55
+ [i]: a,
56
+ optimistic: !0
57
+ }) : (e) => ({
58
+ ...e,
59
+ ...t,
60
+ [i]: a,
61
+ optimistic: !0
62
+ });
63
+ return (e) => {
64
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
65
+ return O(e, r, t.map((e) => e[i] === a ? n(e) : e));
66
+ };
67
+ }
68
+ return (e) => {
69
+ let t = Array.isArray(D(e, r)) ? D(e, r) : [];
70
+ return O(e, r, t.filter((e) => e[i] !== a));
71
+ };
72
+ }, ne = (e, t, n) => {
73
+ if (e.path !== void 0) return te(e, t, n);
23
74
  switch (e.op) {
24
75
  case "insert": {
25
76
  let r = e.shape ? {
@@ -58,13 +109,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
58
109
  return n === void 0 ? null : (e) => (Array.isArray(e) ? e : []).filter((e) => e.id !== n);
59
110
  }
60
111
  }
61
- }, ne = 5e3, re = class {
112
+ }, re = 5e3, ie = class {
62
113
  entries = /* @__PURE__ */ new Map();
63
114
  inactiveTtlMs;
64
115
  onChangeHook;
65
116
  errorBus;
66
117
  constructor(e = {}) {
67
- this.inactiveTtlMs = e.inactiveTtlMs ?? ne, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
118
+ this.inactiveTtlMs = e.inactiveTtlMs ?? re, this.onChangeHook = e.onChange, this.errorBus = e.errorBus;
68
119
  }
69
120
  subscribe(e, t, n, r, i = {}) {
70
121
  let a = C(e), o = typeof e[0] == "string" ? e[0] : void 0, s = this.entries.get(a);
@@ -113,8 +164,18 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
113
164
  autoApply(e, t, n) {
114
165
  let r = `optimistic-${n}-${++E}`;
115
166
  for (let i of e) for (let e of this.entries.values()) {
116
- if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table) || e.computed && i.op === "insert") continue;
117
- let a = te(i, t, r);
167
+ if (!(Array.isArray(e.source) ? e.source.includes(i.table) : e.source === i.table)) continue;
168
+ if (i.match !== void 0) {
169
+ let n = !1;
170
+ try {
171
+ n = i.match(e.state.base, t);
172
+ } catch {
173
+ n = !1;
174
+ }
175
+ if (!n) continue;
176
+ }
177
+ if (e.computed && i.op === "insert" && i.path === void 0) continue;
178
+ let a = ne(i, t, r);
118
179
  if (a === null) continue;
119
180
  let o = {
120
181
  id: `${r}-${e.key}`,
@@ -256,14 +317,14 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
256
317
  t && t.subscribers.size === 0 && (t.fiber && d.runFork(p.interrupt(t.fiber)), this.entries.delete(e));
257
318
  }, this.inactiveTtlMs)));
258
319
  }
259
- }, ie = class extends re {
320
+ }, ae = class extends ie {
260
321
  subscribe(e, t, n, r, i = {}) {
261
322
  return {
262
323
  getSnapshot: () => this.peek(e),
263
324
  unsubscribe: () => {}
264
325
  };
265
326
  }
266
- }, ae = class {
327
+ }, oe = class {
267
328
  #e = /* @__PURE__ */ new Set();
268
329
  on(e) {
269
330
  return this.#e.add(e), () => {
@@ -275,34 +336,34 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
275
336
  t(e);
276
337
  } catch {}
277
338
  }
278
- }, oe = (e) => {
339
+ }, se = (e) => {
279
340
  if (typeof e != "object" || !e) return;
280
341
  let t = e._tag;
281
342
  return typeof t == "string" ? t : void 0;
282
- }, D = e(null), se = () => {
343
+ }, k = e(null), ce = () => {
283
344
  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");
284
- }, O = new Proxy(() => se(), {
285
- get: (e, t) => O,
345
+ }, A = new Proxy(() => ce(), {
346
+ get: (e, t) => A,
286
347
  has: () => !0,
287
- apply: () => se()
288
- }), ce = {
348
+ apply: () => ce()
349
+ }), le = {
289
350
  runtime: { runPromise: () => Promise.reject(/* @__PURE__ */ Error("Voltro: mutations are not invokable during SSR")) },
290
- cache: new ie(),
291
- client: O,
351
+ cache: new ae(),
352
+ client: A,
292
353
  descriptors: {},
293
354
  inspectBaseUrl: "",
294
- errorBus: new ae()
295
- }, le = {
296
- get: () => ce,
355
+ errorBus: new oe()
356
+ }, ue = {
357
+ get: () => le,
297
358
  names: []
298
- }, k = !1, A = !1, j = null, ue = () => {
299
- k = !1, A = !1, j !== null && (clearTimeout(j), j = null);
300
- }, de = () => {
301
- let e = r(D);
302
- return e ? (A || (A = !0, j !== null && (clearTimeout(j), j = null)), e) : (typeof window < "u" && !k && !A && j === null && process.env.NODE_ENV !== "production" && (j = setTimeout(() => {
303
- j = null, !(k || A) && (k = !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>."));
304
- }, 0)), le);
305
- }, M = (e) => de().get(e), fe = ({ apis: e, children: t }) => {
359
+ }, j = !1, M = !1, N = null, de = () => {
360
+ j = !1, M = !1, N !== null && (clearTimeout(N), N = null);
361
+ }, fe = () => {
362
+ let e = r(k);
363
+ return e ? (M || (M = !0, N !== null && (clearTimeout(N), N = null)), e) : (typeof window < "u" && !j && !M && N === null && process.env.NODE_ENV !== "production" && (N = setTimeout(() => {
364
+ N = null, !(j || M) && (j = !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>."));
365
+ }, 0)), ue);
366
+ }, P = (e) => fe().get(e), pe = ({ apis: e, children: t }) => {
306
367
  let n = a(() => ({
307
368
  get: (t) => {
308
369
  let n = e.get(t);
@@ -314,11 +375,11 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
314
375
  },
315
376
  names: Array.from(e.keys())
316
377
  }), [e]);
317
- return /* @__PURE__ */ v(D.Provider, {
378
+ return /* @__PURE__ */ v(k.Provider, {
318
379
  value: n,
319
380
  children: t
320
381
  });
321
- }, N = (e, t) => {
382
+ }, F = (e, t) => {
322
383
  let n = t.split("."), r = e;
323
384
  for (let e = 0; e < n.length; e++) {
324
385
  let i = n[e];
@@ -337,28 +398,28 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
337
398
  }
338
399
  if (typeof r != "function") throw Error(`@voltro/client: rpc tag ${JSON.stringify(t)} did not resolve to a callable method.`);
339
400
  return r;
340
- }, pe = Object.freeze({
401
+ }, me = Object.freeze({
341
402
  data: void 0,
342
403
  revision: -1,
343
404
  emittedAt: void 0,
344
405
  error: void 0,
345
406
  pendingPatches: 0
346
- }), me = () => pe, P = (e, t, r = {}, i = {}) => {
347
- let s = i.skip === !0, { runtime: l, cache: u, client: d, descriptors: f } = M(e), p = f[t]?.source, m = o(r);
407
+ }), he = () => me, I = (e, t, r = {}, i = {}) => {
408
+ let s = i.skip === !0, { runtime: l, cache: u, client: d, descriptors: f } = P(e), p = f[t]?.source, m = o(r);
348
409
  m.current = r;
349
410
  let h = o(d);
350
411
  h.current = d;
351
- let g = o(() => N(h.current, t)(m.current)), _ = a(() => [t, m.current], [t, a(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r])]), v = c(n((e) => s ? () => {} : u.subscribe(_, g.current, l, e, p === void 0 ? {} : { source: p }).unsubscribe, [
412
+ let g = o(() => F(h.current, t)(m.current)), _ = a(() => [t, m.current], [t, a(() => JSON.stringify(Object.entries(r).sort(([e], [t]) => e.localeCompare(t))), [r])]), v = c(n((e) => s ? () => {} : u.subscribe(_, g.current, l, e, p === void 0 ? {} : { source: p }).unsubscribe, [
352
413
  u,
353
414
  l,
354
415
  p,
355
416
  s,
356
417
  _
357
- ]), n(() => s ? pe : u.peek(_), [
418
+ ]), n(() => s ? me : u.peek(_), [
358
419
  u,
359
420
  s,
360
421
  _
361
- ]), me);
422
+ ]), he);
362
423
  return {
363
424
  data: v.data,
364
425
  revision: v.revision,
@@ -366,25 +427,25 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
366
427
  error: v.error,
367
428
  pendingPatches: v.pendingPatches
368
429
  };
369
- }, he = 100, F = [], I = /* @__PURE__ */ new Set(), ge = [], _e = () => {
370
- ge = F.slice();
371
- }, L = () => {
372
- _e();
373
- for (let e of I) try {
430
+ }, ge = 100, L = [], R = /* @__PURE__ */ new Set(), _e = [], ve = () => {
431
+ _e = L.slice();
432
+ }, z = () => {
433
+ ve();
434
+ for (let e of R) try {
374
435
  e();
375
436
  } catch {}
376
- }, R = (e) => {
437
+ }, B = (e) => {
377
438
  let t = {
378
439
  ...e,
379
440
  status: "pending",
380
441
  startedAt: Date.now()
381
442
  };
382
- F.unshift(t), F.length > he && (F.length = he), L();
383
- }, z = (e, t) => {
384
- let n = F.findIndex((t) => t.id === e);
443
+ L.unshift(t), L.length > ge && (L.length = ge), z();
444
+ }, V = (e, t) => {
445
+ let n = L.findIndex((t) => t.id === e);
385
446
  if (n === -1) return;
386
- let r = F[n], i = Date.now();
387
- F[n] = t.status === "success" ? {
447
+ let r = L[n], i = Date.now();
448
+ L[n] = t.status === "success" ? {
388
449
  ...r,
389
450
  status: "success",
390
451
  output: t.output,
@@ -396,12 +457,12 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
396
457
  error: t.error,
397
458
  settledAt: i,
398
459
  durationMs: i - r.startedAt
399
- }, L();
400
- }, ve = () => ge, ye = (e) => (I.add(e), () => {
401
- I.delete(e);
402
- }), be = () => {
403
- F.length !== 0 && (F.length = 0, L());
404
- }, xe = (e, t) => {
460
+ }, z();
461
+ }, ye = () => _e, be = (e) => (R.add(e), () => {
462
+ R.delete(e);
463
+ }), xe = () => {
464
+ L.length !== 0 && (L.length = 0, z());
465
+ }, Se = (e, t) => {
405
466
  if (t === void 0 || typeof e != "object" || !e) return e;
406
467
  try {
407
468
  Object.defineProperty(e, "__voltroTraceId", {
@@ -411,21 +472,21 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
411
472
  });
412
473
  } catch {}
413
474
  return e;
414
- }, Se = 0, Ce = () => `mut_${++Se}`, we = (e, t) => ({
475
+ }, Ce = 0, we = () => `mut_${++Ce}`, Te = (e, t) => ({
415
476
  update: (n, r) => {
416
477
  e.update(n, r, t);
417
478
  },
418
479
  forTag: (n, r) => e.forTag(n, r, t)
419
- }), B = (e, t) => {
420
- let { runtime: r, cache: i, client: c, descriptors: l, errorBus: u } = M(e), f = l[t], p = f?.targets;
480
+ }), H = (e, t) => {
481
+ let { runtime: r, cache: i, client: c, descriptors: l, errorBus: u } = P(e), f = l[t], p = f?.targets;
421
482
  if (process.env.NODE_ENV !== "production") {
422
483
  let n = f?.kind;
423
484
  n !== void 0 && n !== "mutation" && console.error(`[@voltro/client] useMutation('${e}', '${t}') targets a ${n}, not a mutation. Use ${n === "action" ? "useAction" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
424
485
  }
425
486
  let [m, h] = s(!1), [g, _] = s(void 0), [v, y] = s(void 0), b = o(null), S = o(!1), C = n(async (n) => {
426
487
  h(!0), _(void 0);
427
- let a = Ce();
428
- R({
488
+ let a = we();
489
+ B({
429
490
  id: a,
430
491
  apiName: e,
431
492
  tag: t,
@@ -433,9 +494,9 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
433
494
  });
434
495
  let o = b.current, s = S.current;
435
496
  if (o) try {
436
- o(we(i, a), n);
497
+ o(Te(i, a), n);
437
498
  } catch (e) {
438
- throw _(e), h(!1), i.revertByMutation(a), z(a, {
499
+ throw _(e), h(!1), i.revertByMutation(a), V(a, {
439
500
  status: "error",
440
501
  error: e
441
502
  }), e;
@@ -443,7 +504,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
443
504
  else !s && p && p.length > 0 && i.autoApply(p, n, a);
444
505
  let l;
445
506
  try {
446
- let o = N(c, t), s = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
507
+ let o = F(c, t), s = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
447
508
  l = e.traceId, x({
448
509
  traceId: e.traceId,
449
510
  spanId: e.spanId,
@@ -455,13 +516,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
455
516
  "voltro.mutationId": a,
456
517
  "rpc.tag": t
457
518
  } })), u = await r.runPromise(s);
458
- return y(u), z(a, {
519
+ return y(u), V(a, {
459
520
  status: "success",
460
521
  output: u
461
522
  }), i.confirmByMutation(a), u;
462
523
  } catch (e) {
463
- let n = xe(e, l);
464
- throw _(n), z(a, {
524
+ let n = Se(e, l);
525
+ throw _(n), V(a, {
465
526
  status: "error",
466
527
  error: n
467
528
  }), i.revertByMutation(a), u.emit({
@@ -497,7 +558,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
497
558
  g,
498
559
  v
499
560
  ]);
500
- }, Te = (e, t) => {
561
+ }, Ee = (e, t) => {
501
562
  if (t === void 0 || typeof e != "object" || !e) return e;
502
563
  try {
503
564
  Object.defineProperty(e, "__voltroTraceId", {
@@ -507,16 +568,16 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
507
568
  });
508
569
  } catch {}
509
570
  return e;
510
- }, Ee = 0, De = () => `act_${++Ee}`, V = (e, t) => {
511
- let { runtime: r, client: i, descriptors: o, errorBus: c } = M(e);
571
+ }, De = 0, Oe = () => `act_${++De}`, U = (e, t) => {
572
+ let { runtime: r, client: i, descriptors: o, errorBus: c } = P(e);
512
573
  if (process.env.NODE_ENV !== "production") {
513
574
  let n = o[t]?.kind;
514
575
  n !== void 0 && n !== "action" && console.error(`[@voltro/client] useAction('${e}', '${t}') targets a ${n}, not an action. Use ${n === "mutation" ? "useMutation" : n === "workflow" ? "useWorkflow" : `the ${n} hook`} instead.`);
515
576
  }
516
577
  let [l, u] = s(!1), [f, p] = s(void 0), [m, h] = s(void 0), g = n(async (n) => {
517
578
  u(!0), p(void 0);
518
- let a = De();
519
- R({
579
+ let a = Oe();
580
+ B({
520
581
  id: a,
521
582
  apiName: e,
522
583
  tag: t,
@@ -524,7 +585,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
524
585
  });
525
586
  let o;
526
587
  try {
527
- let s = N(i, t), c = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
588
+ let s = F(i, t), c = d.currentSpan.pipe(d.tap((e) => d.sync(() => {
528
589
  o = e.traceId, x({
529
590
  traceId: e.traceId,
530
591
  spanId: e.spanId,
@@ -536,13 +597,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
536
597
  "voltro.actionId": a,
537
598
  "rpc.tag": t
538
599
  } })), l = await r.runPromise(c);
539
- return h(l), z(a, {
600
+ return h(l), V(a, {
540
601
  status: "success",
541
602
  output: l
542
603
  }), l;
543
604
  } catch (e) {
544
- let n = Te(e, o);
545
- throw p(n), z(a, {
605
+ let n = Ee(e, o);
606
+ throw p(n), V(a, {
546
607
  status: "error",
547
608
  error: n
548
609
  }), c.emit({
@@ -572,7 +633,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
572
633
  f,
573
634
  m
574
635
  ]);
575
- }, H = "storage.mintUploadTicket", Oe = "storage.mintPresignedUpload", ke = "storage.finalizeUpload", Ae = "storage.beginResumableUpload", je = "storage.beginMultipartUpload", Me = "storage.signMultipartPart", Ne = "storage.completeMultipartUpload", Pe = "storage.abortMultipartUpload", Fe = (e, t, n, r) => new Promise((i, a) => {
636
+ }, W = "storage.mintUploadTicket", ke = "storage.mintPresignedUpload", Ae = "storage.finalizeUpload", je = "storage.beginResumableUpload", Me = "storage.beginMultipartUpload", Ne = "storage.signMultipartPart", Pe = "storage.completeMultipartUpload", Fe = "storage.abortMultipartUpload", Ie = (e, t, n, r) => new Promise((i, a) => {
576
637
  let o = new XMLHttpRequest();
577
638
  if (o.open("PUT", e), o.upload.onprogress = (e) => {
578
639
  e.lengthComputable && n(e.loaded / e.total);
@@ -586,7 +647,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
586
647
  return;
587
648
  }
588
649
  r.addEventListener("abort", () => o.abort(), { once: !0 }), o.send(t);
589
- }), Ie = (e, t, n, r, i, a) => new Promise((o, s) => {
650
+ }), Le = (e, t, n, r, i, a) => new Promise((o, s) => {
590
651
  let c = new XMLHttpRequest();
591
652
  if (c.open("POST", e), c.setRequestHeader("content-type", t), c.upload.onprogress = (e) => {
592
653
  e.lengthComputable && r(e.loaded / e.total);
@@ -604,7 +665,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
604
665
  return;
605
666
  }
606
667
  i.addEventListener("abort", () => c.abort(), { once: !0 }), c.send(n);
607
- }), Le = (e, t, n, r, i) => new Promise((a, o) => {
668
+ }), Re = (e, t, n, r, i) => new Promise((a, o) => {
608
669
  let s = new XMLHttpRequest();
609
670
  if (s.open("PUT", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
610
671
  e.lengthComputable && r(e.loaded / e.total);
@@ -615,7 +676,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
615
676
  return;
616
677
  }
617
678
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
618
- }), Re = (e, t, n, r, i) => new Promise((a, o) => {
679
+ }), ze = (e, t, n, r, i) => new Promise((a, o) => {
619
680
  let s = new XMLHttpRequest();
620
681
  if (s.open("POST", e), s.setRequestHeader("content-type", t), s.upload.onprogress = (e) => {
621
682
  e.lengthComputable && r(e.loaded / e.total);
@@ -631,8 +692,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
631
692
  return;
632
693
  }
633
694
  i.addEventListener("abort", () => s.abort(), { once: !0 }), s.send(n);
634
- }), ze = (e, t = {}) => {
635
- let { runtime: r, client: i, inspectBaseUrl: c, errorBus: l } = M(e), [u, d] = s(0), [f, p] = s("idle"), [m, h] = s(void 0), g = o(null), _ = n(() => {
695
+ }), Be = (e, t = {}) => {
696
+ let { runtime: r, client: i, inspectBaseUrl: c, errorBus: l } = P(e), [u, d] = s(0), [f, p] = s("idle"), [m, h] = s(void 0), g = o(null), _ = n(() => {
636
697
  d(0), p("idle"), h(void 0);
637
698
  }, []), v = n(() => {
638
699
  g.current?.abort();
@@ -652,16 +713,16 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
652
713
  ...e.width === void 0 ? {} : { width: e.width },
653
714
  ...e.height === void 0 ? {} : { height: e.height }
654
715
  }), g = async () => {
655
- let s = n.mintTag ?? t.mintTag ?? H, l = N(i, s), u = await r.runPromise(l({
716
+ let s = n.mintTag ?? t.mintTag ?? W, l = F(i, s), u = await r.runPromise(l({
656
717
  contentType: c,
657
718
  ...m,
658
719
  ...d ? { key: d } : {}
659
- })), f = await Re(y(u.uploadUrl), c, e, o, a);
720
+ })), f = await ze(y(u.uploadUrl), c, e, o, a);
660
721
  return h(f);
661
722
  }, _ = async () => {
662
- let s = n.presignMintTag ?? t.presignMintTag ?? Oe, l = n.finalizeTag ?? t.finalizeTag ?? ke, u;
723
+ let s = n.presignMintTag ?? t.presignMintTag ?? ke, l = n.finalizeTag ?? t.finalizeTag ?? Ae, u;
663
724
  try {
664
- let e = N(i, s);
725
+ let e = F(i, s);
665
726
  u = await r.runPromise(e({
666
727
  contentType: c,
667
728
  ...m
@@ -669,11 +730,11 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
669
730
  } catch {
670
731
  return null;
671
732
  }
672
- await Le(u.uploadUrl, c, e, o, a);
673
- let d = N(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
733
+ await Re(u.uploadUrl, c, e, o, a);
734
+ let d = F(i, l), f = await r.runPromise(d({ finalizeToken: u.finalizeToken }));
674
735
  return h(f);
675
736
  }, v = async () => {
676
- let s = n.beginResumableTag ?? t.beginResumableTag ?? Ae, l = N(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
737
+ let s = n.beginResumableTag ?? t.beginResumableTag ?? je, l = F(i, s), u = e.size, d = n.chunkSize ?? t.chunkSize, f = await r.runPromise(l({
677
738
  contentType: c,
678
739
  size: u,
679
740
  ...m,
@@ -684,7 +745,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
684
745
  for (;;) {
685
746
  if (a.aborted) throw new DOMException("upload aborted", "AbortError");
686
747
  try {
687
- let e = await Ie(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
748
+ let e = await Le(`${p}?${`token=${encodeURIComponent(f.resumableToken)}&index=${t}${s ? "&final=1" : ""}`}`, c, i, (e) => o((b + e * l) / u), a, s);
688
749
  s && (x = e);
689
750
  break;
690
751
  } catch (e) {
@@ -696,9 +757,9 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
696
757
  if (!x) throw Error("resumable upload produced no final reply");
697
758
  return h(x);
698
759
  }, b = async () => {
699
- let s = n.multipartBeginTag ?? t.multipartBeginTag ?? je, u = n.multipartSignTag ?? t.multipartSignTag ?? Me, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? Ne, f = n.multipartAbortTag ?? t.multipartAbortTag ?? Pe, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
760
+ let s = n.multipartBeginTag ?? t.multipartBeginTag ?? Me, u = n.multipartSignTag ?? t.multipartSignTag ?? Ne, d = n.multipartCompleteTag ?? t.multipartCompleteTag ?? Pe, f = n.multipartAbortTag ?? t.multipartAbortTag ?? Fe, p = e.size, h = n.chunkSize ?? t.chunkSize, g;
700
761
  try {
701
- let e = N(i, s);
762
+ let e = F(i, s);
702
763
  g = await r.runPromise(e({
703
764
  contentType: c,
704
765
  size: p,
@@ -708,7 +769,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
708
769
  } catch {
709
770
  return null;
710
771
  }
711
- let _ = N(i, u), v = N(i, d), b = N(i, f), x = Math.max(1, g.partSize), S = Math.max(1, Math.ceil(p / x)), C = Math.max(0, n.retries ?? t.retries ?? 1), w = [], T = 0;
772
+ let _ = F(i, u), v = F(i, d), b = F(i, f), x = Math.max(1, g.partSize), S = Math.max(1, Math.ceil(p / x)), C = Math.max(0, n.retries ?? t.retries ?? 1), w = [], T = 0;
712
773
  try {
713
774
  for (let t = 0; t < S; t++) {
714
775
  let n = t * x, i = Math.min(p, n + x), s = e.slice(n, i), c = t + 1, l = i - n, u = 0;
@@ -718,7 +779,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
718
779
  let { url: e } = await r.runPromise(_({
719
780
  multipartToken: g.multipartToken,
720
781
  partNumber: c
721
- })), t = await Fe(e, s, (e) => o((T + e * l) / p), a);
782
+ })), t = await Ie(e, s, (e) => o((T + e * l) / p), a);
722
783
  w.push({
723
784
  partNumber: c,
724
785
  etag: t
@@ -792,7 +853,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
792
853
  } catch (e) {
793
854
  throw p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
794
855
  source: "action",
795
- tag: n.mintTag ?? t.mintTag ?? H,
856
+ tag: n.mintTag ?? t.mintTag ?? W,
796
857
  error: e
797
858
  }), e;
798
859
  }
@@ -818,7 +879,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
818
879
  } catch (e) {
819
880
  throw r.abort(), p("error"), h(e), e instanceof DOMException && e.name === "AbortError" || l.emit({
820
881
  source: "action",
821
- tag: n.mintTag ?? t.mintTag ?? H,
882
+ tag: n.mintTag ?? t.mintTag ?? W,
822
883
  error: e
823
884
  }), e;
824
885
  }
@@ -863,8 +924,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
863
924
  w,
864
925
  T
865
926
  ]);
866
- }, U = async (e) => {
867
- let t = N(e.client, e.tag), n = d.currentSpan.pipe(d.tap((t) => d.sync(() => {
927
+ }, G = async (e) => {
928
+ let t = F(e.client, e.tag), n = d.currentSpan.pipe(d.tap((t) => d.sync(() => {
868
929
  x({
869
930
  traceId: t.traceId,
870
931
  spanId: t.spanId,
@@ -876,8 +937,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
876
937
  "rpc.tag": e.tag
877
938
  } }));
878
939
  return e.runtime.runPromise(n);
879
- }, Be = (e, t) => {
880
- let { runtime: r, client: i, descriptors: o } = M(e);
940
+ }, Ve = (e, t) => {
941
+ let { runtime: r, client: i, descriptors: o } = P(e);
881
942
  if (process.env.NODE_ENV !== "production") {
882
943
  let n = o[t]?.kind;
883
944
  n !== void 0 && n !== "workflow" && console.error(`[@voltro/client] useWorkflow('${e}', '${t}') targets a ${n}, not a workflow. Use ${n === "mutation" ? "useMutation" : n === "action" ? "useAction" : `the ${n} hook`} instead.`);
@@ -885,7 +946,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
885
946
  let [c, l] = s(!1), [u, d] = s(void 0), [f, p] = s(void 0), m = n(async (n) => {
886
947
  l(!0), d(void 0);
887
948
  try {
888
- let a = await U({
949
+ let a = await G({
889
950
  apiName: e,
890
951
  runtime: r,
891
952
  client: i,
@@ -905,7 +966,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
905
966
  i,
906
967
  t
907
968
  ]), h = n(async (t) => {
908
- await U({
969
+ await G({
909
970
  apiName: e,
910
971
  runtime: r,
911
972
  client: i,
@@ -918,7 +979,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
918
979
  r,
919
980
  i
920
981
  ]), g = n(async (t) => {
921
- await U({
982
+ await G({
922
983
  apiName: e,
923
984
  runtime: r,
924
985
  client: i,
@@ -930,7 +991,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
930
991
  e,
931
992
  r,
932
993
  i
933
- ]), _ = n(async (t, n, a) => U({
994
+ ]), _ = n(async (t, n, a) => G({
934
995
  apiName: e,
935
996
  runtime: r,
936
997
  client: i,
@@ -945,7 +1006,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
945
1006
  e,
946
1007
  r,
947
1008
  i
948
- ]), v = n(async (t, n, a, o) => U({
1009
+ ]), v = n(async (t, n, a, o) => G({
949
1010
  apiName: e,
950
1011
  runtime: r,
951
1012
  client: i,
@@ -981,11 +1042,11 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
981
1042
  u,
982
1043
  f
983
1044
  ]);
984
- }, Ve = (e) => {
985
- let { runtime: t, client: r } = M(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a) => {
1045
+ }, He = (e) => {
1046
+ let { runtime: t, client: r } = P(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a) => {
986
1047
  o(!0), l(void 0);
987
1048
  try {
988
- let o = await U({
1049
+ let o = await G({
989
1050
  apiName: e,
990
1051
  runtime: t,
991
1052
  client: r,
@@ -1019,11 +1080,11 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1019
1080
  c,
1020
1081
  u
1021
1082
  ]);
1022
- }, He = (e) => {
1023
- let { runtime: t, client: r } = M(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a, s) => {
1083
+ }, Ue = (e) => {
1084
+ let { runtime: t, client: r } = P(e), [i, o] = s(!1), [c, l] = s(void 0), [u, d] = s(void 0), f = n(async (n, i, a, s) => {
1024
1085
  o(!0), l(void 0);
1025
1086
  try {
1026
- let o = await U({
1087
+ let o = await G({
1027
1088
  apiName: e,
1028
1089
  runtime: t,
1029
1090
  client: r,
@@ -1058,78 +1119,78 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1058
1119
  c,
1059
1120
  u
1060
1121
  ]);
1061
- }, Ue = (e, t) => {
1062
- let n = P(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
1122
+ }, We = (e, t) => {
1123
+ let n = I(e, "__voltro.workflow.run", t ? { id: t } : {}, { skip: t === void 0 });
1063
1124
  return {
1064
1125
  ...n,
1065
1126
  run: n.data?.[0]
1066
1127
  };
1067
- }, We = (e, t = {}, n = {}) => {
1068
- let r = P(e, "__voltro.workflow.runs", t, n);
1128
+ }, Ge = (e, t = {}, n = {}) => {
1129
+ let r = I(e, "__voltro.workflow.runs", t, n);
1069
1130
  return {
1070
1131
  ...r,
1071
1132
  runs: r.data ?? []
1072
1133
  };
1073
- }, Ge = (e, t) => {
1074
- let n = P(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
1134
+ }, Ke = (e, t) => {
1135
+ let n = I(e, "__voltro.workflow.run.steps", t ? { runId: t } : {}, { skip: t === void 0 });
1075
1136
  return {
1076
1137
  ...n,
1077
1138
  steps: n.data ?? []
1078
1139
  };
1079
- }, W = (e, t) => {
1080
- let n = P(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
1140
+ }, K = (e, t) => {
1141
+ let n = I(e, "__voltro.workflow.run.events", t ? { runId: t } : {}, { skip: t === void 0 });
1081
1142
  return {
1082
1143
  ...n,
1083
1144
  events: n.data ?? []
1084
1145
  };
1085
- }, Ke = W, qe = (e, t = {}, n = {}) => {
1086
- let r = P(e, "__voltro.workflow.domainEvents", t, n);
1146
+ }, qe = K, Je = (e, t = {}, n = {}) => {
1147
+ let r = I(e, "__voltro.workflow.domainEvents", t, n);
1087
1148
  return {
1088
1149
  ...r,
1089
1150
  events: r.data ?? []
1090
1151
  };
1091
- }, Je = (e, t) => {
1092
- let n = P(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
1152
+ }, Ye = (e, t) => {
1153
+ let n = I(e, "__voltro.workflow.event.deliveries", t ? { eventId: t } : {}, { skip: t === void 0 });
1093
1154
  return {
1094
1155
  ...n,
1095
1156
  deliveries: n.data ?? []
1096
1157
  };
1097
- }, G = (e, t) => {
1158
+ }, q = (e, t) => {
1098
1159
  let n = e.payload;
1099
1160
  if (!n || typeof n != "object") return;
1100
1161
  let r = n[t];
1101
1162
  return typeof r == "string" ? r : void 0;
1102
- }, Ye = (e) => {
1163
+ }, Xe = (e) => {
1103
1164
  let t = e.payload;
1104
1165
  if (!t || typeof t != "object") return;
1105
1166
  let n = t.updateId;
1106
1167
  return typeof n == "string" ? n : void 0;
1107
- }, Xe = (e) => {
1168
+ }, Ze = (e) => {
1108
1169
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
1109
1170
  for (let r of e) if (r.eventType === "signal-received") {
1110
- let e = G(r, "signalName");
1171
+ let e = q(r, "signalName");
1111
1172
  e && t.add(e);
1112
1173
  } else if (r.eventType === "update-completed" || r.eventType === "update-failed") {
1113
- let e = Ye(r);
1174
+ let e = Xe(r);
1114
1175
  e && n.add(e);
1115
1176
  }
1116
1177
  for (let r = e.length - 1; r >= 0; --r) {
1117
1178
  let i = e[r];
1118
1179
  if (i.eventType === "signal-awaited") {
1119
- let e = G(i, "signalName");
1180
+ let e = q(i, "signalName");
1120
1181
  if (e && !t.has(e)) return {
1121
1182
  name: e,
1122
1183
  kind: "signal"
1123
1184
  };
1124
1185
  } else if (i.eventType === "update-requested") {
1125
- let e = Ye(i), t = G(i, "updateName");
1186
+ let e = Xe(i), t = q(i, "updateName");
1126
1187
  if (t && (!e || !n.has(e))) return {
1127
1188
  name: t,
1128
1189
  kind: "update"
1129
1190
  };
1130
1191
  }
1131
1192
  }
1132
- }, Ze = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), Qe = (e, t) => {
1193
+ }, Qe = (e) => e.find((e) => e.status === "running") || (e.length > 0 ? e[e.length - 1] : void 0), $e = (e, t) => {
1133
1194
  if (!e || e.status !== "failed") return;
1134
1195
  let n = t.find((e) => e.status === "failed");
1135
1196
  return {
@@ -1137,8 +1198,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1137
1198
  message: e.errorMessage,
1138
1199
  step: n?.stepName
1139
1200
  };
1140
- }, $e = (e, t) => {
1141
- let r = Ue(e, t), i = Ge(e, t), o = W(e, t), s = Be(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = o.events, d = n(async () => {
1201
+ }, et = (e, t) => {
1202
+ let r = We(e, t), i = Ke(e, t), o = K(e, t), s = Ve(e, r.run?.tag ?? ""), c = r.run, l = i.steps, u = o.events, d = n(async () => {
1142
1203
  if (!c) throw Error("useWorkflowRunState: no run loaded — cannot cancel");
1143
1204
  await s.cancel({
1144
1205
  workflowName: c.tag,
@@ -1162,9 +1223,9 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1162
1223
  status: c?.status,
1163
1224
  steps: l,
1164
1225
  events: u,
1165
- currentStep: Ze(l),
1166
- waitingFor: c?.status === "suspended" ? Xe(u) : void 0,
1167
- error: Qe(c, l),
1226
+ currentStep: Qe(l),
1227
+ waitingFor: c?.status === "suspended" ? Ze(u) : void 0,
1228
+ error: $e(c, l),
1168
1229
  traceId: c?.traceId,
1169
1230
  loading: r.data === void 0,
1170
1231
  cancel: d,
@@ -1181,8 +1242,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1181
1242
  p,
1182
1243
  m
1183
1244
  ]);
1184
- }, et = (e, t) => {
1185
- let { runtime: r, client: i } = M(e), [a, c] = s([]), [u, f] = s("idle"), [m, h] = s(void 0), _ = o(null), v = n(() => {
1245
+ }, tt = (e, t) => {
1246
+ let { runtime: r, client: i } = P(e), [a, c] = s([]), [u, f] = s("idle"), [m, h] = s(void 0), _ = o(null), v = n(() => {
1186
1247
  let e = _.current;
1187
1248
  e && (_.current = null, r.runFork(p.interrupt(e)), f((e) => e === "streaming" ? "idle" : e));
1188
1249
  }, [r]);
@@ -1193,7 +1254,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1193
1254
  start: n((e = {}) => {
1194
1255
  let n = _.current;
1195
1256
  n && r.runFork(p.interrupt(n)), c([]), h(void 0), f("streaming");
1196
- let a = N(i, t)(e), o = g.runForEach(a, (e) => d.sync(() => c((t) => [...t, e]))).pipe(d.matchCause({
1257
+ let a = F(i, t)(e), o = g.runForEach(a, (e) => d.sync(() => c((t) => [...t, e]))).pipe(d.matchCause({
1197
1258
  onSuccess: () => {
1198
1259
  f("done");
1199
1260
  },
@@ -1209,7 +1270,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1209
1270
  ]),
1210
1271
  cancel: v
1211
1272
  };
1212
- }, tt = (e, t, n, r) => {
1273
+ }, nt = (e, t, n, r) => {
1213
1274
  let i = 0, a = !1, o = (e) => d.sync(() => {
1214
1275
  e.seq <= i || (i = e.seq, n.onEvent(e.event), r.isTerminal(e.event) && (a = !0));
1215
1276
  }), s = (e, t, a) => {
@@ -1232,15 +1293,15 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1232
1293
  }));
1233
1294
  });
1234
1295
  return c(0);
1235
- }, nt = (e) => {
1296
+ }, rt = (e) => {
1236
1297
  let t = e?._tag;
1237
1298
  return t === "done" || t === "error";
1238
- }, rt = (e, t, r = {}) => {
1239
- let { runtime: i, client: a } = M(e), [c, l] = s([]), [u, d] = s("idle"), [f, m] = s(0), [h, g] = s(void 0), _ = o(null), v = {
1299
+ }, it = (e, t, r = {}) => {
1300
+ let { runtime: i, client: a } = P(e), [c, l] = s([]), [u, d] = s("idle"), [f, m] = s(0), [h, g] = s(void 0), _ = o(null), v = {
1240
1301
  maxReconnects: r.maxReconnects ?? 6,
1241
1302
  backoffMs: r.backoffMs ?? 400,
1242
1303
  maxBackoffMs: r.maxBackoffMs ?? 8e3,
1243
- isTerminal: r.isTerminal ?? nt
1304
+ isTerminal: r.isTerminal ?? rt
1244
1305
  }, y = n(() => {
1245
1306
  let e = _.current;
1246
1307
  e && (_.current = null, i.runFork(p.interrupt(e)), d((e) => e === "streaming" || e === "reconnecting" ? "idle" : e));
@@ -1253,13 +1314,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1253
1314
  start: n((e = {}) => {
1254
1315
  let n = _.current;
1255
1316
  n && i.runFork(p.interrupt(n)), l([]), g(void 0), m(0), d("streaming");
1256
- let r = N(a, t), o = {
1317
+ let r = F(a, t), o = {
1257
1318
  onEvent: (e) => l((t) => [...t, e]),
1258
1319
  onStatus: d,
1259
1320
  onReconnect: () => m((e) => e + 1),
1260
1321
  onError: g
1261
1322
  };
1262
- _.current = i.runFork(tt(r, e, o, v));
1323
+ _.current = i.runFork(nt(r, e, o, v));
1263
1324
  }, [
1264
1325
  i,
1265
1326
  a,
@@ -1271,13 +1332,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1271
1332
  ]),
1272
1333
  cancel: y
1273
1334
  };
1274
- }, it = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), at = (e) => {
1335
+ }, at = (e, t) => e.order - t.order || (e.stepOrder ?? 0) - (t.stepOrder ?? 0), ot = (e) => {
1275
1336
  for (let t = e.length - 1; t >= 0; --t) {
1276
1337
  let n = e[t];
1277
1338
  if (n.role === "user" && n.content) return n.content;
1278
1339
  }
1279
- }, ot = (e, t, r) => {
1280
- let { threadId: i } = r, o = P(e, `${t}.messages`, { threadId: i }), s = V(e, `${t}.send`), c = a(() => [...o.data ?? []].sort(it), [o.data]), l = n((e, t = {}) => s.run({
1340
+ }, st = (e, t, r) => {
1341
+ let { threadId: i } = r, o = I(e, `${t}.messages`, { threadId: i }), s = U(e, `${t}.send`), c = a(() => [...o.data ?? []].sort(at), [o.data]), l = n((e, t = {}) => s.run({
1281
1342
  threadId: i,
1282
1343
  order: o.data?.length ?? 0,
1283
1344
  prompt: e,
@@ -1287,7 +1348,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1287
1348
  i,
1288
1349
  o.data
1289
1350
  ]), u = n(() => {
1290
- let e = at(c);
1351
+ let e = ot(c);
1291
1352
  return e === void 0 ? void 0 : l(e);
1292
1353
  }, [c, l]);
1293
1354
  return a(() => ({
@@ -1307,8 +1368,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1307
1368
  l,
1308
1369
  u
1309
1370
  ]);
1310
- }, st = (e, t) => {
1311
- let { events: r, status: c, error: l, start: u, cancel: d } = et(e, t), [f, p] = s([]), m = o(null), h = a(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
1371
+ }, ct = (e, t) => {
1372
+ let { events: r, status: c, error: l, start: u, cancel: d } = tt(e, t), [f, p] = s([]), m = o(null), h = a(() => r.filter((e) => e._tag === "token").map((e) => e.text ?? "").join(""), [r]);
1312
1373
  return i(() => {
1313
1374
  if (c !== "done" || m.current === null) return;
1314
1375
  let e = m.current;
@@ -1334,8 +1395,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1334
1395
  }, [u]),
1335
1396
  cancel: d
1336
1397
  };
1337
- }, ct = (e, t) => {
1338
- let r = V(e, t), [i, o] = s(void 0), c = n(async (e) => {
1398
+ }, lt = (e, t) => {
1399
+ let r = U(e, t), [i, o] = s(void 0), c = n(async (e) => {
1339
1400
  let t = await r.run({ question: e });
1340
1401
  return o(t), t;
1341
1402
  }, [r]), l = n(() => o(void 0), []);
@@ -1352,43 +1413,43 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1352
1413
  r.error,
1353
1414
  l
1354
1415
  ]);
1355
- }, lt = (e) => {
1356
- let { cache: t, runtime: r } = M(e);
1416
+ }, ut = (e) => {
1417
+ let { cache: t, runtime: r } = P(e);
1357
1418
  return n(() => {
1358
1419
  t.refreshAll(r);
1359
1420
  }, [t, r]);
1360
- }, K = /* @__PURE__ */ new Set(), ut = (e) => {
1361
- for (let t of K) try {
1421
+ }, J = /* @__PURE__ */ new Set(), dt = (e) => {
1422
+ for (let t of J) try {
1362
1423
  t(e);
1363
1424
  } catch {}
1364
- }, dt = (e) => (K.add(e), () => {
1365
- K.delete(e);
1366
- }), ft = (e, t) => {
1367
- ut({
1425
+ }, ft = (e) => (J.add(e), () => {
1426
+ J.delete(e);
1427
+ }), pt = (e, t) => {
1428
+ dt({
1368
1429
  error: e,
1369
1430
  source: "manual",
1370
1431
  ...t ? { context: t } : {}
1371
1432
  });
1372
- }, pt = (e, t) => {
1373
- let { errorBus: n } = M(e);
1433
+ }, mt = (e, t) => {
1434
+ let { errorBus: n } = P(e);
1374
1435
  i(() => n.on(t), [n, t]);
1375
- }, mt = "#/$defs/", ht = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), q = (e, t) => {
1436
+ }, ht = "#/$defs/", gt = (e) => e.replace(/[_-]+/g, " ").replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/\s+/g, " ").trim().replace(/^./, (e) => e.toUpperCase()), Y = (e, t) => {
1376
1437
  let n = e;
1377
1438
  for (let e = 0; e < 8; e += 1) {
1378
1439
  let e = n.$ref;
1379
- if (typeof e != "string" || !e.startsWith(mt)) return n;
1440
+ if (typeof e != "string" || !e.startsWith(ht)) return n;
1380
1441
  let r = t[e.slice(8)];
1381
1442
  if (!r || typeof r != "object") return n;
1382
1443
  n = r;
1383
1444
  }
1384
1445
  return n;
1385
- }, gt = (e) => {
1446
+ }, _t = (e) => {
1386
1447
  if (!e || typeof e != "object") return !1;
1387
1448
  let t = e;
1388
1449
  if (t.type === "null" || t.const === null) return !0;
1389
1450
  let n = t.enum;
1390
1451
  return Array.isArray(n) && n.length === 1 && n[0] === null;
1391
- }, _t = (e, t) => {
1452
+ }, vt = (e, t) => {
1392
1453
  let n = e.type;
1393
1454
  if (Array.isArray(n) && n.includes("null")) {
1394
1455
  let t = n.filter((e) => e !== "null");
@@ -1403,9 +1464,9 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1403
1464
  for (let n of ["anyOf", "oneOf"]) {
1404
1465
  let r = e[n];
1405
1466
  if (!Array.isArray(r)) continue;
1406
- let i = r.filter((e) => !gt(e));
1467
+ let i = r.filter((e) => !_t(e));
1407
1468
  if (i.length !== r.length) return i.length === 1 ? {
1408
- node: q(i[0], t),
1469
+ node: Y(i[0], t),
1409
1470
  nullable: !0
1410
1471
  } : {
1411
1472
  node: {
@@ -1419,14 +1480,14 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1419
1480
  node: e,
1420
1481
  nullable: !1
1421
1482
  };
1422
- }, vt = (e) => e.map((e) => ({
1483
+ }, yt = (e) => e.map((e) => ({
1423
1484
  value: String(e),
1424
- label: ht(String(e))
1425
- })), yt = (e) => {
1485
+ label: gt(String(e))
1486
+ })), bt = (e) => {
1426
1487
  let t = e.enum;
1427
1488
  if (Array.isArray(t) && t.length > 0) return {
1428
1489
  widget: "select",
1429
- options: vt(t)
1490
+ options: yt(t)
1430
1491
  };
1431
1492
  let n = e.type, r = Array.isArray(n) ? n.find((e) => e !== "null") : n, i = e.format;
1432
1493
  switch (r) {
@@ -1437,38 +1498,38 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1437
1498
  case "array": return { widget: "multi-select" };
1438
1499
  default: return { widget: "custom" };
1439
1500
  }
1440
- }, bt = (e, t, n) => Object.entries(e).map(([e, r]) => {
1441
- let { node: i, nullable: a } = _t(q(r, n), n), o = q(i, n), { widget: s, options: c } = yt(o);
1501
+ }, xt = (e, t, n) => Object.entries(e).map(([e, r]) => {
1502
+ let { node: i, nullable: a } = vt(Y(r, n), n), o = Y(i, n), { widget: s, options: c } = bt(o);
1442
1503
  return {
1443
1504
  name: e,
1444
- label: ht(e),
1505
+ label: gt(e),
1445
1506
  widget: s,
1446
1507
  required: t.has(e),
1447
1508
  nullable: a,
1448
1509
  ...c ? { options: c } : {},
1449
1510
  jsonSchema: o
1450
1511
  };
1451
- }), xt = (e) => {
1512
+ }), St = (e) => {
1452
1513
  try {
1453
1514
  return m.make(e);
1454
1515
  } catch {
1455
1516
  return;
1456
1517
  }
1457
- }, J = (e) => {
1458
- let t = xt(e);
1518
+ }, X = (e) => {
1519
+ let t = St(e);
1459
1520
  if (t === void 0) return [];
1460
- let n = t.$defs ?? {}, r = q(t, n), i = r.properties;
1461
- return i ? bt(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
1462
- }, Y = (e) => {
1463
- let t = xt(e);
1521
+ let n = t.$defs ?? {}, r = Y(t, n), i = r.properties;
1522
+ return i ? xt(i, new Set(Array.isArray(r.required) ? r.required : []), n) : [];
1523
+ }, Z = (e) => {
1524
+ let t = St(e);
1464
1525
  if (t === void 0) return [];
1465
- let n = t.$defs ?? {}, r = q(t, n);
1526
+ let n = t.$defs ?? {}, r = Y(t, n);
1466
1527
  if (r.type !== "array") return [];
1467
1528
  let i = r.items;
1468
1529
  if (!i || typeof i != "object") return [];
1469
- let a = q(i, n), o = a.properties;
1470
- return o ? bt(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
1471
- }, X = (e, t) => {
1530
+ let a = Y(i, n), o = a.properties;
1531
+ return o ? xt(o, new Set(Array.isArray(a.required) ? a.required : []), n) : [];
1532
+ }, Q = (e, t) => {
1472
1533
  let n = h.decodeUnknownEither(e, { errors: "all" })(t);
1473
1534
  if (n._tag === "Right") return {
1474
1535
  valid: !0,
@@ -1483,10 +1544,10 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1483
1544
  valid: !1,
1484
1545
  errors: r
1485
1546
  };
1486
- }, St = (e, t, r) => {
1487
- let i = M(e), c = B(e, t), l = r.schema ?? i.descriptors[t]?.input;
1547
+ }, Ct = (e, t, r) => {
1548
+ let i = P(e), c = H(e, t), l = r.schema ?? i.descriptors[t]?.input;
1488
1549
  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.`);
1489
- let u = a(() => l ? J(l) : [], [l]), d = o(r.defaults ?? {}), [f, p] = s(d.current), [m, h] = s({}), g = n((e, t) => {
1550
+ let u = a(() => l ? X(l) : [], [l]), d = o(r.defaults ?? {}), [f, p] = s(d.current), [m, h] = s({}), g = n((e, t) => {
1490
1551
  p((n) => ({
1491
1552
  ...n,
1492
1553
  [e]: t
@@ -1500,7 +1561,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1500
1561
  p(d.current), h({});
1501
1562
  }, []), y = n(async () => {
1502
1563
  if (l !== void 0) {
1503
- let e = X(l, f);
1564
+ let e = Q(l, f);
1504
1565
  if (h(e.errors), !e.valid) return;
1505
1566
  }
1506
1567
  return c.mutate(f);
@@ -1513,7 +1574,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1513
1574
  fields: u,
1514
1575
  values: f,
1515
1576
  errors: m,
1516
- isValid: a(() => l === void 0 || X(l, f).valid, [l, f]),
1577
+ isValid: a(() => l === void 0 || Q(l, f).valid, [l, f]),
1517
1578
  pending: c.pending,
1518
1579
  submitError: c.error,
1519
1580
  data: c.data,
@@ -1522,13 +1583,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1522
1583
  reset: v,
1523
1584
  submit: y
1524
1585
  };
1525
- }, Z = (e, t, n) => e.map((e) => {
1586
+ }, wt = (e, t, n) => e.map((e) => {
1526
1587
  let r = String(e[n] ?? ""), i = e[t];
1527
1588
  return {
1528
1589
  value: r,
1529
1590
  label: i == null ? r : String(i)
1530
1591
  };
1531
- }), Ct = (e, t, r = {}) => {
1592
+ }), Tt = (e, t, r = {}) => {
1532
1593
  let o = r.debounceMs ?? 200, c = r.labelField ?? "name", l = r.valueField ?? "id", u = r.input ?? ((e) => ({ q: e })), [d, f] = s(r.initialTerm ?? ""), [p, m] = s(d);
1533
1594
  i(() => {
1534
1595
  if (d === p) return;
@@ -1539,7 +1600,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1539
1600
  p,
1540
1601
  o
1541
1602
  ]);
1542
- let h = r.skipUntilTerm === !0 && p.trim() === "", g = P(e, t, a(() => u(p), [u, p]), { skip: h }), _ = a(() => Z(g.data ?? [], c, l), [
1603
+ let h = r.skipUntilTerm === !0 && p.trim() === "", g = I(e, t, a(() => u(p), [u, p]), { skip: h }), _ = a(() => wt(g.data ?? [], c, l), [
1543
1604
  g.data,
1544
1605
  c,
1545
1606
  l
@@ -1550,13 +1611,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1550
1611
  term: d,
1551
1612
  search: v
1552
1613
  };
1553
- }, wt = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Tt = (e, t, r = {}) => {
1554
- let i = M(e), [o, c] = s(r.pageSize), l = P(e, t, a(() => o === void 0 ? r.input ?? {} : {
1614
+ }, Et = (e, t) => e === t ? 0 : e == null ? 1 : t == null || e < t ? -1 : 1, Dt = (e, t, r = {}) => {
1615
+ let i = P(e), [o, c] = s(r.pageSize), l = I(e, t, a(() => o === void 0 ? r.input ?? {} : {
1555
1616
  ...r.input,
1556
1617
  limit: o
1557
1618
  }, [r.input, o])), u = i.descriptors[t]?.output, d = n(() => {
1558
1619
  r.pageSize !== void 0 && c((e) => (e ?? r.pageSize) + r.pageSize);
1559
- }, [r.pageSize]), f = a(() => r.columns ?? (u === void 0 ? [] : Y(u)), [r.columns, u]), [p, m] = s(r.initialSort), h = n((e) => {
1620
+ }, [r.pageSize]), f = a(() => r.columns ?? (u === void 0 ? [] : Z(u)), [r.columns, u]), [p, m] = s(r.initialSort), h = n((e) => {
1560
1621
  m((t) => t?.column === e ? {
1561
1622
  column: e,
1562
1623
  direction: t.direction === "asc" ? "desc" : "asc"
@@ -1571,7 +1632,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1571
1632
  let e = l.data ?? [];
1572
1633
  if (p === void 0) return e;
1573
1634
  let t = p.direction === "asc" ? 1 : -1;
1574
- return [...e].sort((e, n) => wt(e[p.column], n[p.column]) * t);
1635
+ return [...e].sort((e, n) => Et(e[p.column], n[p.column]) * t);
1575
1636
  }, [l.data, p]),
1576
1637
  loading: l.data === void 0,
1577
1638
  error: l.error,
@@ -1580,14 +1641,14 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1580
1641
  loadMore: d,
1581
1642
  hasMore: o !== void 0 && (l.data?.length ?? 0) >= o
1582
1643
  };
1583
- }, Et = (e, t, n, r) => {
1644
+ }, Ot = (e, t, n, r) => {
1584
1645
  let i = e.replace(/\/$/, ""), a = new URLSearchParams({
1585
1646
  table: t,
1586
1647
  id: n
1587
1648
  });
1588
1649
  return r !== void 0 && a.set("column", r), `${i}/_voltro/inspect/provenance?${a.toString()}`;
1589
- }, Dt = Et, Ot = (e, t, n, r) => {
1590
- let { inspectBaseUrl: a } = M(e), [o, c] = s({
1650
+ }, kt = Ot, At = (e, t, n, r) => {
1651
+ let { inspectBaseUrl: a } = P(e), [o, c] = s({
1591
1652
  data: void 0,
1592
1653
  loading: !0,
1593
1654
  error: void 0
@@ -1599,7 +1660,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1599
1660
  loading: !0,
1600
1661
  error: void 0
1601
1662
  });
1602
- let i = Et(a ?? "", t, n, r);
1663
+ let i = Ot(a ?? "", t, n, r);
1603
1664
  return fetch(i).then(async (e) => {
1604
1665
  if (!e.ok) throw Error(`provenance fetch failed: HTTP ${e.status}`);
1605
1666
  return await e.json();
@@ -1625,8 +1686,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1625
1686
  n,
1626
1687
  r
1627
1688
  ]), o;
1628
- }, kt = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, At = (e) => {
1629
- let { inspectBaseUrl: t } = M(e), [n, r] = s({
1689
+ }, jt = (e) => `${e.replace(/\/$/, "")}/_voltro/inspect/manifest`, Mt = (e) => {
1690
+ let { inspectBaseUrl: t } = P(e), [n, r] = s({
1630
1691
  manifest: void 0,
1631
1692
  loading: !0,
1632
1693
  error: void 0
@@ -1637,7 +1698,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1637
1698
  manifest: void 0,
1638
1699
  loading: !0,
1639
1700
  error: void 0
1640
- }), fetch(kt(t ?? "")).then(async (e) => {
1701
+ }), fetch(jt(t ?? "")).then(async (e) => {
1641
1702
  if (!e.ok) throw Error(`manifest fetch failed: HTTP ${e.status}`);
1642
1703
  return await e.json();
1643
1704
  }).then((t) => {
@@ -1656,8 +1717,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1656
1717
  e = !0;
1657
1718
  };
1658
1719
  }, [e, t]), n;
1659
- }, jt = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Q = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Mt = (e) => e.tables.filter((e) => !e.framework).map((t) => {
1660
- let n = e.procedures.find((e) => e.kind === "query" && jt(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Q(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Q(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Q(e, t.name, "delete"));
1720
+ }, Nt = (e, t) => Array.isArray(e) ? e.includes(t) : e === t, Pt = (e, t, n) => e.targets?.some((e) => e.table === t && e.op === n) ?? !1, Ft = (e) => e.tables.filter((e) => !e.framework).map((t) => {
1721
+ let n = e.procedures.find((e) => e.kind === "query" && Nt(e.source, t.name)), r = e.procedures.find((e) => e.kind === "mutation" && Pt(e, t.name, "insert")), i = e.procedures.find((e) => e.kind === "mutation" && Pt(e, t.name, "update")), a = e.procedures.find((e) => e.kind === "mutation" && Pt(e, t.name, "delete"));
1661
1722
  return {
1662
1723
  table: t.name,
1663
1724
  columns: t.columns,
@@ -1670,7 +1731,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1670
1731
  writeScope: `${t.name}:write`,
1671
1732
  deleteScope: `${t.name}:delete`
1672
1733
  };
1673
- }), Nt = (e) => {
1734
+ }), It = (e) => {
1674
1735
  let [t, r] = s([]), [i, o] = s([]), c = n((e) => {
1675
1736
  r((t) => [...t, e]), o([]);
1676
1737
  }, []), l = n(async () => {
@@ -1698,8 +1759,8 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1698
1759
  l,
1699
1760
  u
1700
1761
  ]);
1701
- }, Pt = "__voltro.undo.log", Ft = "__voltro.undo.apply", It = "__voltro.undo.redo", Lt = (e, t) => {
1702
- let r = t?.limit, { data: i } = P(e, Pt, r === void 0 ? {} : { limit: r }), a = B(e, Ft), o = B(e, It), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
1762
+ }, Lt = "__voltro.undo.log", Rt = "__voltro.undo.apply", zt = "__voltro.undo.redo", Bt = (e, t) => {
1763
+ let r = t?.limit, { data: i } = I(e, Lt, r === void 0 ? {} : { limit: r }), a = H(e, Rt), o = H(e, zt), s = i ?? [], c = s.find((e) => !e.undone && !e.crossesAction), l = s.find((e) => e.undone), u = n(async (e) => {
1703
1764
  await a.mutate({ invocationId: e });
1704
1765
  }, [a]), d = n(async (e) => {
1705
1766
  await o.mutate({ invocationId: e });
@@ -1718,13 +1779,13 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1718
1779
  undoLast: f,
1719
1780
  redoLast: p
1720
1781
  };
1721
- }, Rt = (e, t) => ({
1782
+ }, Vt = (e, t) => ({
1722
1783
  name: e,
1723
1784
  map: t
1724
- }), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), zt = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Bt = (e, t, n) => {
1785
+ }), $ = (e, t) => e === void 0 ? null : typeof e == "string" ? { event: e } : e(t), Ht = /* @__PURE__ */ new Set(["onMount", "onUnmount"]), Ut = (e, t, n) => {
1725
1786
  let r = { ...t };
1726
1787
  for (let [i, a] of Object.entries(e.map)) {
1727
- if (zt.has(i) || a === void 0) continue;
1788
+ if (Ht.has(i) || a === void 0) continue;
1728
1789
  let e = t[i];
1729
1790
  r[i] = (...r) => {
1730
1791
  let i = $(a, t);
@@ -1732,7 +1793,7 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1732
1793
  };
1733
1794
  }
1734
1795
  return r;
1735
- }, Vt = (e, t, n) => {
1796
+ }, Wt = (e, t, n) => {
1736
1797
  let r = o({
1737
1798
  spec: e,
1738
1799
  props: t,
@@ -1748,45 +1809,45 @@ var b = /* @__PURE__ */ new Set(), x = (e) => {
1748
1809
  let e = r.current, t = $(e.spec.map.onUnmount, e.props);
1749
1810
  t !== null && e.sink(t);
1750
1811
  };
1751
- }, []), a(() => Bt(e, t, n), [
1812
+ }, []), a(() => Ut(e, t, n), [
1752
1813
  e,
1753
1814
  t,
1754
1815
  n
1755
1816
  ]);
1756
- }, Ht = (e, t) => {
1757
- let n = M(e).descriptors[t]?.input;
1758
- return a(() => n === void 0 ? [] : J(n), [n]);
1759
- }, Ut = (e, t) => {
1760
- let n = M(e).descriptors[t]?.output;
1761
- return a(() => n === void 0 ? [] : Y(n), [n]);
1762
- }, Wt = (e, t) => {
1817
+ }, Gt = (e, t) => {
1818
+ let n = P(e).descriptors[t]?.input;
1819
+ return a(() => n === void 0 ? [] : X(n), [n]);
1820
+ }, Kt = (e, t) => {
1821
+ let n = P(e).descriptors[t]?.output;
1822
+ return a(() => n === void 0 ? [] : Z(n), [n]);
1823
+ }, qt = (e, t) => {
1763
1824
  if (e === t) return !0;
1764
1825
  if (e.length !== t.length) return !1;
1765
1826
  for (let n = 0; n < e.length; n += 1) if (!Object.is(e[n], t[n])) return !1;
1766
1827
  return !0;
1767
- }, Gt = (e) => Object.keys(e).sort().map((t) => e[t]), Kt = (e, t) => {
1768
- let n = o(null), r = Gt(e);
1769
- return (n.current === null || !Wt(n.current.key, r)) && (n.current = {
1828
+ }, Jt = (e) => Object.keys(e).sort().map((t) => e[t]), Yt = (e, t) => {
1829
+ let n = o(null), r = Jt(e);
1830
+ return (n.current === null || !qt(n.current.key, r)) && (n.current = {
1770
1831
  key: r,
1771
1832
  value: t(e)
1772
1833
  }), n.current.value;
1773
- }, qt = "admin:full", Jt = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Yt = e({ scopes: [] });
1774
- function Xt(e) {
1775
- return t(Yt.Provider, { value: { scopes: e.scopes } }, e.children);
1834
+ }, Xt = "admin:full", Zt = (e, t) => e.includes("admin:full") ? !0 : (typeof t == "string" ? [t] : t).every((t) => e.includes(t)), Qt = e({ scopes: [] });
1835
+ function $t(e) {
1836
+ return t(Qt.Provider, { value: { scopes: e.scopes } }, e.children);
1776
1837
  }
1777
- var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) => {
1778
- let i = P(e, t, { ...n }, r);
1838
+ var en = () => r(Qt), tn = (e) => Zt(en().scopes, e), nn = (e, t, n, r = {}) => {
1839
+ let i = I(e, t, { ...n }, r);
1779
1840
  return a(() => ({
1780
1841
  allowed: i.data?.allowed === !0,
1781
1842
  pending: i.data === void 0
1782
1843
  }), [i.data]);
1783
- }, en = (e, t, n, r = {}) => {
1784
- let i = P(e, t, { ...n }, r);
1844
+ }, rn = (e, t, n, r = {}) => {
1845
+ let i = I(e, t, { ...n }, r);
1785
1846
  return a(() => ({
1786
1847
  allowedIds: new Set(i.data?.allowedIds ?? []),
1787
1848
  pending: i.data === void 0
1788
1849
  }), [i.data]);
1789
- }, tn = (e) => {
1850
+ }, an = (e) => {
1790
1851
  switch (e) {
1791
1852
  case "select":
1792
1853
  case "radio":
@@ -1802,25 +1863,25 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1802
1863
  case "switch": return "boolean";
1803
1864
  default: return null;
1804
1865
  }
1805
- }, nn = (e) => J(e).map((e) => {
1806
- let t = tn(e.widget);
1866
+ }, on = (e) => X(e).map((e) => {
1867
+ let t = an(e.widget);
1807
1868
  return t === null ? null : {
1808
1869
  name: e.name,
1809
1870
  label: e.label,
1810
1871
  kind: t,
1811
1872
  ...e.options ? { options: e.options } : {}
1812
1873
  };
1813
- }).filter((e) => e !== null), rn = (e) => {
1874
+ }).filter((e) => e !== null), sn = (e) => {
1814
1875
  let t = {};
1815
1876
  for (let [n, r] of Object.entries(e)) r === void 0 || r === "" || Array.isArray(r) && r.length === 0 || (t[n] = r);
1816
1877
  return t;
1817
- }, an = (e, t, r = {}) => {
1818
- let i = M(e).descriptors[t]?.input, o = a(() => i === void 0 ? [] : nn(i), [i]), [c, l] = s(r.initial ?? {}), u = n((e, t) => {
1819
- l((n) => rn({
1878
+ }, cn = (e, t, r = {}) => {
1879
+ let i = P(e).descriptors[t]?.input, o = a(() => i === void 0 ? [] : on(i), [i]), [c, l] = s(r.initial ?? {}), u = n((e, t) => {
1880
+ l((n) => sn({
1820
1881
  ...n,
1821
1882
  [e]: t
1822
1883
  }));
1823
- }, []), d = n(() => l({}), []), f = P(e, t, a(() => rn(c), [c]));
1884
+ }, []), d = n(() => l({}), []), f = I(e, t, a(() => sn(c), [c]));
1824
1885
  return {
1825
1886
  filters: o,
1826
1887
  values: c,
@@ -1831,20 +1892,20 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1831
1892
  loading: f.data === void 0,
1832
1893
  error: f.error
1833
1894
  };
1834
- }, on = (e, t, n = {}) => {
1835
- let r = P(e, t, n), i = r.data;
1895
+ }, ln = (e, t, n = {}) => {
1896
+ let r = I(e, t, n), i = r.data;
1836
1897
  return {
1837
1898
  record: Array.isArray(i) ? i[0] : i,
1838
1899
  loading: i === void 0,
1839
1900
  error: r.error
1840
1901
  };
1841
- }, sn = (e, t = 300) => {
1902
+ }, un = (e, t = 300) => {
1842
1903
  let [n, r] = s(e);
1843
1904
  return i(() => {
1844
1905
  let n = setTimeout(() => r(e), t);
1845
1906
  return () => clearTimeout(n);
1846
1907
  }, [e, t]), n;
1847
- }, cn = (e) => {
1908
+ }, dn = (e) => {
1848
1909
  let { value: t, debouncedValue: n, data: r, interpret: i, skipEmpty: a = !0 } = e;
1849
1910
  if (a && t.trim() === "") return {
1850
1911
  status: "idle",
@@ -1862,19 +1923,19 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1862
1923
  valid: o.valid,
1863
1924
  message: o.message
1864
1925
  };
1865
- }, ln = (e, t, n, r) => {
1866
- let { input: i, interpret: o, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = sn(n, s), u = c && l.trim() === "", d = P(e, t, a(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
1867
- return cn({
1926
+ }, fn = (e, t, n, r) => {
1927
+ let { input: i, interpret: o, debounceMs: s = 300, skipEmpty: c = !0 } = r, l = un(n, s), u = c && l.trim() === "", d = I(e, t, a(() => i ? i(l) : { value: l }, [i, l]), { skip: u });
1928
+ return dn({
1868
1929
  value: n,
1869
1930
  debouncedValue: l,
1870
1931
  data: u ? null : d.data,
1871
1932
  interpret: o,
1872
1933
  skipEmpty: c
1873
1934
  });
1874
- }, un = (e, t) => ({
1935
+ }, pn = (e, t) => ({
1875
1936
  name: e,
1876
1937
  payload: t
1877
- }), dn = (e, t) => {
1938
+ }), mn = (e, t) => {
1878
1939
  let n = h.decodeUnknownEither(e.payload, { errors: "all" })(t);
1879
1940
  if (n._tag === "Right") return {
1880
1941
  valid: !0,
@@ -1886,15 +1947,15 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1886
1947
  valid: !1,
1887
1948
  errors: r
1888
1949
  };
1889
- }, fn = (e) => {
1950
+ }, hn = (e) => {
1890
1951
  let t = new Map(e.map((e) => [e.name, e]));
1891
1952
  return {
1892
1953
  names: [...t.keys()].sort(),
1893
1954
  get: (e) => t.get(e),
1894
1955
  events: e
1895
1956
  };
1896
- }, pn = (e, t) => {
1897
- let n = fn(e);
1957
+ }, gn = (e, t) => {
1958
+ let n = hn(e);
1898
1959
  return {
1899
1960
  track: (e, r) => {
1900
1961
  let i = n.get(e);
@@ -1903,7 +1964,7 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1903
1964
  return;
1904
1965
  }
1905
1966
  if (process.env.NODE_ENV !== "production") {
1906
- let t = dn(i, r);
1967
+ let t = mn(i, r);
1907
1968
  t.valid || console.error(`[@voltro/client] analytics.track('${e}'): payload failed its schema`, t.errors);
1908
1969
  }
1909
1970
  t({
@@ -1914,42 +1975,42 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1914
1975
  names: n.names,
1915
1976
  catalog: n
1916
1977
  };
1917
- }, mn = (e, t) => {
1918
- let r = V(e, t);
1978
+ }, _n = (e, t) => {
1979
+ let r = U(e, t);
1919
1980
  return {
1920
1981
  preview: n((e) => r.run(e), [r]),
1921
1982
  diff: r.lastResult,
1922
1983
  pending: r.pending,
1923
1984
  error: r.error
1924
1985
  };
1925
- }, hn = (e, t, n, r) => [...e, {
1986
+ }, vn = (e, t, n, r) => [...e, {
1926
1987
  id: t,
1927
1988
  tag: n,
1928
1989
  input: r,
1929
1990
  status: "pending",
1930
1991
  attempts: 0
1931
- }], gn = (e, t, n) => e.map((e) => e.id === t ? {
1992
+ }], yn = (e, t, n) => e.map((e) => e.id === t ? {
1932
1993
  ...e,
1933
1994
  ...n
1934
- } : e), _n = (e, t) => gn(e, t, { status: "sent" }), vn = (e, t, n) => e.map((e) => e.id === t ? {
1995
+ } : e), bn = (e, t) => yn(e, t, { status: "sent" }), xn = (e, t, n) => e.map((e) => e.id === t ? {
1935
1996
  ...e,
1936
1997
  status: "failed",
1937
1998
  error: n,
1938
1999
  attempts: e.attempts + 1
1939
- } : e), yn = (e, t, n) => gn(e, t, {
2000
+ } : e), Sn = (e, t, n) => yn(e, t, {
1940
2001
  status: "conflict",
1941
2002
  error: n
1942
- }), bn = (e) => e.filter((e) => e.status !== "sent"), xn = (e) => {
2003
+ }), Cn = (e) => e.filter((e) => e.status !== "sent"), wn = (e) => {
1943
2004
  let t = [];
1944
2005
  for (let n of e) {
1945
2006
  if (n.status === "conflict") break;
1946
2007
  (n.status === "pending" || n.status === "failed") && t.push(n);
1947
2008
  }
1948
2009
  return t;
1949
- }, Sn = (e) => {
2010
+ }, Tn = (e) => {
1950
2011
  let t = e;
1951
2012
  return t?.conflict === !0 || t?._tag === "UndoBoundaryError" && t?.boundary === "conflict";
1952
- }, Cn = (e) => {
2013
+ }, En = (e) => {
1953
2014
  let [t, n] = s(e ?? (typeof navigator < "u" ? navigator.onLine : !0));
1954
2015
  return i(() => {
1955
2016
  if (e !== void 0) {
@@ -1962,21 +2023,21 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1962
2023
  window.removeEventListener("online", t), window.removeEventListener("offline", r);
1963
2024
  };
1964
2025
  }, [e]), t;
1965
- }, wn = (e) => {
1966
- let { send: t, isConflict: r = Sn, idFor: a } = e, [c, l] = s([]), u = Cn(e.online), d = o(c);
2026
+ }, Dn = (e) => {
2027
+ let { send: t, isConflict: r = Tn, idFor: a } = e, [c, l] = s([]), u = En(e.online), d = o(c);
1967
2028
  d.current = c;
1968
2029
  let f = o(0), p = n((e, t) => {
1969
2030
  let n = a?.() ?? `obx_${f.current++}_${e}`;
1970
- l((r) => hn(r, n, e, t));
2031
+ l((r) => vn(r, n, e, t));
1971
2032
  }, [a]), m = n(async () => {
1972
- for (let e of xn(d.current)) try {
1973
- await t(e), l((t) => _n(t, e.id));
2033
+ for (let e of wn(d.current)) try {
2034
+ await t(e), l((t) => bn(t, e.id));
1974
2035
  } catch (t) {
1975
2036
  if (r(t)) {
1976
- l((n) => yn(n, e.id, t));
2037
+ l((n) => Sn(n, e.id, t));
1977
2038
  break;
1978
2039
  }
1979
- l((n) => vn(n, e.id, t));
2040
+ l((n) => xn(n, e.id, t));
1980
2041
  }
1981
2042
  }, [t, r]);
1982
2043
  return i(() => {
@@ -1989,7 +2050,7 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1989
2050
  pending: c.filter((e) => e.status === "pending" || e.status === "failed").length,
1990
2051
  conflicts: c.filter((e) => e.status === "conflict")
1991
2052
  };
1992
- }, Tn = (e) => {
2053
+ }, On = (e) => {
1993
2054
  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);
1994
2055
  return {
1995
2056
  startIndex: l,
@@ -1999,8 +2060,8 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
1999
2060
  topSpacer: l * r,
2000
2061
  bottomSpacer: a === void 0 ? 0 : Math.max(0, (a - d) * r)
2001
2062
  };
2002
- }, En = (e, t, r) => {
2003
- let { rowHeight: i, viewportHeight: o, overscan: c, total: l, input: u } = r, [d, f] = s(0), p = a(() => Tn({
2063
+ }, kn = (e, t, r) => {
2064
+ let { rowHeight: i, viewportHeight: o, overscan: c, total: l, input: u } = r, [d, f] = s(0), p = a(() => On({
2004
2065
  scrollTop: d,
2005
2066
  viewportHeight: o,
2006
2067
  rowHeight: i,
@@ -2012,7 +2073,7 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
2012
2073
  i,
2013
2074
  c,
2014
2075
  l
2015
- ]), m = P(e, t, a(() => ({
2076
+ ]), m = I(e, t, a(() => ({
2016
2077
  ...u,
2017
2078
  offset: p.offset,
2018
2079
  limit: p.limit
@@ -2032,6 +2093,6 @@ var Zt = () => r(Yt), Qt = (e) => Jt(Zt().scopes, e), $t = (e, t, n, r = {}) =>
2032
2093
  loading: m.data === void 0,
2033
2094
  error: m.error
2034
2095
  };
2035
- }, Dn = "framework-client";
2096
+ }, An = "framework-client";
2036
2097
  //#endregion
2037
- export { qt as ADMIN_SCOPE, Dn as CLIENT_NAME, D as FrameworkRuntimesContext, fe as FrameworkRuntimesProvider, ie as LoadingSubscriptionCache, Xt as PermissionProvider, ae as RpcErrorBus, re as SubscriptionCache, Ft as UNDO_APPLY_TAG, Pt as UNDO_LOG_TAG, It as UNDO_REDO_TAG, ue as _resetFrameworkRuntimesWarning, Jt as canCall, be as clearMutations, bn as clearSent, Tn as computeWindow, pn as createAnalytics, un as defineEvent, Rt as defineTracking, Mt as deriveEntityAdmins, hn as enqueueEntry, oe as errorTag, fn as eventCatalog, nn as filtersFromSchema, ve as getMutations, kt as manifestUrl, yn as markConflict, vn as markFailed, _n as markSent, Dt as provenanceUrl, ut as publishClientError, x as publishClientTrace, xn as replayable, ft as reportClientError, N as resolveByTag, $ as resolveTrackingEvent, tt as resumableConsumeProgram, Z as rowsToOptions, Y as schemaToColumns, J as schemaToFields, z as settleMutation, Wt as shallowArrayEqual, Gt as sourceValues, O as ssrClientProxy, ce as ssrStubHandle, C as stableKey, R as startMutation, dt as subscribeClientErrors, S as subscribeClientTraces, ye as subscribeMutations, V as useAction, st as useAgent, ot as useAgentChat, et as useAgentStream, ln as useAsyncValidation, Qt as useCan, At as useCapabilityManifest, ct as useDataCopilot, Tt as useDataTable, sn as useDebounced, Kt as useDerived, St as useFormBinding, Ht as useFormSkeleton, M as useFrameworkApi, de as useFrameworkRuntimes, B as useMutation, pt as useOnRpcError, wn as useOutbox, Zt as usePermissions, mn as usePreview, Ot as useProvenance, Ct as useQueryField, an as useQueryFilters, on as useRecord, lt as useRefreshSubscriptions, $t as useResourceCan, en as useResourceCans, rt as useResumableAgentStream, P as useSubscription, Ut as useTableSkeleton, Vt as useTracking, Nt as useUndo, Lt as useUndoLog, ze as useUpload, En as useWindowedSubscription, Be as useWorkflow, qe as useWorkflowDomainEvents, Je as useWorkflowEventDeliveries, Ke as useWorkflowEvents, Ue as useWorkflowRun, W as useWorkflowRunEvents, $e as useWorkflowRunState, Ge as useWorkflowRunSteps, We as useWorkflowRuns, Ve as useWorkflowSignal, He as useWorkflowUpdate, dn as validateEventPayload, X as validateFields, cn as validationStatus, Bt as wrapTrackedCallbacks };
2098
+ export { Xt as ADMIN_SCOPE, An as CLIENT_NAME, k as FrameworkRuntimesContext, pe as FrameworkRuntimesProvider, ae as LoadingSubscriptionCache, $t as PermissionProvider, oe as RpcErrorBus, ie as SubscriptionCache, Rt as UNDO_APPLY_TAG, Lt as UNDO_LOG_TAG, zt as UNDO_REDO_TAG, de as _resetFrameworkRuntimesWarning, Zt as canCall, xe as clearMutations, Cn as clearSent, On as computeWindow, gn as createAnalytics, pn as defineEvent, Vt as defineTracking, Ft as deriveEntityAdmins, vn as enqueueEntry, se as errorTag, hn as eventCatalog, on as filtersFromSchema, ye as getMutations, jt as manifestUrl, Sn as markConflict, xn as markFailed, bn as markSent, kt as provenanceUrl, dt as publishClientError, x as publishClientTrace, wn as replayable, pt as reportClientError, F as resolveByTag, $ as resolveTrackingEvent, nt as resumableConsumeProgram, wt as rowsToOptions, Z as schemaToColumns, X as schemaToFields, V as settleMutation, qt as shallowArrayEqual, Jt as sourceValues, A as ssrClientProxy, le as ssrStubHandle, C as stableKey, B as startMutation, ft as subscribeClientErrors, S as subscribeClientTraces, be as subscribeMutations, U as useAction, ct as useAgent, st as useAgentChat, tt as useAgentStream, fn as useAsyncValidation, tn as useCan, Mt as useCapabilityManifest, lt as useDataCopilot, Dt as useDataTable, un as useDebounced, Yt as useDerived, Ct as useFormBinding, Gt as useFormSkeleton, P as useFrameworkApi, fe as useFrameworkRuntimes, H as useMutation, mt as useOnRpcError, Dn as useOutbox, en as usePermissions, _n as usePreview, At as useProvenance, Tt as useQueryField, cn as useQueryFilters, ln as useRecord, ut as useRefreshSubscriptions, nn as useResourceCan, rn as useResourceCans, it as useResumableAgentStream, I as useSubscription, Kt as useTableSkeleton, Wt as useTracking, It as useUndo, Bt as useUndoLog, Be as useUpload, kn as useWindowedSubscription, Ve as useWorkflow, Je as useWorkflowDomainEvents, Ye as useWorkflowEventDeliveries, qe as useWorkflowEvents, We as useWorkflowRun, K as useWorkflowRunEvents, et as useWorkflowRunState, Ke as useWorkflowRunSteps, Ge as useWorkflowRuns, He as useWorkflowSignal, Ue as useWorkflowUpdate, mn as validateEventPayload, Q as validateFields, dn as validationStatus, Ut as wrapTrackedCallbacks };