@voltro/runtime 0.11.2 → 0.11.3

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 te, lte as ne, missingConflictColumns as w, missingRequiredColumns as re, neq as T, or as ie, queryFor as ae, raiseChangeListenerCeiling as oe, registerRetention as se, requireTable as ce, retentionTtlMsFromEnv as le, serializeArraysForWrite as ue, stampGeneratedId as de, sweepRetention as fe, table as E, text as D, timestamp as O, walkLeaves as pe } from "@voltro/database";
2
- import { createCipheriv as me, createDecipheriv as he, createHash as ge, randomBytes as _e, randomUUID as ve, scryptSync as ye } from "node:crypto";
3
- import { EventEmitter as be } from "node:events";
4
- import { ADMIN_SCOPE as xe, ConnectionHandshakeFailed as k, ConnectionInfo as Se, ConnectionKindMismatch as Ce, ConnectionNotDeclared as we, ConnectionSubjectRequired as Te, SubjectService as Ee, UndoConflict as De, UndoForbidden as Oe, UndoNotFound as ke, WorkflowRunHandleSchema as Ae, checkGuardsEffect as je, diffRows as Me, effectiveScopes as Ne, hasEffectiveScope as Pe, isIdKeyed as Fe, publishServerError as Ie, requireScope as Le, setPolicyGuardResolver as Re, systemSubject as ze, tsMs as Be } from "@voltro/protocol";
5
- import { createLogger as A } from "@voltro/logger";
6
- import { Cause as j, Clock as Ve, Context as He, Cron as M, Deferred as Ue, Duration as We, Effect as N, Either as Ge, Exit as Ke, Layer as P, ManagedRuntime as qe, Metric as F, MetricBoundaries as Je, MetricState as Ye, Option as I, Ref as L, Schedule as Xe, Schema as R, Stream as z, Tracer as Ze } from "effect";
7
- import * as Qe from "node:http";
8
- import { createServer as $e } from "node:http";
9
- import { HttpClient as et, HttpClientRequest as tt, HttpLayerRouter as B, HttpServer as nt, HttpServerRequest as rt, HttpServerResponse as V } from "@effect/platform";
10
- import { NodeContext as it, NodeHttpServer as at, NodeRuntime as ot } from "@effect/platform-node";
11
- import { Rpc as st, RpcSerialization as ct, RpcServer as lt } from "@effect/rpc";
12
- import { defineRestRoute as ut, dispatchSharedPath as dt, requireScope as ft } from "@voltro/protocol/rest";
13
- import { AsyncLocalStorage as pt } from "node:async_hooks";
14
- import { SpanKind as mt, SpanStatusCode as ht } from "@opentelemetry/api";
15
- import { Kv as gt, KvError as _t, KvStore as vt, layerConnections as yt, layerMemory as bt, layerRedis as xt } from "@voltro/kv";
16
- import { apiKeyStrategy as St } from "@voltro/protocol/apikey";
17
- import { getCurrentWorkflowExecutionId as Ct, inspectWorkflow as wt } from "@voltro/workflow";
18
- import { ArrayFormatter as Tt } from "effect/ParseResult";
19
- import { spawn as Et } 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 w, missingConflictColumns as T, missingRequiredColumns as ne, neq as re, or as E, 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 D, text as O, timestamp as k, 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 A, 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 j } from "@voltro/logger";
6
+ import { Cause as M, Clock as Be, Context as Ve, Cron as He, Deferred as Ue, Duration as We, Effect as N, Either as Ge, Exit as Ke, Layer as P, ManagedRuntime as qe, Metric as F, MetricBoundaries as Je, MetricState as Ye, Option as Xe, Ref as I, Schedule as Ze, Schema as L, Stream as R, Tracer as Qe } from "effect";
7
+ import * as $e from "node:http";
8
+ import { createServer as et } from "node:http";
9
+ import { HttpClient as tt, HttpClientRequest as nt, HttpLayerRouter as z, HttpServer as rt, HttpServerRequest as it, HttpServerResponse as B } from "@effect/platform";
10
+ import { NodeContext as at, NodeHttpServer as ot, NodeRuntime as st } from "@effect/platform-node";
11
+ import { Rpc as ct, RpcSerialization as lt, RpcServer as ut } from "@effect/rpc";
12
+ import { defineRestRoute as dt, dispatchSharedPath as ft, requireScope as pt } from "@voltro/protocol/rest";
13
+ import { AsyncLocalStorage as mt } from "node:async_hooks";
14
+ import { SpanKind as ht, SpanStatusCode as gt } from "@opentelemetry/api";
15
+ import { Kv as _t, KvError as vt, KvStore as yt, layerConnections as bt, layerMemory as xt, layerRedis as St } from "@voltro/kv";
16
+ import { apiKeyStrategy as Ct } from "@voltro/protocol/apikey";
17
+ import { getCurrentWorkflowExecutionId as wt, inspectWorkflow as Tt } from "@voltro/workflow";
18
+ import { ArrayFormatter as Et } from "effect/ParseResult";
19
+ import { spawn as Dt } from "node:child_process";
20
20
  //#region src/matcher.ts
21
- var Dt = class {
21
+ var Ot = 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 Dt = class {
59
59
  });
60
60
  return { perTable: e };
61
61
  }
62
- }, Ot = (e) => {
62
+ }, kt = (e) => {
63
63
  let t = [];
64
- for (let n of pe(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 Dt = class {
69
69
  values: n.value
70
70
  }));
71
71
  return t;
72
- }, kt = (e) => {
72
+ }, At = (e) => {
73
73
  let t = [];
74
- for (let n of pe(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
- }, At = (e, t) => {
81
- for (let n of pe(e)) if (n.conjunctive && n.path === void 0 && n.op === "eq" && n.column === t) return n.value;
82
- return null;
83
80
  }, jt = (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
+ return null;
83
+ }, Mt = (e, t) => {
84
84
  let n = [];
85
85
  for (let r of e) {
86
86
  let e = t(r);
@@ -88,8 +88,8 @@ var Dt = class {
88
88
  n.push(`${typeof e}:${String(e)}`);
89
89
  }
90
90
  return n.join("|");
91
- }, Mt = (e, t) => e === null || t === null ? null : e === t ? 0 : typeof e == typeof t ? e > t ? 1 : -1 : null, Nt = (e, t, n) => {
92
- let r = Mt(e, n);
91
+ }, Nt = (e, t) => e === null || t === null ? null : e === t ? 0 : typeof e == typeof t ? e > t ? 1 : -1 : null, Pt = (e, t, n) => {
92
+ let r = Nt(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 Dt = class {
97
97
  case "lt": return r < 0;
98
98
  case "lte": return r <= 0;
99
99
  }
100
- }, Pt = class {
100
+ }, Ft = class {
101
101
  columnByTable = /* @__PURE__ */ new Map();
102
102
  rangeByTable = /* @__PURE__ */ new Map();
103
103
  tupleByTable = /* @__PURE__ */ new Map();
@@ -105,9 +105,9 @@ var Dt = 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 = Ot(e.predicate), n = kt(e.predicate);
108
+ let t = kt(e.predicate), n = At(e.predicate);
109
109
  if (e.usingIndex !== void 0) {
110
- let r = e.usingIndex, i = jt(r.fields, (t) => At(e.predicate, t));
110
+ let r = e.usingIndex, i = Mt(r.fields, (t) => jt(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 Dt = class {
252
252
  }
253
253
  }
254
254
  for (let [e, a] of i) {
255
- let i = jt(a, (e) => t[e]);
255
+ let i = Mt(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 Dt = 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) Nt(i, e, r.threshold) && n.add(r.subId);
269
+ if (i !== null) for (let [e, t] of r) for (let r of t) Pt(i, e, r.threshold) && n.add(r.subId);
270
270
  }
271
271
  return n;
272
272
  }
@@ -275,7 +275,7 @@ var Dt = 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 (!Nt(e, n.op, n.threshold)) return !1;
278
+ } else if (!Pt(e, n.op, n.threshold)) return !1;
279
279
  }
280
280
  return !0;
281
281
  }
@@ -297,23 +297,23 @@ var Dt = class {
297
297
  }
298
298
  return i;
299
299
  }
300
- }, Ft = (e) => {
300
+ }, It = (e) => {
301
301
  if (e == null) return null;
302
- if (Array.isArray(e)) return e.map(Ft);
302
+ if (Array.isArray(e)) return e.map(It);
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] = Ft(t[e]);
305
+ for (let e of n) r[e] = It(t[e]);
306
306
  return r;
307
307
  }
308
308
  return e;
309
- }, It = (e, t, n) => {
310
- let r = Ft({
309
+ }, Lt = (e, t, n) => {
310
+ let r = It({
311
311
  table: e,
312
312
  predicate: t,
313
313
  indexHint: n ?? null
314
314
  });
315
- return ge("sha256").update(JSON.stringify(r)).digest("hex").slice(0, 16);
316
- }, Lt = class {
315
+ return he("sha256").update(JSON.stringify(r)).digest("hex").slice(0, 16);
316
+ }, Rt = class {
317
317
  matcher;
318
318
  byFingerprint = /* @__PURE__ */ new Map();
319
319
  byClient = /* @__PURE__ */ new Map();
@@ -332,7 +332,7 @@ var Dt = class {
332
332
  } catch {}
333
333
  }
334
334
  subscribe(e, t, n, r) {
335
- let i = It(t, n, r?.name), a = this.byFingerprint.get(i);
335
+ let i = Lt(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 Dt = class {
390
390
  });
391
391
  return e;
392
392
  }
393
- }, Rt = (e, t) => t.length === 0 ? e : [...e].sort((e, n) => {
393
+ }, zt = (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 Dt = class {
400
400
  return r.direction === "asc" ? a : -a;
401
401
  }
402
402
  return 0;
403
- }), zt = (e, t, n) => {
403
+ }), Bt = (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 Dt = class {
418
418
  ...e,
419
419
  [i]: c
420
420
  };
421
- }, Bt = (e, t, n) => !e || d(e, t, n), Vt = (e, t) => {
421
+ }, Vt = (e, t, n) => !e || d(e, t, n), Ht = (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 = Vt(r.descriptor.predicate, t), a = Ht(r.descriptor, e, t, i);
425
+ let e = t.get(r.descriptor.table) ?? /* @__PURE__ */ new Map(), i = Ht(r.descriptor.predicate, t), a = Ut(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 Dt = class {
437
437
  }
438
438
  }
439
439
  return n;
440
- }, Ht = (e, t, n = /* @__PURE__ */ new Map(), r = null) => {
441
- let i = r ?? Vt(e.predicate, n), a = [...t.values()].filter((t) => Bt(e.predicate, t, i));
440
+ }, Ut = (e, t, n = /* @__PURE__ */ new Map(), r = null) => {
441
+ let i = r ?? Ht(e.predicate, n), a = [...t.values()].filter((t) => Vt(e.predicate, t, i));
442
442
  if (e.aggregations && e.aggregations.length > 0) {
443
- let t = Ut(a, e.aggregations, e.groupBy);
443
+ let t = Wt(a, e.aggregations, e.groupBy);
444
444
  if (!e.having) return t;
445
- let r = Vt(e.having, n);
446
- return t.filter((t) => Bt(e.having, t, r));
445
+ let r = Ht(e.having, n);
446
+ return t.filter((t) => Vt(e.having, t, r));
447
447
  }
448
- let o = Rt(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 = zt(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 Dt = class {
453
453
  for (let n of l) t[n] = e[n];
454
454
  return t;
455
455
  });
456
- }, Ut = (e, t, n) => {
456
+ }, Wt = (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 Dt = 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] = Wt(r, e.rows);
474
+ for (let r of t) n[r.alias] = Gt(r, e.rows);
475
475
  i.push(n);
476
476
  }
477
477
  return i;
478
- }, Wt = (e, t) => {
478
+ }, Gt = (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 Dt = class {
519
519
  }
520
520
  default: throw Error(`computeAggregates: unknown op '${e.op}'`);
521
521
  }
522
- }, Gt = "\0", Kt = (e, t) => e === null ? t : `${e}${Gt}${t}`, qt = class e {
522
+ }, Kt = "\0", qt = (e, t) => e === null ? t : `${e}${Kt}${t}`, Jt = class e {
523
523
  #e;
524
524
  #t;
525
525
  #n;
@@ -529,13 +529,13 @@ var Dt = 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 be(), oe(this.#t), 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(Kt(t, n), e);
538
+ this.#e.set(qt(t, n), e);
539
539
  }
540
540
  }
541
541
  withNamespace(t) {
@@ -546,11 +546,11 @@ var Dt = class {
546
546
  }, t);
547
547
  }
548
548
  #a(e) {
549
- return Kt(this.#r, e);
549
+ return qt(this.#r, e);
550
550
  }
551
551
  #o() {
552
- let e = /* @__PURE__ */ new Map(), t = this.#r === null ? null : `${this.#r}${Gt}`;
553
- for (let [n, r] of this.#e) t === null ? n.includes(Gt) || 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}${Kt}`;
553
+ for (let [n, r] of this.#e) t === null ? n.includes(Kt) || 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,11 +558,11 @@ var Dt = 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 = Ht(e, this.#e.get(this.#a(e.table)) ?? /* @__PURE__ */ new Map(), this.#o());
562
- return _(e) ? n(t, e.eager, ce(e.table), (e) => this.query(e)) : t;
561
+ let t = Ut(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 = de(e, t);
565
+ t = ue(e, t);
566
566
  let n = t;
567
567
  if (n.id === void 0) {
568
568
  let r = this.#c(e);
@@ -589,7 +589,7 @@ var Dt = class {
589
589
  if (!i) return null;
590
590
  let a = i.get(t);
591
591
  if (!a) return null;
592
- let o = zt(a, n, r);
592
+ let o = Bt(a, n, r);
593
593
  return i.set(t, o), this.#t.emit("change", {
594
594
  table: e,
595
595
  op: "update",
@@ -631,7 +631,7 @@ var Dt = class {
631
631
  async updateMany(e, t, n) {
632
632
  let r = this.#e.get(this.#a(e));
633
633
  if (!r) return 0;
634
- let i = Vt(n.where, this.#o()), a = 0;
634
+ let i = Ht(n.where, this.#o()), a = 0;
635
635
  for (let [o, s] of r) {
636
636
  if (!d(n.where, s, i)) continue;
637
637
  let c = {
@@ -650,7 +650,7 @@ var Dt = class {
650
650
  async deleteMany(e, t) {
651
651
  let n = this.#e.get(this.#a(e));
652
652
  if (!n) return 0;
653
- let r = Vt(t.where, this.#o()), i = [];
653
+ let r = Ht(t.where, this.#o()), i = [];
654
654
  for (let [e, a] of n) d(t.where, a, r) && i.push([e, a]);
655
655
  for (let [t, r] of i) n.delete(t), this.#t.emit("change", {
656
656
  table: e,
@@ -689,7 +689,7 @@ var Dt = class {
689
689
  }
690
690
  }
691
691
  async transactional(e) {
692
- let t = new Jt(this.#u());
692
+ let t = new Yt(this.#u());
693
693
  try {
694
694
  let n = await e(t);
695
695
  return t.commit(), n;
@@ -725,7 +725,7 @@ var Dt = class {
725
725
  allocateNumericId: (e) => this.#c(e)
726
726
  };
727
727
  }
728
- }, Jt = class {
728
+ }, Yt = class {
729
729
  parent;
730
730
  overlay = /* @__PURE__ */ new Map();
731
731
  tombstones = /* @__PURE__ */ new Map();
@@ -755,11 +755,11 @@ var Dt = class {
755
755
  return t || (t = /* @__PURE__ */ new Map(), this.overlay.set(e, t)), t;
756
756
  }
757
757
  async query(e) {
758
- let t = this.buildTablesView(e), r = Ht(e, this.materialise(e.table), t);
759
- return _(e) ? n(r, e.eager, ce(e.table), (e) => this.query(e)) : r;
758
+ let t = this.buildTablesView(e), r = Ut(e, this.materialise(e.table), t);
759
+ return _(e) ? n(r, e.eager, se(e.table), (e) => this.query(e)) : r;
760
760
  }
761
761
  async insert(e, t) {
762
- t = de(e, t);
762
+ t = ue(e, t);
763
763
  let n = t;
764
764
  n.id === void 0 && (n = {
765
765
  ...t,
@@ -795,7 +795,7 @@ var Dt = class {
795
795
  async patchJson(e, t, n, r) {
796
796
  let i = this.materialise(e).get(t);
797
797
  if (!i) return null;
798
- let a = zt(i, n, r);
798
+ let a = Bt(i, n, r);
799
799
  return this.getOrCreateOverlay(e).set(t, a), this.events.push({
800
800
  table: e,
801
801
  op: "update",
@@ -816,7 +816,7 @@ var Dt = class {
816
816
  }), !0;
817
817
  }
818
818
  async updateMany(e, t, n) {
819
- let r = this.materialise(e), i = Vt(n.where, this.buildTablesViewForPred(n.where)), a = 0;
819
+ let r = this.materialise(e), i = Ht(n.where, this.buildTablesViewForPred(n.where)), a = 0;
820
820
  for (let [o, s] of r) {
821
821
  if (!d(n.where, s, i)) continue;
822
822
  let r = {
@@ -833,7 +833,7 @@ var Dt = class {
833
833
  return a;
834
834
  }
835
835
  async deleteMany(e, t) {
836
- let n = this.materialise(e), r = Vt(t.where, this.buildTablesViewForPred(t.where)), i = 0, a = this.tombstones.get(e);
836
+ let n = this.materialise(e), r = Ht(t.where, this.buildTablesViewForPred(t.where)), i = 0, a = this.tombstones.get(e);
837
837
  for (let [o, s] of n) d(t.where, s, r) && (this.overlay.get(e)?.delete(o), a || (a = /* @__PURE__ */ new Set(), this.tombstones.set(e, a)), a.add(o), this.events.push({
838
838
  table: e,
839
839
  op: "delete",
@@ -896,7 +896,7 @@ var Dt = class {
896
896
  discard() {
897
897
  this.settled || (this.settled = !0, this.overlay.clear(), this.tombstones.clear(), this.events.length = 0);
898
898
  }
899
- }, Yt = (e) => {
899
+ }, Xt = (e) => {
900
900
  let t = {}, n = [], r = e;
901
901
  for (let e = 0; e < 8 && typeof r == "object" && r; e++) {
902
902
  let e = r;
@@ -907,23 +907,23 @@ var Dt = class {
907
907
  (o || s) && n.push(`${o || "Error"}${s ? `: ${s.slice(0, 200)}` : ""}`), r = e.cause;
908
908
  }
909
909
  return n.length > 0 && (t.dbCauseChain = n.join(" ← "), t.dbMessage === void 0 && (t.dbMessage = n[n.length - 1])), t;
910
- }, Xt = (e) => {
910
+ }, Zt = (e) => {
911
911
  let t = e.dbCode;
912
912
  return t === "23503" || e.dbErrno === 1452 || t === 547 || t === "SQLITE_CONSTRAINT_FOREIGNKEY";
913
- }, Zt = (e) => ({
914
- has: (t) => Pe(e, t),
915
- hasAny: (t) => t.some((t) => Pe(e, t)),
916
- require: (t) => Le(e, t),
913
+ }, Qt = (e) => ({
914
+ has: (t) => Ne(e, t),
915
+ hasAny: (t) => t.some((t) => Ne(e, t)),
916
+ require: (t) => Ie(e, t),
917
917
  get scopes() {
918
- return Ne(e);
918
+ return Me(e);
919
919
  }
920
- }), Qt = (e) => {
920
+ }), $t = (e) => {
921
921
  let t = /* @__PURE__ */ new Set();
922
- return $t(e, t), t;
923
- }, $t = (e, t) => {
924
- if (t.add(e.table), e.eager !== void 0 && en(e.table, e.eager, t), e.setOp !== void 0) for (let n of e.setOp.queries) $t(n, t);
925
- if (e.ctes !== void 0) for (let n of e.ctes) $t(n.descriptor, t);
926
- }, en = (e, t, n) => {
922
+ return en(e, t), t;
923
+ }, en = (e, t) => {
924
+ if (t.add(e.table), e.eager !== void 0 && tn(e.table, e.eager, t), e.setOp !== void 0) for (let n of e.setOp.queries) en(n, t);
925
+ if (e.ctes !== void 0) for (let n of e.ctes) en(n.descriptor, t);
926
+ }, tn = (e, t, n) => {
927
927
  let r = p(e);
928
928
  if (r !== void 0) for (let [e, i] of Object.entries(t)) {
929
929
  let t = r[e];
@@ -931,24 +931,24 @@ var Dt = class {
931
931
  let a = i === !0 ? {} : i;
932
932
  if (t.kind === "manyToMany") {
933
933
  let e = t.through().tableName, r = t.target().tableName;
934
- n.add(e), n.add(r), a.with !== void 0 && en(r, a.with, n);
934
+ n.add(e), n.add(r), a.with !== void 0 && tn(r, a.with, n);
935
935
  } else {
936
936
  let e = t.target().tableName;
937
- n.add(e), a.with !== void 0 && en(e, a.with, n);
937
+ n.add(e), a.with !== void 0 && tn(e, a.with, n);
938
938
  }
939
939
  }
940
- }, tn = (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-")), nn = /* @__PURE__ */ new Set(["*"]), rn = (e, t) => {
940
+ }, nn = (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-")), rn = /* @__PURE__ */ new Set(["*"]), an = (e, t) => {
941
941
  if (e !== void 0) {
942
942
  if ("not" in e) {
943
- rn(e.not, t);
943
+ an(e.not, t);
944
944
  return;
945
945
  }
946
946
  if ("and" in e) {
947
- for (let n of e.and) rn(n, t);
947
+ for (let n of e.and) an(n, t);
948
948
  return;
949
949
  }
950
950
  if ("or" in e) {
951
- for (let n of e.or) rn(n, t);
951
+ for (let n of e.or) an(n, t);
952
952
  return;
953
953
  }
954
954
  if (e.op === "subquery-in" || e.op === "subquery-not-in") {
@@ -957,11 +957,11 @@ var Dt = class {
957
957
  }
958
958
  e.op === "exists" || e.op === "not-exists" || t.add(e.column);
959
959
  }
960
- }, H = (e, t, n) => {
960
+ }, V = (e, t, n) => {
961
961
  let r = e.get(t);
962
962
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r));
963
963
  for (let e of n) r.add(e);
964
- }, an = (e, t, n) => {
964
+ }, on = (e, t, n) => {
965
965
  let r = p(e);
966
966
  if (r !== void 0) for (let [i, a] of Object.entries(t)) {
967
967
  let t = r[i];
@@ -969,64 +969,64 @@ var Dt = class {
969
969
  let o = a === !0 ? {} : a;
970
970
  if (t.kind === "manyToMany") {
971
971
  let r = t.through(), i = t.target();
972
- H(n, r.tableName, [t.sourceKey, t.targetKey]), H(n, e, ["id"]), H(n, i.tableName, ["id"]), on(i.tableName, o, n), o.with !== void 0 && an(i.tableName, o.with, n);
972
+ V(n, r.tableName, [t.sourceKey, t.targetKey]), V(n, e, ["id"]), V(n, i.tableName, ["id"]), sn(i.tableName, o, n), o.with !== void 0 && on(i.tableName, o.with, n);
973
973
  continue;
974
974
  }
975
975
  let s = t.target();
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"]), on(s.tableName, o, n), o.with !== void 0 && an(s.tableName, o.with, n);
976
+ t.foreignKey !== void 0 && V(n, s.tableName, [t.foreignKey]), t.sourceKey === void 0 ? V(n, e, ["id"]) : V(n, e, [t.sourceKey]), V(n, s.tableName, ["id"]), sn(s.tableName, o, n), o.with !== void 0 && on(s.tableName, o.with, n);
977
977
  }
978
- }, on = (e, t, n) => {
978
+ }, sn = (e, t, n) => {
979
979
  if (t.where !== void 0) {
980
980
  let r = /* @__PURE__ */ new Set();
981
- rn(t.where, r), H(n, e, r);
981
+ an(t.where, r), V(n, e, r);
982
982
  }
983
- t.orderBy !== void 0 && H(n, e, t.orderBy.map((e) => e.column));
983
+ t.orderBy !== void 0 && V(n, e, t.orderBy.map((e) => e.column));
984
984
  let r = m(e);
985
- r === void 0 ? H(n, e, ["*"]) : H(n, e, Object.keys(r.fields));
986
- }, sn = (e) => {
985
+ r === void 0 ? V(n, e, ["*"]) : V(n, e, Object.keys(r.fields));
986
+ }, cn = (e) => {
987
987
  let t = /* @__PURE__ */ new Map();
988
- if (tn(e)) {
989
- for (let n of Qt(e)) H(t, n, ["*"]);
988
+ if (nn(e)) {
989
+ for (let n of $t(e)) V(t, n, ["*"]);
990
990
  return t;
991
991
  }
992
992
  let n = /* @__PURE__ */ new Set();
993
993
  if (e.projection !== void 0) for (let t of e.projection) n.add(t);
994
994
  else n.add("*");
995
- rn(e.predicate, n);
995
+ an(e.predicate, n);
996
996
  for (let t of e.order) n.add(t.column);
997
- return H(t, e.table, n), e.eager !== void 0 && an(e.table, e.eager, t), t;
998
- }, cn = (e) => {
999
- if (e.op === "insert" || e.op === "delete" || e.old === null || e.new === null) return nn;
997
+ return V(t, e.table, n), e.eager !== void 0 && on(e.table, e.eager, t), t;
998
+ }, ln = (e) => {
999
+ if (e.op === "insert" || e.op === "delete" || e.old === null || e.new === null) return rn;
1000
1000
  let t = /* @__PURE__ */ new Set(), n = e.old, r = e.new, i = /* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(r)]);
1001
1001
  for (let e of i) Object.is(n[e], r[e]) || t.add(e);
1002
1002
  return t;
1003
- }, ln = (e, t) => {
1003
+ }, un = (e, t) => {
1004
1004
  let n = t.get(e.table);
1005
1005
  if (n === void 0) return !1;
1006
1006
  if (n.has("*")) return !0;
1007
- let r = cn(e);
1007
+ let r = ln(e);
1008
1008
  if (r.has("*")) return !0;
1009
1009
  for (let e of r) if (n.has(e)) return !0;
1010
1010
  return !1;
1011
- }, un = Je.exponential({
1011
+ }, dn = Je.exponential({
1012
1012
  start: .001,
1013
1013
  factor: 2,
1014
1014
  count: 16
1015
- }), dn = F.counter("voltro_rpc_requests_total", { description: "Total RPC handler invocations." }), fn = F.counter("voltro_rpc_errors_total", { description: "RPC handler invocations that errored." }), pn = F.histogram("voltro_rpc_duration_seconds", un, "RPC handler duration in seconds."), mn = F.counter("voltro_http_requests_total", { description: "Total HTTP route invocations." }), hn = F.histogram("voltro_http_duration_seconds", un, "HTTP route duration in seconds."), gn = F.histogram("voltro_plugin_hook_duration_seconds", un, "Plugin interceptor duration in seconds."), _n = F.counter("voltro_plugin_hook_errors_total", { description: "Plugin interceptor invocations that errored." }), vn = F.counter("voltro_subscription_deliveries_total", { description: "Total subscription deliveries (snapshot + delta)." }), yn = F.histogram("voltro_subscription_delivery_seconds", un, "Subscription delivery produce→push latency in seconds."), bn = F.gauge("voltro_subscriptions_active", { description: "Currently-open subscriptions." }), xn = (e) => {
1016
- let t = e.durationMs / 1e3, n = e.kind === "rpc" ? N.zipRight(F.increment(dn).pipe(N.tagMetrics("tag", e.tag), N.tagMetrics("status", e.status)), N.zipRight(F.update(pn, t).pipe(N.tagMetrics("tag", e.tag)), e.status === "error" ? F.increment(fn).pipe(N.tagMetrics("tag", e.tag)) : N.void)) : e.kind === "request" ? N.zipRight(F.increment(mn).pipe(N.tagMetrics("route", e.tag), N.tagMetrics("status", e.status)), F.update(hn, t).pipe(N.tagMetrics("route", e.tag))) : N.zipRight(F.update(gn, t).pipe(N.tagMetrics("hook", e.tag)), e.status === "error" ? F.increment(_n).pipe(N.tagMetrics("hook", e.tag)) : N.void);
1015
+ }), fn = F.counter("voltro_rpc_requests_total", { description: "Total RPC handler invocations." }), pn = F.counter("voltro_rpc_errors_total", { description: "RPC handler invocations that errored." }), mn = F.histogram("voltro_rpc_duration_seconds", dn, "RPC handler duration in seconds."), hn = F.counter("voltro_http_requests_total", { description: "Total HTTP route invocations." }), gn = F.histogram("voltro_http_duration_seconds", dn, "HTTP route duration in seconds."), _n = F.histogram("voltro_plugin_hook_duration_seconds", dn, "Plugin interceptor duration in seconds."), vn = F.counter("voltro_plugin_hook_errors_total", { description: "Plugin interceptor invocations that errored." }), yn = F.counter("voltro_subscription_deliveries_total", { description: "Total subscription deliveries (snapshot + delta)." }), bn = F.histogram("voltro_subscription_delivery_seconds", dn, "Subscription delivery produce→push latency in seconds."), xn = F.gauge("voltro_subscriptions_active", { description: "Currently-open subscriptions." }), Sn = (e) => {
1016
+ let t = e.durationMs / 1e3, n = e.kind === "rpc" ? N.zipRight(F.increment(fn).pipe(N.tagMetrics("tag", e.tag), N.tagMetrics("status", e.status)), N.zipRight(F.update(mn, t).pipe(N.tagMetrics("tag", e.tag)), e.status === "error" ? F.increment(pn).pipe(N.tagMetrics("tag", e.tag)) : N.void)) : e.kind === "request" ? N.zipRight(F.increment(hn).pipe(N.tagMetrics("route", e.tag), N.tagMetrics("status", e.status)), F.update(gn, t).pipe(N.tagMetrics("route", e.tag))) : N.zipRight(F.update(_n, t).pipe(N.tagMetrics("hook", e.tag)), e.status === "error" ? F.increment(vn).pipe(N.tagMetrics("hook", e.tag)) : N.void);
1017
1017
  N.runSync(n);
1018
- }, Sn = (e) => e.startsWith("subscription.") ? e.slice(13) : e, Cn = (e) => {
1019
- let t = Sn(e.label);
1020
- N.runSync(N.zipRight(F.increment(vn).pipe(N.tagMetrics("tag", t), N.tagMetrics("kind", e.kind)), F.update(yn, e.durationMs / 1e3).pipe(N.tagMetrics("tag", t), N.tagMetrics("kind", e.kind))));
1021
- }, wn = /* @__PURE__ */ new Map(), U = (e, t) => {
1022
- let n = Sn(e), r = Math.max(0, (wn.get(n) ?? 0) + t);
1023
- r === 0 ? wn.delete(n) : wn.set(n, r), N.runSync(F.set(bn, r).pipe(N.tagMetrics("tag", n)));
1024
- }, Tn = (e, t) => F.counter(e, t === void 0 ? {} : { description: t }), En = (e, t) => F.gauge(e, t === void 0 ? {} : { description: t }), Dn = (e, t = un, n) => F.histogram(e, t, n), On = (e) => {
1018
+ }, Cn = (e) => e.startsWith("subscription.") ? e.slice(13) : e, wn = (e) => {
1019
+ let t = Cn(e.label);
1020
+ N.runSync(N.zipRight(F.increment(yn).pipe(N.tagMetrics("tag", t), N.tagMetrics("kind", e.kind)), F.update(bn, e.durationMs / 1e3).pipe(N.tagMetrics("tag", t), N.tagMetrics("kind", e.kind))));
1021
+ }, Tn = /* @__PURE__ */ new Map(), H = (e, t) => {
1022
+ let n = Cn(e), r = Math.max(0, (Tn.get(n) ?? 0) + t);
1023
+ r === 0 ? Tn.delete(n) : Tn.set(n, r), N.runSync(F.set(xn, r).pipe(N.tagMetrics("tag", n)));
1024
+ }, En = (e, t) => F.counter(e, t === void 0 ? {} : { description: t }), Dn = (e, t) => F.gauge(e, t === void 0 ? {} : { description: t }), On = (e, t = dn, n) => F.histogram(e, t, n), kn = (e) => {
1025
1025
  let t = {};
1026
1026
  for (let n of e) t[n.key] = n.value;
1027
1027
  return t;
1028
- }, kn = F.snapshot.pipe(N.map((e) => e.map((e) => {
1029
- let t = e.metricKey.name, n = On(e.metricKey.tags), r = I.getOrUndefined(e.metricKey.description), i = r === void 0 ? {} : { description: r }, a = e.metricState;
1028
+ }, An = F.snapshot.pipe(N.map((e) => e.map((e) => {
1029
+ let t = e.metricKey.name, n = kn(e.metricKey.tags), r = Xe.getOrUndefined(e.metricKey.description), i = r === void 0 ? {} : { description: r }, a = e.metricState;
1030
1030
  if (Ye.isHistogramState(a)) return {
1031
1031
  name: t,
1032
1032
  labels: n,
@@ -1076,25 +1076,25 @@ var Dt = class {
1076
1076
  type: "counter",
1077
1077
  value: Number(a.count)
1078
1078
  };
1079
- }))), An = () => N.runSync(kn), jn = class extends R.TaggedError()("RowFilterUnavailable", { cause: R.String }) {}, Mn = Xe.exponential("20 millis").pipe(Xe.intersect(Xe.recurs(2))), Nn, Pn = (e) => {
1080
- Nn = e;
1081
- }, Fn = () => Nn, In = () => void 0, Ln = (e, t) => Rn(Nn, e, t), Rn = (e, t, n) => {
1082
- if (e === void 0 || t.type === "system") return N.succeed(In);
1083
- let r = e.retry ?? Mn, i = e.load(t);
1084
- return (r === !1 ? i : N.retry(i, r)).pipe(N.map((t) => (n) => e.predicate(t, n)), N.catchAll((t) => N.suspend(() => (n?.(t), e.onLoadError === "deny" ? N.succeed(zn) : N.fail(new jn({ cause: String(t) }))))));
1085
- }, zn = () => ({
1079
+ }))), jn = () => N.runSync(An), Mn = class extends L.TaggedError()("RowFilterUnavailable", { cause: L.String }) {}, Nn = Ze.exponential("20 millis").pipe(Ze.intersect(Ze.recurs(2))), Pn, Fn = (e) => {
1080
+ Pn = e;
1081
+ }, In = () => Pn, Ln = () => void 0, Rn = (e, t) => zn(Pn, e, t), zn = (e, t, n) => {
1082
+ if (e === void 0 || t.type === "system") return N.succeed(Ln);
1083
+ let r = e.retry ?? Nn, i = e.load(t);
1084
+ return (r === !1 ? i : N.retry(i, r)).pipe(N.map((t) => (n) => e.predicate(t, n)), N.catchAll((t) => N.suspend(() => (n?.(t), e.onLoadError === "deny" ? N.succeed(Bn) : N.fail(new Mn({ cause: String(t) }))))));
1085
+ }, Bn = () => ({
1086
1086
  column: "id",
1087
1087
  op: "isNull"
1088
- }), Bn = (e, n, r) => {
1088
+ }), Vn = (e, n, r) => {
1089
1089
  let i = e(n);
1090
1090
  return i === void 0 ? r : r ? t(r, i) : i;
1091
- }, Vn = (e, t) => {
1092
- let n = Bn(e, t.table, t.predicate);
1091
+ }, Hn = (e, t) => {
1092
+ let n = Vn(e, t.table, t.predicate);
1093
1093
  return n === t.predicate ? t : {
1094
1094
  ...t,
1095
1095
  predicate: n
1096
1096
  };
1097
- }, W = A({ scope: "voltro:dispatcher" }), Hn = (e) => Array.isArray(e) ? e.length : e == null ? 0 : 1, Un = (e) => typeof e == "object" && !!e && e._tag === "ScopeError", Wn = class {
1097
+ }, U = j({ scope: "voltro:dispatcher" }), Un = (e) => Array.isArray(e) ? e.length : e == null ? 0 : 1, Wn = (e) => typeof e == "object" && !!e && e._tag === "ScopeError", Gn = class {
1098
1098
  deps;
1099
1099
  subscriptionRegistry;
1100
1100
  matcher;
@@ -1104,12 +1104,12 @@ var Dt = class {
1104
1104
  computedSubs = /* @__PURE__ */ new Map();
1105
1105
  computedByTable = /* @__PURE__ */ new Map();
1106
1106
  constructor(e) {
1107
- this.deps = e, this.matcher = new Pt(), this.subscriptionRegistry = new Lt(this.matcher), this.unsubscribeChange = e.store.onChange((e) => {
1107
+ this.deps = e, this.matcher = new Ft(), this.subscriptionRegistry = new Rt(this.matcher), this.unsubscribeChange = e.store.onChange((e) => {
1108
1108
  this.handleChange(e);
1109
1109
  });
1110
1110
  }
1111
1111
  async subscribe(e, t, n, r, i, a, o, s) {
1112
- let c = `sub_${ve()}`, l = i ?? `subscription.${e.table}`, u = Qt(e), d = sn(e);
1112
+ let c = `sub_${_e()}`, l = i ?? `subscription.${e.table}`, u = $t(e), d = cn(e);
1113
1113
  e.predicate !== void 0 && this.subscriptionRegistry.subscribe(c, e.table, e.predicate, r);
1114
1114
  for (let e of u) {
1115
1115
  let t = this.dependentByTable.get(e);
@@ -1123,7 +1123,7 @@ var Dt = class {
1123
1123
  }
1124
1124
  }, h, g;
1125
1125
  try {
1126
- h = s === void 0 ? e : Vn(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 : Hn(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);
1127
1127
  } catch (e) {
1128
1128
  throw m(), e;
1129
1129
  }
@@ -1140,7 +1140,7 @@ var Dt = class {
1140
1140
  cacheBinding: a,
1141
1141
  reauthorize: o,
1142
1142
  refilter: s
1143
- }), U(l, 1), t({
1143
+ }), H(l, 1), t({
1144
1144
  _tag: "snapshot",
1145
1145
  revision: 0,
1146
1146
  data: g
@@ -1156,16 +1156,16 @@ var Dt = class {
1156
1156
  durationMs: _ - f,
1157
1157
  rowCount: g.length
1158
1158
  }), () => {
1159
- this.subscriptions.delete(c), U(l, -1), m();
1159
+ this.subscriptions.delete(c), H(l, -1), m();
1160
1160
  };
1161
1161
  }
1162
1162
  revokeSubscription(e, t, n = "guards no longer satisfied") {
1163
- this.subscriptions.delete(e.id), U(e.label, -1), this.subscriptionRegistry.unsubscribe(e.id);
1163
+ this.subscriptions.delete(e.id), H(e.label, -1), this.subscriptionRegistry.unsubscribe(e.id);
1164
1164
  for (let t of e.dependentTables) {
1165
1165
  let n = this.dependentByTable.get(t);
1166
1166
  n !== void 0 && (n.delete(e.id), n.size === 0 && this.dependentByTable.delete(t));
1167
1167
  }
1168
- W.warn(`subscription revoked mid-stream — ${n}`, {
1168
+ U.warn(`subscription revoked mid-stream — ${n}`, {
1169
1169
  id: e.id,
1170
1170
  label: e.label,
1171
1171
  traceId: e.context.traceId
@@ -1175,12 +1175,12 @@ var Dt = class {
1175
1175
  });
1176
1176
  }
1177
1177
  revokeComputed(e, t) {
1178
- this.computedSubs.delete(e.id), U(e.label, -1);
1178
+ this.computedSubs.delete(e.id), H(e.label, -1);
1179
1179
  for (let t of e.tables) {
1180
1180
  let n = this.computedByTable.get(t);
1181
1181
  n !== void 0 && (n.delete(e.id), n.size === 0 && this.computedByTable.delete(t));
1182
1182
  }
1183
- W.warn("computed subscription revoked mid-stream — guards no longer satisfied", {
1183
+ U.warn("computed subscription revoked mid-stream — guards no longer satisfied", {
1184
1184
  id: e.id,
1185
1185
  label: e.label,
1186
1186
  traceId: e.context.traceId
@@ -1190,7 +1190,7 @@ var Dt = class {
1190
1190
  });
1191
1191
  }
1192
1192
  async subscribeComputed(e, t, n, r) {
1193
- let i = `csub_${ve()}`, a = e.dependentTables, o = {
1193
+ let i = `csub_${_e()}`, a = e.dependentTables, o = {
1194
1194
  id: i,
1195
1195
  recompute: e.recompute,
1196
1196
  tenantId: e.tenantId,
@@ -1198,10 +1198,10 @@ var Dt = class {
1198
1198
  context: n,
1199
1199
  label: r ?? "subscription.computed",
1200
1200
  tables: a,
1201
- lastJson: Gn(e.value),
1201
+ lastJson: Kn(e.value),
1202
1202
  revision: 0
1203
1203
  };
1204
- this.computedSubs.set(i, o), U(o.label, 1);
1204
+ this.computedSubs.set(i, o), H(o.label, 1);
1205
1205
  for (let e of a) {
1206
1206
  let t = this.computedByTable.get(e);
1207
1207
  t === void 0 && (t = /* @__PURE__ */ new Set(), this.computedByTable.set(e, t)), t.add(i);
@@ -1219,9 +1219,9 @@ var Dt = class {
1219
1219
  startMs: s,
1220
1220
  endMs: Date.now(),
1221
1221
  durationMs: Date.now() - s,
1222
- rowCount: Hn(e.value)
1222
+ rowCount: Un(e.value)
1223
1223
  }), () => {
1224
- this.computedSubs.delete(i), U(o.label, -1);
1224
+ this.computedSubs.delete(i), H(o.label, -1);
1225
1225
  for (let e of a) {
1226
1226
  let t = this.computedByTable.get(e);
1227
1227
  t !== void 0 && (t.delete(i), t.size === 0 && this.computedByTable.delete(e));
@@ -1231,7 +1231,7 @@ var Dt = class {
1231
1231
  async recomputeComputed(e) {
1232
1232
  let t = Date.now();
1233
1233
  try {
1234
- let n = await e.recompute(), r = Gn(n);
1234
+ let n = await e.recompute(), r = Kn(n);
1235
1235
  if (r === e.lastJson) return;
1236
1236
  e.lastJson = r, e.revision += 1;
1237
1237
  let i = Date.now();
@@ -1247,14 +1247,14 @@ var Dt = class {
1247
1247
  startMs: t,
1248
1248
  endMs: i,
1249
1249
  durationMs: i - t,
1250
- rowCount: Hn(n)
1250
+ rowCount: Un(n)
1251
1251
  });
1252
1252
  } catch (t) {
1253
- if (Un(t)) {
1253
+ if (Wn(t)) {
1254
1254
  this.revokeComputed(e, t);
1255
1255
  return;
1256
1256
  }
1257
- W.warn("computed recompute failed; subscriber left on last value", {
1257
+ U.warn("computed recompute failed; subscriber left on last value", {
1258
1258
  id: e.id,
1259
1259
  label: e.label,
1260
1260
  traceId: e.context.traceId
@@ -1289,7 +1289,7 @@ var Dt = class {
1289
1289
  for (let e of n) r.add(e.subscriberId);
1290
1290
  let i = this.dependentByTable.get(e.table);
1291
1291
  if (i !== void 0) for (let e of i) r.add(e);
1292
- if (W.trace("handleChange", {
1292
+ if (U.trace("handleChange", {
1293
1293
  table: e.table,
1294
1294
  op: e.op,
1295
1295
  matcher: n.length,
@@ -1300,10 +1300,10 @@ var Dt = class {
1300
1300
  for (let t of r) {
1301
1301
  let n = this.subscriptions.get(t);
1302
1302
  if (!n) {
1303
- W.trace("missing subscription", { subscriberId: t });
1303
+ U.trace("missing subscription", { subscriberId: t });
1304
1304
  continue;
1305
1305
  }
1306
- if (!ln(e, n.relevantFields)) {
1306
+ if (!un(e, n.relevantFields)) {
1307
1307
  o++;
1308
1308
  continue;
1309
1309
  }
@@ -1326,21 +1326,21 @@ var Dt = class {
1326
1326
  this.revokeSubscription(n, e, "row filter unavailable");
1327
1327
  continue;
1328
1328
  }
1329
- i = Vn(e, n.baseDescriptor);
1329
+ i = Hn(e, n.baseDescriptor);
1330
1330
  }
1331
1331
  let o = await this.deps.store.query(i), s = n.lastDelivered;
1332
- if (Kn(o, s)) {
1333
- W.trace("suppressed no-op delta", {
1332
+ if (qn(o, s)) {
1333
+ U.trace("suppressed no-op delta", {
1334
1334
  subscriberId: t,
1335
1335
  table: e.table
1336
1336
  });
1337
1337
  continue;
1338
1338
  }
1339
- n.lastDelivered = o, this.deps.cache !== void 0 && n.cacheBinding !== void 0 && this.deps.cache.put(n.cacheBinding, Array.from(n.dependentTables), o), Fe(s) && Fe(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({
1340
1340
  _tag: "delta",
1341
1341
  revision: a,
1342
1342
  emittedAt: a,
1343
- patch: Me(s, o)
1343
+ patch: je(s, o)
1344
1344
  }) : n.emit({
1345
1345
  _tag: "snapshot",
1346
1346
  revision: a,
@@ -1358,7 +1358,7 @@ var Dt = class {
1358
1358
  rowCount: o.length
1359
1359
  });
1360
1360
  } catch (r) {
1361
- W.warn("reactive re-query failed; subscriber left on last snapshot", {
1361
+ U.warn("reactive re-query failed; subscriber left on last snapshot", {
1362
1362
  subscriberId: t,
1363
1363
  label: n.label,
1364
1364
  table: e.table,
@@ -1366,66 +1366,66 @@ var Dt = class {
1366
1366
  }, r);
1367
1367
  }
1368
1368
  }
1369
- o > 0 && W.trace("handleChange/prefiltered", {
1369
+ o > 0 && U.trace("handleChange/prefiltered", {
1370
1370
  table: e.table,
1371
1371
  op: e.op,
1372
1372
  skipped: o
1373
1373
  });
1374
1374
  }
1375
- }, Gn = (e) => {
1375
+ }, Kn = (e) => {
1376
1376
  try {
1377
1377
  return JSON.stringify(e) ?? "null";
1378
1378
  } catch {
1379
1379
  return String(e);
1380
1380
  }
1381
- }, Kn = (e, t) => {
1381
+ }, qn = (e, t) => {
1382
1382
  if (e === t) return !0;
1383
1383
  if (e.length !== t.length) return !1;
1384
1384
  for (let n = 0; n < e.length; n++) if (JSON.stringify(e[n]) !== JSON.stringify(t[n])) return !1;
1385
1385
  return !0;
1386
- }, qn = (e) => typeof e == "object" && !!e && e.__voltroComputed === !0, Jn = 1440 * 60 * 1e3, Yn = 3600 * 1e3, G = /* @__PURE__ */ new Map(), Xn = /* @__PURE__ */ new Set(), Zn = (e, t) => {
1387
- G.set(e, {
1386
+ }, Jn = (e) => typeof e == "object" && !!e && e.__voltroComputed === !0, Yn = 1440 * 60 * 1e3, Xn = 3600 * 1e3, W = /* @__PURE__ */ new Map(), Zn = /* @__PURE__ */ new Set(), Qn = (e, t) => {
1387
+ W.set(e, {
1388
1388
  subject: t,
1389
1389
  touchedAt: Date.now()
1390
1390
  });
1391
- for (let n of Xn) try {
1391
+ for (let n of Zn) try {
1392
1392
  n(e, t);
1393
1393
  } catch {}
1394
- }, Qn = (e) => {
1395
- let t = G.get(e);
1396
- if (t) return t.touchedAt = Date.now(), t.subject;
1397
1394
  }, $n = (e) => {
1398
- G.delete(e);
1399
- }, er = (e) => (Xn.add(e), () => {
1400
- Xn.delete(e);
1401
- }), tr = setInterval(() => {
1402
- let e = Date.now() - Jn;
1403
- for (let [t, n] of G) n.touchedAt < e && G.delete(t);
1404
- }, Yn);
1405
- typeof tr == "object" && tr && "unref" in tr && tr.unref();
1406
- var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1407
- let n = K.get(e);
1408
- return n || (n = /* @__PURE__ */ new Set(), K.set(e, n)), n.add(t), () => {
1409
- let n = K.get(e);
1410
- n && (n.delete(t), n.size === 0 && K.delete(e));
1395
+ let t = W.get(e);
1396
+ if (t) return t.touchedAt = Date.now(), t.subject;
1397
+ }, er = (e) => {
1398
+ W.delete(e);
1399
+ }, tr = (e) => (Zn.add(e), () => {
1400
+ Zn.delete(e);
1401
+ }), nr = setInterval(() => {
1402
+ let e = Date.now() - Yn;
1403
+ for (let [t, n] of W) n.touchedAt < e && W.delete(t);
1404
+ }, Xn);
1405
+ typeof nr == "object" && nr && "unref" in nr && nr.unref();
1406
+ var G = /* @__PURE__ */ new Map(), rr = (e, t) => {
1407
+ let n = G.get(e);
1408
+ return n || (n = /* @__PURE__ */ new Set(), G.set(e, n)), n.add(t), () => {
1409
+ let n = G.get(e);
1410
+ n && (n.delete(t), n.size === 0 && G.delete(e));
1411
1411
  };
1412
- }, rr = (e) => {
1413
- let t = K.get(e);
1412
+ }, ir = (e) => {
1413
+ let t = G.get(e);
1414
1414
  if (t) {
1415
1415
  for (let e of [...t]) try {
1416
1416
  e();
1417
1417
  } catch {}
1418
- K.delete(e);
1418
+ G.delete(e);
1419
1419
  }
1420
- }, ir = (e) => K.get(e)?.size ?? 0, ar = () => {
1421
- G.clear(), K.clear();
1422
- }, or = () => [...G.entries()].map(([e, t]) => ({
1420
+ }, ar = (e) => G.get(e)?.size ?? 0, or = () => {
1421
+ W.clear(), G.clear();
1422
+ }, sr = () => [...W.entries()].map(([e, t]) => ({
1423
1423
  clientId: e,
1424
1424
  subjectType: t.subject.type,
1425
1425
  tenantId: t.subject.tenantId
1426
- })), sr = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/, cr = (e) => `00-${e.traceId}-${e.spanId}-${e.sampled ? "01" : "00"}`, lr = (e) => {
1426
+ })), cr = /^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/, lr = (e) => `00-${e.traceId}-${e.spanId}-${e.sampled ? "01" : "00"}`, ur = (e) => {
1427
1427
  if (typeof e != "string") return null;
1428
- let t = sr.exec(e.trim().toLowerCase());
1428
+ let t = cr.exec(e.trim().toLowerCase());
1429
1429
  if (t === null) return null;
1430
1430
  let [, n, r, i] = t;
1431
1431
  return n === "0".repeat(32) || r === "0".repeat(16) ? null : {
@@ -1433,14 +1433,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1433
1433
  spanId: r,
1434
1434
  sampled: (parseInt(i, 16) & 1) == 1
1435
1435
  };
1436
- }, ur = (e) => {
1437
- let t = lr(e);
1438
- if (t !== null) return Ze.externalSpan({
1436
+ }, dr = (e) => {
1437
+ let t = ur(e);
1438
+ if (t !== null) return Qe.externalSpan({
1439
1439
  traceId: t.traceId,
1440
1440
  spanId: t.spanId,
1441
1441
  sampled: t.sampled
1442
1442
  });
1443
- }, dr = new pt(), fr = (e, t) => dr.run(e, t), pr = () => dr.getStore(), mr = (e = {}) => {
1443
+ }, fr = new mt(), pr = (e, t) => fr.run(e, t), mr = () => fr.getStore(), hr = (e = {}) => {
1444
1444
  let t = e.random ?? Math.random, n = /* @__PURE__ */ new Map(), r = (e) => n.get(e) ?? 0;
1445
1445
  return {
1446
1446
  pick(e) {
@@ -1465,7 +1465,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1465
1465
  }));
1466
1466
  }
1467
1467
  };
1468
- }, hr = (e = {}) => {
1468
+ }, gr = (e = {}) => {
1469
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) => {
1470
1470
  let t = a.get(e);
1471
1471
  return t === void 0 && (t = {
@@ -1499,7 +1499,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1499
1499
  }));
1500
1500
  }
1501
1501
  };
1502
- }, gr = (e = {}) => {
1502
+ }, _r = (e = {}) => {
1503
1503
  let t = e.now ?? Date.now, n = /* @__PURE__ */ new Map();
1504
1504
  return {
1505
1505
  get(e) {
@@ -1522,7 +1522,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1522
1522
  return n.size;
1523
1523
  }
1524
1524
  };
1525
- }, _r = (e, t) => e === null ? t === void 0 ? "anon:bg" : `anon:${t}` : `subject:${e}`, vr = (e) => {
1525
+ }, vr = (e, t) => e === null ? t === void 0 ? "anon:bg" : `anon:${t}` : `subject:${e}`, yr = (e) => {
1526
1526
  let t = e.now ?? Date.now, n = e.keyPrefix ?? "voltro:ryw", r = e.channel ?? `${n}:bus`, i = e.onError ?? ((e, t) => {
1527
1527
  process.stderr.write(`[voltro:ryw] redis ${t} failed: ${String(e)}\n`);
1528
1528
  }), a = `${process.pid ?? 0}:${Math.random() * 1e9 | 0}:${t()}`, o = /* @__PURE__ */ new Map(), s = (e) => {
@@ -1581,7 +1581,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1581
1581
  return o.size;
1582
1582
  }
1583
1583
  };
1584
- }, yr = A({ scope: "voltro:replication" }), br = new pt(), xr = (e, t) => br.run(e, t), Sr = () => br.getStore(), Cr = class {
1584
+ }, br = j({ scope: "voltro:replication" }), xr = new mt(), Sr = (e, t) => xr.run(e, t), Cr = () => xr.getStore(), wr = class {
1585
1585
  primary;
1586
1586
  replicas;
1587
1587
  adapter;
@@ -1594,10 +1594,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1594
1594
  recordRouting;
1595
1595
  now;
1596
1596
  constructor(e) {
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 ?? gr({ now: this.now }), this.selector = e.replicaSelector ?? mr(), this.health = e.replicaHealth ?? hr({ 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 ?? _r({ now: this.now }), this.selector = e.replicaSelector ?? hr(), this.health = e.replicaHealth ?? gr({ now: this.now }), e.recordRouting !== void 0 && (this.recordRouting = e.recordRouting);
1598
1598
  }
1599
1599
  async query(e) {
1600
- let t = br.getStore(), n = t?.subjectKey ?? "anon:bg";
1600
+ let t = xr.getStore(), n = t?.subjectKey ?? "anon:bg";
1601
1601
  if (t?.forcePrimary === !0) return this.emitRouting({
1602
1602
  target: "primary",
1603
1603
  replicaIndex: null,
@@ -1661,7 +1661,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1661
1661
  waitMs: 0
1662
1662
  }), r;
1663
1663
  } catch (r) {
1664
- return this.health.reportFailure(i, String(r)), yr.warn("replica query failed; falling back to primary", {
1664
+ return this.health.reportFailure(i, String(r)), br.warn("replica query failed; falling back to primary", {
1665
1665
  idx: a,
1666
1666
  err: r
1667
1667
  }), this.emitRouting({
@@ -1730,7 +1730,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1730
1730
  fallbackReason: "wait-timeout"
1731
1731
  }), this.primary.query(e);
1732
1732
  }
1733
- await wr(10);
1733
+ await Tr(10);
1734
1734
  }
1735
1735
  }
1736
1736
  async insert(e, t) {
@@ -1770,8 +1770,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1770
1770
  return await this.stampPostWrite(), r;
1771
1771
  }
1772
1772
  async transactional(e) {
1773
- let t = await xr({
1774
- subjectKey: br.getStore()?.subjectKey ?? "anon:bg",
1773
+ let t = await Sr({
1774
+ subjectKey: xr.getStore()?.subjectKey ?? "anon:bg",
1775
1775
  forcePrimary: !0
1776
1776
  }, () => this.primary.transactional(e));
1777
1777
  return await this.stampPostWrite(), t;
@@ -1787,7 +1787,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1787
1787
  }
1788
1788
  async stampPostWrite() {
1789
1789
  if (this.replicas.length === 0) return;
1790
- let e = br.getStore()?.subjectKey ?? "anon:bg";
1790
+ let e = xr.getStore()?.subjectKey ?? "anon:bg";
1791
1791
  try {
1792
1792
  let t = await this.adapter.capturePrimaryPosition(this.primary);
1793
1793
  this.rywStore.set(e, {
@@ -1795,37 +1795,37 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1795
1795
  expiresAt: this.now() + this.rywTtlMs
1796
1796
  });
1797
1797
  } catch (e) {
1798
- yr.warn("failed to capture primary position; RYW skipped", { err: e });
1798
+ br.warn("failed to capture primary position; RYW skipped", { err: e });
1799
1799
  }
1800
1800
  }
1801
1801
  emitRouting(e) {
1802
1802
  this.recordRouting?.(e);
1803
1803
  }
1804
- }, wr = (e) => new Promise((t) => setTimeout(t, e)), Tr = (e, t, n) => ({
1804
+ }, Tr = (e) => new Promise((t) => setTimeout(t, e)), Er = (e, t, n) => ({
1805
1805
  subject: e,
1806
- traceId: t?.traceId ?? ve(),
1806
+ traceId: t?.traceId ?? _e(),
1807
1807
  ...t?.spanId === void 0 ? {} : { spanId: t.spanId },
1808
1808
  ...n === void 0 ? {} : { clientId: n }
1809
- }), Er = N.currentSpan.pipe(N.catchAll(() => N.succeed(void 0))), Dr = (e) => ({
1809
+ }), Dr = N.currentSpan.pipe(N.catchAll(() => N.succeed(void 0))), Or = (e) => ({
1810
1810
  traceId: e.traceId,
1811
1811
  ...e.spanId === void 0 ? {} : { spanId: e.spanId }
1812
- }), Or = (e, t, n) => {
1812
+ }), kr = (e, t, n) => {
1813
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));
1814
- }, kr = (e) => {
1815
- if (Fn() !== void 0) return async () => {
1816
- let t = await N.runPromise(N.either(Ln(e, (e) => {
1814
+ }, Ar = (e) => {
1815
+ if (In() !== void 0) return async () => {
1816
+ let t = await N.runPromise(N.either(Rn(e, (e) => {
1817
1817
  console.error("[voltro] row filter failed to load — subscription", e);
1818
1818
  })));
1819
1819
  if (t._tag === "Left") throw t.left;
1820
1820
  return t.right;
1821
1821
  };
1822
- }, Ar = (e, t, n, r, i, a, o, s) => z.asyncScoped((c) => N.gen(function* () {
1822
+ }, jr = (e, t, n, r, i, a, o, s) => R.asyncScoped((c) => N.gen(function* () {
1823
1823
  let l = yield* N.tryPromise(() => t.subscribe(e, (e) => {
1824
1824
  c.single(e);
1825
1825
  }, n, r, i, a, o, s)).pipe(N.matchCause({
1826
- onFailure: (e) => (Ir(`subscription.${i}`, n.traceId, e), {
1826
+ onFailure: (e) => (Lr(`subscription.${i}`, n.traceId, e), {
1827
1827
  ok: !1,
1828
- error: Br(e)
1828
+ error: Vr(e)
1829
1829
  }),
1830
1830
  onSuccess: (e) => ({
1831
1831
  ok: !0,
@@ -1841,21 +1841,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1841
1841
  }
1842
1842
  let u = l.unsubscribe;
1843
1843
  if (yield* N.addFinalizer(() => N.sync(() => u())), n.clientId !== void 0) {
1844
- let e = nr(n.clientId, () => {
1844
+ let e = rr(n.clientId, () => {
1845
1845
  c.end();
1846
1846
  });
1847
1847
  yield* N.addFinalizer(() => N.sync(() => e()));
1848
1848
  }
1849
- })), jr = (e, t, n, r) => z.asyncScoped((i) => N.gen(function* () {
1849
+ })), Mr = (e, t, n, r) => R.asyncScoped((i) => N.gen(function* () {
1850
1850
  let a = yield* N.tryPromise(() => t.subscribeComputed(e, (e) => {
1851
1851
  i.single(e._tag === "snapshot" ? {
1852
1852
  ...e,
1853
1853
  computed: !0
1854
1854
  } : e);
1855
1855
  }, n, r)).pipe(N.matchCause({
1856
- onFailure: (e) => (Ir(`subscription.${r}`, n.traceId, e), {
1856
+ onFailure: (e) => (Lr(`subscription.${r}`, n.traceId, e), {
1857
1857
  ok: !1,
1858
- error: Br(e)
1858
+ error: Vr(e)
1859
1859
  }),
1860
1860
  onSuccess: (e) => ({
1861
1861
  ok: !0,
@@ -1871,21 +1871,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1871
1871
  }
1872
1872
  let o = a.unsubscribe;
1873
1873
  if (yield* N.addFinalizer(() => N.sync(() => o())), n.clientId !== void 0) {
1874
- let e = nr(n.clientId, () => {
1874
+ let e = rr(n.clientId, () => {
1875
1875
  i.end();
1876
1876
  });
1877
1877
  yield* N.addFinalizer(() => N.sync(() => e()));
1878
1878
  }
1879
- })), Mr = (e, t, n = "rpc.subscription", r, i, a, o) => z.unwrap(N.gen(function* () {
1880
- let s = yield* Ee, c = yield* Se, l = yield* Er;
1881
- Or(l, n, s);
1882
- let u = Tr(s, l, c.clientId), d = _r(s.id, c.clientId), f = xr({ subjectKey: d }, () => fr({
1879
+ })), Nr = (e, t, n = "rpc.subscription", r, i, a, o) => R.unwrap(N.gen(function* () {
1880
+ let s = yield* Te, c = yield* xe, l = yield* Dr;
1881
+ kr(l, n, s);
1882
+ let u = Er(s, l, c.clientId), d = vr(s.id, c.clientId), f = Sr({ subjectKey: d }, () => pr({
1883
1883
  traceId: u.traceId,
1884
1884
  ...u.spanId === void 0 ? {} : { spanId: u.spanId }
1885
1885
  }, () => e(u))), p = N.isEffect(f) ? yield* f.pipe(N.matchCause({
1886
- onFailure: (e) => (Ir(`subscription.${n}`, u.traceId, e), {
1886
+ onFailure: (e) => (Lr(`subscription.${n}`, u.traceId, e), {
1887
1887
  ok: !1,
1888
- error: Br(e)
1888
+ error: Vr(e)
1889
1889
  }),
1890
1890
  onSuccess: (e) => ({
1891
1891
  ok: !0,
@@ -1895,49 +1895,49 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1895
1895
  ok: !0,
1896
1896
  value: f
1897
1897
  };
1898
- if (!p.ok) return z.make({
1898
+ if (!p.ok) return R.make({
1899
1899
  _tag: "error",
1900
1900
  error: p.error
1901
1901
  });
1902
1902
  let m = p.value;
1903
- if (qn(m)) return jr(m, t, u, n);
1903
+ if (Jn(m)) return Mr(m, t, u, n);
1904
1904
  let h = m, g = r?.(h);
1905
- return Ar(h, t, u, g, n, i === void 0 ? void 0 : {
1905
+ return jr(h, t, u, g, n, i === void 0 ? void 0 : {
1906
1906
  key: i.scope === "subject" ? `${i.baseKey}:s:${d}` : `${i.baseKey}:global`,
1907
1907
  ttlMs: i.ttlMs,
1908
1908
  swrMs: i.swrMs
1909
- }, a?.(s), o?.(s) ?? kr(s));
1910
- }).pipe(N.withSpan(n, { attributes: { "framework.kind": "subscription" } }))), Nr = (e, t = "rpc.stream") => z.unwrap(N.gen(function* () {
1911
- let n = yield* Ee, r = yield* Se, i = yield* Er;
1912
- Or(i, t, n);
1913
- let a = Tr(n, i, r.clientId), o = e(a), s = N.isEffect(o) ? yield* o.pipe(N.orDie) : o;
1909
+ }, a?.(s), o?.(s) ?? Ar(s));
1910
+ }).pipe(N.withSpan(n, { attributes: { "framework.kind": "subscription" } }))), Pr = (e, t = "rpc.stream") => R.unwrap(N.gen(function* () {
1911
+ let n = yield* Te, r = yield* xe, i = yield* Dr;
1912
+ kr(i, t, n);
1913
+ let a = Er(n, i, r.clientId), o = e(a), s = N.isEffect(o) ? yield* o.pipe(N.orDie) : o;
1914
1914
  if (a.clientId === void 0) return s;
1915
1915
  let c = a.clientId;
1916
- return z.unwrapScoped(N.gen(function* () {
1917
- let e = yield* Ue.make(), t = nr(c, () => {
1916
+ return R.unwrapScoped(N.gen(function* () {
1917
+ let e = yield* Ue.make(), t = rr(c, () => {
1918
1918
  Ue.unsafeDone(e, N.void);
1919
1919
  });
1920
- return yield* N.addFinalizer(() => N.sync(() => t())), s.pipe(z.interruptWhen(Ue.await(e)));
1920
+ return yield* N.addFinalizer(() => N.sync(() => t())), s.pipe(R.interruptWhen(Ue.await(e)));
1921
1921
  }));
1922
- }).pipe(N.withSpan(t, { attributes: { "framework.kind": "stream" } }))), Pr = A({ scope: "voltro:rpc" }), Fr = A({ scope: "voltro:http" }), Ir = (e, t, n) => {
1923
- if (j.isInterruptedOnly(n)) return;
1924
- 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 = Yt(r), c = {
1922
+ }).pipe(N.withSpan(t, { attributes: { "framework.kind": "stream" } }))), Fr = j({ scope: "voltro:rpc" }), Ir = j({ scope: "voltro:http" }), Lr = (e, t, n) => {
1923
+ if (M.isInterruptedOnly(n)) return;
1924
+ let r = M.squash(n), i = r?._tag, a = r instanceof Error ? r.message : r?.message ?? String(r), o = M.dieOption(n)._tag === "Some", s = Xt(r), c = {
1925
1925
  traceId: t,
1926
1926
  ...i === void 0 ? {} : { errorTag: i },
1927
1927
  ...s
1928
1928
  }, l = a === "Failed to execute statement" && typeof s.dbMessage == "string" ? s.dbMessage : a;
1929
- o ? Pr.error(`${e} failed: ${l}`, c) : Pr.warn(`${e} failed: ${l}`, c);
1930
- }, Lr = /* @__PURE__ */ new Set([
1929
+ o ? Fr.error(`${e} failed: ${l}`, c) : Fr.warn(`${e} failed: ${l}`, c);
1930
+ }, Rr = /* @__PURE__ */ new Set([
1931
1931
  "SqlError",
1932
1932
  "ResultLengthMismatch",
1933
1933
  "FieldDecryptionError"
1934
- ]), Rr = (e) => typeof e == "object" && !!e && typeof e._tag == "string" && Lr.has(e._tag), zr = (e) => ({
1934
+ ]), zr = (e) => typeof e == "object" && !!e && typeof e._tag == "string" && Rr.has(e._tag), Br = (e) => ({
1935
1935
  _tag: "InternalError",
1936
1936
  message: "internal server error",
1937
1937
  traceId: e
1938
- }), Br = (e) => {
1939
- let t = j.squash(e);
1940
- if (t && typeof t == "object" && t._tag === "UnknownException" && (t = t.error ?? t.cause ?? t), Rr(t)) return {
1938
+ }), Vr = (e) => {
1939
+ let t = M.squash(e);
1940
+ if (t && typeof t == "object" && t._tag === "UnknownException" && (t = t.error ?? t.cause ?? t), zr(t)) return {
1941
1941
  _tag: "InternalError",
1942
1942
  message: "internal server error"
1943
1943
  };
@@ -1949,43 +1949,43 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1949
1949
  ...typeof i == "string" ? { _tag: i } : {},
1950
1950
  message: typeof a == "string" ? a : String(t)
1951
1951
  };
1952
- }, Vr = (e, t, n = "rpc.mutation") => N.gen(function* () {
1953
- let r = yield* Ee, i = yield* Se, a = yield* Er;
1954
- Or(a, n, r);
1955
- let o = Tr(r, a, i.clientId), s = xr({ subjectKey: _r(r.id, i.clientId) }, () => fr({
1952
+ }, Hr = (e, t, n = "rpc.mutation") => N.gen(function* () {
1953
+ let r = yield* Te, i = yield* xe, a = yield* Dr;
1954
+ kr(a, n, r);
1955
+ let o = Er(r, a, i.clientId), s = Sr({ subjectKey: vr(r.id, i.clientId) }, () => pr({
1956
1956
  traceId: o.traceId,
1957
1957
  ...o.spanId === void 0 ? {} : { spanId: o.spanId }
1958
1958
  }, () => e(t, o)));
1959
1959
  return yield* (N.isEffect(s) ? s : N.tryPromise({
1960
1960
  try: () => Promise.resolve(s),
1961
1961
  catch: (e) => e
1962
- })).pipe(N.tapErrorCause((e) => N.sync(() => Ir(n, o.traceId, e))), N.catchIf(Rr, () => N.die(zr(o.traceId))), N.annotateLogs(Dr(o)));
1963
- }).pipe(N.withSpan(n, { attributes: { "framework.kind": "mutation" } })), Hr = 8 * 1024 * 1024, Ur = (e) => {
1964
- let t = e.port ?? 4e3, n = e.path ?? "/ws", r = $e(), i = (t) => rt.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
1965
- if (!e.inspectRoute) return V.text("inspect route not configured", { status: 404 });
1962
+ })).pipe(N.tapErrorCause((e) => N.sync(() => Lr(n, o.traceId, e))), N.catchIf(zr, () => N.die(Br(o.traceId))), N.annotateLogs(Or(o)));
1963
+ }).pipe(N.withSpan(n, { attributes: { "framework.kind": "mutation" } })), Ur = 8 * 1024 * 1024, Wr = (e) => {
1964
+ let t = e.port ?? 4e3, n = e.path ?? "/ws", r = et(), i = (t) => it.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
1965
+ if (!e.inspectRoute) return B.text("inspect route not configured", { status: 404 });
1966
1966
  let n = {};
1967
1967
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
1968
1968
  let r;
1969
1969
  t.method !== "GET" && t.method !== "HEAD" && t.method !== "OPTIONS" && (r = yield* t.text.pipe(N.orElseSucceed(() => "")));
1970
1970
  let i = e.inspectRoute.handle(t.url, n, t.method, r), a = i instanceof Promise ? yield* N.promise(() => i) : i;
1971
- return a === null ? V.text("inspect route not found", { status: 404 }) : V.text(a.body, {
1971
+ return a === null ? B.text("inspect route not found", { status: 404 }) : B.text(a.body, {
1972
1972
  status: a.status,
1973
1973
  contentType: a.contentType,
1974
1974
  headers: a.headers ?? {}
1975
1975
  });
1976
- }))), a = () => rt.HttpServerRequest.pipe(N.flatMap((t) => {
1976
+ }))), a = () => it.HttpServerRequest.pipe(N.flatMap((t) => {
1977
1977
  let n = e.inspectStream;
1978
- if (!n) return N.succeed(V.text("inspect stream not configured", { status: 404 }));
1978
+ if (!n) return N.succeed(B.text("inspect stream not configured", { status: 404 }));
1979
1979
  let r = {};
1980
1980
  for (let [e, n] of Object.entries(t.headers)) n !== void 0 && (r[e.toLowerCase()] = Array.isArray(n) ? n.join(", ") : n);
1981
1981
  let i = n.corsHeaders(r.origin);
1982
- if (n.isDisabled()) return N.succeed(V.text(JSON.stringify({ error: "inspect disabled (VOLTRO_INSPECT=off)" }), {
1982
+ if (n.isDisabled()) return N.succeed(B.text(JSON.stringify({ error: "inspect disabled (VOLTRO_INSPECT=off)" }), {
1983
1983
  status: 503,
1984
1984
  contentType: "application/json; charset=utf-8",
1985
1985
  headers: i
1986
1986
  }));
1987
1987
  let a = n.authorize(r);
1988
- if (!a.ok) return N.succeed(V.text(JSON.stringify({
1988
+ if (!a.ok) return N.succeed(B.text(JSON.stringify({
1989
1989
  error: "unauthorized",
1990
1990
  reason: a.reason
1991
1991
  }), {
@@ -1997,7 +1997,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
1997
1997
  if (!f || e.indexOf("event: ") !== 0) return !0;
1998
1998
  let t = e.indexOf("\n", 7);
1999
1999
  return t < 0 || f.has(e.slice(7, t).trim());
2000
- }, m = z.asyncScoped((e) => N.gen(function* () {
2000
+ }, m = R.asyncScoped((e) => N.gen(function* () {
2001
2001
  if (e.single(o.encode("retry: 5000\n\n")), !u) for (let t of n.replay()) p(t) && e.single(o.encode(t));
2002
2002
  let t = n.subscribe((t) => {
2003
2003
  p(t) && e.single(o.encode(t));
@@ -2008,7 +2008,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2008
2008
  clearInterval(r), t();
2009
2009
  }));
2010
2010
  }));
2011
- return N.succeed(V.stream(m, {
2011
+ return N.succeed(B.stream(m, {
2012
2012
  status: 200,
2013
2013
  headers: {
2014
2014
  "content-type": "text/event-stream; charset=utf-8",
@@ -2018,26 +2018,26 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2018
2018
  ...i
2019
2019
  }
2020
2020
  }));
2021
- })), o = B.add("*", "/_voltro/inspect/*", rt.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2022
- if (!e.inspectRoute) return V.text("inspect route not configured", { status: 404 });
2021
+ })), o = z.add("*", "/_voltro/inspect/*", it.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2022
+ if (!e.inspectRoute) return B.text("inspect route not configured", { status: 404 });
2023
2023
  let n = {};
2024
2024
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2025
2025
  let r;
2026
2026
  t.method !== "GET" && t.method !== "HEAD" && t.method !== "OPTIONS" && (r = yield* t.text.pipe(N.orElseSucceed(() => "")));
2027
2027
  let i = e.inspectRoute.handle(t.url, n, t.method, r), a = i instanceof Promise ? yield* N.promise(() => i) : i;
2028
- return a === null ? V.text("inspect route not found", { status: 404 }) : V.text(a.body, {
2028
+ return a === null ? B.text("inspect route not found", { status: 404 }) : B.text(a.body, {
2029
2029
  status: a.status,
2030
2030
  contentType: a.contentType,
2031
2031
  headers: a.headers ?? {}
2032
2032
  });
2033
2033
  })))), s = P.empty;
2034
- e.inspectRoute !== void 0 && (s = e.inspectStream === void 0 ? P.mergeAll(B.add("*", "/_voltro/inspect", i(!0)), o) : P.mergeAll(B.add("GET", "/_voltro/inspect/stream", a()), B.add("*", "/_voltro/inspect", i(!0)), o));
2034
+ e.inspectRoute !== void 0 && (s = e.inspectStream === void 0 ? P.mergeAll(z.add("*", "/_voltro/inspect", i(!0)), o) : P.mergeAll(z.add("GET", "/_voltro/inspect/stream", a()), z.add("*", "/_voltro/inspect", i(!0)), o));
2035
2035
  let c = P.empty;
2036
2036
  if (e.webhookRoutes !== void 0 && e.webhookRoutes.size > 0) {
2037
- let t = (e) => rt.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2037
+ let t = (e) => it.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2038
2038
  let n = {};
2039
2039
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2040
- let r = t.method !== "GET" && t.method !== "HEAD" ? yield* t.text.pipe(N.orElseSucceed(() => "")) : "", i = new TextEncoder().encode(r), a = t.url.split("?")[0], o = ur(n.traceparent), s = yield* N.promise(() => e.handle({
2040
+ let r = t.method !== "GET" && t.method !== "HEAD" ? yield* t.text.pipe(N.orElseSucceed(() => "")) : "", i = new TextEncoder().encode(r), a = t.url.split("?")[0], o = dr(n.traceparent), s = yield* N.promise(() => e.handle({
2041
2041
  method: t.method,
2042
2042
  path: a,
2043
2043
  headers: n,
@@ -2049,16 +2049,16 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2049
2049
  },
2050
2050
  ...o ? { parent: o } : {}
2051
2051
  }));
2052
- return V.text(s.body, {
2052
+ return B.text(s.body, {
2053
2053
  status: s.status,
2054
2054
  contentType: s.contentType
2055
2055
  });
2056
- }))), n = Array.from(e.webhookRoutes.entries()).map(([e, n]) => B.add("*", e, t(n)));
2056
+ }))), n = Array.from(e.webhookRoutes.entries()).map(([e, n]) => z.add("*", e, t(n)));
2057
2057
  c = P.mergeAll(...n);
2058
2058
  }
2059
2059
  let l = P.empty;
2060
2060
  if (e.httpRoutes !== void 0 && e.httpRoutes.length > 0) {
2061
- let t = (e) => rt.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2061
+ let t = (e) => it.HttpServerRequest.pipe(N.flatMap((t) => N.gen(function* () {
2062
2062
  let n = {};
2063
2063
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2064
2064
  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(N.orElseSucceed(() => /* @__PURE__ */ new ArrayBuffer(0)))) : /* @__PURE__ */ new Uint8Array(), s = {
@@ -2067,8 +2067,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2067
2067
  query: a,
2068
2068
  headers: n,
2069
2069
  rawBody: o
2070
- }, c = yield* N.promise(() => dt(e, s));
2071
- c.status >= 500 && Fr.warn(`${t.method} ${i} → ${c.status}`, {
2070
+ }, c = yield* N.promise(() => ft(e, s));
2071
+ c.status >= 500 && Ir.warn(`${t.method} ${i} → ${c.status}`, {
2072
2072
  method: t.method,
2073
2073
  path: i,
2074
2074
  status: c.status,
@@ -2079,45 +2079,45 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2079
2079
  ...c.contentType ? { contentType: c.contentType } : {},
2080
2080
  headers: l
2081
2081
  };
2082
- return c.body instanceof Uint8Array ? V.uint8Array(c.body, u) : V.text(c.body ?? "", u);
2083
- })), N.tapErrorCause((t) => j.isInterruptedOnly(t) ? N.void : N.sync(() => Fr.error(`${e.map((e) => e.method).join("|")} ${e[0].path} threw`, { path: e[0].path }, j.squash(t))))), n = /* @__PURE__ */ new Map();
2082
+ return c.body instanceof Uint8Array ? B.uint8Array(c.body, u) : B.text(c.body ?? "", u);
2083
+ })), N.tapErrorCause((t) => M.isInterruptedOnly(t) ? N.void : N.sync(() => Ir.error(`${e.map((e) => e.method).join("|")} ${e[0].path} threw`, { path: e[0].path }, M.squash(t))))), n = /* @__PURE__ */ new Map();
2084
2084
  for (let t of e.httpRoutes) {
2085
2085
  let e = n.get(t.path);
2086
2086
  e ? e.push(t) : n.set(t.path, [t]);
2087
2087
  }
2088
2088
  let r = [...n.entries()].flatMap(([e, n]) => {
2089
2089
  let r = n.length === 1 ? n[0].method : "*", i = t(n);
2090
- return [B.add(r, e, i), B.add(r, `${e}/*`, i)];
2090
+ return [z.add(r, e, i), z.add(r, `${e}/*`, i)];
2091
2091
  });
2092
2092
  l = P.mergeAll(...r);
2093
2093
  }
2094
- let u = lt.layerProtocolWebsocketRouter({ path: n }), d = lt.layer(e.group), f = lt.layer(e.group).pipe(P.provide(lt.layerProtocolHttpRouter({ path: "/rpc" })), P.provide(ct.layerJson), P.provide(e.httpHandlersLayer ?? e.handlersLayer)), p = P.scopedDiscard(N.gen(function* () {
2095
- let e = yield* lt.Protocol;
2094
+ let u = ut.layerProtocolWebsocketRouter({ path: n }), d = ut.layer(e.group), f = ut.layer(e.group).pipe(P.provide(ut.layerProtocolHttpRouter({ path: "/rpc" })), P.provide(lt.layerJson), P.provide(e.httpHandlersLayer ?? e.handlersLayer)), p = P.scopedDiscard(N.gen(function* () {
2095
+ let e = yield* ut.Protocol;
2096
2096
  yield* N.forkScoped(N.gen(function* () {
2097
2097
  let t = yield* e.disconnects.take;
2098
- $n(t), rr(t);
2098
+ er(t), ir(t);
2099
2099
  }).pipe(N.forever));
2100
- })), m = P.mergeAll(d, p).pipe(P.provide(u), P.provide(ct.layerJson), P.provide(e.handlersLayer)), h = P.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) => N.gen(function* () {
2101
- let t = yield* rt.HttpServerRequest, n = {};
2100
+ })), m = P.mergeAll(d, p).pipe(P.provide(u), P.provide(lt.layerJson), P.provide(e.handlersLayer)), h = P.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) => N.gen(function* () {
2101
+ let t = yield* it.HttpServerRequest, n = {};
2102
2102
  for (let [e, r] of Object.entries(t.headers)) r !== void 0 && (n[e.toLowerCase()] = Array.isArray(r) ? r.join(", ") : r);
2103
2103
  let r = t.url.indexOf("?"), i = r === -1 ? t.url : t.url.slice(0, r);
2104
2104
  if (t.method === "POST" && i === "/rpc") {
2105
2105
  let e = n["content-length"];
2106
- if (e !== void 0 && Number(e) > y) return V.text("rpc payload too large", {
2106
+ if (e !== void 0 && Number(e) > y) return B.text("rpc payload too large", {
2107
2107
  status: 413,
2108
2108
  headers: b
2109
2109
  });
2110
2110
  }
2111
- if (_ && (i === "/internal/liveness" || i === "/internal/readiness")) return i === "/internal/liveness" ? V.text("ok", {
2111
+ if (_ && (i === "/internal/liveness" || i === "/internal/readiness")) return i === "/internal/liveness" ? B.text("ok", {
2112
2112
  status: 200,
2113
2113
  headers: b
2114
- }) : _.isReady() ? _.ping && !(yield* N.tryPromise(() => _.ping()).pipe(N.orElseSucceed(() => !1))) ? V.text("not-ready: dependency", {
2114
+ }) : _.isReady() ? _.ping && !(yield* N.tryPromise(() => _.ping()).pipe(N.orElseSucceed(() => !1))) ? B.text("not-ready: dependency", {
2115
2115
  status: 503,
2116
2116
  headers: b
2117
- }) : V.text("ready", {
2117
+ }) : B.text("ready", {
2118
2118
  status: 200,
2119
2119
  headers: b
2120
- }) : V.text("not-ready", {
2120
+ }) : B.text("not-ready", {
2121
2121
  status: 503,
2122
2122
  headers: b
2123
2123
  });
@@ -2134,17 +2134,17 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2134
2134
  headers: n,
2135
2135
  remoteAddr: c
2136
2136
  })).pipe(N.orElseSucceed(() => null));
2137
- return l === null ? yield* e : V.text(l.body ?? "", {
2137
+ return l === null ? yield* e : B.text(l.body ?? "", {
2138
2138
  status: l.status,
2139
2139
  ...l.headers ? { headers: l.headers } : {}
2140
2140
  });
2141
- }), S = P.unwrapEffect(B.toHttpEffect(h).pipe(N.map((e) => nt.serve(x(e))))).pipe(P.provide(at.layer(() => r, { port: t })), P.provide(it.layer));
2141
+ }), S = P.unwrapEffect(z.toHttpEffect(h).pipe(N.map((e) => rt.serve(x(e))))).pipe(P.provide(ot.layer(() => r, { port: t })), P.provide(at.layer));
2142
2142
  e.tracerLayer && (S = S.pipe(P.provide(e.tracerLayer)));
2143
- let C = A({ scope: "voltro:rpc" }), ee = P.launch(S).pipe(N.catchAllCause((e) => N.sync(() => {
2144
- C.error("rpc server crashed", {}, j.squash(e)), process.exit(1);
2143
+ let C = j({ scope: "voltro:rpc" }), ee = P.launch(S).pipe(N.catchAllCause((e) => N.sync(() => {
2144
+ C.error("rpc server crashed", {}, M.squash(e)), process.exit(1);
2145
2145
  })));
2146
- return ot.runMain(ee, { disableErrorReporting: !0 }), r;
2147
- }, Wr = (e, t = 1e4) => new Promise((n, r) => {
2146
+ return st.runMain(ee, { disableErrorReporting: !0 }), r;
2147
+ }, Gr = (e, t = 1e4) => new Promise((n, r) => {
2148
2148
  if (e.listening) {
2149
2149
  n();
2150
2150
  return;
@@ -2160,13 +2160,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2160
2160
  o(e);
2161
2161
  }
2162
2162
  a = setTimeout(() => o(/* @__PURE__ */ Error(`rpc server did not bind within ${t}ms`)), t), e.on("listening", s), e.on("error", c);
2163
- }), Gr = () => {
2163
+ }), Kr = () => {
2164
2164
  let e = process.env.FRAMEWORK_TRACING?.toLowerCase();
2165
2165
  return e === "console" || e === "otlp" || e === "off" ? e : process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ? "otlp" : "off";
2166
- }, Kr = () => {
2166
+ }, qr = () => {
2167
2167
  let e = process.env.FRAMEWORK_METRICS?.toLowerCase();
2168
2168
  return e === "console" || e === "otlp" || e === "off" ? e : process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ? "otlp" : "off";
2169
- }, qr = async () => {
2169
+ }, Jr = async () => {
2170
2170
  let [e, t, n, r, i] = await Promise.all([
2171
2171
  import("@opentelemetry/sdk-trace-base"),
2172
2172
  import("@opentelemetry/sdk-metrics"),
@@ -2181,7 +2181,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2181
2181
  otlpMetrics: r,
2182
2182
  nodeSdk: i
2183
2183
  };
2184
- }, Jr = (e, t, n) => {
2184
+ }, Yr = (e, t, n) => {
2185
2185
  let { PeriodicExportingMetricReader: r, ConsoleMetricExporter: i, InMemoryMetricExporter: a, AggregationTemporality: o } = e.sdkMetrics;
2186
2186
  if (t === "off") return {
2187
2187
  reader: void 0,
@@ -2204,8 +2204,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2204
2204
  }),
2205
2205
  inMemory: void 0
2206
2206
  };
2207
- }, Yr = async (e = {}) => {
2208
- let t = e.mode ?? Gr(), n = e.metricsMode ?? Kr(), r = e.extraSpanProcessors ?? [], i = e.extraMetricReaders ?? [];
2207
+ }, Xr = async (e = {}) => {
2208
+ let t = e.mode ?? Kr(), n = e.metricsMode ?? qr(), r = e.extraSpanProcessors ?? [], i = e.extraMetricReaders ?? [];
2209
2209
  if (t === "off" && e.traceSink === void 0 && n === "off" && r.length === 0 && i.length === 0) return {
2210
2210
  layer: P.empty,
2211
2211
  mode: t,
@@ -2214,13 +2214,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2214
2214
  metricsMode: n,
2215
2215
  inMemoryMetricExporter: void 0
2216
2216
  };
2217
- let a = await qr(), { 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;
2217
+ let a = await Jr(), { 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;
2218
2218
  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());
2219
2219
  let m = [
2220
2220
  ...e.traceSink ? [e.traceSink] : [],
2221
2221
  ...p ? [p] : [],
2222
2222
  ...r
2223
- ], h = m.length === 1 ? m[0] : m, { reader: g, inMemory: _ } = Jr(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 = {
2223
+ ], h = m.length === 1 ? m[0] : m, { reader: g, inMemory: _ } = Yr(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 = {
2224
2224
  serviceName: d,
2225
2225
  ...e.serviceVersion ? { serviceVersion: e.serviceVersion } : {},
2226
2226
  ...e.resourceAttributes ? { attributes: e.resourceAttributes } : {}
@@ -2238,18 +2238,18 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2238
2238
  metricsMode: n,
2239
2239
  inMemoryMetricExporter: _
2240
2240
  };
2241
- }, Xr = {
2242
- [mt.INTERNAL]: "internal",
2243
- [mt.SERVER]: "server",
2244
- [mt.CLIENT]: "client",
2245
- [mt.PRODUCER]: "producer",
2246
- [mt.CONSUMER]: "consumer"
2247
- }, Zr = (e) => e[0] * 1e3 + e[1] / 1e6, Qr = 512, $r = 48, ei = (e) => {
2241
+ }, Zr = {
2242
+ [ht.INTERNAL]: "internal",
2243
+ [ht.SERVER]: "server",
2244
+ [ht.CLIENT]: "client",
2245
+ [ht.PRODUCER]: "producer",
2246
+ [ht.CONSUMER]: "consumer"
2247
+ }, Qr = (e) => e[0] * 1e3 + e[1] / 1e6, $r = 512, ei = 48, ti = (e) => {
2248
2248
  let t = {}, n = 0;
2249
2249
  for (let r in e) {
2250
- if (n >= $r) break;
2250
+ if (n >= ei) break;
2251
2251
  let i = e[r];
2252
- if (typeof i == "string") t[r] = i.length > Qr ? `${i.slice(0, Qr)}…` : i;
2252
+ if (typeof i == "string") t[r] = i.length > $r ? `${i.slice(0, $r)}…` : i;
2253
2253
  else if (typeof i == "number" || typeof i == "boolean" || i == null) t[r] = i;
2254
2254
  else {
2255
2255
  let e;
@@ -2258,49 +2258,49 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2258
2258
  } catch {
2259
2259
  e = String(i);
2260
2260
  }
2261
- t[r] = e.length > Qr ? `${e.slice(0, Qr)}…` : e;
2261
+ t[r] = e.length > $r ? `${e.slice(0, $r)}…` : e;
2262
2262
  }
2263
2263
  n++;
2264
2264
  }
2265
2265
  return t;
2266
- }, ti = {
2267
- [ht.UNSET]: "unset",
2268
- [ht.OK]: "ok",
2269
- [ht.ERROR]: "error"
2270
- }, ni = (e) => {
2266
+ }, ni = {
2267
+ [gt.UNSET]: "unset",
2268
+ [gt.OK]: "ok",
2269
+ [gt.ERROR]: "error"
2270
+ }, ri = (e) => {
2271
2271
  let t = e.spanContext(), n = e.events.length > 0 ? e.events.slice(0, 16).map((e) => ({
2272
2272
  name: e.name,
2273
- tsMs: Zr(e.time),
2274
- ...e.attributes ? { attributes: ei(e.attributes) } : {}
2273
+ tsMs: Qr(e.time),
2274
+ ...e.attributes ? { attributes: ti(e.attributes) } : {}
2275
2275
  })) : void 0;
2276
2276
  return {
2277
2277
  traceId: t.traceId,
2278
2278
  spanId: t.spanId,
2279
2279
  parentSpanId: e.parentSpanContext?.spanId ?? null,
2280
2280
  name: e.name,
2281
- kind: Xr[e.kind] ?? "internal",
2282
- attributes: ei(e.attributes),
2283
- startMs: Zr(e.startTime),
2284
- endMs: Zr(e.endTime),
2285
- durationMs: Zr(e.duration),
2286
- status: ti[e.status.code] ?? "unset",
2281
+ kind: Zr[e.kind] ?? "internal",
2282
+ attributes: ti(e.attributes),
2283
+ startMs: Qr(e.startTime),
2284
+ endMs: Qr(e.endTime),
2285
+ durationMs: Qr(e.duration),
2286
+ status: ni[e.status.code] ?? "unset",
2287
2287
  ...e.status.message ? { statusMessage: e.status.message } : {},
2288
2288
  ...n ? { events: n } : {}
2289
2289
  };
2290
- }, ri = (e) => ({
2290
+ }, ii = (e) => ({
2291
2291
  onStart: () => {},
2292
2292
  onEnd: (t) => {
2293
2293
  try {
2294
- e(ni(t));
2294
+ e(ri(t));
2295
2295
  } catch {}
2296
2296
  },
2297
2297
  forceFlush: () => Promise.resolve(),
2298
2298
  shutdown: () => Promise.resolve()
2299
- }), ii = { get: (e) => Promise.resolve(process.env[e]) }, ai = ii, oi = (e) => {
2300
- ai = e;
2301
- }, si = () => {
2302
- ai = ii;
2303
- }, ci = async (e) => await ai.get(e) ?? process.env[e], li = (e) => process.env[e], ui = (e, t = 6e4, n = () => Date.now()) => {
2299
+ }), ai = { get: (e) => Promise.resolve(process.env[e]) }, oi = ai, si = (e) => {
2300
+ oi = e;
2301
+ }, ci = () => {
2302
+ oi = ai;
2303
+ }, li = async (e) => await oi.get(e) ?? process.env[e], ui = (e) => process.env[e], di = (e, t = 6e4, n = () => Date.now()) => {
2304
2304
  let r = /* @__PURE__ */ new Map();
2305
2305
  return { get: async (i) => {
2306
2306
  let a = r.get(i);
@@ -2311,12 +2311,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2311
2311
  at: n()
2312
2312
  }), o;
2313
2313
  } };
2314
- }, di = (e) => {
2314
+ }, fi = (e) => {
2315
2315
  let t = {
2316
2316
  accept: "application/json",
2317
2317
  ...e.headers ?? {}
2318
2318
  };
2319
- if (e.perKey) return ui({ get: async (n) => {
2319
+ if (e.perKey) return di({ get: async (n) => {
2320
2320
  let r = await fetch(`${e.url.replace(/\/$/, "")}/${encodeURIComponent(n)}`, { headers: t });
2321
2321
  if (!r.ok) return;
2322
2322
  let i = await r.json();
@@ -2327,59 +2327,59 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2327
2327
  let t = (await a())[e];
2328
2328
  return typeof t == "string" ? t : void 0;
2329
2329
  } };
2330
- }, fi = (e) => e === void 0 || e === "env" || typeof e == "object" && e.kind === "env" ? ii : e.kind === "custom" ? e.backend : e.kind === "http" ? di(e) : ii, pi = (e) => /^[0-9a-f]{64}$/i.test(e) ? Buffer.from(e, "hex") : ye(e, "voltro:field-encryption:v1", 32), mi = (t) => {
2330
+ }, pi = (e) => e === void 0 || e === "env" || typeof e == "object" && e.kind === "env" ? ai : e.kind === "custom" ? e.backend : e.kind === "http" ? fi(e) : ai, mi = (e) => /^[0-9a-f]{64}$/i.test(e) ? Buffer.from(e, "hex") : ve(e, "voltro:field-encryption:v1", 32), hi = (t) => {
2331
2331
  if (t.length !== 32) throw Error(`field cipher key must be 32 bytes, got ${t.length}`);
2332
2332
  return {
2333
2333
  encrypt: (n) => {
2334
- let r = _e(12), i = me("aes-256-gcm", t, r), a = Buffer.concat([i.update(n, "utf8"), i.final()]), o = i.getAuthTag();
2334
+ let r = ge(12), i = pe("aes-256-gcm", t, r), a = Buffer.concat([i.update(n, "utf8"), i.final()]), o = i.getAuthTag();
2335
2335
  return `${e}${r.toString("base64")}:${o.toString("base64")}:${a.toString("base64")}`;
2336
2336
  },
2337
2337
  decrypt: (n) => {
2338
2338
  let [r, i, a] = n.slice(e.length).split(":");
2339
2339
  if (!r || !i || a === void 0) throw Error("field cipher: malformed ciphertext");
2340
- let o = he("aes-256-gcm", t, Buffer.from(r, "base64"));
2340
+ let o = me("aes-256-gcm", t, Buffer.from(r, "base64"));
2341
2341
  return o.setAuthTag(Buffer.from(i, "base64")), Buffer.concat([o.update(Buffer.from(a, "base64")), o.final()]).toString("utf8");
2342
2342
  }
2343
2343
  };
2344
- }, hi = (e) => mi(pi(e)), gi, _i = (e) => {
2345
- gi = e;
2346
- }, vi = () => gi, yi = "no field cipher registered — enable `@voltro/plugin-governance` `governancePlugin({ fieldEncryption: { key } })` (or call setFieldCipher) so a key is available.", q = (e) => {
2347
- let t = vi();
2348
- if (!t) throw Error(`encryptField: ${yi}`);
2344
+ }, gi = (e) => hi(mi(e)), _i, vi = (e) => {
2345
+ _i = e;
2346
+ }, yi = () => _i, bi = "no field cipher registered — enable `@voltro/plugin-governance` `governancePlugin({ fieldEncryption: { key } })` (or call setFieldCipher) so a key is available.", K = (e) => {
2347
+ let t = yi();
2348
+ if (!t) throw Error(`encryptField: ${bi}`);
2349
2349
  return t.encrypt(e);
2350
- }, bi = (e) => {
2350
+ }, xi = (e) => {
2351
2351
  if (!x(e)) return e;
2352
- let t = vi();
2353
- if (!t) throw Error(`decryptField: ${yi}`);
2352
+ let t = yi();
2353
+ if (!t) throw Error(`decryptField: ${bi}`);
2354
2354
  return t.decrypt(e);
2355
- }, xi = "_voltro_idempotency", Si = (e) => {
2355
+ }, Si = "_voltro_idempotency", Ci = (e) => {
2356
2356
  if (e == null) return null;
2357
2357
  let t = typeof e == "string" ? JSON.parse(e) : e;
2358
2358
  return t && typeof t == "object" && "status" in t ? t : null;
2359
- }, Ci = (e) => ({
2359
+ }, wi = (e) => ({
2360
2360
  scope: e.scope,
2361
2361
  key: e.key,
2362
2362
  status: e.status === "completed" ? "completed" : "in_flight",
2363
- response: Si(e.response),
2364
- createdAt: Be(e.createdAt)
2365
- }), wi = async (e, n, r) => (await e.query({
2366
- table: xi,
2363
+ response: Ci(e.response),
2364
+ createdAt: ze(e.createdAt)
2365
+ }), Ti = async (e, n, r) => (await e.query({
2366
+ table: Si,
2367
2367
  predicate: t(u("scope", n), u("key", r)),
2368
2368
  order: [],
2369
2369
  take: 1,
2370
2370
  skip: void 0,
2371
2371
  projection: void 0
2372
- }))[0] ?? null, Ti = (e) => ({
2372
+ }))[0] ?? null, Ei = (e) => ({
2373
2373
  get: async (t, n) => {
2374
- let r = await wi(e, t, n);
2375
- return r ? Ci(r) : null;
2374
+ let r = await Ti(e, t, n);
2375
+ return r ? wi(r) : null;
2376
2376
  },
2377
2377
  claim: async (t, n, r, i) => {
2378
2378
  for (let a = 0; a < 2; a++) {
2379
2379
  let a = f({
2380
2380
  kind: "typeid",
2381
2381
  prefix: "idem"
2382
- }, xi), o = await e.insertIgnore(xi, {
2382
+ }, Si), o = await e.insertIgnore(Si, {
2383
2383
  id: a,
2384
2384
  scope: t,
2385
2385
  key: n,
@@ -2388,11 +2388,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2388
2388
  createdAt: new Date(r)
2389
2389
  }, { conflictColumns: ["scope", "key"] });
2390
2390
  if (o.id === a) return "claimed";
2391
- if (r - Be(o.createdAt) < i) return Ci(o);
2392
- await e.delete(xi, o.id);
2391
+ if (r - ze(o.createdAt) < i) return wi(o);
2392
+ await e.delete(Si, o.id);
2393
2393
  }
2394
- let a = await wi(e, t, n);
2395
- return a ? Ci(a) : {
2394
+ let a = await Ti(e, t, n);
2395
+ return a ? wi(a) : {
2396
2396
  scope: t,
2397
2397
  key: n,
2398
2398
  status: "in_flight",
@@ -2401,36 +2401,36 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2401
2401
  };
2402
2402
  },
2403
2403
  complete: async (t, n, r, i) => {
2404
- let a = await wi(e, t, n);
2405
- a && await e.update(xi, a.id, {
2404
+ let a = await Ti(e, t, n);
2405
+ a && await e.update(Si, a.id, {
2406
2406
  status: "completed",
2407
2407
  response: r
2408
2408
  });
2409
2409
  },
2410
2410
  release: async (t, n) => {
2411
- let r = await wi(e, t, n);
2412
- r && await e.delete(xi, r.id);
2411
+ let r = await Ti(e, t, n);
2412
+ r && await e.delete(Si, r.id);
2413
2413
  }
2414
- }), J = "_voltro_kv", Ei = (e) => {
2414
+ }), q = "_voltro_kv", Di = (e) => {
2415
2415
  if (e == null) return null;
2416
2416
  if (e instanceof Date) return e.getTime();
2417
2417
  if (typeof e == "number") return e;
2418
2418
  let t = Date.parse(String(e));
2419
2419
  return Number.isNaN(t) ? null : t;
2420
- }, Di = (e, t) => {
2421
- let n = Ei(e.expiresAt);
2420
+ }, Oi = (e, t) => {
2421
+ let n = Di(e.expiresAt);
2422
2422
  return n !== null && n <= t;
2423
- }, Oi = (e) => e === null ? null : JSON.parse(e), ki = async (e, t) => (await e.query({
2424
- table: J,
2423
+ }, ki = (e) => e === null ? null : JSON.parse(e), Ai = async (e, t) => (await e.query({
2424
+ table: q,
2425
2425
  predicate: u("key", t),
2426
2426
  order: [],
2427
2427
  take: 1,
2428
2428
  skip: void 0,
2429
2429
  projection: void 0
2430
- }))[0] ?? null, Ai = (e) => {
2430
+ }))[0] ?? null, ji = (e) => {
2431
2431
  let n = (e, t, n) => N.tryPromise({
2432
2432
  try: n,
2433
- catch: (n) => new _t({
2433
+ catch: (n) => new vt({
2434
2434
  operation: e,
2435
2435
  key: t,
2436
2436
  cause: String(n)
@@ -2438,15 +2438,15 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2438
2438
  });
2439
2439
  return {
2440
2440
  get: (t) => n("get", t, async () => {
2441
- let n = await ki(e, t);
2442
- return n === null ? I.none() : Di(n, Date.now()) ? (await e.delete(J, n.id), I.none()) : I.some(Oi(n.value));
2441
+ let n = await Ai(e, t);
2442
+ return n === null ? Xe.none() : Oi(n, Date.now()) ? (await e.delete(q, n.id), Xe.none()) : Xe.some(ki(n.value));
2443
2443
  }),
2444
2444
  set: (t, r, i) => n("set", t, async () => {
2445
2445
  let n = Date.now(), a = i?.ttlMs !== void 0 && i.ttlMs > 0 ? new Date(n + i.ttlMs) : null, o = f({
2446
2446
  kind: "typeid",
2447
2447
  prefix: "kv"
2448
- }, J);
2449
- await e.upsert(J, {
2448
+ }, q);
2449
+ await e.upsert(q, {
2450
2450
  id: o,
2451
2451
  key: t,
2452
2452
  value: JSON.stringify(r),
@@ -2462,39 +2462,39 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2462
2462
  });
2463
2463
  }),
2464
2464
  delete: (t) => n("delete", t, async () => {
2465
- let n = await ki(e, t);
2465
+ let n = await Ai(e, t);
2466
2466
  if (n === null) return !1;
2467
- let r = !Di(n, Date.now());
2468
- return await e.delete(J, n.id), r;
2467
+ let r = !Oi(n, Date.now());
2468
+ return await e.delete(q, n.id), r;
2469
2469
  }),
2470
2470
  has: (t) => n("has", t, async () => {
2471
- let n = await ki(e, t);
2472
- return n === null ? !1 : Di(n, Date.now()) ? (await e.delete(J, n.id), !1) : !0;
2471
+ let n = await Ai(e, t);
2472
+ return n === null ? !1 : Oi(n, Date.now()) ? (await e.delete(q, n.id), !1) : !0;
2473
2473
  }),
2474
2474
  list: (r) => n("list", "", async () => {
2475
- let n = Date.now(), i = ie(S("expiresAt"), h("expiresAt", new Date(n))), a = r === "" ? i : t(o("key", r), i), s = await e.query({
2476
- table: J,
2475
+ let n = Date.now(), i = E(S("expiresAt"), h("expiresAt", new Date(n))), a = r === "" ? i : t(o("key", r), i), s = await e.query({
2476
+ table: q,
2477
2477
  predicate: a,
2478
2478
  order: [],
2479
2479
  take: void 0,
2480
2480
  skip: void 0,
2481
2481
  projection: void 0
2482
2482
  }), c = [];
2483
- for (let e of s) Di(e, n) || (r === "" || e.key.startsWith(r)) && c.push(e.key);
2483
+ for (let e of s) Oi(e, n) || (r === "" || e.key.startsWith(r)) && c.push(e.key);
2484
2484
  return c;
2485
2485
  }),
2486
2486
  clear: () => n("clear", "", async () => {
2487
- await e.deleteMany(J, { where: {
2487
+ await e.deleteMany(q, { where: {
2488
2488
  column: "id",
2489
2489
  op: "isNotNull"
2490
2490
  } });
2491
2491
  })
2492
2492
  };
2493
- }, ji = async ({ store: e, env: t = process.env }) => {
2494
- let n = (t.KV_BACKEND ?? "database").toLowerCase(), r = n === "redis" ? "redis" : n === "memory" ? "memory" : "database", i = r === "redis" ? xt(t.KV_KEY_PREFIX ? { keyPrefix: t.KV_KEY_PREFIX } : {}).pipe(P.provide(yt)) : r === "memory" ? bt() : P.succeed(vt, vt.of(Ai(e))), a = qe.make(gt.Default.pipe(P.provide(i))), o = await a.runPromise(gt);
2493
+ }, Mi = async ({ store: e, env: t = process.env }) => {
2494
+ let n = (t.KV_BACKEND ?? "database").toLowerCase(), r = n === "redis" ? "redis" : n === "memory" ? "memory" : "database", i = r === "redis" ? St(t.KV_KEY_PREFIX ? { keyPrefix: t.KV_KEY_PREFIX } : {}).pipe(P.provide(bt)) : r === "memory" ? xt() : P.succeed(yt, yt.of(ji(e))), a = qe.make(_t.Default.pipe(P.provide(i))), o = await a.runPromise(_t);
2495
2495
  return {
2496
2496
  kv: {
2497
- get: (e) => a.runPromise(o.get(e)).then((e) => I.getOrUndefined(e)),
2497
+ get: (e) => a.runPromise(o.get(e)).then((e) => Xe.getOrUndefined(e)),
2498
2498
  getOrElse: (e, t) => a.runPromise(o.getOrElse(e, t)),
2499
2499
  set: (e, t, n) => a.runPromise(o.set(e, t, n)),
2500
2500
  delete: (e) => a.runPromise(o.delete(e)),
@@ -2506,7 +2506,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2506
2506
  backend: r,
2507
2507
  dispose: () => a.dispose()
2508
2508
  };
2509
- }, Mi = {
2509
+ }, Ni = {
2510
2510
  get: () => Promise.resolve(void 0),
2511
2511
  getOrElse: (e, t) => Promise.resolve(t()),
2512
2512
  set: () => Promise.resolve(),
@@ -2514,7 +2514,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2514
2514
  has: () => Promise.resolve(!1),
2515
2515
  list: () => Promise.resolve([]),
2516
2516
  clear: () => Promise.resolve()
2517
- }, Ni = "_voltro_api_keys", Pi = (e) => ge("sha256").update(e, "utf8").digest("hex"), Fi = (e = "voltro_") => `${e}${_e(30).toString("base64url")}`, Ii = (e) => ({
2517
+ }, Pi = "_voltro_api_keys", Fi = (e) => he("sha256").update(e, "utf8").digest("hex"), Ii = (e = "voltro_") => `${e}${ge(30).toString("base64url")}`, Li = (e) => ({
2518
2518
  id: e.id,
2519
2519
  name: e.name,
2520
2520
  keyPrefix: e.keyPrefix,
@@ -2524,17 +2524,17 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2524
2524
  expiresAt: e.expiresAt,
2525
2525
  revokedAt: e.revokedAt,
2526
2526
  createdAt: e.createdAt
2527
- }), Li = (e, t) => e.revokedAt === null && (e.expiresAt === null || e.expiresAt > t), Ri = (e, t = {}) => {
2527
+ }), Ri = (e, t) => e.revokedAt === null && (e.expiresAt === null || e.expiresAt > t), zi = (e, t = {}) => {
2528
2528
  let n = t.prefix ?? "voltro_", r = async (t) => {
2529
- let r = Fi(n), i = f({
2529
+ let r = Ii(n), i = f({
2530
2530
  kind: "typeid",
2531
2531
  prefix: "apikey"
2532
- }, Ni), a = t.scopes ?? [], o = t.expiresAt == null ? null : t.expiresAt instanceof Date ? t.expiresAt.getTime() : t.expiresAt;
2532
+ }, Pi), a = t.scopes ?? [], o = t.expiresAt == null ? null : t.expiresAt instanceof Date ? t.expiresAt.getTime() : t.expiresAt;
2533
2533
  return await e.insert({
2534
2534
  id: i,
2535
2535
  tenantId: t.tenantId ?? null,
2536
2536
  name: t.name,
2537
- hashedKey: Pi(r),
2537
+ hashedKey: Fi(r),
2538
2538
  keyPrefix: r.slice(0, n.length + 6),
2539
2539
  scopes: a,
2540
2540
  lastUsedAt: null,
@@ -2552,7 +2552,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2552
2552
  };
2553
2553
  }, i = async (t, n = Date.now()) => {
2554
2554
  let r = await e.findByHash(t);
2555
- return !r || !Li(r, n) ? null : (await e.patch(r.id, { lastUsedAt: n }), {
2555
+ return !r || !Ri(r, n) ? null : (await e.patch(r.id, { lastUsedAt: n }), {
2556
2556
  id: r.id,
2557
2557
  tenantId: r.tenantId ?? "",
2558
2558
  createdBy: r.createdBy ?? null,
@@ -2562,7 +2562,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2562
2562
  return {
2563
2563
  issue: r,
2564
2564
  resolveByHash: i,
2565
- verify: (e, t) => i(Pi(e), t),
2565
+ verify: (e, t) => i(Fi(e), t),
2566
2566
  revoke: async (t, n = Date.now()) => await e.findById(t) ? (await e.patch(t, { revokedAt: n }), !0) : !1,
2567
2567
  rotate: async (t, n = Date.now()) => {
2568
2568
  let i = await e.findById(t);
@@ -2573,9 +2573,9 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2573
2573
  createdBy: i.createdBy
2574
2574
  })) : null;
2575
2575
  },
2576
- list: async (t) => (await e.listByTenant(t)).map(Ii)
2576
+ list: async (t) => (await e.listByTenant(t)).map(Li)
2577
2577
  };
2578
- }, zi = () => {
2578
+ }, Bi = () => {
2579
2579
  let e = /* @__PURE__ */ new Map();
2580
2580
  return {
2581
2581
  insert: async (t) => {
@@ -2592,21 +2592,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2592
2592
  });
2593
2593
  }
2594
2594
  };
2595
- }, Bi = (e) => e == null ? null : e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : null, Vi = (e) => ({
2595
+ }, Vi = (e) => e == null ? null : e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : null, Hi = (e) => ({
2596
2596
  id: String(e.id),
2597
2597
  tenantId: e.tenantId ?? null,
2598
2598
  name: String(e.name),
2599
2599
  hashedKey: String(e.hashedKey),
2600
2600
  keyPrefix: String(e.keyPrefix),
2601
2601
  scopes: e.scopes ?? null,
2602
- lastUsedAt: Bi(e.lastUsedAt),
2603
- expiresAt: Bi(e.expiresAt),
2604
- revokedAt: Bi(e.revokedAt),
2602
+ lastUsedAt: Vi(e.lastUsedAt),
2603
+ expiresAt: Vi(e.expiresAt),
2604
+ revokedAt: Vi(e.revokedAt),
2605
2605
  createdBy: e.createdBy ?? null,
2606
- createdAt: Bi(e.createdAt) ?? 0
2607
- }), Hi = (e) => {
2606
+ createdAt: Vi(e.createdAt) ?? 0
2607
+ }), Ui = (e) => {
2608
2608
  let t = async (t) => await e.query({
2609
- table: Ni,
2609
+ table: Pi,
2610
2610
  predicate: t,
2611
2611
  order: [],
2612
2612
  take: void 0,
@@ -2624,61 +2624,61 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2624
2624
  };
2625
2625
  return {
2626
2626
  insert: async (t) => {
2627
- await e.insert(Ni, n(t));
2627
+ await e.insert(Pi, n(t));
2628
2628
  },
2629
2629
  findByHash: async (e) => {
2630
2630
  let n = await t(u("hashedKey", e));
2631
- return n[0] ? Vi(n[0]) : null;
2631
+ return n[0] ? Hi(n[0]) : null;
2632
2632
  },
2633
2633
  findById: async (e) => {
2634
2634
  let n = await t(u("id", e));
2635
- return n[0] ? Vi(n[0]) : null;
2635
+ return n[0] ? Hi(n[0]) : null;
2636
2636
  },
2637
- listByTenant: async (e) => (await t(e === null ? void 0 : u("tenantId", e))).map(Vi).filter((t) => e === null || t.tenantId === e),
2637
+ listByTenant: async (e) => (await t(e === null ? void 0 : u("tenantId", e))).map(Hi).filter((t) => e === null || t.tenantId === e),
2638
2638
  patch: async (t, r) => {
2639
- await e.update(Ni, t, n(r));
2639
+ await e.update(Pi, t, n(r));
2640
2640
  }
2641
2641
  };
2642
- }, Ui = (e, t = {}) => St({
2642
+ }, Wi = (e, t = {}) => Ct({
2643
2643
  id: "voltro-apikey",
2644
2644
  ...t.prefix ? { prefix: t.prefix } : {},
2645
2645
  resolveKey: (t) => e.resolveByHash(t)
2646
- }), Wi = (e) => {
2646
+ }), Gi = (e) => {
2647
2647
  let t = e.subject;
2648
2648
  return {
2649
2649
  id: t.id ?? null,
2650
2650
  tenantId: t.tenantId ?? null
2651
2651
  };
2652
- }, Gi = (e, t = "/v1/api-keys") => {
2653
- let n = R.Struct({
2654
- id: R.String,
2655
- name: R.String,
2656
- keyPrefix: R.String,
2657
- tenantId: R.NullOr(R.String),
2658
- scopes: R.Array(R.String),
2659
- lastUsedAt: R.NullOr(R.Number),
2660
- expiresAt: R.NullOr(R.Number),
2661
- revokedAt: R.NullOr(R.Number),
2662
- createdAt: R.Number
2652
+ }, Ki = (e, t = "/v1/api-keys") => {
2653
+ let n = L.Struct({
2654
+ id: L.String,
2655
+ name: L.String,
2656
+ keyPrefix: L.String,
2657
+ tenantId: L.NullOr(L.String),
2658
+ scopes: L.Array(L.String),
2659
+ lastUsedAt: L.NullOr(L.Number),
2660
+ expiresAt: L.NullOr(L.Number),
2661
+ revokedAt: L.NullOr(L.Number),
2662
+ createdAt: L.Number
2663
2663
  });
2664
2664
  return [
2665
- ut({
2665
+ dt({
2666
2666
  method: "POST",
2667
2667
  path: `${t}/issue`,
2668
2668
  summary: "Issue an API key (the token is returned ONCE).",
2669
- guards: [ft(xe)],
2670
- input: R.Struct({ body: R.Struct({
2671
- name: R.String,
2672
- scopes: R.optional(R.Array(R.String)),
2673
- expiresInDays: R.optional(R.Number)
2669
+ guards: [pt(be)],
2670
+ input: L.Struct({ body: L.Struct({
2671
+ name: L.String,
2672
+ scopes: L.optional(L.Array(L.String)),
2673
+ expiresInDays: L.optional(L.Number)
2674
2674
  }) }),
2675
- output: R.Struct({
2676
- id: R.String,
2677
- token: R.String,
2678
- keyPrefix: R.String
2675
+ output: L.Struct({
2676
+ id: L.String,
2677
+ token: L.String,
2678
+ keyPrefix: L.String
2679
2679
  }),
2680
2680
  handler: async (t, n) => {
2681
- let r = t.body, i = Wi(n), a = await e.issue({
2681
+ let r = t.body, i = Gi(n), a = await e.issue({
2682
2682
  tenantId: i.tenantId,
2683
2683
  name: r.name,
2684
2684
  ...r.scopes ? { scopes: r.scopes } : {},
@@ -2692,72 +2692,72 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2692
2692
  };
2693
2693
  }
2694
2694
  }),
2695
- ut({
2695
+ dt({
2696
2696
  method: "GET",
2697
2697
  path: t,
2698
2698
  summary: "List the caller tenant's API keys (no secrets).",
2699
- guards: [ft(xe)],
2700
- input: R.Struct({}),
2701
- output: R.Struct({ keys: R.Array(n) }),
2702
- handler: async (t, n) => ({ keys: [...await e.list(Wi(n).tenantId)] })
2699
+ guards: [pt(be)],
2700
+ input: L.Struct({}),
2701
+ output: L.Struct({ keys: L.Array(n) }),
2702
+ handler: async (t, n) => ({ keys: [...await e.list(Gi(n).tenantId)] })
2703
2703
  }),
2704
- ut({
2704
+ dt({
2705
2705
  method: "POST",
2706
2706
  path: `${t}/revoke`,
2707
2707
  summary: "Revoke an API key by id.",
2708
- guards: [ft(xe)],
2709
- input: R.Struct({ body: R.Struct({ id: R.String }) }),
2710
- output: R.Struct({ ok: R.Boolean }),
2708
+ guards: [pt(be)],
2709
+ input: L.Struct({ body: L.Struct({ id: L.String }) }),
2710
+ output: L.Struct({ ok: L.Boolean }),
2711
2711
  handler: async (t, n) => ({ ok: await e.revoke(t.body.id) })
2712
2712
  })
2713
2713
  ];
2714
- }, Ki = {
2714
+ }, qi = {
2715
2715
  type: "anonymous",
2716
2716
  id: null,
2717
2717
  tenantId: null
2718
- }, qi = class extends R.TaggedError()("TenantScopeViolation", {
2719
- table: R.String,
2720
- reason: R.String
2721
- }) {}, Ji = class extends R.TaggedError()("StoreOperationFailed", {
2722
- operation: R.String,
2723
- table: R.String,
2724
- cause: R.String
2725
- }) {}, Yi = class extends R.TaggedError()("TableValidationFailed", {
2726
- table: R.String,
2727
- summary: R.String,
2728
- issues: R.Array(R.Struct({
2729
- path: R.String,
2730
- message: R.String
2718
+ }, Ji = class extends L.TaggedError()("TenantScopeViolation", {
2719
+ table: L.String,
2720
+ reason: L.String
2721
+ }) {}, Yi = class extends L.TaggedError()("StoreOperationFailed", {
2722
+ operation: L.String,
2723
+ table: L.String,
2724
+ cause: L.String
2725
+ }) {}, Xi = class extends L.TaggedError()("TableValidationFailed", {
2726
+ table: L.String,
2727
+ summary: L.String,
2728
+ issues: L.Array(L.Struct({
2729
+ path: L.String,
2730
+ message: L.String
2731
2731
  }))
2732
- }) {}, Xi = class extends He.Tag("@voltro/EffectStore")() {}, Zi = (e, t) => (n) => n instanceof qi ? n : new Ji({
2732
+ }) {}, Zi = class extends Ve.Tag("@voltro/EffectStore")() {}, Qi = (e, t) => (n) => n instanceof Ji ? n : new Yi({
2733
2733
  operation: e,
2734
2734
  table: t,
2735
2735
  cause: String(n)
2736
- }), Qi = (e, t, n) => N.tryPromise({
2736
+ }), $i = (e, t, n) => N.tryPromise({
2737
2737
  try: n,
2738
- catch: Zi(e, t)
2739
- }), $i = (e) => P.succeed(Xi, {
2740
- query: ((t) => Qi("query", t.table, () => e.query(t))),
2741
- insert: (t, n) => Qi("insert", t, () => e.insert(t, n)),
2742
- update: (t, n, r) => Qi("update", t, () => e.update(t, n, r)),
2743
- delete: (t, n) => Qi("delete", t, () => e.delete(t, n)),
2744
- hardDelete: (t, n) => Qi("hardDelete", t, () => e.hardDelete(t, n))
2745
- }), ea = (e) => st.make(e.name, {
2738
+ catch: Qi(e, t)
2739
+ }), ea = (e) => P.succeed(Zi, {
2740
+ query: ((t) => $i("query", t.table, () => e.query(t))),
2741
+ insert: (t, n) => $i("insert", t, () => e.insert(t, n)),
2742
+ update: (t, n, r) => $i("update", t, () => e.update(t, n, r)),
2743
+ delete: (t, n) => $i("delete", t, () => e.delete(t, n)),
2744
+ hardDelete: (t, n) => $i("hardDelete", t, () => e.hardDelete(t, n))
2745
+ }), ta = (e) => ct.make(e.name, {
2746
2746
  payload: e.payloadSchema,
2747
- success: Ae,
2747
+ success: ke,
2748
2748
  error: e.errorSchema
2749
- }), ta = (e, t) => ({
2749
+ }), na = (e, t) => ({
2750
2750
  id: t,
2751
2751
  workflowName: e,
2752
2752
  executionId: t,
2753
2753
  status: "running"
2754
- }), na = ta, ra = (e) => {
2755
- let t = j.failureOption(e), n = t._tag === "Some" ? t.value : j.squash(e);
2754
+ }), ra = na, ia = (e) => {
2755
+ let t = M.failureOption(e), n = t._tag === "Some" ? t.value : M.squash(e);
2756
2756
  return {
2757
2757
  tag: n && typeof n == "object" && "_tag" in n ? String(n._tag) : null,
2758
2758
  message: n?.message ?? String(n)
2759
2759
  };
2760
- }, ia = (e, t, n) => {
2760
+ }, aa = (e, t, n) => {
2761
2761
  if (n === void 0) return {
2762
2762
  id: t,
2763
2763
  workflowName: e,
@@ -2783,7 +2783,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2783
2783
  workflowName: e,
2784
2784
  executionId: t,
2785
2785
  status: "failed",
2786
- error: ra(r.cause)
2786
+ error: ia(r.cause)
2787
2787
  };
2788
2788
  }
2789
2789
  return {
@@ -2792,17 +2792,17 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2792
2792
  executionId: t,
2793
2793
  status: "running"
2794
2794
  };
2795
- }, aa = (e) => new Promise((t) => setTimeout(t, e)), oa = (e) => {
2795
+ }, oa = (e) => new Promise((t) => setTimeout(t, e)), sa = (e) => {
2796
2796
  let t = new Map(e.workflows.map((e) => [e.definition.name, e.definition])), n = (e) => {
2797
2797
  let n = t.get(e);
2798
2798
  if (!n) throw Error(`Unknown workflow: ${e}`);
2799
2799
  return n;
2800
2800
  }, r = async (t, r) => {
2801
2801
  let i = n(t);
2802
- return ia(t, r, await e.runEffect(i.poll(r)));
2803
- }, i = async () => e.runEffect(Ct()), a = async (t, r, i) => {
2802
+ return aa(t, r, await e.runEffect(i.poll(r)));
2803
+ }, i = async () => e.runEffect(wt()), a = async (t, r, i) => {
2804
2804
  let a = n(t), o;
2805
- 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)), ta(t, o ?? await e.runEffect(a.executionId(r)))) : ta(t, await e.runEffect(a.execute(r, { discard: !0 })));
2805
+ 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)), na(t, o ?? await e.runEffect(a.executionId(r)))) : na(t, await e.runEffect(a.execute(r, { discard: !0 })));
2806
2806
  };
2807
2807
  return {
2808
2808
  start: a,
@@ -2840,7 +2840,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2840
2840
  let e = await r(i, a);
2841
2841
  if (e.status === "succeeded" || e.status === "failed" || e.status === "cancelled") return e;
2842
2842
  if (o?.timeoutMs !== void 0 && Date.now() - s >= o.timeoutMs) throw Error(`Timed out waiting for workflow '${i}' run '${a}'`);
2843
- await aa(c);
2843
+ await oa(c);
2844
2844
  }
2845
2845
  }),
2846
2846
  cancel: async (t, r) => {
@@ -2878,22 +2878,22 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2878
2878
  return e.retry(t, n);
2879
2879
  }
2880
2880
  };
2881
- }, sa = (e, t) => ({
2881
+ }, ca = (e, t) => ({
2882
2882
  ...e,
2883
2883
  start: async (n, r, i) => {
2884
2884
  if (i?.wait) throw Error("ctx.workflows.start(..., { wait: true }) is not allowed inside a mutation transaction; start the workflow and wait after commit.");
2885
2885
  let a = await e.executionId(n, r);
2886
- return t(() => e.start(n, r)), ta(n, a);
2886
+ return t(() => e.start(n, r)), na(n, a);
2887
2887
  },
2888
2888
  child: async (n, r, i) => {
2889
2889
  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.");
2890
2890
  let a = await e.executionId(n, r);
2891
- return t(() => e.child(n, r, i)), ta(n, a);
2891
+ return t(() => e.child(n, r, i)), na(n, a);
2892
2892
  },
2893
2893
  run: async () => {
2894
2894
  throw Error("ctx.workflows.run(...) is not allowed inside a mutation transaction; use ctx.workflows.start(...) so the workflow starts after commit.");
2895
2895
  }
2896
- }), ca = (e, t) => ({
2896
+ }), la = (e, t) => ({
2897
2897
  ...e,
2898
2898
  start: (n, r, i) => e.start(n, r, {
2899
2899
  ...i,
@@ -2907,7 +2907,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2907
2907
  ...i,
2908
2908
  callerContext: t
2909
2909
  })
2910
- }), la = (e) => {
2910
+ }), ua = (e) => {
2911
2911
  let t = () => {
2912
2912
  let t = e();
2913
2913
  if (!t) throw Error("Workflow runtime is not ready yet");
@@ -2928,16 +2928,16 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2928
2928
  listRuns: ((e) => t().listRuns(e)),
2929
2929
  retry: (e, n) => t().retry(e, n)
2930
2930
  };
2931
- }, ua = (e, t) => {
2931
+ }, da = (e, t) => {
2932
2932
  let n = {};
2933
- for (let r of e) n[r.definition.name] = (e) => (t ? N.promise(() => t.start(r.definition.name, e)) : r.definition.execute(e, { discard: !0 }).pipe(N.map((e) => ta(r.definition.name, e)))).pipe(N.withSpan(`workflow.${r.definition.name}`, { attributes: { "framework.kind": "workflow" } }));
2933
+ for (let r of e) n[r.definition.name] = (e) => (t ? N.promise(() => t.start(r.definition.name, e)) : r.definition.execute(e, { discard: !0 }).pipe(N.map((e) => na(r.definition.name, e)))).pipe(N.withSpan(`workflow.${r.definition.name}`, { attributes: { "framework.kind": "workflow" } }));
2934
2934
  return n;
2935
- }, da = (e, t, n) => e.map((e) => e.definition.toLayer(((r, i) => {
2935
+ }, fa = (e, t, n) => e.map((e) => e.definition.toLayer(((r, i) => {
2936
2936
  let a = t.resolveStartContext?.(e.definition.name, i);
2937
2937
  return (a === void 0 ? N.succeed(void 0) : N.promise(() => Promise.resolve(a))).pipe(N.flatMap((a) => {
2938
2938
  let o = {
2939
2939
  ...a,
2940
- subject: a?.subject ?? Ki,
2940
+ subject: a?.subject ?? qi,
2941
2941
  traceId: a?.traceId ?? "workflow-bootstrap"
2942
2942
  }, s = t.buildContext(o, {
2943
2943
  workflowName: e.definition.name,
@@ -2945,42 +2945,42 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
2945
2945
  parentExecutionId: a?.parentExecutionId ?? null,
2946
2946
  parentClosePolicy: a?.parentClosePolicy ?? null
2947
2947
  }), c = e.buildExecute(s), l = (n?.(e, c, o) ?? c)(r, i), u = s?.store;
2948
- return u === void 0 ? l : N.provide(l, $i(u));
2948
+ return u === void 0 ? l : N.provide(l, ea(u));
2949
2949
  }));
2950
- }))), fa = (e) => ({
2950
+ }))), pa = (e) => ({
2951
2951
  _tag: "workflowEventTrigger",
2952
2952
  ...e
2953
- }), pa = fa, ma = (e) => typeof e == "object" && !!e && e._tag === "workflowEventTrigger", ha = () => {
2953
+ }), ma = pa, ha = (e) => typeof e == "object" && !!e && e._tag === "workflowEventTrigger", ga = () => {
2954
2954
  let e = globalThis.crypto;
2955
2955
  return typeof e?.randomUUID == "function" ? e.randomUUID() : `${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`;
2956
- }, ga = (e) => `${e}_${ha()}`, _a = (e) => e.id ?? `${e.event}->${e.workflow}`, va = E("_voltro_workflow_events", {
2956
+ }, _a = (e) => `${e}_${ga()}`, va = (e) => e.id ?? `${e.event}->${e.workflow}`, ya = D("_voltro_workflow_events", {
2957
2957
  id: v({ prefix: "wfe" }),
2958
- name: D(),
2958
+ name: O(),
2959
2959
  payload: C(),
2960
- source: D(),
2960
+ source: O(),
2961
2961
  subject: C().nullable(),
2962
- traceId: D().nullable(),
2963
- occurredAt: O().default("now")
2964
- }).index(["name"]).index(["source"]).index(["occurredAt"]).reactive(), ya = E("_voltro_workflow_event_deliveries", {
2962
+ traceId: O().nullable(),
2963
+ occurredAt: k().default("now")
2964
+ }).index(["name"]).index(["source"]).index(["occurredAt"]).reactive(), ba = D("_voltro_workflow_event_deliveries", {
2965
2965
  id: v({ prefix: "wfed" }),
2966
- eventId: D(),
2967
- eventName: D(),
2968
- triggerId: D(),
2969
- workflowName: D(),
2970
- executionId: D().nullable(),
2971
- status: D().oneOf([
2966
+ eventId: O(),
2967
+ eventName: O(),
2968
+ triggerId: O(),
2969
+ workflowName: O(),
2970
+ executionId: O().nullable(),
2971
+ status: O().oneOf([
2972
2972
  "starting",
2973
2973
  "started",
2974
2974
  "skipped",
2975
2975
  "failed"
2976
2976
  ]).default("starting"),
2977
- idempotencyKey: D().unique(),
2977
+ idempotencyKey: O().unique(),
2978
2978
  skipped: r().default(!1),
2979
- errorMessage: D().nullable(),
2980
- createdAt: O().default("now"),
2981
- completedAt: O().nullable()
2982
- }).index(["eventId"]).index(["eventName"]).index(["triggerId"]).index(["workflowName"]).index(["status"]).reactive(), ba = (e) => {
2983
- let t = e.makeId ?? ga, n = /* @__PURE__ */ new Map();
2979
+ errorMessage: O().nullable(),
2980
+ createdAt: k().default("now"),
2981
+ completedAt: k().nullable()
2982
+ }).index(["eventId"]).index(["eventName"]).index(["triggerId"]).index(["workflowName"]).index(["status"]).reactive(), xa = (e) => {
2983
+ let t = e.makeId ?? _a, n = /* @__PURE__ */ new Map();
2984
2984
  for (let t of e.triggers) {
2985
2985
  let e = n.get(t.event);
2986
2986
  e ? e.push(t) : n.set(t.event, [t]);
@@ -3021,7 +3021,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3021
3021
  });
3022
3022
  let p = o(n), m = [];
3023
3023
  for (let o of p) {
3024
- let s = _a(o), l = o.workflow, d;
3024
+ let s = va(o), l = o.workflow, d;
3025
3025
  try {
3026
3026
  let p = o.idempotencyKey?.(f) ?? `${c}:${s}`;
3027
3027
  if (o.filter && !await o.filter(f)) {
@@ -3124,61 +3124,61 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3124
3124
  triggered: m
3125
3125
  };
3126
3126
  } };
3127
- }, xa = A({ scope: "voltro:outbox" }), Y = "_voltro_outbox", Sa = {
3127
+ }, Sa = j({ scope: "voltro:outbox" }), J = "_voltro_outbox", Ca = {
3128
3128
  kind: "typeid",
3129
3129
  prefix: "obx"
3130
- }, Ca = E(Y, {
3130
+ }, wa = D(J, {
3131
3131
  id: v({ prefix: "obx" }),
3132
- effect: D(),
3132
+ effect: O(),
3133
3133
  payload: C(),
3134
- status: D(),
3134
+ status: O(),
3135
3135
  attempts: b(),
3136
3136
  maxAttempts: b(),
3137
- nextAttemptAt: O(),
3138
- idempotencyKey: D().nullable(),
3139
- lastError: D().nullable(),
3140
- subjectId: D().nullable(),
3141
- tenantId: D().nullable(),
3142
- traceId: D().nullable(),
3143
- createdAt: O(),
3144
- deliveredAt: O().nullable(),
3145
- resendRequestedBy: D().nullable(),
3146
- resendReason: D().nullable(),
3137
+ nextAttemptAt: k(),
3138
+ idempotencyKey: O().nullable(),
3139
+ lastError: O().nullable(),
3140
+ subjectId: O().nullable(),
3141
+ tenantId: O().nullable(),
3142
+ traceId: O().nullable(),
3143
+ createdAt: k(),
3144
+ deliveredAt: k().nullable(),
3145
+ resendRequestedBy: O().nullable(),
3146
+ resendReason: O().nullable(),
3147
3147
  resendCount: b()
3148
- }), wa = "_voltro_outbox_attempts", Ta = {
3148
+ }), Ta = "_voltro_outbox_attempts", Ea = {
3149
3149
  kind: "typeid",
3150
3150
  prefix: "obxa"
3151
- }, Ea = E(wa, {
3151
+ }, Da = D(Ta, {
3152
3152
  id: v({ prefix: "obxa" }),
3153
- outboxId: D(),
3154
- effect: D(),
3153
+ outboxId: O(),
3154
+ effect: O(),
3155
3155
  attempt: b(),
3156
- trigger: D().oneOf(["automatic", "manual"]),
3157
- triggeredBy: D().nullable(),
3158
- reason: D().nullable(),
3159
- outcome: D().oneOf([
3156
+ trigger: O().oneOf(["automatic", "manual"]),
3157
+ triggeredBy: O().nullable(),
3158
+ reason: O().nullable(),
3159
+ outcome: O().oneOf([
3160
3160
  "delivered",
3161
3161
  "failed",
3162
3162
  "dead"
3163
3163
  ]),
3164
- startedAt: O(),
3165
- finishedAt: O(),
3164
+ startedAt: k(),
3165
+ finishedAt: k(),
3166
3166
  durationMs: b(),
3167
- error: D().nullable(),
3167
+ error: O().nullable(),
3168
3168
  response: C().nullable(),
3169
- subjectId: D().nullable(),
3170
- tenantId: D().nullable(),
3171
- traceId: D().nullable()
3172
- }).index(["outboxId", "attempt"]).index(["startedAt"]).index(["outcome"]), Da = (e) => {
3169
+ subjectId: O().nullable(),
3170
+ tenantId: O().nullable(),
3171
+ traceId: O().nullable()
3172
+ }).index(["outboxId", "attempt"]).index(["startedAt"]).index(["outcome"]), Oa = (e) => {
3173
3173
  if (e.effect.trim() === "") throw Error("defineOutboxHandler: `effect` must be a non-empty name");
3174
3174
  if (e.maxAttempts !== void 0 && e.maxAttempts < 1) throw Error(`defineOutboxHandler("${e.effect}"): maxAttempts must be >= 1`);
3175
3175
  return e;
3176
- }, Oa = 8, ka = (e) => ({
3176
+ }, ka = 8, Aa = (e) => ({
3177
3177
  enqueue: async (n, r, i) => {
3178
3178
  let a = (e.now ?? (() => /* @__PURE__ */ new Date()))(), o = i?.idempotencyKey;
3179
3179
  if (o !== void 0) {
3180
3180
  let n = (await e.store.query({
3181
- table: Y,
3181
+ table: J,
3182
3182
  predicate: t(u("idempotencyKey", o), u("status", "pending")),
3183
3183
  order: [],
3184
3184
  take: 1,
@@ -3188,12 +3188,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3188
3188
  if (n !== void 0) return n.id;
3189
3189
  }
3190
3190
  let s = {
3191
- id: f(Sa, Y),
3191
+ id: f(Ca, J),
3192
3192
  effect: n,
3193
3193
  payload: r,
3194
3194
  status: "pending",
3195
3195
  attempts: 0,
3196
- maxAttempts: i?.maxAttempts ?? Oa,
3196
+ maxAttempts: i?.maxAttempts ?? ka,
3197
3197
  nextAttemptAt: new Date(a.getTime() + (i?.delayMs ?? 0)),
3198
3198
  idempotencyKey: o ?? null,
3199
3199
  lastError: null,
@@ -3205,7 +3205,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3205
3205
  resendRequestedBy: null,
3206
3206
  resendReason: null,
3207
3207
  resendCount: 0
3208
- }, c = await e.store.insert(Y, s);
3208
+ }, c = await e.store.insert(J, s);
3209
3209
  if (e.afterCommit !== void 0 && e.nudge !== void 0) {
3210
3210
  let t = e.nudge;
3211
3211
  e.afterCommit(async () => {
@@ -3216,7 +3216,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3216
3216
  },
3217
3217
  resend: async (t, n) => {
3218
3218
  let r = (e.now ?? (() => /* @__PURE__ */ new Date()))(), i = (await e.store.query({
3219
- table: Y,
3219
+ table: J,
3220
3220
  predicate: u("id", t),
3221
3221
  order: [],
3222
3222
  take: 1,
@@ -3226,7 +3226,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3226
3226
  if (i === void 0) throw Error(`outbox.resend: no entry "${t}"`);
3227
3227
  if (i.status === "delivering") throw Error(`outbox.resend("${t}"): an attempt is in flight — retry once it settles`);
3228
3228
  let a = i.attempts ?? 0, o = Math.max(1, Math.floor(n?.attempts ?? 1));
3229
- if (await e.store.update(Y, t, {
3229
+ if (await e.store.update(J, t, {
3230
3230
  status: "pending",
3231
3231
  nextAttemptAt: r,
3232
3232
  maxAttempts: a + o,
@@ -3240,7 +3240,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3240
3240
  });
3241
3241
  } else e.nudge?.();
3242
3242
  }
3243
- }), Aa = (e) => Math.min(1e3 * 2 ** Math.max(0, e - 1), 5 * 6e4), ja = 50, Ma = (e, t) => e.length <= t ? e : `${e.slice(0, t)}… [clipped]`, Na = (e) => {
3243
+ }), ja = (e) => Math.min(1e3 * 2 ** Math.max(0, e - 1), 5 * 6e4), Ma = 50, Na = (e, t) => e.length <= t ? e : `${e.slice(0, t)}… [clipped]`, Pa = (e) => {
3244
3244
  if (e == null) return null;
3245
3245
  let t = typeof e == "object" && !Array.isArray(e) ? e : { value: e }, n;
3246
3246
  try {
@@ -3250,13 +3250,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3250
3250
  }
3251
3251
  return n.length > 8192 ? {
3252
3252
  truncated: !0,
3253
- preview: Ma(n, 8192)
3253
+ preview: Na(n, 8192)
3254
3254
  } : t;
3255
- }, Pa = async (e, t, n) => {
3255
+ }, Fa = async (e, t, n) => {
3256
3256
  let r = t.outboxRow, i = r.id, a = r.resendRequestedBy ?? null;
3257
3257
  try {
3258
- await e.insert(wa, {
3259
- id: f(Ta, wa),
3258
+ await e.insert(Ta, {
3259
+ id: f(Ea, Ta),
3260
3260
  outboxId: i,
3261
3261
  effect: r.effect,
3262
3262
  attempt: t.attempt,
@@ -3267,14 +3267,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3267
3267
  startedAt: t.startedAt,
3268
3268
  finishedAt: t.finishedAt,
3269
3269
  durationMs: Math.max(0, t.finishedAt.getTime() - t.startedAt.getTime()),
3270
- error: t.error === null ? null : Ma(t.error, 4e3),
3271
- response: Na(t.response),
3270
+ error: t.error === null ? null : Na(t.error, 4e3),
3271
+ response: Pa(t.response),
3272
3272
  subjectId: r.subjectId ?? null,
3273
3273
  tenantId: r.tenantId ?? null,
3274
3274
  traceId: r.traceId ?? null
3275
3275
  });
3276
3276
  } catch (e) {
3277
- xa.warn("outbox: could not record delivery attempt (delivery itself is unaffected)", {
3277
+ Sa.warn("outbox: could not record delivery attempt (delivery itself is unaffected)", {
3278
3278
  outboxId: i,
3279
3279
  attempt: t.attempt
3280
3280
  }, e);
@@ -3282,7 +3282,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3282
3282
  }
3283
3283
  if (!(t.attempt <= n)) try {
3284
3284
  let t = await e.query({
3285
- table: wa,
3285
+ table: Ta,
3286
3286
  predicate: u("outboxId", i),
3287
3287
  order: [{
3288
3288
  column: "attempt",
@@ -3292,14 +3292,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3292
3292
  skip: void 0,
3293
3293
  projection: ["id"]
3294
3294
  });
3295
- for (let r of t.slice(0, Math.max(0, t.length - n))) await e.delete(wa, r.id);
3295
+ for (let r of t.slice(0, Math.max(0, t.length - n))) await e.delete(Ta, r.id);
3296
3296
  } catch (e) {
3297
- xa.warn("outbox: attempt-log trim failed; the log may exceed its cap", { outboxId: i }, e);
3297
+ Sa.warn("outbox: attempt-log trim failed; the log may exceed its cap", { outboxId: i }, e);
3298
3298
  }
3299
- }, Fa = async (e) => {
3299
+ }, Ia = async (e) => {
3300
3300
  let n = (e.now ?? (() => /* @__PURE__ */ new Date()))(), r = await e.store.query({
3301
- table: Y,
3302
- predicate: t(u("status", "pending"), ne("nextAttemptAt", n)),
3301
+ table: J,
3302
+ predicate: t(u("status", "pending"), w("nextAttemptAt", n)),
3303
3303
  order: [{
3304
3304
  column: "nextAttemptAt",
3305
3305
  direction: "asc"
@@ -3314,7 +3314,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3314
3314
  s++;
3315
3315
  continue;
3316
3316
  }
3317
- let u = t.attempts + 1, d = t.maxAttempts ?? Oa, f = /* @__PURE__ */ new Date(), p = e.attemptLogCap ?? 50;
3317
+ let u = t.attempts + 1, d = t.maxAttempts ?? ka, f = /* @__PURE__ */ new Date(), p = e.attemptLogCap ?? 50;
3318
3318
  try {
3319
3319
  let n = await l.handler({
3320
3320
  payload: t.payload ?? {},
@@ -3323,7 +3323,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3323
3323
  tenantId: t.tenantId ?? null,
3324
3324
  traceId: t.traceId ?? null
3325
3325
  });
3326
- await Pa(e.store, {
3326
+ await Fa(e.store, {
3327
3327
  outboxRow: t,
3328
3328
  attempt: u,
3329
3329
  outcome: "delivered",
@@ -3331,7 +3331,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3331
3331
  finishedAt: /* @__PURE__ */ new Date(),
3332
3332
  error: null,
3333
3333
  response: n
3334
- }, p), await e.store.update(Y, r, {
3334
+ }, p), await e.store.update(J, r, {
3335
3335
  status: "delivered",
3336
3336
  attempts: u,
3337
3337
  deliveredAt: /* @__PURE__ */ new Date(),
@@ -3341,7 +3341,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3341
3341
  }), i++;
3342
3342
  } catch (i) {
3343
3343
  let s = i instanceof Error ? i.message : String(i), l = u >= d;
3344
- await Pa(e.store, {
3344
+ await Fa(e.store, {
3345
3345
  outboxRow: t,
3346
3346
  attempt: u,
3347
3347
  outcome: l ? "dead" : "failed",
@@ -3349,24 +3349,24 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3349
3349
  finishedAt: /* @__PURE__ */ new Date(),
3350
3350
  error: s,
3351
3351
  response: null
3352
- }, p), await e.store.update(Y, r, {
3352
+ }, p), await e.store.update(J, r, {
3353
3353
  status: l ? "dead" : "pending",
3354
3354
  attempts: u,
3355
3355
  lastError: s,
3356
- nextAttemptAt: new Date(n.getTime() + Aa(u)),
3356
+ nextAttemptAt: new Date(n.getTime() + ja(u)),
3357
3357
  resendRequestedBy: null,
3358
3358
  resendReason: null
3359
- }), l ? (o++, xa.error("outbox effect dead-lettered after exhausting attempts", {
3359
+ }), l ? (o++, Sa.error("outbox effect dead-lettered after exhausting attempts", {
3360
3360
  id: r,
3361
3361
  effect: c,
3362
3362
  attempts: u,
3363
3363
  maxAttempts: d
3364
- }, i)) : (a++, xa.warn("outbox delivery failed; will retry", {
3364
+ }, i)) : (a++, Sa.warn("outbox delivery failed; will retry", {
3365
3365
  id: r,
3366
3366
  effect: c,
3367
3367
  attempt: u,
3368
3368
  maxAttempts: d,
3369
- retryInMs: Aa(u)
3369
+ retryInMs: ja(u)
3370
3370
  }));
3371
3371
  }
3372
3372
  }
@@ -3376,45 +3376,45 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3376
3376
  dead: o,
3377
3377
  skipped: s
3378
3378
  };
3379
- }, Ia = A({ scope: "voltro:connections" }), X = "_voltro_connections", La = {
3379
+ }, La = j({ scope: "voltro:connections" }), Y = "_voltro_connections", Ra = {
3380
3380
  kind: "typeid",
3381
3381
  prefix: "conn"
3382
- }, Ra = E(X, {
3382
+ }, za = D(Y, {
3383
3383
  id: v({ prefix: "conn" }),
3384
- connectionId: D(),
3385
- subjectId: D(),
3386
- tenantId: D().nullable(),
3387
- kind: D().oneOf(["oauth2", "pat"]),
3388
- status: D().oneOf([
3384
+ connectionId: O(),
3385
+ subjectId: O(),
3386
+ tenantId: O().nullable(),
3387
+ kind: O().oneOf(["oauth2", "pat"]),
3388
+ status: O().oneOf([
3389
3389
  "connected",
3390
3390
  "expired",
3391
3391
  "revoked",
3392
3392
  "error"
3393
3393
  ]),
3394
- accessToken: D(),
3395
- refreshToken: D().nullable(),
3396
- expiresAt: O().nullable(),
3397
- scopes: D().nullable(),
3398
- accountId: D().nullable(),
3399
- accountLabel: D().nullable(),
3400
- lastError: D().nullable(),
3401
- refreshLockedUntil: O(),
3394
+ accessToken: O(),
3395
+ refreshToken: O().nullable(),
3396
+ expiresAt: k().nullable(),
3397
+ scopes: O().nullable(),
3398
+ accountId: O().nullable(),
3399
+ accountLabel: O().nullable(),
3400
+ lastError: O().nullable(),
3401
+ refreshLockedUntil: k(),
3402
3402
  metadata: C().nullable(),
3403
- connectedAt: O(),
3404
- updatedAt: O()
3405
- }).unique("bySubject", ["connectionId", "subjectId"]).index(["subjectId"]).reactive(), za = "_voltro_connection_grants", Ba = {
3403
+ connectedAt: k(),
3404
+ updatedAt: k()
3405
+ }).unique("bySubject", ["connectionId", "subjectId"]).index(["subjectId"]).reactive(), X = "_voltro_connection_grants", Ba = {
3406
3406
  kind: "typeid",
3407
3407
  prefix: "cgrant"
3408
- }, Va = E(za, {
3408
+ }, Va = D(X, {
3409
3409
  id: v({ prefix: "cgrant" }),
3410
- state: D().unique(),
3411
- connectionId: D(),
3412
- subjectId: D(),
3413
- tenantId: D().nullable(),
3414
- codeVerifier: D().nullable(),
3415
- redirectTo: D(),
3416
- createdAt: O(),
3417
- expiresAt: O()
3410
+ state: O().unique(),
3411
+ connectionId: O(),
3412
+ subjectId: O(),
3413
+ tenantId: O().nullable(),
3414
+ codeVerifier: O().nullable(),
3415
+ redirectTo: O(),
3416
+ createdAt: k(),
3417
+ expiresAt: k()
3418
3418
  }).index(["expiresAt"]), Ha = /^[a-z][a-z0-9-]*$/, Ua = (e) => {
3419
3419
  if (!Ha.test(e.id)) throw Error(`defineConnection: id "${e.id}" must be lowercase kebab-case (it becomes a URL path segment).`);
3420
3420
  if (e.kind === "oauth2") {
@@ -3427,7 +3427,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3427
3427
  }
3428
3428
  return e;
3429
3429
  }, Wa = (e) => e.label ?? e.id, Ga = (e) => {
3430
- if (e.length !== 0 && vi() === 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).`);
3430
+ if (e.length !== 0 && yi() === 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).`);
3431
3431
  }, Ka = (e) => {
3432
3432
  let t = /* @__PURE__ */ new Map();
3433
3433
  for (let n of e) {
@@ -3465,7 +3465,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3465
3465
  lastError: t.lastError ?? null,
3466
3466
  connectedAt: Ja(t.connectedAt)
3467
3467
  }, Za = async (e, n, r) => (await e.query({
3468
- table: X,
3468
+ table: Y,
3469
3469
  predicate: t(u("connectionId", n), u("subjectId", r)),
3470
3470
  order: [],
3471
3471
  take: 1,
@@ -3473,14 +3473,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3473
3473
  projection: void 0
3474
3474
  }))[0], Qa = async (e) => {
3475
3475
  let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), n = e.tokens.expiresAt === void 0 ? null : new Date(e.tokens.expiresAt), r = {
3476
- id: f(La, X),
3476
+ id: f(Ra, Y),
3477
3477
  connectionId: e.definition.id,
3478
3478
  subjectId: e.subjectId,
3479
3479
  tenantId: e.tenantId,
3480
3480
  kind: e.definition.kind,
3481
3481
  status: "connected",
3482
- accessToken: q(e.tokens.accessToken),
3483
- refreshToken: e.tokens.refreshToken === void 0 ? null : q(e.tokens.refreshToken),
3482
+ accessToken: K(e.tokens.accessToken),
3483
+ refreshToken: e.tokens.refreshToken === void 0 ? null : K(e.tokens.refreshToken),
3484
3484
  expiresAt: n,
3485
3485
  scopes: e.tokens.scopes.length > 0 ? e.tokens.scopes.join(" ") : null,
3486
3486
  accountId: e.account?.accountId ?? null,
@@ -3492,7 +3492,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3492
3492
  updatedAt: t
3493
3493
  };
3494
3494
  return $a(e.store, r);
3495
- }, $a = (e, t) => e.upsert(X, t, {
3495
+ }, $a = (e, t) => e.upsert(Y, t, {
3496
3496
  conflictColumns: ["connectionId", "subjectId"],
3497
3497
  update: [
3498
3498
  "kind",
@@ -3510,10 +3510,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3510
3510
  ]
3511
3511
  }), eo = async (e, t, n) => {
3512
3512
  let r = await Za(e, t, n);
3513
- return r !== void 0 && e.delete(X, r.id);
3513
+ return r !== void 0 && e.delete(Y, r.id);
3514
3514
  }, to = async (e, t, n) => {
3515
3515
  let r = await e.query({
3516
- table: X,
3516
+ table: Y,
3517
3517
  predicate: u("subjectId", n),
3518
3518
  order: [],
3519
3519
  take: void 0,
@@ -3534,7 +3534,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3534
3534
  });
3535
3535
  i = n.status, a = await n.text();
3536
3536
  } catch (t) {
3537
- throw new k({
3537
+ throw new A({
3538
3538
  connectionId: e.id,
3539
3539
  reason: `token endpoint unreachable: ${String(t)}`,
3540
3540
  transient: !0
@@ -3546,12 +3546,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3546
3546
  } catch {
3547
3547
  o = {};
3548
3548
  }
3549
- if (i < 200 || i >= 300) throw new k({
3549
+ if (i < 200 || i >= 300) throw new A({
3550
3550
  connectionId: e.id,
3551
3551
  reason: `token endpoint ${i}: ${o.error ?? ""} ${o.error_description ?? a.slice(0, 200)}`.trim(),
3552
3552
  transient: i >= 500
3553
3553
  });
3554
- if (typeof o.access_token != "string" || o.access_token.length === 0) throw new k({
3554
+ if (typeof o.access_token != "string" || o.access_token.length === 0) throw new A({
3555
3555
  connectionId: e.id,
3556
3556
  reason: "token response carried no access_token",
3557
3557
  transient: !1
@@ -3588,7 +3588,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3588
3588
  }, mo = (e, t) => ({
3589
3589
  connectionId: e.id,
3590
3590
  kind: e.kind,
3591
- accessToken: bi(String(t.accessToken)),
3591
+ accessToken: xi(String(t.accessToken)),
3592
3592
  expiresAt: qa(t.expiresAt),
3593
3593
  scopes: Ya(t.scopes),
3594
3594
  accountId: t.accountId ?? null,
@@ -3612,50 +3612,50 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3612
3612
  return uo.set(o, c), c;
3613
3613
  }, _o = async (e) => {
3614
3614
  let { store: n, subjectId: r, now: i } = e, a = e.definition, o = e.sleep ?? lo, s = a.refreshSkewMs ?? 6e4, c = e.row.id;
3615
- if (await n.updateMany("_voltro_connections", { refreshLockedUntil: new Date(i() + 3e4) }, { where: t(u("id", c), ne("refreshLockedUntil", new Date(i()))) }) === 0) {
3615
+ if (await n.updateMany("_voltro_connections", { refreshLockedUntil: new Date(i() + 3e4) }, { where: t(u("id", c), w("refreshLockedUntil", new Date(i()))) }) === 0) {
3616
3616
  for (let e = 0; e < 10; e++) {
3617
3617
  await o(200);
3618
3618
  let e = await Za(n, a.id, r);
3619
3619
  if (e === void 0) throw new co(a.id, r);
3620
3620
  if (!ho(e, s, i())) return mo(a, e);
3621
3621
  }
3622
- throw new k({
3622
+ throw new A({
3623
3623
  connectionId: a.id,
3624
3624
  reason: "another replica held the refresh lease and did not publish a fresh token in time",
3625
3625
  transient: !0
3626
3626
  });
3627
3627
  }
3628
3628
  let l = e.row.refreshToken;
3629
- if (l == null) throw await n.update(X, c, {
3629
+ if (l == null) throw await n.update(Y, c, {
3630
3630
  status: "expired",
3631
3631
  lastError: "access token expired and no refresh token is on file — reconnect required",
3632
3632
  refreshLockedUntil: /* @__PURE__ */ new Date(0),
3633
3633
  updatedAt: new Date(i())
3634
- }), new k({
3634
+ }), new A({
3635
3635
  connectionId: a.id,
3636
3636
  reason: "access token expired and no refresh token is on file — reconnect required",
3637
3637
  transient: !1
3638
3638
  });
3639
3639
  let d;
3640
3640
  try {
3641
- d = await ao(a, bi(String(l)), i);
3641
+ d = await ao(a, xi(String(l)), i);
3642
3642
  } catch (e) {
3643
- let t = e instanceof k ? e : new k({
3643
+ let t = e instanceof A ? e : new A({
3644
3644
  connectionId: a.id,
3645
3645
  reason: String(e),
3646
3646
  transient: !0
3647
3647
  });
3648
- throw await n.update(X, c, {
3648
+ throw await n.update(Y, c, {
3649
3649
  status: t.transient ? "error" : "revoked",
3650
3650
  lastError: t.reason,
3651
3651
  refreshLockedUntil: /* @__PURE__ */ new Date(0),
3652
3652
  updatedAt: new Date(i()),
3653
3653
  ...t.transient ? {} : {
3654
- accessToken: q(""),
3654
+ accessToken: K(""),
3655
3655
  refreshToken: null,
3656
3656
  expiresAt: null
3657
3657
  }
3658
- }), Ia.warn("connection refresh failed", {
3658
+ }), La.warn("connection refresh failed", {
3659
3659
  connectionId: a.id,
3660
3660
  transient: t.transient,
3661
3661
  reason: t.reason
@@ -3663,15 +3663,15 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3663
3663
  }
3664
3664
  let f = {
3665
3665
  status: "connected",
3666
- accessToken: q(d.accessToken),
3667
- ...d.refreshToken === void 0 ? {} : { refreshToken: q(d.refreshToken) },
3666
+ accessToken: K(d.accessToken),
3667
+ ...d.refreshToken === void 0 ? {} : { refreshToken: K(d.refreshToken) },
3668
3668
  expiresAt: d.expiresAt === void 0 ? null : new Date(d.expiresAt),
3669
3669
  ...d.scopes.length > 0 ? { scopes: d.scopes.join(" ") } : {},
3670
3670
  lastError: null,
3671
3671
  refreshLockedUntil: /* @__PURE__ */ new Date(0),
3672
3672
  updatedAt: new Date(i())
3673
3673
  };
3674
- return mo(a, await n.update(X, c, f) ?? {
3674
+ return mo(a, await n.update(Y, c, f) ?? {
3675
3675
  ...e.row,
3676
3676
  ...f
3677
3677
  });
@@ -3687,13 +3687,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3687
3687
  return yo(new Uint8Array(t));
3688
3688
  }, xo = 10 * 6e4, So = (e) => `/_voltro/connections/${e}/callback`, Co = (e) => e === void 0 || e.length === 0 || !e.startsWith("/") || e.startsWith("//") || e.startsWith("/\\") ? "/" : e, wo = (e, t) => e.redirectUri ?? `${t.replace(/\/+$/, "")}${So(e.id)}`, To = async (e) => {
3689
3689
  let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), { definition: n } = e, r = vo(), i = n.pkce === !1 ? null : vo(48), a = wo(n, e.publicUrl);
3690
- await e.store.insert(za, {
3691
- id: f(Ba, za),
3690
+ await e.store.insert(X, {
3691
+ id: f(Ba, X),
3692
3692
  state: r,
3693
3693
  connectionId: n.id,
3694
3694
  subjectId: e.subjectId,
3695
3695
  tenantId: e.tenantId,
3696
- codeVerifier: i === null ? null : q(i),
3696
+ codeVerifier: i === null ? null : K(i),
3697
3697
  redirectTo: Co(e.redirectTo),
3698
3698
  createdAt: t,
3699
3699
  expiresAt: new Date(t.getTime() + xo)
@@ -3714,37 +3714,37 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3714
3714
  };
3715
3715
  }, Eo = async (e) => {
3716
3716
  let t = (e.now ?? (() => /* @__PURE__ */ new Date()))(), n = (await e.store.query({
3717
- table: za,
3717
+ table: X,
3718
3718
  predicate: u("state", e.state),
3719
3719
  order: [],
3720
3720
  take: 1,
3721
3721
  skip: void 0,
3722
3722
  projection: void 0
3723
3723
  }))[0];
3724
- if (n === void 0) throw new k({
3724
+ if (n === void 0) throw new A({
3725
3725
  connectionId: "unknown",
3726
3726
  reason: "unknown or already-used handshake state",
3727
3727
  transient: !1
3728
3728
  });
3729
- await e.store.delete(za, n.id);
3729
+ await e.store.delete(X, n.id);
3730
3730
  let r = String(n.connectionId), i = qa(n.expiresAt);
3731
- if (i !== null && i.getTime() < t.getTime()) throw new k({
3731
+ if (i !== null && i.getTime() < t.getTime()) throw new A({
3732
3732
  connectionId: r,
3733
3733
  reason: "handshake expired — start again",
3734
3734
  transient: !1
3735
3735
  });
3736
3736
  let a = e.registry.get(r);
3737
- if (a === void 0 || a.kind !== "oauth2") throw new k({
3737
+ if (a === void 0 || a.kind !== "oauth2") throw new A({
3738
3738
  connectionId: r,
3739
3739
  reason: "no oauth2 connection is declared under that id",
3740
3740
  transient: !1
3741
3741
  });
3742
- let o = n.codeVerifier === null || n.codeVerifier === void 0 ? null : bi(String(n.codeVerifier)), s = await io(a, {
3742
+ let o = n.codeVerifier === null || n.codeVerifier === void 0 ? null : xi(String(n.codeVerifier)), s = await io(a, {
3743
3743
  code: e.code,
3744
3744
  redirectUri: wo(a, e.publicUrl),
3745
3745
  codeVerifier: o
3746
3746
  }, () => t.getTime()), c = a.identify === void 0 ? void 0 : await a.identify(s).catch((e) => {
3747
- Ia.warn("connection identify failed; storing without account details", {
3747
+ La.warn("connection identify failed; storing without account details", {
3748
3748
  connectionId: r,
3749
3749
  reason: String(e)
3750
3750
  });
@@ -3763,8 +3763,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3763
3763
  };
3764
3764
  }, Do = async (e, t = /* @__PURE__ */ new Date()) => {
3765
3765
  let n = await e.query({
3766
- table: za,
3767
- predicate: ne("expiresAt", t),
3766
+ table: X,
3767
+ predicate: w("expiresAt", t),
3768
3768
  order: [],
3769
3769
  take: void 0,
3770
3770
  skip: void 0,
@@ -3823,11 +3823,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3823
3823
  };
3824
3824
  }, Po = (e, t) => {
3825
3825
  let n = e.request?.subject?.id ?? null;
3826
- if (n === null || n === "") throw new Te({ connectionId: t });
3826
+ if (n === null || n === "") throw new we({ connectionId: t });
3827
3827
  return n;
3828
3828
  }, Fo = (e, t) => {
3829
3829
  let n = e.registry.get(t);
3830
- if (n === void 0) throw new we({ connectionId: t });
3830
+ if (n === void 0) throw new Ce({ connectionId: t });
3831
3831
  return n;
3832
3832
  }, Io = (e) => async (t, n) => {
3833
3833
  let r = n.request?.subject?.id ?? null;
@@ -3845,7 +3845,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3845
3845
  })) : to(n.store, e.registry, r);
3846
3846
  }, Lo = (e) => async (t, n) => {
3847
3847
  let r = Fo(e, t.connectionId), i = Po(n, t.connectionId);
3848
- if (r.kind !== "oauth2") throw new Ce({
3848
+ if (r.kind !== "oauth2") throw new Se({
3849
3849
  connectionId: t.connectionId,
3850
3850
  expected: "oauth2",
3851
3851
  actual: r.kind
@@ -3860,13 +3860,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3860
3860
  });
3861
3861
  }, Ro = (e) => async (t, n) => {
3862
3862
  let r = Fo(e, t.connectionId), i = Po(n, t.connectionId);
3863
- if (r.kind !== "pat") throw new Ce({
3863
+ if (r.kind !== "pat") throw new Se({
3864
3864
  connectionId: t.connectionId,
3865
3865
  expected: "pat",
3866
3866
  actual: r.kind
3867
3867
  });
3868
3868
  let a = t.token.trim();
3869
- if (a.length === 0) throw new k({
3869
+ if (a.length === 0) throw new A({
3870
3870
  connectionId: t.connectionId,
3871
3871
  reason: "token is empty",
3872
3872
  transient: !1
@@ -3875,7 +3875,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3875
3875
  if (r.validate !== void 0) try {
3876
3876
  o = await r.validate(a);
3877
3877
  } catch (e) {
3878
- throw new k({
3878
+ throw new A({
3879
3879
  connectionId: t.connectionId,
3880
3880
  reason: `the provider rejected that token: ${e instanceof Error ? e.message : String(e)}`,
3881
3881
  transient: !1
@@ -3896,10 +3896,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3896
3896
  Fo(e, t.connectionId);
3897
3897
  let r = Po(n, t.connectionId);
3898
3898
  return { ok: await eo(n.store, t.connectionId, r) };
3899
- }, Bo = "admin:full", Vo = class extends R.TaggedError()("AccessDenied", {
3900
- action: R.String,
3901
- resourceType: R.String,
3902
- resourceId: R.String
3899
+ }, Bo = "admin:full", Vo = class extends L.TaggedError()("AccessDenied", {
3900
+ action: L.String,
3901
+ resourceType: L.String,
3902
+ resourceId: L.String
3903
3903
  }) {}, Ho = /* @__PURE__ */ new Map(), Uo = (e) => {
3904
3904
  if (typeof e.resourceType != "string" || e.resourceType.length === 0) throw Error("defineResourcePolicy: a non-empty `resourceType` is required");
3905
3905
  if (e.actions === void 0 || Object.keys(e.actions).length === 0) throw Error(`resource policy '${e.resourceType}': at least one action is required`);
@@ -3947,10 +3947,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
3947
3947
  }, i)), $o = (e, t) => {
3948
3948
  let n = new Set(t.map((e) => e.id));
3949
3949
  return e.filter((e) => !n.has(e.id)).map((e) => e.id);
3950
- }, es = A({ scope: "voltro:policy" }), ts, ns = (e) => {
3950
+ }, es = j({ scope: "voltro:policy" }), ts, ns = (e) => {
3951
3951
  ts = e;
3952
3952
  }, rs = () => ts, is = () => {
3953
- Re((e) => N.gen(function* () {
3953
+ Le((e) => N.gen(function* () {
3954
3954
  let t = Wo(e.resourceType);
3955
3955
  if (t === void 0) return es.warn("policy guard denied — no resource policy registered for this type", {
3956
3956
  resourceType: e.resourceType,
@@ -4034,7 +4034,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4034
4034
  load: async (e, t) => (await o(e, [t]))[0] ?? null,
4035
4035
  loadMany: (e, t) => o(e, t)
4036
4036
  };
4037
- }, ss = P.effect(et.HttpClient, N.map(et.HttpClient, (e) => e.pipe(et.mapRequestEffect((e) => N.currentSpan.pipe(N.map((t) => e.headers.traceparent === void 0 ? tt.setHeader(e, "traceparent", cr({
4037
+ }, ss = P.effect(tt.HttpClient, N.map(tt.HttpClient, (e) => e.pipe(tt.mapRequestEffect((e) => N.currentSpan.pipe(N.map((t) => e.headers.traceparent === void 0 ? nt.setHeader(e, "traceparent", lr({
4038
4038
  traceId: t.traceId,
4039
4039
  spanId: t.spanId,
4040
4040
  sampled: t.sampled
@@ -4088,16 +4088,16 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4088
4088
  insertSchema: (e) => t.get(e)?.insertSchema,
4089
4089
  validatePatchSchema: (e) => t.get(e)?.validatePatchSchema
4090
4090
  };
4091
- }, fs = /* @__PURE__ */ new Map(), ps = /* @__PURE__ */ new Map(), ms = /* @__PURE__ */ new Set(), hs = ds([]), gs = class extends R.TaggedError()("NoRowFound", {
4092
- table: R.String,
4093
- found: R.Number
4091
+ }, fs = /* @__PURE__ */ new Map(), ps = /* @__PURE__ */ new Map(), ms = /* @__PURE__ */ new Set(), hs = ds([]), gs = class extends L.TaggedError()("NoRowFound", {
4092
+ table: L.String,
4093
+ found: L.Number
4094
4094
  }) {
4095
4095
  get message() {
4096
4096
  return this.found === 0 ? `expected exactly one row in '${this.table}', found none` : `expected exactly one row in '${this.table}', found more than one`;
4097
4097
  }
4098
- }, _s = class extends R.TaggedError()("OptimisticLockError", {
4099
- table: R.String,
4100
- expected: R.Number
4098
+ }, _s = class extends L.TaggedError()("OptimisticLockError", {
4099
+ table: L.String,
4100
+ expected: L.Number
4101
4101
  }) {
4102
4102
  get message() {
4103
4103
  return `optimistic lock failed on '${this.table}': expected version ${this.expected}`;
@@ -4110,11 +4110,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4110
4110
  switch (n) {
4111
4111
  case "=": return u(t, r);
4112
4112
  case "!=":
4113
- case "<>": return T(t, r);
4113
+ case "<>": return re(t, r);
4114
4114
  case ">": return h(t, r);
4115
4115
  case ">=": return g(t, r);
4116
4116
  case "<": return te(t, r);
4117
- case "<=": return ne(t, r);
4117
+ case "<=": return w(t, r);
4118
4118
  case "in": return y(t, r);
4119
4119
  case "like":
4120
4120
  case "contains":
@@ -4124,7 +4124,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4124
4124
  }, bs = (e) => {
4125
4125
  let t = m(e);
4126
4126
  if (t === void 0) throw Error(`unknown table '${e}' — is it declared with table()?`);
4127
- return ae(t);
4127
+ return ie(t);
4128
4128
  }, xs = class e {
4129
4129
  backend;
4130
4130
  scope;
@@ -4174,7 +4174,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4174
4174
  scopedQuery() {
4175
4175
  let e = this.query, { subject: t, schemaRegistry: n } = this.scope;
4176
4176
  !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")));
4177
- let r = (this.scope.rowFilter ?? In)(this.table);
4177
+ let r = (this.scope.rowFilter ?? Ln)(this.table);
4178
4178
  return r !== void 0 && (e = e.where(r)), e;
4179
4179
  }
4180
4180
  async all() {
@@ -4292,12 +4292,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4292
4292
  for (let r of t) e[r] !== void 0 && (n[r] = e[r]);
4293
4293
  return n;
4294
4294
  }, Os = "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).", ks = (e) => {
4295
- throw new qi({
4295
+ throw new Ji({
4296
4296
  table: e,
4297
4297
  reason: Os
4298
4298
  });
4299
4299
  }, As = (e, n) => {
4300
- let r = n.subject.id, i = n.subject.tenantId, a = n.rowFilter ?? In, o = (e, t) => {
4300
+ let r = n.subject.id, i = n.subject.tenantId, a = n.rowFilter ?? Ln, o = (e, t) => {
4301
4301
  let a = { ...t }, o = n.schemaRegistry, s = o.idScheme(e);
4302
4302
  if (s !== void 0 && a[Ts] == null) if (s.kind === "numeric") delete a[Ts];
4303
4303
  else {
@@ -4325,10 +4325,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4325
4325
  try {
4326
4326
  return await r();
4327
4327
  } catch (n) {
4328
- let r = Yt(n);
4329
- if (Xt(r)) {
4328
+ let r = Xt(n);
4329
+ if (Zt(r)) {
4330
4330
  let n = t.tenantId, i = `${r.dbConstraint ?? ""} ${r.dbColumn ?? ""} ${r.dbMessage ?? ""} ${r.dbCauseChain ?? ""}`.toLowerCase();
4331
- if (i.includes("tenantid") || /\btenants\b/.test(i) || n != null && i.includes(String(n).toLowerCase())) throw new qi({
4331
+ if (i.includes("tenantid") || /\btenants\b/.test(i) || n != null && i.includes(String(n).toLowerCase())) throw new Ji({
4332
4332
  table: e,
4333
4333
  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)`
4334
4334
  });
@@ -4347,13 +4347,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4347
4347
  }, g = (e, t) => {
4348
4348
  let r = n.schemaRegistry.validatePatchSchema(e);
4349
4349
  if (r === void 0) return t;
4350
- let i = R.decodeUnknownEither(r)(t);
4350
+ let i = L.decodeUnknownEither(r)(t);
4351
4351
  if (i._tag === "Right") return t;
4352
- let a = Tt.formatErrorSync(i.left).map((e) => ({
4352
+ let a = Et.formatErrorSync(i.left).map((e) => ({
4353
4353
  path: e.path.length === 0 ? "<root>" : e.path.join("."),
4354
4354
  message: e.message
4355
4355
  })), o = a[0];
4356
- throw new Yi({
4356
+ throw new Xi({
4357
4357
  table: e,
4358
4358
  summary: o === void 0 ? "patch validation failed" : `${o.path}: ${o.message}`,
4359
4359
  issues: a
@@ -4362,8 +4362,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4362
4362
  let e = { deletedAt: /* @__PURE__ */ new Date() };
4363
4363
  return r !== null && (e.deletedBy = r), e;
4364
4364
  }, v = (e, t, n) => {
4365
- let r = w(n, t);
4366
- if (r.length !== 0) throw new Yi({
4365
+ let r = T(n, t);
4366
+ if (r.length !== 0) throw new Xi({
4367
4367
  table: e,
4368
4368
  summary: `upsert conflictColumns [${n.map((e) => `'${e}'`).join(", ")}] but the payload is missing ${r.map((e) => `'${e}'`).join(", ")}`,
4369
4369
  issues: r.map((e) => ({
@@ -4371,11 +4371,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4371
4371
  message: "named in conflictColumns but absent from the payload"
4372
4372
  }))
4373
4373
  });
4374
- }, y = (e, t) => {
4374
+ }, b = (e, t) => {
4375
4375
  let r = m(e);
4376
4376
  if (r !== void 0) {
4377
- let n = re(r, t);
4378
- if (n.length > 0) throw new Yi({
4377
+ let n = ne(r, t);
4378
+ if (n.length > 0) throw new Xi({
4379
4379
  table: e,
4380
4380
  summary: `missing required column${n.length > 1 ? "s" : ""} ${n.map((e) => `'${e}'`).join(", ")} — NOT NULL with no default and not auto-stamped`,
4381
4381
  issues: n.map((e) => ({
@@ -4386,34 +4386,34 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4386
4386
  }
4387
4387
  let i = n.schemaRegistry.insertSchema(e);
4388
4388
  if (i === void 0) return t;
4389
- let a = R.decodeUnknownEither(i)(t);
4389
+ let a = L.decodeUnknownEither(i)(t);
4390
4390
  if (a._tag === "Right") return t;
4391
- let o = Tt.formatErrorSync(a.left).map((e) => ({
4391
+ let o = Et.formatErrorSync(a.left).map((e) => ({
4392
4392
  path: e.path.length === 0 ? "<root>" : e.path.join("."),
4393
4393
  message: e.message
4394
4394
  })), s = o[0];
4395
- throw new Yi({
4395
+ throw new Xi({
4396
4396
  table: e,
4397
4397
  summary: s === void 0 ? "row validation failed" : `${s.path}: ${s.message}`,
4398
4398
  issues: o
4399
4399
  });
4400
- }, b = n.dialect, x = (e, t) => {
4400
+ }, x = n.dialect, C = (e, t) => {
4401
4401
  let n = m(e);
4402
- return l(b ? ue(t, n, b) : t, n, vi());
4403
- }, C = process.env.VOLTRO_FIELD_DECRYPT_ON_ERROR === "null" ? "null" : "throw", ee = A({ scope: "store.fieldEncryption" }), te = /* @__PURE__ */ new Set(), ne = (e) => {
4402
+ return l(x ? le(t, n, x) : t, n, yi());
4403
+ }, ee = process.env.VOLTRO_FIELD_DECRYPT_ON_ERROR === "null" ? "null" : "throw", te = j({ scope: "store.fieldEncryption" }), w = /* @__PURE__ */ new Set(), re = (e) => {
4404
4404
  let t = `${e.table}.${e.column}`;
4405
- te.has(t) || (te.add(t), ee.warn("encrypted column degraded to null — could not decrypt with the active key", {
4405
+ w.has(t) || (w.add(t), te.warn("encrypted column degraded to null — could not decrypt with the active key", {
4406
4406
  table: e.table,
4407
4407
  column: e.column,
4408
4408
  reason: e.reason,
4409
4409
  hint: "VOLTRO_FIELD_DECRYPT_ON_ERROR=null is set — this row was likely encrypted under a different key"
4410
4410
  }));
4411
- }, T = (e, t) => {
4412
- let n = m(e), r = s(t, n, vi(), {
4413
- onError: C,
4414
- ...C === "null" ? { warn: ne } : {}
4411
+ }, E = (e, t) => {
4412
+ let n = m(e), r = s(t, n, yi(), {
4413
+ onError: ee,
4414
+ ...ee === "null" ? { warn: re } : {}
4415
4415
  });
4416
- return b ? c(r, n, b) : r;
4416
+ return x ? c(r, n, x) : r;
4417
4417
  }, ie = (e) => {
4418
4418
  let r = e.table, o = e.predicate;
4419
4419
  if (!e.crossTenant && i != null && n.schemaRegistry.hasTenant(r)) {
@@ -4424,13 +4424,13 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4424
4424
  let e = S("deletedAt");
4425
4425
  o = o ? t(o, e) : e;
4426
4426
  }
4427
- return o = Bn(a, r, o), o === e.predicate ? e : {
4427
+ return o = Vn(a, r, o), o === e.predicate ? e : {
4428
4428
  ...e,
4429
4429
  predicate: o
4430
4430
  };
4431
4431
  }, ae = async (t) => {
4432
4432
  let n = await e.query(t);
4433
- return T(t.table, n);
4433
+ return E(t.table, n);
4434
4434
  }, oe = async (e) => ae(ie(e)), se = async (t, r, i) => {
4435
4435
  let a = d(t, i);
4436
4436
  if (n.schemaRegistry.computedFields(t).size > 0) {
@@ -4447,27 +4447,43 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4447
4447
  projection: void 0
4448
4448
  }))[0];
4449
4449
  if (n === void 0) return null;
4450
- a = h(t, T(t, [n])[0], a);
4450
+ a = h(t, E(t, [n])[0], a);
4451
4451
  }
4452
4452
  a = g(t, a);
4453
- let o = await e.update(t, r, x(t, a));
4454
- return o === null ? null : T(t, [o])[0];
4455
- }, ce = async (t, r) => n.schemaRegistry.hasSoftDelete(t) ? await e.update(t, r, _()) !== null : e.delete(t, r), le = async (t, n, r) => e.updateMany(t, x(t, d(t, n)), r), de = async (t, n) => e.deleteMany(t, n), fe = (e, r) => i != null && n.schemaRegistry.hasTenant(e) ? t(r, u("tenantId", i)) : r, E = async (e, t, n) => le(e, t, {
4453
+ let o = await e.update(t, r, C(t, a));
4454
+ return o === null ? null : E(t, [o])[0];
4455
+ }, ce = async (t, r) => n.schemaRegistry.hasSoftDelete(t) ? await e.update(t, r, _()) !== null : e.delete(t, r), ue = async (t, n, r) => e.updateMany(t, C(t, d(t, n)), r), de = async (t, n) => e.deleteMany(t, n), D = (e, r) => i != null && n.schemaRegistry.hasTenant(e) ? t(r, u("tenantId", i)) : r, O = async (e, t, n) => ue(e, t, {
4456
4456
  ...n,
4457
- where: fe(e, n.where)
4458
- }), D = async (e, t) => de(e, {
4457
+ where: D(e, n.where)
4458
+ }), k = async (e, t) => de(e, {
4459
4459
  ...t,
4460
- where: fe(e, t.where)
4461
- }), O = ws({
4460
+ where: D(e, t.where)
4461
+ }), fe = ws({
4462
4462
  query: ae,
4463
- updateMany: le,
4463
+ updateMany: ue,
4464
4464
  deleteMany: de,
4465
4465
  delete: (t, n) => e.delete(t, n)
4466
4466
  }, {
4467
4467
  subject: n.subject,
4468
4468
  schemaRegistry: n.schemaRegistry,
4469
4469
  rowFilter: a
4470
- });
4470
+ }), pe = ((e, t, n) => t === void 0 ? fe.updateWhere(e) : se(e, t, n)), me = ((e, t) => t === void 0 ? fe.deleteWhere(e) : ce(e, t)), he = async (t, n) => {
4471
+ let r = n.map((e) => o(t, e)), i = r.map((e) => C(t, b(t, e))), a = await p(t, r[0] ?? {}, () => e.insertMany(t, i));
4472
+ return E(t, a);
4473
+ }, ge = (e, t) => {
4474
+ let n = Object.keys(t);
4475
+ if (n.length !== 1) throw Error(`store.links('${e}'): anchor must name exactly one source column, got [${n.join(", ")}]`);
4476
+ let r = n[0], i = t[r], a = m(e);
4477
+ if (a === void 0) throw Error(`store.links('${e}'): unknown table (not registered) — declare it and its relation first`);
4478
+ let o = Object.entries(a.fields).filter(([, e]) => e.type === "reference").map(([e]) => e);
4479
+ if (o.length !== 2) throw Error(`store.links('${e}'): expected a junction with exactly two reference() columns, found ${o.length} [${o.join(", ")}]. Use plain insert/deleteMany for a non-standard junction.`);
4480
+ if (!o.includes(r)) throw Error(`store.links('${e}'): '${r}' is not a reference column of the junction [${o.join(", ")}]`);
4481
+ return {
4482
+ sourceCol: r,
4483
+ sourceId: i,
4484
+ targetCol: o.find((e) => e !== r)
4485
+ };
4486
+ };
4471
4487
  return {
4472
4488
  query: oe,
4473
4489
  one: (async (e) => {
@@ -4494,35 +4510,67 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4494
4510
  take: 1
4495
4511
  }))[0] ?? null),
4496
4512
  insert: async (t, n) => {
4497
- let r = o(t, n), i = await p(t, r, () => e.insert(t, x(t, y(t, r))));
4498
- return T(t, [i])[0];
4513
+ let r = o(t, n), i = await p(t, r, () => e.insert(t, C(t, b(t, r))));
4514
+ return E(t, [i])[0];
4499
4515
  },
4500
- insertMany: async (t, n) => {
4501
- let r = n.map((e) => o(t, e)), i = r.map((e) => x(t, y(t, e))), a = await p(t, r[0] ?? {}, () => e.insertMany(t, i));
4502
- return T(t, a);
4516
+ insertMany: (async (e, t) => he(e, t)),
4517
+ links: (e, n) => {
4518
+ let { sourceCol: r, sourceId: i, targetCol: a } = ge(e, n), o = async () => (await oe({
4519
+ table: e,
4520
+ predicate: u(r, i),
4521
+ order: [],
4522
+ projection: void 0,
4523
+ skip: void 0,
4524
+ take: void 0
4525
+ })).map((e) => String(e[a])), s = async (t) => {
4526
+ t.length !== 0 && await he(e, t.map((e) => ({
4527
+ [r]: i,
4528
+ [a]: e
4529
+ })));
4530
+ }, c = async (n) => {
4531
+ n.length !== 0 && await k(e, { where: t(u(r, i), y(a, n)) });
4532
+ };
4533
+ return {
4534
+ list: o,
4535
+ set: async (e) => {
4536
+ let t = new Set(e), n = new Set(await o()), r = [...t].filter((e) => !n.has(e)), i = [...n].filter((e) => !t.has(e));
4537
+ return await c(i), await s(r), {
4538
+ added: r,
4539
+ removed: i
4540
+ };
4541
+ },
4542
+ add: async (e) => {
4543
+ let t = new Set(await o()), n = [...new Set(e)].filter((e) => !t.has(e));
4544
+ return await s(n), n;
4545
+ },
4546
+ remove: async (e) => {
4547
+ let t = new Set(await o()), n = [...new Set(e)].filter((e) => t.has(e));
4548
+ return await c(n), n;
4549
+ }
4550
+ };
4503
4551
  },
4504
4552
  patchJson: async (t, n, r, i) => {
4505
4553
  let a = await e.patchJson(t, n, r, i);
4506
- return a === null ? null : T(t, [a])[0];
4554
+ return a === null ? null : E(t, [a])[0];
4507
4555
  },
4508
- select: O.select,
4509
- update: ((e, t, n) => t === void 0 ? O.updateWhere(e) : se(e, t, n)),
4510
- delete: ((e, t) => t === void 0 ? O.deleteWhere(e) : ce(e, t)),
4556
+ select: fe.select,
4557
+ update: pe,
4558
+ delete: me,
4511
4559
  applyDefined: Ds,
4512
4560
  hardDelete: async (t, n) => e.delete(t, n),
4513
- updateMany: E,
4514
- deleteMany: D,
4561
+ updateMany: O,
4562
+ deleteMany: k,
4515
4563
  upsert: async (t, n, r) => {
4516
4564
  let i = o(t, n);
4517
4565
  v(t, i, r.conflictColumns);
4518
- let a = await p(t, i, () => e.upsert(t, x(t, y(t, i)), r));
4519
- return T(t, [a])[0];
4566
+ let a = await p(t, i, () => e.upsert(t, C(t, b(t, i)), r));
4567
+ return E(t, [a])[0];
4520
4568
  },
4521
4569
  insertIgnore: async (t, n, r) => {
4522
4570
  let i = o(t, n);
4523
4571
  v(t, i, r.conflictColumns);
4524
- let a = await p(t, i, () => e.insertIgnore(t, x(t, y(t, i)), r));
4525
- return T(t, [a])[0];
4572
+ let a = await p(t, i, () => e.insertIgnore(t, C(t, b(t, i)), r));
4573
+ return E(t, [a])[0];
4526
4574
  },
4527
4575
  transactional: (t) => e.transactional(async (e) => t(As(e, n))),
4528
4576
  ...e.raw ? { raw: e.raw.bind(e) } : {},
@@ -4530,30 +4578,47 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4530
4578
  injectExternalChange: (t) => e.injectExternalChange(t),
4531
4579
  ...e.changeScope === void 0 ? {} : { changeScope: e.changeScope }
4532
4580
  };
4533
- }, js = class extends R.TaggedError()("CircuitOpen", {
4534
- name: R.String,
4535
- retryAfterMs: R.Number
4536
- }) {}, Ms = {
4581
+ }, js = (e, t) => {
4582
+ if (t === void 0 || t.length === 0) return e;
4583
+ let n = { ...e };
4584
+ for (let e of t) delete n[e];
4585
+ return n;
4586
+ }, Ms = (e, t) => t.length === 0 ? e : e.map((e) => js(e, t)), Ns = {
4587
+ list: (e, t = {}) => async (n, r) => Ms(await r.store.select(e).all(), t.redact ?? []),
4588
+ getById: (e, t = {}) => async (n, r) => {
4589
+ let i = await r.store.select(e).where("id", n.id).first();
4590
+ return i === null ? null : js(i, t.redact);
4591
+ },
4592
+ create: (e, t = {}) => async (n, r) => js(await r.store.insert(e, n), t.redact),
4593
+ update: (e, t = {}) => async (n, r) => {
4594
+ let { id: i, ...a } = n, o = await r.store.update(e, i, a);
4595
+ return o === null ? null : js(o, t.redact);
4596
+ },
4597
+ remove: (e) => async (t, n) => ({ deleted: await n.store.delete(e, t.id) })
4598
+ }, Ps = class extends L.TaggedError()("CircuitOpen", {
4599
+ name: L.String,
4600
+ retryAfterMs: L.Number
4601
+ }) {}, Fs = {
4537
4602
  tag: "closed",
4538
4603
  failureCount: 0,
4539
4604
  halfOpenSuccesses: 0,
4540
4605
  openedAt: 0
4541
- }, Ns = { make: (e) => N.gen(function* () {
4542
- let t = e.name ?? "circuit", n = We.toMillis(We.decode(e.resetTimeout)), r = e.halfOpenSuccessThreshold ?? 1, i = e.isFailure ?? (() => !0), a = yield* L.make(Ms), o = N.gen(function* () {
4543
- let e = yield* L.get(a);
4606
+ }, Is = { make: (e) => N.gen(function* () {
4607
+ let t = e.name ?? "circuit", n = We.toMillis(We.decode(e.resetTimeout)), r = e.halfOpenSuccessThreshold ?? 1, i = e.isFailure ?? (() => !0), a = yield* I.make(Fs), o = N.gen(function* () {
4608
+ let e = yield* I.get(a);
4544
4609
  if (e.tag === "half-open") {
4545
4610
  let t = e.halfOpenSuccesses + 1;
4546
- yield* L.set(a, t >= r ? Ms : {
4611
+ yield* I.set(a, t >= r ? Fs : {
4547
4612
  ...e,
4548
4613
  halfOpenSuccesses: t
4549
4614
  });
4550
4615
  return;
4551
4616
  }
4552
- e.failureCount !== 0 && (yield* L.set(a, Ms));
4617
+ e.failureCount !== 0 && (yield* I.set(a, Fs));
4553
4618
  }), s = N.gen(function* () {
4554
- let t = yield* Ve.currentTimeMillis, n = yield* L.get(a);
4619
+ let t = yield* Be.currentTimeMillis, n = yield* I.get(a);
4555
4620
  if (n.tag === "half-open" || n.tag === "open") {
4556
- yield* L.set(a, {
4621
+ yield* I.set(a, {
4557
4622
  tag: "open",
4558
4623
  failureCount: e.failureThreshold,
4559
4624
  halfOpenSuccesses: 0,
@@ -4562,7 +4627,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4562
4627
  return;
4563
4628
  }
4564
4629
  let r = n.failureCount + 1;
4565
- yield* L.set(a, r >= e.failureThreshold ? {
4630
+ yield* I.set(a, r >= e.failureThreshold ? {
4566
4631
  tag: "open",
4567
4632
  failureCount: r,
4568
4633
  halfOpenSuccesses: 0,
@@ -4572,10 +4637,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4572
4637
  failureCount: r
4573
4638
  });
4574
4639
  }), c = N.gen(function* () {
4575
- let e = yield* L.get(a);
4640
+ let e = yield* I.get(a);
4576
4641
  if (e.tag !== "open") return null;
4577
- let t = (yield* Ve.currentTimeMillis) - e.openedAt;
4578
- return t >= n ? (yield* L.set(a, {
4642
+ let t = (yield* Be.currentTimeMillis) - e.openedAt;
4643
+ return t >= n ? (yield* I.set(a, {
4579
4644
  tag: "half-open",
4580
4645
  failureCount: 0,
4581
4646
  halfOpenSuccesses: 0,
@@ -4584,27 +4649,27 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4584
4649
  }), l = (e) => N.gen(function* () {
4585
4650
  let n = yield* c;
4586
4651
  return n === null ? yield* e.pipe(N.tap(() => o), N.tapErrorCause((e) => {
4587
- if (j.isInterruptedOnly(e)) return N.void;
4588
- let t = j.failureOption(e), n = t._tag === "Some" ? t.value : void 0;
4652
+ if (M.isInterruptedOnly(e)) return N.void;
4653
+ let t = M.failureOption(e), n = t._tag === "Some" ? t.value : void 0;
4589
4654
  return i(n) ? s : N.void;
4590
- })) : yield* N.fail(new js({
4655
+ })) : yield* N.fail(new Ps({
4591
4656
  name: t,
4592
4657
  retryAfterMs: n
4593
4658
  }));
4594
4659
  }), u = ((e) => l(e));
4595
4660
  return Object.defineProperty(u, "state", {
4596
- value: L.get(a).pipe(N.map((e) => e.tag)),
4661
+ value: I.get(a).pipe(N.map((e) => e.tag)),
4597
4662
  enumerable: !0
4598
4663
  }), Object.defineProperty(u, "reset", {
4599
- value: L.set(a, Ms),
4664
+ value: I.set(a, Fs),
4600
4665
  enumerable: !0
4601
4666
  }), u;
4602
- }) }, Ps, Fs = (e) => {
4603
- Ps = e;
4604
- }, Is = () => {
4605
- Ps = void 0;
4606
- }, Ls = () => Ps, Rs = async (e, t = {}) => {
4607
- let n = t.scopes === void 0 ? ze(t.id ?? "system") : ze(t.id ?? "system", t.scopes), r = t.store ?? Ps?.dataStore, i = t.schemaRegistry ?? Ps?.schemaRegistry, a = t.dialect ?? Ps?.dialect;
4667
+ }) }, Ls, Rs = (e) => {
4668
+ Ls = e;
4669
+ }, zs = () => {
4670
+ Ls = void 0;
4671
+ }, Bs = () => Ls, Vs = async (e, t = {}) => {
4672
+ let n = t.scopes === void 0 ? Re(t.id ?? "system") : Re(t.id ?? "system", t.scopes), r = t.store ?? Ls?.dataStore, i = t.schemaRegistry ?? Ls?.schemaRegistry, a = t.dialect ?? Ls?.dialect;
4608
4673
  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.");
4609
4674
  return e({
4610
4675
  subject: n,
@@ -4614,7 +4679,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4614
4679
  ...a === void 0 ? {} : { dialect: a }
4615
4680
  })
4616
4681
  });
4617
- }, zs = (e) => {
4682
+ }, Hs = (e) => {
4618
4683
  let { currentRegion: t, replicaRegions: n, inner: r } = e, i = (e) => {
4619
4684
  if (t === void 0) return {
4620
4685
  sameRegion: [],
@@ -4642,7 +4707,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4642
4707
  return r.loadSnapshot();
4643
4708
  }
4644
4709
  };
4645
- }, Bs = (e = process.env) => {
4710
+ }, Us = (e = process.env) => {
4646
4711
  for (let t of [
4647
4712
  "VOLTRO_REGION",
4648
4713
  "AWS_REGION",
@@ -4654,7 +4719,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4654
4719
  let n = e[t];
4655
4720
  if (typeof n == "string" && n.length > 0) return n;
4656
4721
  }
4657
- }, Vs = () => {
4722
+ }, Ws = () => {
4658
4723
  let e = {
4659
4724
  primary: 0,
4660
4725
  lagByReplica: /* @__PURE__ */ new Map()
@@ -4679,8 +4744,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4679
4744
  e.lagByReplica.set(t, n);
4680
4745
  }
4681
4746
  };
4682
- }, Hs = Symbol.for("@voltro/ScheduleDefinition"), Us = (e) => typeof e == "object" && !!e && Hs in e, Ws = 30 * 6e4, Gs = (e) => {
4683
- let t = M.parse(e.cron, e.timezone);
4747
+ }, Gs = Symbol.for("@voltro/ScheduleDefinition"), Ks = (e) => typeof e == "object" && !!e && Gs in e, qs = 30 * 6e4, Js = (e) => {
4748
+ let t = He.parse(e.cron, e.timezone);
4684
4749
  if (Ge.isLeft(t)) throw Error(`defineSchedule("${e.name}"): invalid cron expression "${e.cron}" (tz="${e.timezone}") — ${String(t.left)}`);
4685
4750
  if (!e.timezone || e.timezone.trim() === "") throw Error(`defineSchedule("${e.name}"): timezone is required (e.g. "UTC", "Europe/Berlin")`);
4686
4751
  if (e.handler === void 0 && e.workflow === void 0) throw Error(`defineSchedule("${e.name}"): define either handler or workflow`);
@@ -4688,18 +4753,18 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4688
4753
  ...e,
4689
4754
  onOverlap: e.onOverlap ?? "skip",
4690
4755
  backfill: e.backfill ?? "skip",
4691
- maxRuntimeMs: e.maxRuntimeMs ?? Ws,
4692
- [Hs]: !0
4756
+ maxRuntimeMs: e.maxRuntimeMs ?? qs,
4757
+ [Gs]: !0
4693
4758
  };
4694
- }, Ks = (e) => M.unsafeParse(e.cron, e.timezone), qs = (e, t = /* @__PURE__ */ new Date()) => M.next(Ks(e), t), Z = "_voltro_wakeups", Js = (e) => `${e.tenantId}:${e.kind}:${e.refId}`, Ys = (e) => ({
4759
+ }, Ys = (e) => He.unsafeParse(e.cron, e.timezone), Xs = (e, t = /* @__PURE__ */ new Date()) => He.next(Ys(e), t), Z = "_voltro_wakeups", Zs = (e) => `${e.tenantId}:${e.kind}:${e.refId}`, Qs = (e) => ({
4695
4760
  tenantId: String(e.tenantId),
4696
4761
  kind: String(e.kind),
4697
4762
  refId: String(e.refId),
4698
4763
  wakeAt: e.wakeAt instanceof Date ? e.wakeAt : new Date(String(e.wakeAt)),
4699
4764
  status: e.status === "fired" ? "fired" : "pending"
4700
- }), Xs = async (e, t) => {
4765
+ }), $s = async (e, t) => {
4701
4766
  await e.upsert(Z, {
4702
- id: Js(t),
4767
+ id: Zs(t),
4703
4768
  tenantId: t.tenantId,
4704
4769
  kind: t.kind,
4705
4770
  refId: t.refId,
@@ -4709,7 +4774,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4709
4774
  conflictColumns: ["id"],
4710
4775
  update: ["wakeAt", "status"]
4711
4776
  });
4712
- }, Zs = async (e, t) => e.delete(Z, Js(t)), Qs = async (e, t) => await e.update(Z, Js(t), { status: "fired" }) !== null, $s = (e, t) => ({ and: [{
4777
+ }, ec = async (e, t) => e.delete(Z, Zs(t)), tc = async (e, t) => await e.update(Z, Zs(t), { status: "fired" }) !== null, nc = (e, t) => ({ and: [{
4713
4778
  column: "id",
4714
4779
  op: "eq",
4715
4780
  value: e
@@ -4717,16 +4782,16 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4717
4782
  column: "status",
4718
4783
  op: "eq",
4719
4784
  value: t
4720
- }] }), ec = async (e, t) => await e.updateMany(Z, { status: "fired" }, { where: $s(Js(t), "pending") }) > 0, tc = async (e, t) => {
4721
- await e.updateMany(Z, { status: "pending" }, { where: $s(Js(t), "fired") });
4722
- }, nc = {
4785
+ }] }), rc = async (e, t) => await e.updateMany(Z, { status: "fired" }, { where: nc(Zs(t), "pending") }) > 0, ic = async (e, t) => {
4786
+ await e.updateMany(Z, { status: "pending" }, { where: nc(Zs(t), "fired") });
4787
+ }, ac = {
4723
4788
  column: "status",
4724
4789
  op: "eq",
4725
4790
  value: "pending"
4726
- }, rc = async (e, t) => {
4791
+ }, oc = async (e, t) => {
4727
4792
  let n = {
4728
4793
  table: Z,
4729
- predicate: nc,
4794
+ predicate: ac,
4730
4795
  order: [{
4731
4796
  column: "wakeAt",
4732
4797
  direction: "asc"
@@ -4735,18 +4800,18 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4735
4800
  skip: void 0,
4736
4801
  projection: void 0
4737
4802
  };
4738
- return (await e.query(n)).map(Ys);
4739
- }, ic = async (e, t, n = 500) => {
4740
- let r = await rc(e, n), i = t.getTime();
4803
+ return (await e.query(n)).map(Qs);
4804
+ }, sc = async (e, t, n = 500) => {
4805
+ let r = await oc(e, n), i = t.getTime();
4741
4806
  return r.filter((e) => e.wakeAt.getTime() <= i);
4742
- }, ac = async (e) => (await rc(e, 1))[0] ?? null, oc = {
4807
+ }, cc = async (e) => (await oc(e, 1))[0] ?? null, lc = {
4743
4808
  column: "status",
4744
4809
  op: "eq",
4745
4810
  value: "fired"
4746
- }, sc = async (e, t = {}) => {
4811
+ }, uc = async (e, t = {}) => {
4747
4812
  let n = {
4748
4813
  table: Z,
4749
- predicate: oc,
4814
+ predicate: lc,
4750
4815
  order: [{
4751
4816
  column: "wakeAt",
4752
4817
  direction: "asc"
@@ -4757,12 +4822,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4757
4822
  }, r = await e.query(n), i = t.firedOlderThan?.getTime(), a = 0;
4758
4823
  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++;
4759
4824
  return a;
4760
- }, cc = Ki, lc = "default", uc = {
4825
+ }, dc = qi, fc = "default", pc = {
4761
4826
  kind: "single",
4762
4827
  tryClaim: async () => !0
4763
- }, dc = "_voltro_schedule_claims", fc = (e, t, n) => {
4828
+ }, mc = "_voltro_schedule_claims", hc = (e, t, n) => {
4764
4829
  let r = async (t) => (await e.query({
4765
- table: dc,
4830
+ table: mc,
4766
4831
  order: [],
4767
4832
  predicate: void 0,
4768
4833
  projection: ["id"],
@@ -4777,7 +4842,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4777
4842
  if (await r(s)) return !1;
4778
4843
  } catch {}
4779
4844
  try {
4780
- return await e.insert(dc, {
4845
+ return await e.insert(mc, {
4781
4846
  id: s,
4782
4847
  scheduleName: i,
4783
4848
  bucket: o,
@@ -4795,12 +4860,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4795
4860
  }
4796
4861
  }
4797
4862
  };
4798
- }, pc = "_voltro_schedule_runs", mc = async (e, t) => {
4863
+ }, gc = "_voltro_schedule_runs", _c = async (e, t) => {
4799
4864
  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) => {
4800
- s?.(e, gc(t));
4865
+ s?.(e, yc(t));
4801
4866
  }, _ = async (e, t, r, i, s, c) => {
4802
4867
  try {
4803
- let o = `sr_${ve()}`, l = await n.insert(pc, {
4868
+ let o = `sr_${_e()}`, l = await n.insert(gc, {
4804
4869
  id: o,
4805
4870
  name: e.name,
4806
4871
  status: i,
@@ -4825,7 +4890,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4825
4890
  }
4826
4891
  }, v = async (e, t) => {
4827
4892
  try {
4828
- let r = await n.update(pc, e, t);
4893
+ let r = await n.update(gc, e, t);
4829
4894
  r && g("update", r);
4830
4895
  } catch (t) {
4831
4896
  o.warn("schedule: failed to record run finish", {
@@ -4836,7 +4901,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4836
4901
  }, y = async (e) => {
4837
4902
  try {
4838
4903
  let t = await n.query({
4839
- table: pc,
4904
+ table: gc,
4840
4905
  predicate: {
4841
4906
  _tag: "leaf",
4842
4907
  column: "status",
@@ -4871,7 +4936,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4871
4936
  scheduleName: e.name,
4872
4937
  trigger: n,
4873
4938
  runId: s,
4874
- subject: cc
4939
+ subject: dc
4875
4940
  })
4876
4941
  };
4877
4942
  try {
@@ -4902,7 +4967,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4902
4967
  let n = Q(t).includes("exceeded maxRuntimeMs");
4903
4968
  s && await v(s, {
4904
4969
  status: "failed",
4905
- errorTag: n ? "timeout" : hc(t),
4970
+ errorTag: n ? "timeout" : vc(t),
4906
4971
  errorMessage: Q(t),
4907
4972
  completedAt: /* @__PURE__ */ new Date(),
4908
4973
  durationMs: Date.now() - l
@@ -4910,7 +4975,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4910
4975
  name: e.name,
4911
4976
  reason: Q(t),
4912
4977
  timeout: n
4913
- }), Ie({
4978
+ }), Fe({
4914
4979
  error: t,
4915
4980
  source: "schedule",
4916
4981
  name: e.name,
@@ -4959,8 +5024,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4959
5024
  }
4960
5025
  }, C = async (e) => {
4961
5026
  try {
4962
- let t = M.next(Ks(e), /* @__PURE__ */ new Date());
4963
- await Xs(n, {
5027
+ let t = He.next(Ys(e), /* @__PURE__ */ new Date());
5028
+ await $s(n, {
4964
5029
  tenantId: u,
4965
5030
  kind: "schedule",
4966
5031
  refId: e.name,
@@ -4974,7 +5039,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4974
5039
  }
4975
5040
  }, ee = 2147483647, te = (e) => {
4976
5041
  if (m) return;
4977
- let n = Ks(e), r = M.next(n, /* @__PURE__ */ new Date()), i = () => {
5042
+ let n = Ys(e), r = He.next(n, /* @__PURE__ */ new Date()), i = () => {
4978
5043
  if (m) return;
4979
5044
  let n = r.getTime() - Date.now();
4980
5045
  if (n > ee) {
@@ -4991,12 +5056,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
4991
5056
  d.set(e.name, a);
4992
5057
  };
4993
5058
  i();
4994
- }, ne = async (e) => {
5059
+ }, w = async (e) => {
4995
5060
  if (e.backfill === "skip") return;
4996
5061
  let r;
4997
5062
  try {
4998
5063
  let t = (await n.query({
4999
- table: pc,
5064
+ table: gc,
5000
5065
  order: [{
5001
5066
  column: "scheduledAt",
5002
5067
  direction: "desc"
@@ -5015,8 +5080,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5015
5080
  return;
5016
5081
  }
5017
5082
  if (!r) return;
5018
- let i = Ks(e), a = [], s = M.next(i, r), c = Date.now();
5019
- for (; s.getTime() < c && a.length < 1e3;) a.push(s), s = M.next(i, s);
5083
+ let i = Ys(e), a = [], s = He.next(i, r), c = Date.now();
5084
+ for (; s.getTime() < c && a.length < 1e3;) a.push(s), s = He.next(i, s);
5020
5085
  if (a.length !== 0) if (o.info("schedule: backfill", {
5021
5086
  name: e.name,
5022
5087
  missed: a.length,
@@ -5026,20 +5091,20 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5026
5091
  let n = a[a.length - 1];
5027
5092
  await x(e, n, e.trigger ?? t.defaultTrigger);
5028
5093
  } else for (let n of a) await x(e, n, e.trigger ?? t.defaultTrigger);
5029
- }, w = e.filter((e) => (e.trigger ?? t.defaultTrigger) === "self");
5094
+ }, T = e.filter((e) => (e.trigger ?? t.defaultTrigger) === "self");
5030
5095
  o.info("scheduler: starting", {
5031
5096
  total: e.length,
5032
- self: w.length,
5033
- external: e.length - w.length,
5097
+ self: T.length,
5098
+ external: e.length - T.length,
5034
5099
  coordinator: r.kind
5035
5100
  });
5036
- let re = (t.armSelf ?? !0) && !l;
5101
+ let ne = (t.armSelf ?? !0) && !l;
5037
5102
  if (l) {
5038
- o.info("scheduler: sleep mode — registering wakeups, not arming timers", { count: w.length });
5039
- for (let e of w) await C(e);
5040
- } else if (re) {
5041
- for (let e of w) await ne(e);
5042
- for (let e of w) te(e);
5103
+ o.info("scheduler: sleep mode — registering wakeups, not arming timers", { count: T.length });
5104
+ for (let e of T) await C(e);
5105
+ } else if (ne) {
5106
+ for (let e of T) await w(e);
5107
+ for (let e of T) te(e);
5043
5108
  }
5044
5109
  return {
5045
5110
  fireNow: async (e, t) => {
@@ -5060,11 +5125,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5060
5125
  d.clear(), o.info("scheduler: stopped");
5061
5126
  }
5062
5127
  };
5063
- }, Q = (e) => e?.message ?? String(e), hc = (e) => e && typeof e == "object" && "_tag" in e ? String(e._tag) : null, gc = (e) => {
5128
+ }, Q = (e) => e?.message ?? String(e), vc = (e) => e && typeof e == "object" && "_tag" in e ? String(e._tag) : null, yc = (e) => {
5064
5129
  let t = {};
5065
5130
  for (let [n, r] of Object.entries(e)) t[n] = r instanceof Date ? r.toISOString() : r;
5066
5131
  return t;
5067
- }, _c = (e, t, n, r) => {
5132
+ }, bc = (e, t, n, r) => {
5068
5133
  let i = !1, a, o = async () => {
5069
5134
  if (i) return;
5070
5135
  let a = new Date(Math.floor(Date.now() / t) * t), o = !1;
@@ -5094,96 +5159,96 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5094
5159
  i || (i = !0, a && clearInterval(a), a = void 0);
5095
5160
  }
5096
5161
  };
5097
- }, vc = (e) => (t, n, r) => _c(t, n, r, e), yc = E("_voltro_schedule_runs", {
5162
+ }, xc = (e) => (t, n, r) => bc(t, n, r, e), Sc = D("_voltro_schedule_runs", {
5098
5163
  id: v({ prefix: "schrun" }),
5099
- name: D(),
5100
- status: D().oneOf([
5164
+ name: O(),
5165
+ status: O().oneOf([
5101
5166
  "running",
5102
5167
  "succeeded",
5103
5168
  "failed",
5104
5169
  "skipped",
5105
5170
  "missed"
5106
5171
  ]).default("running"),
5107
- trigger: D().oneOf([
5172
+ trigger: O().oneOf([
5108
5173
  "self",
5109
5174
  "external",
5110
5175
  "manual"
5111
5176
  ]).default("self"),
5112
- scheduledAt: O(),
5113
- firedAt: O().nullable(),
5114
- completedAt: O().nullable(),
5177
+ scheduledAt: k(),
5178
+ firedAt: k().nullable(),
5179
+ completedAt: k().nullable(),
5115
5180
  durationMs: b().nullable(),
5116
- errorTag: D().nullable(),
5117
- errorMessage: D().nullable(),
5118
- coordinationOutcome: D().oneOf([
5181
+ errorTag: O().nullable(),
5182
+ errorMessage: O().nullable(),
5183
+ coordinationOutcome: O().oneOf([
5119
5184
  "single",
5120
5185
  "wonLock",
5121
5186
  "lostLock",
5122
5187
  "external",
5123
5188
  "cluster"
5124
5189
  ]).nullable(),
5125
- replicaId: D().nullable(),
5190
+ replicaId: O().nullable(),
5126
5191
  result: C().nullable()
5127
- }).index(["name", "scheduledAt"]).index(["status"]), bc = E("_voltro_schedule_claims", {
5192
+ }).index(["name", "scheduledAt"]).index(["status"]), Cc = D("_voltro_schedule_claims", {
5128
5193
  id: v({ prefix: "schclaim" }),
5129
- scheduleName: D(),
5130
- bucket: D(),
5131
- claimedBy: D(),
5132
- claimedAt: O()
5133
- }).index(["scheduleName", "bucket"]).index(["claimedAt"]), xc = E("_voltro_traces", {
5194
+ scheduleName: O(),
5195
+ bucket: O(),
5196
+ claimedBy: O(),
5197
+ claimedAt: k()
5198
+ }).index(["scheduleName", "bucket"]).index(["claimedAt"]), wc = D("_voltro_traces", {
5134
5199
  id: v({ prefix: "span" }),
5135
- traceId: D(),
5136
- spanId: D(),
5137
- parentSpanId: D().nullable(),
5138
- name: D(),
5139
- kind: D().oneOf([
5200
+ traceId: O(),
5201
+ spanId: O(),
5202
+ parentSpanId: O().nullable(),
5203
+ name: O(),
5204
+ kind: O().oneOf([
5140
5205
  "internal",
5141
5206
  "server",
5142
5207
  "client",
5143
5208
  "producer",
5144
5209
  "consumer"
5145
5210
  ]).default("internal"),
5146
- status: D().oneOf([
5211
+ status: O().oneOf([
5147
5212
  "ok",
5148
5213
  "error",
5149
5214
  "unset"
5150
5215
  ]).default("unset"),
5151
- statusMessage: D().nullable(),
5152
- startedAt: O(),
5153
- endedAt: O(),
5216
+ statusMessage: O().nullable(),
5217
+ startedAt: k(),
5218
+ endedAt: k(),
5154
5219
  durationMs: b(),
5155
5220
  attributes: C().nullable(),
5156
5221
  events: C().nullable()
5157
- }).index(["traceId", "startedAt"]).index(["startedAt"]).index(["status"]), Sc = E("_voltro_undo_log", {
5222
+ }).index(["traceId", "startedAt"]).index(["startedAt"]).index(["status"]), Tc = D("_voltro_undo_log", {
5158
5223
  id: v({ prefix: "undo" }),
5159
- tag: D(),
5160
- label: D().nullable(),
5161
- subjectId: D().nullable(),
5162
- tenantId: D().nullable(),
5163
- traceId: D().nullable(),
5164
- changes: D(),
5224
+ tag: O(),
5225
+ label: O().nullable(),
5226
+ subjectId: O().nullable(),
5227
+ tenantId: O().nullable(),
5228
+ traceId: O().nullable(),
5229
+ changes: O(),
5165
5230
  crossesAction: r().default(!1),
5166
5231
  undone: r().default(!1),
5167
- createdAt: O().default("now")
5168
- }).index(["subjectId", "createdAt"]).reactive(), Cc = (e = process.env) => {
5232
+ createdAt: k().default("now")
5233
+ }).index(["subjectId", "createdAt"]).reactive(), Ec = (e = process.env) => {
5169
5234
  let t = (e.VOLTRO_UNDO ?? "").toLowerCase();
5170
5235
  return t === "on" || t === "1" || t === "true" ? !0 : t === "off" || t === "0" || t === "false" ? !1 : e.NODE_ENV !== "production";
5171
- }, wc = (e) => e.startsWith("_voltro"), Tc = async (e, t, n) => (await e.query({
5236
+ }, Dc = (e) => e.startsWith("_voltro"), Oc = async (e, t, n) => (await e.query({
5172
5237
  table: t,
5173
5238
  predicate: u("id", n),
5174
5239
  order: []
5175
- }))[0] ?? null, Ec = (e, t) => new Proxy(e, { get(e, n, r) {
5240
+ }))[0] ?? null, kc = (e, t) => new Proxy(e, { get(e, n, r) {
5176
5241
  if (n === "insert") return async (n, r) => {
5177
5242
  let i = await e.insert(n, r);
5178
- return wc(n) || t({
5243
+ return Dc(n) || t({
5179
5244
  table: n,
5180
5245
  op: "insert",
5181
5246
  next: i
5182
5247
  }), i;
5183
5248
  };
5184
5249
  if (n === "update") return async (n, r, i) => {
5185
- let a = wc(n) ? null : await Tc(e, n, r), o = await e.update(n, r, i);
5186
- return wc(n) || t({
5250
+ let a = Dc(n) ? null : await Oc(e, n, r), o = await e.update(n, r, i);
5251
+ return Dc(n) || t({
5187
5252
  table: n,
5188
5253
  op: "update",
5189
5254
  id: r,
@@ -5192,8 +5257,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5192
5257
  }), o;
5193
5258
  };
5194
5259
  if (n === "delete") return async (n, r) => {
5195
- let i = wc(n) ? null : await Tc(e, n, r), a = await e.delete(n, r);
5196
- return !wc(n) && a && t({
5260
+ let i = Dc(n) ? null : await Oc(e, n, r), a = await e.delete(n, r);
5261
+ return !Dc(n) && a && t({
5197
5262
  table: n,
5198
5263
  op: "delete",
5199
5264
  id: r,
@@ -5202,10 +5267,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5202
5267
  };
5203
5268
  let i = Reflect.get(e, n, r);
5204
5269
  return typeof i == "function" ? i.bind(e) : i;
5205
- } }), Dc = (e) => {
5270
+ } }), Ac = (e) => {
5206
5271
  let t = [];
5207
5272
  return {
5208
- tx: Ec(e, (e) => t.push(e)),
5273
+ tx: kc(e, (e) => t.push(e)),
5209
5274
  persist: async (e, n) => {
5210
5275
  if (t.length === 0 || n.tag.startsWith("__voltro")) return;
5211
5276
  let r = n.subject;
@@ -5221,14 +5286,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5221
5286
  });
5222
5287
  }
5223
5288
  };
5224
- }, Oc = (e) => {
5289
+ }, jc = (e) => {
5225
5290
  if (e.id !== void 0) return e.id;
5226
5291
  let t = e.next?.id;
5227
5292
  if (typeof t == "string") return t;
5228
5293
  let n = e.prev?.id;
5229
5294
  return typeof n == "string" ? n : void 0;
5230
- }, kc = (e) => {
5231
- let t = Oc(e);
5295
+ }, Mc = (e) => {
5296
+ let t = jc(e);
5232
5297
  switch (e.op) {
5233
5298
  case "insert": return t === void 0 ? null : {
5234
5299
  table: e.table,
@@ -5252,28 +5317,28 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5252
5317
  row: e.prev
5253
5318
  };
5254
5319
  }
5255
- }, Ac = (e) => {
5256
- if (e.crossesAction) throw new jc(e.invocationId, "action");
5320
+ }, Nc = (e) => {
5321
+ if (e.crossesAction) throw new Pc(e.invocationId, "action");
5257
5322
  let t = [];
5258
5323
  for (let n = e.changes.length - 1; n >= 0; --n) {
5259
- let r = kc(e.changes[n]);
5324
+ let r = Mc(e.changes[n]);
5260
5325
  r !== null && t.push(r);
5261
5326
  }
5262
5327
  return t;
5263
- }, jc = class extends Error {
5328
+ }, Pc = class extends Error {
5264
5329
  invocationId;
5265
5330
  boundary;
5266
5331
  _tag = "UndoBoundaryError";
5267
5332
  constructor(e, t) {
5268
5333
  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";
5269
5334
  }
5270
- }, Mc = (e, t, n = ["updatedAt", "updatedBy"]) => {
5335
+ }, Fc = (e, t, n = ["updatedAt", "updatedBy"]) => {
5271
5336
  if (t == null) return e == null;
5272
5337
  if (e == null) return !1;
5273
5338
  let r = new Set(n);
5274
5339
  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;
5275
5340
  return !0;
5276
- }, Nc = class {
5341
+ }, Ic = class {
5277
5342
  capacity;
5278
5343
  done = [];
5279
5344
  undone = [];
@@ -5309,7 +5374,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5309
5374
  redo: [...this.undone]
5310
5375
  };
5311
5376
  }
5312
- }, Pc = (e, t = /* @__PURE__ */ new Set()) => e.op === "insert" ? {
5377
+ }, Lc = (e, t = /* @__PURE__ */ new Set()) => e.op === "insert" ? {
5313
5378
  table: e.table,
5314
5379
  op: "insert",
5315
5380
  next: e.new ?? null
@@ -5326,7 +5391,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5326
5391
  table: e.table,
5327
5392
  op: "delete",
5328
5393
  prev: e.old ?? null
5329
- }, Fc = async (e, t) => {
5394
+ }, Rc = async (e, t) => {
5330
5395
  switch (t.op) {
5331
5396
  case "delete":
5332
5397
  await e.delete(t.table, t.id);
@@ -5344,21 +5409,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5344
5409
  await e.insert(t.table, t.row);
5345
5410
  return;
5346
5411
  }
5347
- }, Ic = async (e, t) => {
5348
- for (let n of t) await Fc(e, n);
5349
- }, Lc = (e) => e.request?.subject?.id ?? null, Rc = (e) => e === !0 || e === 1, zc = async (e, t, n) => (await e.query({
5412
+ }, zc = async (e, t) => {
5413
+ for (let n of t) await Rc(e, n);
5414
+ }, Bc = (e) => e.request?.subject?.id ?? null, Vc = (e) => e === !0 || e === 1, Hc = async (e, t, n) => (await e.query({
5350
5415
  table: t,
5351
5416
  predicate: u("id", n),
5352
5417
  order: []
5353
- }))[0] ?? null, Bc = (e) => {
5418
+ }))[0] ?? null, Uc = (e) => {
5354
5419
  try {
5355
5420
  let t = JSON.parse(String(e ?? "[]"));
5356
5421
  return Array.isArray(t) ? t : [];
5357
5422
  } catch {
5358
5423
  return [];
5359
5424
  }
5360
- }, Vc = (e) => e.id ?? e.next?.id ?? e.prev?.id, Hc = async (e, t) => {
5361
- let n = Lc(t);
5425
+ }, Wc = (e) => e.id ?? e.next?.id ?? e.prev?.id, Gc = async (e, t) => {
5426
+ let n = Bc(t);
5362
5427
  return [...await t.store.query({
5363
5428
  table: "_voltro_undo_log",
5364
5429
  predicate: u("subjectId", n),
@@ -5367,68 +5432,68 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5367
5432
  id: String(e.id),
5368
5433
  tag: String(e.tag ?? ""),
5369
5434
  label: e.label ?? null,
5370
- undone: Rc(e.undone),
5371
- crossesAction: Rc(e.crossesAction),
5435
+ undone: Vc(e.undone),
5436
+ crossesAction: Vc(e.crossesAction),
5372
5437
  createdAt: String(e.createdAt ?? "")
5373
5438
  }));
5374
- }, Uc = async (e, t) => {
5375
- let n = await zc(t.store, "_voltro_undo_log", e.invocationId);
5376
- if (!n) throw new ke({ invocationId: e.invocationId });
5377
- if ((n.subjectId ?? null) !== Lc(t)) throw new Oe({ invocationId: e.invocationId });
5439
+ }, Kc = async (e, t) => {
5440
+ let n = await Hc(t.store, "_voltro_undo_log", e.invocationId);
5441
+ if (!n) throw new Oe({ invocationId: e.invocationId });
5442
+ if ((n.subjectId ?? null) !== Bc(t)) throw new De({ invocationId: e.invocationId });
5378
5443
  return n;
5379
- }, Wc = async (e, t) => {
5380
- let n = await Uc(e, t);
5381
- if (Rc(n.undone)) return { ok: !0 };
5382
- if (Rc(n.crossesAction)) throw new De({
5444
+ }, qc = async (e, t) => {
5445
+ let n = await Kc(e, t);
5446
+ if (Vc(n.undone)) return { ok: !0 };
5447
+ if (Vc(n.crossesAction)) throw new Ee({
5383
5448
  invocationId: e.invocationId,
5384
5449
  reason: "action"
5385
5450
  });
5386
- let r = Bc(n.changes);
5451
+ let r = Uc(n.changes);
5387
5452
  for (let n of r) {
5388
- let r = Vc(n);
5389
- if (r !== void 0 && !Mc(await zc(t.store, n.table, r), n.next ?? null)) throw new De({
5453
+ let r = Wc(n);
5454
+ if (r !== void 0 && !Fc(await Hc(t.store, n.table, r), n.next ?? null)) throw new Ee({
5390
5455
  invocationId: e.invocationId,
5391
5456
  reason: "conflict"
5392
5457
  });
5393
5458
  }
5394
5459
  let i = {
5395
5460
  invocationId: e.invocationId,
5396
- subject: Lc(t),
5461
+ subject: Bc(t),
5397
5462
  changes: r,
5398
5463
  crossesAction: !1
5399
5464
  };
5400
- return await Ic(t.store, Ac(i)), await t.store.update("_voltro_undo_log", e.invocationId, { undone: !0 }), { ok: !0 };
5401
- }, Gc = async (e, t) => {
5402
- let n = await Uc(e, t);
5403
- if (!Rc(n.undone)) return { ok: !0 };
5404
- for (let e of Bc(n.changes)) {
5405
- let n = Vc(e);
5465
+ return await zc(t.store, Nc(i)), await t.store.update("_voltro_undo_log", e.invocationId, { undone: !0 }), { ok: !0 };
5466
+ }, Jc = async (e, t) => {
5467
+ let n = await Kc(e, t);
5468
+ if (!Vc(n.undone)) return { ok: !0 };
5469
+ for (let e of Uc(n.changes)) {
5470
+ let n = Wc(e);
5406
5471
  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);
5407
5472
  }
5408
5473
  return await t.store.update("_voltro_undo_log", e.invocationId, { undone: !1 }), { ok: !0 };
5409
- }, Kc = (e = process.env) => {
5474
+ }, Yc = (e = process.env) => {
5410
5475
  let t = (e.VOLTRO_TIMELINE ?? "").toLowerCase();
5411
5476
  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";
5412
- }, qc = /pass(word)?|secret|token|api[_-]?key|authorization|cookie|ssn|credit[_-]?card|card[_-]?number|cvv|encrypted/i, Jc = "«redacted»", Yc = (e) => {
5477
+ }, Xc = /pass(word)?|secret|token|api[_-]?key|authorization|cookie|ssn|credit[_-]?card|card[_-]?number|cvv|encrypted/i, Zc = "«redacted»", Qc = (e) => {
5413
5478
  if (e == null) return null;
5414
5479
  let t = {};
5415
- for (let [n, r] of Object.entries(e)) t[n] = qc.test(n) ? Jc : r;
5480
+ for (let [n, r] of Object.entries(e)) t[n] = Xc.test(n) ? Zc : r;
5416
5481
  return t;
5417
- }, Xc = (e) => {
5482
+ }, $c = (e) => {
5418
5483
  let t = e?.id;
5419
5484
  return typeof t == "string" ? t : void 0;
5420
- }, Zc = (e, t) => {
5485
+ }, el = (e, t) => {
5421
5486
  if (t.op === "insert") {
5422
- let n = Xc(t.new);
5487
+ let n = $c(t.new);
5423
5488
  return n === void 0 ? e : e.filter((e) => e.id !== n);
5424
5489
  }
5425
5490
  if (t.op === "update") {
5426
5491
  if (t.old == null) return e;
5427
- let n = Xc(t.new) ?? Xc(t.old);
5492
+ let n = $c(t.new) ?? $c(t.old);
5428
5493
  return e.map((e) => e.id === n ? t.old : e);
5429
5494
  }
5430
5495
  return t.old == null ? e : [...e, t.old];
5431
- }, Qc = class {
5496
+ }, tl = class {
5432
5497
  mode;
5433
5498
  capacity;
5434
5499
  now;
@@ -5448,8 +5513,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5448
5513
  ts: this.now(),
5449
5514
  table: e.table,
5450
5515
  op: e.op,
5451
- old: Yc(e.old),
5452
- new: Yc(e.new),
5516
+ old: Qc(e.old),
5517
+ new: Qc(e.new),
5453
5518
  tenantId: n
5454
5519
  }), this.ring.length > this.capacity && this.ring.shift(), t;
5455
5520
  }
@@ -5462,23 +5527,23 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5462
5527
  }
5463
5528
  replay(e, t, n) {
5464
5529
  let r = this.ring.filter((n) => n.table === e && n.seq > t).sort((e, t) => t.seq - e.seq), i = n;
5465
- for (let e of r) i = Zc(i, e);
5530
+ for (let e of r) i = el(i, e);
5466
5531
  return i;
5467
5532
  }
5468
- }, $c, el = () => ($c === void 0 && ($c = new Qc(Kc())), $c), tl = (e) => {
5469
- $c = e;
5470
- }, nl = (e) => {
5471
- let t = el();
5533
+ }, nl, rl = () => (nl === void 0 && (nl = new tl(Yc())), nl), il = (e) => {
5534
+ nl = e;
5535
+ }, al = (e) => {
5536
+ let t = rl();
5472
5537
  if (t.enabled) try {
5473
5538
  t.record(e);
5474
5539
  } catch {}
5475
- }, rl = /* @__PURE__ */ new Set([
5540
+ }, ol = /* @__PURE__ */ new Set([
5476
5541
  "count",
5477
5542
  "sum",
5478
5543
  "avg",
5479
5544
  "min",
5480
5545
  "max"
5481
- ]), il = (e) => {
5546
+ ]), sl = (e) => {
5482
5547
  if (e.joins !== void 0 && e.joins.length > 0) return {
5483
5548
  maintainable: !1,
5484
5549
  reason: "joins are not maintainable in v1"
@@ -5500,7 +5565,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5500
5565
  reason: "v1 maintains exactly one aggregation"
5501
5566
  };
5502
5567
  let t = e.aggregations[0];
5503
- return rl.has(t.op) ? t.op !== "count" && (t.column === void 0 || t.column.length === 0) ? {
5568
+ return ol.has(t.op) ? t.op !== "count" && (t.column === void 0 || t.column.length === 0) ? {
5504
5569
  maintainable: !1,
5505
5570
  reason: `op '${t.op}' requires a column`
5506
5571
  } : {
@@ -5514,7 +5579,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5514
5579
  maintainable: !1,
5515
5580
  reason: `op '${t.op}' is not maintainable`
5516
5581
  };
5517
- }, al = "\0", $ = (e, t) => t === void 0 || t.length === 0 ? "" : t.map((t) => JSON.stringify(e[t] ?? null)).join(al), ol = (e, t) => t === void 0 ? 0 : Number(e[t] ?? 0), sl = (e, t) => {
5582
+ }, cl = "\0", $ = (e, t) => t === void 0 || t.length === 0 ? "" : t.map((t) => JSON.stringify(e[t] ?? null)).join(cl), ll = (e, t) => t === void 0 ? 0 : Number(e[t] ?? 0), ul = (e, t) => {
5518
5583
  switch (e.op) {
5519
5584
  case "count": return t.count;
5520
5585
  case "sum": return t.sum ?? 0;
@@ -5522,10 +5587,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5522
5587
  case "min":
5523
5588
  case "max": return t.count > 0 ? t.extreme ?? null : null;
5524
5589
  }
5525
- }, cl = (e, t) => {
5590
+ }, dl = (e, t) => {
5526
5591
  let n = /* @__PURE__ */ new Map();
5527
5592
  for (let r of t) {
5528
- let t = $(r, e.groupBy), i = n.get(t), a = ol(r, e.column);
5593
+ let t = $(r, e.groupBy), i = n.get(t), a = ll(r, e.column);
5529
5594
  if (i === void 0) n.set(t, {
5530
5595
  count: 1,
5531
5596
  ...e.op === "sum" || e.op === "avg" ? { sum: a } : {},
@@ -5541,10 +5606,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5541
5606
  }
5542
5607
  }
5543
5608
  return n;
5544
- }, ll = (e, t) => [...t.entries()].map(([t, n]) => ({
5609
+ }, fl = (e, t) => [...t.entries()].map(([t, n]) => ({
5545
5610
  groupKey: t,
5546
- value: sl(e, n)
5547
- })), ul = (e, t, n) => {
5611
+ value: ul(e, n)
5612
+ })), pl = (e, t, n) => {
5548
5613
  let r = new Map(t), i = /* @__PURE__ */ new Set(), a = (t) => {
5549
5614
  let n = $(t, e.groupBy), a = r.get(n);
5550
5615
  if (a === void 0) return;
@@ -5553,7 +5618,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5553
5618
  r.delete(n);
5554
5619
  return;
5555
5620
  }
5556
- let s = ol(t, e.column);
5621
+ let s = ll(t, e.column);
5557
5622
  e.op === "min" || e.op === "max" ? (a.extreme !== void 0 && s === a.extreme && i.add(n), r.set(n, {
5558
5623
  count: o,
5559
5624
  ...a.extreme === void 0 ? {} : { extreme: a.extreme }
@@ -5562,7 +5627,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5562
5627
  ...e.op === "sum" || e.op === "avg" ? { sum: (a.sum ?? 0) - s } : {}
5563
5628
  });
5564
5629
  }, o = (t) => {
5565
- let n = $(t, e.groupBy), i = r.get(n), a = ol(t, e.column);
5630
+ let n = $(t, e.groupBy), i = r.get(n), a = ll(t, e.column);
5566
5631
  if (i === void 0) {
5567
5632
  r.set(n, {
5568
5633
  count: 1,
@@ -5582,15 +5647,15 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5582
5647
  state: r,
5583
5648
  rescanGroups: [...i]
5584
5649
  };
5585
- }, dl = (e, t, n, r) => {
5650
+ }, ml = (e, t, n, r) => {
5586
5651
  if (n.length === 0) return t;
5587
- let i = new Set(n), a = cl(e, r.filter((t) => i.has($(t, e.groupBy)))), o = new Map(t);
5652
+ let i = new Set(n), a = dl(e, r.filter((t) => i.has($(t, e.groupBy)))), o = new Map(t);
5588
5653
  for (let e of i) {
5589
5654
  let t = a.get(e);
5590
5655
  t === void 0 ? o.delete(e) : o.set(e, t);
5591
5656
  }
5592
5657
  return o;
5593
- }, fl = class {
5658
+ }, hl = class {
5594
5659
  shape;
5595
5660
  state = /* @__PURE__ */ new Map();
5596
5661
  groups = /* @__PURE__ */ new Map();
@@ -5598,7 +5663,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5598
5663
  this.shape = e;
5599
5664
  }
5600
5665
  seed(e) {
5601
- this.state = cl(this.shape, e), this.groups.clear();
5666
+ this.state = dl(this.shape, e), this.groups.clear();
5602
5667
  for (let t of e) {
5603
5668
  let e = $(t, this.shape.groupBy);
5604
5669
  this.groups.has(e) || this.groups.set(e, this.groupValues(t));
@@ -5610,14 +5675,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5610
5675
  let e = $(t, this.shape.groupBy);
5611
5676
  this.groups.has(e) || this.groups.set(e, this.groupValues(t));
5612
5677
  }
5613
- let n = ul(this.shape, this.state, e);
5678
+ let n = pl(this.shape, this.state, e);
5614
5679
  this.state = n.state;
5615
5680
  for (let e of this.groups.keys()) this.state.has(e) || this.groups.delete(e);
5616
5681
  return n.rescanGroups;
5617
5682
  }
5618
5683
  resolveRescan(e, t) {
5619
5684
  if (e.length === 0) return;
5620
- this.state = dl(this.shape, this.state, e, t);
5685
+ this.state = ml(this.shape, this.state, e, t);
5621
5686
  let n = new Set(e);
5622
5687
  for (let e of t) {
5623
5688
  let t = $(e, this.shape.groupBy);
@@ -5626,7 +5691,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5626
5691
  for (let e of n) this.state.has(e) || this.groups.delete(e);
5627
5692
  }
5628
5693
  materialize() {
5629
- return ll(this.shape, this.state).map((e) => ({
5694
+ return fl(this.shape, this.state).map((e) => ({
5630
5695
  groupKey: e.groupKey,
5631
5696
  group: this.groups.get(e.groupKey) ?? {},
5632
5697
  value: e.value
@@ -5639,19 +5704,19 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5639
5704
  for (let r of t) n[r] = e[r];
5640
5705
  return n;
5641
5706
  }
5642
- }, pl = E("_voltro_rebac_tuples", {
5707
+ }, gl = D("_voltro_rebac_tuples", {
5643
5708
  id: v({ prefix: "rbct" }),
5644
- subjectId: D(),
5645
- relation: D(),
5646
- resourceType: D(),
5647
- resourceId: D(),
5648
- tenantId: D().nullable(),
5649
- createdAt: O().default("now")
5709
+ subjectId: O(),
5710
+ relation: O(),
5711
+ resourceType: O(),
5712
+ resourceId: O(),
5713
+ tenantId: O().nullable(),
5714
+ createdAt: k().default("now")
5650
5715
  }).index([
5651
5716
  "subjectId",
5652
5717
  "resourceType",
5653
5718
  "resourceId"
5654
- ]).reactive(), ml = async (e, n, r, i) => n === null ? [] : (await e.query({
5719
+ ]).reactive(), _l = async (e, n, r, i) => n === null ? [] : (await e.query({
5655
5720
  table: "_voltro_rebac_tuples",
5656
5721
  predicate: t(u("subjectId", n), u("resourceType", r), u("resourceId", i)),
5657
5722
  order: [],
@@ -5663,11 +5728,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5663
5728
  relation: e.relation,
5664
5729
  resourceType: e.resourceType,
5665
5730
  resourceId: e.resourceId
5666
- })), hl = (e) => ({
5731
+ })), vl = (e) => ({
5667
5732
  id: e.id,
5668
5733
  tenantId: e.tenantId,
5669
5734
  ...e.scopes === void 0 ? {} : { scopes: e.scopes }
5670
- }), gl = (e, t) => {
5735
+ }), yl = (e, t) => {
5671
5736
  let n = t.getPolicy ?? Wo;
5672
5737
  return (r, i) => {
5673
5738
  let a = e[i.tag];
@@ -5680,7 +5745,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5680
5745
  if (o === void 0) return s("");
5681
5746
  let c = a.resourceId(i.input);
5682
5747
  if (c === null || c === "") return s("");
5683
- let l = hl(i.subject), u = {
5748
+ let l = vl(i.subject), u = {
5684
5749
  type: a.resourceType,
5685
5750
  id: c,
5686
5751
  tenantId: i.subject.tenantId
@@ -5690,7 +5755,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5690
5755
  tuples: e
5691
5756
  }) ? r : s(c));
5692
5757
  };
5693
- }, _l = async (e, n, r) => n === null ? [] : (await e.query({
5758
+ }, bl = async (e, n, r) => n === null ? [] : (await e.query({
5694
5759
  table: "_voltro_rebac_tuples",
5695
5760
  predicate: t(u("subjectId", n), u("resourceType", r)),
5696
5761
  order: [],
@@ -5702,18 +5767,18 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5702
5767
  relation: e.relation,
5703
5768
  resourceType: e.resourceType,
5704
5769
  resourceId: e.resourceId
5705
- })), vl = (e) => {
5770
+ })), xl = (e) => {
5706
5771
  let t = e.getPolicy ?? Wo;
5707
5772
  return async (n, r, i, a) => {
5708
5773
  let o = t(r);
5709
5774
  if (o === void 0) return [];
5710
- let s = hl(n);
5775
+ let s = vl(n);
5711
5776
  return Qo(s, i, r, a, {
5712
5777
  policy: o,
5713
5778
  tuples: await e.loadSubjectTuples(s.id, r)
5714
5779
  });
5715
5780
  };
5716
- }, yl = (e) => {
5781
+ }, Sl = (e) => {
5717
5782
  if (typeof e.name != "string" || e.name.length === 0) throw Error("defineReaction: a non-empty `name` is required");
5718
5783
  if (e.watch === void 0 || typeof e.watch.table != "string" || e.watch.table.length === 0) throw Error(`reaction '${e.name}': watch.table is required`);
5719
5784
  if (e.act === void 0 || e.act.kind !== "agent" && e.act.kind !== "workflow") throw Error(`reaction '${e.name}': act must be { kind: 'agent' | 'workflow', … }`);
@@ -5721,14 +5786,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5721
5786
  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`);
5722
5787
  if (e.guards.costBudgetUsd !== void 0 && e.guards.costBudgetUsd < 0) throw Error(`reaction '${e.name}': guards.costBudgetUsd must be >= 0`);
5723
5788
  return e;
5724
- }, bl = (e, t) => e === void 0 ? !0 : Array.isArray(e) ? e.includes(t) : e === t, xl = (e) => e.new?.tenantId ?? e.old?.tenantId ?? null, Sl = class {
5789
+ }, Cl = (e, t) => e === void 0 ? !0 : Array.isArray(e) ? e.includes(t) : e === t, wl = (e) => e.new?.tenantId ?? e.old?.tenantId ?? null, Tl = class {
5725
5790
  hits = /* @__PURE__ */ new Map();
5726
5791
  allow(e, t, n, r) {
5727
5792
  let i = r - n, a = (this.hits.get(e) ?? []).filter((e) => e > i);
5728
5793
  return a.length >= t ? (this.hits.set(e, a), !1) : (a.push(r), this.hits.set(e, a), !0);
5729
5794
  }
5730
- }, Cl = async (e, t, n) => {
5731
- if (t.table !== e.watch.table || !bl(e.watch.on, t.op)) return "skipped-op";
5795
+ }, El = async (e, t, n) => {
5796
+ if (t.table !== e.watch.table || !Cl(e.watch.on, t.op)) return "skipped-op";
5732
5797
  if (e.when !== void 0 && !e.when(t)) return "skipped-when";
5733
5798
  let r = `${e.name}:${e.guards.dedupeKey(t)}`;
5734
5799
  if (await n.dedupe.has(r)) return "skipped-dedupe";
@@ -5737,26 +5802,26 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5737
5802
  let t = n.now?.() ?? Date.now();
5738
5803
  if (!n.rateLimiter.allow(e.name, i.limit, i.windowMs, t)) return "skipped-ratelimit";
5739
5804
  }
5740
- let a = xl(t);
5805
+ let a = wl(t);
5741
5806
  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, {
5742
5807
  id: a,
5743
5808
  via: "agent"
5744
5809
  }), await n.dedupe.add(r), "acted");
5745
- }, wl = E("_voltro_wakeups", {
5810
+ }, Dl = D("_voltro_wakeups", {
5746
5811
  id: v({ prefix: "wakeup" }),
5747
- tenantId: D(),
5748
- kind: D(),
5749
- refId: D(),
5750
- wakeAt: O(),
5751
- status: D()
5752
- }).index(["status", "wakeAt"]).index(["tenantId"]), Tl = async (e) => {
5753
- let t = e.now?.() ?? /* @__PURE__ */ new Date(), n = await ic(e.store, t, e.batchLimit ?? 100);
5812
+ tenantId: O(),
5813
+ kind: O(),
5814
+ refId: O(),
5815
+ wakeAt: k(),
5816
+ status: O()
5817
+ }).index(["status", "wakeAt"]).index(["tenantId"]), Ol = async (e) => {
5818
+ let t = e.now?.() ?? /* @__PURE__ */ new Date(), n = await sc(e.store, t, e.batchLimit ?? 100);
5754
5819
  if (n.length === 0) return 0;
5755
5820
  let r = 0;
5756
- for (let t of n) if (await ec(e.store, t)) try {
5821
+ for (let t of n) if (await rc(e.store, t)) try {
5757
5822
  await e.adapter.wake(t), r++;
5758
5823
  } catch (n) {
5759
- await tc(e.store, t), e.log?.warn("wake: adapter failed — released for retry", {
5824
+ await ic(e.store, t), e.log?.warn("wake: adapter failed — released for retry", {
5760
5825
  tenantId: t.tenantId,
5761
5826
  kind: t.kind,
5762
5827
  refId: t.refId,
@@ -5764,11 +5829,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5764
5829
  });
5765
5830
  }
5766
5831
  return r > 0 && e.log?.info("wake: woke due deployments", { count: r }), r;
5767
- }, El = (e, t = 1e3) => {
5832
+ }, kl = (e, t = 1e3) => {
5768
5833
  let n = !1, r, i = async () => {
5769
5834
  if (!n) {
5770
5835
  try {
5771
- await Tl(e);
5836
+ await Ol(e);
5772
5837
  } catch (t) {
5773
5838
  e.log?.warn("wake: tick failed", { reason: t instanceof Error ? t.message : String(t) });
5774
5839
  }
@@ -5778,10 +5843,10 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5778
5843
  return i(), { stop: () => {
5779
5844
  n = !0, r !== void 0 && clearTimeout(r);
5780
5845
  } };
5781
- }, Dl = (e) => ({ wake: async () => {
5846
+ }, Al = (e) => ({ wake: async () => {
5782
5847
  await e.start();
5783
- } }), Ol = (e) => new Promise((t) => setTimeout(t, e)), kl = (e) => {
5784
- let t = e.fetchImpl ?? fetch, n = e.now ?? Date.now, r = e.sleep ?? Ol, i = e.spawnImpl ?? Et, 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 () => {
5848
+ } }), jl = (e) => new Promise((t) => setTimeout(t, e)), Ml = (e) => {
5849
+ let t = e.fetchImpl ?? fetch, n = e.now ?? Date.now, r = e.sleep ?? jl, i = e.spawnImpl ?? Dt, 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 () => {
5785
5850
  try {
5786
5851
  let n = await t(e.healthUrl);
5787
5852
  return d(n);
@@ -5835,11 +5900,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5835
5900
  },
5836
5901
  stop: m
5837
5902
  };
5838
- }, Al = async (e) => {
5903
+ }, Nl = async (e) => {
5839
5904
  if (e.signals.connectedClients() > 0 || e.signals.inFlightRequests() > 0 || e.signals.activeWorkflowExecutions() > 0) return !1;
5840
- let t = (e.now?.() ?? /* @__PURE__ */ new Date()).getTime() + (e.wakeLookaheadMs ?? 3e4), n = await ac(e.store);
5905
+ let t = (e.now?.() ?? /* @__PURE__ */ new Date()).getTime() + (e.wakeLookaheadMs ?? 3e4), n = await cc(e.store);
5841
5906
  return !(n !== null && n.wakeAt.getTime() <= t);
5842
- }, jl = (e, t = Date.now) => {
5907
+ }, Pl = (e, t = Date.now) => {
5843
5908
  let n;
5844
5909
  return {
5845
5910
  update: (r) => {
@@ -5851,7 +5916,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5851
5916
  n = void 0;
5852
5917
  }
5853
5918
  };
5854
- }, Ml = () => {
5919
+ }, Fl = () => {
5855
5920
  let e = 0, t = 0;
5856
5921
  return {
5857
5922
  onRequestStart: () => {
@@ -5869,8 +5934,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5869
5934
  inFlightRequests: () => e,
5870
5935
  openConnections: () => t
5871
5936
  };
5872
- }, Nl = (e) => ({ run: async (t) => (e.onActivity?.(), await e.ensureAwake(), t()) }), Pl = (e, t, n, r) => new Promise((i, a) => {
5873
- let o = Qe.request({
5937
+ }, Il = (e) => ({ run: async (t) => (e.onActivity?.(), await e.ensureAwake(), t()) }), Ll = (e, t, n, r) => new Promise((i, a) => {
5938
+ let o = $e.request({
5874
5939
  host: n,
5875
5940
  port: r,
5876
5941
  method: e.method,
@@ -5880,8 +5945,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5880
5945
  t.writeHead(e.statusCode ?? 502, e.headers), e.pipe(t), e.on("end", i), e.on("error", a);
5881
5946
  });
5882
5947
  o.on("error", a), e.pipe(o);
5883
- }), Fl = (e, t, n, r, i) => new Promise((a, o) => {
5884
- let s = Qe.request({
5948
+ }), Rl = (e, t, n, r, i) => new Promise((a, o) => {
5949
+ let s = $e.request({
5885
5950
  host: r,
5886
5951
  port: i,
5887
5952
  method: e.method,
@@ -5895,21 +5960,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5895
5960
  };
5896
5961
  t.on("close", s), r.on("close", s), r.on("error", o);
5897
5962
  }), s.on("error", o), s.end();
5898
- }), Il = (e) => {
5899
- let t = Nl({
5963
+ }), zl = (e) => {
5964
+ let t = Il({
5900
5965
  ensureAwake: () => e.supervisor.start(),
5901
5966
  ...e.onActivity === void 0 ? {} : { onActivity: e.onActivity }
5902
- }), n = e.activity, r = Qe.createServer((r, i) => {
5903
- n?.onRequestStart(), i.on("close", () => n?.onRequestEnd()), t.run(() => Pl(r, i, e.targetHost, e.targetPort)).catch((t) => {
5967
+ }), n = e.activity, r = $e.createServer((r, i) => {
5968
+ n?.onRequestStart(), i.on("close", () => n?.onRequestEnd()), t.run(() => Ll(r, i, e.targetHost, e.targetPort)).catch((t) => {
5904
5969
  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");
5905
5970
  });
5906
5971
  });
5907
5972
  return r.on("upgrade", (r, i, a) => {
5908
- n?.onConnect(), i.on("close", () => n?.onDisconnect()), t.run(() => Fl(r, i, a, e.targetHost, e.targetPort)).catch((t) => {
5973
+ n?.onConnect(), i.on("close", () => n?.onDisconnect()), t.run(() => Rl(r, i, a, e.targetHost, e.targetPort)).catch((t) => {
5909
5974
  e.log?.warn("wake-router: upgrade proxy failed", { reason: t instanceof Error ? t.message : String(t) }), i.destroy();
5910
5975
  });
5911
5976
  }), r;
5912
- }, Ll = async (e) => {
5977
+ }, Bl = async (e) => {
5913
5978
  try {
5914
5979
  return (await e.query({
5915
5980
  table: "_voltro_workflow_runs",
@@ -5926,15 +5991,15 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5926
5991
  } catch {
5927
5992
  return 0;
5928
5993
  }
5929
- }, Rl = async (e) => {
5930
- let t = Dl(e.supervisor), n = await Tl({
5994
+ }, Vl = async (e) => {
5995
+ let t = Al(e.supervisor), n = await Ol({
5931
5996
  store: e.store,
5932
5997
  adapter: t,
5933
5998
  ...e.now === void 0 ? {} : { now: e.now },
5934
5999
  ...e.log === void 0 ? {} : { log: e.log }
5935
6000
  });
5936
6001
  n > 0 && e.idleGate.reset();
5937
- let r = await Al({
6002
+ let r = await Nl({
5938
6003
  store: e.store,
5939
6004
  signals: e.signals,
5940
6005
  ...e.wakeLookaheadMs === void 0 ? {} : { wakeLookaheadMs: e.wakeLookaheadMs },
@@ -5944,12 +6009,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5944
6009
  woke: n,
5945
6010
  stopped: i
5946
6011
  };
5947
- }, zl = async (e) => {
5948
- let t = jl(e.idleGraceMs ?? 6e4), n = e.tickMs ?? 1e3, r = Ml(), i = 0, a = e.signals === void 0, o = e.signals ?? {
6012
+ }, Hl = async (e) => {
6013
+ let t = Pl(e.idleGraceMs ?? 6e4), n = e.tickMs ?? 1e3, r = Fl(), i = 0, a = e.signals === void 0, o = e.signals ?? {
5949
6014
  connectedClients: () => r.openConnections(),
5950
6015
  inFlightRequests: () => r.inFlightRequests(),
5951
6016
  activeWorkflowExecutions: () => i
5952
- }, s = Il({
6017
+ }, s = zl({
5953
6018
  supervisor: e.supervisor,
5954
6019
  targetHost: e.targetHost,
5955
6020
  targetPort: e.targetPort,
@@ -5968,7 +6033,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5968
6033
  let l = !1, u, d = e.firedRetentionMs ?? 10 * 6e4, f = 0, p = async () => {
5969
6034
  if (!l) {
5970
6035
  try {
5971
- if (a && (i = await Ll(e.store)), await Rl({
6036
+ if (a && (i = await Bl(e.store)), await Vl({
5972
6037
  store: e.store,
5973
6038
  supervisor: e.supervisor,
5974
6039
  signals: o,
@@ -5976,7 +6041,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5976
6041
  ...e.wakeLookaheadMs === void 0 ? {} : { wakeLookaheadMs: e.wakeLookaheadMs },
5977
6042
  ...e.log === void 0 ? {} : { log: e.log }
5978
6043
  }), f++ % 60 == 0) {
5979
- let t = await sc(e.store, { firedOlderThan: new Date(Date.now() - d) });
6044
+ let t = await uc(e.store, { firedOlderThan: new Date(Date.now() - d) });
5980
6045
  t > 0 && e.log?.info("orchestrator: pruned fired wakeups", { count: t });
5981
6046
  }
5982
6047
  } catch (t) {
@@ -5991,14 +6056,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
5991
6056
  l = !0, u !== void 0 && clearTimeout(u), await new Promise((e) => s.close(() => e()));
5992
6057
  }
5993
6058
  };
5994
- }, Bl = (e) => e, Vl = class extends R.TaggedError()("AnalyticsError", {
5995
- provider: R.String,
5996
- operation: R.String,
5997
- cause: R.String
5998
- }) {}, Hl = class extends R.TaggedError()("AnalyticsCapabilityNotSupported", {
5999
- provider: R.String,
6000
- capability: R.String
6001
- }) {}, Ul = class extends He.Tag("@voltro/AnalyticsSink")() {}, Wl = (e, t) => ({
6059
+ }, Ul = (e) => e, Wl = class extends L.TaggedError()("AnalyticsError", {
6060
+ provider: L.String,
6061
+ operation: L.String,
6062
+ cause: L.String
6063
+ }) {}, Gl = class extends L.TaggedError()("AnalyticsCapabilityNotSupported", {
6064
+ provider: L.String,
6065
+ capability: L.String
6066
+ }) {}, Kl = class extends Ve.Tag("@voltro/AnalyticsSink")() {}, ql = (e, t) => ({
6002
6067
  info: e.info,
6003
6068
  track: (n) => e.track(n.tenantId === void 0 ? {
6004
6069
  ...n,
@@ -6017,20 +6082,20 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6017
6082
  tenantId: t
6018
6083
  } : n),
6019
6084
  ...e.mirror === void 0 ? {} : { mirror: e.mirror }
6020
- }), Gl = () => N.gen(function* () {
6021
- let e = yield* Ul, t = yield* N.serviceOption(Ee), n = I.match(t, {
6085
+ }), Jl = () => N.gen(function* () {
6086
+ let e = yield* Kl, t = yield* N.serviceOption(Te), n = Xe.match(t, {
6022
6087
  onNone: () => null,
6023
6088
  onSome: (e) => e.tenantId ?? null
6024
6089
  });
6025
- return n === null ? e : Wl(e, n);
6026
- }), Kl = "noop", ql = () => {
6027
- let e = (e) => N.fail(new Hl({
6028
- provider: Kl,
6090
+ return n === null ? e : ql(e, n);
6091
+ }), Yl = "noop", Xl = () => {
6092
+ let e = (e) => N.fail(new Gl({
6093
+ provider: Yl,
6029
6094
  capability: e
6030
6095
  }));
6031
6096
  return {
6032
6097
  info: {
6033
- provider: Kl,
6098
+ provider: Yl,
6034
6099
  capabilities: {
6035
6100
  track: !0,
6036
6101
  aggregate: !1,
@@ -6044,8 +6109,8 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6044
6109
  timeseries: () => e("timeseries"),
6045
6110
  topN: () => e("topN")
6046
6111
  };
6047
- }, Jl = (e) => {
6048
- if (e.length === 0) return ql();
6112
+ }, Zl = (e) => {
6113
+ if (e.length === 0) return Xl();
6049
6114
  if (e.length === 1) return e[0];
6050
6115
  let t = {
6051
6116
  provider: "compose",
@@ -6062,7 +6127,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6062
6127
  discard: !0
6063
6128
  }), r = (t, n) => {
6064
6129
  let r = e.find((e) => e.info.capabilities[t]);
6065
- return r === void 0 ? N.fail(new Hl({
6130
+ return r === void 0 ? N.fail(new Gl({
6066
6131
  provider: "compose",
6067
6132
  capability: t
6068
6133
  })) : n(r);
@@ -6085,11 +6150,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6085
6150
  topN: (e) => r("topN", (t) => t.topN(e)),
6086
6151
  ...a === void 0 ? {} : { mirror: a }
6087
6152
  };
6088
- }, Yl = (e) => {
6153
+ }, Ql = (e) => {
6089
6154
  let t = e.filter((e) => e.dispose !== void 0);
6090
6155
  return {
6091
6156
  kind: "compose",
6092
- build: (t) => Jl(e.map((e) => e.build(t))),
6157
+ build: (t) => Zl(e.map((e) => e.build(t))),
6093
6158
  tables: e.flatMap((e) => e.tables ?? []),
6094
6159
  initialize: (t) => N.forEach(e, (e) => e.initialize ? e.initialize(t) : N.void, {
6095
6160
  concurrency: 1,
@@ -6100,15 +6165,15 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6100
6165
  discard: !0
6101
6166
  }) } : {}
6102
6167
  };
6103
- }, Xl = {
6168
+ }, $l = {
6104
6169
  kind: "noop",
6105
- build: () => ql()
6106
- }, Zl = {
6170
+ build: () => Xl()
6171
+ }, eu = {
6107
6172
  tables: [],
6108
6173
  detach: () => {}
6109
- }, Ql = (e) => {
6174
+ }, tu = (e) => {
6110
6175
  let { store: t, sink: n, log: r } = e, i = n.mirror;
6111
- if (i === void 0 || i.tables.length === 0) return Zl;
6176
+ if (i === void 0 || i.tables.length === 0) return eu;
6112
6177
  let a = e.run ?? ((e) => N.runPromise(e)), o = i.primaryKey ?? "id", s = new Set(i.tables), c = (e) => {
6113
6178
  if (e.op === "delete") {
6114
6179
  let t = e.old;
@@ -6132,11 +6197,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6132
6197
  tables: i.tables,
6133
6198
  detach: l
6134
6199
  };
6135
- }, $l = (e) => {
6200
+ }, nu = (e) => {
6136
6201
  let t = typeof e.refresh == "string" ? { interval: e.refresh } : e.refresh, n = e.strategy ?? "replace";
6137
6202
  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`);
6138
6203
  if (e.incremental !== void 0) {
6139
- let t = il({
6204
+ let t = sl({
6140
6205
  aggregations: [{
6141
6206
  op: e.incremental.op,
6142
6207
  ...e.incremental.column === void 0 ? {} : { column: e.incremental.column }
@@ -6158,47 +6223,47 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6158
6223
  build: e.build,
6159
6224
  ...e.incremental === void 0 ? {} : { incremental: e.incremental }
6160
6225
  };
6161
- }, eu = (e) => typeof e == "object" && !!e && e._voltroAggregate === !0, tu = class extends R.TaggedError()("AggregateStale", {
6162
- name: R.String,
6163
- ageMs: R.Number,
6164
- maxAgeMs: R.Number
6165
- }) {}, nu = class extends R.TaggedError()("AggregateNotFound", { name: R.String }) {}, ru = class extends R.TaggedError()("AggregateError", {
6166
- name: R.String,
6167
- operation: R.String,
6168
- cause: R.String
6169
- }) {}, iu = class extends He.Tag("@voltro/AggregateRegistry")() {}, au = (e) => N.gen(function* () {
6170
- return (yield* iu).getHandle(e);
6171
- }), ou = (e, n, r) => {
6226
+ }, ru = (e) => typeof e == "object" && !!e && e._voltroAggregate === !0, iu = class extends L.TaggedError()("AggregateStale", {
6227
+ name: L.String,
6228
+ ageMs: L.Number,
6229
+ maxAgeMs: L.Number
6230
+ }) {}, au = class extends L.TaggedError()("AggregateNotFound", { name: L.String }) {}, ou = class extends L.TaggedError()("AggregateError", {
6231
+ name: L.String,
6232
+ operation: L.String,
6233
+ cause: L.String
6234
+ }) {}, su = class extends Ve.Tag("@voltro/AggregateRegistry")() {}, cu = (e) => N.gen(function* () {
6235
+ return (yield* su).getHandle(e);
6236
+ }), lu = (e, n, r) => {
6172
6237
  if (e.crossTenant || !n.has(e.table) || r == null) return e;
6173
6238
  let i = u("tenantId", r);
6174
6239
  return {
6175
6240
  ...e,
6176
6241
  predicate: e.predicate ? t(e.predicate, i) : i
6177
6242
  };
6178
- }, su = (e, t, n) => n === "" && !e.crossTenant && t.has(e.table), cu = (e) => e?.type === "user" && e.tenantId === "", lu = (e, n) => {
6243
+ }, uu = (e, t, n) => n === "" && !e.crossTenant && t.has(e.table), du = (e) => e?.type === "user" && e.tenantId === "", fu = (e, n) => {
6179
6244
  if (e.includeDeleted || !n.has(e.table)) return e;
6180
6245
  let r = S("deletedAt");
6181
6246
  return {
6182
6247
  ...e,
6183
6248
  predicate: e.predicate ? t(e.predicate, r) : r
6184
6249
  };
6185
- }, uu = (e, t) => t, du = (e) => N.runPromiseExit(e).then((e) => {
6250
+ }, pu = (e, t) => t, mu = (e) => N.runPromiseExit(e).then((e) => {
6186
6251
  if (Ke.isSuccess(e)) return e.value;
6187
- let t = j.failureOption(e.cause);
6188
- throw I.isSome(t) ? t.value : j.squash(e.cause);
6189
- }), fu = (e, t) => e.pipe(N.provideService(Ee, t)), pu = async (e, t, n) => {
6190
- let r = await N.runPromise(je(t, e.guards, n));
6252
+ let t = M.failureOption(e.cause);
6253
+ throw Xe.isSome(t) ? t.value : M.squash(e.cause);
6254
+ }), hu = (e, t) => e.pipe(N.provideService(Te, t)), gu = async (e, t, n) => {
6255
+ let r = await N.runPromise(Ae(t, e.guards, n));
6191
6256
  if (r) throw r;
6192
- }, mu = async (e) => {
6193
- if (Fn() === void 0) return e;
6194
- let t = await du(Ln(e.subject, (e) => {
6257
+ }, _u = async (e) => {
6258
+ if (In() === void 0) return e;
6259
+ let t = await mu(Rn(e.subject, (e) => {
6195
6260
  console.error("[voltro] row filter failed to load", e);
6196
6261
  }));
6197
6262
  return {
6198
6263
  ...e,
6199
6264
  rowFilter: t
6200
6265
  };
6201
- }, hu = async (e) => {
6266
+ }, vu = async (e) => {
6202
6267
  let t = `${e.kind}.${e.name}`, n = Date.now(), r = "ok";
6203
6268
  try {
6204
6269
  if (e.interceptor) {
@@ -6214,7 +6279,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6214
6279
  ...e.requestContext.spanId === void 0 ? {} : { spanId: e.requestContext.spanId }
6215
6280
  }), r = await N.runPromiseExit(n);
6216
6281
  if (Ke.isSuccess(r)) return r.value;
6217
- throw j.squash(r.cause);
6282
+ throw M.squash(r.cause);
6218
6283
  }
6219
6284
  return await e.runExecutor();
6220
6285
  } catch (e) {
@@ -6227,28 +6292,28 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6227
6292
  status: r
6228
6293
  });
6229
6294
  }
6230
- }, gu = /* @__PURE__ */ new Set([1213, 1205]), _u = /* @__PURE__ */ new Set([
6295
+ }, yu = /* @__PURE__ */ new Set([1213, 1205]), bu = /* @__PURE__ */ new Set([
6231
6296
  "ER_LOCK_DEADLOCK",
6232
6297
  "ER_LOCK_WAIT_TIMEOUT",
6233
6298
  "40001",
6234
6299
  "40P01"
6235
- ]), vu = (e) => {
6300
+ ]), xu = (e) => {
6236
6301
  let t = e;
6237
6302
  for (let e = 0; e < 6 && typeof t == "object" && t; e++) {
6238
6303
  let e = t;
6239
- if (typeof e.errno == "number" && gu.has(e.errno) || typeof e.code == "string" && _u.has(e.code) || typeof e.sqlState == "string" && _u.has(e.sqlState)) return !0;
6304
+ if (typeof e.errno == "number" && yu.has(e.errno) || typeof e.code == "string" && bu.has(e.code) || typeof e.sqlState == "string" && bu.has(e.sqlState)) return !0;
6240
6305
  t = e.cause;
6241
6306
  }
6242
6307
  return !1;
6243
- }, yu = 3, bu = (e) => new Promise((t) => setTimeout(t, e)), xu = async (e, t) => {
6244
- let n = t?.delay ?? ((e) => bu(e * 20 + Math.floor(Math.random() * 30)));
6308
+ }, Su = 3, Cu = (e) => new Promise((t) => setTimeout(t, e)), wu = async (e, t) => {
6309
+ let n = t?.delay ?? ((e) => Cu(e * 20 + Math.floor(Math.random() * 30)));
6245
6310
  for (let t = 1;; t++) try {
6246
6311
  return await e();
6247
6312
  } catch (e) {
6248
- if (t >= yu || !vu(e)) throw e;
6313
+ if (t >= Su || !xu(e)) throw e;
6249
6314
  await n(t);
6250
6315
  }
6251
- }, Su = (e) => (t, n, r) => hu({
6316
+ }, Tu = (e) => (t, n, r) => vu({
6252
6317
  name: t.descriptor.name,
6253
6318
  kind: "mutation",
6254
6319
  input: n,
@@ -6256,11 +6321,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6256
6321
  ...e.interceptor ? { interceptor: e.interceptor } : {},
6257
6322
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
6258
6323
  runExecutor: async () => {
6259
- await pu(t.descriptor, r.subject, n);
6260
- let i = await mu(r), a = [], o = await xu(async () => (a.length = 0, e.store.transactional(async (o) => {
6324
+ await gu(t.descriptor, r.subject, n);
6325
+ let i = await _u(r), a = [], o = await wu(async () => (a.length = 0, e.store.transactional(async (o) => {
6261
6326
  let s = e.undoCapture?.(o), c = s ? s.tx : o, l = e.buildContext(i, c, { afterCommit: (e) => {
6262
6327
  a.push(e);
6263
- } }), u = t.executor(n, l), d = N.isEffect(u) ? await e.runEffect(fu(u, r.subject), l.store) : await u;
6328
+ } }), u = t.executor(n, l), d = N.isEffect(u) ? await e.runEffect(hu(u, r.subject), l.store) : await u;
6264
6329
  return s && await s.persist(l.store, {
6265
6330
  tag: t.descriptor.name,
6266
6331
  subject: r.subject,
@@ -6270,33 +6335,33 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6270
6335
  for (let e of a) await e();
6271
6336
  return o;
6272
6337
  }
6273
- }), Cu = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, wu = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, Tu = (e) => {
6338
+ }), Eu = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, Du = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, Ou = (e) => {
6274
6339
  let t = e.descriptor.source;
6275
6340
  return t == null ? [] : typeof t == "string" ? [t] : [...t];
6276
- }, Eu = (e, t) => (n) => () => {
6341
+ }, ku = (e, t) => (n) => () => {
6277
6342
  let r = e.descriptor.guards;
6278
- return !r || r.length === 0 ? Promise.resolve(null) : N.runPromise(je(n, r, t));
6279
- }, Du = (e) => (t, n) => (r) => {
6280
- let i = e.buildContext(r), a = Eu(t, n)(r.subject), o = async () => {
6343
+ return !r || r.length === 0 ? Promise.resolve(null) : N.runPromise(Ae(n, r, t));
6344
+ }, Au = (e) => (t, n) => (r) => {
6345
+ let i = e.buildContext(r), a = ku(t, n)(r.subject), o = async () => {
6281
6346
  let i = await a();
6282
6347
  if (i) throw i;
6283
- let o = e.buildContext(await mu(r)), s = t.executor(n, o);
6284
- return N.isEffect(s) ? N.runPromise(e.provideEffect(fu(s, r.subject), o.store)) : Cu(await Promise.resolve(s));
6348
+ let o = e.buildContext(await _u(r)), s = t.executor(n, o);
6349
+ return N.isEffect(s) ? N.runPromise(e.provideEffect(hu(s, r.subject), o.store)) : Eu(await Promise.resolve(s));
6285
6350
  }, s = (n) => {
6286
- let i = Cu(n);
6287
- return wu(i) ? e.finalize(i, r) : {
6351
+ let i = Eu(n);
6352
+ return Du(i) ? e.finalize(i, r) : {
6288
6353
  __voltroComputed: !0,
6289
6354
  value: i,
6290
- dependentTables: Tu(t),
6355
+ dependentTables: Ou(t),
6291
6356
  tenantId: r.subject?.tenantId ?? null,
6292
6357
  recompute: o
6293
6358
  };
6294
6359
  }, c = () => {
6295
6360
  let a = t.executor(n, i);
6296
- return N.isEffect(a) ? e.provideEffect(fu(a, r.subject), i.store).pipe(N.map(s)) : a instanceof Promise ? N.promise(() => a).pipe(N.map(s)) : s(a);
6361
+ return N.isEffect(a) ? e.provideEffect(hu(a, r.subject), i.store).pipe(N.map(s)) : a instanceof Promise ? N.promise(() => a).pipe(N.map(s)) : s(a);
6297
6362
  }, l = () => {
6298
6363
  let e = t.descriptor.guards;
6299
- return !e || e.length === 0 ? c() : je(r.subject, e, n).pipe(N.flatMap((e) => {
6364
+ return !e || e.length === 0 ? c() : Ae(r.subject, e, n).pipe(N.flatMap((e) => {
6300
6365
  if (e) return N.fail(e);
6301
6366
  let t = c();
6302
6367
  return N.isEffect(t) ? t : N.succeed(t);
@@ -6315,7 +6380,7 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6315
6380
  traceId: r.traceId,
6316
6381
  ...r.spanId === void 0 ? {} : { spanId: r.spanId }
6317
6382
  });
6318
- }, Ou = (e) => (t, n, r) => hu({
6383
+ }, ju = (e) => (t, n, r) => vu({
6319
6384
  name: t.descriptor.name,
6320
6385
  kind: "action",
6321
6386
  input: n,
@@ -6323,16 +6388,16 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6323
6388
  ...e.interceptor ? { interceptor: e.interceptor } : {},
6324
6389
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
6325
6390
  runExecutor: async () => {
6326
- await pu(t.descriptor, r.subject, n);
6327
- let i = e.buildContext(await mu(r)), a = t.executor(n, i);
6328
- return N.isEffect(a) ? e.runEffect(fu(a, r.subject), i.store) : a;
6391
+ await gu(t.descriptor, r.subject, n);
6392
+ let i = e.buildContext(await _u(r)), a = t.executor(n, i);
6393
+ return N.isEffect(a) ? e.runEffect(hu(a, r.subject), i.store) : a;
6329
6394
  }
6330
- }), ku = (e) => e instanceof Date ? e.toISOString() : typeof e == "string" && e.length > 0 ? e : null, Au = (e) => typeof e == "string" && e.length > 0 ? e : null, ju = [
6395
+ }), Mu = (e) => e instanceof Date ? e.toISOString() : typeof e == "string" && e.length > 0 ? e : null, Nu = (e) => typeof e == "string" && e.length > 0 ? e : null, Pu = [
6331
6396
  "updatedAt",
6332
6397
  "createdAt",
6333
6398
  "updatedBy",
6334
6399
  "createdBy"
6335
- ], Mu = (e) => ju.some((t) => t in e), Nu = (e, t, n) => {
6400
+ ], Fu = (e) => Pu.some((t) => t in e), Iu = (e, t, n) => {
6336
6401
  let r = {
6337
6402
  table: t.table,
6338
6403
  id: t.id,
@@ -6347,14 +6412,14 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6347
6412
  found: !1
6348
6413
  };
6349
6414
  let i = t.column === void 0 ? void 0 : e[t.column];
6350
- if (!Mu(e)) return {
6415
+ if (!Fu(e)) return {
6351
6416
  ...r,
6352
6417
  value: i,
6353
6418
  lastWrite: null,
6354
6419
  attribution: "none",
6355
6420
  found: !0
6356
6421
  };
6357
- let a = Au(e.updatedBy) ?? Au(e.createdBy), o = ku(e.updatedAt) ?? ku(e.createdAt);
6422
+ let a = Nu(e.updatedBy) ?? Nu(e.createdBy), o = Mu(e.updatedAt) ?? Mu(e.createdAt);
6358
6423
  return {
6359
6424
  ...r,
6360
6425
  value: i,
@@ -6366,12 +6431,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6366
6431
  attribution: "audit",
6367
6432
  found: !0
6368
6433
  };
6369
- }, Pu = (e, t) => {
6434
+ }, Lu = (e, t) => {
6370
6435
  let n = e.map((e) => {
6371
6436
  let n = e.newValue ?? e.value, r = t.column !== void 0 && n && typeof n == "object" ? n[t.column] : e.newValue ?? e.value;
6372
6437
  return {
6373
- actor: { id: Au(e.actor) ?? Au(e.changedBy) },
6374
- at: ku(e.at) ?? ku(e.changedAt),
6438
+ actor: { id: Nu(e.actor) ?? Nu(e.changedBy) },
6439
+ at: Mu(e.at) ?? Mu(e.changedAt),
6375
6440
  ...e.traceId === void 0 ? {} : { traceId: e.traceId },
6376
6441
  value: r
6377
6442
  };
@@ -6386,12 +6451,12 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6386
6451
  history: n,
6387
6452
  found: n.length > 0
6388
6453
  };
6389
- }, Fu = (e) => {
6454
+ }, Ru = (e) => {
6390
6455
  let t = e.new?.id;
6391
6456
  if (typeof t == "string") return t;
6392
6457
  let n = e.old?.id;
6393
6458
  return typeof n == "string" ? n : void 0;
6394
- }, Iu = (e) => {
6459
+ }, zu = (e) => {
6395
6460
  let t = {};
6396
6461
  if (e.op === "insert") for (let [n, r] of Object.entries(e.new ?? {})) t[n] = {
6397
6462
  from: void 0,
@@ -6411,11 +6476,11 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6411
6476
  return {
6412
6477
  table: e.table,
6413
6478
  op: e.op,
6414
- id: Fu(e),
6479
+ id: Ru(e),
6415
6480
  fields: t
6416
6481
  };
6417
- }, Lu = (e) => {
6418
- let t = e.map(Iu);
6482
+ }, Bu = (e) => {
6483
+ let t = e.map(zu);
6419
6484
  return {
6420
6485
  rows: t,
6421
6486
  summary: {
@@ -6424,21 +6489,21 @@ var K = /* @__PURE__ */ new Map(), nr = (e, t) => {
6424
6489
  deletes: t.filter((e) => e.op === "delete").length
6425
6490
  }
6426
6491
  };
6427
- }, Ru = class extends Error {
6492
+ }, Vu = class extends Error {
6428
6493
  constructor() {
6429
6494
  super("voltro:preview-rollback"), this.name = "PreviewRollback";
6430
6495
  }
6431
- }, zu = async (e, t) => {
6496
+ }, Hu = async (e, t) => {
6432
6497
  let n, r = !1;
6433
6498
  try {
6434
6499
  await e.transactional(async (e) => {
6435
- throw n = await t(e), r = !0, new Ru();
6500
+ throw n = await t(e), r = !0, new Vu();
6436
6501
  });
6437
6502
  } catch (e) {
6438
- if (!(e instanceof Ru)) throw e;
6503
+ if (!(e instanceof Vu)) throw e;
6439
6504
  }
6440
6505
  if (!r) throw Error("preview: handler did not complete");
6441
6506
  return n;
6442
- }, Bu = "framework-runtime";
6507
+ }, Uu = "framework-runtime";
6443
6508
  //#endregion
6444
- export { Ni as API_KEYS_TABLE, Vo as AccessDenied, ru as AggregateError, fl as AggregateMaintainer, nu as AggregateNotFound, iu as AggregateRegistry, tu as AggregateStale, Hl as AnalyticsCapabilityNotSupported, Vl as AnalyticsError, Ul as AnalyticsSink, X as CONNECTIONS_TABLE, za as CONNECTION_GRANTS_TABLE, Ns as CircuitBreaker, js as CircuitOpen, co as ConnectionNotConnected, Hr as DEFAULT_MAX_RPC_BODY_BYTES, oo as DEFAULT_REFRESH_SKEW_MS, Mn as DEFAULT_ROW_FILTER_RETRY, lc as DORMANCY_WAKEUP_TENANT, Cs as DeleteBuilder, Wn as Dispatcher, Xi as EffectStore, xo as GRANT_TTL_MS, qt as InMemoryDataStore, Pt as IndexedMatcher, Dt as LinearScanMatcher, Je as MetricBoundaries, Kl as NOOP_ANALYTICS_PROVIDER, In as NO_ROW_FILTER, gs as NoRowFound, wa as OUTBOX_ATTEMPTS_TABLE, ja as OUTBOX_ATTEMPT_LOG_CAP, Y as OUTBOX_TABLE, _s as OptimisticLockError, Bo as REBAC_ADMIN_SCOPE, so as REFRESH_LEASE_MS, Bu as RUNTIME_NAME, Sl as ReactionRateLimiter, Cr as ReplicatedDataStore, jn as RowFilterUnavailable, cc as SCHEDULE_SUBJECT, Ki as SYSTEM_SUBJECT, xs as SelectBuilder, Ji as StoreOperationFailed, Lt as SubscriptionRegistry, Yi as TableValidationFailed, qi as TenantScopeViolation, Qc as TimelineRecorder, jc as UndoBoundaryError, Nc as UndoStack, Ss as UpdateBuilder, cs as VOLTRO_AUDIT_MIXIN_ID, ls as VOLTRO_SOFT_DELETE_MIXIN_ID, us as VOLTRO_TENANT_MIXIN_ID, ir as _connectionStreamCount, ar as _resetConnectionSubjectsForTest, Va as _voltroConnectionGrantsTable, Ra as _voltroConnectionsTable, pl as _voltroRebacTuplesTable, bc as _voltroScheduleClaimsTable, yc as _voltroScheduleRunsTable, xc as _voltroTracesTable, Sc as _voltroUndoLogTable, wl as _voltroWakeupsTable, ya as _voltroWorkflowEventDeliveriesTable, va as _voltroWorkflowEventsTable, Gi as apiKeyManagementRoutes, Ds as applyDefined, ul as applyDelta, Fc as applyInverse, Ic as applyInverses, Bn as applyRowFilter, Vn as applyRowFilterToDescriptor, lu as applySoftDeleteScope, ou as applyTenantScope, Wc as applyUndoInvocation, Zo as assertCan, Ga as assertConnectionCipherConfigured, Ql as attachAnalyticsMirror, Wr as awaitServerListening, Aa as backoffMs, To as beginOAuthConnect, Zn as bindConnectionSubject, Vr as bindMutation, Nr as bindStream, Mr as bindSubscription, Ar as bindSubscriptionUntyped, cl as buildIvmState, Lu as buildPreview, gl as buildRebacInterceptor, vl as buildRebacReadFilter, _r as buildSubjectKey, Yr as buildTracingLayer, ui as cachedBackend, Xo as can, Zs as cancelWakeup, il as classifyShape, po as clearConnectionRefreshFlights, Ko as clearResourcePolicies, i as clearRetentions, Is as clearSystemStoreHandle, Ks as compileCron, Eo as completeOAuthConnect, Yl as composeAnalytics, Jl as composeAnalyticsSinks, So as connectionCallbackPath, Wa as connectionLabel, or as connectionSubjectsSnapshot, Ll as countRunningWorkflows, Tn as counter, Sr as currentRoutingContext, pr as currentTraceContext, Hi as dataStoreApiKeyStore, Ti as dataStoreIdempotencyStore, Ai as dataStoreKvStore, bi as decryptField, $l as defineAggregate, Ua as defineConnection, pa as defineEventTrigger, uu as defineExecutor, Da as defineOutboxHandler, yl as defineReaction, Uo as defineResourcePolicy, Gs as defineSchedule, Bl as defineSubscriber, Hn as deliveredRowCount, pi as deriveKey, Iu as diffChange, Fa as drainOutbox, ic as dueWakeups, Yo as effectiveRelations, hs as emptySchemaRegistry, q as encryptField, ii as envSecretsBackend, io as exchangeAuthorizationCode, ur as externalSpanFromTraceparent, Yt as extractDbCause, It as fingerprintFor, eo as forgetCredential, cr as formatTraceparent, Pc as forwardChangeFromCdc, Ui as frameworkApiKeyStrategy, En as gauge, Fi as generateApiKeyToken, Ao as getConnectionResolver, Qn as getConnectionSubject, vi as getFieldCipher, Wo as getResourcePolicy, Fn as getRowFilter, Ls as getSystemStoreHandle, el as getTimelineRecorder, rs as getTupleSource, $ as groupKeyOf, Dn as histogramMetric, Pu as historyProvenance, di as httpSecretsBackend, wt as inspectWorkflow, is as installPolicyGuardResolver, rr as interruptConnectionStreams, kc as invertChange, eu as isAggregateDefinition, su as isEmptyTenantScopedRead, Xt as isForeignKeyViolation, Al as isIdleNow, Rr as isInfraError, cu as isOrglessUserSubject, Mc as isSafeToApply, Us as isScheduleDefinition, ma as isWorkflowEventTriggerDefinition, sl as ivmValue, Nu as lastWriteProvenance, to as listConnectionStates, Go as listResourcePolicies, ee as listRetentions, ml as loadResourceTuples, _l as loadSubjectTuples, zs as localityAwareSelector, Ou as makeActionRunner, fc as makeAdvisoryLockCoordinator, mi as makeAesCipher, Ri as makeApiKeyService, Zt as makeAppAccess, ji as makeAsyncKv, ri as makeBufferingSpanProcessor, Ka as makeConnectionRegistry, Mo as makeConnectionResolver, No as makeConnectionsFacade, vc as makeCoordinatedScheduler, os as makeDataLoader, zo as makeDisconnectConnectionExecutor, $i as makeEffectStoreLayer, ba as makeEventsFacade, hi as makeFieldCipher, ws as makeFluentStore, jl as makeIdleGate, la as makeLazyWorkflowFacade, Io as makeListConnectionsExecutor, Su as makeMutationRunner, ka as makeOutboxFacade, sa as makePostCommitWorkflowFacade, Dl as makeProcessAdapter, Du as makeQueryDescriptorProducer, Eu as makeQueryReauthorizer, Ml as makeRouterActivity, ds as makeSchemaRegistry, Lo as makeStartConnectionExecutor, Ro as makeSubmitTokenExecutor, Dc as makeUndoCapture, Nl as makeWakeGate, Il as makeWakeProxyServer, oa as makeWorkflowFacade, ca as makeWorkflowFacadeWithCallerContext, ua as makeWorkflowHandlers, da as makeWorkflowLayers, na as makeWorkflowRunHandle, Qs as markWakeupFired, ll as materializeIvm, zi as memoryApiKeyStore, Vs as memoryReplicationAdapter, gr as memoryRywPositionStore, qs as nextFiring, ac as nextWakeup, kl as nodeProcessSupervisor, ql as noopAnalytics, Xl as noopAnalyticsSpec, Mi as noopKv, er as onBindConnectionSubject, Ea as outboxAttemptsTable, Ca as outboxTable, lr as parseTraceparent, mr as powerOfTwoSelector, zu as previewInRollback, Xa as projectConnectionState, sc as pruneWakeups, qo as rebacPolicyGraph, xn as recordSample, U as recordSubscriptionActive, Cn as recordSubscriptionDelivery, nl as recordTimelineEvent, Yc as redactRow, vr as redisRywPositionStore, Gc as redoUndoInvocation, ao as refreshAccessToken, nr as registerConnectionStream, se as registerRetention, Xs as registerWakeup, tc as releaseWakeup, hr as replicaHealth, si as resetSecretsBackend, go as resolveConnection, jo as resolveConnectionForSubject, Bs as resolveCurrentRegion, Qt as resolveDependentTables, wo as resolveRedirectUri, dl as resolveRescan, Ln as resolveRowFilterScope, Rn as resolveRowFilterScopeFor, ci as resolveSecret, li as resolveSecretSync, fi as resolveSecretsBackend, Kc as resolveTimelineMode, le as retentionTtlMsFromEnv, Zc as reverseEventOverRows, $o as revokedIds, Rs as runAsSystem, Rl as runOrchestratorTick, du as runProvidedEffect, Cl as runReaction, zl as runSingleNodeOrchestrator, El as runWakeLoop, xu as runWithDeadlockRetry, xr as runWithRoutingContext, fr as runWithTraceContext, Co as sanitizeRedirectTo, _c as scheduleCoordinated, ko as setConnectionResolver, _i as setFieldCipher, Pn as setRowFilter, oi as setSecretsBackend, Fs as setSystemStoreHandle, tl as setTimelineRecorderForTest, ns as setTupleSource, Pi as sha256Hex, uc as singleCoordinator, kn as snapshotMetrics, An as snapshotMetricsSync, Ur as startRpcServer, mc as startScheduler, Qa as storeCredential, Do as sweepExpiredGrants, fe as sweepRetention, Ac as synthesizeInverse, ss as tracingHttpClientLayer, fa as triggerWorkflow, ec as tryClaimWakeup, $n as unbindConnectionSubject, Cc as undoCaptureEnabled, Hc as undoLogExecutor, au as useAggregate, Gl as useAnalytics, Qo as visibleRows, Tl as wakeDueOnce, mu as withRowFilter, ea as workflowToRpc, Ec as wrapCaptureStore, As as wrapStoreWithMixinBehaviour };
6509
+ export { Pi as API_KEYS_TABLE, Vo as AccessDenied, ou as AggregateError, hl as AggregateMaintainer, au as AggregateNotFound, su as AggregateRegistry, iu as AggregateStale, Gl as AnalyticsCapabilityNotSupported, Wl as AnalyticsError, Kl as AnalyticsSink, Y as CONNECTIONS_TABLE, X as CONNECTION_GRANTS_TABLE, Is as CircuitBreaker, Ps as CircuitOpen, co as ConnectionNotConnected, Ur as DEFAULT_MAX_RPC_BODY_BYTES, oo as DEFAULT_REFRESH_SKEW_MS, Nn as DEFAULT_ROW_FILTER_RETRY, fc as DORMANCY_WAKEUP_TENANT, Cs as DeleteBuilder, Gn as Dispatcher, Zi as EffectStore, xo as GRANT_TTL_MS, Jt as InMemoryDataStore, Ft as IndexedMatcher, Ot as LinearScanMatcher, Je as MetricBoundaries, Yl as NOOP_ANALYTICS_PROVIDER, Ln as NO_ROW_FILTER, gs as NoRowFound, Ta as OUTBOX_ATTEMPTS_TABLE, Ma as OUTBOX_ATTEMPT_LOG_CAP, J as OUTBOX_TABLE, _s as OptimisticLockError, Bo as REBAC_ADMIN_SCOPE, so as REFRESH_LEASE_MS, Uu as RUNTIME_NAME, Tl as ReactionRateLimiter, wr as ReplicatedDataStore, Mn as RowFilterUnavailable, dc as SCHEDULE_SUBJECT, qi as SYSTEM_SUBJECT, xs as SelectBuilder, Yi as StoreOperationFailed, Rt as SubscriptionRegistry, Xi as TableValidationFailed, Ji as TenantScopeViolation, tl as TimelineRecorder, Pc as UndoBoundaryError, Ic as UndoStack, Ss as UpdateBuilder, cs as VOLTRO_AUDIT_MIXIN_ID, ls as VOLTRO_SOFT_DELETE_MIXIN_ID, us as VOLTRO_TENANT_MIXIN_ID, ar as _connectionStreamCount, or as _resetConnectionSubjectsForTest, Va as _voltroConnectionGrantsTable, za as _voltroConnectionsTable, gl as _voltroRebacTuplesTable, Cc as _voltroScheduleClaimsTable, Sc as _voltroScheduleRunsTable, wc as _voltroTracesTable, Tc as _voltroUndoLogTable, Dl as _voltroWakeupsTable, ba as _voltroWorkflowEventDeliveriesTable, ya as _voltroWorkflowEventsTable, Ki as apiKeyManagementRoutes, Ds as applyDefined, pl as applyDelta, Rc as applyInverse, zc as applyInverses, Vn as applyRowFilter, Hn as applyRowFilterToDescriptor, fu as applySoftDeleteScope, lu as applyTenantScope, qc as applyUndoInvocation, Zo as assertCan, Ga as assertConnectionCipherConfigured, tu as attachAnalyticsMirror, Gr as awaitServerListening, ja as backoffMs, To as beginOAuthConnect, Qn as bindConnectionSubject, Hr as bindMutation, Pr as bindStream, Nr as bindSubscription, jr as bindSubscriptionUntyped, dl as buildIvmState, Bu as buildPreview, yl as buildRebacInterceptor, xl as buildRebacReadFilter, vr as buildSubjectKey, Xr as buildTracingLayer, di as cachedBackend, Xo as can, ec as cancelWakeup, sl as classifyShape, po as clearConnectionRefreshFlights, Ko as clearResourcePolicies, i as clearRetentions, zs as clearSystemStoreHandle, Ys as compileCron, Eo as completeOAuthConnect, Ql as composeAnalytics, Zl as composeAnalyticsSinks, So as connectionCallbackPath, Wa as connectionLabel, sr as connectionSubjectsSnapshot, Bl as countRunningWorkflows, En as counter, Ns as crud, Cr as currentRoutingContext, mr as currentTraceContext, Ui as dataStoreApiKeyStore, Ei as dataStoreIdempotencyStore, ji as dataStoreKvStore, xi as decryptField, nu as defineAggregate, Ua as defineConnection, ma as defineEventTrigger, pu as defineExecutor, Oa as defineOutboxHandler, Sl as defineReaction, Uo as defineResourcePolicy, Js as defineSchedule, Ul as defineSubscriber, Un as deliveredRowCount, mi as deriveKey, zu as diffChange, Ia as drainOutbox, sc as dueWakeups, Yo as effectiveRelations, hs as emptySchemaRegistry, K as encryptField, ai as envSecretsBackend, io as exchangeAuthorizationCode, dr as externalSpanFromTraceparent, Xt as extractDbCause, Lt as fingerprintFor, eo as forgetCredential, lr as formatTraceparent, Lc as forwardChangeFromCdc, Wi as frameworkApiKeyStrategy, Dn as gauge, Ii as generateApiKeyToken, Ao as getConnectionResolver, $n as getConnectionSubject, yi as getFieldCipher, Wo as getResourcePolicy, In as getRowFilter, Bs as getSystemStoreHandle, rl as getTimelineRecorder, rs as getTupleSource, $ as groupKeyOf, On as histogramMetric, Lu as historyProvenance, fi as httpSecretsBackend, Tt as inspectWorkflow, is as installPolicyGuardResolver, ir as interruptConnectionStreams, Mc as invertChange, ru as isAggregateDefinition, uu as isEmptyTenantScopedRead, Zt as isForeignKeyViolation, Nl as isIdleNow, zr as isInfraError, du as isOrglessUserSubject, Fc as isSafeToApply, Ks as isScheduleDefinition, ha as isWorkflowEventTriggerDefinition, ul as ivmValue, Iu as lastWriteProvenance, to as listConnectionStates, Go as listResourcePolicies, ee as listRetentions, _l as loadResourceTuples, bl as loadSubjectTuples, Hs as localityAwareSelector, ju as makeActionRunner, hc as makeAdvisoryLockCoordinator, hi as makeAesCipher, zi as makeApiKeyService, Qt as makeAppAccess, Mi as makeAsyncKv, ii as makeBufferingSpanProcessor, Ka as makeConnectionRegistry, Mo as makeConnectionResolver, No as makeConnectionsFacade, xc as makeCoordinatedScheduler, os as makeDataLoader, zo as makeDisconnectConnectionExecutor, ea as makeEffectStoreLayer, xa as makeEventsFacade, gi as makeFieldCipher, ws as makeFluentStore, Pl as makeIdleGate, ua as makeLazyWorkflowFacade, Io as makeListConnectionsExecutor, Tu as makeMutationRunner, Aa as makeOutboxFacade, ca as makePostCommitWorkflowFacade, Al as makeProcessAdapter, Au as makeQueryDescriptorProducer, ku as makeQueryReauthorizer, Fl as makeRouterActivity, ds as makeSchemaRegistry, Lo as makeStartConnectionExecutor, Ro as makeSubmitTokenExecutor, Ac as makeUndoCapture, Il as makeWakeGate, zl as makeWakeProxyServer, sa as makeWorkflowFacade, la as makeWorkflowFacadeWithCallerContext, da as makeWorkflowHandlers, fa as makeWorkflowLayers, ra as makeWorkflowRunHandle, tc as markWakeupFired, fl as materializeIvm, Bi as memoryApiKeyStore, Ws as memoryReplicationAdapter, _r as memoryRywPositionStore, Xs as nextFiring, cc as nextWakeup, Ml as nodeProcessSupervisor, Xl as noopAnalytics, $l as noopAnalyticsSpec, Ni as noopKv, tr as onBindConnectionSubject, Da as outboxAttemptsTable, wa as outboxTable, ur as parseTraceparent, hr as powerOfTwoSelector, Hu as previewInRollback, Xa as projectConnectionState, uc as pruneWakeups, qo as rebacPolicyGraph, Sn as recordSample, H as recordSubscriptionActive, wn as recordSubscriptionDelivery, al as recordTimelineEvent, Ms as redactColumns, Qc as redactRow, yr as redisRywPositionStore, Jc as redoUndoInvocation, ao as refreshAccessToken, rr as registerConnectionStream, oe as registerRetention, $s as registerWakeup, ic as releaseWakeup, gr as replicaHealth, ci as resetSecretsBackend, go as resolveConnection, jo as resolveConnectionForSubject, Us as resolveCurrentRegion, $t as resolveDependentTables, wo as resolveRedirectUri, ml as resolveRescan, Rn as resolveRowFilterScope, zn as resolveRowFilterScopeFor, li as resolveSecret, ui as resolveSecretSync, pi as resolveSecretsBackend, Yc as resolveTimelineMode, ce as retentionTtlMsFromEnv, el as reverseEventOverRows, $o as revokedIds, Vs as runAsSystem, Vl as runOrchestratorTick, mu as runProvidedEffect, El as runReaction, Hl as runSingleNodeOrchestrator, kl as runWakeLoop, wu as runWithDeadlockRetry, Sr as runWithRoutingContext, pr as runWithTraceContext, Co as sanitizeRedirectTo, bc as scheduleCoordinated, ko as setConnectionResolver, vi as setFieldCipher, Fn as setRowFilter, si as setSecretsBackend, Rs as setSystemStoreHandle, il as setTimelineRecorderForTest, ns as setTupleSource, Fi as sha256Hex, pc as singleCoordinator, An as snapshotMetrics, jn as snapshotMetricsSync, Wr as startRpcServer, _c as startScheduler, Qa as storeCredential, Do as sweepExpiredGrants, de as sweepRetention, Nc as synthesizeInverse, ss as tracingHttpClientLayer, pa as triggerWorkflow, rc as tryClaimWakeup, er as unbindConnectionSubject, Ec as undoCaptureEnabled, Gc as undoLogExecutor, cu as useAggregate, Jl as useAnalytics, Qo as visibleRows, Ol as wakeDueOnce, _u as withRowFilter, ta as workflowToRpc, kc as wrapCaptureStore, As as wrapStoreWithMixinBehaviour };