@cotal-ai/auth 0.91.0 → 0.92.1
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/authority-client.d.ts +70 -3
- package/dist/authority-client.d.ts.map +1 -1
- package/dist/authority-client.js +109 -8
- package/dist/authority-client.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +37 -10
- package/dist/commands.js.map +1 -1
- package/dist/manager-authority.d.ts +59 -3
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +185 -4
- package/dist/manager-authority.js.map +1 -1
- package/dist/native-service-gate.d.ts +14 -3
- package/dist/native-service-gate.d.ts.map +1 -1
- package/dist/native-service-gate.js +34 -20
- package/dist/native-service-gate.js.map +1 -1
- package/dist/native-service-name.d.ts +7 -0
- package/dist/native-service-name.d.ts.map +1 -1
- package/dist/native-service-name.js +15 -6
- package/dist/native-service-name.js.map +1 -1
- package/dist/platform-control.d.ts.map +1 -1
- package/dist/platform-control.js +1 -0
- package/dist/platform-control.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +8 -0
- package/dist/provider.js.map +1 -1
- package/dist/run-cancel-observation.d.ts +50 -0
- package/dist/run-cancel-observation.d.ts.map +1 -0
- package/dist/run-cancel-observation.js +146 -0
- package/dist/run-cancel-observation.js.map +1 -0
- package/dist/service-custody.d.ts +29 -20
- package/dist/service-custody.d.ts.map +1 -1
- package/dist/service-custody.js +37 -167
- package/dist/service-custody.js.map +1 -1
- package/dist/service-endpoint-authority.d.ts +70 -0
- package/dist/service-endpoint-authority.d.ts.map +1 -0
- package/dist/service-endpoint-authority.js +257 -0
- package/dist/service-endpoint-authority.js.map +1 -0
- package/dist/service-host-contract.d.ts +158 -16
- package/dist/service-host-contract.d.ts.map +1 -1
- package/dist/service-host-contract.js +330 -1
- package/dist/service-host-contract.js.map +1 -1
- package/dist/service-host-ops.d.ts +550 -0
- package/dist/service-host-ops.d.ts.map +1 -0
- package/dist/service-host-ops.js +2180 -0
- package/dist/service-host-ops.js.map +1 -0
- package/dist/service-write.d.ts +141 -0
- package/dist/service-write.d.ts.map +1 -0
- package/dist/service-write.js +179 -0
- package/dist/service-write.js.map +1 -0
- package/dist/service.d.ts +54 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +313 -14
- package/dist/service.js.map +1 -1
- package/package.json +9 -4
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertBoundedOwner, endpointToken, isContractDigest, parseEndpointCapabilities, } from "@cotal-ai/core";
|
|
1
|
+
import { EpEnvelopeError, assertCommandToken, assertDerivedOwnerToken, assertLifecycleToken, assertBoundedOwner, endpointToken, isAccountNkey, isContractDigest, isEpAuthzMode, parseEndpointCapabilities, } from "@cotal-ai/core";
|
|
2
2
|
export const SERVICE_HOST_REASONS = Object.freeze([
|
|
3
3
|
"bad-request", "unauthenticated", "permission-denied", "conflict", "not-found", "expired",
|
|
4
4
|
"resource-exhausted", "unsupported", "unavailable", "admission-held", "name-bound",
|
|
5
5
|
"name-claim-required", "registration-active", "stale-witness",
|
|
6
|
+
"admission-closed", "selector-pending", "selector-bound", "name-owned", "approval-in-progress",
|
|
7
|
+
]);
|
|
8
|
+
/** Why a bound operation ended without its effect. A closed proposal's reason is carried through. */
|
|
9
|
+
export const SERVICE_OPERATION_REFUSALS = Object.freeze([
|
|
10
|
+
"conflict", "expired", "revoked", "superseded", "custody-refused", "admission-closed",
|
|
11
|
+
"resource-exhausted", "selector-pending", "selector-bound", "name-owned", "restore", "owner", "operator",
|
|
6
12
|
]);
|
|
7
13
|
function bad(detail) { throw new EpEnvelopeError("bad-request", `service host request: ${detail}`); }
|
|
8
14
|
function object(raw, fields) {
|
|
@@ -173,4 +179,327 @@ export function parseServiceHostRequest(raw) {
|
|
|
173
179
|
}
|
|
174
180
|
return structuredClone(o);
|
|
175
181
|
}
|
|
182
|
+
function badResult(detail) { throw new EpEnvelopeError("bad-request", `service host result: ${detail}`); }
|
|
183
|
+
/** A plain object with exactly `required` plus any of `optional`. */
|
|
184
|
+
function closed(raw, required, optional = []) {
|
|
185
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
186
|
+
badResult("expected an object");
|
|
187
|
+
const proto = Object.getPrototypeOf(raw);
|
|
188
|
+
if (proto !== Object.prototype && proto !== null)
|
|
189
|
+
badResult("expected a plain object");
|
|
190
|
+
const o = raw;
|
|
191
|
+
if (required.some((k) => !Object.hasOwn(o, k)) || Reflect.ownKeys(o).some((k) => typeof k !== "string" || (!required.includes(k) && !optional.includes(k))))
|
|
192
|
+
badResult("missing or unsupported fields");
|
|
193
|
+
return o;
|
|
194
|
+
}
|
|
195
|
+
const hex = (raw, n, what) => { if (typeof raw !== "string" || !new RegExp(`^[0-9a-f]{${n}}$`).test(raw))
|
|
196
|
+
badResult(`${what} must be ${n} lowercase hex characters`); };
|
|
197
|
+
const dig = (raw, what) => { if (typeof raw !== "string" || !isContractDigest(raw))
|
|
198
|
+
badResult(`${what} must be a canonical digest`); };
|
|
199
|
+
const nat = (raw, what) => { if (typeof raw !== "number" || !Number.isSafeInteger(raw) || raw < 0)
|
|
200
|
+
badResult(`${what} must be an unsigned safe integer`); };
|
|
201
|
+
const text = (raw, what, max = 256) => { if (typeof raw !== "string" || !raw || raw.length > max || /[\u0000-\u001f]/.test(raw))
|
|
202
|
+
badResult(`${what} must be bounded text`); };
|
|
203
|
+
const oneOf = (raw, values, what) => { if (typeof raw !== "string" || !values.includes(raw))
|
|
204
|
+
badResult(`unknown ${what}`); };
|
|
205
|
+
const nullable = (raw, check) => { if (raw !== null)
|
|
206
|
+
check(raw); };
|
|
207
|
+
function grammar(check, what) { try {
|
|
208
|
+
check();
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
badResult(`invalid ${what}`);
|
|
212
|
+
} }
|
|
213
|
+
const ownerTok = (raw) => { if (typeof raw !== "string")
|
|
214
|
+
badResult("invalid owner"); grammar(() => assertDerivedOwnerToken(raw), "owner"); };
|
|
215
|
+
const endpointName = (raw) => { if (typeof raw !== "string")
|
|
216
|
+
badResult("invalid endpoint"); grammar(() => endpointToken(raw), "endpoint"); };
|
|
217
|
+
const lifecycleTok = (raw, what) => { if (typeof raw !== "string")
|
|
218
|
+
badResult(`invalid ${what}`); grammar(() => assertLifecycleToken(raw, what), what); };
|
|
219
|
+
const capabilities = (raw) => grammar(() => parseEndpointCapabilities(raw), "capability list");
|
|
220
|
+
const DENY_NEW = ["landed", "not-landed", "unknown"];
|
|
221
|
+
const OUTCOMES = ["applied", "recorded"];
|
|
222
|
+
const CLOSE_REASONS = ["owner", "operator", "revoked", "expired", "selector-bound", "restore", "custody-refused"];
|
|
223
|
+
function debtList(raw) {
|
|
224
|
+
if (!Array.isArray(raw) || raw.length > 2)
|
|
225
|
+
badResult("invalid debt");
|
|
226
|
+
for (const d of raw) {
|
|
227
|
+
const o = closed(d, ["kind", "proposalId"]);
|
|
228
|
+
oneOf(o.kind, ["capacity-release", "proposal-close"], "debt kind");
|
|
229
|
+
hex(o.proposalId, 64, "proposalId");
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function projection(raw) {
|
|
233
|
+
const o = closed(raw, ["subjectOwner", "endpoint", "instanceId", "proposalId"]);
|
|
234
|
+
ownerTok(o.subjectOwner);
|
|
235
|
+
endpointName(o.endpoint);
|
|
236
|
+
lifecycleTok(o.instanceId, "instanceId");
|
|
237
|
+
nullable(o.proposalId, (v) => hex(v, 64, "proposalId"));
|
|
238
|
+
}
|
|
239
|
+
function finalOutcome(raw) {
|
|
240
|
+
const o = raw;
|
|
241
|
+
if (o?.state === "complete") {
|
|
242
|
+
closed(raw, ["state", "resultDigest"]);
|
|
243
|
+
dig(o.resultDigest, "resultDigest");
|
|
244
|
+
}
|
|
245
|
+
else if (o?.state === "refused") {
|
|
246
|
+
closed(raw, ["state", "reason"]);
|
|
247
|
+
oneOf(o.reason, SERVICE_OPERATION_REFUSALS, "refusal");
|
|
248
|
+
}
|
|
249
|
+
else if (o?.state === "superseded") {
|
|
250
|
+
closed(raw, ["state", "boundOperationId"]);
|
|
251
|
+
hex(o.boundOperationId, 32, "boundOperationId");
|
|
252
|
+
}
|
|
253
|
+
else
|
|
254
|
+
badResult("unknown outcome");
|
|
255
|
+
}
|
|
256
|
+
function nameView(raw) {
|
|
257
|
+
const o = closed(raw, ["endpoint", "owner", "claimReference", "requestId", "requestDigest", "revision"]);
|
|
258
|
+
endpointName(o.endpoint);
|
|
259
|
+
ownerTok(o.owner);
|
|
260
|
+
text(o.claimReference, "claimReference", 512);
|
|
261
|
+
hex(o.requestId, 32, "requestId");
|
|
262
|
+
dig(o.requestDigest, "requestDigest");
|
|
263
|
+
nat(o.revision, "revision");
|
|
264
|
+
}
|
|
265
|
+
function command(raw) {
|
|
266
|
+
const o = closed(raw, ["name", "clusterDigest", "class", "targeted", "modes", "capability", "inputDigest", "outputDigest", "traits"]);
|
|
267
|
+
if (typeof o.name !== "string")
|
|
268
|
+
badResult("invalid command name");
|
|
269
|
+
grammar(() => assertCommandToken(o.name), "command name");
|
|
270
|
+
dig(o.clusterDigest, "clusterDigest");
|
|
271
|
+
oneOf(o.class, ["ephemeral", "journal"], "command class");
|
|
272
|
+
if (typeof o.targeted !== "boolean" || !Array.isArray(o.modes) || !o.modes.every((m) => typeof m === "string" && isEpAuthzMode(m))
|
|
273
|
+
|| new Set(o.modes).size !== o.modes.length || (o.modes.length === 0) === o.targeted)
|
|
274
|
+
badResult("invalid command authorization modes");
|
|
275
|
+
text(o.capability, "capability");
|
|
276
|
+
dig(o.inputDigest, "inputDigest");
|
|
277
|
+
dig(o.outputDigest, "outputDigest");
|
|
278
|
+
if (!Array.isArray(o.traits) || o.traits.length > 32)
|
|
279
|
+
badResult("invalid traits");
|
|
280
|
+
for (const t of o.traits)
|
|
281
|
+
text(t, "trait");
|
|
282
|
+
}
|
|
283
|
+
/** Commands of one proposal: well formed, at most 128, unique and sorted by name. */
|
|
284
|
+
export function parseServiceProposalCommands(raw) {
|
|
285
|
+
if (!Array.isArray(raw) || raw.length === 0 || raw.length > 128)
|
|
286
|
+
badResult("a proposal carries 1 to 128 commands");
|
|
287
|
+
raw.forEach(command);
|
|
288
|
+
const names = raw.map((c) => c.name);
|
|
289
|
+
if (names.some((n, i) => i > 0 && !(names[i - 1] < n)))
|
|
290
|
+
badResult("commands must be unique and sorted by name");
|
|
291
|
+
return structuredClone(raw);
|
|
292
|
+
}
|
|
293
|
+
/** Cluster digests of one proposal: canonical, at most 32, unique, in submitted order. */
|
|
294
|
+
export function parseServiceProposalClusters(raw) {
|
|
295
|
+
if (!Array.isArray(raw) || raw.length === 0 || raw.length > 32)
|
|
296
|
+
badResult("a proposal carries 1 to 32 cluster digests");
|
|
297
|
+
raw.forEach((d) => dig(d, "clusterDigest"));
|
|
298
|
+
if (new Set(raw).size !== raw.length)
|
|
299
|
+
badResult("cluster digests must be unique");
|
|
300
|
+
return [...raw];
|
|
301
|
+
}
|
|
302
|
+
export function parseServiceProposalView(raw) {
|
|
303
|
+
const o = closed(raw, ["proposalId", "proposalDigest", "owner", "endpoint", "instanceId", "state", "createdAt", "expiresAt", "clusterDigests", "commands", "nameBinding", "decision"]);
|
|
304
|
+
hex(o.proposalId, 64, "proposalId");
|
|
305
|
+
dig(o.proposalDigest, "proposalDigest");
|
|
306
|
+
ownerTok(o.owner);
|
|
307
|
+
endpointName(o.endpoint);
|
|
308
|
+
lifecycleTok(o.instanceId, "instanceId");
|
|
309
|
+
oneOf(o.state, ["proposed", "approving"], "live proposal state");
|
|
310
|
+
nat(o.createdAt, "createdAt");
|
|
311
|
+
nat(o.expiresAt, "expiresAt");
|
|
312
|
+
parseServiceProposalClusters(o.clusterDigests);
|
|
313
|
+
parseServiceProposalCommands(o.commands);
|
|
314
|
+
nullable(o.nameBinding, nameView);
|
|
315
|
+
nullable(o.decision, (v) => { const d = closed(v, ["operationId", "assignmentDigest"]); hex(d.operationId, 32, "operationId"); dig(d.assignmentDigest, "assignmentDigest"); });
|
|
316
|
+
if ((o.state === "approving") !== (o.decision !== null))
|
|
317
|
+
badResult("an approving proposal names its decision, and only then");
|
|
318
|
+
return structuredClone(o);
|
|
319
|
+
}
|
|
320
|
+
export function parseServiceProposalTombstoneView(raw) {
|
|
321
|
+
const o = closed(raw, ["proposalId", "proposalDigest", "owner", "endpoint", "instanceId", "register", "state", "operationId", "approvalDigest", "reason", "at"]);
|
|
322
|
+
hex(o.proposalId, 64, "proposalId");
|
|
323
|
+
dig(o.proposalDigest, "proposalDigest");
|
|
324
|
+
ownerTok(o.owner);
|
|
325
|
+
endpointName(o.endpoint);
|
|
326
|
+
lifecycleTok(o.instanceId, "instanceId");
|
|
327
|
+
const r = closed(o.register, ["requestId", "requestDigest", "operationId"]);
|
|
328
|
+
hex(r.requestId, 32, "requestId");
|
|
329
|
+
dig(r.requestDigest, "requestDigest");
|
|
330
|
+
hex(r.operationId, 32, "operationId");
|
|
331
|
+
oneOf(o.state, ["approved", "refused", "expired"], "terminal proposal state");
|
|
332
|
+
nullable(o.operationId, (v) => hex(v, 32, "operationId"));
|
|
333
|
+
nullable(o.approvalDigest, (v) => dig(v, "approvalDigest"));
|
|
334
|
+
nullable(o.reason, (v) => oneOf(v, CLOSE_REASONS, "close reason"));
|
|
335
|
+
nat(o.at, "at");
|
|
336
|
+
if ((o.state === "approved") !== (o.approvalDigest !== null) || (o.state === "approved" && (o.operationId === null || o.reason !== null))
|
|
337
|
+
|| (o.state !== "approved" && o.reason === null))
|
|
338
|
+
badResult("terminal proposal fields do not match its state");
|
|
339
|
+
return structuredClone(o);
|
|
340
|
+
}
|
|
341
|
+
function operationTarget(raw) {
|
|
342
|
+
const o = raw;
|
|
343
|
+
if (o?.kind !== "service")
|
|
344
|
+
badResult("unsupported operation target");
|
|
345
|
+
closed(raw, ["kind", "endpoint", "instanceId", "assignmentDigest"]);
|
|
346
|
+
endpointName(o.endpoint);
|
|
347
|
+
lifecycleTok(o.instanceId, "instanceId");
|
|
348
|
+
nullable(o.assignmentDigest, (v) => dig(v, "assignmentDigest"));
|
|
349
|
+
}
|
|
350
|
+
export function parseServiceOperationView(raw) {
|
|
351
|
+
const o = closed(raw, ["operationId", "requestDigest", "operation", "target", "projection", "progress", "debt"]);
|
|
352
|
+
hex(o.operationId, 32, "operationId");
|
|
353
|
+
dig(o.requestDigest, "requestDigest");
|
|
354
|
+
oneOf(o.operation, ["register", "decide", "revoke"], "operation");
|
|
355
|
+
operationTarget(o.target);
|
|
356
|
+
projection(o.projection);
|
|
357
|
+
debtList(o.debt);
|
|
358
|
+
const p = o.progress;
|
|
359
|
+
if (p?.state === "pending") {
|
|
360
|
+
closed(p, ["state", "phase"], ["notBefore"]);
|
|
361
|
+
text(p.phase, "phase", 64);
|
|
362
|
+
if (Object.hasOwn(p, "notBefore"))
|
|
363
|
+
nat(p.notBefore, "notBefore");
|
|
364
|
+
}
|
|
365
|
+
else if (p?.state === "held") {
|
|
366
|
+
closed(p, ["state", "reason", "phase"]);
|
|
367
|
+
text(p.reason, "reason", 64);
|
|
368
|
+
text(p.phase, "phase", 64);
|
|
369
|
+
}
|
|
370
|
+
else
|
|
371
|
+
finalOutcome(p);
|
|
372
|
+
return structuredClone(o);
|
|
373
|
+
}
|
|
374
|
+
export function parseServiceOperationTerminalView(raw) {
|
|
375
|
+
const o = closed(raw, ["operationId", "requestDigest", "operation", "projection", "outcome"]);
|
|
376
|
+
hex(o.operationId, 32, "operationId");
|
|
377
|
+
dig(o.requestDigest, "requestDigest");
|
|
378
|
+
oneOf(o.operation, ["register", "decide", "revoke"], "operation");
|
|
379
|
+
projection(o.projection);
|
|
380
|
+
finalOutcome(o.outcome);
|
|
381
|
+
return structuredClone(o);
|
|
382
|
+
}
|
|
383
|
+
export function parseServiceApprovalResult(raw) {
|
|
384
|
+
const o = closed(raw, ["proposalId", "proposalDigest", "operationId", "assignment", "approvalDigest", "approvalExpiresAt", "callerCeiling",
|
|
385
|
+
"nameAuthorityRevision", "rootCredentialId", "rootExpiresAt", "approvedGateRevision"]);
|
|
386
|
+
hex(o.proposalId, 64, "proposalId");
|
|
387
|
+
dig(o.proposalDigest, "proposalDigest");
|
|
388
|
+
hex(o.operationId, 32, "operationId");
|
|
389
|
+
const a = closed(o.assignment, ["endpoint", "instanceId", "assignmentDigest", "lifecycleUid"]);
|
|
390
|
+
endpointName(a.endpoint);
|
|
391
|
+
lifecycleTok(a.instanceId, "instanceId");
|
|
392
|
+
dig(a.assignmentDigest, "assignmentDigest");
|
|
393
|
+
lifecycleTok(a.lifecycleUid, "lifecycleUid");
|
|
394
|
+
dig(o.approvalDigest, "approvalDigest");
|
|
395
|
+
nullable(o.approvalExpiresAt, (v) => nat(v, "approvalExpiresAt"));
|
|
396
|
+
capabilities(o.callerCeiling);
|
|
397
|
+
nat(o.nameAuthorityRevision, "nameAuthorityRevision");
|
|
398
|
+
lifecycleTok(o.rootCredentialId, "rootCredentialId");
|
|
399
|
+
nat(o.rootExpiresAt, "rootExpiresAt");
|
|
400
|
+
nullable(o.approvedGateRevision, (v) => nat(v, "approvedGateRevision"));
|
|
401
|
+
return structuredClone(o);
|
|
402
|
+
}
|
|
403
|
+
const SUPPORTED_RESULTS = new Set(["decide", "revoke", "name-bind", "operation-read", "proposal-read"]);
|
|
404
|
+
/** Closed parser for the results of the operations this slice serves (decide, revoke, name-bind,
|
|
405
|
+
* operation-read, proposal-read) and for the shared arms of every operation. */
|
|
406
|
+
export function parseServiceHostResult(raw) {
|
|
407
|
+
const env = ["v", "kind", "operation", "requestId", "space", "accountPublicKey", "state"];
|
|
408
|
+
const o = raw, state = o?.state;
|
|
409
|
+
let keys;
|
|
410
|
+
if (state === "denied") {
|
|
411
|
+
keys = closed(raw, [...env, "reason"], ["boundOperationId"]);
|
|
412
|
+
oneOf(o.reason, SERVICE_HOST_REASONS, "reason");
|
|
413
|
+
if (Object.hasOwn(o, "boundOperationId"))
|
|
414
|
+
hex(o.boundOperationId, 32, "boundOperationId");
|
|
415
|
+
}
|
|
416
|
+
else if (state === "pending") {
|
|
417
|
+
keys = closed(raw, [...env, "operationId", "phase"], ["notBefore", "assignmentDigest", "denyNew", "root", "debt"]);
|
|
418
|
+
hex(o.operationId, 32, "operationId");
|
|
419
|
+
text(o.phase, "phase", 64);
|
|
420
|
+
if (Object.hasOwn(o, "notBefore"))
|
|
421
|
+
nat(o.notBefore, "notBefore");
|
|
422
|
+
if (Object.hasOwn(o, "assignmentDigest"))
|
|
423
|
+
dig(o.assignmentDigest, "assignmentDigest");
|
|
424
|
+
if (Object.hasOwn(o, "denyNew"))
|
|
425
|
+
oneOf(o.denyNew, DENY_NEW, "denyNew");
|
|
426
|
+
if (Object.hasOwn(o, "root"))
|
|
427
|
+
oneOf(o.root, ["none", "revoked", "retained-stamped"], "root");
|
|
428
|
+
if (Object.hasOwn(o, "debt"))
|
|
429
|
+
debtList(o.debt);
|
|
430
|
+
}
|
|
431
|
+
else if (state === "held") {
|
|
432
|
+
keys = closed(raw, [...env, "operationId", "reason", "phase"], ["assignmentDigest", "denyNew", "debt"]);
|
|
433
|
+
hex(o.operationId, 32, "operationId");
|
|
434
|
+
text(o.reason, "reason", 64);
|
|
435
|
+
text(o.phase, "phase", 64);
|
|
436
|
+
if (Object.hasOwn(o, "assignmentDigest"))
|
|
437
|
+
dig(o.assignmentDigest, "assignmentDigest");
|
|
438
|
+
if (Object.hasOwn(o, "denyNew"))
|
|
439
|
+
oneOf(o.denyNew, DENY_NEW, "denyNew");
|
|
440
|
+
if (Object.hasOwn(o, "debt"))
|
|
441
|
+
debtList(o.debt);
|
|
442
|
+
}
|
|
443
|
+
else if (state === "refused" && Object.hasOwn(o, "operationId")) {
|
|
444
|
+
keys = closed(raw, [...env, "operationId", "reason"], ["boundOperationId", "debt"]);
|
|
445
|
+
hex(o.operationId, 32, "operationId");
|
|
446
|
+
oneOf(o.reason, SERVICE_OPERATION_REFUSALS, "refusal");
|
|
447
|
+
if (Object.hasOwn(o, "boundOperationId"))
|
|
448
|
+
hex(o.boundOperationId, 32, "boundOperationId");
|
|
449
|
+
if (Object.hasOwn(o, "debt"))
|
|
450
|
+
debtList(o.debt);
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
if (!SUPPORTED_RESULTS.has(o?.operation))
|
|
454
|
+
badResult("unsupported operation result");
|
|
455
|
+
if (o.operation === "decide" && state === "approved") {
|
|
456
|
+
keys = closed(raw, [...env, "outcome", "approval"], ["debt"]);
|
|
457
|
+
oneOf(o.outcome, OUTCOMES, "outcome");
|
|
458
|
+
parseServiceApprovalResult(o.approval);
|
|
459
|
+
if (Object.hasOwn(o, "debt"))
|
|
460
|
+
debtList(o.debt);
|
|
461
|
+
}
|
|
462
|
+
else if (o.operation === "decide" && state === "refused") {
|
|
463
|
+
keys = closed(raw, [...env, "outcome", "proposal", "revision"], ["debt"]);
|
|
464
|
+
oneOf(o.outcome, OUTCOMES, "outcome");
|
|
465
|
+
parseServiceProposalTombstoneView(o.proposal);
|
|
466
|
+
nat(o.revision, "revision");
|
|
467
|
+
if (Object.hasOwn(o, "debt"))
|
|
468
|
+
debtList(o.debt);
|
|
469
|
+
}
|
|
470
|
+
else if (o.operation === "name-bind" && state === "bound") {
|
|
471
|
+
keys = closed(raw, [...env, "binding"]);
|
|
472
|
+
nameView(o.binding);
|
|
473
|
+
}
|
|
474
|
+
else if (o.operation === "revoke" && state === "retired") {
|
|
475
|
+
keys = closed(raw, [...env, "assignmentDigest", "operationId"]);
|
|
476
|
+
dig(o.assignmentDigest, "assignmentDigest");
|
|
477
|
+
hex(o.operationId, 32, "operationId");
|
|
478
|
+
}
|
|
479
|
+
else if ((o.operation === "operation-read" || o.operation === "proposal-read") && state === "absent")
|
|
480
|
+
keys = closed(raw, env);
|
|
481
|
+
else if ((o.operation === "operation-read" || o.operation === "proposal-read") && state === "present") {
|
|
482
|
+
keys = closed(raw, [...env, "record"]);
|
|
483
|
+
const r = closed(o.record, ["value", "revision"]);
|
|
484
|
+
nat(r.revision, "revision");
|
|
485
|
+
const v = r.value;
|
|
486
|
+
if (o.operation === "operation-read")
|
|
487
|
+
(v && Object.hasOwn(v, "outcome") ? parseServiceOperationTerminalView : parseServiceOperationView)(v);
|
|
488
|
+
else
|
|
489
|
+
(v && Object.hasOwn(v, "register") ? parseServiceProposalTombstoneView : parseServiceProposalView)(v);
|
|
490
|
+
}
|
|
491
|
+
else
|
|
492
|
+
badResult("unknown result state");
|
|
493
|
+
}
|
|
494
|
+
if (keys.v !== 1 || keys.kind !== "service-endpoint-host")
|
|
495
|
+
badResult("unknown version or kind");
|
|
496
|
+
hex(keys.requestId, 32, "requestId");
|
|
497
|
+
text(keys.space, "space");
|
|
498
|
+
if (typeof keys.accountPublicKey !== "string" || !isAccountNkey(keys.accountPublicKey))
|
|
499
|
+
badResult("invalid account public key");
|
|
500
|
+
if (!["proposal-read", "proposal-list", "instance-read", "instance-list", "operation-read", "name-read", "decide", "name-bind", "revoke",
|
|
501
|
+
"caller-policy-read", "caller-policy-list", "caller-grant", "caller-revoke", "quarantine-restored", "admission-open"].includes(keys.operation))
|
|
502
|
+
badResult("unknown operation");
|
|
503
|
+
return structuredClone(raw);
|
|
504
|
+
}
|
|
176
505
|
//# sourceMappingURL=service-host-contract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-host-contract.js","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service-host-contract.js","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}
|