@voltro/protocol 0.64.0 → 0.65.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/CHANGELOG.md +67 -0
- package/dist/index.d.ts +75 -6
- package/dist/index.js +483 -476
- package/dist/rest.d.ts +24 -2
- package/dist/rest.js +1 -1
- package/dist/{scopes-D9t3tYc7.js → scopes-C86BDyNJ.js} +33 -19
- package/dist/session.js +6 -6
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
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 s, I as ee, L as te, M as ne, N as
|
|
2
|
-
import { a as Ne, c as Pe, i as
|
|
3
|
-
import { Context as He, Layer as Ue, Schema as
|
|
4
|
-
import { Rpc as
|
|
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 s, I as c, K as ee, L as te, M as ne, N as re, O as ie, P as l, R as ae, S as oe, T as se, U as ce, V as le, W as ue, _ as de, a as u, b as fe, c as pe, d as me, f as he, g as d, h as ge, i as _e, j as ve, k as ye, l as be, m as xe, n as Se, o as Ce, p as we, r as Te, s as Ee, t as De, u as Oe, v as ke, w as Ae, x as je, y as f, z as Me } from "./scopes-C86BDyNJ.js";
|
|
2
|
+
import { a as Ne, c as Pe, i as p, l as Fe, n as Ie, o as Le, r as Re, s as ze, t as Be, u as Ve } from "./serverErrorBus-QQgyq6fV.js";
|
|
3
|
+
import { Context as He, Layer as Ue, Schema as m } from "effect";
|
|
4
|
+
import { Rpc as h } from "@effect/rpc";
|
|
5
5
|
import { VersionConflict as We } from "@voltro/database/wire";
|
|
6
6
|
//#region src/rowPatch.ts
|
|
7
|
-
var Ge =
|
|
8
|
-
key:
|
|
9
|
-
value:
|
|
10
|
-
}).pipe(
|
|
11
|
-
op:
|
|
12
|
-
path:
|
|
13
|
-
value:
|
|
14
|
-
}),
|
|
15
|
-
op:
|
|
16
|
-
path:
|
|
17
|
-
value:
|
|
18
|
-
}),
|
|
19
|
-
op:
|
|
20
|
-
path:
|
|
21
|
-
}),
|
|
22
|
-
op:
|
|
23
|
-
path:
|
|
24
|
-
value:
|
|
25
|
-
key:
|
|
26
|
-
value:
|
|
7
|
+
var Ge = m.Union(m.String, m.Number), g = m.Record({
|
|
8
|
+
key: m.String,
|
|
9
|
+
value: m.Unknown
|
|
10
|
+
}).pipe(m.filter((e) => "id" in e, { message: () => "patch row must carry an id" })), _ = m.Union(m.Struct({
|
|
11
|
+
op: m.Literal("add"),
|
|
12
|
+
path: m.String,
|
|
13
|
+
value: g
|
|
14
|
+
}), m.Struct({
|
|
15
|
+
op: m.Literal("replace"),
|
|
16
|
+
path: m.String,
|
|
17
|
+
value: g
|
|
18
|
+
}), m.Struct({
|
|
19
|
+
op: m.Literal("remove"),
|
|
20
|
+
path: m.String
|
|
21
|
+
}), m.Struct({
|
|
22
|
+
op: m.Literal("mergeCells"),
|
|
23
|
+
path: m.String,
|
|
24
|
+
value: m.Record({
|
|
25
|
+
key: m.String,
|
|
26
|
+
value: m.Unknown
|
|
27
27
|
})
|
|
28
|
-
})),
|
|
29
|
-
ops:
|
|
30
|
-
order:
|
|
31
|
-
}),
|
|
28
|
+
})), v = m.Struct({
|
|
29
|
+
ops: m.Array(_),
|
|
30
|
+
order: m.Array(Ge)
|
|
31
|
+
}), y = (e) => `/${String(e).replace(/~/g, "~0").replace(/\//g, "~1")}`, b = (e) => (e.startsWith("/") ? e.slice(1) : e).replace(/~1/g, "/").replace(/~0/g, "~"), x = (e) => {
|
|
32
32
|
let t = Object.keys(e).sort(), n = {};
|
|
33
33
|
for (let r of t) n[r] = e[r];
|
|
34
34
|
return JSON.stringify(n);
|
|
35
|
-
},
|
|
35
|
+
}, S = (e, t) => x(e) === x(t), Ke = (e, t) => {
|
|
36
36
|
if (e instanceof Uint8Array && t instanceof Uint8Array) {
|
|
37
37
|
if (e.length !== t.length) return !1;
|
|
38
38
|
for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1;
|
|
39
39
|
return !0;
|
|
40
40
|
}
|
|
41
|
-
return
|
|
41
|
+
return x({
|
|
42
42
|
id: 0,
|
|
43
43
|
v: e
|
|
44
|
-
}) ===
|
|
44
|
+
}) === x({
|
|
45
45
|
id: 0,
|
|
46
46
|
v: t
|
|
47
47
|
});
|
|
48
48
|
}, qe = (e, t, n = {}) => {
|
|
49
49
|
let r = /* @__PURE__ */ new Map();
|
|
50
50
|
for (let t of e) r.set(t.id, t);
|
|
51
|
-
let i = [], a = [], o = /* @__PURE__ */ new Set(), s = n.crdt,
|
|
51
|
+
let i = [], a = [], o = /* @__PURE__ */ new Set(), s = n.crdt, c = (e, t) => {
|
|
52
52
|
if (s === void 0 || s.columns.size === 0) return;
|
|
53
53
|
let n = {}, r = !1;
|
|
54
54
|
for (let i of s.columns) {
|
|
@@ -70,29 +70,29 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
70
70
|
let t = r.get(e.id);
|
|
71
71
|
if (t === void 0) i.push({
|
|
72
72
|
op: "add",
|
|
73
|
-
path:
|
|
73
|
+
path: y(e.id),
|
|
74
74
|
value: e
|
|
75
75
|
});
|
|
76
|
-
else if (!
|
|
77
|
-
let n =
|
|
76
|
+
else if (!S(t, e)) {
|
|
77
|
+
let n = c(t, e);
|
|
78
78
|
n === void 0 ? i.push({
|
|
79
79
|
op: "replace",
|
|
80
|
-
path:
|
|
80
|
+
path: y(e.id),
|
|
81
81
|
value: e
|
|
82
|
-
}) : (
|
|
82
|
+
}) : (S(Object.fromEntries(Object.entries(t).filter(([e]) => !s.columns.has(e))), n.scalars) || i.push({
|
|
83
83
|
op: "replace",
|
|
84
|
-
path:
|
|
84
|
+
path: y(e.id),
|
|
85
85
|
value: n.scalars
|
|
86
86
|
}), i.push({
|
|
87
87
|
op: "mergeCells",
|
|
88
|
-
path:
|
|
88
|
+
path: y(e.id),
|
|
89
89
|
value: n.merges
|
|
90
90
|
}));
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
for (let t of e) o.has(t.id) || i.push({
|
|
94
94
|
op: "remove",
|
|
95
|
-
path:
|
|
95
|
+
path: y(t.id)
|
|
96
96
|
});
|
|
97
97
|
return {
|
|
98
98
|
ops: i,
|
|
@@ -106,7 +106,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
106
106
|
for (let t of e) r.set(t.id, t);
|
|
107
107
|
for (let e of t.ops) {
|
|
108
108
|
if (e.op === "mergeCells") {
|
|
109
|
-
let t =
|
|
109
|
+
let t = b(e.path), i = r.get(t) ?? r.get(Number(t)), a = r.has(t) ? t : Number(t);
|
|
110
110
|
if (i === void 0) continue;
|
|
111
111
|
let o = { ...i };
|
|
112
112
|
for (let [t, r] of Object.entries(e.value)) o[t] = n.mergeCell === void 0 ? r : n.mergeCell(t, i[t], r);
|
|
@@ -121,56 +121,56 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
121
121
|
t !== void 0 && i.push(t);
|
|
122
122
|
}
|
|
123
123
|
return i;
|
|
124
|
-
},
|
|
125
|
-
_tag:
|
|
126
|
-
revision:
|
|
124
|
+
}, C = (e) => m.Union(m.Struct({
|
|
125
|
+
_tag: m.Literal("snapshot"),
|
|
126
|
+
revision: m.Number,
|
|
127
127
|
data: e,
|
|
128
|
-
computed:
|
|
129
|
-
}),
|
|
130
|
-
_tag:
|
|
131
|
-
revision:
|
|
132
|
-
emittedAt:
|
|
133
|
-
patch:
|
|
134
|
-
}),
|
|
135
|
-
_tag:
|
|
136
|
-
error:
|
|
137
|
-
revision:
|
|
138
|
-
})),
|
|
128
|
+
computed: m.optional(m.Boolean)
|
|
129
|
+
}), m.Struct({
|
|
130
|
+
_tag: m.Literal("delta"),
|
|
131
|
+
revision: m.Number,
|
|
132
|
+
emittedAt: m.Number,
|
|
133
|
+
patch: v
|
|
134
|
+
}), m.Struct({
|
|
135
|
+
_tag: m.Literal("error"),
|
|
136
|
+
error: m.Unknown,
|
|
137
|
+
revision: m.optional(m.Number)
|
|
138
|
+
})), w = (e, t) => {
|
|
139
139
|
let n = `${e ?? "this procedure"} input`;
|
|
140
140
|
return t === !0 ? `${n} (guarded — the guard did NOT run: the payload failed to decode first, so this says nothing about access)` : n;
|
|
141
141
|
}, Xe = (e) => {
|
|
142
142
|
let t = e.ast;
|
|
143
143
|
return t._tag === "TypeLiteral" && (t.propertySignatures?.length ?? 0) === 0 && (t.indexSignatures?.length ?? 0) === 0;
|
|
144
|
-
},
|
|
145
|
-
let r =
|
|
144
|
+
}, T = (e, t, n) => {
|
|
145
|
+
let r = w(t, n), i = e.annotations({
|
|
146
146
|
parseOptions: { onExcessProperty: "error" },
|
|
147
147
|
parseIssueTitle: () => r
|
|
148
148
|
});
|
|
149
|
-
return Xe(e) ?
|
|
150
|
-
},
|
|
151
|
-
rule:
|
|
152
|
-
params:
|
|
153
|
-
key:
|
|
154
|
-
value:
|
|
149
|
+
return Xe(e) ? m.filter((e) => typeof e == "object" && e && Object.keys(e).length > 0 ? `this procedure declares no input; received: ${Object.keys(e).join(", ")}` : void 0)(i).annotations({ identifier: r }) : i;
|
|
150
|
+
}, E = class extends m.TaggedError()("BusinessRuleViolation", {
|
|
151
|
+
rule: m.String,
|
|
152
|
+
params: m.optional(m.Record({
|
|
153
|
+
key: m.String,
|
|
154
|
+
value: m.Unknown
|
|
155
155
|
})),
|
|
156
|
-
field:
|
|
157
|
-
message:
|
|
158
|
-
severity:
|
|
159
|
-
}) {},
|
|
160
|
-
field:
|
|
161
|
-
message:
|
|
162
|
-
params:
|
|
163
|
-
key:
|
|
164
|
-
value:
|
|
156
|
+
field: m.optional(m.String),
|
|
157
|
+
message: m.optional(m.String),
|
|
158
|
+
severity: m.Literal("error", "warning")
|
|
159
|
+
}) {}, D = m.Struct({
|
|
160
|
+
field: m.String,
|
|
161
|
+
message: m.String,
|
|
162
|
+
params: m.optional(m.Record({
|
|
163
|
+
key: m.String,
|
|
164
|
+
value: m.Unknown
|
|
165
165
|
}))
|
|
166
|
-
}),
|
|
167
|
-
field:
|
|
168
|
-
message:
|
|
169
|
-
params:
|
|
170
|
-
key:
|
|
171
|
-
value:
|
|
166
|
+
}), O = class extends m.TaggedError()("ValidationError", {
|
|
167
|
+
field: m.String,
|
|
168
|
+
message: m.String,
|
|
169
|
+
params: m.optional(m.Record({
|
|
170
|
+
key: m.String,
|
|
171
|
+
value: m.Unknown
|
|
172
172
|
}))
|
|
173
|
-
}) {},
|
|
173
|
+
}) {}, Ze = class extends m.TaggedError()("ValidationErrors", { issues: m.Array(D).pipe(m.minItems(1)) }) {}, Qe = (e) => {
|
|
174
174
|
if (typeof e != "object" || !e) return [];
|
|
175
175
|
let t = e._tag;
|
|
176
176
|
if (t === "ValidationError") {
|
|
@@ -196,49 +196,49 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
196
196
|
}];
|
|
197
197
|
}
|
|
198
198
|
return [];
|
|
199
|
-
},
|
|
200
|
-
approvalId:
|
|
201
|
-
procedure:
|
|
202
|
-
expiresAt:
|
|
203
|
-
requiredScopes:
|
|
204
|
-
reason:
|
|
205
|
-
created:
|
|
206
|
-
}) {},
|
|
207
|
-
approvalId:
|
|
208
|
-
subjectId:
|
|
209
|
-
}) {},
|
|
210
|
-
approvalId:
|
|
211
|
-
decidedBy:
|
|
212
|
-
note:
|
|
213
|
-
}) {}, k = class extends
|
|
214
|
-
approvalId:
|
|
215
|
-
expiredAt:
|
|
216
|
-
}) {},
|
|
217
|
-
approvalId:
|
|
218
|
-
status:
|
|
219
|
-
}) {},
|
|
220
|
-
approvalId:
|
|
221
|
-
required:
|
|
222
|
-
message:
|
|
223
|
-
}) {}, A = class extends
|
|
224
|
-
procedure:
|
|
225
|
-
message:
|
|
226
|
-
}) {},
|
|
227
|
-
id:
|
|
228
|
-
procedure:
|
|
229
|
-
kind:
|
|
230
|
-
requestedBy:
|
|
231
|
-
status:
|
|
232
|
-
reason:
|
|
233
|
-
requiredScopes:
|
|
234
|
-
requestedAt:
|
|
235
|
-
expiresAt:
|
|
236
|
-
decidedBy:
|
|
237
|
-
decidedAt:
|
|
238
|
-
note:
|
|
239
|
-
relation:
|
|
240
|
-
}), j = "channel:",
|
|
241
|
-
if (!
|
|
199
|
+
}, $e = class extends m.TaggedError()("ApprovalRequired", {
|
|
200
|
+
approvalId: m.String,
|
|
201
|
+
procedure: m.String,
|
|
202
|
+
expiresAt: m.String,
|
|
203
|
+
requiredScopes: m.Array(m.String),
|
|
204
|
+
reason: m.NullOr(m.String),
|
|
205
|
+
created: m.Boolean
|
|
206
|
+
}) {}, et = class extends m.TaggedError()("ApprovalNotFound", { approvalId: m.String }) {}, tt = class extends m.TaggedError()("ApprovalSelfApproval", {
|
|
207
|
+
approvalId: m.String,
|
|
208
|
+
subjectId: m.NullOr(m.String)
|
|
209
|
+
}) {}, nt = class extends m.TaggedError()("ApprovalRejected", {
|
|
210
|
+
approvalId: m.String,
|
|
211
|
+
decidedBy: m.NullOr(m.String),
|
|
212
|
+
note: m.NullOr(m.String)
|
|
213
|
+
}) {}, k = class extends m.TaggedError()("ApprovalExpired", {
|
|
214
|
+
approvalId: m.String,
|
|
215
|
+
expiredAt: m.String
|
|
216
|
+
}) {}, rt = class extends m.TaggedError()("ApprovalNotPending", {
|
|
217
|
+
approvalId: m.String,
|
|
218
|
+
status: m.String
|
|
219
|
+
}) {}, it = class extends m.TaggedError()("ApprovalForbidden", {
|
|
220
|
+
approvalId: m.String,
|
|
221
|
+
required: m.NullOr(m.String),
|
|
222
|
+
message: m.String
|
|
223
|
+
}) {}, A = class extends m.TaggedError()("ApprovalUnavailable", {
|
|
224
|
+
procedure: m.String,
|
|
225
|
+
message: m.String
|
|
226
|
+
}) {}, at = m.Union($e, nt, k, A), ot = m.Union(et, tt, k, rt, it, A), st = m.Struct({
|
|
227
|
+
id: m.String,
|
|
228
|
+
procedure: m.String,
|
|
229
|
+
kind: m.Literal("mutation", "action"),
|
|
230
|
+
requestedBy: m.NullOr(m.String),
|
|
231
|
+
status: m.Literal("pending", "approved", "rejected", "expired", "consumed"),
|
|
232
|
+
reason: m.NullOr(m.String),
|
|
233
|
+
requiredScopes: m.Array(m.String),
|
|
234
|
+
requestedAt: m.String,
|
|
235
|
+
expiresAt: m.String,
|
|
236
|
+
decidedBy: m.NullOr(m.String),
|
|
237
|
+
decidedAt: m.NullOr(m.String),
|
|
238
|
+
note: m.NullOr(m.String),
|
|
239
|
+
relation: m.Literal("to-decide", "requested")
|
|
240
|
+
}), j = "channel:", ct = Symbol.for("@voltro/protocol/reactivityChannels"), lt = globalThis, M = lt[ct] ?? (lt[ct] = /* @__PURE__ */ new Map()), ut = /^[a-z][a-z0-9-]*(\.[a-z0-9-]+)*$/, dt = (e) => {
|
|
241
|
+
if (!ut.test(e)) throw Error(`reactivityChannel('${e}'): invalid channel name.\n Use lowercase kebab segments separated by dots — \`presence\`, \`job-queue\`,
|
|
242
242
|
\`billing.usage\`. A \`:\` is refused because it is the namespace separator in
|
|
243
243
|
the routing key (\`${j}<name>\`), and an uppercase letter is\n refused because a key that differs only by case reads as one channel and
|
|
244
244
|
routes as two.`);
|
|
@@ -251,14 +251,14 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
251
251
|
toString: () => n
|
|
252
252
|
});
|
|
253
253
|
return M.set(e, r), r;
|
|
254
|
-
},
|
|
255
|
-
let t =
|
|
256
|
-
for (let r of e) for (let e of
|
|
254
|
+
}, ft = (e) => typeof e == "object" && !!e && e.kind === "reactivity-channel", pt = (e) => e.startsWith(j), mt = () => new Set([...M.values()].map((e) => e.key)), N = (e) => ft(e) ? e.key : e, ht = (e) => e === void 0 ? [] : Array.isArray(e) ? e.map(N) : [N(e)], gt = (e) => e === void 0 ? void 0 : Array.isArray(e) ? e.map(N) : N(e), _t = (e) => {
|
|
255
|
+
let t = mt(), n = [];
|
|
256
|
+
for (let r of e) for (let e of ht(r.source)) !pt(e) || t.has(e) || n.push({
|
|
257
257
|
procedure: r.name,
|
|
258
258
|
key: e
|
|
259
259
|
});
|
|
260
260
|
return n;
|
|
261
|
-
},
|
|
261
|
+
}, vt = (e, t) => {
|
|
262
262
|
let n = e?.injectExternalChange;
|
|
263
263
|
return n !== void 0 && (n.call(e, {
|
|
264
264
|
table: t.key,
|
|
@@ -267,8 +267,8 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
267
267
|
old: {},
|
|
268
268
|
origin: "inline"
|
|
269
269
|
}), !0);
|
|
270
|
-
},
|
|
271
|
-
if (
|
|
270
|
+
}, yt = (e) => e.internal !== !0, P = (e) => {
|
|
271
|
+
if (bt(e), Array.isArray(e.guards) && e.guards.length === 0) throw Error(`${e.name}: \`guards: []\` is empty, so it enforces nothing — but it reads\n at the call site as if this procedure were protected. Omit the field for an
|
|
272
272
|
unguarded procedure, or list the scopes required to call it.`);
|
|
273
273
|
let t = typeof e.source == "string" ? [e.source] : Array.isArray(e.source) ? e.source : void 0;
|
|
274
274
|
if (t !== void 0 && (t.length === 0 || t.some((e) => String(e).trim() === ""))) throw Error(`${e.name}: \`source\` is empty, so this query declares reactivity and\n subscribes to nothing — it serves one snapshot and never updates again,
|
|
@@ -285,7 +285,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
285
285
|
let n = [e.publicApi === void 0 ? void 0 : "publicApi", e.exposeAsTool === void 0 ? void 0 : "exposeAsTool"].filter((e) => e !== void 0);
|
|
286
286
|
if (n.length === 0) return e;
|
|
287
287
|
throw Error(`${e.name}: \`internal: true\` cannot be combined with ${n.map((e) => `\`${e}\``).join(" or ")}. \`internal\` takes the procedure OFF the wire; those put it back ON a different one (${n.includes("publicApi") ? "a REST route" : "an agent tool"}), and that surface is projected without consulting the flag — so the procedure would be unreachable from your client and reachable from the internet. Drop \`internal: true\` if the wider surface is intended, or remove the ${n.join(" / ")} annotation if it is not.`);
|
|
288
|
-
},
|
|
288
|
+
}, bt = (e) => {
|
|
289
289
|
let t = e.requiresApproval;
|
|
290
290
|
if (t !== void 0) {
|
|
291
291
|
if (!Array.isArray(t.approvers) || t.approvers.length === 0) throw Error(`${e.name}: \`requiresApproval.approvers\` is empty, so NOBODY can approve this\n procedure and every call would park forever. Name the scope(s) an approver must hold
|
|
@@ -295,20 +295,20 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
295
295
|
human from every other, and the second-pair-of-eyes control would enforce nothing.
|
|
296
296
|
Give the procedure a \`guards:\` decision, or drop \`requiresApproval\`.`);
|
|
297
297
|
}
|
|
298
|
-
},
|
|
298
|
+
}, xt = (e) => e.action !== void 0 && e.resourceType !== void 0, St = (e) => e.authenticated === !0, Ct = (e) => e.openAccess !== void 0 || e.guards !== void 0 && e.guards.length > 0, F = (e, t, n) => {
|
|
299
299
|
if (n === void 0) return t;
|
|
300
300
|
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
|
|
301
301
|
without an authorization check — e.g. \`openAccess: 'public pricing, no caller data'\`.`);
|
|
302
302
|
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
|
|
303
303
|
caller must hold a scope; drop them if anyone may call it.`);
|
|
304
|
-
return [
|
|
304
|
+
return [f(n.trim())];
|
|
305
305
|
}, I = (e) => P({
|
|
306
306
|
kind: "query",
|
|
307
307
|
name: e.name,
|
|
308
308
|
input: e.input,
|
|
309
309
|
output: e.output,
|
|
310
|
-
error: e.error ??
|
|
311
|
-
source:
|
|
310
|
+
error: e.error ?? m.Never,
|
|
311
|
+
source: gt(e.source),
|
|
312
312
|
cache: e.cache,
|
|
313
313
|
guards: F(e.name, e.guards, e.openAccess),
|
|
314
314
|
openAccess: e.openAccess,
|
|
@@ -321,7 +321,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
321
321
|
name: e.name,
|
|
322
322
|
input: e.input,
|
|
323
323
|
output: e.output,
|
|
324
|
-
error: e.error ??
|
|
324
|
+
error: e.error ?? m.Never,
|
|
325
325
|
target: e.target,
|
|
326
326
|
guards: F(e.name, e.guards, e.openAccess),
|
|
327
327
|
openAccess: e.openAccess,
|
|
@@ -335,7 +335,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
335
335
|
name: e.name,
|
|
336
336
|
input: e.input,
|
|
337
337
|
output: e.output,
|
|
338
|
-
error: e.error ??
|
|
338
|
+
error: e.error ?? m.Never,
|
|
339
339
|
guards: F(e.name, e.guards, e.openAccess),
|
|
340
340
|
openAccess: e.openAccess,
|
|
341
341
|
source: e.source,
|
|
@@ -345,53 +345,53 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
345
345
|
requiresApproval: e.requiresApproval,
|
|
346
346
|
internal: e.internal,
|
|
347
347
|
overridesPlugin: e.overridesPlugin
|
|
348
|
-
}),
|
|
348
|
+
}), wt = (e) => P({
|
|
349
349
|
kind: "stream",
|
|
350
350
|
name: e.name,
|
|
351
351
|
input: e.input,
|
|
352
352
|
element: e.element,
|
|
353
|
-
error: e.error ??
|
|
353
|
+
error: e.error ?? m.Never,
|
|
354
354
|
internal: e.internal,
|
|
355
355
|
overridesPlugin: e.overridesPlugin,
|
|
356
356
|
guards: F(e.name, e.guards, e.openAccess),
|
|
357
357
|
openAccess: e.openAccess
|
|
358
|
-
}), z = (e, t) => t && t.length > 0 ?
|
|
358
|
+
}), z = (e, t) => t && t.length > 0 ? m.Union(e, ...t) : e, B = (e) => e !== void 0 && e.some((e) => !d(e)), V = (e, t) => B(t) ? m.Union(e, u, l) : e, Tt = (e) => m.Union(e, E), Et = (e) => m.Union(e, O, Ze), Dt = (e, t) => t === void 0 ? e : m.Union(e, at), H = (e, t) => {
|
|
359
359
|
if (t === "stream") return e.error;
|
|
360
|
-
let n =
|
|
361
|
-
return t === "query" ? n : Et(
|
|
362
|
-
},
|
|
360
|
+
let n = V(e.error, e.guards);
|
|
361
|
+
return t === "query" ? n : Dt(Et(t === "mutation" ? m.Union(Tt(n), p, We) : n), e.requiresApproval);
|
|
362
|
+
}, Ot = (e, t) => z(V(e.errorSchema, e.guards), t), kt = (e, t) => ({
|
|
363
363
|
...e,
|
|
364
364
|
name: t
|
|
365
|
-
}),
|
|
366
|
-
payload:
|
|
367
|
-
success:
|
|
368
|
-
error: z(
|
|
365
|
+
}), At = (e, t) => h.make(e.name, {
|
|
366
|
+
payload: T(e.input, e.name, B(e.guards)),
|
|
367
|
+
success: C(e.output),
|
|
368
|
+
error: z(H(e, "query"), t),
|
|
369
369
|
stream: !0
|
|
370
|
-
}),
|
|
371
|
-
payload:
|
|
370
|
+
}), jt = (e, t) => h.make(e.name, {
|
|
371
|
+
payload: T(e.input, e.name, B(e.guards)),
|
|
372
372
|
success: e.output,
|
|
373
|
-
error: z(
|
|
374
|
-
}),
|
|
375
|
-
payload:
|
|
373
|
+
error: z(H(e, "mutation"), t)
|
|
374
|
+
}), Mt = (e, t) => h.make(e.name, {
|
|
375
|
+
payload: T(e.input, e.name, B(e.guards)),
|
|
376
376
|
success: e.output,
|
|
377
|
-
error: z(
|
|
378
|
-
}),
|
|
379
|
-
payload:
|
|
377
|
+
error: z(H(e, "action"), t)
|
|
378
|
+
}), Nt = (e, t) => h.make(e.name, {
|
|
379
|
+
payload: T(e.input, e.name, B(e.guards)),
|
|
380
380
|
success: e.element,
|
|
381
381
|
error: z(e.error, t),
|
|
382
382
|
stream: !0
|
|
383
|
-
}),
|
|
383
|
+
}), Pt = (e) => {
|
|
384
384
|
if (typeof e != "object" || !e) return;
|
|
385
385
|
let t = e._tag;
|
|
386
386
|
return typeof t == "string" ? t : void 0;
|
|
387
|
-
},
|
|
387
|
+
}, Ft = (e) => {
|
|
388
388
|
switch (e.kind) {
|
|
389
|
-
case "query": return
|
|
390
|
-
case "mutation": return
|
|
391
|
-
case "action": return
|
|
392
|
-
case "stream": return
|
|
389
|
+
case "query": return At(e);
|
|
390
|
+
case "mutation": return jt(e);
|
|
391
|
+
case "action": return Mt(e);
|
|
392
|
+
case "stream": return Nt(e);
|
|
393
393
|
}
|
|
394
|
-
},
|
|
394
|
+
}, It = (e) => {
|
|
395
395
|
let t = e.input, n = t === void 0 ? {} : { input: t }, r = e.output, i = r === void 0 ? {} : { output: r };
|
|
396
396
|
if (e.kind === "query") return {
|
|
397
397
|
kind: "query",
|
|
@@ -433,7 +433,7 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
433
433
|
..."relations" in e && e.relations !== void 0 ? { relations: e.relations } : {}
|
|
434
434
|
}))
|
|
435
435
|
};
|
|
436
|
-
},
|
|
436
|
+
}, Lt = 7500, Rt = (e) => typeof e == "object" && !!e && e.kind === "event", zt = (e) => {
|
|
437
437
|
if (e.name.length === 0) throw Error("defineEvent: `name` must not be empty");
|
|
438
438
|
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
|
|
439
439
|
whitespace and delivers nothing — silently, and only on that broker, so an
|
|
@@ -462,66 +462,66 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
462
462
|
name: e.name,
|
|
463
463
|
key: e.key,
|
|
464
464
|
payload: e.payload,
|
|
465
|
-
guards: e.openAccess === void 0 ? e.guards : [
|
|
465
|
+
guards: e.openAccess === void 0 ? e.guards : [f(e.openAccess.trim())],
|
|
466
466
|
openAccess: e.openAccess,
|
|
467
467
|
rewind: e.rewind,
|
|
468
468
|
webhook: e.webhook,
|
|
469
469
|
delivery: e.delivery
|
|
470
470
|
};
|
|
471
|
-
},
|
|
472
|
-
_tag:
|
|
473
|
-
origin:
|
|
474
|
-
n:
|
|
475
|
-
emittedAt:
|
|
471
|
+
}, Bt = (e) => m.Struct({
|
|
472
|
+
_tag: m.Literal("event"),
|
|
473
|
+
origin: m.String,
|
|
474
|
+
n: m.Number,
|
|
475
|
+
emittedAt: m.Number,
|
|
476
476
|
payload: e
|
|
477
|
-
}),
|
|
478
|
-
_tag:
|
|
479
|
-
missed:
|
|
480
|
-
reason:
|
|
481
|
-
}),
|
|
482
|
-
origin:
|
|
483
|
-
n:
|
|
484
|
-
}),
|
|
477
|
+
}), Vt = m.Struct({
|
|
478
|
+
_tag: m.Literal("gap"),
|
|
479
|
+
missed: m.Number,
|
|
480
|
+
reason: m.Literal("buffer", "resume")
|
|
481
|
+
}), Ht = m.Struct({ _tag: m.Literal("attached") }), Ut = (e) => m.Union(Ht, Bt(e), Vt), Wt = m.Struct({
|
|
482
|
+
origin: m.String,
|
|
483
|
+
n: m.Number
|
|
484
|
+
}), Gt = (e) => m.Struct({
|
|
485
485
|
key: e,
|
|
486
|
-
resume:
|
|
487
|
-
}),
|
|
488
|
-
let n = e.guards !== void 0 && e.guards.some((e) => !
|
|
489
|
-
return
|
|
490
|
-
payload:
|
|
491
|
-
success:
|
|
486
|
+
resume: m.optional(m.Array(Wt))
|
|
487
|
+
}), Kt = (e, t) => {
|
|
488
|
+
let n = e.guards !== void 0 && e.guards.some((e) => !d(e)) ? m.Union(u, l) : m.Never, r = t && t.length > 0 ? m.Union(n, ...t) : n;
|
|
489
|
+
return h.make(e.name, {
|
|
490
|
+
payload: T(Gt(e.key), e.name, B(e.guards)),
|
|
491
|
+
success: Ut(e.payload),
|
|
492
492
|
error: r,
|
|
493
493
|
stream: !0
|
|
494
494
|
});
|
|
495
|
-
},
|
|
496
|
-
event:
|
|
497
|
-
message:
|
|
498
|
-
}) {},
|
|
499
|
-
event:
|
|
500
|
-
message:
|
|
501
|
-
}) {},
|
|
502
|
-
event:
|
|
503
|
-
bytes:
|
|
504
|
-
limit:
|
|
505
|
-
}) {},
|
|
495
|
+
}, qt = class extends m.TaggedError()("EventPayloadInvalid", {
|
|
496
|
+
event: m.String,
|
|
497
|
+
message: m.String
|
|
498
|
+
}) {}, Jt = class extends m.TaggedError()("EventKeyInvalid", {
|
|
499
|
+
event: m.String,
|
|
500
|
+
message: m.String
|
|
501
|
+
}) {}, Yt = class extends m.TaggedError()("EventPayloadTooLarge", {
|
|
502
|
+
event: m.String,
|
|
503
|
+
bytes: m.Number,
|
|
504
|
+
limit: m.Number
|
|
505
|
+
}) {}, Xt = (e) => {
|
|
506
506
|
if (typeof e != "object" || !e) return JSON.stringify(e) ?? "null";
|
|
507
507
|
let t = Object.entries(e).filter(([, e]) => e !== void 0).sort(([e], [t]) => e < t ? -1 : +(e > t));
|
|
508
508
|
return JSON.stringify(t);
|
|
509
|
-
},
|
|
509
|
+
}, Zt = "\0", Qt = (e, t, n) => [
|
|
510
510
|
e ?? "~",
|
|
511
511
|
t,
|
|
512
|
-
|
|
513
|
-
].join("\0"),
|
|
512
|
+
Xt(n)
|
|
513
|
+
].join("\0"), $t = (e) => {
|
|
514
514
|
let [t = "~", n = "", r = ""] = e.split("\0");
|
|
515
515
|
return {
|
|
516
516
|
tenantId: t === "~" ? null : t,
|
|
517
517
|
event: n,
|
|
518
518
|
key: r
|
|
519
519
|
};
|
|
520
|
-
},
|
|
520
|
+
}, en = (e) => e.split("\0").join(" · "), U = Symbol.for("@voltro/protocol/workflow-access"), tn = {
|
|
521
521
|
guards: void 0,
|
|
522
522
|
openAccess: void 0,
|
|
523
523
|
internal: !1
|
|
524
|
-
},
|
|
524
|
+
}, nn = (e, t) => {
|
|
525
525
|
let n = t.guards;
|
|
526
526
|
if (n !== void 0 && n.length === 0) throw Error(`workflow("${e}"): \`guards: []\` is empty, so it enforces nothing —\n but it reads at the call site as if the start were protected. Omit the field
|
|
527
527
|
and decide with \`openAccess\` or \`internal\`, or list the scopes that may start it.`);
|
|
@@ -537,41 +537,41 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
537
537
|
\`internal: true\` if the workflow really is meant to be startable by clients.`);
|
|
538
538
|
}
|
|
539
539
|
return {
|
|
540
|
-
guards: t.openAccess === void 0 ? t.guards : [
|
|
540
|
+
guards: t.openAccess === void 0 ? t.guards : [f(t.openAccess.trim())],
|
|
541
541
|
openAccess: t.openAccess?.trim(),
|
|
542
542
|
internal: t.internal === !0
|
|
543
543
|
};
|
|
544
|
-
},
|
|
545
|
-
Object.defineProperty(e,
|
|
544
|
+
}, rn = (e, t) => {
|
|
545
|
+
Object.defineProperty(e, U, {
|
|
546
546
|
value: t,
|
|
547
547
|
enumerable: !1
|
|
548
548
|
});
|
|
549
|
-
},
|
|
550
|
-
if (typeof e != "object" || !e) return
|
|
551
|
-
let t = e[
|
|
552
|
-
return t === void 0 ?
|
|
553
|
-
},
|
|
554
|
-
let t =
|
|
549
|
+
}, W = (e) => {
|
|
550
|
+
if (typeof e != "object" || !e) return tn;
|
|
551
|
+
let t = e[U];
|
|
552
|
+
return t === void 0 ? tn : t;
|
|
553
|
+
}, an = (e) => {
|
|
554
|
+
let t = W(e);
|
|
555
555
|
return {
|
|
556
556
|
name: e.name,
|
|
557
557
|
internal: t.internal,
|
|
558
558
|
guards: t.guards,
|
|
559
559
|
openAccess: t.openAccess
|
|
560
560
|
};
|
|
561
|
-
},
|
|
561
|
+
}, on = (e) => e, sn = (e) => e, cn = (e) => {
|
|
562
562
|
let t = e.alias?.trim(), n = e.instance?.trim(), r = t !== void 0 && t !== "" ? t : e.base;
|
|
563
563
|
return n !== void 0 && n !== "" ? `${r}#${n}` : r;
|
|
564
|
-
},
|
|
564
|
+
}, ln = (e) => {
|
|
565
565
|
if (e.length !== 0) return (t, n) => e.reduceRight((e, t) => t(e, n), t);
|
|
566
|
-
},
|
|
566
|
+
}, un = (e, t) => {
|
|
567
567
|
let n = He.GenericTag(e);
|
|
568
568
|
return {
|
|
569
569
|
Tag: n,
|
|
570
570
|
Live: Ue.succeed(n, t)
|
|
571
571
|
};
|
|
572
|
-
},
|
|
572
|
+
}, dn = (e, t, n) => {
|
|
573
573
|
if (!t) return { ok: !0 };
|
|
574
|
-
let r = n === void 0 ? null :
|
|
574
|
+
let r = n === void 0 ? null : G(n);
|
|
575
575
|
if (!r) return {
|
|
576
576
|
ok: !0,
|
|
577
577
|
unverified: `plugin "${e}" requires framework ${t}, but the running framework version is ${n === void 0 ? "unknown" : `unreadable ("${n}")`} — not checked.`
|
|
@@ -579,12 +579,12 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
579
579
|
let i = t.trim();
|
|
580
580
|
if (i === "*" || i === "") return { ok: !0 };
|
|
581
581
|
let a = i.split(/\s+/).filter((e) => e.length > 0);
|
|
582
|
-
for (let i of a) if (!
|
|
582
|
+
for (let i of a) if (!fn(i, r)) return {
|
|
583
583
|
ok: !1,
|
|
584
584
|
reason: `plugin "${e}" requires framework ${t}, running ${n}`
|
|
585
585
|
};
|
|
586
586
|
return { ok: !0 };
|
|
587
|
-
},
|
|
587
|
+
}, G = (e) => {
|
|
588
588
|
let t = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9a-zA-Z.-]+))?$/.exec(e.trim());
|
|
589
589
|
return t ? {
|
|
590
590
|
major: Number(t[1]),
|
|
@@ -592,266 +592,273 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
592
592
|
patch: Number(t[3]),
|
|
593
593
|
pre: t[4] ?? ""
|
|
594
594
|
} : null;
|
|
595
|
-
},
|
|
595
|
+
}, 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, fn = (e, t) => {
|
|
596
596
|
if (e === "*") return !0;
|
|
597
597
|
if (e.startsWith("^")) {
|
|
598
|
-
let n =
|
|
599
|
-
return !n || t.major !== n.major ? !1 :
|
|
598
|
+
let n = G(e.slice(1));
|
|
599
|
+
return !n || t.major !== n.major ? !1 : K(t, n) >= 0;
|
|
600
600
|
}
|
|
601
601
|
if (e.startsWith("~")) {
|
|
602
|
-
let n =
|
|
603
|
-
return !n || t.major !== n.major || t.minor !== n.minor ? !1 :
|
|
602
|
+
let n = G(e.slice(1));
|
|
603
|
+
return !n || t.major !== n.major || t.minor !== n.minor ? !1 : K(t, n) >= 0;
|
|
604
604
|
}
|
|
605
605
|
let n = /^(>=|<=|>|<)(.+)$/.exec(e);
|
|
606
606
|
if (n) {
|
|
607
|
-
let e = n[1], r =
|
|
607
|
+
let e = n[1], r = G(n[2]);
|
|
608
608
|
if (!r) return !1;
|
|
609
|
-
let i =
|
|
609
|
+
let i = K(t, r);
|
|
610
610
|
if (e === ">=") return i >= 0;
|
|
611
611
|
if (e === "<=") return i <= 0;
|
|
612
612
|
if (e === ">") return i > 0;
|
|
613
613
|
if (e === "<") return i < 0;
|
|
614
614
|
}
|
|
615
|
-
let r =
|
|
616
|
-
return r ?
|
|
617
|
-
},
|
|
615
|
+
let r = G(e);
|
|
616
|
+
return r ? K(t, r) === 0 : !1;
|
|
617
|
+
}, pn = (e) => {
|
|
618
618
|
let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
|
|
619
619
|
return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/-([a-zA-Z0-9])/g, (e, t) => t.toUpperCase());
|
|
620
|
-
},
|
|
620
|
+
}, mn = (e) => {
|
|
621
621
|
let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
|
|
622
622
|
return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/#/g, "--").replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
623
|
-
},
|
|
624
|
-
let e = globalThis, t = e[
|
|
623
|
+
}, hn = Symbol.for("@voltro/protocol/pluginAliases"), q = () => {
|
|
624
|
+
let e = globalThis, t = e[hn];
|
|
625
625
|
if (t instanceof Map) return t;
|
|
626
626
|
let n = /* @__PURE__ */ new Map();
|
|
627
|
-
return e[
|
|
628
|
-
},
|
|
629
|
-
let t =
|
|
627
|
+
return e[hn] = n, n;
|
|
628
|
+
}, gn = (e) => {
|
|
629
|
+
let t = q();
|
|
630
630
|
for (let [n, r] of Object.entries(e)) {
|
|
631
631
|
if (r === "") continue;
|
|
632
632
|
let e = t.get(n);
|
|
633
633
|
e === void 0 ? t.set(n, /* @__PURE__ */ new Set([r])) : e.add(r);
|
|
634
634
|
}
|
|
635
|
-
},
|
|
636
|
-
|
|
637
|
-
},
|
|
638
|
-
let n =
|
|
639
|
-
if (n === void 0 || n.size === 0) return `${
|
|
635
|
+
}, _n = () => {
|
|
636
|
+
q().clear();
|
|
637
|
+
}, vn = (e, t) => {
|
|
638
|
+
let n = q().get(e);
|
|
639
|
+
if (n === void 0 || n.size === 0) return `${pn(e)}.${t}`;
|
|
640
640
|
if (n.size === 1) return `${[...n][0]}.${t}`;
|
|
641
641
|
let r = [...n].filter((e) => !e.includes("#"));
|
|
642
642
|
if (r.length === 1) return `${r[0]}.${t}`;
|
|
643
643
|
throw Error(`[voltro] ${e} is installed more than once (${[...n].sort().join(", ")}) and no single install is the primary one, so a plugin hook cannot tell which of them it addresses. Call the route by its full tag instead — e.g. useSubscription(api, '${[...n].sort()[0]}.${t}').`);
|
|
644
|
-
},
|
|
645
|
-
mode:
|
|
646
|
-
dueAt:
|
|
647
|
-
retryAfterMs:
|
|
648
|
-
intentId:
|
|
649
|
-
}),
|
|
650
|
-
id:
|
|
651
|
-
workflowName:
|
|
652
|
-
executionId:
|
|
653
|
-
status:
|
|
654
|
-
deferral:
|
|
655
|
-
}),
|
|
656
|
-
let n =
|
|
657
|
-
return
|
|
658
|
-
payload:
|
|
659
|
-
success:
|
|
660
|
-
error:
|
|
644
|
+
}, J = m.Literal("running", "succeeded", "failed", "cancelled", "suspended"), yn = m.Literal("cancel", "terminate", "abandon"), bn = m.Struct({
|
|
645
|
+
mode: m.String,
|
|
646
|
+
dueAt: m.NullOr(m.Number),
|
|
647
|
+
retryAfterMs: m.NullOr(m.Number),
|
|
648
|
+
intentId: m.NullOr(m.String)
|
|
649
|
+
}), xn = m.Struct({
|
|
650
|
+
id: m.String,
|
|
651
|
+
workflowName: m.String,
|
|
652
|
+
executionId: m.NullOr(m.String),
|
|
653
|
+
status: m.Literal("running", "queued", "dropped", "skipped", "replayed"),
|
|
654
|
+
deferral: m.optional(bn)
|
|
655
|
+
}), Sn = (e, t) => {
|
|
656
|
+
let n = W(e);
|
|
657
|
+
return h.make(e.name, {
|
|
658
|
+
payload: T(e.payloadSchema, e.name, B(n.guards)),
|
|
659
|
+
success: xn,
|
|
660
|
+
error: Ot({
|
|
661
661
|
errorSchema: e.errorSchema,
|
|
662
662
|
guards: n.guards
|
|
663
663
|
}, t)
|
|
664
664
|
});
|
|
665
|
-
},
|
|
666
|
-
id:
|
|
667
|
-
tag:
|
|
668
|
-
executionId:
|
|
669
|
-
status:
|
|
670
|
-
payload:
|
|
671
|
-
workflowVersion:
|
|
672
|
-
workflowPatches:
|
|
673
|
-
output:
|
|
674
|
-
subject:
|
|
675
|
-
source:
|
|
676
|
-
errorTag:
|
|
677
|
-
errorMessage:
|
|
678
|
-
cancelled:
|
|
679
|
-
startedAt:
|
|
680
|
-
completedAt:
|
|
681
|
-
durationMs:
|
|
682
|
-
traceId:
|
|
683
|
-
parentExecutionId:
|
|
684
|
-
parentClosePolicy:
|
|
685
|
-
}),
|
|
686
|
-
tag:
|
|
687
|
-
status:
|
|
688
|
-
limit:
|
|
689
|
-
}),
|
|
690
|
-
id:
|
|
691
|
-
runId:
|
|
692
|
-
stepName:
|
|
693
|
-
attempt:
|
|
694
|
-
status:
|
|
695
|
-
input:
|
|
696
|
-
retryPolicy:
|
|
697
|
-
output:
|
|
698
|
-
errorTag:
|
|
699
|
-
errorMessage:
|
|
700
|
-
errorCause:
|
|
701
|
-
startedAt:
|
|
702
|
-
completedAt:
|
|
703
|
-
durationMs:
|
|
704
|
-
}),
|
|
705
|
-
id:
|
|
706
|
-
runId:
|
|
707
|
-
eventType:
|
|
708
|
-
payload:
|
|
709
|
-
occurredAt:
|
|
710
|
-
stepName:
|
|
711
|
-
attempt:
|
|
712
|
-
}),
|
|
713
|
-
id:
|
|
714
|
-
name:
|
|
715
|
-
payload:
|
|
716
|
-
source:
|
|
717
|
-
subject:
|
|
718
|
-
traceId:
|
|
719
|
-
occurredAt:
|
|
720
|
-
}),
|
|
721
|
-
id:
|
|
722
|
-
eventId:
|
|
723
|
-
eventName:
|
|
724
|
-
triggerId:
|
|
725
|
-
workflowName:
|
|
726
|
-
executionId:
|
|
727
|
-
status:
|
|
728
|
-
idempotencyKey:
|
|
729
|
-
skipped:
|
|
730
|
-
errorMessage:
|
|
731
|
-
createdAt:
|
|
732
|
-
completedAt:
|
|
733
|
-
}),
|
|
734
|
-
name:
|
|
735
|
-
limit:
|
|
736
|
-
}),
|
|
737
|
-
workflowName:
|
|
738
|
-
executionId:
|
|
739
|
-
}),
|
|
740
|
-
id:
|
|
741
|
-
signalName:
|
|
742
|
-
payload:
|
|
743
|
-
}),
|
|
744
|
-
id:
|
|
745
|
-
updateName:
|
|
746
|
-
payload:
|
|
747
|
-
timeoutMs:
|
|
748
|
-
}),
|
|
749
|
-
eventId:
|
|
750
|
-
updateId:
|
|
751
|
-
completedEventId:
|
|
752
|
-
result:
|
|
753
|
-
}),
|
|
665
|
+
}, Y = m.Struct({
|
|
666
|
+
id: m.String,
|
|
667
|
+
tag: m.String,
|
|
668
|
+
executionId: m.String,
|
|
669
|
+
status: J,
|
|
670
|
+
payload: m.Unknown,
|
|
671
|
+
workflowVersion: m.NullOr(m.String),
|
|
672
|
+
workflowPatches: m.NullOr(m.Unknown),
|
|
673
|
+
output: m.NullOr(m.Unknown),
|
|
674
|
+
subject: m.NullOr(m.Unknown),
|
|
675
|
+
source: m.NullOr(m.String),
|
|
676
|
+
errorTag: m.NullOr(m.String),
|
|
677
|
+
errorMessage: m.NullOr(m.String),
|
|
678
|
+
cancelled: m.Boolean,
|
|
679
|
+
startedAt: m.Date,
|
|
680
|
+
completedAt: m.NullOr(m.Date),
|
|
681
|
+
durationMs: m.NullOr(m.Number),
|
|
682
|
+
traceId: m.NullOr(m.String),
|
|
683
|
+
parentExecutionId: m.NullOr(m.String),
|
|
684
|
+
parentClosePolicy: m.NullOr(yn)
|
|
685
|
+
}), Cn = m.Struct({
|
|
686
|
+
tag: m.optional(m.String),
|
|
687
|
+
status: m.optional(J),
|
|
688
|
+
limit: m.optional(m.Number)
|
|
689
|
+
}), wn = m.Struct({
|
|
690
|
+
id: m.String,
|
|
691
|
+
runId: m.String,
|
|
692
|
+
stepName: m.String,
|
|
693
|
+
attempt: m.Number,
|
|
694
|
+
status: m.Literal("running", "succeeded", "failed"),
|
|
695
|
+
input: m.NullOr(m.Unknown),
|
|
696
|
+
retryPolicy: m.NullOr(m.Unknown),
|
|
697
|
+
output: m.NullOr(m.Unknown),
|
|
698
|
+
errorTag: m.NullOr(m.String),
|
|
699
|
+
errorMessage: m.NullOr(m.String),
|
|
700
|
+
errorCause: m.NullOr(m.Unknown),
|
|
701
|
+
startedAt: m.Date,
|
|
702
|
+
completedAt: m.NullOr(m.Date),
|
|
703
|
+
durationMs: m.NullOr(m.Number)
|
|
704
|
+
}), Tn = m.Struct({
|
|
705
|
+
id: m.String,
|
|
706
|
+
runId: m.String,
|
|
707
|
+
eventType: m.String,
|
|
708
|
+
payload: m.NullOr(m.Unknown),
|
|
709
|
+
occurredAt: m.Date,
|
|
710
|
+
stepName: m.NullOr(m.String),
|
|
711
|
+
attempt: m.NullOr(m.Number)
|
|
712
|
+
}), En = m.Struct({
|
|
713
|
+
id: m.String,
|
|
714
|
+
name: m.String,
|
|
715
|
+
payload: m.Unknown,
|
|
716
|
+
source: m.String,
|
|
717
|
+
subject: m.NullOr(m.Unknown),
|
|
718
|
+
traceId: m.NullOr(m.String),
|
|
719
|
+
occurredAt: m.Date
|
|
720
|
+
}), Dn = m.Struct({
|
|
721
|
+
id: m.String,
|
|
722
|
+
eventId: m.String,
|
|
723
|
+
eventName: m.String,
|
|
724
|
+
triggerId: m.String,
|
|
725
|
+
workflowName: m.String,
|
|
726
|
+
executionId: m.NullOr(m.String),
|
|
727
|
+
status: m.Literal("starting", "started", "skipped", "failed"),
|
|
728
|
+
idempotencyKey: m.String,
|
|
729
|
+
skipped: m.Boolean,
|
|
730
|
+
errorMessage: m.NullOr(m.String),
|
|
731
|
+
createdAt: m.Date,
|
|
732
|
+
completedAt: m.NullOr(m.Date)
|
|
733
|
+
}), On = m.Struct({ id: m.String }), X = m.Struct({ runId: m.String }), kn = m.Struct({
|
|
734
|
+
name: m.optional(m.String),
|
|
735
|
+
limit: m.optional(m.Number)
|
|
736
|
+
}), An = m.Struct({ eventId: m.String }), Z = m.Struct({
|
|
737
|
+
workflowName: m.String,
|
|
738
|
+
executionId: m.String
|
|
739
|
+
}), jn = m.Struct({
|
|
740
|
+
id: m.String,
|
|
741
|
+
signalName: m.String,
|
|
742
|
+
payload: m.optional(m.Unknown)
|
|
743
|
+
}), Mn = m.Struct({
|
|
744
|
+
id: m.String,
|
|
745
|
+
updateName: m.String,
|
|
746
|
+
payload: m.optional(m.Unknown),
|
|
747
|
+
timeoutMs: m.optional(m.Number)
|
|
748
|
+
}), Nn = m.Struct({
|
|
749
|
+
eventId: m.String,
|
|
750
|
+
updateId: m.String,
|
|
751
|
+
completedEventId: m.String,
|
|
752
|
+
result: m.Unknown
|
|
753
|
+
}), Pn = I({
|
|
754
754
|
name: "__voltro.workflow.run",
|
|
755
755
|
source: "_voltro_workflow_runs",
|
|
756
|
-
input:
|
|
757
|
-
output:
|
|
758
|
-
}),
|
|
756
|
+
input: On,
|
|
757
|
+
output: m.Array(Y)
|
|
758
|
+
}), Fn = I({
|
|
759
759
|
name: "__voltro.workflow.runs",
|
|
760
760
|
source: "_voltro_workflow_runs",
|
|
761
|
-
input:
|
|
762
|
-
output:
|
|
763
|
-
}),
|
|
761
|
+
input: Cn,
|
|
762
|
+
output: m.Array(Y)
|
|
763
|
+
}), In = I({
|
|
764
764
|
name: "__voltro.workflow.run.steps",
|
|
765
765
|
source: "_voltro_workflow_run_steps",
|
|
766
|
-
input:
|
|
767
|
-
output:
|
|
768
|
-
}),
|
|
766
|
+
input: X,
|
|
767
|
+
output: m.Array(wn)
|
|
768
|
+
}), Ln = I({
|
|
769
769
|
name: "__voltro.workflow.run.events",
|
|
770
770
|
source: "_voltro_workflow_run_events",
|
|
771
|
-
input:
|
|
772
|
-
output:
|
|
773
|
-
}),
|
|
771
|
+
input: X,
|
|
772
|
+
output: m.Array(Tn)
|
|
773
|
+
}), Rn = I({
|
|
774
774
|
name: "__voltro.workflow.domainEvents",
|
|
775
775
|
source: "_voltro_workflow_events",
|
|
776
|
-
input:
|
|
777
|
-
output:
|
|
778
|
-
}),
|
|
776
|
+
input: kn,
|
|
777
|
+
output: m.Array(En)
|
|
778
|
+
}), zn = I({
|
|
779
779
|
name: "__voltro.workflow.event.deliveries",
|
|
780
780
|
source: "_voltro_workflow_event_deliveries",
|
|
781
|
-
input:
|
|
782
|
-
output:
|
|
783
|
-
}), zn = R({
|
|
784
|
-
name: "__voltro.workflow.cancel",
|
|
785
|
-
input: X,
|
|
786
|
-
output: p.Struct({ ok: p.Boolean })
|
|
781
|
+
input: An,
|
|
782
|
+
output: m.Array(Dn)
|
|
787
783
|
}), Bn = R({
|
|
788
|
-
name: "__voltro.workflow.
|
|
789
|
-
input:
|
|
790
|
-
output:
|
|
784
|
+
name: "__voltro.workflow.cancel",
|
|
785
|
+
input: Z,
|
|
786
|
+
output: m.Struct({ ok: m.Boolean })
|
|
791
787
|
}), Vn = R({
|
|
792
|
-
name: "__voltro.workflow.
|
|
793
|
-
input:
|
|
794
|
-
output:
|
|
788
|
+
name: "__voltro.workflow.resume",
|
|
789
|
+
input: Z,
|
|
790
|
+
output: m.Struct({ ok: m.Boolean })
|
|
795
791
|
}), Hn = R({
|
|
796
|
-
name: "__voltro.workflow.
|
|
792
|
+
name: "__voltro.workflow.signal",
|
|
797
793
|
input: jn,
|
|
798
|
-
output:
|
|
799
|
-
}), Un =
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
794
|
+
output: m.Struct({ eventId: m.String })
|
|
795
|
+
}), Un = R({
|
|
796
|
+
name: "__voltro.workflow.update",
|
|
797
|
+
input: Mn,
|
|
798
|
+
output: Nn
|
|
799
|
+
}), Wn = "__voltro.undo.log", Gn = "__voltro.undo.apply", Kn = "__voltro.undo.redo", qn = m.Struct({
|
|
800
|
+
id: m.String,
|
|
801
|
+
tag: m.String,
|
|
802
|
+
label: m.NullOr(m.String),
|
|
803
|
+
undone: m.Boolean,
|
|
804
|
+
crossesAction: m.Boolean,
|
|
805
|
+
createdAt: m.String
|
|
806
|
+
}), Jn = class extends m.TaggedError()("UndoNotFound", { invocationId: m.String }) {}, Yn = class extends m.TaggedError()("UndoForbidden", { invocationId: m.String }) {}, Xn = class extends m.TaggedError()("UndoConflict", {
|
|
807
|
+
invocationId: m.String,
|
|
808
|
+
reason: m.Literal("conflict", "action")
|
|
809
|
+
}) {}, Zn = m.Union(Jn, Yn, Xn), Qn = I({
|
|
810
|
+
name: Wn,
|
|
811
811
|
source: "_voltro_undo_log",
|
|
812
|
-
input:
|
|
813
|
-
output:
|
|
812
|
+
input: m.Struct({ limit: m.optional(m.Number) }),
|
|
813
|
+
output: m.Array(qn),
|
|
814
814
|
openAccess: "subject-scoped by construction: lists only the calling subject's own undoable actions"
|
|
815
|
-
}), Qn = L({
|
|
816
|
-
name: Wn,
|
|
817
|
-
input: p.Struct({ invocationId: p.String }),
|
|
818
|
-
output: p.Struct({ ok: p.Boolean }),
|
|
819
|
-
error: Xn,
|
|
820
|
-
openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
|
|
821
815
|
}), $n = L({
|
|
822
816
|
name: Gn,
|
|
823
|
-
input:
|
|
824
|
-
output:
|
|
825
|
-
error:
|
|
817
|
+
input: m.Struct({ invocationId: m.String }),
|
|
818
|
+
output: m.Struct({ ok: m.Boolean }),
|
|
819
|
+
error: Zn,
|
|
820
|
+
openAccess: "subject-scoped by construction: undo is per-actor — another subject's invocation fails typed with UndoForbidden"
|
|
821
|
+
}), er = L({
|
|
822
|
+
name: Kn,
|
|
823
|
+
input: m.Struct({ invocationId: m.String }),
|
|
824
|
+
output: m.Struct({ ok: m.Boolean }),
|
|
825
|
+
error: Zn,
|
|
826
826
|
openAccess: "subject-scoped by construction: redo is per-actor — another subject's invocation fails typed with UndoForbidden"
|
|
827
|
-
}),
|
|
828
|
-
table:
|
|
829
|
-
reason:
|
|
830
|
-
}) {},
|
|
831
|
-
operation:
|
|
832
|
-
table:
|
|
833
|
-
cause:
|
|
834
|
-
}) {},
|
|
835
|
-
table:
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
827
|
+
}), tr = class extends m.TaggedError()("TenantScopeViolation", {
|
|
828
|
+
table: m.String,
|
|
829
|
+
reason: m.String
|
|
830
|
+
}) {}, nr = class extends m.TaggedError()("StoreOperationFailed", {
|
|
831
|
+
operation: m.String,
|
|
832
|
+
table: m.String,
|
|
833
|
+
cause: m.String
|
|
834
|
+
}) {}, rr = class extends m.TaggedError()("NoRowFound", {
|
|
835
|
+
table: m.String,
|
|
836
|
+
found: m.Number
|
|
837
|
+
}) {
|
|
838
|
+
get message() {
|
|
839
|
+
return this.found === 0 ? `expected exactly one row in '${this.table}', found none` : `expected exactly one row in '${this.table}', found more than one`;
|
|
840
|
+
}
|
|
841
|
+
}, ir = class extends m.TaggedError()("TableValidationFailed", {
|
|
842
|
+
table: m.String,
|
|
843
|
+
summary: m.String,
|
|
844
|
+
issues: m.Array(m.Struct({
|
|
845
|
+
path: m.String,
|
|
846
|
+
message: m.String
|
|
840
847
|
}))
|
|
841
|
-
}) {},
|
|
842
|
-
table:
|
|
843
|
-
id:
|
|
844
|
-
reason:
|
|
845
|
-
}) {},
|
|
846
|
-
table:
|
|
847
|
-
columns:
|
|
848
|
-
}) {},
|
|
849
|
-
kind:
|
|
850
|
-
table:
|
|
851
|
-
operation:
|
|
852
|
-
constraint:
|
|
853
|
-
column:
|
|
854
|
-
detail:
|
|
848
|
+
}) {}, ar = class extends m.TaggedError()("TenantRowNotFound", {
|
|
849
|
+
table: m.String,
|
|
850
|
+
id: m.String,
|
|
851
|
+
reason: m.String
|
|
852
|
+
}) {}, or = class extends m.TaggedError()("ServerOnlyColumnWrite", {
|
|
853
|
+
table: m.String,
|
|
854
|
+
columns: m.Array(m.String)
|
|
855
|
+
}) {}, sr = class extends m.TaggedError()("ConstraintViolation", {
|
|
856
|
+
kind: m.Literal("foreignKey", "foreignKeyInUse", "unique", "notNull", "check"),
|
|
857
|
+
table: m.String,
|
|
858
|
+
operation: m.String,
|
|
859
|
+
constraint: m.optional(m.String),
|
|
860
|
+
column: m.optional(m.String),
|
|
861
|
+
detail: m.optional(m.String)
|
|
855
862
|
}) {
|
|
856
863
|
get message() {
|
|
857
864
|
if (this.detail !== void 0) return this.detail;
|
|
@@ -864,85 +871,85 @@ var Ge = p.Union(p.String, p.Number), h = p.Record({
|
|
|
864
871
|
case "check": return `check constraint ${t}: the row does not satisfy it`;
|
|
865
872
|
}
|
|
866
873
|
}
|
|
867
|
-
},
|
|
868
|
-
name:
|
|
874
|
+
}, cr = "__voltro.approvals.pending", lr = "__voltro.approvals.decide", ur = I({
|
|
875
|
+
name: cr,
|
|
869
876
|
source: "_voltro_approvals",
|
|
870
|
-
input:
|
|
871
|
-
output:
|
|
877
|
+
input: m.Struct({ limit: m.optional(m.Number) }),
|
|
878
|
+
output: m.Array(st),
|
|
872
879
|
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"
|
|
873
|
-
}),
|
|
874
|
-
name:
|
|
875
|
-
input:
|
|
876
|
-
approvalId:
|
|
877
|
-
decision:
|
|
878
|
-
note:
|
|
880
|
+
}), dr = L({
|
|
881
|
+
name: lr,
|
|
882
|
+
input: m.Struct({
|
|
883
|
+
approvalId: m.String,
|
|
884
|
+
decision: m.Literal("approve", "reject"),
|
|
885
|
+
note: m.optional(m.String)
|
|
879
886
|
}),
|
|
880
|
-
output:
|
|
881
|
-
approvalId:
|
|
882
|
-
status:
|
|
887
|
+
output: m.Struct({
|
|
888
|
+
approvalId: m.String,
|
|
889
|
+
status: m.Literal("approved", "rejected")
|
|
883
890
|
}),
|
|
884
|
-
error:
|
|
891
|
+
error: ot,
|
|
885
892
|
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"
|
|
886
|
-
}),
|
|
887
|
-
connectionId:
|
|
893
|
+
}), fr = "__voltro.connections.list", pr = "__voltro.connections.start", mr = "__voltro.connections.submitToken", hr = "__voltro.connections.disconnect", Q = m.Literal("oauth2", "pat"), gr = m.Literal("disconnected", "connected", "expired", "revoked", "error"), _r = m.Struct({
|
|
894
|
+
connectionId: m.String,
|
|
888
895
|
kind: Q,
|
|
889
|
-
label:
|
|
890
|
-
status:
|
|
891
|
-
accountId:
|
|
892
|
-
accountLabel:
|
|
893
|
-
scopes:
|
|
894
|
-
expiresAt:
|
|
895
|
-
lastError:
|
|
896
|
-
connectedAt:
|
|
897
|
-
}),
|
|
898
|
-
connectionId:
|
|
896
|
+
label: m.String,
|
|
897
|
+
status: gr,
|
|
898
|
+
accountId: m.NullOr(m.String),
|
|
899
|
+
accountLabel: m.NullOr(m.String),
|
|
900
|
+
scopes: m.Array(m.String),
|
|
901
|
+
expiresAt: m.NullOr(m.String),
|
|
902
|
+
lastError: m.NullOr(m.String),
|
|
903
|
+
connectedAt: m.NullOr(m.String)
|
|
904
|
+
}), vr = class extends m.TaggedError()("ConnectionNotDeclared", { connectionId: m.String }) {}, yr = class extends m.TaggedError()("ConnectionSubjectRequired", { connectionId: m.String }) {}, br = class extends m.TaggedError()("ConnectionKindMismatch", {
|
|
905
|
+
connectionId: m.String,
|
|
899
906
|
expected: Q,
|
|
900
907
|
actual: Q
|
|
901
|
-
}) {},
|
|
902
|
-
connectionId:
|
|
903
|
-
reason:
|
|
904
|
-
transient:
|
|
905
|
-
}) {}, $ =
|
|
906
|
-
name:
|
|
908
|
+
}) {}, xr = class extends m.TaggedError()("ConnectionHandshakeFailed", {
|
|
909
|
+
connectionId: m.String,
|
|
910
|
+
reason: m.String,
|
|
911
|
+
transient: m.Boolean
|
|
912
|
+
}) {}, $ = m.Union(vr, yr, br, xr), Sr = I({
|
|
913
|
+
name: fr,
|
|
907
914
|
source: "_voltro_connections",
|
|
908
|
-
input:
|
|
909
|
-
output:
|
|
915
|
+
input: m.Struct({}),
|
|
916
|
+
output: m.Array(_r),
|
|
910
917
|
openAccess: "self-scoped read: projects the declared connections for the calling subject only (its own connect/disconnect state)"
|
|
911
|
-
}),
|
|
912
|
-
name:
|
|
913
|
-
input:
|
|
914
|
-
connectionId:
|
|
915
|
-
redirectTo:
|
|
918
|
+
}), Cr = R({
|
|
919
|
+
name: pr,
|
|
920
|
+
input: m.Struct({
|
|
921
|
+
connectionId: m.String,
|
|
922
|
+
redirectTo: m.optional(m.String)
|
|
916
923
|
}),
|
|
917
|
-
output:
|
|
918
|
-
authorizeUrl:
|
|
919
|
-
state:
|
|
924
|
+
output: m.Struct({
|
|
925
|
+
authorizeUrl: m.String,
|
|
926
|
+
state: m.String
|
|
920
927
|
}),
|
|
921
928
|
error: $,
|
|
922
929
|
openAccess: "self-service: begins an oauth handshake that stores a credential for the calling subject only; anonymous callers fail typed with ConnectionSubjectRequired"
|
|
923
|
-
}),
|
|
924
|
-
name:
|
|
925
|
-
input:
|
|
926
|
-
connectionId:
|
|
927
|
-
token:
|
|
930
|
+
}), wr = L({
|
|
931
|
+
name: mr,
|
|
932
|
+
input: m.Struct({
|
|
933
|
+
connectionId: m.String,
|
|
934
|
+
token: m.String
|
|
928
935
|
}),
|
|
929
|
-
output:
|
|
936
|
+
output: m.Struct({ ok: m.Boolean }),
|
|
930
937
|
error: $,
|
|
931
938
|
openAccess: "self-service: stores a pasted token as the calling subject's own credential; anonymous callers fail typed with ConnectionSubjectRequired"
|
|
932
|
-
}),
|
|
933
|
-
name:
|
|
934
|
-
input:
|
|
935
|
-
output:
|
|
939
|
+
}), Tr = L({
|
|
940
|
+
name: hr,
|
|
941
|
+
input: m.Struct({ connectionId: m.String }),
|
|
942
|
+
output: m.Struct({ ok: m.Boolean }),
|
|
936
943
|
error: $,
|
|
937
944
|
openAccess: "self-service: deletes only the calling subject's own credential row for this connection"
|
|
938
|
-
}),
|
|
945
|
+
}), Er = (e) => {
|
|
939
946
|
let t = e instanceof Date ? e.getTime() : typeof e == "number" ? e : typeof e == "string" ? new Date(e).getTime() : 0;
|
|
940
947
|
return Number.isNaN(t) ? 0 : t;
|
|
941
|
-
},
|
|
948
|
+
}, Dr = 4001, Or = /* @__PURE__ */ new Set(["/rpc", "/ws"]), kr = (e) => {
|
|
942
949
|
if (!e.path.startsWith("/")) throw Error(`defineWebSocket: path must be absolute, got '${e.path}'`);
|
|
943
|
-
if (
|
|
950
|
+
if (Or.has(e.path)) throw Error(`defineWebSocket: '${e.path}' is the framework's own socket surface — mount the gateway elsewhere`);
|
|
944
951
|
if (e.auth !== "subject" && e.auth !== "public") throw Error(`defineWebSocket: auth must be 'subject' or 'public' (explicitly — an unauthenticated socket has to be a decision somebody wrote down), got '${String(e.auth)}'`);
|
|
945
952
|
return e;
|
|
946
|
-
},
|
|
953
|
+
}, Ar = 1;
|
|
947
954
|
//#endregion
|
|
948
|
-
export { De as ADMIN_SCOPE, Se as APIKEY_ISSUE_ORG_SCOPE, Te as APIKEY_ISSUE_OTHER_SCOPE, _e as APIKEY_ISSUE_SELF_SCOPE,
|
|
955
|
+
export { De as ADMIN_SCOPE, Se as APIKEY_ISSUE_ORG_SCOPE, Te as APIKEY_ISSUE_OTHER_SCOPE, _e as APIKEY_ISSUE_SELF_SCOPE, lr as APPROVALS_DECIDE_TAG, cr as APPROVALS_PENDING_TAG, ot as ApprovalDecisionErrors, at as ApprovalErrors, k as ApprovalExpired, it as ApprovalForbidden, et as ApprovalNotFound, rt as ApprovalNotPending, nt as ApprovalRejected, $e as ApprovalRequired, tt as ApprovalSelfApproval, A as ApprovalUnavailable, se as AuthMiddleware, E as BusinessRuleViolation, fr as CONNECTIONS_LIST_TAG, hr as CONNECTION_DISCONNECT_TAG, pr as CONNECTION_START_TAG, mr as CONNECTION_SUBMIT_TOKEN_TAG, xr as ConnectionHandshakeFailed, i as ConnectionInfo, r as ConnectionInfoMiddleware, Q as ConnectionKind, br as ConnectionKindMismatch, vr as ConnectionNotDeclared, _r as ConnectionState, gr as ConnectionStatus, yr as ConnectionSubjectRequired, sr as ConstraintViolation, ie as DEFAULT_SCOPE_CACHE_MAX_ENTRIES, ye as DEFAULT_SCOPE_CACHE_TTL_MS, Zt as EVENT_ROUTE_SEP, Jt as EventKeyInvalid, qt as EventPayloadInvalid, Yt as EventPayloadTooLarge, Dr as GATEWAY_CREDENTIAL_EXPIRED_CLOSE_CODE, e as IMPERSONATION_METADATA_KEY, Lt as MAX_EVENT_ENVELOPE_BYTES, Re as MUTATION_IN_FLIGHT_RETRY_AFTER_MS, p as MutationInFlight, rr as NoRowFound, Ar as PROTOCOL_VERSION, st as PendingApproval, j as REACTIVITY_CHANNEL_PREFIX, u as ScopeError, or as ServerOnlyColumnWrite, nr as StoreOperationFailed, ve as Subject, ne as SubjectIdentity, re as SubjectService, ir as TableValidationFailed, ar as TenantRowNotFound, tr as TenantScopeViolation, Gn as UNDO_APPLY_TAG, Wn as UNDO_LOG_TAG, Kn as UNDO_REDO_TAG, l as Unauthenticated, Xn as UndoConflict, Yn as UndoForbidden, qn as UndoLogEntry, Jn as UndoNotFound, O as ValidationError, Ze as ValidationErrors, D as ValidationIssue, U as WorkflowAccessProperty, Z as WorkflowControlInputSchema, En as WorkflowDomainEventRowSchema, kn as WorkflowDomainEventsInputSchema, An as WorkflowEventDeliveriesInputSchema, Dn as WorkflowEventDeliveryRowSchema, yn as WorkflowParentClosePolicySchema, Tn as WorkflowRunEventRowSchema, xn as WorkflowRunHandleSchema, On as WorkflowRunRefSchema, Y as WorkflowRunRowSchema, J as WorkflowRunStatusSchema, wn as WorkflowRunStepRowSchema, X as WorkflowRunTableRefSchema, Cn as WorkflowRunsInputSchema, jn as WorkflowSignalInputSchema, bn as WorkflowStartDeferralSchema, Mn as WorkflowUpdateInputSchema, Nn as WorkflowUpdateResultSchema, Mt as actionToRpc, Ce as advisoryResourceGuardWarning, a as anonymousSubject, Ye as applyRowPatch, c as applyScopeDecision, dr as approvalsDecideDescriptor, ur as approvalsPendingQueryDescriptor, te as assertAuthenticated, rn as attachWorkflowAccess, Ne as beginIdempotent, dn as checkFrameworkCompat, Ee as checkGuards, pe as checkGuardsEffect, ae as composeAuthStrategies, ln as composeRpcInterceptors, Tr as connectionDisconnectDescriptor, Cr as connectionStartDescriptor, wr as connectionSubmitTokenDescriptor, Sr as connectionsListQueryDescriptor, mt as declaredReactivityChannelKeys, R as defineAction, zt as defineEvent, L as defineMutation, on as definePlugin, sn as definePluginRoute, un as definePluginService, I as defineQuery, wt as defineStream, kr as defineWebSocket, qe as diffRows, be as effectiveScopes, Xt as encodeEventKey, Pt as errorTag, Ht as eventAttached, Bt as eventEnvelope, Vt as eventGap, Wt as eventResumePoint, Qt as eventRoute, Ut as eventStreamEvent, Gt as eventSubscribeInput, Kt as eventToRpc, Le as failIdempotent, Qe as fieldIssuesOf, Oe as findAdvisoryResourceGuards, ze as finishIdempotent, en as formatEventRoute, me as getPolicyGuardResolver, he as getResourceScopeResolver, W as getWorkflowAccess, Ct as hasAccessDecision, Me as hasCallbackRoutes, we as hasEffectiveScope, B as hasEnforcedGuard, xe as hasScope, y as idToPath, Pe as idempotencyScope, w as inputLabel, ge as isAuthenticatedCheck, St as isAuthenticatedGuard, Rt as isEventDescriptor, Je as isIdKeyed, d as isOpenAccess, de as isPolicyCheck, xt as isPolicyGuard, ft as isReactivityChannel, pt as isReactivityChannelKey, t as isSystemSubject, yt as isWireReachable, le as makeScopeCache, Fe as memoryIdempotencyStore, ke as missingAccessDecision, jt as mutationToRpc, It as normalizeDescriptor, gt as normalizeSource, f as openAccessSpec, $t as parseEventRoute, b as pathToId, pn as pluginAlias, cn as pluginInstanceName, mn as pluginSlug, vn as pluginTag, vt as publishReactivity, Be as publishServerError, At as queryToRpc, s as rawImpersonationMark, dt as reactivityChannel, gn as registerPluginAliases, fe as requireScope, _n as resetPluginAliases, nn as resolveWorkflowAccess, _ as rowPatchOpSchema, v as rowPatchSchema, ce as scopeCacheKey, je as setEffectiveScopes, oe as setPolicyGuardResolver, n as setResourceScopeResolver, ht as sourceKeys, Nt as streamToRpc, T as strictInput, ue as subjectIdentity, Ae as subjectScopes, Ie as subscribeServerErrors, C as subscriptionEvent, o as systemSubject, ee as tenantScopedSubject, Ft as toRpc, Er as tsMs, _t as undeclaredChannelKeys, $n as undoApplyDescriptor, Qn as undoLogQueryDescriptor, er as undoRedoDescriptor, H as wireErrorUnion, kt as withRpcTag, an as workflowAccessDescriptor, Bn as workflowCancelDescriptor, Rn as workflowDomainEventsQueryDescriptor, zn as workflowEventDeliveriesQueryDescriptor, Vn as workflowResumeDescriptor, Ln as workflowRunEventsQueryDescriptor, Pn as workflowRunQueryDescriptor, In as workflowRunStepsQueryDescriptor, Fn as workflowRunsQueryDescriptor, Hn as workflowSignalDescriptor, Sn as workflowToRpc, Un as workflowUpdateDescriptor, Ot as workflowWireErrorUnion, Ve as wsMutationIdempotencyScope };
|