@voltro/runtime 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,24 +1,24 @@
1
- import { ENCRYPTED_PREFIX as e, and as t, attachEagerLoads as n, boolean as r, clearRetentions as i, collectSubqueries as a, contains as o, decryptFieldsOnRead as s, deserializeArraysOnRead as c, encryptFieldsForWrite as l, eq as u, evaluatePredicate as d, generateId as f, getRelations as p, getTable as m, gt as h, gte as g, hasEagerLoads as _, id as v, inSet as y, integer as b, isEncrypted as x, isNull as S, json as C, listRetentions as ee, lt as w, lte as te, neq as T, or as ne, queryFor as re, registerRetention as ie, requireTable as ae, retentionTtlMsFromEnv as oe, serializeArraysForWrite as se, sweepRetention as ce, table as E, text as D, timestamp as O, walkLeaves as le } from "@voltro/database";
2
- import { createCipheriv as ue, createDecipheriv as de, createHash as fe, randomBytes as pe, randomUUID as me, scryptSync as he } from "node:crypto";
3
- import { EventEmitter as ge } from "node:events";
4
- import { ADMIN_SCOPE as _e, ConnectionHandshakeFailed as k, ConnectionInfo as ve, ConnectionKindMismatch as ye, ConnectionNotDeclared as be, ConnectionSubjectRequired as xe, SubjectService as Se, UndoConflict as Ce, UndoForbidden as we, UndoNotFound as Te, WorkflowRunHandleSchema as Ee, checkGuardsEffect as De, diffRows as Oe, effectiveScopes as ke, hasEffectiveScope as Ae, isIdKeyed as je, publishServerError as Me, requireScope as Ne, setPolicyGuardResolver as Pe, systemSubject as Fe, tsMs as Ie } from "@voltro/protocol";
5
- import { createLogger as A } from "@voltro/logger";
6
- import { Cause as j, Clock as Le, Context as Re, Cron as ze, Deferred as Be, Duration as Ve, Effect as M, Either as He, Exit as Ue, Layer as N, ManagedRuntime as We, Metric as P, MetricBoundaries as Ge, MetricState as Ke, Option as F, Ref as I, Schedule as qe, Schema as L, Stream as R, Tracer as Je } from "effect";
7
- import * as Ye from "node:http";
8
- import { createServer as Xe } from "node:http";
9
- import { HttpClient as Ze, HttpClientRequest as Qe, HttpLayerRouter as z, HttpServer as $e, HttpServerRequest as et, HttpServerResponse as B } from "@effect/platform";
10
- import { NodeContext as tt, NodeHttpServer as nt, NodeRuntime as rt } from "@effect/platform-node";
11
- import { Rpc as it, RpcSerialization as at, RpcServer as ot } from "@effect/rpc";
12
- import { defineRestRoute as st, dispatchSharedPath as ct, requireScope as lt } from "@voltro/protocol/rest";
13
- import { AsyncLocalStorage as ut } from "node:async_hooks";
14
- import { SpanKind as dt, SpanStatusCode as ft } from "@opentelemetry/api";
15
- import { Kv as pt, KvError as mt, KvStore as ht, layerConnections as gt, layerMemory as _t, layerRedis as vt } from "@voltro/kv";
16
- import { apiKeyStrategy as yt } from "@voltro/protocol/apikey";
17
- import { getCurrentWorkflowExecutionId as bt, inspectWorkflow as xt } from "@voltro/workflow";
18
- import { ArrayFormatter as St } from "effect/ParseResult";
19
- import { spawn as Ct } from "node:child_process";
1
+ import { ENCRYPTED_PREFIX as e, and as t, attachEagerLoads as n, boolean as r, clearRetentions as i, collectSubqueries as a, contains as o, decryptFieldsOnRead as s, deserializeArraysOnRead as c, encryptFieldsForWrite as l, eq as u, evaluatePredicate as d, generateId as f, getRelations as p, getTable as m, gt as h, gte as g, hasEagerLoads as _, id as v, inSet as y, integer as b, isEncrypted as x, isNull as S, json as C, listRetentions as ee, lt as te, lte as ne, neq as w, or as re, queryFor as ie, raiseChangeListenerCeiling as ae, registerRetention as oe, requireTable as se, retentionTtlMsFromEnv as ce, serializeArraysForWrite as le, stampGeneratedId as ue, sweepRetention as de, table as T, text as E, timestamp as D, walkLeaves as fe } from "@voltro/database";
2
+ import { createCipheriv as pe, createDecipheriv as me, createHash as he, randomBytes as ge, randomUUID as _e, scryptSync as ve } from "node:crypto";
3
+ import { EventEmitter as ye } from "node:events";
4
+ import { ADMIN_SCOPE as be, ConnectionHandshakeFailed as O, ConnectionInfo as xe, ConnectionKindMismatch as Se, ConnectionNotDeclared as Ce, ConnectionSubjectRequired as we, SubjectService as Te, UndoConflict as Ee, UndoForbidden as De, UndoNotFound as Oe, WorkflowRunHandleSchema as ke, checkGuardsEffect as Ae, diffRows as je, effectiveScopes as Me, hasEffectiveScope as Ne, isIdKeyed as Pe, publishServerError as Fe, requireScope as Ie, setPolicyGuardResolver as Le, systemSubject as Re, tsMs as ze } from "@voltro/protocol";
5
+ import { createLogger as k } from "@voltro/logger";
6
+ import { Cause as A, Clock as Be, Context as Ve, Cron as j, Deferred as He, Duration as Ue, Effect as M, Either as We, Exit as Ge, Layer as N, ManagedRuntime as Ke, Metric as P, MetricBoundaries as qe, MetricState as Je, Option as F, Ref as I, Schedule as Ye, Schema as L, Stream as R, Tracer as Xe } from "effect";
7
+ import * as Ze from "node:http";
8
+ import { createServer as Qe } from "node:http";
9
+ import { HttpClient as $e, HttpClientRequest as et, HttpLayerRouter as z, HttpServer as tt, HttpServerRequest as nt, HttpServerResponse as B } from "@effect/platform";
10
+ import { NodeContext as rt, NodeHttpServer as it, NodeRuntime as at } from "@effect/platform-node";
11
+ import { Rpc as ot, RpcSerialization as st, RpcServer as ct } from "@effect/rpc";
12
+ import { defineRestRoute as lt, dispatchSharedPath as ut, requireScope as dt } from "@voltro/protocol/rest";
13
+ import { AsyncLocalStorage as ft } from "node:async_hooks";
14
+ import { SpanKind as pt, SpanStatusCode as mt } from "@opentelemetry/api";
15
+ import { Kv as ht, KvError as gt, KvStore as _t, layerConnections as vt, layerMemory as yt, layerRedis as bt } from "@voltro/kv";
16
+ import { apiKeyStrategy as xt } from "@voltro/protocol/apikey";
17
+ import { getCurrentWorkflowExecutionId as St, inspectWorkflow as Ct } from "@voltro/workflow";
18
+ import { ArrayFormatter as wt } from "effect/ParseResult";
19
+ import { spawn as Tt } from "node:child_process";
20
20
  //#region src/matcher.ts
21
- var wt = class {
21
+ var Et = class {
22
22
  byTable = /* @__PURE__ */ new Map();
23
23
  register(e) {
24
24
  let t = this.byTable.get(e.table);
@@ -59,9 +59,9 @@ var wt = class {
59
59
  });
60
60
  return { perTable: e };
61
61
  }
62
- }, Tt = (e) => {
62
+ }, Dt = (e) => {
63
63
  let t = [];
64
- for (let n of le(e)) n.conjunctive && n.path === void 0 && (n.op === "eq" && t.push({
64
+ for (let n of fe(e)) n.conjunctive && n.path === void 0 && (n.op === "eq" && t.push({
65
65
  column: n.column,
66
66
  values: [n.value]
67
67
  }), n.op === "in" && t.push({
@@ -69,18 +69,18 @@ var wt = class {
69
69
  values: n.value
70
70
  }));
71
71
  return t;
72
- }, Et = (e) => {
72
+ }, Ot = (e) => {
73
73
  let t = [];
74
- for (let n of le(e)) n.conjunctive && n.path === void 0 && (n.op === "gt" || n.op === "gte" || n.op === "lt" || n.op === "lte") && t.push({
74
+ for (let n of fe(e)) n.conjunctive && n.path === void 0 && (n.op === "gt" || n.op === "gte" || n.op === "lt" || n.op === "lte") && t.push({
75
75
  column: n.column,
76
76
  op: n.op,
77
77
  threshold: n.value
78
78
  });
79
79
  return t;
80
- }, Dt = (e, t) => {
81
- for (let n of le(e)) if (n.conjunctive && n.path === void 0 && n.op === "eq" && n.column === t) return n.value;
80
+ }, kt = (e, t) => {
81
+ for (let n of fe(e)) if (n.conjunctive && n.path === void 0 && n.op === "eq" && n.column === t) return n.value;
82
82
  return null;
83
- }, Ot = (e, t) => {
83
+ }, At = (e, t) => {
84
84
  let n = [];
85
85
  for (let r of e) {
86
86
  let e = t(r);
@@ -88,8 +88,8 @@ var wt = class {
88
88
  n.push(`${typeof e}:${String(e)}`);
89
89
  }
90
90
  return n.join("|");
91
- }, kt = (e, t) => e === null || t === null ? null : e === t ? 0 : typeof e == typeof t ? e > t ? 1 : -1 : null, At = (e, t, n) => {
92
- let r = kt(e, n);
91
+ }, jt = (e, t) => e === null || t === null ? null : e === t ? 0 : typeof e == typeof t ? e > t ? 1 : -1 : null, Mt = (e, t, n) => {
92
+ let r = jt(e, n);
93
93
  if (r === null) return !1;
94
94
  switch (t) {
95
95
  case "gt": return r > 0;
@@ -97,7 +97,7 @@ var wt = class {
97
97
  case "lt": return r < 0;
98
98
  case "lte": return r <= 0;
99
99
  }
100
- }, jt = class {
100
+ }, Nt = class {
101
101
  columnByTable = /* @__PURE__ */ new Map();
102
102
  rangeByTable = /* @__PURE__ */ new Map();
103
103
  tupleByTable = /* @__PURE__ */ new Map();
@@ -105,9 +105,9 @@ var wt = class {
105
105
  subscriptions = /* @__PURE__ */ new Map();
106
106
  register(e) {
107
107
  this.columnByTable.has(e.table) || this.columnByTable.set(e.table, /* @__PURE__ */ new Map()), this.rangeByTable.has(e.table) || this.rangeByTable.set(e.table, /* @__PURE__ */ new Map()), this.tupleByTable.has(e.table) || this.tupleByTable.set(e.table, /* @__PURE__ */ new Map()), this.unindexedByTable.has(e.table) || this.unindexedByTable.set(e.table, /* @__PURE__ */ new Set());
108
- let t = Tt(e.predicate), n = Et(e.predicate);
108
+ let t = Dt(e.predicate), n = Ot(e.predicate);
109
109
  if (e.usingIndex !== void 0) {
110
- let r = e.usingIndex, i = Ot(r.fields, (t) => Dt(e.predicate, t));
110
+ let r = e.usingIndex, i = At(r.fields, (t) => kt(e.predicate, t));
111
111
  if (i !== null) {
112
112
  let a = `${r.name}|${i}`, o = this.tupleByTable.get(e.table), s = o.get(a);
113
113
  s || (s = /* @__PURE__ */ new Set(), o.set(a, s)), s.add(e.id), this.subscriptions.set(e.id, {
@@ -252,7 +252,7 @@ var wt = class {
252
252
  }
253
253
  }
254
254
  for (let [e, a] of i) {
255
- let i = Ot(a, (e) => t[e]);
255
+ let i = At(a, (e) => t[e]);
256
256
  if (i === null) continue;
257
257
  let o = r.get(`${e}|${i}`);
258
258
  if (o) for (let e of o) n.add(e);
@@ -266,7 +266,7 @@ var wt = class {
266
266
  let a = this.rangeByTable.get(e);
267
267
  if (a) for (let [e, r] of a) {
268
268
  let i = t[e];
269
- if (i !== null) for (let [e, t] of r) for (let r of t) At(i, e, r.threshold) && n.add(r.subId);
269
+ if (i !== null) for (let [e, t] of r) for (let r of t) Mt(i, e, r.threshold) && n.add(r.subId);
270
270
  }
271
271
  return n;
272
272
  }
@@ -275,7 +275,7 @@ var wt = class {
275
275
  let e = t[n.column];
276
276
  if (n.kind === "eq") {
277
277
  if (e !== n.value) return !1;
278
- } else if (!At(e, n.op, n.threshold)) return !1;
278
+ } else if (!Mt(e, n.op, n.threshold)) return !1;
279
279
  }
280
280
  return !0;
281
281
  }
@@ -297,23 +297,23 @@ var wt = class {
297
297
  }
298
298
  return i;
299
299
  }
300
- }, Mt = (e) => {
300
+ }, Pt = (e) => {
301
301
  if (e == null) return null;
302
- if (Array.isArray(e)) return e.map(Mt);
302
+ if (Array.isArray(e)) return e.map(Pt);
303
303
  if (typeof e == "object") {
304
304
  let t = e, n = Object.keys(t).sort(), r = {};
305
- for (let e of n) r[e] = Mt(t[e]);
305
+ for (let e of n) r[e] = Pt(t[e]);
306
306
  return r;
307
307
  }
308
308
  return e;
309
- }, Nt = (e, t, n) => {
310
- let r = Mt({
309
+ }, Ft = (e, t, n) => {
310
+ let r = Pt({
311
311
  table: e,
312
312
  predicate: t,
313
313
  indexHint: n ?? null
314
314
  });
315
- return fe("sha256").update(JSON.stringify(r)).digest("hex").slice(0, 16);
316
- }, Pt = class {
315
+ return he("sha256").update(JSON.stringify(r)).digest("hex").slice(0, 16);
316
+ }, It = class {
317
317
  matcher;
318
318
  byFingerprint = /* @__PURE__ */ new Map();
319
319
  byClient = /* @__PURE__ */ new Map();
@@ -332,7 +332,7 @@ var wt = class {
332
332
  } catch {}
333
333
  }
334
334
  subscribe(e, t, n, r) {
335
- let i = Nt(t, n, r?.name), a = this.byFingerprint.get(i);
335
+ let i = Ft(t, n, r?.name), a = this.byFingerprint.get(i);
336
336
  return a ? (a.subscribers.add(e), this.byClient.set(e, i), this.notifyChange(), {
337
337
  fingerprint: i,
338
338
  deduplicated: !0
@@ -390,7 +390,7 @@ var wt = class {
390
390
  });
391
391
  return e;
392
392
  }
393
- }, Ft = (e, t) => t.length === 0 ? e : [...e].sort((e, n) => {
393
+ }, Lt = (e, t) => t.length === 0 ? e : [...e].sort((e, n) => {
394
394
  for (let r of t) {
395
395
  let t = e[r.column], i = n[r.column];
396
396
  if (t === i) continue;
@@ -400,7 +400,7 @@ var wt = class {
400
400
  return r.direction === "asc" ? a : -a;
401
401
  }
402
402
  return 0;
403
- }), It = (e, t, n) => {
403
+ }), Rt = (e, t, n) => {
404
404
  let r = t.split("."), i = r[0], a = r.slice(1), o = (e) => typeof e == "object" && !!e && !Array.isArray(e), s = e[i], c;
405
405
  if (a.length === 0) c = o(s) && o(n) ? {
406
406
  ...s,
@@ -418,11 +418,11 @@ var wt = class {
418
418
  ...e,
419
419
  [i]: c
420
420
  };
421
- }, Lt = (e, t, n) => !e || d(e, t, n), V = (e, t) => {
421
+ }, zt = (e, t, n) => !e || d(e, t, n), V = (e, t) => {
422
422
  let n = /* @__PURE__ */ new Map();
423
423
  if (!e) return n;
424
424
  for (let r of a(e)) {
425
- let e = t.get(r.descriptor.table) ?? /* @__PURE__ */ new Map(), i = V(r.descriptor.predicate, t), a = Rt(r.descriptor, e, t, i);
425
+ let e = t.get(r.descriptor.table) ?? /* @__PURE__ */ new Map(), i = V(r.descriptor.predicate, t), a = Bt(r.descriptor, e, t, i);
426
426
  if (r.kind === "exists") n.set(r.descriptor, a.length);
427
427
  else {
428
428
  let e = r.descriptor.projection, t = /* @__PURE__ */ new Set();
@@ -437,15 +437,15 @@ var wt = class {
437
437
  }
438
438
  }
439
439
  return n;
440
- }, Rt = (e, t, n = /* @__PURE__ */ new Map(), r = null) => {
441
- let i = r ?? V(e.predicate, n), a = [...t.values()].filter((t) => Lt(e.predicate, t, i));
440
+ }, Bt = (e, t, n = /* @__PURE__ */ new Map(), r = null) => {
441
+ let i = r ?? V(e.predicate, n), a = [...t.values()].filter((t) => zt(e.predicate, t, i));
442
442
  if (e.aggregations && e.aggregations.length > 0) {
443
- let t = zt(a, e.aggregations, e.groupBy);
443
+ let t = Vt(a, e.aggregations, e.groupBy);
444
444
  if (!e.having) return t;
445
445
  let r = V(e.having, n);
446
- return t.filter((t) => Lt(e.having, t, r));
446
+ return t.filter((t) => zt(e.having, t, r));
447
447
  }
448
- let o = Ft(a, e.order), s = e.skip ? o.slice(e.skip) : o, c = e.take === void 0 ? s : s.slice(0, e.take);
448
+ let o = Lt(a, e.order), s = e.skip ? o.slice(e.skip) : o, c = e.take === void 0 ? s : s.slice(0, e.take);
449
449
  if (!e.projection) return c;
450
450
  let l = e.projection;
451
451
  return c.map((e) => {
@@ -453,7 +453,7 @@ var wt = class {
453
453
  for (let n of l) t[n] = e[n];
454
454
  return t;
455
455
  });
456
- }, zt = (e, t, n) => {
456
+ }, Vt = (e, t, n) => {
457
457
  let r = /* @__PURE__ */ new Map();
458
458
  for (let t of e) {
459
459
  let e = {};
@@ -471,11 +471,11 @@ var wt = class {
471
471
  let i = [];
472
472
  for (let e of r.values()) {
473
473
  let n = { ...e.keyVals };
474
- for (let r of t) n[r.alias] = Bt(r, e.rows);
474
+ for (let r of t) n[r.alias] = Ht(r, e.rows);
475
475
  i.push(n);
476
476
  }
477
477
  return i;
478
- }, Bt = (e, t) => {
478
+ }, Ht = (e, t) => {
479
479
  switch (e.op) {
480
480
  case "count": return e.column === void 0 ? t.length : t.reduce((t, n) => t + +(n[e.column] !== null && n[e.column] !== void 0), 0);
481
481
  case "count-distinct": {
@@ -519,7 +519,7 @@ var wt = class {
519
519
  }
520
520
  default: throw Error(`computeAggregates: unknown op '${e.op}'`);
521
521
  }
522
- }, Vt = "\0", Ht = (e, t) => e === null ? t : `${e}${Vt}${t}`, Ut = class e {
522
+ }, Ut = "\0", Wt = (e, t) => e === null ? t : `${e}${Ut}${t}`, Gt = class e {
523
523
  #e;
524
524
  #t;
525
525
  #n;
@@ -529,13 +529,13 @@ var wt = class {
529
529
  return r.#e = t.tables, r.#t = t.emitter, r.#n = t.numericCounters, r;
530
530
  }
531
531
  constructor(e, t = null) {
532
- if (this.#r = t, this.#e = /* @__PURE__ */ new Map(), this.#t = new ge(), this.#n = /* @__PURE__ */ new Map(), e) for (let [n, r] of Object.entries(e)) {
532
+ if (this.#r = t, this.#e = /* @__PURE__ */ new Map(), this.#t = new ye(), ae(this.#t), this.#n = /* @__PURE__ */ new Map(), e) for (let [n, r] of Object.entries(e)) {
533
533
  let e = /* @__PURE__ */ new Map();
534
534
  for (let t of r) {
535
535
  let n = t.id;
536
536
  n && e.set(n, t);
537
537
  }
538
- this.#e.set(Ht(t, n), e);
538
+ this.#e.set(Wt(t, n), e);
539
539
  }
540
540
  }
541
541
  withNamespace(t) {
@@ -546,11 +546,11 @@ var wt = class {
546
546
  }, t);
547
547
  }
548
548
  #a(e) {
549
- return Ht(this.#r, e);
549
+ return Wt(this.#r, e);
550
550
  }
551
551
  #o() {
552
- let e = /* @__PURE__ */ new Map(), t = this.#r === null ? null : `${this.#r}${Vt}`;
553
- for (let [n, r] of this.#e) t === null ? n.includes(Vt) || e.set(n, r) : n.startsWith(t) && e.set(n.slice(t.length), r);
552
+ let e = /* @__PURE__ */ new Map(), t = this.#r === null ? null : `${this.#r}${Ut}`;
553
+ for (let [n, r] of this.#e) t === null ? n.includes(Ut) || e.set(n, r) : n.startsWith(t) && e.set(n.slice(t.length), r);
554
554
  return e;
555
555
  }
556
556
  #s(e) {
@@ -558,10 +558,11 @@ var wt = class {
558
558
  return n || (n = /* @__PURE__ */ new Map(), this.#e.set(t, n)), n;
559
559
  }
560
560
  async query(e) {
561
- let t = Rt(e, this.#e.get(this.#a(e.table)) ?? /* @__PURE__ */ new Map(), this.#o());
562
- return _(e) ? n(t, e.eager, ae(e.table), (e) => this.query(e)) : t;
561
+ let t = Bt(e, this.#e.get(this.#a(e.table)) ?? /* @__PURE__ */ new Map(), this.#o());
562
+ return _(e) ? n(t, e.eager, se(e.table), (e) => this.query(e)) : t;
563
563
  }
564
564
  async insert(e, t) {
565
+ t = ue(e, t);
565
566
  let n = t;
566
567
  if (n.id === void 0) {
567
568
  let r = this.#c(e);
@@ -588,7 +589,7 @@ var wt = class {
588
589
  if (!i) return null;
589
590
  let a = i.get(t);
590
591
  if (!a) return null;
591
- let o = It(a, n, r);
592
+ let o = Rt(a, n, r);
592
593
  return i.set(t, o), this.#t.emit("change", {
593
594
  table: e,
594
595
  op: "update",
@@ -688,7 +689,7 @@ var wt = class {
688
689
  }
689
690
  }
690
691
  async transactional(e) {
691
- let t = new Wt(this.#u());
692
+ let t = new Kt(this.#u());
692
693
  try {
693
694
  let n = await e(t);
694
695
  return t.commit(), n;
@@ -724,7 +725,7 @@ var wt = class {
724
725
  allocateNumericId: (e) => this.#c(e)
725
726
  };
726
727
  }
727
- }, Wt = class {
728
+ }, Kt = class {
728
729
  parent;
729
730
  overlay = /* @__PURE__ */ new Map();
730
731
  tombstones = /* @__PURE__ */ new Map();
@@ -754,10 +755,11 @@ var wt = class {
754
755
  return t || (t = /* @__PURE__ */ new Map(), this.overlay.set(e, t)), t;
755
756
  }
756
757
  async query(e) {
757
- let t = this.buildTablesView(e), r = Rt(e, this.materialise(e.table), t);
758
- return _(e) ? n(r, e.eager, ae(e.table), (e) => this.query(e)) : r;
758
+ let t = this.buildTablesView(e), r = Bt(e, this.materialise(e.table), t);
759
+ return _(e) ? n(r, e.eager, se(e.table), (e) => this.query(e)) : r;
759
760
  }
760
761
  async insert(e, t) {
762
+ t = ue(e, t);
761
763
  let n = t;
762
764
  n.id === void 0 && (n = {
763
765
  ...t,
@@ -793,7 +795,7 @@ var wt = class {
793
795
  async patchJson(e, t, n, r) {
794
796
  let i = this.materialise(e).get(t);
795
797
  if (!i) return null;
796
- let a = It(i, n, r);
798
+ let a = Rt(i, n, r);
797
799
  return this.getOrCreateOverlay(e).set(t, a), this.events.push({
798
800
  table: e,
799
801
  op: "update",
@@ -894,7 +896,7 @@ var wt = class {
894
896
  discard() {
895
897
  this.settled || (this.settled = !0, this.overlay.clear(), this.tombstones.clear(), this.events.length = 0);
896
898
  }
897
- }, Gt = (e) => {
899
+ }, qt = (e) => {
898
900
  let t = {}, n = [], r = e;
899
901
  for (let e = 0; e < 8 && typeof r == "object" && r; e++) {
900
902
  let e = r;
@@ -905,23 +907,23 @@ var wt = class {
905
907
  (o || s) && n.push(`${o || "Error"}${s ? `: ${s.slice(0, 200)}` : ""}`), r = e.cause;
906
908
  }
907
909
  return n.length > 0 && (t.dbCauseChain = n.join(" ← "), t.dbMessage === void 0 && (t.dbMessage = n[n.length - 1])), t;
908
- }, Kt = (e) => {
910
+ }, Jt = (e) => {
909
911
  let t = e.dbCode;
910
912
  return t === "23503" || e.dbErrno === 1452 || t === 547 || t === "SQLITE_CONSTRAINT_FOREIGNKEY";
911
- }, qt = (e) => ({
912
- has: (t) => Ae(e, t),
913
- hasAny: (t) => t.some((t) => Ae(e, t)),
914
- require: (t) => Ne(e, t),
913
+ }, Yt = (e) => ({
914
+ has: (t) => Ne(e, t),
915
+ hasAny: (t) => t.some((t) => Ne(e, t)),
916
+ require: (t) => Ie(e, t),
915
917
  get scopes() {
916
- return ke(e);
918
+ return Me(e);
917
919
  }
918
- }), Jt = (e) => {
920
+ }), Xt = (e) => {
919
921
  let t = /* @__PURE__ */ new Set();
920
- return Yt(e, t), t;
921
- }, Yt = (e, t) => {
922
- if (t.add(e.table), e.eager !== void 0 && Xt(e.table, e.eager, t), e.setOp !== void 0) for (let n of e.setOp.queries) Yt(n, t);
923
- if (e.ctes !== void 0) for (let n of e.ctes) Yt(n.descriptor, t);
924
- }, Xt = (e, t, n) => {
922
+ return Zt(e, t), t;
923
+ }, Zt = (e, t) => {
924
+ if (t.add(e.table), e.eager !== void 0 && Qt(e.table, e.eager, t), e.setOp !== void 0) for (let n of e.setOp.queries) Zt(n, t);
925
+ if (e.ctes !== void 0) for (let n of e.ctes) Zt(n.descriptor, t);
926
+ }, Qt = (e, t, n) => {
925
927
  let r = p(e);
926
928
  if (r !== void 0) for (let [e, i] of Object.entries(t)) {
927
929
  let t = r[e];
@@ -929,24 +931,24 @@ var wt = class {
929
931
  let a = i === !0 ? {} : i;
930
932
  if (t.kind === "manyToMany") {
931
933
  let e = t.through().tableName, r = t.target().tableName;
932
- n.add(e), n.add(r), a.with !== void 0 && Xt(r, a.with, n);
934
+ n.add(e), n.add(r), a.with !== void 0 && Qt(r, a.with, n);
933
935
  } else {
934
936
  let e = t.target().tableName;
935
- n.add(e), a.with !== void 0 && Xt(e, a.with, n);
937
+ n.add(e), a.with !== void 0 && Qt(e, a.with, n);
936
938
  }
937
939
  }
938
- }, Zt = (e) => e.setOp !== void 0 || e.ctes !== void 0 && e.ctes.length > 0 || e.aggregations !== void 0 && e.aggregations.some((e) => e.op.startsWith("window-")), Qt = /* @__PURE__ */ new Set(["*"]), $t = (e, t) => {
940
+ }, $t = (e) => e.setOp !== void 0 || e.ctes !== void 0 && e.ctes.length > 0 || e.aggregations !== void 0 && e.aggregations.some((e) => e.op.startsWith("window-")), en = /* @__PURE__ */ new Set(["*"]), tn = (e, t) => {
939
941
  if (e !== void 0) {
940
942
  if ("not" in e) {
941
- $t(e.not, t);
943
+ tn(e.not, t);
942
944
  return;
943
945
  }
944
946
  if ("and" in e) {
945
- for (let n of e.and) $t(n, t);
947
+ for (let n of e.and) tn(n, t);
946
948
  return;
947
949
  }
948
950
  if ("or" in e) {
949
- for (let n of e.or) $t(n, t);
951
+ for (let n of e.or) tn(n, t);
950
952
  return;
951
953
  }
952
954
  if (e.op === "subquery-in" || e.op === "subquery-not-in") {
@@ -959,7 +961,7 @@ var wt = class {
959
961
  let r = e.get(t);
960
962
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r));
961
963
  for (let e of n) r.add(e);
962
- }, en = (e, t, n) => {
964
+ }, nn = (e, t, n) => {
963
965
  let r = p(e);
964
966
  if (r !== void 0) for (let [i, a] of Object.entries(t)) {
965
967
  let t = r[i];
@@ -967,65 +969,65 @@ var wt = class {
967
969
  let o = a === !0 ? {} : a;
968
970
  if (t.kind === "manyToMany") {
969
971
  let r = t.through(), i = t.target();
970
- H(n, r.tableName, [t.sourceKey, t.targetKey]), H(n, e, ["id"]), H(n, i.tableName, ["id"]), tn(i.tableName, o, n), o.with !== void 0 && en(i.tableName, o.with, n);
972
+ H(n, r.tableName, [t.sourceKey, t.targetKey]), H(n, e, ["id"]), H(n, i.tableName, ["id"]), rn(i.tableName, o, n), o.with !== void 0 && nn(i.tableName, o.with, n);
971
973
  continue;
972
974
  }
973
975
  let s = t.target();
974
- t.foreignKey !== void 0 && H(n, s.tableName, [t.foreignKey]), t.sourceKey === void 0 ? H(n, e, ["id"]) : H(n, e, [t.sourceKey]), H(n, s.tableName, ["id"]), tn(s.tableName, o, n), o.with !== void 0 && en(s.tableName, o.with, n);
976
+ t.foreignKey !== void 0 && H(n, s.tableName, [t.foreignKey]), t.sourceKey === void 0 ? H(n, e, ["id"]) : H(n, e, [t.sourceKey]), H(n, s.tableName, ["id"]), rn(s.tableName, o, n), o.with !== void 0 && nn(s.tableName, o.with, n);
975
977
  }
976
- }, tn = (e, t, n) => {
978
+ }, rn = (e, t, n) => {
977
979
  if (t.where !== void 0) {
978
980
  let r = /* @__PURE__ */ new Set();
979
- $t(t.where, r), H(n, e, r);
981
+ tn(t.where, r), H(n, e, r);
980
982
  }
981
983
  t.orderBy !== void 0 && H(n, e, t.orderBy.map((e) => e.column));
982
984
  let r = m(e);
983
985
  r === void 0 ? H(n, e, ["*"]) : H(n, e, Object.keys(r.fields));
984
- }, nn = (e) => {
986
+ }, an = (e) => {
985
987
  let t = /* @__PURE__ */ new Map();
986
- if (Zt(e)) {
987
- for (let n of Jt(e)) H(t, n, ["*"]);
988
+ if ($t(e)) {
989
+ for (let n of Xt(e)) H(t, n, ["*"]);
988
990
  return t;
989
991
  }
990
992
  let n = /* @__PURE__ */ new Set();
991
993
  if (e.projection !== void 0) for (let t of e.projection) n.add(t);
992
994
  else n.add("*");
993
- $t(e.predicate, n);
995
+ tn(e.predicate, n);
994
996
  for (let t of e.order) n.add(t.column);
995
- return H(t, e.table, n), e.eager !== void 0 && en(e.table, e.eager, t), t;
996
- }, rn = (e) => {
997
- if (e.op === "insert" || e.op === "delete" || e.old === null || e.new === null) return Qt;
997
+ return H(t, e.table, n), e.eager !== void 0 && nn(e.table, e.eager, t), t;
998
+ }, on = (e) => {
999
+ if (e.op === "insert" || e.op === "delete" || e.old === null || e.new === null) return en;
998
1000
  let t = /* @__PURE__ */ new Set(), n = e.old, r = e.new, i = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(r)]);
999
1001
  for (let e of i) Object.is(n[e], r[e]) || t.add(e);
1000
1002
  return t;
1001
- }, an = (e, t) => {
1003
+ }, sn = (e, t) => {
1002
1004
  let n = t.get(e.table);
1003
1005
  if (n === void 0) return !1;
1004
1006
  if (n.has("*")) return !0;
1005
- let r = rn(e);
1007
+ let r = on(e);
1006
1008
  if (r.has("*")) return !0;
1007
1009
  for (let e of r) if (n.has(e)) return !0;
1008
1010
  return !1;
1009
- }, on = Ge.exponential({
1011
+ }, cn = qe.exponential({
1010
1012
  start: .001,
1011
1013
  factor: 2,
1012
1014
  count: 16
1013
- }), sn = P.counter("voltro_rpc_requests_total", { description: "Total RPC handler invocations." }), cn = P.counter("voltro_rpc_errors_total", { description: "RPC handler invocations that errored." }), ln = P.histogram("voltro_rpc_duration_seconds", on, "RPC handler duration in seconds."), un = P.counter("voltro_http_requests_total", { description: "Total HTTP route invocations." }), dn = P.histogram("voltro_http_duration_seconds", on, "HTTP route duration in seconds."), fn = P.histogram("voltro_plugin_hook_duration_seconds", on, "Plugin interceptor duration in seconds."), pn = P.counter("voltro_plugin_hook_errors_total", { description: "Plugin interceptor invocations that errored." }), mn = P.counter("voltro_subscription_deliveries_total", { description: "Total subscription deliveries (snapshot + delta)." }), hn = P.histogram("voltro_subscription_delivery_seconds", on, "Subscription delivery produce→push latency in seconds."), gn = P.gauge("voltro_subscriptions_active", { description: "Currently-open subscriptions." }), _n = (e) => {
1014
- let t = e.durationMs / 1e3, n = e.kind === "rpc" ? M.zipRight(P.increment(sn).pipe(M.tagMetrics("tag", e.tag), M.tagMetrics("status", e.status)), M.zipRight(P.update(ln, t).pipe(M.tagMetrics("tag", e.tag)), e.status === "error" ? P.increment(cn).pipe(M.tagMetrics("tag", e.tag)) : M.void)) : e.kind === "request" ? M.zipRight(P.increment(un).pipe(M.tagMetrics("route", e.tag), M.tagMetrics("status", e.status)), P.update(dn, t).pipe(M.tagMetrics("route", e.tag))) : M.zipRight(P.update(fn, t).pipe(M.tagMetrics("hook", e.tag)), e.status === "error" ? P.increment(pn).pipe(M.tagMetrics("hook", e.tag)) : M.void);
1015
+ }), ln = P.counter("voltro_rpc_requests_total", { description: "Total RPC handler invocations." }), un = P.counter("voltro_rpc_errors_total", { description: "RPC handler invocations that errored." }), dn = P.histogram("voltro_rpc_duration_seconds", cn, "RPC handler duration in seconds."), fn = P.counter("voltro_http_requests_total", { description: "Total HTTP route invocations." }), pn = P.histogram("voltro_http_duration_seconds", cn, "HTTP route duration in seconds."), mn = P.histogram("voltro_plugin_hook_duration_seconds", cn, "Plugin interceptor duration in seconds."), hn = P.counter("voltro_plugin_hook_errors_total", { description: "Plugin interceptor invocations that errored." }), gn = P.counter("voltro_subscription_deliveries_total", { description: "Total subscription deliveries (snapshot + delta)." }), _n = P.histogram("voltro_subscription_delivery_seconds", cn, "Subscription delivery produce→push latency in seconds."), vn = P.gauge("voltro_subscriptions_active", { description: "Currently-open subscriptions." }), yn = (e) => {
1016
+ let t = e.durationMs / 1e3, n = e.kind === "rpc" ? M.zipRight(P.increment(ln).pipe(M.tagMetrics("tag", e.tag), M.tagMetrics("status", e.status)), M.zipRight(P.update(dn, t).pipe(M.tagMetrics("tag", e.tag)), e.status === "error" ? P.increment(un).pipe(M.tagMetrics("tag", e.tag)) : M.void)) : e.kind === "request" ? M.zipRight(P.increment(fn).pipe(M.tagMetrics("route", e.tag), M.tagMetrics("status", e.status)), P.update(pn, t).pipe(M.tagMetrics("route", e.tag))) : M.zipRight(P.update(mn, t).pipe(M.tagMetrics("hook", e.tag)), e.status === "error" ? P.increment(hn).pipe(M.tagMetrics("hook", e.tag)) : M.void);
1015
1017
  M.runSync(n);
1016
- }, vn = (e) => e.startsWith("subscription.") ? e.slice(13) : e, yn = (e) => {
1017
- let t = vn(e.label);
1018
- M.runSync(M.zipRight(P.increment(mn).pipe(M.tagMetrics("tag", t), M.tagMetrics("kind", e.kind)), P.update(hn, e.durationMs / 1e3).pipe(M.tagMetrics("tag", t), M.tagMetrics("kind", e.kind))));
1019
- }, bn = /* @__PURE__ */ new Map(), U = (e, t) => {
1020
- let n = vn(e), r = Math.max(0, (bn.get(n) ?? 0) + t);
1021
- r === 0 ? bn.delete(n) : bn.set(n, r), M.runSync(P.set(gn, r).pipe(M.tagMetrics("tag", n)));
1022
- }, xn = (e, t) => P.counter(e, t === void 0 ? {} : { description: t }), Sn = (e, t) => P.gauge(e, t === void 0 ? {} : { description: t }), Cn = (e, t = on, n) => P.histogram(e, t, n), wn = (e) => {
1018
+ }, bn = (e) => e.startsWith("subscription.") ? e.slice(13) : e, xn = (e) => {
1019
+ let t = bn(e.label);
1020
+ M.runSync(M.zipRight(P.increment(gn).pipe(M.tagMetrics("tag", t), M.tagMetrics("kind", e.kind)), P.update(_n, e.durationMs / 1e3).pipe(M.tagMetrics("tag", t), M.tagMetrics("kind", e.kind))));
1021
+ }, Sn = /* @__PURE__ */ new Map(), U = (e, t) => {
1022
+ let n = bn(e), r = Math.max(0, (Sn.get(n) ?? 0) + t);
1023
+ r === 0 ? Sn.delete(n) : Sn.set(n, r), M.runSync(P.set(vn, r).pipe(M.tagMetrics("tag", n)));
1024
+ }, Cn = (e, t) => P.counter(e, t === void 0 ? {} : { description: t }), wn = (e, t) => P.gauge(e, t === void 0 ? {} : { description: t }), Tn = (e, t = cn, n) => P.histogram(e, t, n), En = (e) => {
1023
1025
  let t = {};
1024
1026
  for (let n of e) t[n.key] = n.value;
1025
1027
  return t;
1026
- }, Tn = P.snapshot.pipe(M.map((e) => e.map((e) => {
1027
- let t = e.metricKey.name, n = wn(e.metricKey.tags), r = F.getOrUndefined(e.metricKey.description), i = r === void 0 ? {} : { description: r }, a = e.metricState;
1028
- if (Ke.isHistogramState(a)) return {
1028
+ }, Dn = P.snapshot.pipe(M.map((e) => e.map((e) => {
1029
+ let t = e.metricKey.name, n = En(e.metricKey.tags), r = F.getOrUndefined(e.metricKey.description), i = r === void 0 ? {} : { description: r }, a = e.metricState;
1030
+ if (Je.isHistogramState(a)) return {
1029
1031
  name: t,
1030
1032
  labels: n,
1031
1033
  ...i,
@@ -1037,14 +1039,14 @@ var wt = class {
1037
1039
  sum: a.sum,
1038
1040
  count: a.count
1039
1041
  };
1040
- if (Ke.isGaugeState(a)) return {
1042
+ if (Je.isGaugeState(a)) return {
1041
1043
  name: t,
1042
1044
  labels: n,
1043
1045
  ...i,
1044
1046
  type: "gauge",
1045
1047
  value: Number(a.value)
1046
1048
  };
1047
- if (Ke.isSummaryState(a)) return {
1049
+ if (Je.isSummaryState(a)) return {
1048
1050
  name: t,
1049
1051
  labels: n,
1050
1052
  ...i,
@@ -1056,7 +1058,7 @@ var wt = class {
1056
1058
  value: t.value
1057
1059
  }] : [])
1058
1060
  };
1059
- if (Ke.isFrequencyState(a)) {
1061
+ if (Je.isFrequencyState(a)) {
1060
1062
  let e = {};
1061
1063
  for (let [t, n] of a.occurrences) e[t] = n;
1062
1064
  return {
@@ -1074,25 +1076,25 @@ var wt = class {
1074
1076
  type: "counter",
1075
1077
  value: Number(a.count)
1076
1078
  };
1077
- }))), En = () => M.runSync(Tn), Dn = class extends L.TaggedError()("RowFilterUnavailable", { cause: L.String }) {}, On = qe.exponential("20 millis").pipe(qe.intersect(qe.recurs(2))), kn, An = (e) => {
1078
- kn = e;
1079
- }, jn = () => kn, Mn = () => void 0, Nn = (e, t) => Pn(kn, e, t), Pn = (e, t, n) => {
1080
- if (e === void 0 || t.type === "system") return M.succeed(Mn);
1081
- let r = e.retry ?? On, i = e.load(t);
1082
- return (r === !1 ? i : M.retry(i, r)).pipe(M.map((t) => (n) => e.predicate(t, n)), M.catchAll((t) => M.suspend(() => (n?.(t), e.onLoadError === "deny" ? M.succeed(Fn) : M.fail(new Dn({ cause: String(t) }))))));
1083
- }, Fn = () => ({
1079
+ }))), On = () => M.runSync(Dn), kn = class extends L.TaggedError()("RowFilterUnavailable", { cause: L.String }) {}, An = Ye.exponential("20 millis").pipe(Ye.intersect(Ye.recurs(2))), jn, Mn = (e) => {
1080
+ jn = e;
1081
+ }, Nn = () => jn, Pn = () => void 0, Fn = (e, t) => In(jn, e, t), In = (e, t, n) => {
1082
+ if (e === void 0 || t.type === "system") return M.succeed(Pn);
1083
+ let r = e.retry ?? An, i = e.load(t);
1084
+ return (r === !1 ? i : M.retry(i, r)).pipe(M.map((t) => (n) => e.predicate(t, n)), M.catchAll((t) => M.suspend(() => (n?.(t), e.onLoadError === "deny" ? M.succeed(Ln) : M.fail(new kn({ cause: String(t) }))))));
1085
+ }, Ln = () => ({
1084
1086
  column: "id",
1085
1087
  op: "isNull"
1086
- }), In = (e, n, r) => {
1088
+ }), Rn = (e, n, r) => {
1087
1089
  let i = e(n);
1088
1090
  return i === void 0 ? r : r ? t(r, i) : i;
1089
- }, Ln = (e, t) => {
1090
- let n = In(e, t.table, t.predicate);
1091
+ }, zn = (e, t) => {
1092
+ let n = Rn(e, t.table, t.predicate);
1091
1093
  return n === t.predicate ? t : {
1092
1094
  ...t,
1093
1095
  predicate: n
1094
1096
  };
1095
- }, W = A({ scope: "voltro:dispatcher" }), Rn = (e) => typeof e == "object" && !!e && e._tag === "ScopeError", zn = class {
1097
+ }, W = k({ scope: "voltro:dispatcher" }), Bn = (e) => Array.isArray(e) ? e.length : e == null ? 0 : 1, Vn = (e) => typeof e == "object" && !!e && e._tag === "ScopeError", Hn = class {
1096
1098
  deps;
1097
1099
  subscriptionRegistry;
1098
1100
  matcher;
@@ -1102,12 +1104,12 @@ var wt = class {
1102
1104
  computedSubs = /* @__PURE__ */ new Map();
1103
1105
  computedByTable = /* @__PURE__ */ new Map();
1104
1106
  constructor(e) {
1105
- this.deps = e, this.matcher = new jt(), this.subscriptionRegistry = new Pt(this.matcher), this.unsubscribeChange = e.store.onChange((e) => {
1107
+ this.deps = e, this.matcher = new Nt(), this.subscriptionRegistry = new It(this.matcher), this.unsubscribeChange = e.store.onChange((e) => {
1106
1108
  this.handleChange(e);
1107
1109
  });
1108
1110
  }
1109
1111
  async subscribe(e, t, n, r, i, a, o, s) {
1110
- let c = `sub_${me()}`, l = i ?? `subscription.${e.table}`, u = Jt(e), d = nn(e);
1112
+ let c = `sub_${_e()}`, l = i ?? `subscription.${e.table}`, u = Xt(e), d = an(e);
1111
1113
  e.predicate !== void 0 && this.subscriptionRegistry.subscribe(c, e.table, e.predicate, r);
1112
1114
  for (let e of u) {
1113
1115
  let t = this.dependentByTable.get(e);
@@ -1121,7 +1123,7 @@ var wt = class {
1121
1123
  }
1122
1124
  }, h, g;
1123
1125
  try {
1124
- h = s === void 0 ? e : Ln(await s(), e), g = this.deps.cache !== void 0 && a !== void 0 ? await this.deps.cache.wrap(a, p, () => this.deps.store.query(h)) : await this.deps.store.query(h);
1126
+ h = s === void 0 ? e : zn(await s(), e), g = this.deps.cache !== void 0 && a !== void 0 ? await this.deps.cache.wrap(a, p, () => this.deps.store.query(h)) : await this.deps.store.query(h);
1125
1127
  } catch (e) {
1126
1128
  throw m(), e;
1127
1129
  }
@@ -1188,7 +1190,7 @@ var wt = class {
1188
1190
  });
1189
1191
  }
1190
1192
  async subscribeComputed(e, t, n, r) {
1191
- let i = `csub_${me()}`, a = e.dependentTables, o = {
1193
+ let i = `csub_${_e()}`, a = e.dependentTables, o = {
1192
1194
  id: i,
1193
1195
  recompute: e.recompute,
1194
1196
  tenantId: e.tenantId,
@@ -1196,7 +1198,7 @@ var wt = class {
1196
1198
  context: n,
1197
1199
  label: r ?? "subscription.computed",
1198
1200
  tables: a,
1199
- lastJson: Bn(e.value),
1201
+ lastJson: Un(e.value),
1200
1202
  revision: 0
1201
1203
  };
1202
1204
  this.computedSubs.set(i, o), U(o.label, 1);
@@ -1217,7 +1219,7 @@ var wt = class {
1217
1219
  startMs: s,
1218
1220
  endMs: Date.now(),
1219
1221
  durationMs: Date.now() - s,
1220
- rowCount: 1
1222
+ rowCount: Bn(e.value)
1221
1223
  }), () => {
1222
1224
  this.computedSubs.delete(i), U(o.label, -1);
1223
1225
  for (let e of a) {
@@ -1229,7 +1231,7 @@ var wt = class {
1229
1231
  async recomputeComputed(e) {
1230
1232
  let t = Date.now();
1231
1233
  try {
1232
- let n = await e.recompute(), r = Bn(n);
1234
+ let n = await e.recompute(), r = Un(n);
1233
1235
  if (r === e.lastJson) return;
1234
1236
  e.lastJson = r, e.revision += 1;
1235
1237
  let i = Date.now();
@@ -1245,10 +1247,10 @@ var wt = class {
1245
1247
  startMs: t,
1246
1248
  endMs: i,
1247
1249
  durationMs: i - t,
1248
- rowCount: 1
1250
+ rowCount: Bn(n)
1249
1251
  });
1250
1252
  } catch (t) {
1251
- if (Rn(t)) {
1253
+ if (Vn(t)) {
1252
1254
  this.revokeComputed(e, t);
1253
1255
  return;
1254
1256
  }
@@ -1301,7 +1303,7 @@ var wt = class {
1301
1303
  W.trace("missing subscription", { subscriberId: t });
1302
1304
  continue;
1303
1305
  }
1304
- if (!an(e, n.relevantFields)) {
1306
+ if (!sn(e, n.relevantFields)) {
1305
1307
  o++;
1306
1308
  continue;
1307
1309
  }
@@ -1324,21 +1326,21 @@ var wt = class {
1324
1326
  this.revokeSubscription(n, e, "row filter unavailable");
1325
1327
  continue;
1326
1328
  }
1327
- i = Ln(e, n.baseDescriptor);
1329
+ i = zn(e, n.baseDescriptor);
1328
1330
  }
1329
1331
  let o = await this.deps.store.query(i), s = n.lastDelivered;
1330
- if (Vn(o, s)) {
1332
+ if (Wn(o, s)) {
1331
1333
  W.trace("suppressed no-op delta", {
1332
1334
  subscriberId: t,
1333
1335
  table: e.table
1334
1336
  });
1335
1337
  continue;
1336
1338
  }
1337
- n.lastDelivered = o, this.deps.cache !== void 0 && n.cacheBinding !== void 0 && this.deps.cache.put(n.cacheBinding, Array.from(n.dependentTables), o), je(s) && je(o) ? n.emit({
1339
+ n.lastDelivered = o, this.deps.cache !== void 0 && n.cacheBinding !== void 0 && this.deps.cache.put(n.cacheBinding, Array.from(n.dependentTables), o), Pe(s) && Pe(o) ? n.emit({
1338
1340
  _tag: "delta",
1339
1341
  revision: a,
1340
1342
  emittedAt: a,
1341
- patch: Oe(s, o)
1343
+ patch: je(s, o)
1342
1344
  }) : n.emit({
1343
1345
  _tag: "snapshot",
1344
1346
  revision: a,
@@ -1370,44 +1372,44 @@ var wt = class {
1370
1372
  skipped: o
1371
1373
  });
1372
1374
  }
1373
- }, Bn = (e) => {
1375
+ }, Un = (e) => {
1374
1376
  try {
1375
1377
  return JSON.stringify(e) ?? "null";
1376
1378
  } catch {
1377
1379
  return String(e);
1378
1380
  }
1379
- }, Vn = (e, t) => {
1381
+ }, Wn = (e, t) => {
1380
1382
  if (e === t) return !0;
1381
1383
  if (e.length !== t.length) return !1;
1382
1384
  for (let n = 0; n < e.length; n++) if (JSON.stringify(e[n]) !== JSON.stringify(t[n])) return !1;
1383
1385
  return !0;
1384
- }, Hn = (e) => typeof e == "object" && !!e && e.__voltroComputed === !0, Un = 1440 * 60 * 1e3, Wn = 3600 * 1e3, G = /* @__PURE__ */ new Map(), Gn = /* @__PURE__ */ new Set(), Kn = (e, t) => {
1386
+ }, Gn = (e) => typeof e == "object" && !!e && e.__voltroComputed === !0, Kn = 1440 * 60 * 1e3, qn = 3600 * 1e3, G = /* @__PURE__ */ new Map(), Jn = /* @__PURE__ */ new Set(), Yn = (e, t) => {
1385
1387
  G.set(e, {
1386
1388
  subject: t,
1387
1389
  touchedAt: Date.now()
1388
1390
  });
1389
- for (let n of Gn) try {
1391
+ for (let n of Jn) try {
1390
1392
  n(e, t);
1391
1393
  } catch {}
1392
- }, qn = (e) => {
1394
+ }, Xn = (e) => {
1393
1395
  let t = G.get(e);
1394
1396
  if (t) return t.touchedAt = Date.now(), t.subject;
1395
- }, Jn = (e) => {
1397
+ }, Zn = (e) => {
1396
1398
  G.delete(e);
1397
- }, Yn = (e) => (Gn.add(e), () => {
1398
- Gn.delete(e);
1399
- }), Xn = setInterval(() => {
1400
- let e = Date.now() - Un;
1399
+ }, Qn = (e) => (Jn.add(e), () => {
1400
+ Jn.delete(e);
1401
+ }), $n = setInterval(() => {
1402
+ let e = Date.now() - Kn;
1401
1403
  for (let [t, n] of G) n.touchedAt < e && G.delete(t);
1402
- }, Wn);
1403
- typeof Xn == "object" && Xn && "unref" in Xn && Xn.unref();
1404
- var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1404
+ }, qn);
1405
+ typeof $n == "object" && $n && "unref" in $n && $n.unref();
1406
+ var K = /* @__PURE__ */ new Map(), er = (e, t) => {
1405
1407
  let n = K.get(e);
1406
1408
  return n || (n = /* @__PURE__ */ new Set(), K.set(e, n)), n.add(t), () => {
1407
1409
  let n = K.get(e);
1408
1410
  n && (n.delete(t), n.size === 0 && K.delete(e));
1409
1411
  };
1410
- }, Qn = (e) => {
1412
+ }, tr = (e) => {
1411
1413
  let t = K.get(e);
1412
1414
  if (t) {
1413
1415
  for (let e of [...t]) try {
@@ -1415,15 +1417,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1415
1417
  } catch {}
1416
1418
  K.delete(e);
1417
1419
  }
1418
- }, $n = (e) => K.get(e)?.size ?? 0, er = () => {
1420
+ }, nr = (e) => K.get(e)?.size ?? 0, rr = () => {
1419
1421
  G.clear(), K.clear();
1420
- }, tr = () => [...G.entries()].map(([e, t]) => ({
1422
+ }, ir = () => [...G.entries()].map(([e, t]) => ({
1421
1423
  clientId: e,
1422
1424
  subjectType: t.subject.type,
1423
1425
  tenantId: t.subject.tenantId
1424
- })), nr = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/, rr = (e) => `00-${e.traceId}-${e.spanId}-${e.sampled ? "01" : "00"}`, ir = (e) => {
1426
+ })), ar = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/, or = (e) => `00-${e.traceId}-${e.spanId}-${e.sampled ? "01" : "00"}`, sr = (e) => {
1425
1427
  if (typeof e != "string") return null;
1426
- let t = nr.exec(e.trim().toLowerCase());
1428
+ let t = ar.exec(e.trim().toLowerCase());
1427
1429
  if (t === null) return null;
1428
1430
  let [, n, r, i] = t;
1429
1431
  return n === "0".repeat(32) || r === "0".repeat(16) ? null : {
@@ -1431,14 +1433,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1431
1433
  spanId: r,
1432
1434
  sampled: (parseInt(i, 16) & 1) == 1
1433
1435
  };
1434
- }, ar = (e) => {
1435
- let t = ir(e);
1436
- if (t !== null) return Je.externalSpan({
1436
+ }, cr = (e) => {
1437
+ let t = sr(e);
1438
+ if (t !== null) return Xe.externalSpan({
1437
1439
  traceId: t.traceId,
1438
1440
  spanId: t.spanId,
1439
1441
  sampled: t.sampled
1440
1442
  });
1441
- }, or = new ut(), sr = (e, t) => or.run(e, t), cr = () => or.getStore(), lr = (e = {}) => {
1443
+ }, lr = new ft(), ur = (e, t) => lr.run(e, t), dr = () => lr.getStore(), fr = (e = {}) => {
1442
1444
  let t = e.random ?? Math.random, n = /* @__PURE__ */ new Map(), r = (e) => n.get(e) ?? 0;
1443
1445
  return {
1444
1446
  pick(e) {
@@ -1463,7 +1465,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1463
1465
  }));
1464
1466
  }
1465
1467
  };
1466
- }, ur = (e = {}) => {
1468
+ }, pr = (e = {}) => {
1467
1469
  let t = e.thresholdFailures ?? 3, n = e.windowMs ?? 1e4, r = e.blackoutMs ?? 6e4, i = e.now ?? Date.now, a = /* @__PURE__ */ new Map(), o = (e) => {
1468
1470
  let t = a.get(e);
1469
1471
  return t === void 0 && (t = {
@@ -1497,7 +1499,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1497
1499
  }));
1498
1500
  }
1499
1501
  };
1500
- }, dr = (e = {}) => {
1502
+ }, mr = (e = {}) => {
1501
1503
  let t = e.now ?? Date.now, n = /* @__PURE__ */ new Map();
1502
1504
  return {
1503
1505
  get(e) {
@@ -1520,7 +1522,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1520
1522
  return n.size;
1521
1523
  }
1522
1524
  };
1523
- }, fr = (e, t) => e === null ? t === void 0 ? "anon:bg" : `anon:${t}` : `subject:${e}`, pr = (e) => {
1525
+ }, hr = (e, t) => e === null ? t === void 0 ? "anon:bg" : `anon:${t}` : `subject:${e}`, gr = (e) => {
1524
1526
  let t = e.now ?? Date.now, n = e.keyPrefix ?? "voltro:ryw", r = e.channel ?? `${n}:bus`, i = e.onError ?? ((e, t) => {
1525
1527
  process.stderr.write(`[voltro:ryw] redis ${t} failed: ${String(e)}\n`);
1526
1528
  }), a = `${process.pid ?? 0}:${Math.random() * 1e9 | 0}:${t()}`, o = /* @__PURE__ */ new Map(), s = (e) => {
@@ -1579,7 +1581,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1579
1581
  return o.size;
1580
1582
  }
1581
1583
  };
1582
- }, mr = A({ scope: "voltro:replication" }), hr = new ut(), gr = (e, t) => hr.run(e, t), _r = () => hr.getStore(), vr = class {
1584
+ }, _r = k({ scope: "voltro:replication" }), vr = new ft(), yr = (e, t) => vr.run(e, t), br = () => vr.getStore(), xr = class {
1583
1585
  primary;
1584
1586
  replicas;
1585
1587
  adapter;
@@ -1592,10 +1594,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1592
1594
  recordRouting;
1593
1595
  now;
1594
1596
  constructor(e) {
1595
- this.primary = e.primary, this.replicas = e.replicas, this.adapter = e.replicationAdapter, this.policy = e.rywPolicy ?? "fallback", this.rywTtlMs = e.rywTtlMs ?? 3e4, this.rywMaxWaitMs = e.rywMaxWaitMs ?? 500, this.now = e.now ?? Date.now, this.rywStore = e.rywStore ?? dr({ now: this.now }), this.selector = e.replicaSelector ?? lr(), this.health = e.replicaHealth ?? ur({ now: this.now }), e.recordRouting !== void 0 && (this.recordRouting = e.recordRouting);
1597
+ this.primary = e.primary, this.replicas = e.replicas, this.adapter = e.replicationAdapter, this.policy = e.rywPolicy ?? "fallback", this.rywTtlMs = e.rywTtlMs ?? 3e4, this.rywMaxWaitMs = e.rywMaxWaitMs ?? 500, this.now = e.now ?? Date.now, this.rywStore = e.rywStore ?? mr({ now: this.now }), this.selector = e.replicaSelector ?? fr(), this.health = e.replicaHealth ?? pr({ now: this.now }), e.recordRouting !== void 0 && (this.recordRouting = e.recordRouting);
1596
1598
  }
1597
1599
  async query(e) {
1598
- let t = hr.getStore(), n = t?.subjectKey ?? "anon:bg";
1600
+ let t = vr.getStore(), n = t?.subjectKey ?? "anon:bg";
1599
1601
  if (t?.forcePrimary === !0) return this.emitRouting({
1600
1602
  target: "primary",
1601
1603
  replicaIndex: null,
@@ -1659,7 +1661,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1659
1661
  waitMs: 0
1660
1662
  }), r;
1661
1663
  } catch (r) {
1662
- return this.health.reportFailure(i, String(r)), mr.warn("replica query failed; falling back to primary", {
1664
+ return this.health.reportFailure(i, String(r)), _r.warn("replica query failed; falling back to primary", {
1663
1665
  idx: a,
1664
1666
  err: r
1665
1667
  }), this.emitRouting({
@@ -1728,7 +1730,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1728
1730
  fallbackReason: "wait-timeout"
1729
1731
  }), this.primary.query(e);
1730
1732
  }
1731
- await yr(10);
1733
+ await Sr(10);
1732
1734
  }
1733
1735
  }
1734
1736
  async insert(e, t) {
@@ -1768,8 +1770,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1768
1770
  return await this.stampPostWrite(), r;
1769
1771
  }
1770
1772
  async transactional(e) {
1771
- let t = await gr({
1772
- subjectKey: hr.getStore()?.subjectKey ?? "anon:bg",
1773
+ let t = await yr({
1774
+ subjectKey: vr.getStore()?.subjectKey ?? "anon:bg",
1773
1775
  forcePrimary: !0
1774
1776
  }, () => this.primary.transactional(e));
1775
1777
  return await this.stampPostWrite(), t;
@@ -1785,7 +1787,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1785
1787
  }
1786
1788
  async stampPostWrite() {
1787
1789
  if (this.replicas.length === 0) return;
1788
- let e = hr.getStore()?.subjectKey ?? "anon:bg";
1790
+ let e = vr.getStore()?.subjectKey ?? "anon:bg";
1789
1791
  try {
1790
1792
  let t = await this.adapter.capturePrimaryPosition(this.primary);
1791
1793
  this.rywStore.set(e, {
@@ -1793,37 +1795,37 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1793
1795
  expiresAt: this.now() + this.rywTtlMs
1794
1796
  });
1795
1797
  } catch (e) {
1796
- mr.warn("failed to capture primary position; RYW skipped", { err: e });
1798
+ _r.warn("failed to capture primary position; RYW skipped", { err: e });
1797
1799
  }
1798
1800
  }
1799
1801
  emitRouting(e) {
1800
1802
  this.recordRouting?.(e);
1801
1803
  }
1802
- }, yr = (e) => new Promise((t) => setTimeout(t, e)), br = (e, t, n) => ({
1804
+ }, Sr = (e) => new Promise((t) => setTimeout(t, e)), Cr = (e, t, n) => ({
1803
1805
  subject: e,
1804
- traceId: t?.traceId ?? me(),
1806
+ traceId: t?.traceId ?? _e(),
1805
1807
  ...t?.spanId === void 0 ? {} : { spanId: t.spanId },
1806
1808
  ...n === void 0 ? {} : { clientId: n }
1807
- }), xr = M.currentSpan.pipe(M.catchAll(() => M.succeed(void 0))), Sr = (e) => ({
1809
+ }), wr = M.currentSpan.pipe(M.catchAll(() => M.succeed(void 0))), Tr = (e) => ({
1808
1810
  traceId: e.traceId,
1809
1811
  ...e.spanId === void 0 ? {} : { spanId: e.spanId }
1810
- }), Cr = (e, t, n) => {
1812
+ }), Er = (e, t, n) => {
1811
1813
  e !== void 0 && (e.attribute("rpc.tag", t), e.attribute("subject.type", n.type), n.tenantId !== void 0 && n.tenantId !== null && e.attribute("tenant.id", n.tenantId));
1812
- }, wr = (e) => {
1813
- if (jn() !== void 0) return async () => {
1814
- let t = await M.runPromise(M.either(Nn(e, (e) => {
1814
+ }, Dr = (e) => {
1815
+ if (Nn() !== void 0) return async () => {
1816
+ let t = await M.runPromise(M.either(Fn(e, (e) => {
1815
1817
  console.error("[voltro] row filter failed to load — subscription", e);
1816
1818
  })));
1817
1819
  if (t._tag === "Left") throw t.left;
1818
1820
  return t.right;
1819
1821
  };
1820
- }, Tr = (e, t, n, r, i, a, o, s) => R.asyncScoped((c) => M.gen(function* () {
1822
+ }, Or = (e, t, n, r, i, a, o, s) => R.asyncScoped((c) => M.gen(function* () {
1821
1823
  let l = yield* M.tryPromise(() => t.subscribe(e, (e) => {
1822
1824
  c.single(e);
1823
1825
  }, n, r, i, a, o, s)).pipe(M.matchCause({
1824
- onFailure: (e) => (jr(`subscription.${i}`, n.traceId, e), {
1826
+ onFailure: (e) => (Pr(`subscription.${i}`, n.traceId, e), {
1825
1827
  ok: !1,
1826
- error: Fr(e)
1828
+ error: Rr(e)
1827
1829
  }),
1828
1830
  onSuccess: (e) => ({
1829
1831
  ok: !0,
@@ -1839,21 +1841,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1839
1841
  }
1840
1842
  let u = l.unsubscribe;
1841
1843
  if (yield* M.addFinalizer(() => M.sync(() => u())), n.clientId !== void 0) {
1842
- let e = Zn(n.clientId, () => {
1844
+ let e = er(n.clientId, () => {
1843
1845
  c.end();
1844
1846
  });
1845
1847
  yield* M.addFinalizer(() => M.sync(() => e()));
1846
1848
  }
1847
- })), Er = (e, t, n, r) => R.asyncScoped((i) => M.gen(function* () {
1849
+ })), kr = (e, t, n, r) => R.asyncScoped((i) => M.gen(function* () {
1848
1850
  let a = yield* M.tryPromise(() => t.subscribeComputed(e, (e) => {
1849
1851
  i.single(e._tag === "snapshot" ? {
1850
1852
  ...e,
1851
1853
  computed: !0
1852
1854
  } : e);
1853
1855
  }, n, r)).pipe(M.matchCause({
1854
- onFailure: (e) => (jr(`subscription.${r}`, n.traceId, e), {
1856
+ onFailure: (e) => (Pr(`subscription.${r}`, n.traceId, e), {
1855
1857
  ok: !1,
1856
- error: Fr(e)
1858
+ error: Rr(e)
1857
1859
  }),
1858
1860
  onSuccess: (e) => ({
1859
1861
  ok: !0,
@@ -1869,21 +1871,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1869
1871
  }
1870
1872
  let o = a.unsubscribe;
1871
1873
  if (yield* M.addFinalizer(() => M.sync(() => o())), n.clientId !== void 0) {
1872
- let e = Zn(n.clientId, () => {
1874
+ let e = er(n.clientId, () => {
1873
1875
  i.end();
1874
1876
  });
1875
1877
  yield* M.addFinalizer(() => M.sync(() => e()));
1876
1878
  }
1877
- })), Dr = (e, t, n = "rpc.subscription", r, i, a, o) => R.unwrap(M.gen(function* () {
1878
- let s = yield* Se, c = yield* ve, l = yield* xr;
1879
- Cr(l, n, s);
1880
- let u = br(s, l, c.clientId), d = fr(s.id, c.clientId), f = gr({ subjectKey: d }, () => sr({
1879
+ })), Ar = (e, t, n = "rpc.subscription", r, i, a, o) => R.unwrap(M.gen(function* () {
1880
+ let s = yield* Te, c = yield* xe, l = yield* wr;
1881
+ Er(l, n, s);
1882
+ let u = Cr(s, l, c.clientId), d = hr(s.id, c.clientId), f = yr({ subjectKey: d }, () => ur({
1881
1883
  traceId: u.traceId,
1882
1884
  ...u.spanId === void 0 ? {} : { spanId: u.spanId }
1883
1885
  }, () => e(u))), p = M.isEffect(f) ? yield* f.pipe(M.matchCause({
1884
- onFailure: (e) => (jr(`subscription.${n}`, u.traceId, e), {
1886
+ onFailure: (e) => (Pr(`subscription.${n}`, u.traceId, e), {
1885
1887
  ok: !1,
1886
- error: Fr(e)
1888
+ error: Rr(e)
1887
1889
  }),
1888
1890
  onSuccess: (e) => ({
1889
1891
  ok: !0,
@@ -1898,39 +1900,39 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1898
1900
  error: p.error
1899
1901
  });
1900
1902
  let m = p.value;
1901
- if (Hn(m)) return Er(m, t, u, n);
1903
+ if (Gn(m)) return kr(m, t, u, n);
1902
1904
  let h = m, g = r?.(h);
1903
- return Tr(h, t, u, g, n, i === void 0 ? void 0 : {
1905
+ return Or(h, t, u, g, n, i === void 0 ? void 0 : {
1904
1906
  key: i.scope === "subject" ? `${i.baseKey}:s:${d}` : `${i.baseKey}:global`,
1905
1907
  ttlMs: i.ttlMs,
1906
1908
  swrMs: i.swrMs
1907
- }, a?.(s), o?.(s) ?? wr(s));
1908
- }).pipe(M.withSpan(n, { attributes: { "framework.kind": "subscription" } }))), Or = (e, t = "rpc.stream") => R.unwrap(M.gen(function* () {
1909
- let n = yield* Se, r = yield* ve, i = yield* xr;
1910
- Cr(i, t, n);
1911
- let a = br(n, i, r.clientId), o = e(a), s = M.isEffect(o) ? yield* o.pipe(M.orDie) : o;
1909
+ }, a?.(s), o?.(s) ?? Dr(s));
1910
+ }).pipe(M.withSpan(n, { attributes: { "framework.kind": "subscription" } }))), jr = (e, t = "rpc.stream") => R.unwrap(M.gen(function* () {
1911
+ let n = yield* Te, r = yield* xe, i = yield* wr;
1912
+ Er(i, t, n);
1913
+ let a = Cr(n, i, r.clientId), o = e(a), s = M.isEffect(o) ? yield* o.pipe(M.orDie) : o;
1912
1914
  if (a.clientId === void 0) return s;
1913
1915
  let c = a.clientId;
1914
1916
  return R.unwrapScoped(M.gen(function* () {
1915
- let e = yield* Be.make(), t = Zn(c, () => {
1916
- Be.unsafeDone(e, M.void);
1917
+ let e = yield* He.make(), t = er(c, () => {
1918
+ He.unsafeDone(e, M.void);
1917
1919
  });
1918
- return yield* M.addFinalizer(() => M.sync(() => t())), s.pipe(R.interruptWhen(Be.await(e)));
1920
+ return yield* M.addFinalizer(() => M.sync(() => t())), s.pipe(R.interruptWhen(He.await(e)));
1919
1921
  }));
1920
- }).pipe(M.withSpan(t, { attributes: { "framework.kind": "stream" } }))), kr = A({ scope: "voltro:rpc" }), Ar = A({ scope: "voltro:http" }), jr = (e, t, n) => {
1921
- if (j.isInterruptedOnly(n)) return;
1922
- let r = j.squash(n), i = r?._tag, a = r instanceof Error ? r.message : r?.message ?? String(r), o = j.dieOption(n)._tag === "Some", s = Gt(r), c = {
1922
+ }).pipe(M.withSpan(t, { attributes: { "framework.kind": "stream" } }))), Mr = k({ scope: "voltro:rpc" }), Nr = k({ scope: "voltro:http" }), Pr = (e, t, n) => {
1923
+ if (A.isInterruptedOnly(n)) return;
1924
+ let r = A.squash(n), i = r?._tag, a = r instanceof Error ? r.message : r?.message ?? String(r), o = A.dieOption(n)._tag === "Some", s = qt(r), c = {
1923
1925
  traceId: t,
1924
1926
  ...i === void 0 ? {} : { errorTag: i },
1925
1927
  ...s
1926
1928
  }, l = a === "Failed to execute statement" && typeof s.dbMessage == "string" ? s.dbMessage : a;
1927
- o ? kr.error(`${e} failed: ${l}`, c) : kr.warn(`${e} failed: ${l}`, c);
1928
- }, Mr = /* @__PURE__ */ new Set(["SqlError", "ResultLengthMismatch"]), Nr = (e) => typeof e == "object" && !!e && typeof e._tag == "string" && Mr.has(e._tag), Pr = (e) => ({
1929
+ o ? Mr.error(`${e} failed: ${l}`, c) : Mr.warn(`${e} failed: ${l}`, c);
1930
+ }, Fr = /* @__PURE__ */ new Set(["SqlError", "ResultLengthMismatch"]), Ir = (e) => typeof e == "object" && !!e && typeof e._tag == "string" && Fr.has(e._tag), Lr = (e) => ({
1929
1931
  _tag: "InternalError",
1930
1932
  message: "internal server error",
1931
1933
  traceId: e
1932
- }), Fr = (e) => {
1933
- let t = j.squash(e);
1934
+ }), Rr = (e) => {
1935
+ let t = A.squash(e);
1934
1936
  t && typeof t == "object" && t._tag === "UnknownException" && (t = t.error ?? t.cause ?? t);
1935
1937
  let n = t && typeof t == "object" ? t : {}, r = {};
1936
1938
  for (let [e, t] of Object.entries(n)) e === "cause" || e === "stack" || e === "message" || (t === null || typeof t == "string" || typeof t == "number" || typeof t == "boolean") && (r[e] = t);
@@ -1940,19 +1942,19 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1940
1942
  ...typeof i == "string" ? { _tag: i } : {},
1941
1943
  message: typeof a == "string" ? a : String(t)
1942
1944
  };
1943
- }, Ir = (e, t, n = "rpc.mutation") => M.gen(function* () {
1944
- let r = yield* Se, i = yield* ve, a = yield* xr;
1945
- Cr(a, n, r);
1946
- let o = br(r, a, i.clientId), s = gr({ subjectKey: fr(r.id, i.clientId) }, () => sr({
1945
+ }, zr = (e, t, n = "rpc.mutation") => M.gen(function* () {
1946
+ let r = yield* Te, i = yield* xe, a = yield* wr;
1947
+ Er(a, n, r);
1948
+ let o = Cr(r, a, i.clientId), s = yr({ subjectKey: hr(r.id, i.clientId) }, () => ur({
1947
1949
  traceId: o.traceId,
1948
1950
  ...o.spanId === void 0 ? {} : { spanId: o.spanId }
1949
1951
  }, () => e(t, o)));
1950
1952
  return yield* (M.isEffect(s) ? s : M.tryPromise({
1951
1953
  try: () => Promise.resolve(s),
1952
1954
  catch: (e) => e
1953
- })).pipe(M.tapErrorCause((e) => M.sync(() => jr(n, o.traceId, e))), M.catchIf(Nr, () => M.die(Pr(o.traceId))), M.annotateLogs(Sr(o)));
1954
- }).pipe(M.withSpan(n, { attributes: { "framework.kind": "mutation" } })), Lr = 8 * 1024 * 1024, Rr = (e) => {
1955
- let t = e.port ?? 4e3, n = e.path ?? "/ws", r = Xe(), i = (t) => et.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
1955
+ })).pipe(M.tapErrorCause((e) => M.sync(() => Pr(n, o.traceId, e))), M.catchIf(Ir, () => M.die(Lr(o.traceId))), M.annotateLogs(Tr(o)));
1956
+ }).pipe(M.withSpan(n, { attributes: { "framework.kind": "mutation" } })), Br = 8 * 1024 * 1024, Vr = (e) => {
1957
+ let t = e.port ?? 4e3, n = e.path ?? "/ws", r = Qe(), i = (t) => nt.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
1956
1958
  if (!e.inspectRoute) return B.text("inspect route not configured", { status: 404 });
1957
1959
  let n = {};
1958
1960
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
@@ -1964,7 +1966,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
1964
1966
  contentType: a.contentType,
1965
1967
  headers: a.headers ?? {}
1966
1968
  });
1967
- }))), a = () => et.HttpServerRequest.pipe(M.flatMap((t) => {
1969
+ }))), a = () => nt.HttpServerRequest.pipe(M.flatMap((t) => {
1968
1970
  let n = e.inspectStream;
1969
1971
  if (!n) return M.succeed(B.text("inspect stream not configured", { status: 404 }));
1970
1972
  let r = {};
@@ -2009,7 +2011,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2009
2011
  ...i
2010
2012
  }
2011
2013
  }));
2012
- })), o = z.add("*", "/_voltro/inspect/*", et.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2014
+ })), o = z.add("*", "/_voltro/inspect/*", nt.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2013
2015
  if (!e.inspectRoute) return B.text("inspect route not configured", { status: 404 });
2014
2016
  let n = {};
2015
2017
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
@@ -2025,10 +2027,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2025
2027
  e.inspectRoute !== void 0 && (s = e.inspectStream === void 0 ? N.mergeAll(z.add("*", "/_voltro/inspect", i(!0)), o) : N.mergeAll(z.add("GET", "/_voltro/inspect/stream", a()), z.add("*", "/_voltro/inspect", i(!0)), o));
2026
2028
  let c = N.empty;
2027
2029
  if (e.webhookRoutes !== void 0 && e.webhookRoutes.size > 0) {
2028
- let t = (e) => et.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2030
+ let t = (e) => nt.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2029
2031
  let n = {};
2030
2032
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2031
- let r = t.method !== "GET" && t.method !== "HEAD" ? yield* t.text.pipe(M.orElseSucceed(() => "")) : "", i = new TextEncoder().encode(r), a = t.url.split("?")[0], o = ar(n.traceparent), s = yield* M.promise(() => e.handle({
2033
+ let r = t.method !== "GET" && t.method !== "HEAD" ? yield* t.text.pipe(M.orElseSucceed(() => "")) : "", i = new TextEncoder().encode(r), a = t.url.split("?")[0], o = cr(n.traceparent), s = yield* M.promise(() => e.handle({
2032
2034
  method: t.method,
2033
2035
  path: a,
2034
2036
  headers: n,
@@ -2049,7 +2051,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2049
2051
  }
2050
2052
  let l = N.empty;
2051
2053
  if (e.httpRoutes !== void 0 && e.httpRoutes.length > 0) {
2052
- let t = (e) => et.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2054
+ let t = (e) => nt.HttpServerRequest.pipe(M.flatMap((t) => M.gen(function* () {
2053
2055
  let n = {};
2054
2056
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2055
2057
  let r = t.url.indexOf("?"), i = r >= 0 ? t.url.slice(0, r) : t.url, a = r >= 0 ? t.url.slice(r + 1) : "", o = t.method !== "GET" && t.method !== "HEAD" ? new Uint8Array(yield* t.arrayBuffer.pipe(M.orElseSucceed(() => /* @__PURE__ */ new ArrayBuffer(0)))) : /* @__PURE__ */ new Uint8Array(), s = {
@@ -2058,8 +2060,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2058
2060
  query: a,
2059
2061
  headers: n,
2060
2062
  rawBody: o
2061
- }, c = yield* M.promise(() => ct(e, s));
2062
- c.status >= 500 && Ar.warn(`${t.method} ${i} → ${c.status}`, {
2063
+ }, c = yield* M.promise(() => ut(e, s));
2064
+ c.status >= 500 && Nr.warn(`${t.method} ${i} → ${c.status}`, {
2063
2065
  method: t.method,
2064
2066
  path: i,
2065
2067
  status: c.status,
@@ -2071,7 +2073,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2071
2073
  headers: l
2072
2074
  };
2073
2075
  return c.body instanceof Uint8Array ? B.uint8Array(c.body, u) : B.text(c.body ?? "", u);
2074
- })), M.tapErrorCause((t) => j.isInterruptedOnly(t) ? M.void : M.sync(() => Ar.error(`${e.map((e) => e.method).join("|")} ${e[0].path} threw`, { path: e[0].path }, j.squash(t))))), n = /* @__PURE__ */ new Map();
2076
+ })), M.tapErrorCause((t) => A.isInterruptedOnly(t) ? M.void : M.sync(() => Nr.error(`${e.map((e) => e.method).join("|")} ${e[0].path} threw`, { path: e[0].path }, A.squash(t))))), n = /* @__PURE__ */ new Map();
2075
2077
  for (let t of e.httpRoutes) {
2076
2078
  let e = n.get(t.path);
2077
2079
  e ? e.push(t) : n.set(t.path, [t]);
@@ -2082,14 +2084,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2082
2084
  });
2083
2085
  l = N.mergeAll(...r);
2084
2086
  }
2085
- let u = ot.layerProtocolWebsocketRouter({ path: n }), d = ot.layer(e.group), f = ot.layer(e.group).pipe(N.provide(ot.layerProtocolHttpRouter({ path: "/rpc" })), N.provide(at.layerJson), N.provide(e.httpHandlersLayer ?? e.handlersLayer)), p = N.scopedDiscard(M.gen(function* () {
2086
- let e = yield* ot.Protocol;
2087
+ let u = ct.layerProtocolWebsocketRouter({ path: n }), d = ct.layer(e.group), f = ct.layer(e.group).pipe(N.provide(ct.layerProtocolHttpRouter({ path: "/rpc" })), N.provide(st.layerJson), N.provide(e.httpHandlersLayer ?? e.handlersLayer)), p = N.scopedDiscard(M.gen(function* () {
2088
+ let e = yield* ct.Protocol;
2087
2089
  yield* M.forkScoped(M.gen(function* () {
2088
2090
  let t = yield* e.disconnects.take;
2089
- Jn(t), Qn(t);
2091
+ Zn(t), tr(t);
2090
2092
  }).pipe(M.forever));
2091
- })), m = N.mergeAll(d, p).pipe(N.provide(u), N.provide(at.layerJson), N.provide(e.handlersLayer)), h = N.mergeAll(m, f, s, c, l), g = e.pluginHttpInterceptor, _ = e.healthCheck, v = Number(process.env.VOLTRO_MAX_RPC_BODY_BYTES), y = e.maxRpcBodyBytes ?? (Number.isFinite(v) && v > 0 ? v : 8388608), b = { "cache-control": "no-store" }, x = (e) => M.gen(function* () {
2092
- let t = yield* et.HttpServerRequest, n = {};
2093
+ })), m = N.mergeAll(d, p).pipe(N.provide(u), N.provide(st.layerJson), N.provide(e.handlersLayer)), h = N.mergeAll(m, f, s, c, l), g = e.pluginHttpInterceptor, _ = e.healthCheck, v = Number(process.env.VOLTRO_MAX_RPC_BODY_BYTES), y = e.maxRpcBodyBytes ?? (Number.isFinite(v) && v > 0 ? v : 8388608), b = { "cache-control": "no-store" }, x = (e) => M.gen(function* () {
2094
+ let t = yield* nt.HttpServerRequest, n = {};
2093
2095
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2094
2096
  let r = t.url.indexOf("?"), i = r === -1 ? t.url : t.url.slice(0, r);
2095
2097
  if (t.method === "POST" && i === "/rpc") {
@@ -2129,13 +2131,13 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2129
2131
  status: l.status,
2130
2132
  ...l.headers ? { headers: l.headers } : {}
2131
2133
  });
2132
- }), S = N.unwrapEffect(z.toHttpEffect(h).pipe(M.map((e) => $e.serve(x(e))))).pipe(N.provide(nt.layer(() => r, { port: t })), N.provide(tt.layer));
2134
+ }), S = N.unwrapEffect(z.toHttpEffect(h).pipe(M.map((e) => tt.serve(x(e))))).pipe(N.provide(it.layer(() => r, { port: t })), N.provide(rt.layer));
2133
2135
  e.tracerLayer && (S = S.pipe(N.provide(e.tracerLayer)));
2134
- let C = A({ scope: "voltro:rpc" }), ee = N.launch(S).pipe(M.catchAllCause((e) => M.sync(() => {
2135
- C.error("rpc server crashed", {}, j.squash(e)), process.exit(1);
2136
+ let C = k({ scope: "voltro:rpc" }), ee = N.launch(S).pipe(M.catchAllCause((e) => M.sync(() => {
2137
+ C.error("rpc server crashed", {}, A.squash(e)), process.exit(1);
2136
2138
  })));
2137
- return rt.runMain(ee, { disableErrorReporting: !0 }), r;
2138
- }, zr = (e, t = 1e4) => new Promise((n, r) => {
2139
+ return at.runMain(ee, { disableErrorReporting: !0 }), r;
2140
+ }, Hr = (e, t = 1e4) => new Promise((n, r) => {
2139
2141
  if (e.listening) {
2140
2142
  n();
2141
2143
  return;
@@ -2151,13 +2153,13 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2151
2153
  o(e);
2152
2154
  }
2153
2155
  a = setTimeout(() => o(/* @__PURE__ */ Error(`rpc server did not bind within ${t}ms`)), t), e.on("listening", s), e.on("error", c);
2154
- }), Br = () => {
2156
+ }), Ur = () => {
2155
2157
  let e = process.env.FRAMEWORK_TRACING?.toLowerCase();
2156
2158
  return e === "console" || e === "otlp" || e === "off" ? e : process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ? "otlp" : "off";
2157
- }, Vr = () => {
2159
+ }, Wr = () => {
2158
2160
  let e = process.env.FRAMEWORK_METRICS?.toLowerCase();
2159
2161
  return e === "console" || e === "otlp" || e === "off" ? e : process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ? "otlp" : "off";
2160
- }, Hr = async () => {
2162
+ }, Gr = async () => {
2161
2163
  let [e, t, n, r, i] = await Promise.all([
2162
2164
  import("@opentelemetry/sdk-trace-base"),
2163
2165
  import("@opentelemetry/sdk-metrics"),
@@ -2172,7 +2174,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2172
2174
  otlpMetrics: r,
2173
2175
  nodeSdk: i
2174
2176
  };
2175
- }, Ur = (e, t, n) => {
2177
+ }, Kr = (e, t, n) => {
2176
2178
  let { PeriodicExportingMetricReader: r, ConsoleMetricExporter: i, InMemoryMetricExporter: a, AggregationTemporality: o } = e.sdkMetrics;
2177
2179
  if (t === "off") return {
2178
2180
  reader: void 0,
@@ -2195,8 +2197,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2195
2197
  }),
2196
2198
  inMemory: void 0
2197
2199
  };
2198
- }, Wr = async (e = {}) => {
2199
- let t = e.mode ?? Br(), n = e.metricsMode ?? Vr(), r = e.extraSpanProcessors ?? [], i = e.extraMetricReaders ?? [];
2200
+ }, qr = async (e = {}) => {
2201
+ let t = e.mode ?? Ur(), n = e.metricsMode ?? Wr(), r = e.extraSpanProcessors ?? [], i = e.extraMetricReaders ?? [];
2200
2202
  if (t === "off" && e.traceSink === void 0 && n === "off" && r.length === 0 && i.length === 0) return {
2201
2203
  layer: N.empty,
2202
2204
  mode: t,
@@ -2205,13 +2207,13 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2205
2207
  metricsMode: n,
2206
2208
  inMemoryMetricExporter: void 0
2207
2209
  };
2208
- let a = await Hr(), { ConsoleSpanExporter: o, InMemorySpanExporter: s, SimpleSpanProcessor: c, BatchSpanProcessor: l } = a.sdkTrace, u = t === "off", d = e.serviceName ?? process.env.OTEL_SERVICE_NAME ?? "voltro-app", f, p;
2210
+ let a = await Gr(), { ConsoleSpanExporter: o, InMemorySpanExporter: s, SimpleSpanProcessor: c, BatchSpanProcessor: l } = a.sdkTrace, u = t === "off", d = e.serviceName ?? process.env.OTEL_SERVICE_NAME ?? "voltro-app", f, p;
2209
2211
  e.spanProcessor ? p = e.spanProcessor : u ? p = void 0 : t === "memory" ? (f = new s(), p = new c(f)) : p = t === "console" ? new c(new o()) : new l(new a.otlpTrace.OTLPTraceExporter());
2210
2212
  let m = [
2211
2213
  ...e.traceSink ? [e.traceSink] : [],
2212
2214
  ...p ? [p] : [],
2213
2215
  ...r
2214
- ], h = m.length === 1 ? m[0] : m, { reader: g, inMemory: _ } = Ur(a, n, e.metricExportIntervalMillis ?? (process.env.OTEL_METRIC_EXPORT_INTERVAL ? Number(process.env.OTEL_METRIC_EXPORT_INTERVAL) : 6e4)), v = [...g ? [g] : [], ...i], y = v.length === 0 ? void 0 : v.length === 1 ? v[0] : v, b = {
2216
+ ], h = m.length === 1 ? m[0] : m, { reader: g, inMemory: _ } = Kr(a, n, e.metricExportIntervalMillis ?? (process.env.OTEL_METRIC_EXPORT_INTERVAL ? Number(process.env.OTEL_METRIC_EXPORT_INTERVAL) : 6e4)), v = [...g ? [g] : [], ...i], y = v.length === 0 ? void 0 : v.length === 1 ? v[0] : v, b = {
2215
2217
  serviceName: d,
2216
2218
  ...e.serviceVersion ? { serviceVersion: e.serviceVersion } : {},
2217
2219
  ...e.resourceAttributes ? { attributes: e.resourceAttributes } : {}
@@ -2229,18 +2231,18 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2229
2231
  metricsMode: n,
2230
2232
  inMemoryMetricExporter: _
2231
2233
  };
2232
- }, Gr = {
2233
- [dt.INTERNAL]: "internal",
2234
- [dt.SERVER]: "server",
2235
- [dt.CLIENT]: "client",
2236
- [dt.PRODUCER]: "producer",
2237
- [dt.CONSUMER]: "consumer"
2238
- }, Kr = (e) => e[0] * 1e3 + e[1] / 1e6, qr = 512, Jr = 48, Yr = (e) => {
2234
+ }, Jr = {
2235
+ [pt.INTERNAL]: "internal",
2236
+ [pt.SERVER]: "server",
2237
+ [pt.CLIENT]: "client",
2238
+ [pt.PRODUCER]: "producer",
2239
+ [pt.CONSUMER]: "consumer"
2240
+ }, Yr = (e) => e[0] * 1e3 + e[1] / 1e6, Xr = 512, Zr = 48, Qr = (e) => {
2239
2241
  let t = {}, n = 0;
2240
2242
  for (let r in e) {
2241
- if (n >= Jr) break;
2243
+ if (n >= Zr) break;
2242
2244
  let i = e[r];
2243
- if (typeof i == "string") t[r] = i.length > qr ? `${i.slice(0, qr)}…` : i;
2245
+ if (typeof i == "string") t[r] = i.length > Xr ? `${i.slice(0, Xr)}…` : i;
2244
2246
  else if (typeof i == "number" || typeof i == "boolean" || i == null) t[r] = i;
2245
2247
  else {
2246
2248
  let e;
@@ -2249,49 +2251,49 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2249
2251
  } catch {
2250
2252
  e = String(i);
2251
2253
  }
2252
- t[r] = e.length > qr ? `${e.slice(0, qr)}…` : e;
2254
+ t[r] = e.length > Xr ? `${e.slice(0, Xr)}…` : e;
2253
2255
  }
2254
2256
  n++;
2255
2257
  }
2256
2258
  return t;
2257
- }, Xr = {
2258
- [ft.UNSET]: "unset",
2259
- [ft.OK]: "ok",
2260
- [ft.ERROR]: "error"
2261
- }, Zr = (e) => {
2259
+ }, $r = {
2260
+ [mt.UNSET]: "unset",
2261
+ [mt.OK]: "ok",
2262
+ [mt.ERROR]: "error"
2263
+ }, ei = (e) => {
2262
2264
  let t = e.spanContext(), n = e.events.length > 0 ? e.events.slice(0, 16).map((e) => ({
2263
2265
  name: e.name,
2264
- tsMs: Kr(e.time),
2265
- ...e.attributes ? { attributes: Yr(e.attributes) } : {}
2266
+ tsMs: Yr(e.time),
2267
+ ...e.attributes ? { attributes: Qr(e.attributes) } : {}
2266
2268
  })) : void 0;
2267
2269
  return {
2268
2270
  traceId: t.traceId,
2269
2271
  spanId: t.spanId,
2270
2272
  parentSpanId: e.parentSpanContext?.spanId ?? null,
2271
2273
  name: e.name,
2272
- kind: Gr[e.kind] ?? "internal",
2273
- attributes: Yr(e.attributes),
2274
- startMs: Kr(e.startTime),
2275
- endMs: Kr(e.endTime),
2276
- durationMs: Kr(e.duration),
2277
- status: Xr[e.status.code] ?? "unset",
2274
+ kind: Jr[e.kind] ?? "internal",
2275
+ attributes: Qr(e.attributes),
2276
+ startMs: Yr(e.startTime),
2277
+ endMs: Yr(e.endTime),
2278
+ durationMs: Yr(e.duration),
2279
+ status: $r[e.status.code] ?? "unset",
2278
2280
  ...e.status.message ? { statusMessage: e.status.message } : {},
2279
2281
  ...n ? { events: n } : {}
2280
2282
  };
2281
- }, Qr = (e) => ({
2283
+ }, ti = (e) => ({
2282
2284
  onStart: () => {},
2283
2285
  onEnd: (t) => {
2284
2286
  try {
2285
- e(Zr(t));
2287
+ e(ei(t));
2286
2288
  } catch {}
2287
2289
  },
2288
2290
  forceFlush: () => Promise.resolve(),
2289
2291
  shutdown: () => Promise.resolve()
2290
- }), $r = { get: (e) => Promise.resolve(process.env[e]) }, ei = $r, ti = (e) => {
2291
- ei = e;
2292
- }, ni = () => {
2293
- ei = $r;
2294
- }, ri = async (e) => await ei.get(e) ?? process.env[e], ii = (e) => process.env[e], ai = (e, t = 6e4, n = () => Date.now()) => {
2292
+ }), ni = { get: (e) => Promise.resolve(process.env[e]) }, ri = ni, ii = (e) => {
2293
+ ri = e;
2294
+ }, ai = () => {
2295
+ ri = ni;
2296
+ }, oi = async (e) => await ri.get(e) ?? process.env[e], si = (e) => process.env[e], ci = (e, t = 6e4, n = () => Date.now()) => {
2295
2297
  let r = /* @__PURE__ */ new Map();
2296
2298
  return { get: async (i) => {
2297
2299
  let a = r.get(i);
@@ -2302,12 +2304,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2302
2304
  at: n()
2303
2305
  }), o;
2304
2306
  } };
2305
- }, oi = (e) => {
2307
+ }, li = (e) => {
2306
2308
  let t = {
2307
2309
  accept: "application/json",
2308
2310
  ...e.headers ?? {}
2309
2311
  };
2310
- if (e.perKey) return ai({ get: async (n) => {
2312
+ if (e.perKey) return ci({ get: async (n) => {
2311
2313
  let r = await fetch(`${e.url.replace(/\/$/, "")}/${encodeURIComponent(n)}`, { headers: t });
2312
2314
  if (!r.ok) return;
2313
2315
  let i = await r.json();
@@ -2318,59 +2320,59 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2318
2320
  let t = (await a())[e];
2319
2321
  return typeof t == "string" ? t : void 0;
2320
2322
  } };
2321
- }, si = (e) => e === void 0 || e === "env" || typeof e == "object" && e.kind === "env" ? $r : e.kind === "custom" ? e.backend : e.kind === "http" ? oi(e) : $r, ci = (e) => /^[0-9a-f]{64}$/i.test(e) ? Buffer.from(e, "hex") : he(e, "voltro:field-encryption:v1", 32), li = (t) => {
2323
+ }, ui = (e) => e === void 0 || e === "env" || typeof e == "object" && e.kind === "env" ? ni : e.kind === "custom" ? e.backend : e.kind === "http" ? li(e) : ni, di = (e) => /^[0-9a-f]{64}$/i.test(e) ? Buffer.from(e, "hex") : ve(e, "voltro:field-encryption:v1", 32), fi = (t) => {
2322
2324
  if (t.length !== 32) throw Error(`field cipher key must be 32 bytes, got ${t.length}`);
2323
2325
  return {
2324
2326
  encrypt: (n) => {
2325
- let r = pe(12), i = ue("aes-256-gcm", t, r), a = Buffer.concat([i.update(n, "utf8"), i.final()]), o = i.getAuthTag();
2327
+ let r = ge(12), i = pe("aes-256-gcm", t, r), a = Buffer.concat([i.update(n, "utf8"), i.final()]), o = i.getAuthTag();
2326
2328
  return `${e}${r.toString("base64")}:${o.toString("base64")}:${a.toString("base64")}`;
2327
2329
  },
2328
2330
  decrypt: (n) => {
2329
2331
  let [r, i, a] = n.slice(e.length).split(":");
2330
2332
  if (!r || !i || a === void 0) throw Error("field cipher: malformed ciphertext");
2331
- let o = de("aes-256-gcm", t, Buffer.from(r, "base64"));
2333
+ let o = me("aes-256-gcm", t, Buffer.from(r, "base64"));
2332
2334
  return o.setAuthTag(Buffer.from(i, "base64")), Buffer.concat([o.update(Buffer.from(a, "base64")), o.final()]).toString("utf8");
2333
2335
  }
2334
2336
  };
2335
- }, ui = (e) => li(ci(e)), di, fi = (e) => {
2336
- di = e;
2337
- }, pi = () => di, mi = "no field cipher registered — enable `@voltro/plugin-governance` `governancePlugin({ fieldEncryption: { key } })` (or call setFieldCipher) so a key is available.", q = (e) => {
2338
- let t = pi();
2339
- if (!t) throw Error(`encryptField: ${mi}`);
2337
+ }, pi = (e) => fi(di(e)), mi, hi = (e) => {
2338
+ mi = e;
2339
+ }, gi = () => mi, _i = "no field cipher registered — enable `@voltro/plugin-governance` `governancePlugin({ fieldEncryption: { key } })` (or call setFieldCipher) so a key is available.", q = (e) => {
2340
+ let t = gi();
2341
+ if (!t) throw Error(`encryptField: ${_i}`);
2340
2342
  return t.encrypt(e);
2341
- }, hi = (e) => {
2343
+ }, vi = (e) => {
2342
2344
  if (!x(e)) return e;
2343
- let t = pi();
2344
- if (!t) throw Error(`decryptField: ${mi}`);
2345
+ let t = gi();
2346
+ if (!t) throw Error(`decryptField: ${_i}`);
2345
2347
  return t.decrypt(e);
2346
- }, gi = "_voltro_idempotency", _i = (e) => {
2348
+ }, yi = "_voltro_idempotency", bi = (e) => {
2347
2349
  if (e == null) return null;
2348
2350
  let t = typeof e == "string" ? JSON.parse(e) : e;
2349
2351
  return t && typeof t == "object" && "status" in t ? t : null;
2350
- }, vi = (e) => ({
2352
+ }, xi = (e) => ({
2351
2353
  scope: e.scope,
2352
2354
  key: e.key,
2353
2355
  status: e.status === "completed" ? "completed" : "in_flight",
2354
- response: _i(e.response),
2355
- createdAt: Ie(e.createdAt)
2356
- }), yi = async (e, n, r) => (await e.query({
2357
- table: gi,
2356
+ response: bi(e.response),
2357
+ createdAt: ze(e.createdAt)
2358
+ }), Si = async (e, n, r) => (await e.query({
2359
+ table: yi,
2358
2360
  predicate: t(u("scope", n), u("key", r)),
2359
2361
  order: [],
2360
2362
  take: 1,
2361
2363
  skip: void 0,
2362
2364
  projection: void 0
2363
- }))[0] ?? null, bi = (e) => ({
2365
+ }))[0] ?? null, Ci = (e) => ({
2364
2366
  get: async (t, n) => {
2365
- let r = await yi(e, t, n);
2366
- return r ? vi(r) : null;
2367
+ let r = await Si(e, t, n);
2368
+ return r ? xi(r) : null;
2367
2369
  },
2368
2370
  claim: async (t, n, r, i) => {
2369
2371
  for (let a = 0; a < 2; a++) {
2370
2372
  let a = f({
2371
2373
  kind: "typeid",
2372
2374
  prefix: "idem"
2373
- }, gi), o = await e.insertIgnore(gi, {
2375
+ }, yi), o = await e.insertIgnore(yi, {
2374
2376
  id: a,
2375
2377
  scope: t,
2376
2378
  key: n,
@@ -2379,11 +2381,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2379
2381
  createdAt: new Date(r)
2380
2382
  }, { conflictColumns: ["scope", "key"] });
2381
2383
  if (o.id === a) return "claimed";
2382
- if (r - Ie(o.createdAt) < i) return vi(o);
2383
- await e.delete(gi, o.id);
2384
+ if (r - ze(o.createdAt) < i) return xi(o);
2385
+ await e.delete(yi, o.id);
2384
2386
  }
2385
- let a = await yi(e, t, n);
2386
- return a ? vi(a) : {
2387
+ let a = await Si(e, t, n);
2388
+ return a ? xi(a) : {
2387
2389
  scope: t,
2388
2390
  key: n,
2389
2391
  status: "in_flight",
@@ -2392,36 +2394,36 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2392
2394
  };
2393
2395
  },
2394
2396
  complete: async (t, n, r, i) => {
2395
- let a = await yi(e, t, n);
2396
- a && await e.update(gi, a.id, {
2397
+ let a = await Si(e, t, n);
2398
+ a && await e.update(yi, a.id, {
2397
2399
  status: "completed",
2398
2400
  response: r
2399
2401
  });
2400
2402
  },
2401
2403
  release: async (t, n) => {
2402
- let r = await yi(e, t, n);
2403
- r && await e.delete(gi, r.id);
2404
+ let r = await Si(e, t, n);
2405
+ r && await e.delete(yi, r.id);
2404
2406
  }
2405
- }), J = "_voltro_kv", xi = (e) => {
2407
+ }), J = "_voltro_kv", wi = (e) => {
2406
2408
  if (e == null) return null;
2407
2409
  if (e instanceof Date) return e.getTime();
2408
2410
  if (typeof e == "number") return e;
2409
2411
  let t = Date.parse(String(e));
2410
2412
  return Number.isNaN(t) ? null : t;
2411
- }, Si = (e, t) => {
2412
- let n = xi(e.expiresAt);
2413
+ }, Ti = (e, t) => {
2414
+ let n = wi(e.expiresAt);
2413
2415
  return n !== null && n <= t;
2414
- }, Ci = (e) => e === null ? null : JSON.parse(e), wi = async (e, t) => (await e.query({
2416
+ }, Ei = (e) => e === null ? null : JSON.parse(e), Di = async (e, t) => (await e.query({
2415
2417
  table: J,
2416
2418
  predicate: u("key", t),
2417
2419
  order: [],
2418
2420
  take: 1,
2419
2421
  skip: void 0,
2420
2422
  projection: void 0
2421
- }))[0] ?? null, Ti = (e) => {
2423
+ }))[0] ?? null, Oi = (e) => {
2422
2424
  let n = (e, t, n) => M.tryPromise({
2423
2425
  try: n,
2424
- catch: (n) => new mt({
2426
+ catch: (n) => new gt({
2425
2427
  operation: e,
2426
2428
  key: t,
2427
2429
  cause: String(n)
@@ -2429,8 +2431,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2429
2431
  });
2430
2432
  return {
2431
2433
  get: (t) => n("get", t, async () => {
2432
- let n = await wi(e, t);
2433
- return n === null ? F.none() : Si(n, Date.now()) ? (await e.delete(J, n.id), F.none()) : F.some(Ci(n.value));
2434
+ let n = await Di(e, t);
2435
+ return n === null ? F.none() : Ti(n, Date.now()) ? (await e.delete(J, n.id), F.none()) : F.some(Ei(n.value));
2434
2436
  }),
2435
2437
  set: (t, r, i) => n("set", t, async () => {
2436
2438
  let n = Date.now(), a = i?.ttlMs !== void 0 && i.ttlMs > 0 ? new Date(n + i.ttlMs) : null, o = f({
@@ -2453,17 +2455,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2453
2455
  });
2454
2456
  }),
2455
2457
  delete: (t) => n("delete", t, async () => {
2456
- let n = await wi(e, t);
2458
+ let n = await Di(e, t);
2457
2459
  if (n === null) return !1;
2458
- let r = !Si(n, Date.now());
2460
+ let r = !Ti(n, Date.now());
2459
2461
  return await e.delete(J, n.id), r;
2460
2462
  }),
2461
2463
  has: (t) => n("has", t, async () => {
2462
- let n = await wi(e, t);
2463
- return n === null ? !1 : Si(n, Date.now()) ? (await e.delete(J, n.id), !1) : !0;
2464
+ let n = await Di(e, t);
2465
+ return n === null ? !1 : Ti(n, Date.now()) ? (await e.delete(J, n.id), !1) : !0;
2464
2466
  }),
2465
2467
  list: (r) => n("list", "", async () => {
2466
- let n = Date.now(), i = ne(S("expiresAt"), h("expiresAt", new Date(n))), a = r === "" ? i : t(o("key", r), i), s = await e.query({
2468
+ let n = Date.now(), i = re(S("expiresAt"), h("expiresAt", new Date(n))), a = r === "" ? i : t(o("key", r), i), s = await e.query({
2467
2469
  table: J,
2468
2470
  predicate: a,
2469
2471
  order: [],
@@ -2471,7 +2473,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2471
2473
  skip: void 0,
2472
2474
  projection: void 0
2473
2475
  }), c = [];
2474
- for (let e of s) Si(e, n) || (r === "" || e.key.startsWith(r)) && c.push(e.key);
2476
+ for (let e of s) Ti(e, n) || (r === "" || e.key.startsWith(r)) && c.push(e.key);
2475
2477
  return c;
2476
2478
  }),
2477
2479
  clear: () => n("clear", "", async () => {
@@ -2481,8 +2483,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2481
2483
  } });
2482
2484
  })
2483
2485
  };
2484
- }, Ei = async ({ store: e, env: t = process.env }) => {
2485
- let n = (t.KV_BACKEND ?? "database").toLowerCase(), r = n === "redis" ? "redis" : n === "memory" ? "memory" : "database", i = r === "redis" ? vt(t.KV_KEY_PREFIX ? { keyPrefix: t.KV_KEY_PREFIX } : {}).pipe(N.provide(gt)) : r === "memory" ? _t() : N.succeed(ht, ht.of(Ti(e))), a = We.make(pt.Default.pipe(N.provide(i))), o = await a.runPromise(pt);
2486
+ }, ki = async ({ store: e, env: t = process.env }) => {
2487
+ let n = (t.KV_BACKEND ?? "database").toLowerCase(), r = n === "redis" ? "redis" : n === "memory" ? "memory" : "database", i = r === "redis" ? bt(t.KV_KEY_PREFIX ? { keyPrefix: t.KV_KEY_PREFIX } : {}).pipe(N.provide(vt)) : r === "memory" ? yt() : N.succeed(_t, _t.of(Oi(e))), a = Ke.make(ht.Default.pipe(N.provide(i))), o = await a.runPromise(ht);
2486
2488
  return {
2487
2489
  kv: {
2488
2490
  get: (e) => a.runPromise(o.get(e)).then((e) => F.getOrUndefined(e)),
@@ -2497,7 +2499,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2497
2499
  backend: r,
2498
2500
  dispose: () => a.dispose()
2499
2501
  };
2500
- }, Di = {
2502
+ }, Ai = {
2501
2503
  get: () => Promise.resolve(void 0),
2502
2504
  getOrElse: (e, t) => Promise.resolve(t()),
2503
2505
  set: () => Promise.resolve(),
@@ -2505,7 +2507,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2505
2507
  has: () => Promise.resolve(!1),
2506
2508
  list: () => Promise.resolve([]),
2507
2509
  clear: () => Promise.resolve()
2508
- }, Oi = "_voltro_api_keys", ki = (e) => fe("sha256").update(e, "utf8").digest("hex"), Ai = (e = "voltro_") => `${e}${pe(30).toString("base64url")}`, ji = (e) => ({
2510
+ }, ji = "_voltro_api_keys", Mi = (e) => he("sha256").update(e, "utf8").digest("hex"), Ni = (e = "voltro_") => `${e}${ge(30).toString("base64url")}`, Pi = (e) => ({
2509
2511
  id: e.id,
2510
2512
  name: e.name,
2511
2513
  keyPrefix: e.keyPrefix,
@@ -2515,17 +2517,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2515
2517
  expiresAt: e.expiresAt,
2516
2518
  revokedAt: e.revokedAt,
2517
2519
  createdAt: e.createdAt
2518
- }), Mi = (e, t) => e.revokedAt === null && (e.expiresAt === null || e.expiresAt > t), Ni = (e, t = {}) => {
2520
+ }), Fi = (e, t) => e.revokedAt === null && (e.expiresAt === null || e.expiresAt > t), Ii = (e, t = {}) => {
2519
2521
  let n = t.prefix ?? "voltro_", r = async (t) => {
2520
- let r = Ai(n), i = f({
2522
+ let r = Ni(n), i = f({
2521
2523
  kind: "typeid",
2522
2524
  prefix: "apikey"
2523
- }, Oi), a = t.scopes ?? [], o = t.expiresAt == null ? null : t.expiresAt instanceof Date ? t.expiresAt.getTime() : t.expiresAt;
2525
+ }, ji), a = t.scopes ?? [], o = t.expiresAt == null ? null : t.expiresAt instanceof Date ? t.expiresAt.getTime() : t.expiresAt;
2524
2526
  return await e.insert({
2525
2527
  id: i,
2526
2528
  tenantId: t.tenantId ?? null,
2527
2529
  name: t.name,
2528
- hashedKey: ki(r),
2530
+ hashedKey: Mi(r),
2529
2531
  keyPrefix: r.slice(0, n.length + 6),
2530
2532
  scopes: a,
2531
2533
  lastUsedAt: null,
@@ -2543,7 +2545,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2543
2545
  };
2544
2546
  }, i = async (t, n = Date.now()) => {
2545
2547
  let r = await e.findByHash(t);
2546
- return !r || !Mi(r, n) ? null : (await e.patch(r.id, { lastUsedAt: n }), {
2548
+ return !r || !Fi(r, n) ? null : (await e.patch(r.id, { lastUsedAt: n }), {
2547
2549
  id: r.id,
2548
2550
  tenantId: r.tenantId ?? "",
2549
2551
  createdBy: r.createdBy ?? null,
@@ -2553,7 +2555,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2553
2555
  return {
2554
2556
  issue: r,
2555
2557
  resolveByHash: i,
2556
- verify: (e, t) => i(ki(e), t),
2558
+ verify: (e, t) => i(Mi(e), t),
2557
2559
  revoke: async (t, n = Date.now()) => await e.findById(t) ? (await e.patch(t, { revokedAt: n }), !0) : !1,
2558
2560
  rotate: async (t, n = Date.now()) => {
2559
2561
  let i = await e.findById(t);
@@ -2564,9 +2566,9 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2564
2566
  createdBy: i.createdBy
2565
2567
  })) : null;
2566
2568
  },
2567
- list: async (t) => (await e.listByTenant(t)).map(ji)
2569
+ list: async (t) => (await e.listByTenant(t)).map(Pi)
2568
2570
  };
2569
- }, Pi = () => {
2571
+ }, Li = () => {
2570
2572
  let e = /* @__PURE__ */ new Map();
2571
2573
  return {
2572
2574
  insert: async (t) => {
@@ -2583,21 +2585,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2583
2585
  });
2584
2586
  }
2585
2587
  };
2586
- }, Fi = (e) => e == null ? null : e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : null, Ii = (e) => ({
2588
+ }, Ri = (e) => e == null ? null : e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : null, zi = (e) => ({
2587
2589
  id: String(e.id),
2588
2590
  tenantId: e.tenantId ?? null,
2589
2591
  name: String(e.name),
2590
2592
  hashedKey: String(e.hashedKey),
2591
2593
  keyPrefix: String(e.keyPrefix),
2592
2594
  scopes: e.scopes ?? null,
2593
- lastUsedAt: Fi(e.lastUsedAt),
2594
- expiresAt: Fi(e.expiresAt),
2595
- revokedAt: Fi(e.revokedAt),
2595
+ lastUsedAt: Ri(e.lastUsedAt),
2596
+ expiresAt: Ri(e.expiresAt),
2597
+ revokedAt: Ri(e.revokedAt),
2596
2598
  createdBy: e.createdBy ?? null,
2597
- createdAt: Fi(e.createdAt) ?? 0
2598
- }), Li = (e) => {
2599
+ createdAt: Ri(e.createdAt) ?? 0
2600
+ }), Bi = (e) => {
2599
2601
  let t = async (t) => await e.query({
2600
- table: Oi,
2602
+ table: ji,
2601
2603
  predicate: t,
2602
2604
  order: [],
2603
2605
  take: void 0,
@@ -2615,32 +2617,32 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2615
2617
  };
2616
2618
  return {
2617
2619
  insert: async (t) => {
2618
- await e.insert(Oi, n(t));
2620
+ await e.insert(ji, n(t));
2619
2621
  },
2620
2622
  findByHash: async (e) => {
2621
2623
  let n = await t(u("hashedKey", e));
2622
- return n[0] ? Ii(n[0]) : null;
2624
+ return n[0] ? zi(n[0]) : null;
2623
2625
  },
2624
2626
  findById: async (e) => {
2625
2627
  let n = await t(u("id", e));
2626
- return n[0] ? Ii(n[0]) : null;
2628
+ return n[0] ? zi(n[0]) : null;
2627
2629
  },
2628
- listByTenant: async (e) => (await t(e === null ? void 0 : u("tenantId", e))).map(Ii).filter((t) => e === null || t.tenantId === e),
2630
+ listByTenant: async (e) => (await t(e === null ? void 0 : u("tenantId", e))).map(zi).filter((t) => e === null || t.tenantId === e),
2629
2631
  patch: async (t, r) => {
2630
- await e.update(Oi, t, n(r));
2632
+ await e.update(ji, t, n(r));
2631
2633
  }
2632
2634
  };
2633
- }, Ri = (e, t = {}) => yt({
2635
+ }, Vi = (e, t = {}) => xt({
2634
2636
  id: "voltro-apikey",
2635
2637
  ...t.prefix ? { prefix: t.prefix } : {},
2636
2638
  resolveKey: (t) => e.resolveByHash(t)
2637
- }), zi = (e) => {
2639
+ }), Hi = (e) => {
2638
2640
  let t = e.subject;
2639
2641
  return {
2640
2642
  id: t.id ?? null,
2641
2643
  tenantId: t.tenantId ?? null
2642
2644
  };
2643
- }, Bi = (e, t = "/v1/api-keys") => {
2645
+ }, Ui = (e, t = "/v1/api-keys") => {
2644
2646
  let n = L.Struct({
2645
2647
  id: L.String,
2646
2648
  name: L.String,
@@ -2653,11 +2655,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2653
2655
  createdAt: L.Number
2654
2656
  });
2655
2657
  return [
2656
- st({
2658
+ lt({
2657
2659
  method: "POST",
2658
2660
  path: `${t}/issue`,
2659
2661
  summary: "Issue an API key (the token is returned ONCE).",
2660
- guards: [lt(_e)],
2662
+ guards: [dt(be)],
2661
2663
  input: L.Struct({ body: L.Struct({
2662
2664
  name: L.String,
2663
2665
  scopes: L.optional(L.Array(L.String)),
@@ -2669,7 +2671,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2669
2671
  keyPrefix: L.String
2670
2672
  }),
2671
2673
  handler: async (t, n) => {
2672
- let r = t.body, i = zi(n), a = await e.issue({
2674
+ let r = t.body, i = Hi(n), a = await e.issue({
2673
2675
  tenantId: i.tenantId,
2674
2676
  name: r.name,
2675
2677
  ...r.scopes ? { scopes: r.scopes } : {},
@@ -2683,68 +2685,72 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2683
2685
  };
2684
2686
  }
2685
2687
  }),
2686
- st({
2688
+ lt({
2687
2689
  method: "GET",
2688
2690
  path: t,
2689
2691
  summary: "List the caller tenant's API keys (no secrets).",
2690
- guards: [lt(_e)],
2692
+ guards: [dt(be)],
2691
2693
  input: L.Struct({}),
2692
2694
  output: L.Struct({ keys: L.Array(n) }),
2693
- handler: async (t, n) => ({ keys: [...await e.list(zi(n).tenantId)] })
2695
+ handler: async (t, n) => ({ keys: [...await e.list(Hi(n).tenantId)] })
2694
2696
  }),
2695
- st({
2697
+ lt({
2696
2698
  method: "POST",
2697
2699
  path: `${t}/revoke`,
2698
2700
  summary: "Revoke an API key by id.",
2699
- guards: [lt(_e)],
2701
+ guards: [dt(be)],
2700
2702
  input: L.Struct({ body: L.Struct({ id: L.String }) }),
2701
2703
  output: L.Struct({ ok: L.Boolean }),
2702
2704
  handler: async (t, n) => ({ ok: await e.revoke(t.body.id) })
2703
2705
  })
2704
2706
  ];
2705
- }, Vi = class extends L.TaggedError()("TenantScopeViolation", {
2707
+ }, Wi = {
2708
+ type: "anonymous",
2709
+ id: null,
2710
+ tenantId: null
2711
+ }, Gi = class extends L.TaggedError()("TenantScopeViolation", {
2706
2712
  table: L.String,
2707
2713
  reason: L.String
2708
- }) {}, Hi = class extends L.TaggedError()("StoreOperationFailed", {
2714
+ }) {}, Ki = class extends L.TaggedError()("StoreOperationFailed", {
2709
2715
  operation: L.String,
2710
2716
  table: L.String,
2711
2717
  cause: L.String
2712
- }) {}, Ui = class extends L.TaggedError()("TableValidationFailed", {
2718
+ }) {}, qi = class extends L.TaggedError()("TableValidationFailed", {
2713
2719
  table: L.String,
2714
2720
  summary: L.String,
2715
2721
  issues: L.Array(L.Struct({
2716
2722
  path: L.String,
2717
2723
  message: L.String
2718
2724
  }))
2719
- }) {}, Wi = class extends Re.Tag("@voltro/EffectStore")() {}, Gi = (e, t) => (n) => n instanceof Vi ? n : new Hi({
2725
+ }) {}, Ji = class extends Ve.Tag("@voltro/EffectStore")() {}, Yi = (e, t) => (n) => n instanceof Gi ? n : new Ki({
2720
2726
  operation: e,
2721
2727
  table: t,
2722
2728
  cause: String(n)
2723
- }), Ki = (e, t, n) => M.tryPromise({
2729
+ }), Xi = (e, t, n) => M.tryPromise({
2724
2730
  try: n,
2725
- catch: Gi(e, t)
2726
- }), qi = (e) => N.succeed(Wi, {
2727
- query: ((t) => Ki("query", t.table, () => e.query(t))),
2728
- insert: (t, n) => Ki("insert", t, () => e.insert(t, n)),
2729
- update: (t, n, r) => Ki("update", t, () => e.update(t, n, r)),
2730
- delete: (t, n) => Ki("delete", t, () => e.delete(t, n)),
2731
- hardDelete: (t, n) => Ki("hardDelete", t, () => e.hardDelete(t, n))
2732
- }), Ji = (e) => it.make(e.name, {
2731
+ catch: Yi(e, t)
2732
+ }), Zi = (e) => N.succeed(Ji, {
2733
+ query: ((t) => Xi("query", t.table, () => e.query(t))),
2734
+ insert: (t, n) => Xi("insert", t, () => e.insert(t, n)),
2735
+ update: (t, n, r) => Xi("update", t, () => e.update(t, n, r)),
2736
+ delete: (t, n) => Xi("delete", t, () => e.delete(t, n)),
2737
+ hardDelete: (t, n) => Xi("hardDelete", t, () => e.hardDelete(t, n))
2738
+ }), Qi = (e) => ot.make(e.name, {
2733
2739
  payload: e.payloadSchema,
2734
- success: Ee,
2740
+ success: ke,
2735
2741
  error: e.errorSchema
2736
- }), Yi = (e, t) => ({
2742
+ }), $i = (e, t) => ({
2737
2743
  id: t,
2738
2744
  workflowName: e,
2739
2745
  executionId: t,
2740
2746
  status: "running"
2741
- }), Xi = Yi, Zi = (e) => {
2742
- let t = j.failureOption(e), n = t._tag === "Some" ? t.value : j.squash(e);
2747
+ }), ea = $i, ta = (e) => {
2748
+ let t = A.failureOption(e), n = t._tag === "Some" ? t.value : A.squash(e);
2743
2749
  return {
2744
2750
  tag: n && typeof n == "object" && "_tag" in n ? String(n._tag) : null,
2745
2751
  message: n?.message ?? String(n)
2746
2752
  };
2747
- }, Qi = (e, t, n) => {
2753
+ }, na = (e, t, n) => {
2748
2754
  if (n === void 0) return {
2749
2755
  id: t,
2750
2756
  workflowName: e,
@@ -2759,7 +2765,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2759
2765
  };
2760
2766
  if (typeof n == "object" && n && n._tag === "Complete") {
2761
2767
  let r = n.exit;
2762
- return Ue.isSuccess(r) ? {
2768
+ return Ge.isSuccess(r) ? {
2763
2769
  id: t,
2764
2770
  workflowName: e,
2765
2771
  executionId: t,
@@ -2770,7 +2776,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2770
2776
  workflowName: e,
2771
2777
  executionId: t,
2772
2778
  status: "failed",
2773
- error: Zi(r.cause)
2779
+ error: ta(r.cause)
2774
2780
  };
2775
2781
  }
2776
2782
  return {
@@ -2779,17 +2785,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2779
2785
  executionId: t,
2780
2786
  status: "running"
2781
2787
  };
2782
- }, $i = (e) => new Promise((t) => setTimeout(t, e)), ea = (e) => {
2788
+ }, ra = (e) => new Promise((t) => setTimeout(t, e)), ia = (e) => {
2783
2789
  let t = new Map(e.workflows.map((e) => [e.definition.name, e.definition])), n = (e) => {
2784
2790
  let n = t.get(e);
2785
2791
  if (!n) throw Error(`Unknown workflow: ${e}`);
2786
2792
  return n;
2787
2793
  }, r = async (t, r) => {
2788
2794
  let i = n(t);
2789
- return Qi(t, r, await e.runEffect(i.poll(r)));
2790
- }, i = async () => e.runEffect(bt()), a = async (t, r, i) => {
2795
+ return na(t, r, await e.runEffect(i.poll(r)));
2796
+ }, i = async () => e.runEffect(St()), a = async (t, r, i) => {
2791
2797
  let a = n(t), o;
2792
- return i?.callerContext !== void 0 && (o = await e.runEffect(a.executionId(r)), await e.rememberStartContext?.(t, o, i.callerContext)), i?.wait ? (await e.runEffect(a.execute(r)), Yi(t, o ?? await e.runEffect(a.executionId(r)))) : Yi(t, await e.runEffect(a.execute(r, { discard: !0 })));
2798
+ return i?.callerContext !== void 0 && (o = await e.runEffect(a.executionId(r)), await e.rememberStartContext?.(t, o, i.callerContext)), i?.wait ? (await e.runEffect(a.execute(r)), $i(t, o ?? await e.runEffect(a.executionId(r)))) : $i(t, await e.runEffect(a.execute(r, { discard: !0 })));
2793
2799
  };
2794
2800
  return {
2795
2801
  start: a,
@@ -2827,7 +2833,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2827
2833
  let e = await r(i, a);
2828
2834
  if (e.status === "succeeded" || e.status === "failed" || e.status === "cancelled") return e;
2829
2835
  if (o?.timeoutMs !== void 0 && Date.now() - s >= o.timeoutMs) throw Error(`Timed out waiting for workflow '${i}' run '${a}'`);
2830
- await $i(c);
2836
+ await ra(c);
2831
2837
  }
2832
2838
  }),
2833
2839
  cancel: async (t, r) => {
@@ -2865,22 +2871,22 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2865
2871
  return e.retry(t, n);
2866
2872
  }
2867
2873
  };
2868
- }, ta = (e, t) => ({
2874
+ }, aa = (e, t) => ({
2869
2875
  ...e,
2870
2876
  start: async (n, r, i) => {
2871
2877
  if (i?.wait) throw Error("ctx.workflows.start(..., { wait: true }) is not allowed inside a mutation transaction; start the workflow and wait after commit.");
2872
2878
  let a = await e.executionId(n, r);
2873
- return t(() => e.start(n, r)), Yi(n, a);
2879
+ return t(() => e.start(n, r)), $i(n, a);
2874
2880
  },
2875
2881
  child: async (n, r, i) => {
2876
2882
  if (i?.wait) throw Error("ctx.workflows.child(..., { wait: true }) is not allowed inside a mutation transaction; start the child workflow and wait after commit.");
2877
2883
  let a = await e.executionId(n, r);
2878
- return t(() => e.child(n, r, i)), Yi(n, a);
2884
+ return t(() => e.child(n, r, i)), $i(n, a);
2879
2885
  },
2880
2886
  run: async () => {
2881
2887
  throw Error("ctx.workflows.run(...) is not allowed inside a mutation transaction; use ctx.workflows.start(...) so the workflow starts after commit.");
2882
2888
  }
2883
- }), na = (e, t) => ({
2889
+ }), oa = (e, t) => ({
2884
2890
  ...e,
2885
2891
  start: (n, r, i) => e.start(n, r, {
2886
2892
  ...i,
@@ -2894,7 +2900,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2894
2900
  ...i,
2895
2901
  callerContext: t
2896
2902
  })
2897
- }), ra = (e) => {
2903
+ }), sa = (e) => {
2898
2904
  let t = () => {
2899
2905
  let t = e();
2900
2906
  if (!t) throw Error("Workflow runtime is not ready yet");
@@ -2915,55 +2921,59 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
2915
2921
  listRuns: ((e) => t().listRuns(e)),
2916
2922
  retry: (e, n) => t().retry(e, n)
2917
2923
  };
2918
- }, ia = (e, t) => {
2924
+ }, ca = (e, t) => {
2919
2925
  let n = {};
2920
- for (let r of e) n[r.definition.name] = (e) => (t ? M.promise(() => t.start(r.definition.name, e)) : r.definition.execute(e, { discard: !0 }).pipe(M.map((e) => Yi(r.definition.name, e)))).pipe(M.withSpan(`workflow.${r.definition.name}`, { attributes: { "framework.kind": "workflow" } }));
2926
+ for (let r of e) n[r.definition.name] = (e) => (t ? M.promise(() => t.start(r.definition.name, e)) : r.definition.execute(e, { discard: !0 }).pipe(M.map((e) => $i(r.definition.name, e)))).pipe(M.withSpan(`workflow.${r.definition.name}`, { attributes: { "framework.kind": "workflow" } }));
2921
2927
  return n;
2922
- }, aa = (e, t, n) => e.map((e) => e.definition.toLayer(((r, i) => {
2928
+ }, la = (e, t, n) => e.map((e) => e.definition.toLayer(((r, i) => {
2923
2929
  let a = t.resolveStartContext?.(e.definition.name, i);
2924
2930
  return (a === void 0 ? M.succeed(void 0) : M.promise(() => Promise.resolve(a))).pipe(M.flatMap((a) => {
2925
- let o = t.buildContext(a, {
2931
+ let o = {
2932
+ ...a,
2933
+ subject: a?.subject ?? Wi,
2934
+ traceId: a?.traceId ?? "workflow-bootstrap"
2935
+ }, s = t.buildContext(o, {
2926
2936
  workflowName: e.definition.name,
2927
2937
  executionId: i,
2928
2938
  parentExecutionId: a?.parentExecutionId ?? null,
2929
2939
  parentClosePolicy: a?.parentClosePolicy ?? null
2930
- }), s = e.buildExecute(o), c = (n?.(e, s, a) ?? s)(r, i), l = o?.store;
2931
- return l === void 0 ? c : M.provide(c, qi(l));
2940
+ }), c = e.buildExecute(s), l = (n?.(e, c, o) ?? c)(r, i), u = s?.store;
2941
+ return u === void 0 ? l : M.provide(l, Zi(u));
2932
2942
  }));
2933
- }))), oa = (e) => ({
2943
+ }))), ua = (e) => ({
2934
2944
  _tag: "workflowEventTrigger",
2935
2945
  ...e
2936
- }), sa = oa, ca = (e) => typeof e == "object" && !!e && e._tag === "workflowEventTrigger", la = () => {
2946
+ }), da = ua, fa = (e) => typeof e == "object" && !!e && e._tag === "workflowEventTrigger", pa = () => {
2937
2947
  let e = globalThis.crypto;
2938
2948
  return typeof e?.randomUUID == "function" ? e.randomUUID() : `${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`;
2939
- }, ua = (e) => `${e}_${la()}`, da = (e) => e.id ?? `${e.event}->${e.workflow}`, fa = E("_voltro_workflow_events", {
2949
+ }, ma = (e) => `${e}_${pa()}`, ha = (e) => e.id ?? `${e.event}->${e.workflow}`, ga = T("_voltro_workflow_events", {
2940
2950
  id: v({ prefix: "wfe" }),
2941
- name: D(),
2951
+ name: E(),
2942
2952
  payload: C(),
2943
- source: D(),
2953
+ source: E(),
2944
2954
  subject: C().nullable(),
2945
- traceId: D().nullable(),
2946
- occurredAt: O().default("now")
2947
- }).index(["name"]).index(["source"]).index(["occurredAt"]).reactive(), pa = E("_voltro_workflow_event_deliveries", {
2955
+ traceId: E().nullable(),
2956
+ occurredAt: D().default("now")
2957
+ }).index(["name"]).index(["source"]).index(["occurredAt"]).reactive(), _a = T("_voltro_workflow_event_deliveries", {
2948
2958
  id: v({ prefix: "wfed" }),
2949
- eventId: D(),
2950
- eventName: D(),
2951
- triggerId: D(),
2952
- workflowName: D(),
2953
- executionId: D().nullable(),
2954
- status: D().oneOf([
2959
+ eventId: E(),
2960
+ eventName: E(),
2961
+ triggerId: E(),
2962
+ workflowName: E(),
2963
+ executionId: E().nullable(),
2964
+ status: E().oneOf([
2955
2965
  "starting",
2956
2966
  "started",
2957
2967
  "skipped",
2958
2968
  "failed"
2959
2969
  ]).default("starting"),
2960
- idempotencyKey: D().unique(),
2970
+ idempotencyKey: E().unique(),
2961
2971
  skipped: r().default(!1),
2962
- errorMessage: D().nullable(),
2963
- createdAt: O().default("now"),
2964
- completedAt: O().nullable()
2965
- }).index(["eventId"]).index(["eventName"]).index(["triggerId"]).index(["workflowName"]).index(["status"]).reactive(), ma = (e) => {
2966
- let t = e.makeId ?? ua, n = /* @__PURE__ */ new Map();
2972
+ errorMessage: E().nullable(),
2973
+ createdAt: D().default("now"),
2974
+ completedAt: D().nullable()
2975
+ }).index(["eventId"]).index(["eventName"]).index(["triggerId"]).index(["workflowName"]).index(["status"]).reactive(), va = (e) => {
2976
+ let t = e.makeId ?? ma, n = /* @__PURE__ */ new Map();
2967
2977
  for (let t of e.triggers) {
2968
2978
  let e = n.get(t.event);
2969
2979
  e ? e.push(t) : n.set(t.event, [t]);
@@ -3004,7 +3014,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3004
3014
  });
3005
3015
  let p = o(n), m = [];
3006
3016
  for (let o of p) {
3007
- let s = da(o), l = o.workflow, d;
3017
+ let s = ha(o), l = o.workflow, d;
3008
3018
  try {
3009
3019
  let p = o.idempotencyKey?.(f) ?? `${c}:${s}`;
3010
3020
  if (o.filter && !await o.filter(f)) {
@@ -3107,56 +3117,56 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3107
3117
  triggered: m
3108
3118
  };
3109
3119
  } };
3110
- }, ha = A({ scope: "voltro:outbox" }), Y = "_voltro_outbox", ga = {
3120
+ }, ya = k({ scope: "voltro:outbox" }), Y = "_voltro_outbox", ba = {
3111
3121
  kind: "typeid",
3112
3122
  prefix: "obx"
3113
- }, _a = E(Y, {
3123
+ }, xa = T(Y, {
3114
3124
  id: v({ prefix: "obx" }),
3115
- effect: D(),
3125
+ effect: E(),
3116
3126
  payload: C(),
3117
- status: D(),
3127
+ status: E(),
3118
3128
  attempts: b(),
3119
3129
  maxAttempts: b(),
3120
- nextAttemptAt: O(),
3121
- idempotencyKey: D().nullable(),
3122
- lastError: D().nullable(),
3123
- subjectId: D().nullable(),
3124
- tenantId: D().nullable(),
3125
- traceId: D().nullable(),
3126
- createdAt: O(),
3127
- deliveredAt: O().nullable(),
3128
- resendRequestedBy: D().nullable(),
3129
- resendReason: D().nullable(),
3130
+ nextAttemptAt: D(),
3131
+ idempotencyKey: E().nullable(),
3132
+ lastError: E().nullable(),
3133
+ subjectId: E().nullable(),
3134
+ tenantId: E().nullable(),
3135
+ traceId: E().nullable(),
3136
+ createdAt: D(),
3137
+ deliveredAt: D().nullable(),
3138
+ resendRequestedBy: E().nullable(),
3139
+ resendReason: E().nullable(),
3130
3140
  resendCount: b()
3131
- }), va = "_voltro_outbox_attempts", ya = {
3141
+ }), Sa = "_voltro_outbox_attempts", Ca = {
3132
3142
  kind: "typeid",
3133
3143
  prefix: "obxa"
3134
- }, ba = E(va, {
3144
+ }, wa = T(Sa, {
3135
3145
  id: v({ prefix: "obxa" }),
3136
- outboxId: D(),
3137
- effect: D(),
3146
+ outboxId: E(),
3147
+ effect: E(),
3138
3148
  attempt: b(),
3139
- trigger: D().oneOf(["automatic", "manual"]),
3140
- triggeredBy: D().nullable(),
3141
- reason: D().nullable(),
3142
- outcome: D().oneOf([
3149
+ trigger: E().oneOf(["automatic", "manual"]),
3150
+ triggeredBy: E().nullable(),
3151
+ reason: E().nullable(),
3152
+ outcome: E().oneOf([
3143
3153
  "delivered",
3144
3154
  "failed",
3145
3155
  "dead"
3146
3156
  ]),
3147
- startedAt: O(),
3148
- finishedAt: O(),
3157
+ startedAt: D(),
3158
+ finishedAt: D(),
3149
3159
  durationMs: b(),
3150
- error: D().nullable(),
3160
+ error: E().nullable(),
3151
3161
  response: C().nullable(),
3152
- subjectId: D().nullable(),
3153
- tenantId: D().nullable(),
3154
- traceId: D().nullable()
3155
- }).index(["outboxId", "attempt"]).index(["startedAt"]).index(["outcome"]), xa = (e) => {
3162
+ subjectId: E().nullable(),
3163
+ tenantId: E().nullable(),
3164
+ traceId: E().nullable()
3165
+ }).index(["outboxId", "attempt"]).index(["startedAt"]).index(["outcome"]), Ta = (e) => {
3156
3166
  if (e.effect.trim() === "") throw Error("defineOutboxHandler: `effect` must be a non-empty name");
3157
3167
  if (e.maxAttempts !== void 0 && e.maxAttempts < 1) throw Error(`defineOutboxHandler("${e.effect}"): maxAttempts must be >= 1`);
3158
3168
  return e;
3159
- }, Sa = 8, Ca = (e) => ({
3169
+ }, Ea = 8, Da = (e) => ({
3160
3170
  enqueue: async (n, r, i) => {
3161
3171
  let a = (e.now ?? (() => /* @__PURE__ */ new Date()))(), o = i?.idempotencyKey;
3162
3172
  if (o !== void 0) {
@@ -3171,12 +3181,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3171
3181
  if (n !== void 0) return n.id;
3172
3182
  }
3173
3183
  let s = {
3174
- id: f(ga, Y),
3184
+ id: f(ba, Y),
3175
3185
  effect: n,
3176
3186
  payload: r,
3177
3187
  status: "pending",
3178
3188
  attempts: 0,
3179
- maxAttempts: i?.maxAttempts ?? Sa,
3189
+ maxAttempts: i?.maxAttempts ?? Ea,
3180
3190
  nextAttemptAt: new Date(a.getTime() + (i?.delayMs ?? 0)),
3181
3191
  idempotencyKey: o ?? null,
3182
3192
  lastError: null,
@@ -3223,7 +3233,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3223
3233
  });
3224
3234
  } else e.nudge?.();
3225
3235
  }
3226
- }), wa = (e) => Math.min(1e3 * 2 ** Math.max(0, e - 1), 5 * 6e4), Ta = 50, Ea = (e, t) => e.length <= t ? e : `${e.slice(0, t)}… [clipped]`, Da = (e) => {
3236
+ }), Oa = (e) => Math.min(1e3 * 2 ** Math.max(0, e - 1), 5 * 6e4), ka = 50, Aa = (e, t) => e.length <= t ? e : `${e.slice(0, t)}… [clipped]`, ja = (e) => {
3227
3237
  if (e == null) return null;
3228
3238
  let t = typeof e == "object" && !Array.isArray(e) ? e : { value: e }, n;
3229
3239
  try {
@@ -3233,13 +3243,13 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3233
3243
  }
3234
3244
  return n.length > 8192 ? {
3235
3245
  truncated: !0,
3236
- preview: Ea(n, 8192)
3246
+ preview: Aa(n, 8192)
3237
3247
  } : t;
3238
- }, Oa = async (e, t, n) => {
3248
+ }, Ma = async (e, t, n) => {
3239
3249
  let r = t.outboxRow, i = r.id, a = r.resendRequestedBy ?? null;
3240
3250
  try {
3241
- await e.insert(va, {
3242
- id: f(ya, va),
3251
+ await e.insert(Sa, {
3252
+ id: f(Ca, Sa),
3243
3253
  outboxId: i,
3244
3254
  effect: r.effect,
3245
3255
  attempt: t.attempt,
@@ -3250,14 +3260,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3250
3260
  startedAt: t.startedAt,
3251
3261
  finishedAt: t.finishedAt,
3252
3262
  durationMs: Math.max(0, t.finishedAt.getTime() - t.startedAt.getTime()),
3253
- error: t.error === null ? null : Ea(t.error, 4e3),
3254
- response: Da(t.response),
3263
+ error: t.error === null ? null : Aa(t.error, 4e3),
3264
+ response: ja(t.response),
3255
3265
  subjectId: r.subjectId ?? null,
3256
3266
  tenantId: r.tenantId ?? null,
3257
3267
  traceId: r.traceId ?? null
3258
3268
  });
3259
3269
  } catch (e) {
3260
- ha.warn("outbox: could not record delivery attempt (delivery itself is unaffected)", {
3270
+ ya.warn("outbox: could not record delivery attempt (delivery itself is unaffected)", {
3261
3271
  outboxId: i,
3262
3272
  attempt: t.attempt
3263
3273
  }, e);
@@ -3265,7 +3275,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3265
3275
  }
3266
3276
  if (!(t.attempt <= n)) try {
3267
3277
  let t = await e.query({
3268
- table: va,
3278
+ table: Sa,
3269
3279
  predicate: u("outboxId", i),
3270
3280
  order: [{
3271
3281
  column: "attempt",
@@ -3275,14 +3285,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3275
3285
  skip: void 0,
3276
3286
  projection: ["id"]
3277
3287
  });
3278
- for (let r of t.slice(0, Math.max(0, t.length - n))) await e.delete(va, r.id);
3288
+ for (let r of t.slice(0, Math.max(0, t.length - n))) await e.delete(Sa, r.id);
3279
3289
  } catch (e) {
3280
- ha.warn("outbox: attempt-log trim failed; the log may exceed its cap", { outboxId: i }, e);
3290
+ ya.warn("outbox: attempt-log trim failed; the log may exceed its cap", { outboxId: i }, e);
3281
3291
  }
3282
- }, ka = async (e) => {
3292
+ }, Na = async (e) => {
3283
3293
  let n = (e.now ?? (() => /* @__PURE__ */ new Date()))(), r = await e.store.query({
3284
3294
  table: Y,
3285
- predicate: t(u("status", "pending"), te("nextAttemptAt", n)),
3295
+ predicate: t(u("status", "pending"), ne("nextAttemptAt", n)),
3286
3296
  order: [{
3287
3297
  column: "nextAttemptAt",
3288
3298
  direction: "asc"
@@ -3297,7 +3307,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3297
3307
  s++;
3298
3308
  continue;
3299
3309
  }
3300
- let u = t.attempts + 1, d = t.maxAttempts ?? Sa, f = /* @__PURE__ */ new Date(), p = e.attemptLogCap ?? 50;
3310
+ let u = t.attempts + 1, d = t.maxAttempts ?? Ea, f = /* @__PURE__ */ new Date(), p = e.attemptLogCap ?? 50;
3301
3311
  try {
3302
3312
  let n = await l.handler({
3303
3313
  payload: t.payload ?? {},
@@ -3306,7 +3316,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3306
3316
  tenantId: t.tenantId ?? null,
3307
3317
  traceId: t.traceId ?? null
3308
3318
  });
3309
- await Oa(e.store, {
3319
+ await Ma(e.store, {
3310
3320
  outboxRow: t,
3311
3321
  attempt: u,
3312
3322
  outcome: "delivered",
@@ -3324,7 +3334,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3324
3334
  }), i++;
3325
3335
  } catch (i) {
3326
3336
  let s = i instanceof Error ? i.message : String(i), l = u >= d;
3327
- await Oa(e.store, {
3337
+ await Ma(e.store, {
3328
3338
  outboxRow: t,
3329
3339
  attempt: u,
3330
3340
  outcome: l ? "dead" : "failed",
@@ -3336,20 +3346,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3336
3346
  status: l ? "dead" : "pending",
3337
3347
  attempts: u,
3338
3348
  lastError: s,
3339
- nextAttemptAt: new Date(n.getTime() + wa(u)),
3349
+ nextAttemptAt: new Date(n.getTime() + Oa(u)),
3340
3350
  resendRequestedBy: null,
3341
3351
  resendReason: null
3342
- }), l ? (o++, ha.error("outbox effect dead-lettered after exhausting attempts", {
3352
+ }), l ? (o++, ya.error("outbox effect dead-lettered after exhausting attempts", {
3343
3353
  id: r,
3344
3354
  effect: c,
3345
3355
  attempts: u,
3346
3356
  maxAttempts: d
3347
- }, i)) : (a++, ha.warn("outbox delivery failed; will retry", {
3357
+ }, i)) : (a++, ya.warn("outbox delivery failed; will retry", {
3348
3358
  id: r,
3349
3359
  effect: c,
3350
3360
  attempt: u,
3351
3361
  maxAttempts: d,
3352
- retryInMs: wa(u)
3362
+ retryInMs: Oa(u)
3353
3363
  }));
3354
3364
  }
3355
3365
  }
@@ -3359,47 +3369,47 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3359
3369
  dead: o,
3360
3370
  skipped: s
3361
3371
  };
3362
- }, Aa = A({ scope: "voltro:connections" }), X = "_voltro_connections", ja = {
3372
+ }, Pa = k({ scope: "voltro:connections" }), X = "_voltro_connections", Fa = {
3363
3373
  kind: "typeid",
3364
3374
  prefix: "conn"
3365
- }, Ma = E(X, {
3375
+ }, Ia = T(X, {
3366
3376
  id: v({ prefix: "conn" }),
3367
- connectionId: D(),
3368
- subjectId: D(),
3369
- tenantId: D().nullable(),
3370
- kind: D().oneOf(["oauth2", "pat"]),
3371
- status: D().oneOf([
3377
+ connectionId: E(),
3378
+ subjectId: E(),
3379
+ tenantId: E().nullable(),
3380
+ kind: E().oneOf(["oauth2", "pat"]),
3381
+ status: E().oneOf([
3372
3382
  "connected",
3373
3383
  "expired",
3374
3384
  "revoked",
3375
3385
  "error"
3376
3386
  ]),
3377
- accessToken: D(),
3378
- refreshToken: D().nullable(),
3379
- expiresAt: O().nullable(),
3380
- scopes: D().nullable(),
3381
- accountId: D().nullable(),
3382
- accountLabel: D().nullable(),
3383
- lastError: D().nullable(),
3384
- refreshLockedUntil: O(),
3387
+ accessToken: E(),
3388
+ refreshToken: E().nullable(),
3389
+ expiresAt: D().nullable(),
3390
+ scopes: E().nullable(),
3391
+ accountId: E().nullable(),
3392
+ accountLabel: E().nullable(),
3393
+ lastError: E().nullable(),
3394
+ refreshLockedUntil: D(),
3385
3395
  metadata: C().nullable(),
3386
- connectedAt: O(),
3387
- updatedAt: O()
3388
- }).unique("bySubject", ["connectionId", "subjectId"]).index(["subjectId"]).reactive(), Na = "_voltro_connection_grants", Pa = {
3396
+ connectedAt: D(),
3397
+ updatedAt: D()
3398
+ }).unique("bySubject", ["connectionId", "subjectId"]).index(["subjectId"]).reactive(), La = "_voltro_connection_grants", Ra = {
3389
3399
  kind: "typeid",
3390
3400
  prefix: "cgrant"
3391
- }, Fa = E(Na, {
3401
+ }, za = T(La, {
3392
3402
  id: v({ prefix: "cgrant" }),
3393
- state: D().unique(),
3394
- connectionId: D(),
3395
- subjectId: D(),
3396
- tenantId: D().nullable(),
3397
- codeVerifier: D().nullable(),
3398
- redirectTo: D(),
3399
- createdAt: O(),
3400
- expiresAt: O()
3401
- }).index(["expiresAt"]), Ia = /^[a-z][a-z0-9-]*$/, La = (e) => {
3402
- if (!Ia.test(e.id)) throw Error(`defineConnection: id "${e.id}" must be lowercase kebab-case (it becomes a URL path segment).`);
3403
+ state: E().unique(),
3404
+ connectionId: E(),
3405
+ subjectId: E(),
3406
+ tenantId: E().nullable(),
3407
+ codeVerifier: E().nullable(),
3408
+ redirectTo: E(),
3409
+ createdAt: D(),
3410
+ expiresAt: D()
3411
+ }).index(["expiresAt"]), Ba = /^[a-z][a-z0-9-]*$/, Va = (e) => {
3412
+ if (!Ba.test(e.id)) throw Error(`defineConnection: id "${e.id}" must be lowercase kebab-case (it becomes a URL path segment).`);
3403
3413
  if (e.kind === "oauth2") {
3404
3414
  for (let t of [
3405
3415
  "authorizeUrl",
@@ -3409,9 +3419,9 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3409
3419
  ]) if (typeof e[t] != "string" || e[t].length === 0) throw Error(`defineConnection("${e.id}"): \`${t}\` is required for kind 'oauth2'.`);
3410
3420
  }
3411
3421
  return e;
3412
- }, Ra = (e) => e.label ?? e.id, za = (e) => {
3413
- if (e.length !== 0 && pi() === void 0) throw Error(`connections: ${e.length} connection(s) declared (${e.map((e) => e.id).join(", ")}) but no field cipher is registered. Connection tokens are stored encrypted and there is no plaintext fallback. Enable \`@voltro/plugin-governance\` with \`governancePlugin({ fieldEncryption: { key: env.FIELD_ENCRYPTION_KEY } })\` (or call setFieldCipher at boot).`);
3414
- }, Ba = (e) => {
3422
+ }, Ha = (e) => e.label ?? e.id, Ua = (e) => {
3423
+ if (e.length !== 0 && gi() === void 0) throw Error(`connections: ${e.length} connection(s) declared (${e.map((e) => e.id).join(", ")}) but no field cipher is registered. Connection tokens are stored encrypted and there is no plaintext fallback. Enable \`@voltro/plugin-governance\` with \`governancePlugin({ fieldEncryption: { key: env.FIELD_ENCRYPTION_KEY } })\` (or call setFieldCipher at boot).`);
3424
+ }, Wa = (e) => {
3415
3425
  let t = /* @__PURE__ */ new Map();
3416
3426
  for (let n of e) {
3417
3427
  if (t.has(n.id)) throw Error(`connections: duplicate connection id "${n.id}" — each *.connection.ts must declare a distinct id.`);
@@ -3421,14 +3431,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3421
3431
  get: (e) => t.get(e),
3422
3432
  list: () => [...t.values()]
3423
3433
  };
3424
- }, Va = (e) => {
3434
+ }, Ga = (e) => {
3425
3435
  if (e == null) return null;
3426
3436
  let t = e instanceof Date ? e : new Date(String(e));
3427
3437
  return Number.isNaN(t.getTime()) ? null : t;
3428
- }, Ha = (e) => Va(e)?.toISOString() ?? null, Ua = (e) => String(e ?? "").split(" ").filter((e) => e.length > 0), Wa = (e, t) => t === void 0 ? {
3438
+ }, Ka = (e) => Ga(e)?.toISOString() ?? null, qa = (e) => String(e ?? "").split(" ").filter((e) => e.length > 0), Ja = (e, t) => t === void 0 ? {
3429
3439
  connectionId: e.id,
3430
3440
  kind: e.kind,
3431
- label: Ra(e),
3441
+ label: Ha(e),
3432
3442
  status: "disconnected",
3433
3443
  accountId: null,
3434
3444
  accountLabel: null,
@@ -3439,24 +3449,24 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3439
3449
  } : {
3440
3450
  connectionId: e.id,
3441
3451
  kind: e.kind,
3442
- label: Ra(e),
3452
+ label: Ha(e),
3443
3453
  status: String(t.status ?? "connected"),
3444
3454
  accountId: t.accountId ?? null,
3445
3455
  accountLabel: t.accountLabel ?? null,
3446
- scopes: Ua(t.scopes),
3447
- expiresAt: Ha(t.expiresAt),
3456
+ scopes: qa(t.scopes),
3457
+ expiresAt: Ka(t.expiresAt),
3448
3458
  lastError: t.lastError ?? null,
3449
- connectedAt: Ha(t.connectedAt)
3450
- }, Ga = async (e, n, r) => (await e.query({
3459
+ connectedAt: Ka(t.connectedAt)
3460
+ }, Ya = async (e, n, r) => (await e.query({
3451
3461
  table: X,
3452
3462
  predicate: t(u("connectionId", n), u("subjectId", r)),
3453
3463
  order: [],
3454
3464
  take: 1,
3455
3465
  skip: void 0,
3456
3466
  projection: void 0
3457
- }))[0], Ka = async (e) => {
3467
+ }))[0], Xa = async (e) => {
3458
3468
  let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), n = e.tokens.expiresAt === void 0 ? null : new Date(e.tokens.expiresAt), r = {
3459
- id: f(ja, X),
3469
+ id: f(Fa, X),
3460
3470
  connectionId: e.definition.id,
3461
3471
  subjectId: e.subjectId,
3462
3472
  tenantId: e.tenantId,
@@ -3474,8 +3484,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3474
3484
  connectedAt: t,
3475
3485
  updatedAt: t
3476
3486
  };
3477
- return qa(e.store, r);
3478
- }, qa = (e, t) => e.upsert(X, t, {
3487
+ return Za(e.store, r);
3488
+ }, Za = (e, t) => e.upsert(X, t, {
3479
3489
  conflictColumns: ["connectionId", "subjectId"],
3480
3490
  update: [
3481
3491
  "kind",
@@ -3491,10 +3501,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3491
3501
  "metadata",
3492
3502
  "updatedAt"
3493
3503
  ]
3494
- }), Ja = async (e, t, n) => {
3495
- let r = await Ga(e, t, n);
3504
+ }), Qa = async (e, t, n) => {
3505
+ let r = await Ya(e, t, n);
3496
3506
  return r !== void 0 && e.delete(X, r.id);
3497
- }, Ya = async (e, t, n) => {
3507
+ }, $a = async (e, t, n) => {
3498
3508
  let r = await e.query({
3499
3509
  table: X,
3500
3510
  predicate: u("subjectId", n),
@@ -3503,9 +3513,9 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3503
3513
  skip: void 0,
3504
3514
  projection: void 0
3505
3515
  }), i = new Map(r.map((e) => [String(e.connectionId), e]));
3506
- return t.list().map((e) => Wa(e, i.get(e.id)));
3507
- }, Xa = (e, t) => globalThis.fetch(e, t), Za = async (e, t, n) => {
3508
- let r = e.fetchImpl ?? Xa, i, a;
3516
+ return t.list().map((e) => Ja(e, i.get(e.id)));
3517
+ }, eo = (e, t) => globalThis.fetch(e, t), to = async (e, t, n) => {
3518
+ let r = e.fetchImpl ?? eo, i, a;
3509
3519
  try {
3510
3520
  let n = await r(e.tokenUrl, {
3511
3521
  method: "POST",
@@ -3517,7 +3527,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3517
3527
  });
3518
3528
  i = n.status, a = await n.text();
3519
3529
  } catch (t) {
3520
- throw new k({
3530
+ throw new O({
3521
3531
  connectionId: e.id,
3522
3532
  reason: `token endpoint unreachable: ${String(t)}`,
3523
3533
  transient: !0
@@ -3529,12 +3539,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3529
3539
  } catch {
3530
3540
  o = {};
3531
3541
  }
3532
- if (i < 200 || i >= 300) throw new k({
3542
+ if (i < 200 || i >= 300) throw new O({
3533
3543
  connectionId: e.id,
3534
3544
  reason: `token endpoint ${i}: ${o.error ?? ""} ${o.error_description ?? a.slice(0, 200)}`.trim(),
3535
3545
  transient: i >= 500
3536
3546
  });
3537
- if (typeof o.access_token != "string" || o.access_token.length === 0) throw new k({
3547
+ if (typeof o.access_token != "string" || o.access_token.length === 0) throw new O({
3538
3548
  connectionId: e.id,
3539
3549
  reason: "token response carried no access_token",
3540
3550
  transient: !1
@@ -3545,64 +3555,64 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3545
3555
  ...Number.isFinite(o.expires_in) ? { expiresAt: n() + o.expires_in * 1e3 } : {},
3546
3556
  scopes: (o.scope ?? e.scopes?.join(" ") ?? "").split(" ").filter(Boolean)
3547
3557
  };
3548
- }, Qa = (e, t, n = Date.now) => Za(e, {
3558
+ }, no = (e, t, n = Date.now) => to(e, {
3549
3559
  grant_type: "authorization_code",
3550
3560
  client_id: e.clientId,
3551
3561
  client_secret: e.clientSecret,
3552
3562
  code: t.code,
3553
3563
  redirect_uri: t.redirectUri,
3554
3564
  ...t.codeVerifier ? { code_verifier: t.codeVerifier } : {}
3555
- }, n), $a = (e, t, n = Date.now) => Za(e, {
3565
+ }, n), ro = (e, t, n = Date.now) => to(e, {
3556
3566
  grant_type: "refresh_token",
3557
3567
  client_id: e.clientId,
3558
3568
  client_secret: e.clientSecret,
3559
3569
  refresh_token: t
3560
- }, n), eo = 6e4, to = 3e4, no = class extends Error {
3570
+ }, n), io = 6e4, ao = 3e4, oo = class extends Error {
3561
3571
  connectionId;
3562
3572
  subjectId;
3563
3573
  _tag = "ConnectionNotConnected";
3564
3574
  constructor(e, t) {
3565
3575
  super(`connection "${e}" is not connected for this subject`), this.connectionId = e, this.subjectId = t, this.name = "ConnectionNotConnected";
3566
3576
  }
3567
- }, ro = (e) => new Promise((t) => {
3577
+ }, so = (e) => new Promise((t) => {
3568
3578
  setTimeout(t, e);
3569
- }), io = /* @__PURE__ */ new Map(), ao = (e, t) => `${e}${t}`, oo = () => {
3570
- io.clear();
3571
- }, so = (e, t) => ({
3579
+ }), co = /* @__PURE__ */ new Map(), lo = (e, t) => `${e}${t}`, uo = () => {
3580
+ co.clear();
3581
+ }, fo = (e, t) => ({
3572
3582
  connectionId: e.id,
3573
3583
  kind: e.kind,
3574
- accessToken: hi(String(t.accessToken)),
3575
- expiresAt: Va(t.expiresAt),
3576
- scopes: Ua(t.scopes),
3584
+ accessToken: vi(String(t.accessToken)),
3585
+ expiresAt: Ga(t.expiresAt),
3586
+ scopes: qa(t.scopes),
3577
3587
  accountId: t.accountId ?? null,
3578
3588
  accountLabel: t.accountLabel ?? null
3579
- }), co = (e, t, n) => {
3580
- let r = Va(e.expiresAt);
3589
+ }), po = (e, t, n) => {
3590
+ let r = Ga(e.expiresAt);
3581
3591
  return r !== null && r.getTime() - n < t;
3582
- }, lo = async (e) => {
3583
- let t = e.now ?? Date.now, { store: n, definition: r, subjectId: i } = e, a = await Ga(n, r.id, i);
3584
- if (a === void 0) throw new no(r.id, i);
3585
- if (r.kind === "pat" || !co(a, r.refreshSkewMs ?? 6e4, t())) return so(r, a);
3586
- let o = ao(r.id, i), s = io.get(o);
3592
+ }, mo = async (e) => {
3593
+ let t = e.now ?? Date.now, { store: n, definition: r, subjectId: i } = e, a = await Ya(n, r.id, i);
3594
+ if (a === void 0) throw new oo(r.id, i);
3595
+ if (r.kind === "pat" || !po(a, r.refreshSkewMs ?? 6e4, t())) return fo(r, a);
3596
+ let o = lo(r.id, i), s = co.get(o);
3587
3597
  if (s !== void 0) return s;
3588
- let c = uo({
3598
+ let c = ho({
3589
3599
  ...e,
3590
3600
  now: t,
3591
3601
  row: a
3592
3602
  }).finally(() => {
3593
- io.delete(o);
3603
+ co.delete(o);
3594
3604
  });
3595
- return io.set(o, c), c;
3596
- }, uo = async (e) => {
3597
- let { store: n, subjectId: r, now: i } = e, a = e.definition, o = e.sleep ?? ro, s = a.refreshSkewMs ?? 6e4, c = e.row.id;
3598
- if (await n.updateMany("_voltro_connections", { refreshLockedUntil: new Date(i() + 3e4) }, { where: t(u("id", c), te("refreshLockedUntil", new Date(i()))) }) === 0) {
3605
+ return co.set(o, c), c;
3606
+ }, ho = async (e) => {
3607
+ let { store: n, subjectId: r, now: i } = e, a = e.definition, o = e.sleep ?? so, s = a.refreshSkewMs ?? 6e4, c = e.row.id;
3608
+ if (await n.updateMany("_voltro_connections", { refreshLockedUntil: new Date(i() + 3e4) }, { where: t(u("id", c), ne("refreshLockedUntil", new Date(i()))) }) === 0) {
3599
3609
  for (let e = 0; e < 10; e++) {
3600
3610
  await o(200);
3601
- let e = await Ga(n, a.id, r);
3602
- if (e === void 0) throw new no(a.id, r);
3603
- if (!co(e, s, i())) return so(a, e);
3611
+ let e = await Ya(n, a.id, r);
3612
+ if (e === void 0) throw new oo(a.id, r);
3613
+ if (!po(e, s, i())) return fo(a, e);
3604
3614
  }
3605
- throw new k({
3615
+ throw new O({
3606
3616
  connectionId: a.id,
3607
3617
  reason: "another replica held the refresh lease and did not publish a fresh token in time",
3608
3618
  transient: !0
@@ -3614,16 +3624,16 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3614
3624
  lastError: "access token expired and no refresh token is on file — reconnect required",
3615
3625
  refreshLockedUntil: /* @__PURE__ */ new Date(0),
3616
3626
  updatedAt: new Date(i())
3617
- }), new k({
3627
+ }), new O({
3618
3628
  connectionId: a.id,
3619
3629
  reason: "access token expired and no refresh token is on file — reconnect required",
3620
3630
  transient: !1
3621
3631
  });
3622
3632
  let d;
3623
3633
  try {
3624
- d = await $a(a, hi(String(l)), i);
3634
+ d = await ro(a, vi(String(l)), i);
3625
3635
  } catch (e) {
3626
- let t = e instanceof k ? e : new k({
3636
+ let t = e instanceof O ? e : new O({
3627
3637
  connectionId: a.id,
3628
3638
  reason: String(e),
3629
3639
  transient: !0
@@ -3638,7 +3648,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3638
3648
  refreshToken: null,
3639
3649
  expiresAt: null
3640
3650
  }
3641
- }), Aa.warn("connection refresh failed", {
3651
+ }), Pa.warn("connection refresh failed", {
3642
3652
  connectionId: a.id,
3643
3653
  transient: t.transient,
3644
3654
  reason: t.reason
@@ -3654,32 +3664,32 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3654
3664
  refreshLockedUntil: /* @__PURE__ */ new Date(0),
3655
3665
  updatedAt: new Date(i())
3656
3666
  };
3657
- return so(a, await n.update(X, c, f) ?? {
3667
+ return fo(a, await n.update(X, c, f) ?? {
3658
3668
  ...e.row,
3659
3669
  ...f
3660
3670
  });
3661
- }, fo = (e = 32) => {
3671
+ }, go = (e = 32) => {
3662
3672
  let t = new Uint8Array(e);
3663
3673
  return globalThis.crypto.getRandomValues(t), Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
3664
- }, po = (e) => {
3674
+ }, _o = (e) => {
3665
3675
  let t = "";
3666
3676
  for (let n of e) t += String.fromCharCode(n);
3667
3677
  return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
3668
- }, mo = async (e) => {
3678
+ }, vo = async (e) => {
3669
3679
  let t = await globalThis.crypto.subtle.digest("SHA-256", new TextEncoder().encode(e));
3670
- return po(new Uint8Array(t));
3671
- }, ho = 10 * 6e4, go = (e) => `/_voltro/connections/${e}/callback`, _o = (e) => e === void 0 || e.length === 0 || !e.startsWith("/") || e.startsWith("//") || e.startsWith("/\\") ? "/" : e, vo = (e, t) => e.redirectUri ?? `${t.replace(/\/+$/, "")}${go(e.id)}`, yo = async (e) => {
3672
- let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), { definition: n } = e, r = fo(), i = n.pkce === !1 ? null : fo(48), a = vo(n, e.publicUrl);
3673
- await e.store.insert(Na, {
3674
- id: f(Pa, Na),
3680
+ return _o(new Uint8Array(t));
3681
+ }, yo = 10 * 6e4, bo = (e) => `/_voltro/connections/${e}/callback`, xo = (e) => e === void 0 || e.length === 0 || !e.startsWith("/") || e.startsWith("//") || e.startsWith("/\\") ? "/" : e, So = (e, t) => e.redirectUri ?? `${t.replace(/\/+$/, "")}${bo(e.id)}`, Co = async (e) => {
3682
+ let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), { definition: n } = e, r = go(), i = n.pkce === !1 ? null : go(48), a = So(n, e.publicUrl);
3683
+ await e.store.insert(La, {
3684
+ id: f(Ra, La),
3675
3685
  state: r,
3676
3686
  connectionId: n.id,
3677
3687
  subjectId: e.subjectId,
3678
3688
  tenantId: e.tenantId,
3679
3689
  codeVerifier: i === null ? null : q(i),
3680
- redirectTo: _o(e.redirectTo),
3690
+ redirectTo: xo(e.redirectTo),
3681
3691
  createdAt: t,
3682
- expiresAt: new Date(t.getTime() + ho)
3692
+ expiresAt: new Date(t.getTime() + yo)
3683
3693
  });
3684
3694
  let o = new URLSearchParams({
3685
3695
  response_type: "code",
@@ -3689,50 +3699,50 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3689
3699
  ...n.scopes && n.scopes.length > 0 ? { scope: n.scopes.join(" ") } : {},
3690
3700
  ...n.authorizeParams ?? {}
3691
3701
  });
3692
- i !== null && (o.set("code_challenge", await mo(i)), o.set("code_challenge_method", "S256"));
3702
+ i !== null && (o.set("code_challenge", await vo(i)), o.set("code_challenge_method", "S256"));
3693
3703
  let s = n.authorizeUrl.includes("?") ? "&" : "?";
3694
3704
  return {
3695
3705
  authorizeUrl: `${n.authorizeUrl}${s}${o.toString()}`,
3696
3706
  state: r
3697
3707
  };
3698
- }, bo = async (e) => {
3708
+ }, wo = async (e) => {
3699
3709
  let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), n = (await e.store.query({
3700
- table: Na,
3710
+ table: La,
3701
3711
  predicate: u("state", e.state),
3702
3712
  order: [],
3703
3713
  take: 1,
3704
3714
  skip: void 0,
3705
3715
  projection: void 0
3706
3716
  }))[0];
3707
- if (n === void 0) throw new k({
3717
+ if (n === void 0) throw new O({
3708
3718
  connectionId: "unknown",
3709
3719
  reason: "unknown or already-used handshake state",
3710
3720
  transient: !1
3711
3721
  });
3712
- await e.store.delete(Na, n.id);
3713
- let r = String(n.connectionId), i = Va(n.expiresAt);
3714
- if (i !== null && i.getTime() < t.getTime()) throw new k({
3722
+ await e.store.delete(La, n.id);
3723
+ let r = String(n.connectionId), i = Ga(n.expiresAt);
3724
+ if (i !== null && i.getTime() < t.getTime()) throw new O({
3715
3725
  connectionId: r,
3716
3726
  reason: "handshake expired — start again",
3717
3727
  transient: !1
3718
3728
  });
3719
3729
  let a = e.registry.get(r);
3720
- if (a === void 0 || a.kind !== "oauth2") throw new k({
3730
+ if (a === void 0 || a.kind !== "oauth2") throw new O({
3721
3731
  connectionId: r,
3722
3732
  reason: "no oauth2 connection is declared under that id",
3723
3733
  transient: !1
3724
3734
  });
3725
- let o = n.codeVerifier === null || n.codeVerifier === void 0 ? null : hi(String(n.codeVerifier)), s = await Qa(a, {
3735
+ let o = n.codeVerifier === null || n.codeVerifier === void 0 ? null : vi(String(n.codeVerifier)), s = await no(a, {
3726
3736
  code: e.code,
3727
- redirectUri: vo(a, e.publicUrl),
3737
+ redirectUri: So(a, e.publicUrl),
3728
3738
  codeVerifier: o
3729
3739
  }, () => t.getTime()), c = a.identify === void 0 ? void 0 : await a.identify(s).catch((e) => {
3730
- Aa.warn("connection identify failed; storing without account details", {
3740
+ Pa.warn("connection identify failed; storing without account details", {
3731
3741
  connectionId: r,
3732
3742
  reason: String(e)
3733
3743
  });
3734
3744
  });
3735
- return await Ka({
3745
+ return await Xa({
3736
3746
  store: e.store,
3737
3747
  definition: a,
3738
3748
  subjectId: String(n.subjectId),
@@ -3742,12 +3752,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3742
3752
  now: () => t
3743
3753
  }), {
3744
3754
  connectionId: r,
3745
- redirectTo: _o(String(n.redirectTo ?? "/"))
3755
+ redirectTo: xo(String(n.redirectTo ?? "/"))
3746
3756
  };
3747
- }, xo = async (e, t = /* @__PURE__ */ new Date()) => {
3757
+ }, To = async (e, t = /* @__PURE__ */ new Date()) => {
3748
3758
  let n = await e.query({
3749
- table: Na,
3750
- predicate: te("expiresAt", t),
3759
+ table: La,
3760
+ predicate: ne("expiresAt", t),
3751
3761
  order: [],
3752
3762
  take: void 0,
3753
3763
  skip: void 0,
@@ -3755,27 +3765,27 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3755
3765
  }), r = 0;
3756
3766
  for (let t of n) await e.delete("_voltro_connection_grants", t.id) && r++;
3757
3767
  return r;
3758
- }, So, Co = (e) => {
3759
- So = e;
3760
- }, wo = () => So, To = (e, t) => {
3761
- let n = So;
3768
+ }, Eo, Do = (e) => {
3769
+ Eo = e;
3770
+ }, Oo = () => Eo, ko = (e, t) => {
3771
+ let n = Eo;
3762
3772
  return n === void 0 ? Promise.reject(/* @__PURE__ */ Error(`resolveConnectionForSubject("${t}"): no connection vault is registered — the app declares no \`*.connection.ts\`, or this call ran before boot completed.`)) : n(e, t);
3763
- }, Eo = (e) => async (t, n) => {
3773
+ }, Ao = (e) => async (t, n) => {
3764
3774
  let r = e.registry.get(n);
3765
3775
  if (r === void 0) throw Error(`connection "${n}" is not declared. Declared: ${e.registry.list().map((e) => e.id).join(", ") || "(none)"}.`);
3766
3776
  let i = t.id ?? null;
3767
- if (i === null || i === "") throw new no(n, "<anonymous>");
3768
- return lo({
3777
+ if (i === null || i === "") throw new oo(n, "<anonymous>");
3778
+ return mo({
3769
3779
  store: e.store,
3770
3780
  definition: r,
3771
3781
  subjectId: i
3772
3782
  });
3773
- }, Do = (e) => {
3783
+ }, jo = (e) => {
3774
3784
  let t = e.subject.id ?? null, n = async (n) => {
3775
3785
  let r = e.registry.get(n);
3776
3786
  if (r === void 0) throw Error(`ctx.connections.get("${n}"): no such connection is declared. Declared: ${e.registry.list().map((e) => e.id).join(", ") || "(none)"}.`);
3777
- if (t === null || t === "") throw new no(n, "<anonymous>");
3778
- return lo({
3787
+ if (t === null || t === "") throw new oo(n, "<anonymous>");
3788
+ return mo({
3779
3789
  store: e.store,
3780
3790
  definition: r,
3781
3791
  subjectId: t
@@ -3787,7 +3797,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3787
3797
  try {
3788
3798
  return await n(e);
3789
3799
  } catch (e) {
3790
- if (e instanceof no) return null;
3800
+ if (e instanceof oo) return null;
3791
3801
  throw e;
3792
3802
  }
3793
3803
  },
@@ -3802,17 +3812,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3802
3812
  expiresAt: null,
3803
3813
  lastError: null,
3804
3814
  connectedAt: null
3805
- })) : Ya(e.store, e.registry, t)
3815
+ })) : $a(e.store, e.registry, t)
3806
3816
  };
3807
- }, Oo = (e, t) => {
3817
+ }, Mo = (e, t) => {
3808
3818
  let n = e.request?.subject?.id ?? null;
3809
- if (n === null || n === "") throw new xe({ connectionId: t });
3819
+ if (n === null || n === "") throw new we({ connectionId: t });
3810
3820
  return n;
3811
- }, ko = (e, t) => {
3821
+ }, No = (e, t) => {
3812
3822
  let n = e.registry.get(t);
3813
- if (n === void 0) throw new be({ connectionId: t });
3823
+ if (n === void 0) throw new Ce({ connectionId: t });
3814
3824
  return n;
3815
- }, Ao = (e) => async (t, n) => {
3825
+ }, Po = (e) => async (t, n) => {
3816
3826
  let r = n.request?.subject?.id ?? null;
3817
3827
  return r === null || r === "" ? e.registry.list().map((e) => ({
3818
3828
  connectionId: e.id,
@@ -3825,15 +3835,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3825
3835
  expiresAt: null,
3826
3836
  lastError: null,
3827
3837
  connectedAt: null
3828
- })) : Ya(n.store, e.registry, r);
3829
- }, jo = (e) => async (t, n) => {
3830
- let r = ko(e, t.connectionId), i = Oo(n, t.connectionId);
3831
- if (r.kind !== "oauth2") throw new ye({
3838
+ })) : $a(n.store, e.registry, r);
3839
+ }, Fo = (e) => async (t, n) => {
3840
+ let r = No(e, t.connectionId), i = Mo(n, t.connectionId);
3841
+ if (r.kind !== "oauth2") throw new Se({
3832
3842
  connectionId: t.connectionId,
3833
3843
  expected: "oauth2",
3834
3844
  actual: r.kind
3835
3845
  });
3836
- return yo({
3846
+ return Co({
3837
3847
  store: n.store,
3838
3848
  definition: r,
3839
3849
  subjectId: i,
@@ -3841,15 +3851,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3841
3851
  publicUrl: e.publicUrl,
3842
3852
  ...t.redirectTo === void 0 ? {} : { redirectTo: t.redirectTo }
3843
3853
  });
3844
- }, Mo = (e) => async (t, n) => {
3845
- let r = ko(e, t.connectionId), i = Oo(n, t.connectionId);
3846
- if (r.kind !== "pat") throw new ye({
3854
+ }, Io = (e) => async (t, n) => {
3855
+ let r = No(e, t.connectionId), i = Mo(n, t.connectionId);
3856
+ if (r.kind !== "pat") throw new Se({
3847
3857
  connectionId: t.connectionId,
3848
3858
  expected: "pat",
3849
3859
  actual: r.kind
3850
3860
  });
3851
3861
  let a = t.token.trim();
3852
- if (a.length === 0) throw new k({
3862
+ if (a.length === 0) throw new O({
3853
3863
  connectionId: t.connectionId,
3854
3864
  reason: "token is empty",
3855
3865
  transient: !1
@@ -3858,13 +3868,13 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3858
3868
  if (r.validate !== void 0) try {
3859
3869
  o = await r.validate(a);
3860
3870
  } catch (e) {
3861
- throw new k({
3871
+ throw new O({
3862
3872
  connectionId: t.connectionId,
3863
3873
  reason: `the provider rejected that token: ${e instanceof Error ? e.message : String(e)}`,
3864
3874
  transient: !1
3865
3875
  });
3866
3876
  }
3867
- return await Ka({
3877
+ return await Xa({
3868
3878
  store: n.store,
3869
3879
  definition: r,
3870
3880
  subjectId: i,
@@ -3875,20 +3885,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3875
3885
  },
3876
3886
  ...o === void 0 ? {} : { account: o }
3877
3887
  }), { ok: !0 };
3878
- }, No = (e) => async (t, n) => {
3879
- ko(e, t.connectionId);
3880
- let r = Oo(n, t.connectionId);
3881
- return { ok: await Ja(n.store, t.connectionId, r) };
3882
- }, Po = "admin:full", Fo = class extends L.TaggedError()("AccessDenied", {
3888
+ }, Lo = (e) => async (t, n) => {
3889
+ No(e, t.connectionId);
3890
+ let r = Mo(n, t.connectionId);
3891
+ return { ok: await Qa(n.store, t.connectionId, r) };
3892
+ }, Ro = "admin:full", zo = class extends L.TaggedError()("AccessDenied", {
3883
3893
  action: L.String,
3884
3894
  resourceType: L.String,
3885
3895
  resourceId: L.String
3886
- }) {}, Io = /* @__PURE__ */ new Map(), Lo = (e) => {
3896
+ }) {}, Bo = /* @__PURE__ */ new Map(), Vo = (e) => {
3887
3897
  if (typeof e.resourceType != "string" || e.resourceType.length === 0) throw Error("defineResourcePolicy: a non-empty `resourceType` is required");
3888
3898
  if (e.actions === void 0 || Object.keys(e.actions).length === 0) throw Error(`resource policy '${e.resourceType}': at least one action is required`);
3889
- if (Io.has(e.resourceType)) throw Error(`resource policy '${e.resourceType}' is already registered — types must be unique`);
3890
- return Io.set(e.resourceType, e), e;
3891
- }, Ro = (e) => Io.get(e), zo = () => [...Io.values()], Bo = () => Io.clear(), Vo = () => zo().map((e) => {
3899
+ if (Bo.has(e.resourceType)) throw Error(`resource policy '${e.resourceType}' is already registered — types must be unique`);
3900
+ return Bo.set(e.resourceType, e), e;
3901
+ }, Ho = (e) => Bo.get(e), Uo = () => [...Bo.values()], Wo = () => Bo.clear(), Go = () => Uo().map((e) => {
3892
3902
  let t = /* @__PURE__ */ new Set();
3893
3903
  for (let n of Object.values(e.actions)) for (let e of n) t.add(e);
3894
3904
  for (let [n, r] of Object.entries(e.implies ?? {})) {
@@ -3901,7 +3911,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3901
3911
  relations: [...t],
3902
3912
  implies: e.implies ?? {}
3903
3913
  };
3904
- }), Ho = (e, t) => {
3914
+ }), Ko = (e, t) => {
3905
3915
  let n = new Set(e);
3906
3916
  if (t === void 0) return n;
3907
3917
  let r = [...e];
@@ -3910,37 +3920,37 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3910
3920
  for (let i of t[e] ?? []) n.has(i) || (n.add(i), r.push(i));
3911
3921
  }
3912
3922
  return n;
3913
- }, Uo = (e, t, n, r) => e.id === null ? /* @__PURE__ */ new Set() : Ho(n.filter((n) => n.subjectId === e.id && n.resourceType === t.type && n.resourceId === t.id).map((e) => e.relation), r.implies), Wo = (e, t, n, r) => {
3923
+ }, qo = (e, t, n, r) => e.id === null ? /* @__PURE__ */ new Set() : Ko(n.filter((n) => n.subjectId === e.id && n.resourceType === t.type && n.resourceId === t.id).map((e) => e.relation), r.implies), Jo = (e, t, n, r) => {
3914
3924
  if (e.scopes?.includes("admin:full")) return !0;
3915
3925
  if (e.id === null || n.tenantId != null && e.tenantId !== n.tenantId) return !1;
3916
3926
  let i = r.policy.actions[t];
3917
3927
  if (i === void 0 || i.length === 0) return !1;
3918
- let a = Uo(e, n, r.tuples, r.policy);
3928
+ let a = qo(e, n, r.tuples, r.policy);
3919
3929
  return i.some((e) => a.has(e));
3920
- }, Go = (e, t, n, r) => {
3921
- if (!Wo(e, t, n, r)) throw new Fo({
3930
+ }, Yo = (e, t, n, r) => {
3931
+ if (!Jo(e, t, n, r)) throw new zo({
3922
3932
  action: t,
3923
3933
  resourceType: n.type,
3924
3934
  resourceId: n.id
3925
3935
  });
3926
- }, Ko = (e, t, n, r, i) => r.filter((r) => Wo(e, t, {
3936
+ }, Xo = (e, t, n, r, i) => r.filter((r) => Jo(e, t, {
3927
3937
  type: n,
3928
3938
  id: r.id,
3929
3939
  ...r.tenantId === void 0 ? {} : { tenantId: r.tenantId }
3930
- }, i)), qo = (e, t) => {
3940
+ }, i)), Zo = (e, t) => {
3931
3941
  let n = new Set(t.map((e) => e.id));
3932
3942
  return e.filter((e) => !n.has(e.id)).map((e) => e.id);
3933
- }, Jo = A({ scope: "voltro:policy" }), Yo, Xo = (e) => {
3934
- Yo = e;
3935
- }, Zo = () => Yo, Qo = () => {
3936
- Pe((e) => M.gen(function* () {
3937
- let t = Ro(e.resourceType);
3938
- if (t === void 0) return Jo.warn("policy guard denied — no resource policy registered for this type", {
3943
+ }, Qo = k({ scope: "voltro:policy" }), $o, es = (e) => {
3944
+ $o = e;
3945
+ }, ts = () => $o, ns = () => {
3946
+ Le((e) => M.gen(function* () {
3947
+ let t = Ho(e.resourceType);
3948
+ if (t === void 0) return Qo.warn("policy guard denied — no resource policy registered for this type", {
3939
3949
  resourceType: e.resourceType,
3940
3950
  action: e.action
3941
3951
  }), !1;
3942
- let n = Yo;
3943
- if (n === void 0) return Jo.warn("policy guard denied — no tuple source registered (call setTupleSource at boot)", {
3952
+ let n = $o;
3953
+ if (n === void 0) return Qo.warn("policy guard denied — no tuple source registered (call setTupleSource at boot)", {
3944
3954
  resourceType: e.resourceType,
3945
3955
  action: e.action
3946
3956
  }), !1;
@@ -3951,11 +3961,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3951
3961
  resourceId: e.resourceId
3952
3962
  }),
3953
3963
  catch: (e) => e
3954
- }).pipe(M.catchAll((t) => (Jo.error("policy guard denied — tuple source failed", {
3964
+ }).pipe(M.catchAll((t) => (Qo.error("policy guard denied — tuple source failed", {
3955
3965
  resourceType: e.resourceType,
3956
3966
  resourceId: e.resourceId
3957
3967
  }, t), M.succeed([])))), i = e.subject;
3958
- return Wo({
3968
+ return Jo({
3959
3969
  id: e.subject.id,
3960
3970
  tenantId: i.tenantId ?? null,
3961
3971
  ...i.scopes === void 0 ? {} : { scopes: i.scopes }
@@ -3968,10 +3978,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
3968
3978
  tuples: r
3969
3979
  });
3970
3980
  }));
3971
- }, $o = (e) => {
3981
+ }, rs = (e) => {
3972
3982
  Promise.resolve().then(e);
3973
- }, es = (e) => {
3974
- let t = e.schedule ?? $o, n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = (e, t) => `${e}${t}`, a = async (t) => {
3983
+ }, is = (e) => {
3984
+ let t = e.schedule ?? rs, n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = (e, t) => `${e}${t}`, a = async (t) => {
3975
3985
  let a = r.get(t);
3976
3986
  if (a === void 0) return;
3977
3987
  r.delete(t);
@@ -4017,11 +4027,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4017
4027
  load: async (e, t) => (await o(e, [t]))[0] ?? null,
4018
4028
  loadMany: (e, t) => o(e, t)
4019
4029
  };
4020
- }, ts = N.effect(Ze.HttpClient, M.map(Ze.HttpClient, (e) => e.pipe(Ze.mapRequestEffect((e) => M.currentSpan.pipe(M.map((t) => e.headers.traceparent === void 0 ? Qe.setHeader(e, "traceparent", rr({
4030
+ }, as = N.effect($e.HttpClient, M.map($e.HttpClient, (e) => e.pipe($e.mapRequestEffect((e) => M.currentSpan.pipe(M.map((t) => e.headers.traceparent === void 0 ? et.setHeader(e, "traceparent", or({
4021
4031
  traceId: t.traceId,
4022
4032
  spanId: t.spanId,
4023
4033
  sampled: t.sampled
4024
- })) : e), M.catchAll(() => M.succeed(e))))))), ns = "voltro/audit", rs = "voltro/softDelete", is = "voltro/tenant", as = (e) => {
4034
+ })) : e), M.catchAll(() => M.succeed(e))))))), os = "voltro/audit", ss = "voltro/softDelete", cs = "voltro/tenant", ls = (e) => {
4025
4035
  let t = /* @__PURE__ */ new Map();
4026
4036
  for (let n of e) {
4027
4037
  let e = /* @__PURE__ */ new Set();
@@ -4064,49 +4074,49 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4064
4074
  return !1;
4065
4075
  },
4066
4076
  idScheme: (e) => t.get(e)?.idScheme,
4067
- defaultFactories: (e) => t.get(e)?.defaultFactories ?? os,
4068
- computedFields: (e) => t.get(e)?.computedFields ?? ss,
4077
+ defaultFactories: (e) => t.get(e)?.defaultFactories ?? us,
4078
+ computedFields: (e) => t.get(e)?.computedFields ?? ds,
4069
4079
  insertSchema: (e) => t.get(e)?.insertSchema,
4070
4080
  validatePatchSchema: (e) => t.get(e)?.validatePatchSchema
4071
4081
  };
4072
- }, os = /* @__PURE__ */ new Map(), ss = /* @__PURE__ */ new Map(), cs = as([]), ls = class extends L.TaggedError()("NoRowFound", {
4082
+ }, us = /* @__PURE__ */ new Map(), ds = /* @__PURE__ */ new Map(), fs = ls([]), ps = class extends L.TaggedError()("NoRowFound", {
4073
4083
  table: L.String,
4074
4084
  found: L.Number
4075
4085
  }) {
4076
4086
  get message() {
4077
4087
  return this.found === 0 ? `expected exactly one row in '${this.table}', found none` : `expected exactly one row in '${this.table}', found more than one`;
4078
4088
  }
4079
- }, us = class extends L.TaggedError()("OptimisticLockError", {
4089
+ }, ms = class extends L.TaggedError()("OptimisticLockError", {
4080
4090
  table: L.String,
4081
4091
  expected: L.Number
4082
4092
  }) {
4083
4093
  get message() {
4084
4094
  return `optimistic lock failed on '${this.table}': expected version ${this.expected}`;
4085
4095
  }
4086
- }, ds = (e) => typeof e == "object" && !!e && ("and" in e || "or" in e || "not" in e || "op" in e || "subquery" in e), fs = (e) => {
4087
- if (e.length === 1 && ds(e[0])) return e[0];
4096
+ }, hs = (e) => typeof e == "object" && !!e && ("and" in e || "or" in e || "not" in e || "op" in e || "subquery" in e), gs = (e) => {
4097
+ if (e.length === 1 && hs(e[0])) return e[0];
4088
4098
  let t = e[0];
4089
4099
  if (e.length === 2) return u(t, e[1]);
4090
4100
  let n = e[1], r = e[2];
4091
4101
  switch (n) {
4092
4102
  case "=": return u(t, r);
4093
4103
  case "!=":
4094
- case "<>": return T(t, r);
4104
+ case "<>": return w(t, r);
4095
4105
  case ">": return h(t, r);
4096
4106
  case ">=": return g(t, r);
4097
- case "<": return w(t, r);
4098
- case "<=": return te(t, r);
4107
+ case "<": return te(t, r);
4108
+ case "<=": return ne(t, r);
4099
4109
  case "in": return y(t, r);
4100
4110
  case "like":
4101
4111
  case "contains":
4102
4112
  case "fts": return o(t, r);
4103
4113
  default: return u(t, r);
4104
4114
  }
4105
- }, ps = (e) => {
4115
+ }, _s = (e) => {
4106
4116
  let t = m(e);
4107
4117
  if (t === void 0) throw Error(`unknown table '${e}' — is it declared with table()?`);
4108
- return re(t);
4109
- }, ms = class e {
4118
+ return ie(t);
4119
+ }, vs = class e {
4110
4120
  backend;
4111
4121
  scope;
4112
4122
  table;
@@ -4120,7 +4130,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4120
4130
  return new e(this.backend, this.scope, this.table, t, this.skipTenant, this.skipSoftDelete);
4121
4131
  }
4122
4132
  where(...e) {
4123
- return this.clone(this.query.where(fs(e)));
4133
+ return this.clone(this.query.where(gs(e)));
4124
4134
  }
4125
4135
  orderBy(e, t = "asc") {
4126
4136
  return this.clone(this.query.orderBy(e, t));
@@ -4155,7 +4165,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4155
4165
  scopedQuery() {
4156
4166
  let e = this.query, { subject: t, schemaRegistry: n } = this.scope;
4157
4167
  !this.skipTenant && n.hasTenant(this.table) && t.tenantId != null && (e = e.where(u("tenantId", t.tenantId))), !this.skipSoftDelete && n.hasSoftDelete(this.table) && (e = e.where(S("deletedAt")));
4158
- let r = (this.scope.rowFilter ?? Mn)(this.table);
4168
+ let r = (this.scope.rowFilter ?? Pn)(this.table);
4159
4169
  return r !== void 0 && (e = e.where(r)), e;
4160
4170
  }
4161
4171
  async all() {
@@ -4169,11 +4179,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4169
4179
  }
4170
4180
  async one() {
4171
4181
  let e = await this.backend.query(this.scopedQuery().limit(2).descriptor), t = e[0];
4172
- if (t === void 0) throw new ls({
4182
+ if (t === void 0) throw new ps({
4173
4183
  table: this.table,
4174
4184
  found: 0
4175
4185
  });
4176
- if (e.length > 1) throw new ls({
4186
+ if (e.length > 1) throw new ps({
4177
4187
  table: this.table,
4178
4188
  found: e.length
4179
4189
  });
@@ -4189,7 +4199,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4189
4199
  get descriptor() {
4190
4200
  return this.scopedQuery().descriptor;
4191
4201
  }
4192
- }, hs = class {
4202
+ }, ys = class {
4193
4203
  backend;
4194
4204
  scope;
4195
4205
  table;
@@ -4200,7 +4210,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4200
4210
  this.backend = e, this.scope = t, this.table = n;
4201
4211
  }
4202
4212
  where(...e) {
4203
- let n = fs(e);
4213
+ let n = gs(e);
4204
4214
  return this.predicate = this.predicate ? t(this.predicate, n) : n, this;
4205
4215
  }
4206
4216
  unscoped() {
@@ -4224,7 +4234,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4224
4234
  }
4225
4235
  async set(e) {
4226
4236
  let t = await this.backend.updateMany(this.table, e, { where: this.scopedWhere() });
4227
- if (this.expectedVersion !== void 0 && t === 0) throw new us({
4237
+ if (this.expectedVersion !== void 0 && t === 0) throw new ms({
4228
4238
  table: this.table,
4229
4239
  expected: this.expectedVersion
4230
4240
  });
@@ -4233,7 +4243,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4233
4243
  async restore() {
4234
4244
  return this.backend.updateMany(this.table, { deletedAt: null }, { where: this.scopedWhere() });
4235
4245
  }
4236
- }, gs = class {
4246
+ }, bs = class {
4237
4247
  backend;
4238
4248
  scope;
4239
4249
  table;
@@ -4243,7 +4253,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4243
4253
  this.backend = e, this.scope = t, this.table = n;
4244
4254
  }
4245
4255
  where(...e) {
4246
- let n = fs(e);
4256
+ let n = gs(e);
4247
4257
  return this.predicate = this.predicate ? t(this.predicate, n) : n, this;
4248
4258
  }
4249
4259
  unscoped() {
@@ -4264,32 +4274,32 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4264
4274
  async hard() {
4265
4275
  return this.backend.deleteMany(this.table, { where: this.scopedWhere() });
4266
4276
  }
4267
- }, _s = (e, t) => ({
4268
- select: (n) => new ms(e, t, n, ps(n)),
4269
- updateWhere: (n) => new hs(e, t, n),
4270
- deleteWhere: (n) => new gs(e, t, n)
4271
- }), vs = "id", ys = (e) => "descriptor" in e ? e.descriptor : e, bs = (e, t) => {
4277
+ }, xs = (e, t) => ({
4278
+ select: (n) => new vs(e, t, n, _s(n)),
4279
+ updateWhere: (n) => new ys(e, t, n),
4280
+ deleteWhere: (n) => new bs(e, t, n)
4281
+ }), Ss = "id", Cs = (e) => "descriptor" in e ? e.descriptor : e, ws = (e, t) => {
4272
4282
  let n = {};
4273
4283
  for (let r of t) e[r] !== void 0 && (n[r] = e[r]);
4274
4284
  return n;
4275
- }, xs = "cannot insert into tenant-scoped table without an authenticated tenant — subject.tenantId is null. Either authenticate first or pass tenantId explicitly in the row (admin tooling).", Ss = (e) => {
4276
- throw new Vi({
4285
+ }, Ts = "cannot insert into tenant-scoped table without an authenticated tenant — subject.tenantId is null. Either authenticate first or pass tenantId explicitly in the row (admin tooling).", Es = (e) => {
4286
+ throw new Gi({
4277
4287
  table: e,
4278
- reason: xs
4288
+ reason: Ts
4279
4289
  });
4280
- }, Cs = (e, n) => {
4281
- let r = n.subject.id, i = n.subject.tenantId, a = n.rowFilter ?? Mn, o = (e, t) => {
4290
+ }, Ds = (e, n) => {
4291
+ let r = n.subject.id, i = n.subject.tenantId, a = n.rowFilter ?? Pn, o = (e, t) => {
4282
4292
  let a = { ...t }, o = n.schemaRegistry, s = o.idScheme(e);
4283
- if (s !== void 0 && a[vs] == null) if (s.kind === "numeric") delete a[vs];
4293
+ if (s !== void 0 && a[Ss] == null) if (s.kind === "numeric") delete a[Ss];
4284
4294
  else {
4285
4295
  let t = f(s, e);
4286
- t !== null && (a[vs] = t);
4296
+ t !== null && (a[Ss] = t);
4287
4297
  }
4288
4298
  if (o.hasAudit(e)) {
4289
4299
  let e = /* @__PURE__ */ new Date();
4290
4300
  "createdAt" in a || (a.createdAt = e), "updatedAt" in a || (a.updatedAt = e), r !== null && ("createdBy" in a || (a.createdBy = r), "updatedBy" in a || (a.updatedBy = r));
4291
4301
  }
4292
- o.hasTenant(e) && ("tenantId" in a || (i === null && Ss(e), a.tenantId = i));
4302
+ o.hasTenant(e) && ("tenantId" in a || (i === null && Es(e), a.tenantId = i));
4293
4303
  let c = o.defaultFactories(e);
4294
4304
  if (c.size > 0) for (let [e, t] of c) (!(e in a) || a[e] === void 0) && (a[e] = t());
4295
4305
  let l = o.computedFields(e);
@@ -4304,10 +4314,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4304
4314
  try {
4305
4315
  return await r();
4306
4316
  } catch (n) {
4307
- let r = Gt(n);
4308
- if (Kt(r)) {
4317
+ let r = qt(n);
4318
+ if (Jt(r)) {
4309
4319
  let n = t.tenantId, i = `${r.dbConstraint ?? ""} ${r.dbColumn ?? ""} ${r.dbMessage ?? ""} ${r.dbCauseChain ?? ""}`.toLowerCase();
4310
- if (i.includes("tenantid") || /\btenants\b/.test(i) || n != null && i.includes(String(n).toLowerCase())) throw new Vi({
4320
+ if (i.includes("tenantid") || /\btenants\b/.test(i) || n != null && i.includes(String(n).toLowerCase())) throw new Gi({
4311
4321
  table: e,
4312
4322
  reason: n == null ? "write references a tenant that does not exist" : `tenant '${String(n)}' does not exist — seed the row in \`tenants\`, or fix how the request resolved this tenant (subject.tenantId / the x-tenant header / the dev TENANT fallback)`
4313
4323
  });
@@ -4328,11 +4338,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4328
4338
  if (r === void 0) return t;
4329
4339
  let i = L.decodeUnknownEither(r)(t);
4330
4340
  if (i._tag === "Right") return t;
4331
- let a = St.formatErrorSync(i.left).map((e) => ({
4341
+ let a = wt.formatErrorSync(i.left).map((e) => ({
4332
4342
  path: e.path.length === 0 ? "<root>" : e.path.join("."),
4333
4343
  message: e.message
4334
4344
  })), o = a[0];
4335
- throw new Ui({
4345
+ throw new qi({
4336
4346
  table: e,
4337
4347
  summary: o === void 0 ? "patch validation failed" : `${o.path}: ${o.message}`,
4338
4348
  issues: a
@@ -4345,20 +4355,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4345
4355
  if (r === void 0) return t;
4346
4356
  let i = L.decodeUnknownEither(r)(t);
4347
4357
  if (i._tag === "Right") return t;
4348
- let a = St.formatErrorSync(i.left).map((e) => ({
4358
+ let a = wt.formatErrorSync(i.left).map((e) => ({
4349
4359
  path: e.path.length === 0 ? "<root>" : e.path.join("."),
4350
4360
  message: e.message
4351
4361
  })), o = a[0];
4352
- throw new Ui({
4362
+ throw new qi({
4353
4363
  table: e,
4354
4364
  summary: o === void 0 ? "row validation failed" : `${o.path}: ${o.message}`,
4355
4365
  issues: a
4356
4366
  });
4357
4367
  }, y = n.dialect, b = (e, t) => {
4358
4368
  let n = m(e);
4359
- return l(y ? se(t, n, y) : t, n, pi());
4369
+ return l(y ? le(t, n, y) : t, n, gi());
4360
4370
  }, x = (e, t) => {
4361
- let n = m(e), r = s(t, n, pi());
4371
+ let n = m(e), r = s(t, n, gi());
4362
4372
  return y ? c(r, n, y) : r;
4363
4373
  }, C = (e) => {
4364
4374
  let r = e.table, o = e.predicate;
@@ -4370,20 +4380,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4370
4380
  let e = S("deletedAt");
4371
4381
  o = o ? t(o, e) : e;
4372
4382
  }
4373
- return o = In(a, r, o), o === e.predicate ? e : {
4383
+ return o = Rn(a, r, o), o === e.predicate ? e : {
4374
4384
  ...e,
4375
4385
  predicate: o
4376
4386
  };
4377
4387
  }, ee = async (t) => {
4378
4388
  let n = await e.query(t);
4379
4389
  return x(t.table, n);
4380
- }, w = async (e) => ee(C(e)), te = async (t, r, i) => {
4390
+ }, te = async (e) => ee(C(e)), ne = async (t, r, i) => {
4381
4391
  let a = d(t, i);
4382
4392
  if (n.schemaRegistry.computedFields(t).size > 0) {
4383
4393
  let n = (await e.query({
4384
4394
  table: t,
4385
4395
  predicate: {
4386
- column: vs,
4396
+ column: Ss,
4387
4397
  op: "eq",
4388
4398
  value: r
4389
4399
  },
@@ -4398,16 +4408,16 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4398
4408
  a = g(t, a);
4399
4409
  let o = await e.update(t, r, b(t, a));
4400
4410
  return o === null ? null : x(t, [o])[0];
4401
- }, T = async (t, r) => n.schemaRegistry.hasSoftDelete(t) ? await e.update(t, r, _()) !== null : e.delete(t, r), ne = async (t, n, r) => e.updateMany(t, b(t, d(t, n)), r), re = async (t, n) => e.deleteMany(t, n), ie = (e, r) => i != null && n.schemaRegistry.hasTenant(e) ? t(r, u("tenantId", i)) : r, ae = async (e, t, n) => ne(e, t, {
4411
+ }, w = async (t, r) => n.schemaRegistry.hasSoftDelete(t) ? await e.update(t, r, _()) !== null : e.delete(t, r), re = async (t, n, r) => e.updateMany(t, b(t, d(t, n)), r), ie = async (t, n) => e.deleteMany(t, n), ae = (e, r) => i != null && n.schemaRegistry.hasTenant(e) ? t(r, u("tenantId", i)) : r, oe = async (e, t, n) => re(e, t, {
4402
4412
  ...n,
4403
- where: ie(e, n.where)
4404
- }), oe = async (e, t) => re(e, {
4413
+ where: ae(e, n.where)
4414
+ }), se = async (e, t) => ie(e, {
4405
4415
  ...t,
4406
- where: ie(e, t.where)
4407
- }), ce = _s({
4416
+ where: ae(e, t.where)
4417
+ }), ce = xs({
4408
4418
  query: ee,
4409
- updateMany: ne,
4410
- deleteMany: re,
4419
+ updateMany: re,
4420
+ deleteMany: ie,
4411
4421
  delete: (t, n) => e.delete(t, n)
4412
4422
  }, {
4413
4423
  subject: n.subject,
@@ -4415,28 +4425,28 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4415
4425
  rowFilter: a
4416
4426
  });
4417
4427
  return {
4418
- query: w,
4428
+ query: te,
4419
4429
  one: (async (e) => {
4420
- let t = ys(e), n = await w({
4430
+ let t = Cs(e), n = await te({
4421
4431
  ...t,
4422
4432
  take: 2
4423
4433
  }), r = n[0];
4424
- if (r === void 0) throw new ls({
4434
+ if (r === void 0) throw new ps({
4425
4435
  table: t.table,
4426
4436
  found: 0
4427
4437
  });
4428
- if (n.length > 1) throw new ls({
4438
+ if (n.length > 1) throw new ps({
4429
4439
  table: t.table,
4430
4440
  found: n.length
4431
4441
  });
4432
4442
  return r;
4433
4443
  }),
4434
- first: (async (e) => (await w({
4435
- ...ys(e),
4444
+ first: (async (e) => (await te({
4445
+ ...Cs(e),
4436
4446
  take: 1
4437
4447
  }))[0] ?? null),
4438
- maybeOne: (async (e) => (await w({
4439
- ...ys(e),
4448
+ maybeOne: (async (e) => (await te({
4449
+ ...Cs(e),
4440
4450
  take: 1
4441
4451
  }))[0] ?? null),
4442
4452
  insert: async (t, n) => {
@@ -4452,12 +4462,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4452
4462
  return a === null ? null : x(t, [a])[0];
4453
4463
  },
4454
4464
  select: ce.select,
4455
- update: ((e, t, n) => t === void 0 ? ce.updateWhere(e) : te(e, t, n)),
4456
- delete: ((e, t) => t === void 0 ? ce.deleteWhere(e) : T(e, t)),
4457
- applyDefined: bs,
4465
+ update: ((e, t, n) => t === void 0 ? ce.updateWhere(e) : ne(e, t, n)),
4466
+ delete: ((e, t) => t === void 0 ? ce.deleteWhere(e) : w(e, t)),
4467
+ applyDefined: ws,
4458
4468
  hardDelete: async (t, n) => e.delete(t, n),
4459
- updateMany: ae,
4460
- deleteMany: oe,
4469
+ updateMany: oe,
4470
+ deleteMany: se,
4461
4471
  upsert: async (t, n, r) => {
4462
4472
  let i = o(t, n), a = await p(t, i, () => e.upsert(t, b(t, v(t, i)), r));
4463
4473
  return x(t, [a])[0];
@@ -4466,34 +4476,34 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4466
4476
  let i = o(t, n), a = await p(t, i, () => e.insertIgnore(t, b(t, v(t, i)), r));
4467
4477
  return x(t, [a])[0];
4468
4478
  },
4469
- transactional: (t) => e.transactional(async (e) => t(Cs(e, n))),
4479
+ transactional: (t) => e.transactional(async (e) => t(Ds(e, n))),
4470
4480
  ...e.raw ? { raw: e.raw.bind(e) } : {},
4471
4481
  onChange: (t) => e.onChange(t),
4472
4482
  injectExternalChange: (t) => e.injectExternalChange(t),
4473
4483
  ...e.changeScope === void 0 ? {} : { changeScope: e.changeScope }
4474
4484
  };
4475
- }, ws = class extends L.TaggedError()("CircuitOpen", {
4485
+ }, Os = class extends L.TaggedError()("CircuitOpen", {
4476
4486
  name: L.String,
4477
4487
  retryAfterMs: L.Number
4478
- }) {}, Ts = {
4488
+ }) {}, ks = {
4479
4489
  tag: "closed",
4480
4490
  failureCount: 0,
4481
4491
  halfOpenSuccesses: 0,
4482
4492
  openedAt: 0
4483
- }, Es = { make: (e) => M.gen(function* () {
4484
- let t = e.name ?? "circuit", n = Ve.toMillis(Ve.decode(e.resetTimeout)), r = e.halfOpenSuccessThreshold ?? 1, i = e.isFailure ?? (() => !0), a = yield* I.make(Ts), o = M.gen(function* () {
4493
+ }, As = { make: (e) => M.gen(function* () {
4494
+ let t = e.name ?? "circuit", n = Ue.toMillis(Ue.decode(e.resetTimeout)), r = e.halfOpenSuccessThreshold ?? 1, i = e.isFailure ?? (() => !0), a = yield* I.make(ks), o = M.gen(function* () {
4485
4495
  let e = yield* I.get(a);
4486
4496
  if (e.tag === "half-open") {
4487
4497
  let t = e.halfOpenSuccesses + 1;
4488
- yield* I.set(a, t >= r ? Ts : {
4498
+ yield* I.set(a, t >= r ? ks : {
4489
4499
  ...e,
4490
4500
  halfOpenSuccesses: t
4491
4501
  });
4492
4502
  return;
4493
4503
  }
4494
- e.failureCount !== 0 && (yield* I.set(a, Ts));
4504
+ e.failureCount !== 0 && (yield* I.set(a, ks));
4495
4505
  }), s = M.gen(function* () {
4496
- let t = yield* Le.currentTimeMillis, n = yield* I.get(a);
4506
+ let t = yield* Be.currentTimeMillis, n = yield* I.get(a);
4497
4507
  if (n.tag === "half-open" || n.tag === "open") {
4498
4508
  yield* I.set(a, {
4499
4509
  tag: "open",
@@ -4516,7 +4526,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4516
4526
  }), c = M.gen(function* () {
4517
4527
  let e = yield* I.get(a);
4518
4528
  if (e.tag !== "open") return null;
4519
- let t = (yield* Le.currentTimeMillis) - e.openedAt;
4529
+ let t = (yield* Be.currentTimeMillis) - e.openedAt;
4520
4530
  return t >= n ? (yield* I.set(a, {
4521
4531
  tag: "half-open",
4522
4532
  failureCount: 0,
@@ -4526,10 +4536,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4526
4536
  }), l = (e) => M.gen(function* () {
4527
4537
  let n = yield* c;
4528
4538
  return n === null ? yield* e.pipe(M.tap(() => o), M.tapErrorCause((e) => {
4529
- if (j.isInterruptedOnly(e)) return M.void;
4530
- let t = j.failureOption(e), n = t._tag === "Some" ? t.value : void 0;
4539
+ if (A.isInterruptedOnly(e)) return M.void;
4540
+ let t = A.failureOption(e), n = t._tag === "Some" ? t.value : void 0;
4531
4541
  return i(n) ? s : M.void;
4532
- })) : yield* M.fail(new ws({
4542
+ })) : yield* M.fail(new Os({
4533
4543
  name: t,
4534
4544
  retryAfterMs: n
4535
4545
  }));
@@ -4538,25 +4548,25 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4538
4548
  value: I.get(a).pipe(M.map((e) => e.tag)),
4539
4549
  enumerable: !0
4540
4550
  }), Object.defineProperty(u, "reset", {
4541
- value: I.set(a, Ts),
4551
+ value: I.set(a, ks),
4542
4552
  enumerable: !0
4543
4553
  }), u;
4544
- }) }, Ds, Os = (e) => {
4545
- Ds = e;
4546
- }, ks = () => {
4547
- Ds = void 0;
4548
- }, As = () => Ds, js = async (e, t = {}) => {
4549
- let n = t.scopes === void 0 ? Fe(t.id ?? "system") : Fe(t.id ?? "system", t.scopes), r = t.store ?? Ds?.dataStore, i = t.schemaRegistry ?? Ds?.schemaRegistry, a = t.dialect ?? Ds?.dialect;
4554
+ }) }, js, Ms = (e) => {
4555
+ js = e;
4556
+ }, Ns = () => {
4557
+ js = void 0;
4558
+ }, Ps = () => js, Fs = async (e, t = {}) => {
4559
+ let n = t.scopes === void 0 ? Re(t.id ?? "system") : Re(t.id ?? "system", t.scopes), r = t.store ?? js?.dataStore, i = t.schemaRegistry ?? js?.schemaRegistry, a = t.dialect ?? js?.dialect;
4550
4560
  if (r === void 0 || i === void 0) throw Error("runAsSystem: no data store available — register one at boot via setSystemStoreHandle({ dataStore, schemaRegistry }) or pass { store, schemaRegistry } in the options.");
4551
4561
  return e({
4552
4562
  subject: n,
4553
- store: Cs(r, {
4563
+ store: Ds(r, {
4554
4564
  subject: n,
4555
4565
  schemaRegistry: i,
4556
4566
  ...a === void 0 ? {} : { dialect: a }
4557
4567
  })
4558
4568
  });
4559
- }, Ms = (e) => {
4569
+ }, Is = (e) => {
4560
4570
  let { currentRegion: t, replicaRegions: n, inner: r } = e, i = (e) => {
4561
4571
  if (t === void 0) return {
4562
4572
  sameRegion: [],
@@ -4584,7 +4594,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4584
4594
  return r.loadSnapshot();
4585
4595
  }
4586
4596
  };
4587
- }, Ns = (e = process.env) => {
4597
+ }, Ls = (e = process.env) => {
4588
4598
  for (let t of [
4589
4599
  "VOLTRO_REGION",
4590
4600
  "AWS_REGION",
@@ -4596,7 +4606,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4596
4606
  let n = e[t];
4597
4607
  if (typeof n == "string" && n.length > 0) return n;
4598
4608
  }
4599
- }, Ps = () => {
4609
+ }, Rs = () => {
4600
4610
  let e = {
4601
4611
  primary: 0,
4602
4612
  lagByReplica: /* @__PURE__ */ new Map()
@@ -4621,27 +4631,27 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4621
4631
  e.lagByReplica.set(t, n);
4622
4632
  }
4623
4633
  };
4624
- }, Fs = Symbol.for("@voltro/ScheduleDefinition"), Is = (e) => typeof e == "object" && !!e && Fs in e, Ls = 30 * 6e4, Rs = (e) => {
4625
- let t = ze.parse(e.cron, e.timezone);
4626
- if (He.isLeft(t)) throw Error(`defineSchedule("${e.name}"): invalid cron expression "${e.cron}" (tz="${e.timezone}") — ${String(t.left)}`);
4634
+ }, zs = Symbol.for("@voltro/ScheduleDefinition"), Bs = (e) => typeof e == "object" && !!e && zs in e, Vs = 30 * 6e4, Hs = (e) => {
4635
+ let t = j.parse(e.cron, e.timezone);
4636
+ if (We.isLeft(t)) throw Error(`defineSchedule("${e.name}"): invalid cron expression "${e.cron}" (tz="${e.timezone}") — ${String(t.left)}`);
4627
4637
  if (!e.timezone || e.timezone.trim() === "") throw Error(`defineSchedule("${e.name}"): timezone is required (e.g. "UTC", "Europe/Berlin")`);
4628
4638
  if (e.handler === void 0 && e.workflow === void 0) throw Error(`defineSchedule("${e.name}"): define either handler or workflow`);
4629
4639
  return {
4630
4640
  ...e,
4631
4641
  onOverlap: e.onOverlap ?? "skip",
4632
4642
  backfill: e.backfill ?? "skip",
4633
- maxRuntimeMs: e.maxRuntimeMs ?? Ls,
4634
- [Fs]: !0
4643
+ maxRuntimeMs: e.maxRuntimeMs ?? Vs,
4644
+ [zs]: !0
4635
4645
  };
4636
- }, zs = (e) => ze.unsafeParse(e.cron, e.timezone), Bs = (e, t = /* @__PURE__ */ new Date()) => ze.next(zs(e), t), Z = "_voltro_wakeups", Vs = (e) => `${e.tenantId}:${e.kind}:${e.refId}`, Hs = (e) => ({
4646
+ }, Us = (e) => j.unsafeParse(e.cron, e.timezone), Ws = (e, t = /* @__PURE__ */ new Date()) => j.next(Us(e), t), Z = "_voltro_wakeups", Gs = (e) => `${e.tenantId}:${e.kind}:${e.refId}`, Ks = (e) => ({
4637
4647
  tenantId: String(e.tenantId),
4638
4648
  kind: String(e.kind),
4639
4649
  refId: String(e.refId),
4640
4650
  wakeAt: e.wakeAt instanceof Date ? e.wakeAt : new Date(String(e.wakeAt)),
4641
4651
  status: e.status === "fired" ? "fired" : "pending"
4642
- }), Us = async (e, t) => {
4652
+ }), qs = async (e, t) => {
4643
4653
  await e.upsert(Z, {
4644
- id: Vs(t),
4654
+ id: Gs(t),
4645
4655
  tenantId: t.tenantId,
4646
4656
  kind: t.kind,
4647
4657
  refId: t.refId,
@@ -4651,7 +4661,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4651
4661
  conflictColumns: ["id"],
4652
4662
  update: ["wakeAt", "status"]
4653
4663
  });
4654
- }, Ws = async (e, t) => e.delete(Z, Vs(t)), Gs = async (e, t) => await e.update(Z, Vs(t), { status: "fired" }) !== null, Ks = (e, t) => ({ and: [{
4664
+ }, Js = async (e, t) => e.delete(Z, Gs(t)), Ys = async (e, t) => await e.update(Z, Gs(t), { status: "fired" }) !== null, Xs = (e, t) => ({ and: [{
4655
4665
  column: "id",
4656
4666
  op: "eq",
4657
4667
  value: e
@@ -4659,16 +4669,16 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4659
4669
  column: "status",
4660
4670
  op: "eq",
4661
4671
  value: t
4662
- }] }), qs = async (e, t) => await e.updateMany(Z, { status: "fired" }, { where: Ks(Vs(t), "pending") }) > 0, Js = async (e, t) => {
4663
- await e.updateMany(Z, { status: "pending" }, { where: Ks(Vs(t), "fired") });
4664
- }, Ys = {
4672
+ }] }), Zs = async (e, t) => await e.updateMany(Z, { status: "fired" }, { where: Xs(Gs(t), "pending") }) > 0, Qs = async (e, t) => {
4673
+ await e.updateMany(Z, { status: "pending" }, { where: Xs(Gs(t), "fired") });
4674
+ }, $s = {
4665
4675
  column: "status",
4666
4676
  op: "eq",
4667
4677
  value: "pending"
4668
- }, Xs = async (e, t) => {
4678
+ }, ec = async (e, t) => {
4669
4679
  let n = {
4670
4680
  table: Z,
4671
- predicate: Ys,
4681
+ predicate: $s,
4672
4682
  order: [{
4673
4683
  column: "wakeAt",
4674
4684
  direction: "asc"
@@ -4677,18 +4687,18 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4677
4687
  skip: void 0,
4678
4688
  projection: void 0
4679
4689
  };
4680
- return (await e.query(n)).map(Hs);
4681
- }, Zs = async (e, t, n = 500) => {
4682
- let r = await Xs(e, n), i = t.getTime();
4690
+ return (await e.query(n)).map(Ks);
4691
+ }, tc = async (e, t, n = 500) => {
4692
+ let r = await ec(e, n), i = t.getTime();
4683
4693
  return r.filter((e) => e.wakeAt.getTime() <= i);
4684
- }, Qs = async (e) => (await Xs(e, 1))[0] ?? null, $s = {
4694
+ }, nc = async (e) => (await ec(e, 1))[0] ?? null, rc = {
4685
4695
  column: "status",
4686
4696
  op: "eq",
4687
4697
  value: "fired"
4688
- }, ec = async (e, t = {}) => {
4698
+ }, ic = async (e, t = {}) => {
4689
4699
  let n = {
4690
4700
  table: Z,
4691
- predicate: $s,
4701
+ predicate: rc,
4692
4702
  order: [{
4693
4703
  column: "wakeAt",
4694
4704
  direction: "asc"
@@ -4699,12 +4709,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4699
4709
  }, r = await e.query(n), i = t.firedOlderThan?.getTime(), a = 0;
4700
4710
  for (let t of r) i !== void 0 && (t.wakeAt instanceof Date ? t.wakeAt : new Date(String(t.wakeAt))).getTime() >= i || await e.delete(Z, String(t.id)) && a++;
4701
4711
  return a;
4702
- }, tc = {
4712
+ }, ac = Wi, oc = "default", sc = {
4703
4713
  kind: "single",
4704
4714
  tryClaim: async () => !0
4705
- }, nc = "_voltro_schedule_claims", rc = (e, t, n) => {
4715
+ }, cc = "_voltro_schedule_claims", lc = (e, t, n) => {
4706
4716
  let r = async (t) => (await e.query({
4707
- table: nc,
4717
+ table: cc,
4708
4718
  order: [],
4709
4719
  predicate: void 0,
4710
4720
  projection: ["id"],
@@ -4719,7 +4729,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4719
4729
  if (await r(s)) return !1;
4720
4730
  } catch {}
4721
4731
  try {
4722
- return await e.insert(nc, {
4732
+ return await e.insert(cc, {
4723
4733
  id: s,
4724
4734
  scheduleName: i,
4725
4735
  bucket: o,
@@ -4737,12 +4747,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4737
4747
  }
4738
4748
  }
4739
4749
  };
4740
- }, ic = "_voltro_schedule_runs", ac = async (e, t) => {
4750
+ }, uc = "_voltro_schedule_runs", dc = async (e, t) => {
4741
4751
  let { store: n, coordinator: r, buildContext: i, replicaId: a, log: o, onRunEvent: s, interceptFire: c } = t, l = t.dormancy === "sleep", u = t.dormancyTenantId ?? "default", d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map(), m = !1, h = new Map(e.map((e) => [e.name, e])), g = (e, t) => {
4742
- s?.(e, sc(t));
4752
+ s?.(e, pc(t));
4743
4753
  }, _ = async (e, t, r, i, s, c) => {
4744
4754
  try {
4745
- let o = `sr_${me()}`, l = await n.insert(ic, {
4755
+ let o = `sr_${_e()}`, l = await n.insert(uc, {
4746
4756
  id: o,
4747
4757
  name: e.name,
4748
4758
  status: i,
@@ -4767,7 +4777,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4767
4777
  }
4768
4778
  }, v = async (e, t) => {
4769
4779
  try {
4770
- let r = await n.update(ic, e, t);
4780
+ let r = await n.update(uc, e, t);
4771
4781
  r && g("update", r);
4772
4782
  } catch (t) {
4773
4783
  o.warn("schedule: failed to record run finish", {
@@ -4778,7 +4788,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4778
4788
  }, y = async (e) => {
4779
4789
  try {
4780
4790
  let t = await n.query({
4781
- table: ic,
4791
+ table: uc,
4782
4792
  predicate: {
4783
4793
  _tag: "leaf",
4784
4794
  column: "status",
@@ -4812,7 +4822,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4812
4822
  traceId: `schedule-${e.name}-${a.getTime()}`,
4813
4823
  scheduleName: e.name,
4814
4824
  trigger: n,
4815
- runId: s
4825
+ runId: s,
4826
+ subject: ac
4816
4827
  })
4817
4828
  };
4818
4829
  try {
@@ -4843,7 +4854,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4843
4854
  let n = Q(t).includes("exceeded maxRuntimeMs");
4844
4855
  s && await v(s, {
4845
4856
  status: "failed",
4846
- errorTag: n ? "timeout" : oc(t),
4857
+ errorTag: n ? "timeout" : fc(t),
4847
4858
  errorMessage: Q(t),
4848
4859
  completedAt: /* @__PURE__ */ new Date(),
4849
4860
  durationMs: Date.now() - l
@@ -4851,7 +4862,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4851
4862
  name: e.name,
4852
4863
  reason: Q(t),
4853
4864
  timeout: n
4854
- }), Me({
4865
+ }), Fe({
4855
4866
  error: t,
4856
4867
  source: "schedule",
4857
4868
  name: e.name,
@@ -4900,8 +4911,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4900
4911
  }
4901
4912
  }, C = async (e) => {
4902
4913
  try {
4903
- let t = ze.next(zs(e), /* @__PURE__ */ new Date());
4904
- await Us(n, {
4914
+ let t = j.next(Us(e), /* @__PURE__ */ new Date());
4915
+ await qs(n, {
4905
4916
  tenantId: u,
4906
4917
  kind: "schedule",
4907
4918
  refId: e.name,
@@ -4913,9 +4924,9 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4913
4924
  reason: Q(t)
4914
4925
  });
4915
4926
  }
4916
- }, ee = 2147483647, w = (e) => {
4927
+ }, ee = 2147483647, te = (e) => {
4917
4928
  if (m) return;
4918
- let n = zs(e), r = ze.next(n, /* @__PURE__ */ new Date()), i = () => {
4929
+ let n = Us(e), r = j.next(n, /* @__PURE__ */ new Date()), i = () => {
4919
4930
  if (m) return;
4920
4931
  let n = r.getTime() - Date.now();
4921
4932
  if (n > ee) {
@@ -4927,17 +4938,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4927
4938
  x(e, r, e.trigger ?? t.defaultTrigger).catch((t) => o.warn("schedule: fire rejected", {
4928
4939
  name: e.name,
4929
4940
  reason: Q(t)
4930
- })).finally(() => w(e));
4941
+ })).finally(() => te(e));
4931
4942
  }, Math.max(0, n));
4932
4943
  d.set(e.name, a);
4933
4944
  };
4934
4945
  i();
4935
- }, te = async (e) => {
4946
+ }, ne = async (e) => {
4936
4947
  if (e.backfill === "skip") return;
4937
4948
  let r;
4938
4949
  try {
4939
4950
  let t = (await n.query({
4940
- table: ic,
4951
+ table: uc,
4941
4952
  order: [{
4942
4953
  column: "scheduledAt",
4943
4954
  direction: "desc"
@@ -4956,8 +4967,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4956
4967
  return;
4957
4968
  }
4958
4969
  if (!r) return;
4959
- let i = zs(e), a = [], s = ze.next(i, r), c = Date.now();
4960
- for (; s.getTime() < c && a.length < 1e3;) a.push(s), s = ze.next(i, s);
4970
+ let i = Us(e), a = [], s = j.next(i, r), c = Date.now();
4971
+ for (; s.getTime() < c && a.length < 1e3;) a.push(s), s = j.next(i, s);
4961
4972
  if (a.length !== 0) if (o.info("schedule: backfill", {
4962
4973
  name: e.name,
4963
4974
  missed: a.length,
@@ -4967,20 +4978,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
4967
4978
  let n = a[a.length - 1];
4968
4979
  await x(e, n, e.trigger ?? t.defaultTrigger);
4969
4980
  } else for (let n of a) await x(e, n, e.trigger ?? t.defaultTrigger);
4970
- }, T = e.filter((e) => (e.trigger ?? t.defaultTrigger) === "self");
4981
+ }, w = e.filter((e) => (e.trigger ?? t.defaultTrigger) === "self");
4971
4982
  o.info("scheduler: starting", {
4972
4983
  total: e.length,
4973
- self: T.length,
4974
- external: e.length - T.length,
4984
+ self: w.length,
4985
+ external: e.length - w.length,
4975
4986
  coordinator: r.kind
4976
4987
  });
4977
- let ne = (t.armSelf ?? !0) && !l;
4988
+ let re = (t.armSelf ?? !0) && !l;
4978
4989
  if (l) {
4979
- o.info("scheduler: sleep mode — registering wakeups, not arming timers", { count: T.length });
4980
- for (let e of T) await C(e);
4981
- } else if (ne) {
4982
- for (let e of T) await te(e);
4983
- for (let e of T) w(e);
4990
+ o.info("scheduler: sleep mode — registering wakeups, not arming timers", { count: w.length });
4991
+ for (let e of w) await C(e);
4992
+ } else if (re) {
4993
+ for (let e of w) await ne(e);
4994
+ for (let e of w) te(e);
4984
4995
  }
4985
4996
  return {
4986
4997
  fireNow: async (e, t) => {
@@ -5001,11 +5012,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5001
5012
  d.clear(), o.info("scheduler: stopped");
5002
5013
  }
5003
5014
  };
5004
- }, Q = (e) => e?.message ?? String(e), oc = (e) => e && typeof e == "object" && "_tag" in e ? String(e._tag) : null, sc = (e) => {
5015
+ }, Q = (e) => e?.message ?? String(e), fc = (e) => e && typeof e == "object" && "_tag" in e ? String(e._tag) : null, pc = (e) => {
5005
5016
  let t = {};
5006
5017
  for (let [n, r] of Object.entries(e)) t[n] = r instanceof Date ? r.toISOString() : r;
5007
5018
  return t;
5008
- }, cc = (e, t, n, r) => {
5019
+ }, mc = (e, t, n, r) => {
5009
5020
  let i = !1, a, o = async () => {
5010
5021
  if (i) return;
5011
5022
  let a = new Date(Math.floor(Date.now() / t) * t), o = !1;
@@ -5035,96 +5046,96 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5035
5046
  i || (i = !0, a && clearInterval(a), a = void 0);
5036
5047
  }
5037
5048
  };
5038
- }, lc = (e) => (t, n, r) => cc(t, n, r, e), uc = E("_voltro_schedule_runs", {
5049
+ }, hc = (e) => (t, n, r) => mc(t, n, r, e), gc = T("_voltro_schedule_runs", {
5039
5050
  id: v({ prefix: "schrun" }),
5040
- name: D(),
5041
- status: D().oneOf([
5051
+ name: E(),
5052
+ status: E().oneOf([
5042
5053
  "running",
5043
5054
  "succeeded",
5044
5055
  "failed",
5045
5056
  "skipped",
5046
5057
  "missed"
5047
5058
  ]).default("running"),
5048
- trigger: D().oneOf([
5059
+ trigger: E().oneOf([
5049
5060
  "self",
5050
5061
  "external",
5051
5062
  "manual"
5052
5063
  ]).default("self"),
5053
- scheduledAt: O(),
5054
- firedAt: O().nullable(),
5055
- completedAt: O().nullable(),
5064
+ scheduledAt: D(),
5065
+ firedAt: D().nullable(),
5066
+ completedAt: D().nullable(),
5056
5067
  durationMs: b().nullable(),
5057
- errorTag: D().nullable(),
5058
- errorMessage: D().nullable(),
5059
- coordinationOutcome: D().oneOf([
5068
+ errorTag: E().nullable(),
5069
+ errorMessage: E().nullable(),
5070
+ coordinationOutcome: E().oneOf([
5060
5071
  "single",
5061
5072
  "wonLock",
5062
5073
  "lostLock",
5063
5074
  "external",
5064
5075
  "cluster"
5065
5076
  ]).nullable(),
5066
- replicaId: D().nullable(),
5077
+ replicaId: E().nullable(),
5067
5078
  result: C().nullable()
5068
- }).index(["name", "scheduledAt"]).index(["status"]), dc = E("_voltro_schedule_claims", {
5079
+ }).index(["name", "scheduledAt"]).index(["status"]), _c = T("_voltro_schedule_claims", {
5069
5080
  id: v({ prefix: "schclaim" }),
5070
- scheduleName: D(),
5071
- bucket: D(),
5072
- claimedBy: D(),
5073
- claimedAt: O()
5074
- }).index(["scheduleName", "bucket"]).index(["claimedAt"]), fc = E("_voltro_traces", {
5081
+ scheduleName: E(),
5082
+ bucket: E(),
5083
+ claimedBy: E(),
5084
+ claimedAt: D()
5085
+ }).index(["scheduleName", "bucket"]).index(["claimedAt"]), vc = T("_voltro_traces", {
5075
5086
  id: v({ prefix: "span" }),
5076
- traceId: D(),
5077
- spanId: D(),
5078
- parentSpanId: D().nullable(),
5079
- name: D(),
5080
- kind: D().oneOf([
5087
+ traceId: E(),
5088
+ spanId: E(),
5089
+ parentSpanId: E().nullable(),
5090
+ name: E(),
5091
+ kind: E().oneOf([
5081
5092
  "internal",
5082
5093
  "server",
5083
5094
  "client",
5084
5095
  "producer",
5085
5096
  "consumer"
5086
5097
  ]).default("internal"),
5087
- status: D().oneOf([
5098
+ status: E().oneOf([
5088
5099
  "ok",
5089
5100
  "error",
5090
5101
  "unset"
5091
5102
  ]).default("unset"),
5092
- statusMessage: D().nullable(),
5093
- startedAt: O(),
5094
- endedAt: O(),
5103
+ statusMessage: E().nullable(),
5104
+ startedAt: D(),
5105
+ endedAt: D(),
5095
5106
  durationMs: b(),
5096
5107
  attributes: C().nullable(),
5097
5108
  events: C().nullable()
5098
- }).index(["traceId", "startedAt"]).index(["startedAt"]).index(["status"]), pc = E("_voltro_undo_log", {
5109
+ }).index(["traceId", "startedAt"]).index(["startedAt"]).index(["status"]), yc = T("_voltro_undo_log", {
5099
5110
  id: v({ prefix: "undo" }),
5100
- tag: D(),
5101
- label: D().nullable(),
5102
- subjectId: D().nullable(),
5103
- tenantId: D().nullable(),
5104
- traceId: D().nullable(),
5105
- changes: D(),
5111
+ tag: E(),
5112
+ label: E().nullable(),
5113
+ subjectId: E().nullable(),
5114
+ tenantId: E().nullable(),
5115
+ traceId: E().nullable(),
5116
+ changes: E(),
5106
5117
  crossesAction: r().default(!1),
5107
5118
  undone: r().default(!1),
5108
- createdAt: O().default("now")
5109
- }).index(["subjectId", "createdAt"]).reactive(), mc = (e = process.env) => {
5119
+ createdAt: D().default("now")
5120
+ }).index(["subjectId", "createdAt"]).reactive(), bc = (e = process.env) => {
5110
5121
  let t = (e.VOLTRO_UNDO ?? "").toLowerCase();
5111
5122
  return t === "on" || t === "1" || t === "true" ? !0 : t === "off" || t === "0" || t === "false" ? !1 : e.NODE_ENV !== "production";
5112
- }, hc = (e) => e.startsWith("_voltro"), gc = async (e, t, n) => (await e.query({
5123
+ }, xc = (e) => e.startsWith("_voltro"), Sc = async (e, t, n) => (await e.query({
5113
5124
  table: t,
5114
5125
  predicate: u("id", n),
5115
5126
  order: []
5116
- }))[0] ?? null, _c = (e, t) => new Proxy(e, { get(e, n, r) {
5127
+ }))[0] ?? null, Cc = (e, t) => new Proxy(e, { get(e, n, r) {
5117
5128
  if (n === "insert") return async (n, r) => {
5118
5129
  let i = await e.insert(n, r);
5119
- return hc(n) || t({
5130
+ return xc(n) || t({
5120
5131
  table: n,
5121
5132
  op: "insert",
5122
5133
  next: i
5123
5134
  }), i;
5124
5135
  };
5125
5136
  if (n === "update") return async (n, r, i) => {
5126
- let a = hc(n) ? null : await gc(e, n, r), o = await e.update(n, r, i);
5127
- return hc(n) || t({
5137
+ let a = xc(n) ? null : await Sc(e, n, r), o = await e.update(n, r, i);
5138
+ return xc(n) || t({
5128
5139
  table: n,
5129
5140
  op: "update",
5130
5141
  id: r,
@@ -5133,8 +5144,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5133
5144
  }), o;
5134
5145
  };
5135
5146
  if (n === "delete") return async (n, r) => {
5136
- let i = hc(n) ? null : await gc(e, n, r), a = await e.delete(n, r);
5137
- return !hc(n) && a && t({
5147
+ let i = xc(n) ? null : await Sc(e, n, r), a = await e.delete(n, r);
5148
+ return !xc(n) && a && t({
5138
5149
  table: n,
5139
5150
  op: "delete",
5140
5151
  id: r,
@@ -5143,10 +5154,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5143
5154
  };
5144
5155
  let i = Reflect.get(e, n, r);
5145
5156
  return typeof i == "function" ? i.bind(e) : i;
5146
- } }), vc = (e) => {
5157
+ } }), wc = (e) => {
5147
5158
  let t = [];
5148
5159
  return {
5149
- tx: _c(e, (e) => t.push(e)),
5160
+ tx: Cc(e, (e) => t.push(e)),
5150
5161
  persist: async (e, n) => {
5151
5162
  if (t.length === 0 || n.tag.startsWith("__voltro")) return;
5152
5163
  let r = n.subject;
@@ -5162,14 +5173,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5162
5173
  });
5163
5174
  }
5164
5175
  };
5165
- }, yc = (e) => {
5176
+ }, Tc = (e) => {
5166
5177
  if (e.id !== void 0) return e.id;
5167
5178
  let t = e.next?.id;
5168
5179
  if (typeof t == "string") return t;
5169
5180
  let n = e.prev?.id;
5170
5181
  return typeof n == "string" ? n : void 0;
5171
- }, bc = (e) => {
5172
- let t = yc(e);
5182
+ }, Ec = (e) => {
5183
+ let t = Tc(e);
5173
5184
  switch (e.op) {
5174
5185
  case "insert": return t === void 0 ? null : {
5175
5186
  table: e.table,
@@ -5193,28 +5204,28 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5193
5204
  row: e.prev
5194
5205
  };
5195
5206
  }
5196
- }, xc = (e) => {
5197
- if (e.crossesAction) throw new Sc(e.invocationId, "action");
5207
+ }, Dc = (e) => {
5208
+ if (e.crossesAction) throw new Oc(e.invocationId, "action");
5198
5209
  let t = [];
5199
5210
  for (let n = e.changes.length - 1; n >= 0; --n) {
5200
- let r = bc(e.changes[n]);
5211
+ let r = Ec(e.changes[n]);
5201
5212
  r !== null && t.push(r);
5202
5213
  }
5203
5214
  return t;
5204
- }, Sc = class extends Error {
5215
+ }, Oc = class extends Error {
5205
5216
  invocationId;
5206
5217
  boundary;
5207
5218
  _tag = "UndoBoundaryError";
5208
5219
  constructor(e, t) {
5209
5220
  super(t === "action" ? `cannot undo invocation ${e}: it crossed an action (external side effect)` : `cannot undo invocation ${e}: the row changed since (conflict)`), this.invocationId = e, this.boundary = t, this.name = "UndoBoundaryError";
5210
5221
  }
5211
- }, Cc = (e, t, n = ["updatedAt", "updatedBy"]) => {
5222
+ }, kc = (e, t, n = ["updatedAt", "updatedBy"]) => {
5212
5223
  if (t == null) return e == null;
5213
5224
  if (e == null) return !1;
5214
5225
  let r = new Set(n);
5215
5226
  for (let [n, i] of Object.entries(t)) if (!r.has(n) && !Object.is(e[n], i) && JSON.stringify(e[n]) !== JSON.stringify(i)) return !1;
5216
5227
  return !0;
5217
- }, wc = class {
5228
+ }, Ac = class {
5218
5229
  capacity;
5219
5230
  done = [];
5220
5231
  undone = [];
@@ -5250,7 +5261,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5250
5261
  redo: [...this.undone]
5251
5262
  };
5252
5263
  }
5253
- }, Tc = (e, t = /* @__PURE__ */ new Set()) => e.op === "insert" ? {
5264
+ }, jc = (e, t = /* @__PURE__ */ new Set()) => e.op === "insert" ? {
5254
5265
  table: e.table,
5255
5266
  op: "insert",
5256
5267
  next: e.new ?? null
@@ -5267,7 +5278,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5267
5278
  table: e.table,
5268
5279
  op: "delete",
5269
5280
  prev: e.old ?? null
5270
- }, Ec = async (e, t) => {
5281
+ }, Mc = async (e, t) => {
5271
5282
  switch (t.op) {
5272
5283
  case "delete":
5273
5284
  await e.delete(t.table, t.id);
@@ -5285,21 +5296,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5285
5296
  await e.insert(t.table, t.row);
5286
5297
  return;
5287
5298
  }
5288
- }, Dc = async (e, t) => {
5289
- for (let n of t) await Ec(e, n);
5290
- }, Oc = (e) => e.request?.subject?.id ?? null, kc = (e) => e === !0 || e === 1, Ac = async (e, t, n) => (await e.query({
5299
+ }, Nc = async (e, t) => {
5300
+ for (let n of t) await Mc(e, n);
5301
+ }, Pc = (e) => e.request?.subject?.id ?? null, Fc = (e) => e === !0 || e === 1, Ic = async (e, t, n) => (await e.query({
5291
5302
  table: t,
5292
5303
  predicate: u("id", n),
5293
5304
  order: []
5294
- }))[0] ?? null, jc = (e) => {
5305
+ }))[0] ?? null, Lc = (e) => {
5295
5306
  try {
5296
5307
  let t = JSON.parse(String(e ?? "[]"));
5297
5308
  return Array.isArray(t) ? t : [];
5298
5309
  } catch {
5299
5310
  return [];
5300
5311
  }
5301
- }, Mc = (e) => e.id ?? e.next?.id ?? e.prev?.id, Nc = async (e, t) => {
5302
- let n = Oc(t);
5312
+ }, Rc = (e) => e.id ?? e.next?.id ?? e.prev?.id, zc = async (e, t) => {
5313
+ let n = Pc(t);
5303
5314
  return [...await t.store.query({
5304
5315
  table: "_voltro_undo_log",
5305
5316
  predicate: u("subjectId", n),
@@ -5308,68 +5319,68 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5308
5319
  id: String(e.id),
5309
5320
  tag: String(e.tag ?? ""),
5310
5321
  label: e.label ?? null,
5311
- undone: kc(e.undone),
5312
- crossesAction: kc(e.crossesAction),
5322
+ undone: Fc(e.undone),
5323
+ crossesAction: Fc(e.crossesAction),
5313
5324
  createdAt: String(e.createdAt ?? "")
5314
5325
  }));
5315
- }, Pc = async (e, t) => {
5316
- let n = await Ac(t.store, "_voltro_undo_log", e.invocationId);
5317
- if (!n) throw new Te({ invocationId: e.invocationId });
5318
- if ((n.subjectId ?? null) !== Oc(t)) throw new we({ invocationId: e.invocationId });
5326
+ }, Bc = async (e, t) => {
5327
+ let n = await Ic(t.store, "_voltro_undo_log", e.invocationId);
5328
+ if (!n) throw new Oe({ invocationId: e.invocationId });
5329
+ if ((n.subjectId ?? null) !== Pc(t)) throw new De({ invocationId: e.invocationId });
5319
5330
  return n;
5320
- }, Fc = async (e, t) => {
5321
- let n = await Pc(e, t);
5322
- if (kc(n.undone)) return { ok: !0 };
5323
- if (kc(n.crossesAction)) throw new Ce({
5331
+ }, Vc = async (e, t) => {
5332
+ let n = await Bc(e, t);
5333
+ if (Fc(n.undone)) return { ok: !0 };
5334
+ if (Fc(n.crossesAction)) throw new Ee({
5324
5335
  invocationId: e.invocationId,
5325
5336
  reason: "action"
5326
5337
  });
5327
- let r = jc(n.changes);
5338
+ let r = Lc(n.changes);
5328
5339
  for (let n of r) {
5329
- let r = Mc(n);
5330
- if (r !== void 0 && !Cc(await Ac(t.store, n.table, r), n.next ?? null)) throw new Ce({
5340
+ let r = Rc(n);
5341
+ if (r !== void 0 && !kc(await Ic(t.store, n.table, r), n.next ?? null)) throw new Ee({
5331
5342
  invocationId: e.invocationId,
5332
5343
  reason: "conflict"
5333
5344
  });
5334
5345
  }
5335
5346
  let i = {
5336
5347
  invocationId: e.invocationId,
5337
- subject: Oc(t),
5348
+ subject: Pc(t),
5338
5349
  changes: r,
5339
5350
  crossesAction: !1
5340
5351
  };
5341
- return await Dc(t.store, xc(i)), await t.store.update("_voltro_undo_log", e.invocationId, { undone: !0 }), { ok: !0 };
5342
- }, Ic = async (e, t) => {
5343
- let n = await Pc(e, t);
5344
- if (!kc(n.undone)) return { ok: !0 };
5345
- for (let e of jc(n.changes)) {
5346
- let n = Mc(e);
5352
+ return await Nc(t.store, Dc(i)), await t.store.update("_voltro_undo_log", e.invocationId, { undone: !0 }), { ok: !0 };
5353
+ }, Hc = async (e, t) => {
5354
+ let n = await Bc(e, t);
5355
+ if (!Fc(n.undone)) return { ok: !0 };
5356
+ for (let e of Lc(n.changes)) {
5357
+ let n = Rc(e);
5347
5358
  e.op === "insert" && e.next ? await t.store.insert(e.table, e.next) : e.op === "update" && n !== void 0 && e.next ? await t.store.update(e.table, n, e.next) : e.op === "delete" && n !== void 0 && await t.store.delete(e.table, n);
5348
5359
  }
5349
5360
  return await t.store.update("_voltro_undo_log", e.invocationId, { undone: !1 }), { ok: !0 };
5350
- }, Lc = (e = process.env) => {
5361
+ }, Uc = (e = process.env) => {
5351
5362
  let t = (e.VOLTRO_TIMELINE ?? "").toLowerCase();
5352
5363
  return t === "off" || t === "0" || t === "false" ? "off" : t === "all" ? "all" : t === "interesting" || t === "on" || t === "1" || t === "true" ? "interesting" : e.NODE_ENV === "production" ? "off" : "interesting";
5353
- }, Rc = /pass(word)?|secret|token|api[_-]?key|authorization|cookie|ssn|credit[_-]?card|card[_-]?number|cvv|encrypted/i, zc = "«redacted»", Bc = (e) => {
5364
+ }, Wc = /pass(word)?|secret|token|api[_-]?key|authorization|cookie|ssn|credit[_-]?card|card[_-]?number|cvv|encrypted/i, Gc = "«redacted»", Kc = (e) => {
5354
5365
  if (e == null) return null;
5355
5366
  let t = {};
5356
- for (let [n, r] of Object.entries(e)) t[n] = Rc.test(n) ? zc : r;
5367
+ for (let [n, r] of Object.entries(e)) t[n] = Wc.test(n) ? Gc : r;
5357
5368
  return t;
5358
- }, Vc = (e) => {
5369
+ }, qc = (e) => {
5359
5370
  let t = e?.id;
5360
5371
  return typeof t == "string" ? t : void 0;
5361
- }, Hc = (e, t) => {
5372
+ }, Jc = (e, t) => {
5362
5373
  if (t.op === "insert") {
5363
- let n = Vc(t.new);
5374
+ let n = qc(t.new);
5364
5375
  return n === void 0 ? e : e.filter((e) => e.id !== n);
5365
5376
  }
5366
5377
  if (t.op === "update") {
5367
5378
  if (t.old == null) return e;
5368
- let n = Vc(t.new) ?? Vc(t.old);
5379
+ let n = qc(t.new) ?? qc(t.old);
5369
5380
  return e.map((e) => e.id === n ? t.old : e);
5370
5381
  }
5371
5382
  return t.old == null ? e : [...e, t.old];
5372
- }, Uc = class {
5383
+ }, Yc = class {
5373
5384
  mode;
5374
5385
  capacity;
5375
5386
  now;
@@ -5389,8 +5400,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5389
5400
  ts: this.now(),
5390
5401
  table: e.table,
5391
5402
  op: e.op,
5392
- old: Bc(e.old),
5393
- new: Bc(e.new),
5403
+ old: Kc(e.old),
5404
+ new: Kc(e.new),
5394
5405
  tenantId: n
5395
5406
  }), this.ring.length > this.capacity && this.ring.shift(), t;
5396
5407
  }
@@ -5403,23 +5414,23 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5403
5414
  }
5404
5415
  replay(e, t, n) {
5405
5416
  let r = this.ring.filter((n) => n.table === e && n.seq > t).sort((e, t) => t.seq - e.seq), i = n;
5406
- for (let e of r) i = Hc(i, e);
5417
+ for (let e of r) i = Jc(i, e);
5407
5418
  return i;
5408
5419
  }
5409
- }, Wc, Gc = () => (Wc === void 0 && (Wc = new Uc(Lc())), Wc), Kc = (e) => {
5410
- Wc = e;
5411
- }, qc = (e) => {
5412
- let t = Gc();
5420
+ }, Xc, Zc = () => (Xc === void 0 && (Xc = new Yc(Uc())), Xc), Qc = (e) => {
5421
+ Xc = e;
5422
+ }, $c = (e) => {
5423
+ let t = Zc();
5413
5424
  if (t.enabled) try {
5414
5425
  t.record(e);
5415
5426
  } catch {}
5416
- }, Jc = /* @__PURE__ */ new Set([
5427
+ }, el = /* @__PURE__ */ new Set([
5417
5428
  "count",
5418
5429
  "sum",
5419
5430
  "avg",
5420
5431
  "min",
5421
5432
  "max"
5422
- ]), Yc = (e) => {
5433
+ ]), tl = (e) => {
5423
5434
  if (e.joins !== void 0 && e.joins.length > 0) return {
5424
5435
  maintainable: !1,
5425
5436
  reason: "joins are not maintainable in v1"
@@ -5441,7 +5452,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5441
5452
  reason: "v1 maintains exactly one aggregation"
5442
5453
  };
5443
5454
  let t = e.aggregations[0];
5444
- return Jc.has(t.op) ? t.op !== "count" && (t.column === void 0 || t.column.length === 0) ? {
5455
+ return el.has(t.op) ? t.op !== "count" && (t.column === void 0 || t.column.length === 0) ? {
5445
5456
  maintainable: !1,
5446
5457
  reason: `op '${t.op}' requires a column`
5447
5458
  } : {
@@ -5455,7 +5466,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5455
5466
  maintainable: !1,
5456
5467
  reason: `op '${t.op}' is not maintainable`
5457
5468
  };
5458
- }, Xc = "\0", $ = (e, t) => t === void 0 || t.length === 0 ? "" : t.map((t) => JSON.stringify(e[t] ?? null)).join(Xc), Zc = (e, t) => t === void 0 ? 0 : Number(e[t] ?? 0), Qc = (e, t) => {
5469
+ }, nl = "\0", $ = (e, t) => t === void 0 || t.length === 0 ? "" : t.map((t) => JSON.stringify(e[t] ?? null)).join(nl), rl = (e, t) => t === void 0 ? 0 : Number(e[t] ?? 0), il = (e, t) => {
5459
5470
  switch (e.op) {
5460
5471
  case "count": return t.count;
5461
5472
  case "sum": return t.sum ?? 0;
@@ -5463,10 +5474,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5463
5474
  case "min":
5464
5475
  case "max": return t.count > 0 ? t.extreme ?? null : null;
5465
5476
  }
5466
- }, $c = (e, t) => {
5477
+ }, al = (e, t) => {
5467
5478
  let n = /* @__PURE__ */ new Map();
5468
5479
  for (let r of t) {
5469
- let t = $(r, e.groupBy), i = n.get(t), a = Zc(r, e.column);
5480
+ let t = $(r, e.groupBy), i = n.get(t), a = rl(r, e.column);
5470
5481
  if (i === void 0) n.set(t, {
5471
5482
  count: 1,
5472
5483
  ...e.op === "sum" || e.op === "avg" ? { sum: a } : {},
@@ -5482,10 +5493,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5482
5493
  }
5483
5494
  }
5484
5495
  return n;
5485
- }, el = (e, t) => [...t.entries()].map(([t, n]) => ({
5496
+ }, ol = (e, t) => [...t.entries()].map(([t, n]) => ({
5486
5497
  groupKey: t,
5487
- value: Qc(e, n)
5488
- })), tl = (e, t, n) => {
5498
+ value: il(e, n)
5499
+ })), sl = (e, t, n) => {
5489
5500
  let r = new Map(t), i = /* @__PURE__ */ new Set(), a = (t) => {
5490
5501
  let n = $(t, e.groupBy), a = r.get(n);
5491
5502
  if (a === void 0) return;
@@ -5494,7 +5505,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5494
5505
  r.delete(n);
5495
5506
  return;
5496
5507
  }
5497
- let s = Zc(t, e.column);
5508
+ let s = rl(t, e.column);
5498
5509
  e.op === "min" || e.op === "max" ? (a.extreme !== void 0 && s === a.extreme && i.add(n), r.set(n, {
5499
5510
  count: o,
5500
5511
  ...a.extreme === void 0 ? {} : { extreme: a.extreme }
@@ -5503,7 +5514,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5503
5514
  ...e.op === "sum" || e.op === "avg" ? { sum: (a.sum ?? 0) - s } : {}
5504
5515
  });
5505
5516
  }, o = (t) => {
5506
- let n = $(t, e.groupBy), i = r.get(n), a = Zc(t, e.column);
5517
+ let n = $(t, e.groupBy), i = r.get(n), a = rl(t, e.column);
5507
5518
  if (i === void 0) {
5508
5519
  r.set(n, {
5509
5520
  count: 1,
@@ -5523,15 +5534,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5523
5534
  state: r,
5524
5535
  rescanGroups: [...i]
5525
5536
  };
5526
- }, nl = (e, t, n, r) => {
5537
+ }, cl = (e, t, n, r) => {
5527
5538
  if (n.length === 0) return t;
5528
- let i = new Set(n), a = $c(e, r.filter((t) => i.has($(t, e.groupBy)))), o = new Map(t);
5539
+ let i = new Set(n), a = al(e, r.filter((t) => i.has($(t, e.groupBy)))), o = new Map(t);
5529
5540
  for (let e of i) {
5530
5541
  let t = a.get(e);
5531
5542
  t === void 0 ? o.delete(e) : o.set(e, t);
5532
5543
  }
5533
5544
  return o;
5534
- }, rl = class {
5545
+ }, ll = class {
5535
5546
  shape;
5536
5547
  state = /* @__PURE__ */ new Map();
5537
5548
  groups = /* @__PURE__ */ new Map();
@@ -5539,7 +5550,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5539
5550
  this.shape = e;
5540
5551
  }
5541
5552
  seed(e) {
5542
- this.state = $c(this.shape, e), this.groups.clear();
5553
+ this.state = al(this.shape, e), this.groups.clear();
5543
5554
  for (let t of e) {
5544
5555
  let e = $(t, this.shape.groupBy);
5545
5556
  this.groups.has(e) || this.groups.set(e, this.groupValues(t));
@@ -5551,14 +5562,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5551
5562
  let e = $(t, this.shape.groupBy);
5552
5563
  this.groups.has(e) || this.groups.set(e, this.groupValues(t));
5553
5564
  }
5554
- let n = tl(this.shape, this.state, e);
5565
+ let n = sl(this.shape, this.state, e);
5555
5566
  this.state = n.state;
5556
5567
  for (let e of this.groups.keys()) this.state.has(e) || this.groups.delete(e);
5557
5568
  return n.rescanGroups;
5558
5569
  }
5559
5570
  resolveRescan(e, t) {
5560
5571
  if (e.length === 0) return;
5561
- this.state = nl(this.shape, this.state, e, t);
5572
+ this.state = cl(this.shape, this.state, e, t);
5562
5573
  let n = new Set(e);
5563
5574
  for (let e of t) {
5564
5575
  let t = $(e, this.shape.groupBy);
@@ -5567,7 +5578,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5567
5578
  for (let e of n) this.state.has(e) || this.groups.delete(e);
5568
5579
  }
5569
5580
  materialize() {
5570
- return el(this.shape, this.state).map((e) => ({
5581
+ return ol(this.shape, this.state).map((e) => ({
5571
5582
  groupKey: e.groupKey,
5572
5583
  group: this.groups.get(e.groupKey) ?? {},
5573
5584
  value: e.value
@@ -5580,19 +5591,19 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5580
5591
  for (let r of t) n[r] = e[r];
5581
5592
  return n;
5582
5593
  }
5583
- }, il = E("_voltro_rebac_tuples", {
5594
+ }, ul = T("_voltro_rebac_tuples", {
5584
5595
  id: v({ prefix: "rbct" }),
5585
- subjectId: D(),
5586
- relation: D(),
5587
- resourceType: D(),
5588
- resourceId: D(),
5589
- tenantId: D().nullable(),
5590
- createdAt: O().default("now")
5596
+ subjectId: E(),
5597
+ relation: E(),
5598
+ resourceType: E(),
5599
+ resourceId: E(),
5600
+ tenantId: E().nullable(),
5601
+ createdAt: D().default("now")
5591
5602
  }).index([
5592
5603
  "subjectId",
5593
5604
  "resourceType",
5594
5605
  "resourceId"
5595
- ]).reactive(), al = async (e, n, r, i) => n === null ? [] : (await e.query({
5606
+ ]).reactive(), dl = async (e, n, r, i) => n === null ? [] : (await e.query({
5596
5607
  table: "_voltro_rebac_tuples",
5597
5608
  predicate: t(u("subjectId", n), u("resourceType", r), u("resourceId", i)),
5598
5609
  order: [],
@@ -5604,16 +5615,16 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5604
5615
  relation: e.relation,
5605
5616
  resourceType: e.resourceType,
5606
5617
  resourceId: e.resourceId
5607
- })), ol = (e) => ({
5618
+ })), fl = (e) => ({
5608
5619
  id: e.id,
5609
5620
  tenantId: e.tenantId,
5610
5621
  ...e.scopes === void 0 ? {} : { scopes: e.scopes }
5611
- }), sl = (e, t) => {
5612
- let n = t.getPolicy ?? Ro;
5622
+ }), pl = (e, t) => {
5623
+ let n = t.getPolicy ?? Ho;
5613
5624
  return (r, i) => {
5614
5625
  let a = e[i.tag];
5615
5626
  if (a === void 0) return r;
5616
- let o = n(a.resourceType), s = (e) => M.fail(new Fo({
5627
+ let o = n(a.resourceType), s = (e) => M.fail(new zo({
5617
5628
  action: a.action,
5618
5629
  resourceType: a.resourceType,
5619
5630
  resourceId: e
@@ -5621,17 +5632,17 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5621
5632
  if (o === void 0) return s("");
5622
5633
  let c = a.resourceId(i.input);
5623
5634
  if (c === null || c === "") return s("");
5624
- let l = ol(i.subject), u = {
5635
+ let l = fl(i.subject), u = {
5625
5636
  type: a.resourceType,
5626
5637
  id: c,
5627
5638
  tenantId: i.subject.tenantId
5628
5639
  };
5629
- return M.flatMap(M.promise(async () => t.loadTuples(l.id, a.resourceType, c)), (e) => Wo(l, a.action, u, {
5640
+ return M.flatMap(M.promise(async () => t.loadTuples(l.id, a.resourceType, c)), (e) => Jo(l, a.action, u, {
5630
5641
  policy: o,
5631
5642
  tuples: e
5632
5643
  }) ? r : s(c));
5633
5644
  };
5634
- }, cl = async (e, n, r) => n === null ? [] : (await e.query({
5645
+ }, ml = async (e, n, r) => n === null ? [] : (await e.query({
5635
5646
  table: "_voltro_rebac_tuples",
5636
5647
  predicate: t(u("subjectId", n), u("resourceType", r)),
5637
5648
  order: [],
@@ -5643,18 +5654,18 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5643
5654
  relation: e.relation,
5644
5655
  resourceType: e.resourceType,
5645
5656
  resourceId: e.resourceId
5646
- })), ll = (e) => {
5647
- let t = e.getPolicy ?? Ro;
5657
+ })), hl = (e) => {
5658
+ let t = e.getPolicy ?? Ho;
5648
5659
  return async (n, r, i, a) => {
5649
5660
  let o = t(r);
5650
5661
  if (o === void 0) return [];
5651
- let s = ol(n);
5652
- return Ko(s, i, r, a, {
5662
+ let s = fl(n);
5663
+ return Xo(s, i, r, a, {
5653
5664
  policy: o,
5654
5665
  tuples: await e.loadSubjectTuples(s.id, r)
5655
5666
  });
5656
5667
  };
5657
- }, ul = (e) => {
5668
+ }, gl = (e) => {
5658
5669
  if (typeof e.name != "string" || e.name.length === 0) throw Error("defineReaction: a non-empty `name` is required");
5659
5670
  if (e.watch === void 0 || typeof e.watch.table != "string" || e.watch.table.length === 0) throw Error(`reaction '${e.name}': watch.table is required`);
5660
5671
  if (e.act === void 0 || e.act.kind !== "agent" && e.act.kind !== "workflow") throw Error(`reaction '${e.name}': act must be { kind: 'agent' | 'workflow', … }`);
@@ -5662,14 +5673,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5662
5673
  if (e.guards.rateLimit !== void 0 && (e.guards.rateLimit.limit <= 0 || e.guards.rateLimit.windowMs <= 0)) throw Error(`reaction '${e.name}': guards.rateLimit needs positive limit + windowMs`);
5663
5674
  if (e.guards.costBudgetUsd !== void 0 && e.guards.costBudgetUsd < 0) throw Error(`reaction '${e.name}': guards.costBudgetUsd must be >= 0`);
5664
5675
  return e;
5665
- }, dl = (e, t) => e === void 0 ? !0 : Array.isArray(e) ? e.includes(t) : e === t, fl = (e) => e.new?.tenantId ?? e.old?.tenantId ?? null, pl = class {
5676
+ }, _l = (e, t) => e === void 0 ? !0 : Array.isArray(e) ? e.includes(t) : e === t, vl = (e) => e.new?.tenantId ?? e.old?.tenantId ?? null, yl = class {
5666
5677
  hits = /* @__PURE__ */ new Map();
5667
5678
  allow(e, t, n, r) {
5668
5679
  let i = r - n, a = (this.hits.get(e) ?? []).filter((e) => e > i);
5669
5680
  return a.length >= t ? (this.hits.set(e, a), !1) : (a.push(r), this.hits.set(e, a), !0);
5670
5681
  }
5671
- }, ml = async (e, t, n) => {
5672
- if (t.table !== e.watch.table || !dl(e.watch.on, t.op)) return "skipped-op";
5682
+ }, bl = async (e, t, n) => {
5683
+ if (t.table !== e.watch.table || !_l(e.watch.on, t.op)) return "skipped-op";
5673
5684
  if (e.when !== void 0 && !e.when(t)) return "skipped-when";
5674
5685
  let r = `${e.name}:${e.guards.dedupeKey(t)}`;
5675
5686
  if (await n.dedupe.has(r)) return "skipped-dedupe";
@@ -5678,26 +5689,26 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5678
5689
  let t = n.now?.() ?? Date.now();
5679
5690
  if (!n.rateLimiter.allow(e.name, i.limit, i.windowMs, t)) return "skipped-ratelimit";
5680
5691
  }
5681
- let a = fl(t);
5692
+ let a = vl(t);
5682
5693
  return e.guards.costBudgetUsd !== void 0 && n.checkBudget !== void 0 && !await n.checkBudget(a, e.guards.costBudgetUsd) ? "skipped-budget" : (await n.runAct(e.act, t, {
5683
5694
  id: a,
5684
5695
  via: "agent"
5685
5696
  }), await n.dedupe.add(r), "acted");
5686
- }, hl = E("_voltro_wakeups", {
5697
+ }, xl = T("_voltro_wakeups", {
5687
5698
  id: v({ prefix: "wakeup" }),
5688
- tenantId: D(),
5689
- kind: D(),
5690
- refId: D(),
5691
- wakeAt: O(),
5692
- status: D()
5693
- }).index(["status", "wakeAt"]).index(["tenantId"]), gl = async (e) => {
5694
- let t = e.now?.() ?? /* @__PURE__ */ new Date(), n = await Zs(e.store, t, e.batchLimit ?? 100);
5699
+ tenantId: E(),
5700
+ kind: E(),
5701
+ refId: E(),
5702
+ wakeAt: D(),
5703
+ status: E()
5704
+ }).index(["status", "wakeAt"]).index(["tenantId"]), Sl = async (e) => {
5705
+ let t = e.now?.() ?? /* @__PURE__ */ new Date(), n = await tc(e.store, t, e.batchLimit ?? 100);
5695
5706
  if (n.length === 0) return 0;
5696
5707
  let r = 0;
5697
- for (let t of n) if (await qs(e.store, t)) try {
5708
+ for (let t of n) if (await Zs(e.store, t)) try {
5698
5709
  await e.adapter.wake(t), r++;
5699
5710
  } catch (n) {
5700
- await Js(e.store, t), e.log?.warn("wake: adapter failed — released for retry", {
5711
+ await Qs(e.store, t), e.log?.warn("wake: adapter failed — released for retry", {
5701
5712
  tenantId: t.tenantId,
5702
5713
  kind: t.kind,
5703
5714
  refId: t.refId,
@@ -5705,11 +5716,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5705
5716
  });
5706
5717
  }
5707
5718
  return r > 0 && e.log?.info("wake: woke due deployments", { count: r }), r;
5708
- }, _l = (e, t = 1e3) => {
5719
+ }, Cl = (e, t = 1e3) => {
5709
5720
  let n = !1, r, i = async () => {
5710
5721
  if (!n) {
5711
5722
  try {
5712
- await gl(e);
5723
+ await Sl(e);
5713
5724
  } catch (t) {
5714
5725
  e.log?.warn("wake: tick failed", { reason: t instanceof Error ? t.message : String(t) });
5715
5726
  }
@@ -5719,10 +5730,10 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5719
5730
  return i(), { stop: () => {
5720
5731
  n = !0, r !== void 0 && clearTimeout(r);
5721
5732
  } };
5722
- }, vl = (e) => ({ wake: async () => {
5733
+ }, wl = (e) => ({ wake: async () => {
5723
5734
  await e.start();
5724
- } }), yl = (e) => new Promise((t) => setTimeout(t, e)), bl = (e) => {
5725
- let t = e.fetchImpl ?? fetch, n = e.now ?? Date.now, r = e.sleep ?? yl, i = e.spawnImpl ?? Ct, a = e.startTimeoutMs ?? 3e4, o = e.healthPollMs ?? 200, s = e.stopSignal ?? "SIGTERM", c = e.stopGraceMs ?? 1e4, l, u, d = e.healthCheck ?? ((e) => e.ok), f = async () => {
5735
+ } }), Tl = (e) => new Promise((t) => setTimeout(t, e)), El = (e) => {
5736
+ let t = e.fetchImpl ?? fetch, n = e.now ?? Date.now, r = e.sleep ?? Tl, i = e.spawnImpl ?? Tt, a = e.startTimeoutMs ?? 3e4, o = e.healthPollMs ?? 200, s = e.stopSignal ?? "SIGTERM", c = e.stopGraceMs ?? 1e4, l, u, d = e.healthCheck ?? ((e) => e.ok), f = async () => {
5726
5737
  try {
5727
5738
  let n = await t(e.healthUrl);
5728
5739
  return d(n);
@@ -5776,11 +5787,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5776
5787
  },
5777
5788
  stop: m
5778
5789
  };
5779
- }, xl = async (e) => {
5790
+ }, Dl = async (e) => {
5780
5791
  if (e.signals.connectedClients() > 0 || e.signals.inFlightRequests() > 0 || e.signals.activeWorkflowExecutions() > 0) return !1;
5781
- let t = (e.now?.() ?? /* @__PURE__ */ new Date()).getTime() + (e.wakeLookaheadMs ?? 3e4), n = await Qs(e.store);
5792
+ let t = (e.now?.() ?? /* @__PURE__ */ new Date()).getTime() + (e.wakeLookaheadMs ?? 3e4), n = await nc(e.store);
5782
5793
  return !(n !== null && n.wakeAt.getTime() <= t);
5783
- }, Sl = (e, t = Date.now) => {
5794
+ }, Ol = (e, t = Date.now) => {
5784
5795
  let n;
5785
5796
  return {
5786
5797
  update: (r) => {
@@ -5792,7 +5803,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5792
5803
  n = void 0;
5793
5804
  }
5794
5805
  };
5795
- }, Cl = () => {
5806
+ }, kl = () => {
5796
5807
  let e = 0, t = 0;
5797
5808
  return {
5798
5809
  onRequestStart: () => {
@@ -5810,8 +5821,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5810
5821
  inFlightRequests: () => e,
5811
5822
  openConnections: () => t
5812
5823
  };
5813
- }, wl = (e) => ({ run: async (t) => (e.onActivity?.(), await e.ensureAwake(), t()) }), Tl = (e, t, n, r) => new Promise((i, a) => {
5814
- let o = Ye.request({
5824
+ }, Al = (e) => ({ run: async (t) => (e.onActivity?.(), await e.ensureAwake(), t()) }), jl = (e, t, n, r) => new Promise((i, a) => {
5825
+ let o = Ze.request({
5815
5826
  host: n,
5816
5827
  port: r,
5817
5828
  method: e.method,
@@ -5821,8 +5832,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5821
5832
  t.writeHead(e.statusCode ?? 502, e.headers), e.pipe(t), e.on("end", i), e.on("error", a);
5822
5833
  });
5823
5834
  o.on("error", a), e.pipe(o);
5824
- }), El = (e, t, n, r, i) => new Promise((a, o) => {
5825
- let s = Ye.request({
5835
+ }), Ml = (e, t, n, r, i) => new Promise((a, o) => {
5836
+ let s = Ze.request({
5826
5837
  host: r,
5827
5838
  port: i,
5828
5839
  method: e.method,
@@ -5836,21 +5847,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5836
5847
  };
5837
5848
  t.on("close", s), r.on("close", s), r.on("error", o);
5838
5849
  }), s.on("error", o), s.end();
5839
- }), Dl = (e) => {
5840
- let t = wl({
5850
+ }), Nl = (e) => {
5851
+ let t = Al({
5841
5852
  ensureAwake: () => e.supervisor.start(),
5842
5853
  ...e.onActivity === void 0 ? {} : { onActivity: e.onActivity }
5843
- }), n = e.activity, r = Ye.createServer((r, i) => {
5844
- n?.onRequestStart(), i.on("close", () => n?.onRequestEnd()), t.run(() => Tl(r, i, e.targetHost, e.targetPort)).catch((t) => {
5854
+ }), n = e.activity, r = Ze.createServer((r, i) => {
5855
+ n?.onRequestStart(), i.on("close", () => n?.onRequestEnd()), t.run(() => jl(r, i, e.targetHost, e.targetPort)).catch((t) => {
5845
5856
  e.log?.warn("wake-router: proxy failed", { reason: t instanceof Error ? t.message : String(t) }), i.headersSent || i.writeHead(502), i.end("wake/proxy failed");
5846
5857
  });
5847
5858
  });
5848
5859
  return r.on("upgrade", (r, i, a) => {
5849
- n?.onConnect(), i.on("close", () => n?.onDisconnect()), t.run(() => El(r, i, a, e.targetHost, e.targetPort)).catch((t) => {
5860
+ n?.onConnect(), i.on("close", () => n?.onDisconnect()), t.run(() => Ml(r, i, a, e.targetHost, e.targetPort)).catch((t) => {
5850
5861
  e.log?.warn("wake-router: upgrade proxy failed", { reason: t instanceof Error ? t.message : String(t) }), i.destroy();
5851
5862
  });
5852
5863
  }), r;
5853
- }, Ol = async (e) => {
5864
+ }, Pl = async (e) => {
5854
5865
  try {
5855
5866
  return (await e.query({
5856
5867
  table: "_voltro_workflow_runs",
@@ -5867,15 +5878,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5867
5878
  } catch {
5868
5879
  return 0;
5869
5880
  }
5870
- }, kl = async (e) => {
5871
- let t = vl(e.supervisor), n = await gl({
5881
+ }, Fl = async (e) => {
5882
+ let t = wl(e.supervisor), n = await Sl({
5872
5883
  store: e.store,
5873
5884
  adapter: t,
5874
5885
  ...e.now === void 0 ? {} : { now: e.now },
5875
5886
  ...e.log === void 0 ? {} : { log: e.log }
5876
5887
  });
5877
5888
  n > 0 && e.idleGate.reset();
5878
- let r = await xl({
5889
+ let r = await Dl({
5879
5890
  store: e.store,
5880
5891
  signals: e.signals,
5881
5892
  ...e.wakeLookaheadMs === void 0 ? {} : { wakeLookaheadMs: e.wakeLookaheadMs },
@@ -5885,12 +5896,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5885
5896
  woke: n,
5886
5897
  stopped: i
5887
5898
  };
5888
- }, Al = async (e) => {
5889
- let t = Sl(e.idleGraceMs ?? 6e4), n = e.tickMs ?? 1e3, r = Cl(), i = 0, a = e.signals === void 0, o = e.signals ?? {
5899
+ }, Il = async (e) => {
5900
+ let t = Ol(e.idleGraceMs ?? 6e4), n = e.tickMs ?? 1e3, r = kl(), i = 0, a = e.signals === void 0, o = e.signals ?? {
5890
5901
  connectedClients: () => r.openConnections(),
5891
5902
  inFlightRequests: () => r.inFlightRequests(),
5892
5903
  activeWorkflowExecutions: () => i
5893
- }, s = Dl({
5904
+ }, s = Nl({
5894
5905
  supervisor: e.supervisor,
5895
5906
  targetHost: e.targetHost,
5896
5907
  targetPort: e.targetPort,
@@ -5909,7 +5920,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5909
5920
  let l = !1, u, d = e.firedRetentionMs ?? 10 * 6e4, f = 0, p = async () => {
5910
5921
  if (!l) {
5911
5922
  try {
5912
- if (a && (i = await Ol(e.store)), await kl({
5923
+ if (a && (i = await Pl(e.store)), await Fl({
5913
5924
  store: e.store,
5914
5925
  supervisor: e.supervisor,
5915
5926
  signals: o,
@@ -5917,7 +5928,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5917
5928
  ...e.wakeLookaheadMs === void 0 ? {} : { wakeLookaheadMs: e.wakeLookaheadMs },
5918
5929
  ...e.log === void 0 ? {} : { log: e.log }
5919
5930
  }), f++ % 60 == 0) {
5920
- let t = await ec(e.store, { firedOlderThan: new Date(Date.now() - d) });
5931
+ let t = await ic(e.store, { firedOlderThan: new Date(Date.now() - d) });
5921
5932
  t > 0 && e.log?.info("orchestrator: pruned fired wakeups", { count: t });
5922
5933
  }
5923
5934
  } catch (t) {
@@ -5932,14 +5943,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5932
5943
  l = !0, u !== void 0 && clearTimeout(u), await new Promise((e) => s.close(() => e()));
5933
5944
  }
5934
5945
  };
5935
- }, jl = (e) => e, Ml = class extends L.TaggedError()("AnalyticsError", {
5946
+ }, Ll = (e) => e, Rl = class extends L.TaggedError()("AnalyticsError", {
5936
5947
  provider: L.String,
5937
5948
  operation: L.String,
5938
5949
  cause: L.String
5939
- }) {}, Nl = class extends L.TaggedError()("AnalyticsCapabilityNotSupported", {
5950
+ }) {}, zl = class extends L.TaggedError()("AnalyticsCapabilityNotSupported", {
5940
5951
  provider: L.String,
5941
5952
  capability: L.String
5942
- }) {}, Pl = class extends Re.Tag("@voltro/AnalyticsSink")() {}, Fl = (e, t) => ({
5953
+ }) {}, Bl = class extends Ve.Tag("@voltro/AnalyticsSink")() {}, Vl = (e, t) => ({
5943
5954
  info: e.info,
5944
5955
  track: (n) => e.track(n.tenantId === void 0 ? {
5945
5956
  ...n,
@@ -5958,20 +5969,20 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5958
5969
  tenantId: t
5959
5970
  } : n),
5960
5971
  ...e.mirror === void 0 ? {} : { mirror: e.mirror }
5961
- }), Il = () => M.gen(function* () {
5962
- let e = yield* Pl, t = yield* M.serviceOption(Se), n = F.match(t, {
5972
+ }), Hl = () => M.gen(function* () {
5973
+ let e = yield* Bl, t = yield* M.serviceOption(Te), n = F.match(t, {
5963
5974
  onNone: () => null,
5964
5975
  onSome: (e) => e.tenantId ?? null
5965
5976
  });
5966
- return n === null ? e : Fl(e, n);
5967
- }), Ll = "noop", Rl = () => {
5968
- let e = (e) => M.fail(new Nl({
5969
- provider: Ll,
5977
+ return n === null ? e : Vl(e, n);
5978
+ }), Ul = "noop", Wl = () => {
5979
+ let e = (e) => M.fail(new zl({
5980
+ provider: Ul,
5970
5981
  capability: e
5971
5982
  }));
5972
5983
  return {
5973
5984
  info: {
5974
- provider: Ll,
5985
+ provider: Ul,
5975
5986
  capabilities: {
5976
5987
  track: !0,
5977
5988
  aggregate: !1,
@@ -5985,8 +5996,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
5985
5996
  timeseries: () => e("timeseries"),
5986
5997
  topN: () => e("topN")
5987
5998
  };
5988
- }, zl = (e) => {
5989
- if (e.length === 0) return Rl();
5999
+ }, Gl = (e) => {
6000
+ if (e.length === 0) return Wl();
5990
6001
  if (e.length === 1) return e[0];
5991
6002
  let t = {
5992
6003
  provider: "compose",
@@ -6003,7 +6014,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6003
6014
  discard: !0
6004
6015
  }), r = (t, n) => {
6005
6016
  let r = e.find((e) => e.info.capabilities[t]);
6006
- return r === void 0 ? M.fail(new Nl({
6017
+ return r === void 0 ? M.fail(new zl({
6007
6018
  provider: "compose",
6008
6019
  capability: t
6009
6020
  })) : n(r);
@@ -6026,11 +6037,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6026
6037
  topN: (e) => r("topN", (t) => t.topN(e)),
6027
6038
  ...a === void 0 ? {} : { mirror: a }
6028
6039
  };
6029
- }, Bl = (e) => {
6040
+ }, Kl = (e) => {
6030
6041
  let t = e.filter((e) => e.dispose !== void 0);
6031
6042
  return {
6032
6043
  kind: "compose",
6033
- build: (t) => zl(e.map((e) => e.build(t))),
6044
+ build: (t) => Gl(e.map((e) => e.build(t))),
6034
6045
  tables: e.flatMap((e) => e.tables ?? []),
6035
6046
  initialize: (t) => M.forEach(e, (e) => e.initialize ? e.initialize(t) : M.void, {
6036
6047
  concurrency: 1,
@@ -6041,15 +6052,15 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6041
6052
  discard: !0
6042
6053
  }) } : {}
6043
6054
  };
6044
- }, Vl = {
6055
+ }, ql = {
6045
6056
  kind: "noop",
6046
- build: () => Rl()
6047
- }, Hl = {
6057
+ build: () => Wl()
6058
+ }, Jl = {
6048
6059
  tables: [],
6049
6060
  detach: () => {}
6050
- }, Ul = (e) => {
6061
+ }, Yl = (e) => {
6051
6062
  let { store: t, sink: n, log: r } = e, i = n.mirror;
6052
- if (i === void 0 || i.tables.length === 0) return Hl;
6063
+ if (i === void 0 || i.tables.length === 0) return Jl;
6053
6064
  let a = e.run ?? ((e) => M.runPromise(e)), o = i.primaryKey ?? "id", s = new Set(i.tables), c = (e) => {
6054
6065
  if (e.op === "delete") {
6055
6066
  let t = e.old;
@@ -6073,11 +6084,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6073
6084
  tables: i.tables,
6074
6085
  detach: l
6075
6086
  };
6076
- }, Wl = (e) => {
6087
+ }, Xl = (e) => {
6077
6088
  let t = typeof e.refresh == "string" ? { interval: e.refresh } : e.refresh, n = e.strategy ?? "replace";
6078
6089
  if (n === "merge" && (e.mergeKey === void 0 || e.mergeKey.length === 0)) throw Error(`defineAggregate("${e.name}"): strategy: 'merge' requires mergeKey — the property on each row to upsert by`);
6079
6090
  if (e.incremental !== void 0) {
6080
- let t = Yc({
6091
+ let t = tl({
6081
6092
  aggregations: [{
6082
6093
  op: e.incremental.op,
6083
6094
  ...e.incremental.column === void 0 ? {} : { column: e.incremental.column }
@@ -6099,47 +6110,47 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6099
6110
  build: e.build,
6100
6111
  ...e.incremental === void 0 ? {} : { incremental: e.incremental }
6101
6112
  };
6102
- }, Gl = (e) => typeof e == "object" && !!e && e._voltroAggregate === !0, Kl = class extends L.TaggedError()("AggregateStale", {
6113
+ }, Zl = (e) => typeof e == "object" && !!e && e._voltroAggregate === !0, Ql = class extends L.TaggedError()("AggregateStale", {
6103
6114
  name: L.String,
6104
6115
  ageMs: L.Number,
6105
6116
  maxAgeMs: L.Number
6106
- }) {}, ql = class extends L.TaggedError()("AggregateNotFound", { name: L.String }) {}, Jl = class extends L.TaggedError()("AggregateError", {
6117
+ }) {}, $l = class extends L.TaggedError()("AggregateNotFound", { name: L.String }) {}, eu = class extends L.TaggedError()("AggregateError", {
6107
6118
  name: L.String,
6108
6119
  operation: L.String,
6109
6120
  cause: L.String
6110
- }) {}, Yl = class extends Re.Tag("@voltro/AggregateRegistry")() {}, Xl = (e) => M.gen(function* () {
6111
- return (yield* Yl).getHandle(e);
6112
- }), Zl = (e, n, r) => {
6121
+ }) {}, tu = class extends Ve.Tag("@voltro/AggregateRegistry")() {}, nu = (e) => M.gen(function* () {
6122
+ return (yield* tu).getHandle(e);
6123
+ }), ru = (e, n, r) => {
6113
6124
  if (e.crossTenant || !n.has(e.table) || r == null) return e;
6114
6125
  let i = u("tenantId", r);
6115
6126
  return {
6116
6127
  ...e,
6117
6128
  predicate: e.predicate ? t(e.predicate, i) : i
6118
6129
  };
6119
- }, Ql = (e, n) => {
6130
+ }, iu = (e, n) => {
6120
6131
  if (e.includeDeleted || !n.has(e.table)) return e;
6121
6132
  let r = S("deletedAt");
6122
6133
  return {
6123
6134
  ...e,
6124
6135
  predicate: e.predicate ? t(e.predicate, r) : r
6125
6136
  };
6126
- }, $l = (e) => M.runPromiseExit(e).then((e) => {
6127
- if (Ue.isSuccess(e)) return e.value;
6128
- let t = j.failureOption(e.cause);
6129
- throw F.isSome(t) ? t.value : j.squash(e.cause);
6130
- }), eu = (e, t) => e.pipe(M.provideService(Se, t)), tu = async (e, t, n) => {
6131
- let r = await M.runPromise(De(t, e.guards, n));
6137
+ }, au = (e) => M.runPromiseExit(e).then((e) => {
6138
+ if (Ge.isSuccess(e)) return e.value;
6139
+ let t = A.failureOption(e.cause);
6140
+ throw F.isSome(t) ? t.value : A.squash(e.cause);
6141
+ }), ou = (e, t) => e.pipe(M.provideService(Te, t)), su = async (e, t, n) => {
6142
+ let r = await M.runPromise(Ae(t, e.guards, n));
6132
6143
  if (r) throw r;
6133
- }, nu = async (e) => {
6134
- if (jn() === void 0) return e;
6135
- let t = await $l(Nn(e.subject, (e) => {
6144
+ }, cu = async (e) => {
6145
+ if (Nn() === void 0) return e;
6146
+ let t = await au(Fn(e.subject, (e) => {
6136
6147
  console.error("[voltro] row filter failed to load", e);
6137
6148
  }));
6138
6149
  return {
6139
6150
  ...e,
6140
6151
  rowFilter: t
6141
6152
  };
6142
- }, ru = async (e) => {
6153
+ }, lu = async (e) => {
6143
6154
  let t = `${e.kind}.${e.name}`, n = Date.now(), r = "ok";
6144
6155
  try {
6145
6156
  if (e.interceptor) {
@@ -6154,8 +6165,8 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6154
6165
  traceId: e.requestContext.traceId,
6155
6166
  ...e.requestContext.spanId === void 0 ? {} : { spanId: e.requestContext.spanId }
6156
6167
  }), r = await M.runPromiseExit(n);
6157
- if (Ue.isSuccess(r)) return r.value;
6158
- throw j.squash(r.cause);
6168
+ if (Ge.isSuccess(r)) return r.value;
6169
+ throw A.squash(r.cause);
6159
6170
  }
6160
6171
  return await e.runExecutor();
6161
6172
  } catch (e) {
@@ -6168,28 +6179,28 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6168
6179
  status: r
6169
6180
  });
6170
6181
  }
6171
- }, iu = /* @__PURE__ */ new Set([1213, 1205]), au = /* @__PURE__ */ new Set([
6182
+ }, uu = /* @__PURE__ */ new Set([1213, 1205]), du = /* @__PURE__ */ new Set([
6172
6183
  "ER_LOCK_DEADLOCK",
6173
6184
  "ER_LOCK_WAIT_TIMEOUT",
6174
6185
  "40001",
6175
6186
  "40P01"
6176
- ]), ou = (e) => {
6187
+ ]), fu = (e) => {
6177
6188
  let t = e;
6178
6189
  for (let e = 0; e < 6 && typeof t == "object" && t; e++) {
6179
6190
  let e = t;
6180
- if (typeof e.errno == "number" && iu.has(e.errno) || typeof e.code == "string" && au.has(e.code) || typeof e.sqlState == "string" && au.has(e.sqlState)) return !0;
6191
+ if (typeof e.errno == "number" && uu.has(e.errno) || typeof e.code == "string" && du.has(e.code) || typeof e.sqlState == "string" && du.has(e.sqlState)) return !0;
6181
6192
  t = e.cause;
6182
6193
  }
6183
6194
  return !1;
6184
- }, su = 3, cu = (e) => new Promise((t) => setTimeout(t, e)), lu = async (e, t) => {
6185
- let n = t?.delay ?? ((e) => cu(e * 20 + Math.floor(Math.random() * 30)));
6195
+ }, pu = 3, mu = (e) => new Promise((t) => setTimeout(t, e)), hu = async (e, t) => {
6196
+ let n = t?.delay ?? ((e) => mu(e * 20 + Math.floor(Math.random() * 30)));
6186
6197
  for (let t = 1;; t++) try {
6187
6198
  return await e();
6188
6199
  } catch (e) {
6189
- if (t >= su || !ou(e)) throw e;
6200
+ if (t >= pu || !fu(e)) throw e;
6190
6201
  await n(t);
6191
6202
  }
6192
- }, uu = (e) => (t, n, r) => ru({
6203
+ }, gu = (e) => (t, n, r) => lu({
6193
6204
  name: t.descriptor.name,
6194
6205
  kind: "mutation",
6195
6206
  input: n,
@@ -6197,11 +6208,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6197
6208
  ...e.interceptor ? { interceptor: e.interceptor } : {},
6198
6209
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
6199
6210
  runExecutor: async () => {
6200
- await tu(t.descriptor, r.subject, n);
6201
- let i = await nu(r), a = [], o = await lu(async () => (a.length = 0, e.store.transactional(async (o) => {
6211
+ await su(t.descriptor, r.subject, n);
6212
+ let i = await cu(r), a = [], o = await hu(async () => (a.length = 0, e.store.transactional(async (o) => {
6202
6213
  let s = e.undoCapture?.(o), c = s ? s.tx : o, l = e.buildContext(i, c, { afterCommit: (e) => {
6203
6214
  a.push(e);
6204
- } }), u = t.executor(n, l), d = M.isEffect(u) ? await e.runEffect(eu(u, r.subject), l.store) : await u;
6215
+ } }), u = t.executor(n, l), d = M.isEffect(u) ? await e.runEffect(ou(u, r.subject), l.store) : await u;
6205
6216
  return s && await s.persist(l.store, {
6206
6217
  tag: t.descriptor.name,
6207
6218
  subject: r.subject,
@@ -6211,33 +6222,33 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6211
6222
  for (let e of a) await e();
6212
6223
  return o;
6213
6224
  }
6214
- }), du = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, fu = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, pu = (e) => {
6225
+ }), _u = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, vu = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, yu = (e) => {
6215
6226
  let t = e.descriptor.source;
6216
6227
  return t == null ? [] : typeof t == "string" ? [t] : [...t];
6217
- }, mu = (e, t) => (n) => () => {
6228
+ }, bu = (e, t) => (n) => () => {
6218
6229
  let r = e.descriptor.guards;
6219
- return !r || r.length === 0 ? Promise.resolve(null) : M.runPromise(De(n, r, t));
6220
- }, hu = (e) => (t, n) => (r) => {
6221
- let i = e.buildContext(r), a = mu(t, n)(r.subject), o = async () => {
6230
+ return !r || r.length === 0 ? Promise.resolve(null) : M.runPromise(Ae(n, r, t));
6231
+ }, xu = (e) => (t, n) => (r) => {
6232
+ let i = e.buildContext(r), a = bu(t, n)(r.subject), o = async () => {
6222
6233
  let i = await a();
6223
6234
  if (i) throw i;
6224
- let o = e.buildContext(await nu(r)), s = t.executor(n, o);
6225
- return M.isEffect(s) ? M.runPromise(e.provideEffect(eu(s, r.subject), o.store)) : du(await Promise.resolve(s));
6235
+ let o = e.buildContext(await cu(r)), s = t.executor(n, o);
6236
+ return M.isEffect(s) ? M.runPromise(e.provideEffect(ou(s, r.subject), o.store)) : _u(await Promise.resolve(s));
6226
6237
  }, s = (n) => {
6227
- let i = du(n);
6228
- return fu(i) ? e.finalize(i, r) : {
6238
+ let i = _u(n);
6239
+ return vu(i) ? e.finalize(i, r) : {
6229
6240
  __voltroComputed: !0,
6230
6241
  value: i,
6231
- dependentTables: pu(t),
6242
+ dependentTables: yu(t),
6232
6243
  tenantId: r.subject?.tenantId ?? null,
6233
6244
  recompute: o
6234
6245
  };
6235
6246
  }, c = () => {
6236
6247
  let a = t.executor(n, i);
6237
- return M.isEffect(a) ? e.provideEffect(eu(a, r.subject), i.store).pipe(M.map(s)) : a instanceof Promise ? M.promise(() => a).pipe(M.map(s)) : s(a);
6248
+ return M.isEffect(a) ? e.provideEffect(ou(a, r.subject), i.store).pipe(M.map(s)) : a instanceof Promise ? M.promise(() => a).pipe(M.map(s)) : s(a);
6238
6249
  }, l = () => {
6239
6250
  let e = t.descriptor.guards;
6240
- return !e || e.length === 0 ? c() : De(r.subject, e, n).pipe(M.flatMap((e) => {
6251
+ return !e || e.length === 0 ? c() : Ae(r.subject, e, n).pipe(M.flatMap((e) => {
6241
6252
  if (e) return M.fail(e);
6242
6253
  let t = c();
6243
6254
  return M.isEffect(t) ? t : M.succeed(t);
@@ -6256,7 +6267,7 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6256
6267
  traceId: r.traceId,
6257
6268
  ...r.spanId === void 0 ? {} : { spanId: r.spanId }
6258
6269
  });
6259
- }, gu = (e) => (t, n, r) => ru({
6270
+ }, Su = (e) => (t, n, r) => lu({
6260
6271
  name: t.descriptor.name,
6261
6272
  kind: "action",
6262
6273
  input: n,
@@ -6264,16 +6275,16 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6264
6275
  ...e.interceptor ? { interceptor: e.interceptor } : {},
6265
6276
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
6266
6277
  runExecutor: async () => {
6267
- await tu(t.descriptor, r.subject, n);
6268
- let i = e.buildContext(await nu(r)), a = t.executor(n, i);
6269
- return M.isEffect(a) ? e.runEffect(eu(a, r.subject), i.store) : a;
6278
+ await su(t.descriptor, r.subject, n);
6279
+ let i = e.buildContext(await cu(r)), a = t.executor(n, i);
6280
+ return M.isEffect(a) ? e.runEffect(ou(a, r.subject), i.store) : a;
6270
6281
  }
6271
- }), _u = (e) => e instanceof Date ? e.toISOString() : typeof e == "string" && e.length > 0 ? e : null, vu = (e) => typeof e == "string" && e.length > 0 ? e : null, yu = [
6282
+ }), Cu = (e) => e instanceof Date ? e.toISOString() : typeof e == "string" && e.length > 0 ? e : null, wu = (e) => typeof e == "string" && e.length > 0 ? e : null, Tu = [
6272
6283
  "updatedAt",
6273
6284
  "createdAt",
6274
6285
  "updatedBy",
6275
6286
  "createdBy"
6276
- ], bu = (e) => yu.some((t) => t in e), xu = (e, t, n) => {
6287
+ ], Eu = (e) => Tu.some((t) => t in e), Du = (e, t, n) => {
6277
6288
  let r = {
6278
6289
  table: t.table,
6279
6290
  id: t.id,
@@ -6288,14 +6299,14 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6288
6299
  found: !1
6289
6300
  };
6290
6301
  let i = t.column === void 0 ? void 0 : e[t.column];
6291
- if (!bu(e)) return {
6302
+ if (!Eu(e)) return {
6292
6303
  ...r,
6293
6304
  value: i,
6294
6305
  lastWrite: null,
6295
6306
  attribution: "none",
6296
6307
  found: !0
6297
6308
  };
6298
- let a = vu(e.updatedBy) ?? vu(e.createdBy), o = _u(e.updatedAt) ?? _u(e.createdAt);
6309
+ let a = wu(e.updatedBy) ?? wu(e.createdBy), o = Cu(e.updatedAt) ?? Cu(e.createdAt);
6299
6310
  return {
6300
6311
  ...r,
6301
6312
  value: i,
@@ -6307,12 +6318,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6307
6318
  attribution: "audit",
6308
6319
  found: !0
6309
6320
  };
6310
- }, Su = (e, t) => {
6321
+ }, Ou = (e, t) => {
6311
6322
  let n = e.map((e) => {
6312
6323
  let n = e.newValue ?? e.value, r = t.column !== void 0 && n && typeof n == "object" ? n[t.column] : e.newValue ?? e.value;
6313
6324
  return {
6314
- actor: { id: vu(e.actor) ?? vu(e.changedBy) },
6315
- at: _u(e.at) ?? _u(e.changedAt),
6325
+ actor: { id: wu(e.actor) ?? wu(e.changedBy) },
6326
+ at: Cu(e.at) ?? Cu(e.changedAt),
6316
6327
  ...e.traceId === void 0 ? {} : { traceId: e.traceId },
6317
6328
  value: r
6318
6329
  };
@@ -6327,12 +6338,12 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6327
6338
  history: n,
6328
6339
  found: n.length > 0
6329
6340
  };
6330
- }, Cu = (e) => {
6341
+ }, ku = (e) => {
6331
6342
  let t = e.new?.id;
6332
6343
  if (typeof t == "string") return t;
6333
6344
  let n = e.old?.id;
6334
6345
  return typeof n == "string" ? n : void 0;
6335
- }, wu = (e) => {
6346
+ }, Au = (e) => {
6336
6347
  let t = {};
6337
6348
  if (e.op === "insert") for (let [n, r] of Object.entries(e.new ?? {})) t[n] = {
6338
6349
  from: void 0,
@@ -6352,11 +6363,11 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6352
6363
  return {
6353
6364
  table: e.table,
6354
6365
  op: e.op,
6355
- id: Cu(e),
6366
+ id: ku(e),
6356
6367
  fields: t
6357
6368
  };
6358
- }, Tu = (e) => {
6359
- let t = e.map(wu);
6369
+ }, ju = (e) => {
6370
+ let t = e.map(Au);
6360
6371
  return {
6361
6372
  rows: t,
6362
6373
  summary: {
@@ -6365,21 +6376,21 @@ var K = /* @__PURE__ */ new Map(), Zn = (e, t) => {
6365
6376
  deletes: t.filter((e) => e.op === "delete").length
6366
6377
  }
6367
6378
  };
6368
- }, Eu = class extends Error {
6379
+ }, Mu = class extends Error {
6369
6380
  constructor() {
6370
6381
  super("voltro:preview-rollback"), this.name = "PreviewRollback";
6371
6382
  }
6372
- }, Du = async (e, t) => {
6383
+ }, Nu = async (e, t) => {
6373
6384
  let n, r = !1;
6374
6385
  try {
6375
6386
  await e.transactional(async (e) => {
6376
- throw n = await t(e), r = !0, new Eu();
6387
+ throw n = await t(e), r = !0, new Mu();
6377
6388
  });
6378
6389
  } catch (e) {
6379
- if (!(e instanceof Eu)) throw e;
6390
+ if (!(e instanceof Mu)) throw e;
6380
6391
  }
6381
6392
  if (!r) throw Error("preview: handler did not complete");
6382
6393
  return n;
6383
- }, Ou = "framework-runtime";
6394
+ }, Pu = "framework-runtime";
6384
6395
  //#endregion
6385
- export { Oi as API_KEYS_TABLE, Fo as AccessDenied, Jl as AggregateError, rl as AggregateMaintainer, ql as AggregateNotFound, Yl as AggregateRegistry, Kl as AggregateStale, Nl as AnalyticsCapabilityNotSupported, Ml as AnalyticsError, Pl as AnalyticsSink, X as CONNECTIONS_TABLE, Na as CONNECTION_GRANTS_TABLE, Es as CircuitBreaker, ws as CircuitOpen, no as ConnectionNotConnected, Lr as DEFAULT_MAX_RPC_BODY_BYTES, eo as DEFAULT_REFRESH_SKEW_MS, On as DEFAULT_ROW_FILTER_RETRY, gs as DeleteBuilder, zn as Dispatcher, Wi as EffectStore, ho as GRANT_TTL_MS, Ut as InMemoryDataStore, jt as IndexedMatcher, wt as LinearScanMatcher, Ge as MetricBoundaries, Ll as NOOP_ANALYTICS_PROVIDER, Mn as NO_ROW_FILTER, ls as NoRowFound, va as OUTBOX_ATTEMPTS_TABLE, Ta as OUTBOX_ATTEMPT_LOG_CAP, Y as OUTBOX_TABLE, us as OptimisticLockError, Po as REBAC_ADMIN_SCOPE, to as REFRESH_LEASE_MS, Ou as RUNTIME_NAME, pl as ReactionRateLimiter, vr as ReplicatedDataStore, Dn as RowFilterUnavailable, ms as SelectBuilder, Hi as StoreOperationFailed, Pt as SubscriptionRegistry, Ui as TableValidationFailed, Vi as TenantScopeViolation, Uc as TimelineRecorder, Sc as UndoBoundaryError, wc as UndoStack, hs as UpdateBuilder, ns as VOLTRO_AUDIT_MIXIN_ID, rs as VOLTRO_SOFT_DELETE_MIXIN_ID, is as VOLTRO_TENANT_MIXIN_ID, $n as _connectionStreamCount, er as _resetConnectionSubjectsForTest, Fa as _voltroConnectionGrantsTable, Ma as _voltroConnectionsTable, il as _voltroRebacTuplesTable, dc as _voltroScheduleClaimsTable, uc as _voltroScheduleRunsTable, fc as _voltroTracesTable, pc as _voltroUndoLogTable, hl as _voltroWakeupsTable, pa as _voltroWorkflowEventDeliveriesTable, fa as _voltroWorkflowEventsTable, Bi as apiKeyManagementRoutes, bs as applyDefined, tl as applyDelta, Ec as applyInverse, Dc as applyInverses, In as applyRowFilter, Ln as applyRowFilterToDescriptor, Ql as applySoftDeleteScope, Zl as applyTenantScope, Fc as applyUndoInvocation, Go as assertCan, za as assertConnectionCipherConfigured, Ul as attachAnalyticsMirror, zr as awaitServerListening, wa as backoffMs, yo as beginOAuthConnect, Kn as bindConnectionSubject, Ir as bindMutation, Or as bindStream, Dr as bindSubscription, Tr as bindSubscriptionUntyped, $c as buildIvmState, Tu as buildPreview, sl as buildRebacInterceptor, ll as buildRebacReadFilter, fr as buildSubjectKey, Wr as buildTracingLayer, ai as cachedBackend, Wo as can, Ws as cancelWakeup, Yc as classifyShape, oo as clearConnectionRefreshFlights, Bo as clearResourcePolicies, i as clearRetentions, ks as clearSystemStoreHandle, zs as compileCron, bo as completeOAuthConnect, Bl as composeAnalytics, zl as composeAnalyticsSinks, go as connectionCallbackPath, Ra as connectionLabel, tr as connectionSubjectsSnapshot, Ol as countRunningWorkflows, xn as counter, _r as currentRoutingContext, cr as currentTraceContext, Li as dataStoreApiKeyStore, bi as dataStoreIdempotencyStore, Ti as dataStoreKvStore, hi as decryptField, Wl as defineAggregate, La as defineConnection, sa as defineEventTrigger, xa as defineOutboxHandler, ul as defineReaction, Lo as defineResourcePolicy, Rs as defineSchedule, jl as defineSubscriber, ci as deriveKey, wu as diffChange, ka as drainOutbox, Zs as dueWakeups, Uo as effectiveRelations, cs as emptySchemaRegistry, q as encryptField, $r as envSecretsBackend, Qa as exchangeAuthorizationCode, ar as externalSpanFromTraceparent, Gt as extractDbCause, Nt as fingerprintFor, Ja as forgetCredential, rr as formatTraceparent, Tc as forwardChangeFromCdc, Ri as frameworkApiKeyStrategy, Sn as gauge, Ai as generateApiKeyToken, wo as getConnectionResolver, qn as getConnectionSubject, pi as getFieldCipher, Ro as getResourcePolicy, jn as getRowFilter, As as getSystemStoreHandle, Gc as getTimelineRecorder, Zo as getTupleSource, $ as groupKeyOf, Cn as histogramMetric, Su as historyProvenance, oi as httpSecretsBackend, xt as inspectWorkflow, Qo as installPolicyGuardResolver, Qn as interruptConnectionStreams, bc as invertChange, Gl as isAggregateDefinition, Kt as isForeignKeyViolation, xl as isIdleNow, Nr as isInfraError, Cc as isSafeToApply, Is as isScheduleDefinition, ca as isWorkflowEventTriggerDefinition, Qc as ivmValue, xu as lastWriteProvenance, Ya as listConnectionStates, zo as listResourcePolicies, ee as listRetentions, al as loadResourceTuples, cl as loadSubjectTuples, Ms as localityAwareSelector, gu as makeActionRunner, rc as makeAdvisoryLockCoordinator, li as makeAesCipher, Ni as makeApiKeyService, qt as makeAppAccess, Ei as makeAsyncKv, Qr as makeBufferingSpanProcessor, Ba as makeConnectionRegistry, Eo as makeConnectionResolver, Do as makeConnectionsFacade, lc as makeCoordinatedScheduler, es as makeDataLoader, No as makeDisconnectConnectionExecutor, qi as makeEffectStoreLayer, ma as makeEventsFacade, ui as makeFieldCipher, _s as makeFluentStore, Sl as makeIdleGate, ra as makeLazyWorkflowFacade, Ao as makeListConnectionsExecutor, uu as makeMutationRunner, Ca as makeOutboxFacade, ta as makePostCommitWorkflowFacade, vl as makeProcessAdapter, hu as makeQueryDescriptorProducer, mu as makeQueryReauthorizer, Cl as makeRouterActivity, as as makeSchemaRegistry, jo as makeStartConnectionExecutor, Mo as makeSubmitTokenExecutor, vc as makeUndoCapture, wl as makeWakeGate, Dl as makeWakeProxyServer, ea as makeWorkflowFacade, na as makeWorkflowFacadeWithCallerContext, ia as makeWorkflowHandlers, aa as makeWorkflowLayers, Xi as makeWorkflowRunHandle, Gs as markWakeupFired, el as materializeIvm, Pi as memoryApiKeyStore, Ps as memoryReplicationAdapter, dr as memoryRywPositionStore, Bs as nextFiring, Qs as nextWakeup, bl as nodeProcessSupervisor, Rl as noopAnalytics, Vl as noopAnalyticsSpec, Di as noopKv, Yn as onBindConnectionSubject, ba as outboxAttemptsTable, _a as outboxTable, ir as parseTraceparent, lr as powerOfTwoSelector, Du as previewInRollback, Wa as projectConnectionState, ec as pruneWakeups, Vo as rebacPolicyGraph, _n as recordSample, U as recordSubscriptionActive, yn as recordSubscriptionDelivery, qc as recordTimelineEvent, Bc as redactRow, pr as redisRywPositionStore, Ic as redoUndoInvocation, $a as refreshAccessToken, Zn as registerConnectionStream, ie as registerRetention, Us as registerWakeup, Js as releaseWakeup, ur as replicaHealth, ni as resetSecretsBackend, lo as resolveConnection, To as resolveConnectionForSubject, Ns as resolveCurrentRegion, Jt as resolveDependentTables, vo as resolveRedirectUri, nl as resolveRescan, Nn as resolveRowFilterScope, Pn as resolveRowFilterScopeFor, ri as resolveSecret, ii as resolveSecretSync, si as resolveSecretsBackend, Lc as resolveTimelineMode, oe as retentionTtlMsFromEnv, Hc as reverseEventOverRows, qo as revokedIds, js as runAsSystem, kl as runOrchestratorTick, $l as runProvidedEffect, ml as runReaction, Al as runSingleNodeOrchestrator, _l as runWakeLoop, lu as runWithDeadlockRetry, gr as runWithRoutingContext, sr as runWithTraceContext, _o as sanitizeRedirectTo, cc as scheduleCoordinated, Co as setConnectionResolver, fi as setFieldCipher, An as setRowFilter, ti as setSecretsBackend, Os as setSystemStoreHandle, Kc as setTimelineRecorderForTest, Xo as setTupleSource, ki as sha256Hex, tc as singleCoordinator, Tn as snapshotMetrics, En as snapshotMetricsSync, Rr as startRpcServer, ac as startScheduler, Ka as storeCredential, xo as sweepExpiredGrants, ce as sweepRetention, xc as synthesizeInverse, ts as tracingHttpClientLayer, oa as triggerWorkflow, qs as tryClaimWakeup, Jn as unbindConnectionSubject, mc as undoCaptureEnabled, Nc as undoLogExecutor, Xl as useAggregate, Il as useAnalytics, Ko as visibleRows, gl as wakeDueOnce, nu as withRowFilter, Ji as workflowToRpc, _c as wrapCaptureStore, Cs as wrapStoreWithMixinBehaviour };
6396
+ export { ji as API_KEYS_TABLE, zo as AccessDenied, eu as AggregateError, ll as AggregateMaintainer, $l as AggregateNotFound, tu as AggregateRegistry, Ql as AggregateStale, zl as AnalyticsCapabilityNotSupported, Rl as AnalyticsError, Bl as AnalyticsSink, X as CONNECTIONS_TABLE, La as CONNECTION_GRANTS_TABLE, As as CircuitBreaker, Os as CircuitOpen, oo as ConnectionNotConnected, Br as DEFAULT_MAX_RPC_BODY_BYTES, io as DEFAULT_REFRESH_SKEW_MS, An as DEFAULT_ROW_FILTER_RETRY, oc as DORMANCY_WAKEUP_TENANT, bs as DeleteBuilder, Hn as Dispatcher, Ji as EffectStore, yo as GRANT_TTL_MS, Gt as InMemoryDataStore, Nt as IndexedMatcher, Et as LinearScanMatcher, qe as MetricBoundaries, Ul as NOOP_ANALYTICS_PROVIDER, Pn as NO_ROW_FILTER, ps as NoRowFound, Sa as OUTBOX_ATTEMPTS_TABLE, ka as OUTBOX_ATTEMPT_LOG_CAP, Y as OUTBOX_TABLE, ms as OptimisticLockError, Ro as REBAC_ADMIN_SCOPE, ao as REFRESH_LEASE_MS, Pu as RUNTIME_NAME, yl as ReactionRateLimiter, xr as ReplicatedDataStore, kn as RowFilterUnavailable, ac as SCHEDULE_SUBJECT, Wi as SYSTEM_SUBJECT, vs as SelectBuilder, Ki as StoreOperationFailed, It as SubscriptionRegistry, qi as TableValidationFailed, Gi as TenantScopeViolation, Yc as TimelineRecorder, Oc as UndoBoundaryError, Ac as UndoStack, ys as UpdateBuilder, os as VOLTRO_AUDIT_MIXIN_ID, ss as VOLTRO_SOFT_DELETE_MIXIN_ID, cs as VOLTRO_TENANT_MIXIN_ID, nr as _connectionStreamCount, rr as _resetConnectionSubjectsForTest, za as _voltroConnectionGrantsTable, Ia as _voltroConnectionsTable, ul as _voltroRebacTuplesTable, _c as _voltroScheduleClaimsTable, gc as _voltroScheduleRunsTable, vc as _voltroTracesTable, yc as _voltroUndoLogTable, xl as _voltroWakeupsTable, _a as _voltroWorkflowEventDeliveriesTable, ga as _voltroWorkflowEventsTable, Ui as apiKeyManagementRoutes, ws as applyDefined, sl as applyDelta, Mc as applyInverse, Nc as applyInverses, Rn as applyRowFilter, zn as applyRowFilterToDescriptor, iu as applySoftDeleteScope, ru as applyTenantScope, Vc as applyUndoInvocation, Yo as assertCan, Ua as assertConnectionCipherConfigured, Yl as attachAnalyticsMirror, Hr as awaitServerListening, Oa as backoffMs, Co as beginOAuthConnect, Yn as bindConnectionSubject, zr as bindMutation, jr as bindStream, Ar as bindSubscription, Or as bindSubscriptionUntyped, al as buildIvmState, ju as buildPreview, pl as buildRebacInterceptor, hl as buildRebacReadFilter, hr as buildSubjectKey, qr as buildTracingLayer, ci as cachedBackend, Jo as can, Js as cancelWakeup, tl as classifyShape, uo as clearConnectionRefreshFlights, Wo as clearResourcePolicies, i as clearRetentions, Ns as clearSystemStoreHandle, Us as compileCron, wo as completeOAuthConnect, Kl as composeAnalytics, Gl as composeAnalyticsSinks, bo as connectionCallbackPath, Ha as connectionLabel, ir as connectionSubjectsSnapshot, Pl as countRunningWorkflows, Cn as counter, br as currentRoutingContext, dr as currentTraceContext, Bi as dataStoreApiKeyStore, Ci as dataStoreIdempotencyStore, Oi as dataStoreKvStore, vi as decryptField, Xl as defineAggregate, Va as defineConnection, da as defineEventTrigger, Ta as defineOutboxHandler, gl as defineReaction, Vo as defineResourcePolicy, Hs as defineSchedule, Ll as defineSubscriber, Bn as deliveredRowCount, di as deriveKey, Au as diffChange, Na as drainOutbox, tc as dueWakeups, qo as effectiveRelations, fs as emptySchemaRegistry, q as encryptField, ni as envSecretsBackend, no as exchangeAuthorizationCode, cr as externalSpanFromTraceparent, qt as extractDbCause, Ft as fingerprintFor, Qa as forgetCredential, or as formatTraceparent, jc as forwardChangeFromCdc, Vi as frameworkApiKeyStrategy, wn as gauge, Ni as generateApiKeyToken, Oo as getConnectionResolver, Xn as getConnectionSubject, gi as getFieldCipher, Ho as getResourcePolicy, Nn as getRowFilter, Ps as getSystemStoreHandle, Zc as getTimelineRecorder, ts as getTupleSource, $ as groupKeyOf, Tn as histogramMetric, Ou as historyProvenance, li as httpSecretsBackend, Ct as inspectWorkflow, ns as installPolicyGuardResolver, tr as interruptConnectionStreams, Ec as invertChange, Zl as isAggregateDefinition, Jt as isForeignKeyViolation, Dl as isIdleNow, Ir as isInfraError, kc as isSafeToApply, Bs as isScheduleDefinition, fa as isWorkflowEventTriggerDefinition, il as ivmValue, Du as lastWriteProvenance, $a as listConnectionStates, Uo as listResourcePolicies, ee as listRetentions, dl as loadResourceTuples, ml as loadSubjectTuples, Is as localityAwareSelector, Su as makeActionRunner, lc as makeAdvisoryLockCoordinator, fi as makeAesCipher, Ii as makeApiKeyService, Yt as makeAppAccess, ki as makeAsyncKv, ti as makeBufferingSpanProcessor, Wa as makeConnectionRegistry, Ao as makeConnectionResolver, jo as makeConnectionsFacade, hc as makeCoordinatedScheduler, is as makeDataLoader, Lo as makeDisconnectConnectionExecutor, Zi as makeEffectStoreLayer, va as makeEventsFacade, pi as makeFieldCipher, xs as makeFluentStore, Ol as makeIdleGate, sa as makeLazyWorkflowFacade, Po as makeListConnectionsExecutor, gu as makeMutationRunner, Da as makeOutboxFacade, aa as makePostCommitWorkflowFacade, wl as makeProcessAdapter, xu as makeQueryDescriptorProducer, bu as makeQueryReauthorizer, kl as makeRouterActivity, ls as makeSchemaRegistry, Fo as makeStartConnectionExecutor, Io as makeSubmitTokenExecutor, wc as makeUndoCapture, Al as makeWakeGate, Nl as makeWakeProxyServer, ia as makeWorkflowFacade, oa as makeWorkflowFacadeWithCallerContext, ca as makeWorkflowHandlers, la as makeWorkflowLayers, ea as makeWorkflowRunHandle, Ys as markWakeupFired, ol as materializeIvm, Li as memoryApiKeyStore, Rs as memoryReplicationAdapter, mr as memoryRywPositionStore, Ws as nextFiring, nc as nextWakeup, El as nodeProcessSupervisor, Wl as noopAnalytics, ql as noopAnalyticsSpec, Ai as noopKv, Qn as onBindConnectionSubject, wa as outboxAttemptsTable, xa as outboxTable, sr as parseTraceparent, fr as powerOfTwoSelector, Nu as previewInRollback, Ja as projectConnectionState, ic as pruneWakeups, Go as rebacPolicyGraph, yn as recordSample, U as recordSubscriptionActive, xn as recordSubscriptionDelivery, $c as recordTimelineEvent, Kc as redactRow, gr as redisRywPositionStore, Hc as redoUndoInvocation, ro as refreshAccessToken, er as registerConnectionStream, oe as registerRetention, qs as registerWakeup, Qs as releaseWakeup, pr as replicaHealth, ai as resetSecretsBackend, mo as resolveConnection, ko as resolveConnectionForSubject, Ls as resolveCurrentRegion, Xt as resolveDependentTables, So as resolveRedirectUri, cl as resolveRescan, Fn as resolveRowFilterScope, In as resolveRowFilterScopeFor, oi as resolveSecret, si as resolveSecretSync, ui as resolveSecretsBackend, Uc as resolveTimelineMode, ce as retentionTtlMsFromEnv, Jc as reverseEventOverRows, Zo as revokedIds, Fs as runAsSystem, Fl as runOrchestratorTick, au as runProvidedEffect, bl as runReaction, Il as runSingleNodeOrchestrator, Cl as runWakeLoop, hu as runWithDeadlockRetry, yr as runWithRoutingContext, ur as runWithTraceContext, xo as sanitizeRedirectTo, mc as scheduleCoordinated, Do as setConnectionResolver, hi as setFieldCipher, Mn as setRowFilter, ii as setSecretsBackend, Ms as setSystemStoreHandle, Qc as setTimelineRecorderForTest, es as setTupleSource, Mi as sha256Hex, sc as singleCoordinator, Dn as snapshotMetrics, On as snapshotMetricsSync, Vr as startRpcServer, dc as startScheduler, Xa as storeCredential, To as sweepExpiredGrants, de as sweepRetention, Dc as synthesizeInverse, as as tracingHttpClientLayer, ua as triggerWorkflow, Zs as tryClaimWakeup, Zn as unbindConnectionSubject, bc as undoCaptureEnabled, zc as undoLogExecutor, nu as useAggregate, Hl as useAnalytics, Xo as visibleRows, Sl as wakeDueOnce, cu as withRowFilter, Qi as workflowToRpc, Cc as wrapCaptureStore, Ds as wrapStoreWithMixinBehaviour };