@decionis/agent-safe-pipeline 0.4.1 → 0.5.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.
Files changed (75) hide show
  1. package/README.md +10 -0
  2. package/dist/Index.d.ts +6 -0
  3. package/dist/Index.d.ts.map +1 -1
  4. package/dist/Index.js +6 -0
  5. package/dist/Index.js.map +1 -1
  6. package/dist/execution/ActionRegistry.d.ts +12 -0
  7. package/dist/execution/ActionRegistry.d.ts.map +1 -1
  8. package/dist/execution/ActionRegistry.js +14 -0
  9. package/dist/execution/ActionRegistry.js.map +1 -1
  10. package/dist/execution/GovernedExecutionRunner.d.ts +8 -0
  11. package/dist/execution/GovernedExecutionRunner.d.ts.map +1 -1
  12. package/dist/execution/GovernedExecutionRunner.js +28 -0
  13. package/dist/execution/GovernedExecutionRunner.js.map +1 -1
  14. package/dist/execution/NativeExecutor.d.ts +13 -0
  15. package/dist/execution/NativeExecutor.d.ts.map +1 -1
  16. package/dist/execution/NativeExecutor.js.map +1 -1
  17. package/dist/intent/ExecutionIntent.d.ts +11 -0
  18. package/dist/intent/ExecutionIntent.d.ts.map +1 -1
  19. package/dist/intent/ExecutionIntent.js +15 -0
  20. package/dist/intent/ExecutionIntent.js.map +1 -1
  21. package/dist/intent/ExecutionSignals.d.ts +9 -1
  22. package/dist/intent/ExecutionSignals.d.ts.map +1 -1
  23. package/dist/intent/ExecutionSignals.js +9 -0
  24. package/dist/intent/ExecutionSignals.js.map +1 -1
  25. package/dist/intent/IntentCapture.d.ts.map +1 -1
  26. package/dist/intent/IntentCapture.js +15 -4
  27. package/dist/intent/IntentCapture.js.map +1 -1
  28. package/dist/intent/TargetPrecondition.d.ts +36 -0
  29. package/dist/intent/TargetPrecondition.d.ts.map +1 -0
  30. package/dist/intent/TargetPrecondition.js +57 -0
  31. package/dist/intent/TargetPrecondition.js.map +1 -0
  32. package/dist/manifest/ActionManifest.d.ts +112 -0
  33. package/dist/manifest/ActionManifest.d.ts.map +1 -0
  34. package/dist/manifest/ActionManifest.js +182 -0
  35. package/dist/manifest/ActionManifest.js.map +1 -0
  36. package/dist/plan/GovernedPlan.d.ts +109 -0
  37. package/dist/plan/GovernedPlan.d.ts.map +1 -0
  38. package/dist/plan/GovernedPlan.js +187 -0
  39. package/dist/plan/GovernedPlan.js.map +1 -0
  40. package/dist/plan/PlanState.d.ts +94 -0
  41. package/dist/plan/PlanState.d.ts.map +1 -0
  42. package/dist/plan/PlanState.js +240 -0
  43. package/dist/plan/PlanState.js.map +1 -0
  44. package/dist/plan/PlanStepReference.d.ts +16 -0
  45. package/dist/plan/PlanStepReference.d.ts.map +1 -0
  46. package/dist/plan/PlanStepReference.js +25 -0
  47. package/dist/plan/PlanStepReference.js.map +1 -0
  48. package/dist/profile/ApiProfile.d.ts +202 -2
  49. package/dist/profile/ApiProfile.d.ts.map +1 -1
  50. package/dist/profile/ApiProfile.js +397 -11
  51. package/dist/profile/ApiProfile.js.map +1 -1
  52. package/dist/profile/BuiltInApiProfiles.d.ts.map +1 -1
  53. package/dist/profile/BuiltInApiProfiles.js +199 -1
  54. package/dist/profile/BuiltInApiProfiles.js.map +1 -1
  55. package/dist/profile/McpToolProfile.d.ts +129 -0
  56. package/dist/profile/McpToolProfile.d.ts.map +1 -0
  57. package/dist/profile/McpToolProfile.js +270 -0
  58. package/dist/profile/McpToolProfile.js.map +1 -0
  59. package/dist/testing/Index.d.ts +3 -1
  60. package/dist/testing/Index.d.ts.map +1 -1
  61. package/dist/testing/Index.js +2 -0
  62. package/dist/testing/Index.js.map +1 -1
  63. package/dist/testing/LocalAssumptionBreaches.d.ts +96 -0
  64. package/dist/testing/LocalAssumptionBreaches.d.ts.map +1 -0
  65. package/dist/testing/LocalAssumptionBreaches.js +109 -0
  66. package/dist/testing/LocalAssumptionBreaches.js.map +1 -0
  67. package/dist/testing/LocalAuthority.d.ts +152 -5
  68. package/dist/testing/LocalAuthority.d.ts.map +1 -1
  69. package/dist/testing/LocalAuthority.js +294 -18
  70. package/dist/testing/LocalAuthority.js.map +1 -1
  71. package/dist/testing/LocalPlans.d.ts +43 -0
  72. package/dist/testing/LocalPlans.d.ts.map +1 -0
  73. package/dist/testing/LocalPlans.js +124 -0
  74. package/dist/testing/LocalPlans.js.map +1 -0
  75. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { TargetPreconditionSchema } from "../intent/TargetPrecondition.js";
2
3
  /**
3
4
  * `agent-safe.profile.api/1`: a platform API described as data, so that every
4
5
  * component that turns one of its calls into an intent turns it into the same
@@ -7,11 +8,24 @@ import { z } from "zod";
7
8
  * by JSON pointer into the call. The gateway reads it to govern an agent's
8
9
  * call; a native executor's `prepare` reads it to describe the call it is
9
10
  * about to make. One mapping, no code coupling between them.
11
+ *
12
+ * An operation may also say where the subject sits (the customer a call is
13
+ * for): in the call, and, for a read, in each item of its answer. A component
14
+ * that pins a session to one subject checks a read against it, and states the
15
+ * subject to the authority for a write. A read is an operation only for that:
16
+ * it is checked, never decided.
17
+ *
18
+ * A write may also name the read that states its target's version (an ETag,
19
+ * a row version), and where that read's answer states it: a component that
20
+ * binds the target's state reads it once before the authority is asked, and
21
+ * the version rides into the intent as its precondition.
10
22
  */
11
23
  export const API_PROFILE_CONTRACT = "agent-safe.profile.api/1";
12
24
  export const API_PROFILE_SCHEMA_ID = "https://github.com/decionis/agent-safe-pipeline/blob/master/spec/profiles/api/v1/schema.json";
13
- /** The methods a profile governs; a read is never an operation. */
25
+ /** The methods a profile governs: each operation of one is decided by the authority. */
14
26
  export const API_PROFILE_METHODS = ["POST", "PUT", "PATCH", "DELETE"];
27
+ /** The one read method an operation may name: checked for its subject, never decided. */
28
+ export const API_PROFILE_READ_METHOD = "GET";
15
29
  /**
16
30
  * Fact names a profile may not use. The first group is what the gateway
17
31
  * already states in an intent's context; the second is what the Decionis
@@ -20,6 +34,7 @@ export const API_PROFILE_METHODS = ["POST", "PUT", "PATCH", "DELETE"];
20
34
  */
21
35
  export const RESERVED_FACT_NAMES = [
22
36
  "request_sha256",
37
+ "request_hmac_sha256",
23
38
  "body_sha256",
24
39
  "body_bytes",
25
40
  "content_type",
@@ -53,14 +68,20 @@ export const RESERVED_FACT_NAMES = [
53
68
  "context",
54
69
  "intake",
55
70
  "runtime_attribution",
71
+ "session",
56
72
  ];
57
73
  /** The most elements one `*` pointer collects; more is not a fact, it is a payload. */
58
74
  export const MAX_FACT_ELEMENTS = 100;
59
75
  /** The longest string a fact carries; a longer value is not stated. */
60
76
  export const MAX_FACT_STRING = 1000;
77
+ /** The longest subject: an identifier, never a payload. */
78
+ export const MAX_SUBJECT_LENGTH = 200;
61
79
  const PLACEHOLDER = /\{([A-Z]\w{0,63})\}/gi;
62
80
  const TEMPLATE = /^(\/[^/?#%\\\s]+)+$/;
63
81
  const POINTER = /^\/(path|query|body)(\/.*)?$/;
82
+ const RESPONSE_POINTER = /^\/body(\/.*)?$/;
83
+ /** Into a read's answer: its JSON body, or one response header by its lower-case name. */
84
+ const STATE_POINTER = /^\/(body(\/.*)?|headers\/[a-z0-9][a-z0-9-]{0,63})$/;
64
85
  const name = z.string().regex(/^[a-z][a-z0-9_]{0,63}$/);
65
86
  const projectionText = z.string().trim().min(1).max(120);
66
87
  export const ApiPolicyProjectionSchema = z.strictObject({
@@ -69,13 +90,54 @@ export const ApiPolicyProjectionSchema = z.strictObject({
69
90
  workflow_key: projectionText.nullable(),
70
91
  channel: projectionText.nullable(),
71
92
  });
93
+ /** A query parameter's name as a subject rule names it: `$filter` as well as `sku`. */
94
+ const queryName = z.string().regex(/^\$?[a-z][\w.-]{0,63}$/i);
95
+ /**
96
+ * Where an operation's subject sits, and what else a call or an answer may
97
+ * carry around it:
98
+ *
99
+ * - `request`, a pointer into the call like a fact's, with no `*`;
100
+ * - `response`, a pointer into a successful answer's JSON body, where one `*`
101
+ * reaches every item of a list;
102
+ * - `query`, for a read, the one query parameter that must state the subject,
103
+ * exactly as `template` writes it with `{subject}` in place of the
104
+ * session's subject (`customerNumber eq '{subject}'`);
105
+ * - `parameters`, for a read, every other query parameter it may carry;
106
+ * - `envelope`, beside a `response` pointer through `*`, the keys the object
107
+ * holding the list may carry besides the list.
108
+ */
109
+ export const ApiSubjectSchema = z.strictObject({
110
+ request: z.string().max(300).regex(POINTER).optional(),
111
+ response: z.string().max(300).regex(RESPONSE_POINTER).optional(),
112
+ query: z
113
+ .strictObject({
114
+ name: queryName,
115
+ template: z.string().min(1).max(300),
116
+ })
117
+ .optional(),
118
+ parameters: z.array(queryName).max(32).optional(),
119
+ envelope: z.array(z.string().min(1).max(100)).max(32).optional(),
120
+ });
121
+ const operationId = z
122
+ .string()
123
+ .regex(/^[a-z][A-Za-z0-9]*(\.[a-z][A-Za-z0-9]*)*$/)
124
+ .max(120);
125
+ /**
126
+ * Where a write's target states its version: `read`, a read in the same
127
+ * profile whose path placeholders the write's path also has, so the read can
128
+ * be made from the write's own call; `version`, a pointer into the read's
129
+ * answer, `{ body, headers }`, with no `*`; and `state`, where the same answer
130
+ * states the target's state, when a transition rule reads one.
131
+ */
132
+ export const ApiPreconditionSchema = z.strictObject({
133
+ read: operationId,
134
+ version: z.string().max(300).regex(STATE_POINTER),
135
+ state: z.string().max(300).regex(STATE_POINTER).optional(),
136
+ });
72
137
  export const ApiOperationSchema = z.strictObject({
73
138
  /** The operation's name in the profile, unique, dotted lower camel case. */
74
- id: z
75
- .string()
76
- .regex(/^[a-z][A-Za-z0-9]*(\.[a-z][A-Za-z0-9]*)*$/)
77
- .max(120),
78
- method: z.enum(API_PROFILE_METHODS),
139
+ id: operationId,
140
+ method: z.enum([...API_PROFILE_METHODS, API_PROFILE_READ_METHOD]),
79
141
  /** A path template: literal text and `{name}` placeholders, each within one segment. */
80
142
  path: z.string().max(500).regex(TEMPLATE),
81
143
  /** Exact query values the call must carry to be this operation (an API that overloads a path). */
@@ -90,6 +152,10 @@ export const ApiOperationSchema = z.strictObject({
90
152
  facts: z.record(name, z.string().max(300).regex(POINTER)),
91
153
  /** The policy path the authority decides the call under, when the profile states one. */
92
154
  policy_projection: ApiPolicyProjectionSchema.nullable(),
155
+ /** Where the call's subject sits; required of a read, optional for a write. */
156
+ subject: ApiSubjectSchema.optional(),
157
+ /** For a write, the read that states its target's version. */
158
+ precondition: ApiPreconditionSchema.optional(),
93
159
  });
94
160
  export const ApiProfileDefinitionSchema = z.strictObject({
95
161
  profile: z.literal(API_PROFILE_CONTRACT),
@@ -110,6 +176,8 @@ export const ApiProfileDefinitionSchema = z.strictObject({
110
176
  .max(8),
111
177
  operations: z.array(ApiOperationSchema).min(1).max(200),
112
178
  });
179
+ /** Where a template states the subject. */
180
+ const SUBJECT_PLACEHOLDER = "{subject}";
113
181
  export class ApiProfileError extends Error {
114
182
  code;
115
183
  detail;
@@ -147,6 +215,8 @@ export class ApiProfile {
147
215
  }
148
216
  for (const pointer of Object.values(operation.facts))
149
217
  ApiProfile.pointerSegments(pointer, operation.id);
218
+ ApiProfile.subjectRules(operation);
219
+ ApiProfile.preconditionRules(operation, definition.operations);
150
220
  const matchers = [];
151
221
  const placeholders = [];
152
222
  for (const prefix of definition.prefixes) {
@@ -154,7 +224,13 @@ export class ApiProfile {
154
224
  matchers.push(pattern);
155
225
  placeholders.push(names);
156
226
  }
157
- return { definition: operation, matchers, placeholders };
227
+ return {
228
+ definition: operation,
229
+ matchers,
230
+ loose: matchers.map((matcher) => new RegExp(matcher.source, "i")),
231
+ beneath: matchers.map((matcher) => new RegExp(`${matcher.source.slice(0, -1)}/`, "i")),
232
+ placeholders,
233
+ };
158
234
  });
159
235
  }
160
236
  /** Validates a definition (closed schema, unique operations, pointers, reserved names) and compiles it. */
@@ -173,9 +249,134 @@ export class ApiProfile {
173
249
  get platform() {
174
250
  return this.definition.platform;
175
251
  }
176
- /** Every action type the profile can produce, for a registry to be sealed over. */
252
+ /**
253
+ * Every action type the profile's writes can produce, for a registry to be
254
+ * sealed over. A read's action names it in reports; it is never an intent.
255
+ */
177
256
  actions() {
178
- return [...new Set(this.definition.operations.map((operation) => operation.action))];
257
+ return [
258
+ ...new Set(this.definition.operations
259
+ .filter((operation) => !ApiProfile.isRead(operation))
260
+ .map((operation) => operation.action)),
261
+ ];
262
+ }
263
+ /** Whether an operation is a read: checked for its subject, never decided. */
264
+ static isRead(operation) {
265
+ return operation.method === API_PROFILE_READ_METHOD;
266
+ }
267
+ /**
268
+ * A call against the session's subject, before it is sent: `MATCH`, or why
269
+ * not. A read that names the query parameters it may carry carries no
270
+ * other (`QUERY_PARAMETER_REFUSED`); a read that names its subject query
271
+ * states the session's subject there and nothing else, so a list can be
272
+ * asked only for the session's own records; and the subject at the
273
+ * operation's request pointer is the session's.
274
+ */
275
+ checkRequest(match, query, subject) {
276
+ const definition = this.operation(match.operation);
277
+ const declared = definition?.subject;
278
+ if (declared?.parameters !== undefined) {
279
+ const allowed = new Set([
280
+ ...declared.parameters,
281
+ ...(declared.query === undefined ? [] : [declared.query.name]),
282
+ ...Object.keys(definition?.query ?? {}),
283
+ ]);
284
+ if (Object.keys(query).some((name) => !allowed.has(name)))
285
+ return "QUERY_PARAMETER_REFUSED";
286
+ }
287
+ if (declared?.query !== undefined) {
288
+ const stated = ApiProfile.checkQuery(declared.query.template, query[declared.query.name], subject);
289
+ if (stated !== "MATCH")
290
+ return stated;
291
+ }
292
+ if (match.subject === undefined)
293
+ return "MATCH";
294
+ if (match.subject === null)
295
+ return "SUBJECT_ABSENT";
296
+ return match.subject === subject ? "MATCH" : "SUBJECT_MISMATCH";
297
+ }
298
+ /**
299
+ * A subject query parameter against its template: absent is
300
+ * `SUBJECT_ABSENT`; given twice, or anything but the template with one
301
+ * literal in place of `{subject}`, is `QUERY_PARAMETER_REFUSED`, which is
302
+ * what a second predicate beside the subject's is; a literal naming
303
+ * another subject is `SUBJECT_MISMATCH`. A `'` inside the literal is
304
+ * written doubled, as an OData string literal writes it; a single one ends
305
+ * the literal, so it refuses the call.
306
+ */
307
+ static checkQuery(template, value, subject) {
308
+ if (value === undefined)
309
+ return "SUBJECT_ABSENT";
310
+ if (typeof value !== "string")
311
+ return "QUERY_PARAMETER_REFUSED";
312
+ const at = template.indexOf(SUBJECT_PLACEHOLDER);
313
+ const prefix = template.slice(0, at);
314
+ const suffix = template.slice(at + SUBJECT_PLACEHOLDER.length);
315
+ if (value.length < prefix.length + suffix.length ||
316
+ !value.startsWith(prefix) ||
317
+ !value.endsWith(suffix)) {
318
+ return "QUERY_PARAMETER_REFUSED";
319
+ }
320
+ const literal = value.slice(prefix.length, value.length - suffix.length);
321
+ let named = "";
322
+ for (let index = 0; index < literal.length; index += 1) {
323
+ const character = literal[index];
324
+ if (character === "'") {
325
+ if (literal[index + 1] !== "'")
326
+ return "QUERY_PARAMETER_REFUSED";
327
+ index += 1;
328
+ }
329
+ named += character;
330
+ }
331
+ return named === subject ? "MATCH" : "SUBJECT_MISMATCH";
332
+ }
333
+ /**
334
+ * A successful answer, to a read or a write, against the session's
335
+ * subject, before any of it is relayed: every item the operation's response
336
+ * pointer reaches must name the subject. One item naming another is
337
+ * `RESPONSE_SUBJECT_MISMATCH`, one naming none `RESPONSE_SUBJECT_ABSENT`,
338
+ * and an answer the pointer cannot be walked into (not JSON, or no list
339
+ * where the `*` stands) `RESPONSE_UNREADABLE`. Beside a list, the object
340
+ * that holds it may carry only the keys the operation's `envelope` names,
341
+ * so a count or a summary about other subjects is `RESPONSE_KEY_REFUSED`.
342
+ * Nothing is filtered: a partial answer would look complete. An empty list
343
+ * names no one and matches. Null when the operation names no response
344
+ * subject, so there is nothing to check.
345
+ */
346
+ checkResponse(operationId, body, subject) {
347
+ const pointer = this.operation(operationId)?.subject?.response;
348
+ if (pointer === undefined)
349
+ return null;
350
+ if (body === undefined)
351
+ return "RESPONSE_UNREADABLE";
352
+ const tokens = ApiProfile.pointerSegments(pointer, operationId);
353
+ const root = { body };
354
+ const wildcard = tokens.indexOf("*");
355
+ const items = wildcard === -1
356
+ ? [ApiProfile.walk(root, tokens)]
357
+ : ApiProfile.walkList(root, tokens.slice(0, wildcard), tokens.slice(wildcard + 1));
358
+ if (items === null)
359
+ return "RESPONSE_UNREADABLE";
360
+ if (wildcard > 1) {
361
+ const holder = ApiProfile.walk(root, tokens.slice(0, wildcard - 1));
362
+ const list = tokens[wildcard - 1];
363
+ const envelope = this.operation(operationId)?.subject?.envelope ?? [];
364
+ if (holder !== null &&
365
+ typeof holder === "object" &&
366
+ !Array.isArray(holder) &&
367
+ Object.keys(holder).some((key) => key !== list && !envelope.includes(key))) {
368
+ return "RESPONSE_KEY_REFUSED";
369
+ }
370
+ }
371
+ let absent = false;
372
+ for (const item of items) {
373
+ const named = ApiProfile.subjectOf(item);
374
+ if (named === null)
375
+ absent = true;
376
+ else if (named !== subject)
377
+ return "RESPONSE_SUBJECT_MISMATCH";
378
+ }
379
+ return absent ? "RESPONSE_SUBJECT_ABSENT" : "MATCH";
179
380
  }
180
381
  operation(id) {
181
382
  return this.definition.operations.find((operation) => operation.id === id) ?? null;
@@ -187,6 +388,45 @@ export class ApiProfile {
187
388
  operationFor(method, path, query = {}) {
188
389
  return this.select(method, path, query)?.operation.definition ?? null;
189
390
  }
391
+ /**
392
+ * Whether a call reads like one of this method's operations without
393
+ * matching it exactly: its path in another letter case, or with a literal
394
+ * percent-encoded. An upstream that folds case or decodes before it routes
395
+ * would serve it as that operation, so a component that checks reads
396
+ * refuses it rather than let it through unchecked. A path that does not
397
+ * decode resembles everything.
398
+ */
399
+ resembles(method, path) {
400
+ let decoded;
401
+ try {
402
+ decoded = decodeURIComponent(path);
403
+ }
404
+ catch {
405
+ return true;
406
+ }
407
+ const upper = method.toUpperCase();
408
+ return this.compiled.some((operation) => operation.definition.method === upper &&
409
+ operation.loose.some((matcher) => matcher.test(path) || matcher.test(decoded)));
410
+ }
411
+ /**
412
+ * Whether a call's path goes on below one of this method's operations
413
+ * without being an operation itself, in any letter case: a count
414
+ * (`/customers/$count`), a navigation or a media stream beneath a record.
415
+ * What it answers is not what the operation's subject rule checks, so a
416
+ * component that checks reads refuses it.
417
+ */
418
+ beneath(method, path) {
419
+ let decoded;
420
+ try {
421
+ decoded = decodeURIComponent(path);
422
+ }
423
+ catch {
424
+ return true;
425
+ }
426
+ const upper = method.toUpperCase();
427
+ return this.compiled.some((operation) => operation.definition.method === upper &&
428
+ operation.beneath.some((matcher) => matcher.test(path) || matcher.test(decoded)));
429
+ }
190
430
  /** The operation, action type, facts and policy projection of one call; null when no operation matches. */
191
431
  match(request) {
192
432
  const selected = this.select(request.method, request.path, request.query ?? {});
@@ -204,14 +444,74 @@ export class ApiProfile {
204
444
  if (value !== undefined)
205
445
  facts[fact] = value;
206
446
  }
447
+ const subjectPointer = operation.definition.subject?.request;
207
448
  return {
208
449
  profile: this.definition.id,
209
450
  operation: operation.definition.id,
210
451
  action: operation.definition.action,
211
452
  facts,
212
453
  policyProjection: operation.definition.policy_projection,
454
+ ...(subjectPointer === undefined
455
+ ? {}
456
+ : {
457
+ subject: ApiProfile.subjectOf(ApiProfile.walk(root, ApiProfile.pointerSegments(subjectPointer, operation.definition.id))),
458
+ }),
459
+ };
460
+ }
461
+ /**
462
+ * The read a write's precondition names, as the call to make: `GET`, the
463
+ * read's path under the prefix the write matched, each placeholder filled
464
+ * with the write's own text for it, exactly as the write's call wrote it.
465
+ * Null when the call matches no write, or its operation names no
466
+ * precondition. The component makes the read; the profile makes no call.
467
+ */
468
+ stateRead(request) {
469
+ const selected = this.select(request.method, request.path, request.query ?? {});
470
+ const precondition = selected?.operation.definition.precondition;
471
+ if (selected === null || precondition === undefined)
472
+ return null;
473
+ const read = this.operation(precondition.read);
474
+ const template = `${this.definition.prefixes[selected.prefix]}${read.path}`;
475
+ return {
476
+ method: API_PROFILE_READ_METHOD,
477
+ path: template.replace(PLACEHOLDER, (_, name) => selected.raw[name]),
478
+ ...(read.query === undefined ? {} : { query: { ...read.query } }),
213
479
  };
214
480
  }
481
+ /**
482
+ * The precondition a write's read answered: the version at the operation's
483
+ * pointer, a string or a finite number as a string, within the
484
+ * precondition's bounds; the state beside it when the operation names
485
+ * where; which read said so, as `<profile>#<read>`; and when. Null when the
486
+ * operation names no precondition, or the answer states no usable version:
487
+ * a component that binds the target's state refuses then, rather than bind
488
+ * none. A state the answer does not state is left out.
489
+ */
490
+ precondition(operationId, answer, readAt) {
491
+ const declared = this.operation(operationId)?.precondition;
492
+ if (declared === undefined)
493
+ return null;
494
+ const root = {
495
+ headers: { ...answer.headers },
496
+ ...(answer.body === undefined ? {} : { body: answer.body }),
497
+ };
498
+ const at = (pointer) => {
499
+ if (pointer === undefined)
500
+ return undefined;
501
+ const value = ApiProfile.walk(root, ApiProfile.pointerSegments(pointer, operationId));
502
+ if (typeof value === "string")
503
+ return value;
504
+ return typeof value === "number" && Number.isFinite(value) ? String(value) : undefined;
505
+ };
506
+ const state = at(declared.state);
507
+ const parsed = TargetPreconditionSchema.safeParse({
508
+ version: at(declared.version),
509
+ ...(state === undefined ? {} : { state }),
510
+ source: `${this.definition.id}#${declared.read}`,
511
+ read_at: readAt.toISOString(),
512
+ });
513
+ return parsed.success ? parsed.data : null;
514
+ }
215
515
  select(method, path, query) {
216
516
  const upper = method.toUpperCase();
217
517
  if (!path.startsWith("/") || /[?#]/.test(path))
@@ -226,16 +526,19 @@ export class ApiProfile {
226
526
  if (found === null)
227
527
  continue;
228
528
  const parameters = {};
529
+ const raw = {};
229
530
  let decodable = true;
230
531
  operation.placeholders[index].forEach((placeholder, position) => {
231
- const decoded = ApiProfile.decode(found[position + 1] ?? "");
532
+ const text = found[position + 1] ?? "";
533
+ const decoded = ApiProfile.decode(text);
534
+ raw[placeholder] = text;
232
535
  if (decoded === null)
233
536
  decodable = false;
234
537
  else
235
538
  parameters[placeholder] = decoded;
236
539
  });
237
540
  if (decodable)
238
- return { operation, parameters };
541
+ return { operation, parameters, prefix: index, raw };
239
542
  }
240
543
  }
241
544
  return null;
@@ -291,6 +594,89 @@ export class ApiProfile {
291
594
  }
292
595
  return root;
293
596
  }
597
+ /**
598
+ * What a definition must also be about subjects: a subject names where it
599
+ * sits, in the call, its query or its answer; a read names one and states
600
+ * no fact or policy path, since it is never decided; only a read names a
601
+ * subject query or the parameters it may carry; a request subject is one
602
+ * value, so its pointer has no `*`; a subject query's template states the
603
+ * subject once; an envelope stands beside a list.
604
+ */
605
+ static subjectRules(operation) {
606
+ const subject = operation.subject;
607
+ const refuse = (detail) => {
608
+ throw new ApiProfileError("API_PROFILE_INVALID", `operation ${operation.id} ${detail}`);
609
+ };
610
+ if (subject !== undefined &&
611
+ subject.request === undefined &&
612
+ subject.response === undefined &&
613
+ subject.query === undefined)
614
+ refuse("names an empty subject");
615
+ if (ApiProfile.isRead(operation)) {
616
+ if (subject === undefined)
617
+ refuse("is a read that names no subject");
618
+ if (Object.keys(operation.facts).length > 0 || operation.policy_projection !== null)
619
+ refuse("is a read: it states no fact and no policy projection");
620
+ }
621
+ else if (subject?.query !== undefined || subject?.parameters !== undefined) {
622
+ refuse("is a write: only a read names its query parameters");
623
+ }
624
+ if (subject?.request !== undefined) {
625
+ if (ApiProfile.pointerSegments(subject.request, operation.id).includes("*"))
626
+ refuse("names a request subject through *");
627
+ }
628
+ const response = subject?.response === undefined
629
+ ? null
630
+ : ApiProfile.pointerSegments(subject.response, operation.id);
631
+ const template = subject?.query?.template;
632
+ if (template !== undefined && template.split(SUBJECT_PLACEHOLDER).length !== 2)
633
+ refuse("has a subject query template that does not state {subject} once");
634
+ if (subject?.envelope !== undefined && !(response ?? []).includes("*"))
635
+ refuse("names an envelope without a list to stand beside");
636
+ }
637
+ /**
638
+ * What a precondition must be: a write's, naming a read in the same
639
+ * profile, whose path placeholders the write's path all has, so the read
640
+ * is made from the write's own call; and pointers through no `*`, since a
641
+ * version is one value.
642
+ */
643
+ static preconditionRules(operation, operations) {
644
+ const precondition = operation.precondition;
645
+ if (precondition === undefined)
646
+ return;
647
+ const refuse = (detail) => {
648
+ throw new ApiProfileError("API_PROFILE_INVALID", `operation ${operation.id} ${detail}`);
649
+ };
650
+ if (ApiProfile.isRead(operation))
651
+ refuse("is a read: only a write names a precondition");
652
+ const read = operations.find((candidate) => candidate.id === precondition.read);
653
+ if (read === undefined || !ApiProfile.isRead(read))
654
+ refuse(`names a precondition read ${precondition.read} that is not a read in the profile`);
655
+ const placeholders = (path) => [...path.matchAll(PLACEHOLDER)].map((found) => found[1]);
656
+ const own = placeholders(operation.path);
657
+ if (placeholders(read.path).some((name) => !own.includes(name)))
658
+ refuse(`names a precondition read whose path has a placeholder the write's has not`);
659
+ for (const pointer of [precondition.version, precondition.state]) {
660
+ if (pointer !== undefined && ApiProfile.pointerSegments(pointer, operation.id).includes("*"))
661
+ refuse("names a precondition pointer through *");
662
+ }
663
+ }
664
+ /** A subject as stated: a string or a finite number, as a string, within the bound; else null. */
665
+ static subjectOf(value) {
666
+ const text = typeof value === "string"
667
+ ? value
668
+ : typeof value === "number" && Number.isFinite(value)
669
+ ? String(value)
670
+ : null;
671
+ return text === null || text.length === 0 || text.length > MAX_SUBJECT_LENGTH ? null : text;
672
+ }
673
+ /** Each element's value through a `*`; null when there is no list where the `*` stands. */
674
+ static walkList(root, before, after) {
675
+ const list = ApiProfile.walk(root, before);
676
+ if (!Array.isArray(list))
677
+ return null;
678
+ return list.map((element) => ApiProfile.walk(element, after));
679
+ }
294
680
  /** RFC 6901 reference tokens, unescaped; one `*` token at most. */
295
681
  static pointerSegments(pointer, operation) {
296
682
  const tokens = pointer
@@ -1 +1 @@
1
- {"version":3,"file":"ApiProfile.js","sourceRoot":"","sources":["../../src/profile/ApiProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiProfile.js","sourceRoot":"","sources":["../../src/profile/ApiProfile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltInApiProfiles.d.ts","sourceRoot":"","sources":["../../src/profile/BuiltInApiProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EAiShE,CAAC"}
1
+ {"version":3,"file":"BuiltInApiProfiles.d.ts","sourceRoot":"","sources":["../../src/profile/BuiltInApiProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EAwehE,CAAC"}