@voltro/protocol 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,30 +1,30 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as ee, I as te, L as s, M as ne, N as re, O as ie, P as ae, R as oe, S as se, T as ce, U as le, V as ue, W as de, _ as fe, a as pe, b as me, c as he, d as ge, f as _e, g as ve, h as ye, i as be, j as xe, k as Se, l as Ce, m as we, n as Te, o as Ee, p as De, r as Oe, s as ke, t as Ae, u as je, v as Me, w as Ne, x as Pe, y as Fe, z as Ie } from "./auth-CKS3UNnf.js";
2
- import { a as Le, c as Re, i as ze, n as Be, o as Ve, r as He, s as Ue, t as We } from "./serverErrorBus-BeN9pOpY.js";
3
- import { Context as Ge, Layer as Ke, Schema as c } from "effect";
4
- import { Rpc as l } from "@effect/rpc";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as ee, I as te, L as ne, M as re, N as s, O as ie, P as ae, R as oe, S as se, T as ce, U as le, V as ue, W as de, _ as fe, a as c, b as pe, c as me, d as he, f as ge, g as _e, h as l, i as ve, j as ye, k as be, l as xe, m as Se, n as Ce, o as we, p as Te, r as Ee, s as De, t as Oe, u as ke, v as u, w as Ae, x as je, y as Me, z as Ne } from "./scopes-B0kGvAnI.js";
2
+ import { a as Pe, c as Fe, i as Ie, n as Le, o as Re, r as ze, s as Be, t as Ve } from "./serverErrorBus-BeN9pOpY.js";
3
+ import { Context as He, Layer as Ue, Schema as d } from "effect";
4
+ import { Rpc as f } from "@effect/rpc";
5
5
  //#region src/rowPatch.ts
6
- var qe = c.Union(c.String, c.Number), u = c.Record({
7
- key: c.String,
8
- value: c.Unknown
9
- }).pipe(c.filter((e) => "id" in e, { message: () => "patch row must carry an id" })), d = c.Union(c.Struct({
10
- op: c.Literal("add"),
11
- path: c.String,
12
- value: u
13
- }), c.Struct({
14
- op: c.Literal("replace"),
15
- path: c.String,
16
- value: u
17
- }), c.Struct({
18
- op: c.Literal("remove"),
19
- path: c.String
20
- })), f = c.Struct({
21
- ops: c.Array(d),
22
- order: c.Array(qe)
23
- }), p = (e) => `/${String(e).replace(/~/g, "~0").replace(/\//g, "~1")}`, Je = (e) => (e.startsWith("/") ? e.slice(1) : e).replace(/~1/g, "/").replace(/~0/g, "~"), m = (e) => {
6
+ var We = d.Union(d.String, d.Number), p = d.Record({
7
+ key: d.String,
8
+ value: d.Unknown
9
+ }).pipe(d.filter((e) => "id" in e, { message: () => "patch row must carry an id" })), m = d.Union(d.Struct({
10
+ op: d.Literal("add"),
11
+ path: d.String,
12
+ value: p
13
+ }), d.Struct({
14
+ op: d.Literal("replace"),
15
+ path: d.String,
16
+ value: p
17
+ }), d.Struct({
18
+ op: d.Literal("remove"),
19
+ path: d.String
20
+ })), h = d.Struct({
21
+ ops: d.Array(m),
22
+ order: d.Array(We)
23
+ }), g = (e) => `/${String(e).replace(/~/g, "~0").replace(/\//g, "~1")}`, Ge = (e) => (e.startsWith("/") ? e.slice(1) : e).replace(/~1/g, "/").replace(/~0/g, "~"), _ = (e) => {
24
24
  let t = Object.keys(e).sort(), n = {};
25
25
  for (let r of t) n[r] = e[r];
26
26
  return JSON.stringify(n);
27
- }, Ye = (e, t) => m(e) === m(t), Xe = (e, t) => {
27
+ }, Ke = (e, t) => _(e) === _(t), qe = (e, t) => {
28
28
  let n = /* @__PURE__ */ new Map();
29
29
  for (let t of e) n.set(t.id, t);
30
30
  let r = [], i = [], a = /* @__PURE__ */ new Set();
@@ -33,26 +33,26 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
33
33
  let t = n.get(e.id);
34
34
  t === void 0 ? r.push({
35
35
  op: "add",
36
- path: p(e.id),
36
+ path: g(e.id),
37
37
  value: e
38
- }) : Ye(t, e) || r.push({
38
+ }) : Ke(t, e) || r.push({
39
39
  op: "replace",
40
- path: p(e.id),
40
+ path: g(e.id),
41
41
  value: e
42
42
  });
43
43
  }
44
44
  for (let t of e) a.has(t.id) || r.push({
45
45
  op: "remove",
46
- path: p(t.id)
46
+ path: g(t.id)
47
47
  });
48
48
  return {
49
49
  ops: r,
50
50
  order: i
51
51
  };
52
- }, Ze = (e) => e.every((e) => {
52
+ }, Je = (e) => e.every((e) => {
53
53
  let t = e.id;
54
54
  return typeof t == "string" || typeof t == "number";
55
- }), Qe = (e, t) => {
55
+ }), Ye = (e, t) => {
56
56
  let n = /* @__PURE__ */ new Map();
57
57
  for (let t of e) n.set(t.id, t);
58
58
  for (let e of t.ops) (e.op === "add" || e.op === "replace") && n.set(e.value.id, e.value);
@@ -62,96 +62,96 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
62
62
  t !== void 0 && r.push(t);
63
63
  }
64
64
  return r;
65
- }, h = (e) => c.Union(c.Struct({
66
- _tag: c.Literal("snapshot"),
67
- revision: c.Number,
65
+ }, v = (e) => d.Union(d.Struct({
66
+ _tag: d.Literal("snapshot"),
67
+ revision: d.Number,
68
68
  data: e,
69
- computed: c.optional(c.Boolean)
70
- }), c.Struct({
71
- _tag: c.Literal("delta"),
72
- revision: c.Number,
73
- emittedAt: c.Number,
74
- patch: f
75
- }), c.Struct({
76
- _tag: c.Literal("error"),
77
- error: c.Unknown,
78
- revision: c.optional(c.Number)
79
- })), $e = (e) => {
69
+ computed: d.optional(d.Boolean)
70
+ }), d.Struct({
71
+ _tag: d.Literal("delta"),
72
+ revision: d.Number,
73
+ emittedAt: d.Number,
74
+ patch: h
75
+ }), d.Struct({
76
+ _tag: d.Literal("error"),
77
+ error: d.Unknown,
78
+ revision: d.optional(d.Number)
79
+ })), Xe = (e) => {
80
80
  let t = e.ast;
81
81
  return t._tag === "TypeLiteral" && (t.propertySignatures?.length ?? 0) === 0 && (t.indexSignatures?.length ?? 0) === 0;
82
- }, g = (e, t) => {
82
+ }, y = (e, t) => {
83
83
  let n = e.annotations({
84
84
  parseOptions: { onExcessProperty: "error" },
85
85
  parseIssueTitle: () => `${t ?? "this procedure"} input`
86
86
  });
87
- return $e(e) ? c.filter((e) => typeof e == "object" && e && Object.keys(e).length > 0 ? `this procedure declares no input; received: ${Object.keys(e).join(", ")}` : void 0)(n).annotations({ identifier: `${t ?? "this procedure"} input` }) : n;
88
- }, _ = class extends c.TaggedError()("BusinessRuleViolation", {
89
- rule: c.String,
90
- params: c.optional(c.Record({
91
- key: c.String,
92
- value: c.Unknown
87
+ return Xe(e) ? d.filter((e) => typeof e == "object" && e && Object.keys(e).length > 0 ? `this procedure declares no input; received: ${Object.keys(e).join(", ")}` : void 0)(n).annotations({ identifier: `${t ?? "this procedure"} input` }) : n;
88
+ }, b = class extends d.TaggedError()("BusinessRuleViolation", {
89
+ rule: d.String,
90
+ params: d.optional(d.Record({
91
+ key: d.String,
92
+ value: d.Unknown
93
93
  })),
94
- field: c.optional(c.String),
95
- message: c.optional(c.String),
96
- severity: c.Literal("error", "warning")
97
- }) {}, v = class extends c.TaggedError()("ApprovalRequired", {
98
- approvalId: c.String,
99
- procedure: c.String,
100
- expiresAt: c.String,
101
- requiredScopes: c.Array(c.String),
102
- reason: c.NullOr(c.String),
103
- created: c.Boolean
104
- }) {}, y = class extends c.TaggedError()("ApprovalNotFound", { approvalId: c.String }) {}, b = class extends c.TaggedError()("ApprovalSelfApproval", {
105
- approvalId: c.String,
106
- subjectId: c.NullOr(c.String)
107
- }) {}, x = class extends c.TaggedError()("ApprovalRejected", {
108
- approvalId: c.String,
109
- decidedBy: c.NullOr(c.String),
110
- note: c.NullOr(c.String)
111
- }) {}, S = class extends c.TaggedError()("ApprovalExpired", {
112
- approvalId: c.String,
113
- expiredAt: c.String
114
- }) {}, C = class extends c.TaggedError()("ApprovalNotPending", {
115
- approvalId: c.String,
116
- status: c.String
117
- }) {}, w = class extends c.TaggedError()("ApprovalForbidden", {
118
- approvalId: c.String,
119
- required: c.NullOr(c.String),
120
- message: c.String
121
- }) {}, T = class extends c.TaggedError()("ApprovalUnavailable", {
122
- procedure: c.String,
123
- message: c.String
124
- }) {}, E = c.Union(v, x, S, T), D = c.Union(y, b, S, C, w, T), O = c.Struct({
125
- id: c.String,
126
- procedure: c.String,
127
- kind: c.Literal("mutation", "action"),
128
- requestedBy: c.NullOr(c.String),
129
- status: c.Literal("pending", "approved", "rejected", "expired", "consumed"),
130
- reason: c.NullOr(c.String),
131
- requiredScopes: c.Array(c.String),
132
- requestedAt: c.String,
133
- expiresAt: c.String,
134
- decidedBy: c.NullOr(c.String),
135
- decidedAt: c.NullOr(c.String),
136
- note: c.NullOr(c.String),
137
- relation: c.Literal("to-decide", "requested")
138
- }), k = "channel:", A = Symbol.for("@voltro/protocol/reactivityChannels"), j = globalThis, M = j[A] ?? (j[A] = /* @__PURE__ */ new Map()), et = /^[a-z][a-z0-9-]*(\.[a-z0-9-]+)*$/, tt = (e) => {
139
- if (!et.test(e)) throw Error(`reactivityChannel('${e}'): invalid channel name.\n Use lowercase kebab segments separated by dots — \`presence\`, \`job-queue\`,
94
+ field: d.optional(d.String),
95
+ message: d.optional(d.String),
96
+ severity: d.Literal("error", "warning")
97
+ }) {}, x = class extends d.TaggedError()("ApprovalRequired", {
98
+ approvalId: d.String,
99
+ procedure: d.String,
100
+ expiresAt: d.String,
101
+ requiredScopes: d.Array(d.String),
102
+ reason: d.NullOr(d.String),
103
+ created: d.Boolean
104
+ }) {}, S = class extends d.TaggedError()("ApprovalNotFound", { approvalId: d.String }) {}, C = class extends d.TaggedError()("ApprovalSelfApproval", {
105
+ approvalId: d.String,
106
+ subjectId: d.NullOr(d.String)
107
+ }) {}, w = class extends d.TaggedError()("ApprovalRejected", {
108
+ approvalId: d.String,
109
+ decidedBy: d.NullOr(d.String),
110
+ note: d.NullOr(d.String)
111
+ }) {}, T = class extends d.TaggedError()("ApprovalExpired", {
112
+ approvalId: d.String,
113
+ expiredAt: d.String
114
+ }) {}, E = class extends d.TaggedError()("ApprovalNotPending", {
115
+ approvalId: d.String,
116
+ status: d.String
117
+ }) {}, D = class extends d.TaggedError()("ApprovalForbidden", {
118
+ approvalId: d.String,
119
+ required: d.NullOr(d.String),
120
+ message: d.String
121
+ }) {}, O = class extends d.TaggedError()("ApprovalUnavailable", {
122
+ procedure: d.String,
123
+ message: d.String
124
+ }) {}, k = d.Union(x, w, T, O), A = d.Union(S, C, T, E, D, O), j = d.Struct({
125
+ id: d.String,
126
+ procedure: d.String,
127
+ kind: d.Literal("mutation", "action"),
128
+ requestedBy: d.NullOr(d.String),
129
+ status: d.Literal("pending", "approved", "rejected", "expired", "consumed"),
130
+ reason: d.NullOr(d.String),
131
+ requiredScopes: d.Array(d.String),
132
+ requestedAt: d.String,
133
+ expiresAt: d.String,
134
+ decidedBy: d.NullOr(d.String),
135
+ decidedAt: d.NullOr(d.String),
136
+ note: d.NullOr(d.String),
137
+ relation: d.Literal("to-decide", "requested")
138
+ }), M = "channel:", N = Symbol.for("@voltro/protocol/reactivityChannels"), P = globalThis, F = P[N] ?? (P[N] = /* @__PURE__ */ new Map()), Ze = /^[a-z][a-z0-9-]*(\.[a-z0-9-]+)*$/, Qe = (e) => {
139
+ if (!Ze.test(e)) throw Error(`reactivityChannel('${e}'): invalid channel name.\n Use lowercase kebab segments separated by dots — \`presence\`, \`job-queue\`,
140
140
  \`billing.usage\`. A \`:\` is refused because it is the namespace separator in
141
- the routing key (\`${k}<name>\`), and an uppercase letter is\n refused because a key that differs only by case reads as one channel and
141
+ the routing key (\`${M}<name>\`), and an uppercase letter is\n refused because a key that differs only by case reads as one channel and
142
142
  routes as two.`);
143
- let t = M.get(e);
143
+ let t = F.get(e);
144
144
  if (t !== void 0) return t;
145
- let n = `${k}${e}`, r = Object.freeze({
145
+ let n = `${M}${e}`, r = Object.freeze({
146
146
  kind: "reactivity-channel",
147
147
  name: e,
148
148
  key: n,
149
149
  toString: () => n
150
150
  });
151
- return M.set(e, r), r;
152
- }, N = (e) => typeof e == "object" && !!e && e.kind === "reactivity-channel", P = (e) => e.startsWith(k), F = () => new Set([...M.values()].map((e) => e.key)), I = (e) => N(e) ? e.key : e, L = (e) => e === void 0 ? [] : Array.isArray(e) ? e.map(I) : [I(e)], nt = (e) => e === void 0 ? void 0 : Array.isArray(e) ? e.map(I) : I(e), rt = (e) => {
153
- let t = F(), n = [];
154
- for (let r of e) for (let e of L(r.source)) !P(e) || t.has(e) || n.push({
151
+ return F.set(e, r), r;
152
+ }, I = (e) => typeof e == "object" && !!e && e.kind === "reactivity-channel", $e = (e) => e.startsWith(M), et = () => new Set([...F.values()].map((e) => e.key)), L = (e) => I(e) ? e.key : e, tt = (e) => e === void 0 ? [] : Array.isArray(e) ? e.map(L) : [L(e)], nt = (e) => e === void 0 ? void 0 : Array.isArray(e) ? e.map(L) : L(e), rt = (e) => {
153
+ let t = et(), n = [];
154
+ for (let r of e) for (let e of tt(r.source)) !$e(e) || t.has(e) || n.push({
155
155
  procedure: r.name,
156
156
  key: e
157
157
  });
@@ -193,19 +193,19 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
193
193
  human from every other, and the second-pair-of-eyes control would enforce nothing.
194
194
  Give the procedure a \`guards:\` decision, or drop \`requiresApproval\`.`);
195
195
  }
196
- }, st = (e) => e.action !== void 0 && e.resourceType !== void 0, ct = (e) => e.openAccess !== void 0 || e.guards !== void 0 && e.guards.length > 0, z = (e, n, r) => {
197
- if (r === void 0) return n;
198
- if (r.trim() === "") throw Error(`${e}: \`openAccess\` needs a REASON, not an empty string. It is the sentence a\n reviewer reads to decide whether this procedure should really be callable
196
+ }, st = (e) => e.action !== void 0 && e.resourceType !== void 0, ct = (e) => e.openAccess !== void 0 || e.guards !== void 0 && e.guards.length > 0, z = (e, t, n) => {
197
+ if (n === void 0) return t;
198
+ if (n.trim() === "") throw Error(`${e}: \`openAccess\` needs a REASON, not an empty string. It is the sentence a\n reviewer reads to decide whether this procedure should really be callable
199
199
  without an authorization check — e.g. \`openAccess: 'public pricing, no caller data'\`.`);
200
- if (n !== void 0 && n.length > 0) throw Error(`${e}: \`openAccess\` and \`guards\` are two different access decisions, so\n declaring both says the procedure is protected AND open. Keep the guards if a
200
+ if (t !== void 0 && t.length > 0) throw Error(`${e}: \`openAccess\` and \`guards\` are two different access decisions, so\n declaring both says the procedure is protected AND open. Keep the guards if a
201
201
  caller must hold a scope; drop them if anyone may call it.`);
202
- return [t(r.trim())];
202
+ return [u(n.trim())];
203
203
  }, B = (e) => R({
204
204
  kind: "query",
205
205
  name: e.name,
206
206
  input: e.input,
207
207
  output: e.output,
208
- error: e.error ?? c.Never,
208
+ error: e.error ?? d.Never,
209
209
  source: nt(e.source),
210
210
  cache: e.cache,
211
211
  guards: z(e.name, e.guards, e.openAccess),
@@ -219,7 +219,7 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
219
219
  name: e.name,
220
220
  input: e.input,
221
221
  output: e.output,
222
- error: e.error ?? c.Never,
222
+ error: e.error ?? d.Never,
223
223
  target: e.target,
224
224
  guards: z(e.name, e.guards, e.openAccess),
225
225
  openAccess: e.openAccess,
@@ -233,7 +233,7 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
233
233
  name: e.name,
234
234
  input: e.input,
235
235
  output: e.output,
236
- error: e.error ?? c.Never,
236
+ error: e.error ?? d.Never,
237
237
  guards: z(e.name, e.guards, e.openAccess),
238
238
  openAccess: e.openAccess,
239
239
  source: e.source,
@@ -248,41 +248,45 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
248
248
  name: e.name,
249
249
  input: e.input,
250
250
  element: e.element,
251
- error: e.error ?? c.Never,
251
+ error: e.error ?? d.Never,
252
252
  internal: e.internal,
253
253
  overridesPlugin: e.overridesPlugin,
254
254
  guards: z(e.name, e.guards, e.openAccess),
255
255
  openAccess: e.openAccess
256
- }), U = (e, t) => t && t.length > 0 ? c.Union(e, ...t) : e, W = (e, t) => t && t.some((e) => !s(e)) ? c.Union(e, r) : e, ut = (e) => c.Union(e, _), dt = (e, t) => t === void 0 ? e : c.Union(e, E), ft = (e, t) => l.make(e.name, {
257
- payload: g(e.input, e.name),
258
- success: h(e.output),
259
- error: U(W(e.error, e.guards), t),
256
+ }), U = (e, t) => t && t.length > 0 ? d.Union(e, ...t) : e, ut = (e, t) => t && t.some((e) => !l(e)) ? d.Union(e, c, s) : e, dt = (e) => d.Union(e, b), ft = (e, t) => t === void 0 ? e : d.Union(e, k), W = (e, t) => {
257
+ if (t === "stream") return e.error;
258
+ let n = ut(e.error, e.guards);
259
+ return t === "query" ? n : ft(t === "mutation" ? dt(n) : n, e.requiresApproval);
260
+ }, pt = (e, t) => f.make(e.name, {
261
+ payload: y(e.input, e.name),
262
+ success: v(e.output),
263
+ error: U(W(e, "query"), t),
260
264
  stream: !0
261
- }), G = (e, t) => l.make(e.name, {
262
- payload: g(e.input, e.name),
265
+ }), mt = (e, t) => f.make(e.name, {
266
+ payload: y(e.input, e.name),
263
267
  success: e.output,
264
- error: U(dt(ut(W(e.error, e.guards)), e.requiresApproval), t)
265
- }), pt = (e, t) => l.make(e.name, {
266
- payload: g(e.input, e.name),
268
+ error: U(W(e, "mutation"), t)
269
+ }), ht = (e, t) => f.make(e.name, {
270
+ payload: y(e.input, e.name),
267
271
  success: e.output,
268
- error: U(dt(W(e.error, e.guards), e.requiresApproval), t)
269
- }), mt = (e, t) => l.make(e.name, {
270
- payload: g(e.input, e.name),
272
+ error: U(W(e, "action"), t)
273
+ }), gt = (e, t) => f.make(e.name, {
274
+ payload: y(e.input, e.name),
271
275
  success: e.element,
272
276
  error: U(e.error, t),
273
277
  stream: !0
274
- }), ht = (e) => {
278
+ }), _t = (e) => {
275
279
  if (typeof e != "object" || !e) return;
276
280
  let t = e._tag;
277
281
  return typeof t == "string" ? t : void 0;
278
- }, gt = (e) => {
282
+ }, vt = (e) => {
279
283
  switch (e.kind) {
280
- case "query": return ft(e);
281
- case "mutation": return G(e);
282
- case "action": return pt(e);
283
- case "stream": return mt(e);
284
+ case "query": return pt(e);
285
+ case "mutation": return mt(e);
286
+ case "action": return ht(e);
287
+ case "stream": return gt(e);
284
288
  }
285
- }, _t = (e) => {
289
+ }, yt = (e) => {
286
290
  let t = e.input, n = t === void 0 ? {} : { input: t }, r = e.output, i = r === void 0 ? {} : { output: r };
287
291
  if (e.kind === "query") return {
288
292
  kind: "query",
@@ -323,7 +327,7 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
323
327
  ..."shapeItem" in e && e.shapeItem !== void 0 ? { shapeItem: e.shapeItem } : {}
324
328
  }))
325
329
  };
326
- }, vt = 7500, yt = (e) => typeof e == "object" && !!e && e.kind === "event", bt = (e) => {
330
+ }, bt = 7500, xt = (e) => typeof e == "object" && !!e && e.kind === "event", St = (e) => {
327
331
  if (e.name.length === 0) throw Error("defineEvent: `name` must not be empty");
328
332
  if (/\s/.test(e.name)) throw Error(`defineEvent("${e.name}"): \`name\` must not contain whitespace.\n The name is used as a broker subject segment. NATS refuses a subject with
329
333
  whitespace and delivers nothing — silently, and only on that broker, so an
@@ -352,75 +356,75 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
352
356
  name: e.name,
353
357
  key: e.key,
354
358
  payload: e.payload,
355
- guards: e.openAccess === void 0 ? e.guards : [t(e.openAccess.trim())],
359
+ guards: e.openAccess === void 0 ? e.guards : [u(e.openAccess.trim())],
356
360
  openAccess: e.openAccess,
357
361
  rewind: e.rewind,
358
362
  webhook: e.webhook,
359
363
  delivery: e.delivery
360
364
  };
361
- }, xt = (e) => c.Struct({
362
- _tag: c.Literal("event"),
363
- origin: c.String,
364
- n: c.Number,
365
- emittedAt: c.Number,
365
+ }, Ct = (e) => d.Struct({
366
+ _tag: d.Literal("event"),
367
+ origin: d.String,
368
+ n: d.Number,
369
+ emittedAt: d.Number,
366
370
  payload: e
367
- }), St = c.Struct({
368
- _tag: c.Literal("gap"),
369
- missed: c.Number,
370
- reason: c.Literal("buffer", "resume")
371
- }), Ct = c.Struct({ _tag: c.Literal("attached") }), wt = (e) => c.Union(Ct, xt(e), St), Tt = c.Struct({
372
- origin: c.String,
373
- n: c.Number
374
- }), Et = (e) => c.Struct({
371
+ }), wt = d.Struct({
372
+ _tag: d.Literal("gap"),
373
+ missed: d.Number,
374
+ reason: d.Literal("buffer", "resume")
375
+ }), Tt = d.Struct({ _tag: d.Literal("attached") }), Et = (e) => d.Union(Tt, Ct(e), wt), Dt = d.Struct({
376
+ origin: d.String,
377
+ n: d.Number
378
+ }), Ot = (e) => d.Struct({
375
379
  key: e,
376
- resume: c.optional(c.Array(Tt))
377
- }), Dt = (e, t) => {
378
- let n = e.guards !== void 0 && e.guards.some((e) => !s(e)) ? r : c.Never, i = t && t.length > 0 ? c.Union(n, ...t) : n;
379
- return l.make(e.name, {
380
- payload: g(Et(e.key), e.name),
381
- success: wt(e.payload),
382
- error: i,
380
+ resume: d.optional(d.Array(Dt))
381
+ }), kt = (e, t) => {
382
+ let n = e.guards !== void 0 && e.guards.some((e) => !l(e)) ? d.Union(c, s) : d.Never, r = t && t.length > 0 ? d.Union(n, ...t) : n;
383
+ return f.make(e.name, {
384
+ payload: y(Ot(e.key), e.name),
385
+ success: Et(e.payload),
386
+ error: r,
383
387
  stream: !0
384
388
  });
385
- }, Ot = class extends c.TaggedError()("EventPayloadInvalid", {
386
- event: c.String,
387
- message: c.String
388
- }) {}, kt = class extends c.TaggedError()("EventKeyInvalid", {
389
- event: c.String,
390
- message: c.String
391
- }) {}, At = class extends c.TaggedError()("EventPayloadTooLarge", {
392
- event: c.String,
393
- bytes: c.Number,
394
- limit: c.Number
395
- }) {}, jt = (e) => {
389
+ }, At = class extends d.TaggedError()("EventPayloadInvalid", {
390
+ event: d.String,
391
+ message: d.String
392
+ }) {}, jt = class extends d.TaggedError()("EventKeyInvalid", {
393
+ event: d.String,
394
+ message: d.String
395
+ }) {}, Mt = class extends d.TaggedError()("EventPayloadTooLarge", {
396
+ event: d.String,
397
+ bytes: d.Number,
398
+ limit: d.Number
399
+ }) {}, Nt = (e) => {
396
400
  if (typeof e != "object" || !e) return JSON.stringify(e) ?? "null";
397
401
  let t = Object.entries(e).filter(([, e]) => e !== void 0).sort(([e], [t]) => e < t ? -1 : +(e > t));
398
402
  return JSON.stringify(t);
399
- }, Mt = "\0", Nt = (e, t, n) => [
403
+ }, Pt = "\0", Ft = (e, t, n) => [
400
404
  e ?? "~",
401
405
  t,
402
- jt(n)
403
- ].join("\0"), Pt = (e) => {
406
+ Nt(n)
407
+ ].join("\0"), It = (e) => {
404
408
  let [t = "~", n = "", r = ""] = e.split("\0");
405
409
  return {
406
410
  tenantId: t === "~" ? null : t,
407
411
  event: n,
408
412
  key: r
409
413
  };
410
- }, Ft = (e) => e.split("\0").join(" · "), It = (e) => e, Lt = (e) => e, Rt = (e) => {
414
+ }, Lt = (e) => e.split("\0").join(" · "), Rt = (e) => e, zt = (e) => e, Bt = (e) => {
411
415
  let t = e.alias?.trim(), n = e.instance?.trim(), r = t !== void 0 && t !== "" ? t : e.base;
412
416
  return n !== void 0 && n !== "" ? `${r}#${n}` : r;
413
- }, zt = (e) => {
417
+ }, Vt = (e) => {
414
418
  if (e.length !== 0) return (t, n) => e.reduceRight((e, t) => t(e, n), t);
415
- }, Bt = (e, t) => {
416
- let n = Ge.GenericTag(e);
419
+ }, Ht = (e, t) => {
420
+ let n = He.GenericTag(e);
417
421
  return {
418
422
  Tag: n,
419
- Live: Ke.succeed(n, t)
423
+ Live: Ue.succeed(n, t)
420
424
  };
421
- }, Vt = (e, t, n) => {
425
+ }, Ut = (e, t, n) => {
422
426
  if (!t) return { ok: !0 };
423
- let r = K(n);
427
+ let r = G(n);
424
428
  if (!r) return {
425
429
  ok: !1,
426
430
  reason: `cannot parse runningVersion "${n}"`
@@ -428,12 +432,12 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
428
432
  let i = t.trim();
429
433
  if (i === "*" || i === "") return { ok: !0 };
430
434
  let a = i.split(/\s+/).filter((e) => e.length > 0);
431
- for (let i of a) if (!Ht(i, r)) return {
435
+ for (let i of a) if (!Wt(i, r)) return {
432
436
  ok: !1,
433
437
  reason: `plugin "${e}" requires framework ${t}, running ${n}`
434
438
  };
435
439
  return { ok: !0 };
436
- }, K = (e) => {
440
+ }, G = (e) => {
437
441
  let t = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9a-zA-Z.-]+))?$/.exec(e.trim());
438
442
  return t ? {
439
443
  major: Number(t[1]),
@@ -441,275 +445,275 @@ var qe = c.Union(c.String, c.Number), u = c.Record({
441
445
  patch: Number(t[3]),
442
446
  pre: t[4] ?? ""
443
447
  } : null;
444
- }, q = (e, t) => e.major === t.major ? e.minor === t.minor ? e.patch === t.patch ? e.pre && !t.pre ? -1 : !e.pre && t.pre ? 1 : e.pre && t.pre ? e.pre < t.pre ? -1 : +(e.pre > t.pre) : 0 : e.patch - t.patch : e.minor - t.minor : e.major - t.major, Ht = (e, t) => {
448
+ }, K = (e, t) => e.major === t.major ? e.minor === t.minor ? e.patch === t.patch ? e.pre && !t.pre ? -1 : !e.pre && t.pre ? 1 : e.pre && t.pre ? e.pre < t.pre ? -1 : +(e.pre > t.pre) : 0 : e.patch - t.patch : e.minor - t.minor : e.major - t.major, Wt = (e, t) => {
445
449
  if (e === "*") return !0;
446
450
  if (e.startsWith("^")) {
447
- let n = K(e.slice(1));
448
- return !n || t.major !== n.major ? !1 : q(t, n) >= 0;
451
+ let n = G(e.slice(1));
452
+ return !n || t.major !== n.major ? !1 : K(t, n) >= 0;
449
453
  }
450
454
  if (e.startsWith("~")) {
451
- let n = K(e.slice(1));
452
- return !n || t.major !== n.major || t.minor !== n.minor ? !1 : q(t, n) >= 0;
455
+ let n = G(e.slice(1));
456
+ return !n || t.major !== n.major || t.minor !== n.minor ? !1 : K(t, n) >= 0;
453
457
  }
454
458
  let n = /^(>=|<=|>|<)(.+)$/.exec(e);
455
459
  if (n) {
456
- let e = n[1], r = K(n[2]);
460
+ let e = n[1], r = G(n[2]);
457
461
  if (!r) return !1;
458
- let i = q(t, r);
462
+ let i = K(t, r);
459
463
  if (e === ">=") return i >= 0;
460
464
  if (e === "<=") return i <= 0;
461
465
  if (e === ">") return i > 0;
462
466
  if (e === "<") return i < 0;
463
467
  }
464
- let r = K(e);
465
- return r ? q(t, r) === 0 : !1;
466
- }, J = c.Literal("running", "succeeded", "failed", "cancelled", "suspended"), Ut = c.Literal("cancel", "terminate", "abandon"), Wt = c.Struct({
467
- mode: c.String,
468
- dueAt: c.NullOr(c.Number),
469
- retryAfterMs: c.NullOr(c.Number),
470
- intentId: c.NullOr(c.String)
471
- }), Gt = c.Struct({
472
- id: c.String,
473
- workflowName: c.String,
474
- executionId: c.NullOr(c.String),
475
- status: c.Literal("running", "queued", "dropped", "skipped"),
476
- deferral: c.optional(Wt)
477
- }), Y = c.Struct({
478
- id: c.String,
479
- tag: c.String,
480
- executionId: c.String,
481
- status: J,
482
- payload: c.Unknown,
483
- workflowVersion: c.NullOr(c.String),
484
- workflowPatches: c.NullOr(c.Unknown),
485
- output: c.NullOr(c.Unknown),
486
- subject: c.NullOr(c.Unknown),
487
- source: c.NullOr(c.String),
488
- errorTag: c.NullOr(c.String),
489
- errorMessage: c.NullOr(c.String),
490
- cancelled: c.Boolean,
491
- startedAt: c.Date,
492
- completedAt: c.NullOr(c.Date),
493
- durationMs: c.NullOr(c.Number),
494
- traceId: c.NullOr(c.String),
495
- parentExecutionId: c.NullOr(c.String),
496
- parentClosePolicy: c.NullOr(Ut)
497
- }), Kt = c.Struct({
498
- tag: c.optional(c.String),
499
- status: c.optional(J),
500
- limit: c.optional(c.Number)
501
- }), qt = c.Struct({
502
- id: c.String,
503
- runId: c.String,
504
- stepName: c.String,
505
- attempt: c.Number,
506
- status: c.Literal("running", "succeeded", "failed"),
507
- input: c.NullOr(c.Unknown),
508
- retryPolicy: c.NullOr(c.Unknown),
509
- output: c.NullOr(c.Unknown),
510
- errorTag: c.NullOr(c.String),
511
- errorMessage: c.NullOr(c.String),
512
- errorCause: c.NullOr(c.Unknown),
513
- startedAt: c.Date,
514
- completedAt: c.NullOr(c.Date),
515
- durationMs: c.NullOr(c.Number)
516
- }), Jt = c.Struct({
517
- id: c.String,
518
- runId: c.String,
519
- eventType: c.String,
520
- payload: c.NullOr(c.Unknown),
521
- occurredAt: c.Date,
522
- stepName: c.NullOr(c.String),
523
- attempt: c.NullOr(c.Number)
524
- }), Yt = c.Struct({
525
- id: c.String,
526
- name: c.String,
527
- payload: c.Unknown,
528
- source: c.String,
529
- subject: c.NullOr(c.Unknown),
530
- traceId: c.NullOr(c.String),
531
- occurredAt: c.Date
532
- }), Xt = c.Struct({
533
- id: c.String,
534
- eventId: c.String,
535
- eventName: c.String,
536
- triggerId: c.String,
537
- workflowName: c.String,
538
- executionId: c.NullOr(c.String),
539
- status: c.Literal("starting", "started", "skipped", "failed"),
540
- idempotencyKey: c.String,
541
- skipped: c.Boolean,
542
- errorMessage: c.NullOr(c.String),
543
- createdAt: c.Date,
544
- completedAt: c.NullOr(c.Date)
545
- }), Zt = c.Struct({ id: c.String }), X = c.Struct({ runId: c.String }), Qt = c.Struct({
546
- name: c.optional(c.String),
547
- limit: c.optional(c.Number)
548
- }), $t = c.Struct({ eventId: c.String }), Z = c.Struct({
549
- workflowName: c.String,
550
- executionId: c.String
551
- }), en = c.Struct({
552
- id: c.String,
553
- signalName: c.String,
554
- payload: c.optional(c.Unknown)
555
- }), tn = c.Struct({
556
- id: c.String,
557
- updateName: c.String,
558
- payload: c.optional(c.Unknown),
559
- timeoutMs: c.optional(c.Number)
560
- }), nn = c.Struct({
561
- eventId: c.String,
562
- updateId: c.String,
563
- completedEventId: c.String,
564
- result: c.Unknown
565
- }), rn = B({
468
+ let r = G(e);
469
+ return r ? K(t, r) === 0 : !1;
470
+ }, q = d.Literal("running", "succeeded", "failed", "cancelled", "suspended"), Gt = d.Literal("cancel", "terminate", "abandon"), Kt = d.Struct({
471
+ mode: d.String,
472
+ dueAt: d.NullOr(d.Number),
473
+ retryAfterMs: d.NullOr(d.Number),
474
+ intentId: d.NullOr(d.String)
475
+ }), qt = d.Struct({
476
+ id: d.String,
477
+ workflowName: d.String,
478
+ executionId: d.NullOr(d.String),
479
+ status: d.Literal("running", "queued", "dropped", "skipped"),
480
+ deferral: d.optional(Kt)
481
+ }), J = d.Struct({
482
+ id: d.String,
483
+ tag: d.String,
484
+ executionId: d.String,
485
+ status: q,
486
+ payload: d.Unknown,
487
+ workflowVersion: d.NullOr(d.String),
488
+ workflowPatches: d.NullOr(d.Unknown),
489
+ output: d.NullOr(d.Unknown),
490
+ subject: d.NullOr(d.Unknown),
491
+ source: d.NullOr(d.String),
492
+ errorTag: d.NullOr(d.String),
493
+ errorMessage: d.NullOr(d.String),
494
+ cancelled: d.Boolean,
495
+ startedAt: d.Date,
496
+ completedAt: d.NullOr(d.Date),
497
+ durationMs: d.NullOr(d.Number),
498
+ traceId: d.NullOr(d.String),
499
+ parentExecutionId: d.NullOr(d.String),
500
+ parentClosePolicy: d.NullOr(Gt)
501
+ }), Jt = d.Struct({
502
+ tag: d.optional(d.String),
503
+ status: d.optional(q),
504
+ limit: d.optional(d.Number)
505
+ }), Yt = d.Struct({
506
+ id: d.String,
507
+ runId: d.String,
508
+ stepName: d.String,
509
+ attempt: d.Number,
510
+ status: d.Literal("running", "succeeded", "failed"),
511
+ input: d.NullOr(d.Unknown),
512
+ retryPolicy: d.NullOr(d.Unknown),
513
+ output: d.NullOr(d.Unknown),
514
+ errorTag: d.NullOr(d.String),
515
+ errorMessage: d.NullOr(d.String),
516
+ errorCause: d.NullOr(d.Unknown),
517
+ startedAt: d.Date,
518
+ completedAt: d.NullOr(d.Date),
519
+ durationMs: d.NullOr(d.Number)
520
+ }), Xt = d.Struct({
521
+ id: d.String,
522
+ runId: d.String,
523
+ eventType: d.String,
524
+ payload: d.NullOr(d.Unknown),
525
+ occurredAt: d.Date,
526
+ stepName: d.NullOr(d.String),
527
+ attempt: d.NullOr(d.Number)
528
+ }), Zt = d.Struct({
529
+ id: d.String,
530
+ name: d.String,
531
+ payload: d.Unknown,
532
+ source: d.String,
533
+ subject: d.NullOr(d.Unknown),
534
+ traceId: d.NullOr(d.String),
535
+ occurredAt: d.Date
536
+ }), Qt = d.Struct({
537
+ id: d.String,
538
+ eventId: d.String,
539
+ eventName: d.String,
540
+ triggerId: d.String,
541
+ workflowName: d.String,
542
+ executionId: d.NullOr(d.String),
543
+ status: d.Literal("starting", "started", "skipped", "failed"),
544
+ idempotencyKey: d.String,
545
+ skipped: d.Boolean,
546
+ errorMessage: d.NullOr(d.String),
547
+ createdAt: d.Date,
548
+ completedAt: d.NullOr(d.Date)
549
+ }), $t = d.Struct({ id: d.String }), Y = d.Struct({ runId: d.String }), en = d.Struct({
550
+ name: d.optional(d.String),
551
+ limit: d.optional(d.Number)
552
+ }), tn = d.Struct({ eventId: d.String }), X = d.Struct({
553
+ workflowName: d.String,
554
+ executionId: d.String
555
+ }), nn = d.Struct({
556
+ id: d.String,
557
+ signalName: d.String,
558
+ payload: d.optional(d.Unknown)
559
+ }), rn = d.Struct({
560
+ id: d.String,
561
+ updateName: d.String,
562
+ payload: d.optional(d.Unknown),
563
+ timeoutMs: d.optional(d.Number)
564
+ }), an = d.Struct({
565
+ eventId: d.String,
566
+ updateId: d.String,
567
+ completedEventId: d.String,
568
+ result: d.Unknown
569
+ }), on = B({
566
570
  name: "__voltro.workflow.run",
567
571
  source: "_voltro_workflow_runs",
568
- input: Zt,
569
- output: c.Array(Y)
570
- }), an = B({
572
+ input: $t,
573
+ output: d.Array(J)
574
+ }), sn = B({
571
575
  name: "__voltro.workflow.runs",
572
576
  source: "_voltro_workflow_runs",
573
- input: Kt,
574
- output: c.Array(Y)
575
- }), on = B({
577
+ input: Jt,
578
+ output: d.Array(J)
579
+ }), cn = B({
576
580
  name: "__voltro.workflow.run.steps",
577
581
  source: "_voltro_workflow_run_steps",
578
- input: X,
579
- output: c.Array(qt)
580
- }), sn = B({
582
+ input: Y,
583
+ output: d.Array(Yt)
584
+ }), ln = B({
581
585
  name: "__voltro.workflow.run.events",
582
586
  source: "_voltro_workflow_run_events",
583
- input: X,
584
- output: c.Array(Jt)
585
- }), cn = B({
587
+ input: Y,
588
+ output: d.Array(Xt)
589
+ }), un = B({
586
590
  name: "__voltro.workflow.domainEvents",
587
591
  source: "_voltro_workflow_events",
588
- input: Qt,
589
- output: c.Array(Yt)
590
- }), ln = B({
592
+ input: en,
593
+ output: d.Array(Zt)
594
+ }), dn = B({
591
595
  name: "__voltro.workflow.event.deliveries",
592
596
  source: "_voltro_workflow_event_deliveries",
593
- input: $t,
594
- output: c.Array(Xt)
595
- }), un = H({
597
+ input: tn,
598
+ output: d.Array(Qt)
599
+ }), fn = H({
596
600
  name: "__voltro.workflow.cancel",
597
- input: Z,
598
- output: c.Struct({ ok: c.Boolean })
599
- }), dn = H({
601
+ input: X,
602
+ output: d.Struct({ ok: d.Boolean })
603
+ }), pn = H({
600
604
  name: "__voltro.workflow.resume",
601
- input: Z,
602
- output: c.Struct({ ok: c.Boolean })
603
- }), fn = H({
605
+ input: X,
606
+ output: d.Struct({ ok: d.Boolean })
607
+ }), mn = H({
604
608
  name: "__voltro.workflow.signal",
605
- input: en,
606
- output: c.Struct({ eventId: c.String })
607
- }), pn = H({
609
+ input: nn,
610
+ output: d.Struct({ eventId: d.String })
611
+ }), hn = H({
608
612
  name: "__voltro.workflow.update",
609
- input: tn,
610
- output: nn
611
- }), mn = "__voltro.undo.log", hn = "__voltro.undo.apply", gn = "__voltro.undo.redo", _n = c.Struct({
612
- id: c.String,
613
- tag: c.String,
614
- label: c.NullOr(c.String),
615
- undone: c.Boolean,
616
- crossesAction: c.Boolean,
617
- createdAt: c.String
618
- }), vn = class extends c.TaggedError()("UndoNotFound", { invocationId: c.String }) {}, yn = class extends c.TaggedError()("UndoForbidden", { invocationId: c.String }) {}, bn = class extends c.TaggedError()("UndoConflict", {
619
- invocationId: c.String,
620
- reason: c.Literal("conflict", "action")
621
- }) {}, xn = c.Union(vn, yn, bn), Sn = B({
622
- name: mn,
613
+ input: rn,
614
+ output: an
615
+ }), gn = "__voltro.undo.log", Z = "__voltro.undo.apply", _n = "__voltro.undo.redo", vn = d.Struct({
616
+ id: d.String,
617
+ tag: d.String,
618
+ label: d.NullOr(d.String),
619
+ undone: d.Boolean,
620
+ crossesAction: d.Boolean,
621
+ createdAt: d.String
622
+ }), yn = class extends d.TaggedError()("UndoNotFound", { invocationId: d.String }) {}, bn = class extends d.TaggedError()("UndoForbidden", { invocationId: d.String }) {}, xn = class extends d.TaggedError()("UndoConflict", {
623
+ invocationId: d.String,
624
+ reason: d.Literal("conflict", "action")
625
+ }) {}, Sn = d.Union(yn, bn, xn), Cn = B({
626
+ name: gn,
623
627
  source: "_voltro_undo_log",
624
- input: c.Struct({ limit: c.optional(c.Number) }),
625
- output: c.Array(_n),
628
+ input: d.Struct({ limit: d.optional(d.Number) }),
629
+ output: d.Array(vn),
626
630
  openAccess: "subject-scoped by construction: lists only the calling subject's own undoable actions"
627
- }), Cn = V({
628
- name: hn,
629
- input: c.Struct({ invocationId: c.String }),
630
- output: c.Struct({ ok: c.Boolean }),
631
- error: xn,
632
- openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
633
631
  }), wn = V({
634
- name: gn,
635
- input: c.Struct({ invocationId: c.String }),
636
- output: c.Struct({ ok: c.Boolean }),
637
- error: xn,
632
+ name: Z,
633
+ input: d.Struct({ invocationId: d.String }),
634
+ output: d.Struct({ ok: d.Boolean }),
635
+ error: Sn,
636
+ openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
637
+ }), Tn = V({
638
+ name: _n,
639
+ input: d.Struct({ invocationId: d.String }),
640
+ output: d.Struct({ ok: d.Boolean }),
641
+ error: Sn,
638
642
  openAccess: "subject-scoped by construction: redo is per-actor — another subject's invocation fails typed with UndoForbidden"
639
- }), Tn = "__voltro.approvals.pending", En = "__voltro.approvals.decide", Dn = B({
640
- name: Tn,
643
+ }), En = "__voltro.approvals.pending", Dn = "__voltro.approvals.decide", On = B({
644
+ name: En,
641
645
  source: "_voltro_approvals",
642
- input: c.Struct({ limit: c.optional(c.Number) }),
643
- output: c.Array(O),
646
+ input: d.Struct({ limit: d.optional(d.Number) }),
647
+ output: d.Array(j),
644
648
  openAccess: "the answer is scoped to the caller — a row appears only if they requested it or hold its recorded approver scopes, so an anonymous caller sees nothing"
645
- }), On = V({
646
- name: En,
647
- input: c.Struct({
648
- approvalId: c.String,
649
- decision: c.Literal("approve", "reject"),
650
- note: c.optional(c.String)
649
+ }), kn = V({
650
+ name: Dn,
651
+ input: d.Struct({
652
+ approvalId: d.String,
653
+ decision: d.Literal("approve", "reject"),
654
+ note: d.optional(d.String)
651
655
  }),
652
- output: c.Struct({
653
- approvalId: c.String,
654
- status: c.Literal("approved", "rejected")
656
+ output: d.Struct({
657
+ approvalId: d.String,
658
+ status: d.Literal("approved", "rejected")
655
659
  }),
656
- error: D,
660
+ error: A,
657
661
  openAccess: "the approver authority is the PENDING ROW's own recorded scopes (plus an unconditional self-approval refusal), checked in-handler — a descriptor-level scope would have to be the union of every approval-requiring procedure in the app"
658
- }), kn = "__voltro.connections.list", An = "__voltro.connections.start", jn = "__voltro.connections.submitToken", Mn = "__voltro.connections.disconnect", Q = c.Literal("oauth2", "pat"), Nn = c.Literal("disconnected", "connected", "expired", "revoked", "error"), Pn = c.Struct({
659
- connectionId: c.String,
662
+ }), An = "__voltro.connections.list", jn = "__voltro.connections.start", Mn = "__voltro.connections.submitToken", Nn = "__voltro.connections.disconnect", Q = d.Literal("oauth2", "pat"), Pn = d.Literal("disconnected", "connected", "expired", "revoked", "error"), Fn = d.Struct({
663
+ connectionId: d.String,
660
664
  kind: Q,
661
- label: c.String,
662
- status: Nn,
663
- accountId: c.NullOr(c.String),
664
- accountLabel: c.NullOr(c.String),
665
- scopes: c.Array(c.String),
666
- expiresAt: c.NullOr(c.String),
667
- lastError: c.NullOr(c.String),
668
- connectedAt: c.NullOr(c.String)
669
- }), Fn = class extends c.TaggedError()("ConnectionNotDeclared", { connectionId: c.String }) {}, In = class extends c.TaggedError()("ConnectionSubjectRequired", { connectionId: c.String }) {}, Ln = class extends c.TaggedError()("ConnectionKindMismatch", {
670
- connectionId: c.String,
665
+ label: d.String,
666
+ status: Pn,
667
+ accountId: d.NullOr(d.String),
668
+ accountLabel: d.NullOr(d.String),
669
+ scopes: d.Array(d.String),
670
+ expiresAt: d.NullOr(d.String),
671
+ lastError: d.NullOr(d.String),
672
+ connectedAt: d.NullOr(d.String)
673
+ }), In = class extends d.TaggedError()("ConnectionNotDeclared", { connectionId: d.String }) {}, Ln = class extends d.TaggedError()("ConnectionSubjectRequired", { connectionId: d.String }) {}, Rn = class extends d.TaggedError()("ConnectionKindMismatch", {
674
+ connectionId: d.String,
671
675
  expected: Q,
672
676
  actual: Q
673
- }) {}, Rn = class extends c.TaggedError()("ConnectionHandshakeFailed", {
674
- connectionId: c.String,
675
- reason: c.String,
676
- transient: c.Boolean
677
- }) {}, $ = c.Union(Fn, In, Ln, Rn), zn = B({
678
- name: kn,
677
+ }) {}, zn = class extends d.TaggedError()("ConnectionHandshakeFailed", {
678
+ connectionId: d.String,
679
+ reason: d.String,
680
+ transient: d.Boolean
681
+ }) {}, $ = d.Union(In, Ln, Rn, zn), Bn = B({
682
+ name: An,
679
683
  source: "_voltro_connections",
680
- input: c.Struct({}),
681
- output: c.Array(Pn),
684
+ input: d.Struct({}),
685
+ output: d.Array(Fn),
682
686
  openAccess: "self-scoped read: projects the declared connections for the calling subject only (its own connect/disconnect state)"
683
- }), Bn = H({
684
- name: An,
685
- input: c.Struct({
686
- connectionId: c.String,
687
- redirectTo: c.optional(c.String)
687
+ }), Vn = H({
688
+ name: jn,
689
+ input: d.Struct({
690
+ connectionId: d.String,
691
+ redirectTo: d.optional(d.String)
688
692
  }),
689
- output: c.Struct({
690
- authorizeUrl: c.String,
691
- state: c.String
693
+ output: d.Struct({
694
+ authorizeUrl: d.String,
695
+ state: d.String
692
696
  }),
693
697
  error: $,
694
698
  openAccess: "self-service: begins an oauth handshake that stores a credential for the calling subject only; anonymous callers fail typed with ConnectionSubjectRequired"
695
- }), Vn = V({
696
- name: jn,
697
- input: c.Struct({
698
- connectionId: c.String,
699
- token: c.String
699
+ }), Hn = V({
700
+ name: Mn,
701
+ input: d.Struct({
702
+ connectionId: d.String,
703
+ token: d.String
700
704
  }),
701
- output: c.Struct({ ok: c.Boolean }),
705
+ output: d.Struct({ ok: d.Boolean }),
702
706
  error: $,
703
707
  openAccess: "self-service: stores a pasted token as the calling subject's own credential; anonymous callers fail typed with ConnectionSubjectRequired"
704
- }), Hn = V({
705
- name: Mn,
706
- input: c.Struct({ connectionId: c.String }),
707
- output: c.Struct({ ok: c.Boolean }),
708
+ }), Un = V({
709
+ name: Nn,
710
+ input: d.Struct({ connectionId: d.String }),
711
+ output: d.Struct({ ok: d.Boolean }),
708
712
  error: $,
709
713
  openAccess: "self-service: deletes only the calling subject's own credential row for this connection"
710
- }), Un = (e) => {
714
+ }), Wn = (e) => {
711
715
  let t = e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : 0;
712
716
  return Number.isNaN(t) ? 0 : t;
713
- }, Wn = 1;
717
+ }, Gn = 1;
714
718
  //#endregion
715
- export { n as ADMIN_SCOPE, Ne as APIKEY_ISSUE_ORG_SCOPE, ce as APIKEY_ISSUE_OTHER_SCOPE, i as APIKEY_ISSUE_SELF_SCOPE, En as APPROVALS_DECIDE_TAG, Tn as APPROVALS_PENDING_TAG, D as ApprovalDecisionErrors, E as ApprovalErrors, S as ApprovalExpired, w as ApprovalForbidden, y as ApprovalNotFound, C as ApprovalNotPending, x as ApprovalRejected, v as ApprovalRequired, b as ApprovalSelfApproval, T as ApprovalUnavailable, Ae as AuthMiddleware, _ as BusinessRuleViolation, kn as CONNECTIONS_LIST_TAG, Mn as CONNECTION_DISCONNECT_TAG, An as CONNECTION_START_TAG, jn as CONNECTION_SUBMIT_TOKEN_TAG, Rn as ConnectionHandshakeFailed, Te as ConnectionInfo, Oe as ConnectionInfoMiddleware, Q as ConnectionKind, Ln as ConnectionKindMismatch, Fn as ConnectionNotDeclared, Pn as ConnectionState, Nn as ConnectionStatus, In as ConnectionSubjectRequired, be as DEFAULT_SCOPE_CACHE_MAX_ENTRIES, pe as DEFAULT_SCOPE_CACHE_TTL_MS, Mt as EVENT_ROUTE_SEP, kt as EventKeyInvalid, Ot as EventPayloadInvalid, At as EventPayloadTooLarge, Ee as IMPERSONATION_METADATA_KEY, vt as MAX_EVENT_ENVELOPE_BYTES, Wn as PROTOCOL_VERSION, O as PendingApproval, k as REACTIVITY_CHANNEL_PREFIX, r as ScopeError, ke as Subject, he as SubjectIdentity, Ce as SubjectService, hn as UNDO_APPLY_TAG, mn as UNDO_LOG_TAG, gn as UNDO_REDO_TAG, je as Unauthenticated, bn as UndoConflict, yn as UndoForbidden, _n as UndoLogEntry, vn as UndoNotFound, Z as WorkflowControlInputSchema, Yt as WorkflowDomainEventRowSchema, Qt as WorkflowDomainEventsInputSchema, $t as WorkflowEventDeliveriesInputSchema, Xt as WorkflowEventDeliveryRowSchema, Ut as WorkflowParentClosePolicySchema, Jt as WorkflowRunEventRowSchema, Gt as WorkflowRunHandleSchema, Zt as WorkflowRunRefSchema, Y as WorkflowRunRowSchema, J as WorkflowRunStatusSchema, qt as WorkflowRunStepRowSchema, X as WorkflowRunTableRefSchema, Kt as WorkflowRunsInputSchema, en as WorkflowSignalInputSchema, Wt as WorkflowStartDeferralSchema, tn as WorkflowUpdateInputSchema, nn as WorkflowUpdateResultSchema, pt as actionToRpc, ie as advisoryResourceGuardWarning, ge as anonymousSubject, Qe as applyRowPatch, _e as applyScopeDecision, On as approvalsDecideDescriptor, Dn as approvalsPendingQueryDescriptor, De as assertAuthenticated, He as beginIdempotent, Vt as checkFrameworkCompat, Se as checkGuards, e as checkGuardsEffect, we as composeAuthStrategies, zt as composeRpcInterceptors, Hn as connectionDisconnectDescriptor, Bn as connectionStartDescriptor, Vn as connectionSubmitTokenDescriptor, zn as connectionsListQueryDescriptor, F as declaredReactivityChannelKeys, H as defineAction, bt as defineEvent, V as defineMutation, It as definePlugin, Lt as definePluginRoute, Bt as definePluginService, B as defineQuery, lt as defineStream, Xe as diffRows, xe as effectiveScopes, jt as encodeEventKey, ht as errorTag, Ct as eventAttached, xt as eventEnvelope, St as eventGap, Tt as eventResumePoint, Nt as eventRoute, wt as eventStreamEvent, Et as eventSubscribeInput, Dt as eventToRpc, ze as failIdempotent, ne as findAdvisoryResourceGuards, Le as finishIdempotent, Ft as formatEventRoute, re as getPolicyGuardResolver, ae as getResourceScopeResolver, ct as hasAccessDecision, ye as hasCallbackRoutes, a as hasEffectiveScope, te as hasScope, p as idToPath, Ve as idempotencyScope, yt as isEventDescriptor, Ze as isIdKeyed, s as isOpenAccess, oe as isPolicyCheck, st as isPolicyGuard, N as isReactivityChannel, P as isReactivityChannelKey, ve as isSystemSubject, at as isWireReachable, fe as makeScopeCache, Ue as memoryIdempotencyStore, Ie as missingAccessDecision, G as mutationToRpc, _t as normalizeDescriptor, nt as normalizeSource, t as openAccessSpec, Pt as parseEventRoute, Je as pathToId, Rt as pluginInstanceName, it as publishReactivity, We as publishServerError, ft as queryToRpc, Me as rawImpersonationMark, tt as reactivityChannel, ue as requireScope, d as rowPatchOpSchema, f as rowPatchSchema, Fe as scopeCacheKey, ee as setEffectiveScopes, le as setPolicyGuardResolver, de as setResourceScopeResolver, L as sourceKeys, mt as streamToRpc, g as strictInput, me as subjectIdentity, o as subjectScopes, Be as subscribeServerErrors, h as subscriptionEvent, Pe as systemSubject, se as tenantScopedSubject, gt as toRpc, Un as tsMs, rt as undeclaredChannelKeys, Cn as undoApplyDescriptor, Sn as undoLogQueryDescriptor, wn as undoRedoDescriptor, un as workflowCancelDescriptor, cn as workflowDomainEventsQueryDescriptor, ln as workflowEventDeliveriesQueryDescriptor, dn as workflowResumeDescriptor, sn as workflowRunEventsQueryDescriptor, rn as workflowRunQueryDescriptor, on as workflowRunStepsQueryDescriptor, an as workflowRunsQueryDescriptor, fn as workflowSignalDescriptor, pn as workflowUpdateDescriptor, Re as wsMutationIdempotencyScope };
719
+ export { Oe as ADMIN_SCOPE, Ce as APIKEY_ISSUE_ORG_SCOPE, Ee as APIKEY_ISSUE_OTHER_SCOPE, ve as APIKEY_ISSUE_SELF_SCOPE, Dn as APPROVALS_DECIDE_TAG, En as APPROVALS_PENDING_TAG, A as ApprovalDecisionErrors, k as ApprovalErrors, T as ApprovalExpired, D as ApprovalForbidden, S as ApprovalNotFound, E as ApprovalNotPending, w as ApprovalRejected, x as ApprovalRequired, C as ApprovalSelfApproval, O as ApprovalUnavailable, Ae as AuthMiddleware, b as BusinessRuleViolation, An as CONNECTIONS_LIST_TAG, Nn as CONNECTION_DISCONNECT_TAG, jn as CONNECTION_START_TAG, Mn as CONNECTION_SUBMIT_TOKEN_TAG, zn as ConnectionHandshakeFailed, ce as ConnectionInfo, i as ConnectionInfoMiddleware, Q as ConnectionKind, Rn as ConnectionKindMismatch, In as ConnectionNotDeclared, Fn as ConnectionState, Pn as ConnectionStatus, Ln as ConnectionSubjectRequired, r as DEFAULT_SCOPE_CACHE_MAX_ENTRIES, ie as DEFAULT_SCOPE_CACHE_TTL_MS, Pt as EVENT_ROUTE_SEP, jt as EventKeyInvalid, At as EventPayloadInvalid, Mt as EventPayloadTooLarge, be as IMPERSONATION_METADATA_KEY, bt as MAX_EVENT_ENVELOPE_BYTES, Gn as PROTOCOL_VERSION, j as PendingApproval, M as REACTIVITY_CHANNEL_PREFIX, c as ScopeError, e as Subject, ye as SubjectIdentity, re as SubjectService, Z as UNDO_APPLY_TAG, gn as UNDO_LOG_TAG, _n as UNDO_REDO_TAG, s as Unauthenticated, xn as UndoConflict, bn as UndoForbidden, vn as UndoLogEntry, yn as UndoNotFound, X as WorkflowControlInputSchema, Zt as WorkflowDomainEventRowSchema, en as WorkflowDomainEventsInputSchema, tn as WorkflowEventDeliveriesInputSchema, Qt as WorkflowEventDeliveryRowSchema, Gt as WorkflowParentClosePolicySchema, Xt as WorkflowRunEventRowSchema, qt as WorkflowRunHandleSchema, $t as WorkflowRunRefSchema, J as WorkflowRunRowSchema, q as WorkflowRunStatusSchema, Yt as WorkflowRunStepRowSchema, Y as WorkflowRunTableRefSchema, Jt as WorkflowRunsInputSchema, nn as WorkflowSignalInputSchema, Kt as WorkflowStartDeferralSchema, rn as WorkflowUpdateInputSchema, an as WorkflowUpdateResultSchema, ht as actionToRpc, we as advisoryResourceGuardWarning, ae as anonymousSubject, Ye as applyRowPatch, a as applyScopeDecision, kn as approvalsDecideDescriptor, On as approvalsPendingQueryDescriptor, te as assertAuthenticated, ze as beginIdempotent, Ut as checkFrameworkCompat, De as checkGuards, me as checkGuardsEffect, ne as composeAuthStrategies, Vt as composeRpcInterceptors, Un as connectionDisconnectDescriptor, Vn as connectionStartDescriptor, Hn as connectionSubmitTokenDescriptor, Bn as connectionsListQueryDescriptor, et as declaredReactivityChannelKeys, H as defineAction, St as defineEvent, V as defineMutation, Rt as definePlugin, zt as definePluginRoute, Ht as definePluginService, B as defineQuery, lt as defineStream, qe as diffRows, xe as effectiveScopes, Nt as encodeEventKey, _t as errorTag, Tt as eventAttached, Ct as eventEnvelope, wt as eventGap, Dt as eventResumePoint, Ft as eventRoute, Et as eventStreamEvent, Ot as eventSubscribeInput, kt as eventToRpc, Ie as failIdempotent, ke as findAdvisoryResourceGuards, Pe as finishIdempotent, Lt as formatEventRoute, he as getPolicyGuardResolver, ge as getResourceScopeResolver, ct as hasAccessDecision, oe as hasCallbackRoutes, Te as hasEffectiveScope, Se as hasScope, g as idToPath, Re as idempotencyScope, xt as isEventDescriptor, Je as isIdKeyed, l as isOpenAccess, _e as isPolicyCheck, st as isPolicyGuard, I as isReactivityChannel, $e as isReactivityChannelKey, Ne as isSystemSubject, at as isWireReachable, t as makeScopeCache, Be as memoryIdempotencyStore, fe as missingAccessDecision, mt as mutationToRpc, yt as normalizeDescriptor, nt as normalizeSource, u as openAccessSpec, It as parseEventRoute, Ge as pathToId, Bt as pluginInstanceName, it as publishReactivity, Ve as publishServerError, pt as queryToRpc, ue as rawImpersonationMark, Qe as reactivityChannel, Me as requireScope, m as rowPatchOpSchema, h as rowPatchSchema, ee as scopeCacheKey, pe as setEffectiveScopes, je as setPolicyGuardResolver, se as setResourceScopeResolver, tt as sourceKeys, gt as streamToRpc, y as strictInput, le as subjectIdentity, n as subjectScopes, Le as subscribeServerErrors, v as subscriptionEvent, de as systemSubject, o as tenantScopedSubject, vt as toRpc, Wn as tsMs, rt as undeclaredChannelKeys, wn as undoApplyDescriptor, Cn as undoLogQueryDescriptor, Tn as undoRedoDescriptor, W as wireErrorUnion, fn as workflowCancelDescriptor, un as workflowDomainEventsQueryDescriptor, dn as workflowEventDeliveriesQueryDescriptor, pn as workflowResumeDescriptor, ln as workflowRunEventsQueryDescriptor, on as workflowRunQueryDescriptor, cn as workflowRunStepsQueryDescriptor, sn as workflowRunsQueryDescriptor, mn as workflowSignalDescriptor, hn as workflowUpdateDescriptor, Fe as wsMutationIdempotencyScope };