initiative-plugin-sdk 7.2.0 → 8.1.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/README.md +299 -44
- package/dist/build.d.ts +1 -1
- package/dist/build.js +10 -5
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.js.map +1 -1
- package/dist/contract.d.ts +452 -80
- package/dist/contract.js +22 -6
- package/dist/contract.js.map +1 -1
- package/dist/define.d.ts +68 -15
- package/dist/define.js +27 -9
- package/dist/define.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/plugin-api.generated.d.ts +260 -9
- package/dist/plugin-api.generated.js +44 -2
- package/dist/plugin-api.generated.js.map +1 -1
- package/dist/server.js +5 -3
- package/dist/server.js.map +1 -1
- package/dist/statements.d.ts +11 -1
- package/dist/statements.js +10 -2
- package/dist/statements.js.map +1 -1
- package/dist/testing.d.ts +132 -21
- package/dist/testing.js +273 -51
- package/dist/testing.js.map +1 -1
- package/dist/validate.d.ts +13 -4
- package/dist/validate.js +240 -48
- package/dist/validate.js.map +1 -1
- package/manifest.contract.json +514 -23
- package/package.json +1 -1
- package/schemas/plugin-api.json +1268 -144
- package/schemas/plugin-manifest.json +553 -22
package/dist/testing.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `initiative-plugin-sdk/testing`: a declarative plug-in's requests and
|
|
3
|
-
* run against recorded vendor answers, with no server and no network.
|
|
2
|
+
* `initiative-plugin-sdk/testing`: a declarative plug-in's requests, mappings and
|
|
3
|
+
* writes, run against recorded vendor answers, with no server and no network.
|
|
4
4
|
*
|
|
5
5
|
* Each runner renders the requests the way Initiative makes them (method,
|
|
6
6
|
* address with its query, headers, body), answers them from `responses` in
|
|
@@ -16,16 +16,30 @@
|
|
|
16
16
|
* to retry;
|
|
17
17
|
* - `{ refused }`: an `after_connect` that refused the connection.
|
|
18
18
|
*
|
|
19
|
+
* Every runner but {@link runExchangeBody}, whose expression reads only the
|
|
20
|
+
* connection's fields, takes the install's `settings`, each setting's value by
|
|
21
|
+
* key, and `aliases`, each unique setting's earlier values by key, which every
|
|
22
|
+
* other expression reads; both default to none.
|
|
23
|
+
*
|
|
24
|
+
* An action's run answers the `change` its `write` makes to the plug-in's values
|
|
25
|
+
* on the item, and a schedule's or a delivery's the targeted `writes`, each held
|
|
26
|
+
* to the contract's `change` or `targetedChange`, to one operation on each key,
|
|
27
|
+
* and to the plug-in's fields: a list field's whole value is a list of
|
|
28
|
+
* elements, and only a list's elements are upserted or removed. A `write`
|
|
29
|
+
* answering nothing changes nothing.
|
|
30
|
+
*
|
|
19
31
|
* A rendered request carries no credential: Initiative adds the one its
|
|
20
32
|
* `connection` names, as the plug-in's `auth` says. A predicate (`when`, `more`,
|
|
21
33
|
* `refuse_when`) holds when JSONata's `$boolean` of its answer is true.
|
|
22
34
|
*
|
|
23
35
|
* A run fails, rather than answering, on a mistake in the test or the plug-in: a
|
|
24
36
|
* request with no recorded response left for it, a recorded response nothing
|
|
25
|
-
* asked for,
|
|
37
|
+
* asked for, a mapped answer that does not fit the declared returns, or a
|
|
38
|
+
* `write` answering what is not a change.
|
|
26
39
|
*/
|
|
27
|
-
import { PLATFORM_CODES } from "./contract.js";
|
|
40
|
+
import { CAPS, PLATFORM_CODES } from "./contract.js";
|
|
28
41
|
import { evaluate, ExpressionError } from "./expression.js";
|
|
42
|
+
import { definitionValidator } from "./validate.js";
|
|
29
43
|
export { evaluate, ExpressionError, parseExpression } from "./expression.js";
|
|
30
44
|
/** A run's answer, thrown from wherever it is decided. */
|
|
31
45
|
class Outcome {
|
|
@@ -37,17 +51,24 @@ class Outcome {
|
|
|
37
51
|
class Context {
|
|
38
52
|
hosts;
|
|
39
53
|
rules;
|
|
54
|
+
actor;
|
|
40
55
|
requests = [];
|
|
41
56
|
now;
|
|
57
|
+
/** What every expression reads of the install. */
|
|
58
|
+
installed;
|
|
42
59
|
clock;
|
|
43
60
|
responses;
|
|
44
61
|
constructor(hosts, recorded,
|
|
45
62
|
/** The endpoint's own rules, and whether an answer outside 2xx fails the run. */
|
|
46
|
-
rules
|
|
63
|
+
rules,
|
|
64
|
+
/** Who the call is made as, when it is made as one of an endpoint's actors. */
|
|
65
|
+
actor) {
|
|
47
66
|
this.hosts = hosts;
|
|
48
67
|
this.rules = rules;
|
|
68
|
+
this.actor = actor;
|
|
49
69
|
this.clock = recorded.now ?? new Date();
|
|
50
70
|
this.now = new Date(this.clock).toISOString();
|
|
71
|
+
this.installed = { settings: recorded.settings ?? {}, aliases: recorded.aliases ?? {} };
|
|
51
72
|
this.responses = [...recorded.responses];
|
|
52
73
|
}
|
|
53
74
|
async value(text, document, where) {
|
|
@@ -60,6 +81,17 @@ class Context {
|
|
|
60
81
|
throw new Outcome({ unavailable: "mapping-failed", detail: `${where}: ${error.message}` });
|
|
61
82
|
}
|
|
62
83
|
}
|
|
84
|
+
/** The connection a request names, for the call's actor when it names one per actor. */
|
|
85
|
+
connection(request, where) {
|
|
86
|
+
const named = request.connection;
|
|
87
|
+
if (typeof named !== "object")
|
|
88
|
+
return named;
|
|
89
|
+
const id = this.actor === undefined ? undefined : named[this.actor];
|
|
90
|
+
if (id === undefined) {
|
|
91
|
+
throw new TypeError(`${where} names no connection for ${this.actor === undefined ? "a call with no actor" : `the ${this.actor}`}`);
|
|
92
|
+
}
|
|
93
|
+
return id;
|
|
94
|
+
}
|
|
63
95
|
async holds(text, document, where) {
|
|
64
96
|
return (await evaluate("$boolean($)", await this.value(text, document, where))) === true;
|
|
65
97
|
}
|
|
@@ -169,12 +201,13 @@ async function render(request, document, context, where, page) {
|
|
|
169
201
|
}
|
|
170
202
|
body = { query: request.graphql.query, ...(variables === undefined ? {} : { variables }) };
|
|
171
203
|
}
|
|
204
|
+
const connection = context.connection(request, where);
|
|
172
205
|
return {
|
|
173
206
|
method: request.method,
|
|
174
207
|
url: url.toString(),
|
|
175
208
|
headers,
|
|
176
209
|
...(body === undefined ? {} : { body }),
|
|
177
|
-
...(
|
|
210
|
+
...(connection ? { connection } : {}),
|
|
178
211
|
};
|
|
179
212
|
}
|
|
180
213
|
/**
|
|
@@ -255,48 +288,190 @@ function fits(answer, returns, where) {
|
|
|
255
288
|
return answer;
|
|
256
289
|
}
|
|
257
290
|
/**
|
|
258
|
-
*
|
|
259
|
-
* `
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
* that `connections` holds, by id. The call has no actor: who may run it, and
|
|
264
|
-
* on whose credential, is Initiative's to decide.
|
|
291
|
+
* Holds what a `write` answered to the contract's definition `name`, `change`
|
|
292
|
+
* or `targetedChange`, to one operation on each key, and to the plug-in's
|
|
293
|
+
* fields: a list field's whole value is a list of elements, and only a list's
|
|
294
|
+
* elements are upserted or removed. Each value, and each element, is held to
|
|
295
|
+
* the cap on one value.
|
|
265
296
|
*/
|
|
266
|
-
|
|
297
|
+
function fitsChange(plugin, answer, name, where) {
|
|
298
|
+
const check = definitionValidator(name);
|
|
299
|
+
if (!check(answer)) {
|
|
300
|
+
const why = (check.errors ?? []).map((error) => `${error.instancePath || "/"} ${error.message}`).join("; ");
|
|
301
|
+
throw new Error(`${where} answered ${text(answer)}, which is not a ${name === "change" ? "change" : "targeted change"}: ${why}`);
|
|
302
|
+
}
|
|
303
|
+
const { set = {}, upsert = {}, remove = {} } = answer;
|
|
304
|
+
const keys = [...Object.keys(set), ...Object.keys(upsert), ...Object.keys(remove)];
|
|
305
|
+
const twice = keys.find((key, index) => keys.indexOf(key) !== index);
|
|
306
|
+
if (twice !== undefined)
|
|
307
|
+
throw new Error(`${where} changes '${twice}' twice: a change sets, upserts or removes a key`);
|
|
308
|
+
const list = (key) => plugin.fields?.[key]?.list === true;
|
|
309
|
+
for (const key of [...Object.keys(upsert), ...Object.keys(remove)]) {
|
|
310
|
+
if (!list(key))
|
|
311
|
+
throw new Error(`${where} changes elements of '${key}', which is not a list field`);
|
|
312
|
+
}
|
|
313
|
+
const values = Object.entries(upsert).flatMap(([key, elements]) => elements.map((element) => [key, element]));
|
|
314
|
+
const element = definitionValidator("listElement");
|
|
315
|
+
for (const [key, value] of Object.entries(set)) {
|
|
316
|
+
if (value === null)
|
|
317
|
+
continue;
|
|
318
|
+
if (!list(key))
|
|
319
|
+
values.push([key, value]);
|
|
320
|
+
else if (Array.isArray(value) && value.every((one) => element(one)))
|
|
321
|
+
values.push(...value.map((one) => [key, one]));
|
|
322
|
+
else
|
|
323
|
+
throw new Error(`${where} sets '${key}', a list field, to ${text(value)}, which is not a list of elements`);
|
|
324
|
+
}
|
|
325
|
+
for (const [key, value] of values) {
|
|
326
|
+
if (Buffer.byteLength(JSON.stringify(value), "utf-8") > CAPS.metadataValueBytes) {
|
|
327
|
+
throw new Error(`${where} gives '${key}' a value of more than ${CAPS.metadataValueBytes} bytes as JSON`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/** What a `write` answered, as targeted changes: a list of at most `writeTargets`. Nothing is no change. */
|
|
332
|
+
function targeted(plugin, answer, where) {
|
|
333
|
+
if (answer === undefined)
|
|
334
|
+
return [];
|
|
335
|
+
if (!Array.isArray(answer)) {
|
|
336
|
+
throw new Error(`${where} answered ${text(answer)}, which is not a list of targeted changes ` +
|
|
337
|
+
"(a JSONata path matching one item answers it alone: wrap the answer in [ ] to keep a list)");
|
|
338
|
+
}
|
|
339
|
+
if (answer.length > CAPS.writeTargets)
|
|
340
|
+
throw new Error(`${where} answered ${answer.length} changes, more than ${CAPS.writeTargets}`);
|
|
341
|
+
answer.forEach((change, index) => fitsChange(plugin, change, "targetedChange", `${where}/${index}`));
|
|
342
|
+
return answer;
|
|
343
|
+
}
|
|
344
|
+
/** A declarative endpoint of the plug-in, by its key. */
|
|
345
|
+
function declarative(plugin, name) {
|
|
267
346
|
const endpoint = plugin.endpoints?.[name];
|
|
268
347
|
if (!endpoint || !("map" in endpoint))
|
|
269
348
|
throw new TypeError(`'${name}' is not a declarative endpoint of this plug-in`);
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
349
|
+
return endpoint;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* One declarative endpoint's request or steps, answered in `context`, and its
|
|
353
|
+
* map held to the declared returns: what {@link runEndpoint} runs, and what an
|
|
354
|
+
* action or a schedule runs for the endpoint it names. An action's call also
|
|
355
|
+
* reads its `subject`: the `item`, and the `element` it was run from.
|
|
356
|
+
*/
|
|
357
|
+
async function answerEndpoint(endpoint, call, context) {
|
|
358
|
+
const given = call.connections ?? {};
|
|
359
|
+
const required = [...(endpoint.requires?.all_of ?? []), ...(endpoint.requires?.any_of ?? [])];
|
|
360
|
+
const connections = Object.fromEntries(required.filter((id) => Object.hasOwn(given, id)).map((id) => [id, given[id]]));
|
|
361
|
+
const base = { params: call.params ?? {}, connections, now: context.now, ...context.installed, ...call.subject };
|
|
362
|
+
const steps = endpoint.steps ?? [{ name: "", request: endpoint.request }];
|
|
363
|
+
const answers = {};
|
|
364
|
+
let read = base;
|
|
365
|
+
for (const [index, step] of steps.entries()) {
|
|
366
|
+
const where = endpoint.steps ? `steps/${index}/request` : "request";
|
|
367
|
+
read = {
|
|
368
|
+
...base,
|
|
369
|
+
connection: given[context.connection(step.request, where) ?? ""] ?? {},
|
|
370
|
+
...(endpoint.steps ? { steps: { ...answers } } : {}),
|
|
371
|
+
};
|
|
372
|
+
const response = await perform(step.request, read, context, where);
|
|
373
|
+
if (endpoint.steps)
|
|
374
|
+
answers[step.name] = response;
|
|
375
|
+
read = { ...read, ...(endpoint.steps ? { steps: { ...answers } } : {}), response };
|
|
376
|
+
}
|
|
377
|
+
const answer = await context.value(endpoint.map, read, "map");
|
|
378
|
+
if (answer && typeof answer === "object" && "unavailable" in answer) {
|
|
379
|
+
const code = answer.unavailable;
|
|
380
|
+
if (typeof code !== "string" || ![...(endpoint.unavailable ?? []), ...PLATFORM_CODES].includes(code)) {
|
|
381
|
+
throw new Error(`map answered unavailable ${text(code)}, which is not one of this endpoint's codes`);
|
|
290
382
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
383
|
+
return { unavailable: code };
|
|
384
|
+
}
|
|
385
|
+
return { result: fits(answer, endpoint.returns, "map") };
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* One declarative endpoint: its request or steps rendered from `params`, the
|
|
389
|
+
* `connections`' non-secret fields (keyed by connection id), the install's
|
|
390
|
+
* `settings` and `aliases`, and `now`, answered from `responses`, and its map
|
|
391
|
+
* held to the declared returns. The call is made as `actor`, by default the
|
|
392
|
+
* endpoint's first: a request naming a connection per actor carries the one it
|
|
393
|
+
* names for that actor, and the run throws a TypeError when it names none. An
|
|
394
|
+
* expression reads `connection`, the fields of the connection its request
|
|
395
|
+
* carries, and `connections`, the fields of each connection the endpoint's
|
|
396
|
+
* `requires` names that `connections` holds, by id. Who may make the call is
|
|
397
|
+
* Initiative's to decide.
|
|
398
|
+
*/
|
|
399
|
+
export async function runEndpoint(plugin, name, call) {
|
|
400
|
+
const endpoint = declarative(plugin, name);
|
|
401
|
+
const context = new Context(plugin.hosts ?? [], call, endpoint.errors ?? [], call.actor ?? endpoint.actors?.[0]);
|
|
402
|
+
return context.run(() => answerEndpoint(endpoint, call, context));
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* A declarative action, run on one item with the `params` the reader answered,
|
|
406
|
+
* from one of a list field's elements when `element` names its `ref`. Its
|
|
407
|
+
* endpoint, when it names one, is sent those params, made as `actor` (by
|
|
408
|
+
* default the endpoint's first), and rendered and answered as
|
|
409
|
+
* {@link runEndpoint} does it, its expressions also reading `item` and
|
|
410
|
+
* `element`; an answer of unavailable or transient is the run's, and nothing is
|
|
411
|
+
* written. Its `write`, when it has one, then answers the change Initiative
|
|
412
|
+
* makes to the plug-in's values on the item, reading `item`, `held` (those
|
|
413
|
+
* values as they stand, by key), `result` (the endpoint's mapped answer, absent
|
|
414
|
+
* with no endpoint), `params`, `element`, `settings`, `aliases` and `now`. Like
|
|
415
|
+
* the endpoint's, an expression that fails answers `mapping-failed`.
|
|
416
|
+
*/
|
|
417
|
+
export async function runAction(plugin, name, call) {
|
|
418
|
+
const action = plugin.actions?.[name];
|
|
419
|
+
if (!action)
|
|
420
|
+
throw new TypeError(`'${name}' is not an action of this plug-in`);
|
|
421
|
+
if (!action.on.includes(call.item.kind))
|
|
422
|
+
throw new TypeError(`'${name}' is not offered on ${call.item.kind}`);
|
|
423
|
+
const unasked = Object.keys(call.params ?? {}).find((key) => !action.params?.includes(key));
|
|
424
|
+
if (unasked !== undefined)
|
|
425
|
+
throw new TypeError(`'${name}' does not ask for '${unasked}'`);
|
|
426
|
+
if (call.element !== undefined && !Object.values(plugin.fields ?? {}).some((field) => field.actions?.includes(name))) {
|
|
427
|
+
throw new TypeError(`'${name}' is offered on no list's elements`);
|
|
428
|
+
}
|
|
429
|
+
const endpoint = action.endpoint === undefined ? undefined : declarative(plugin, action.endpoint);
|
|
430
|
+
const context = new Context(plugin.hosts ?? [], { ...call, responses: call.responses ?? [] }, endpoint?.errors ?? [], call.actor ?? endpoint?.actors?.[0]);
|
|
431
|
+
const subject = { item: call.item, ...(call.element === undefined ? {} : { element: call.element }) };
|
|
432
|
+
return context.run(async () => {
|
|
433
|
+
const sent = { params: call.params, connections: call.connections, subject };
|
|
434
|
+
const called = endpoint && (await answerEndpoint(endpoint, sent, context));
|
|
435
|
+
if (called && !("result" in called))
|
|
436
|
+
return called;
|
|
437
|
+
const read = { ...subject, held: call.held ?? {}, ...called, params: call.params ?? {}, ...context.installed, now: context.now };
|
|
438
|
+
const change = action.write === undefined ? undefined : await context.value(action.write, read, "write");
|
|
439
|
+
if (change !== undefined)
|
|
440
|
+
fitsChange(plugin, change, "change", "write");
|
|
441
|
+
return { ...called, ...(change === undefined ? {} : { change: change }) };
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* A declarative schedule's run in one community, made as the installation. Its
|
|
446
|
+
* `params` answer the endpoint's params from `since`, `now`, `connection` (the
|
|
447
|
+
* fields of the connection the endpoint's first request names), `settings` and
|
|
448
|
+
* `aliases`; the endpoint is rendered and answered with them as
|
|
449
|
+
* {@link runEndpoint} does it; and its `write` answers, from the endpoint's
|
|
450
|
+
* mapped answer as `result` beside `since`, `now`, `settings` and `aliases`,
|
|
451
|
+
* the changes Initiative makes as the install. `since` is when the schedule
|
|
452
|
+
* last succeeded there, as ISO 8601: null, the default, the first time.
|
|
453
|
+
*/
|
|
454
|
+
export async function runSchedule(plugin, name, call) {
|
|
455
|
+
const schedule = plugin.schedules?.[name];
|
|
456
|
+
if (!schedule || "run" in schedule)
|
|
457
|
+
throw new TypeError(`'${name}' is not a declarative schedule of this plug-in`);
|
|
458
|
+
const endpoint = declarative(plugin, schedule.endpoint);
|
|
459
|
+
const context = new Context(plugin.hosts ?? [], call, endpoint.errors ?? [], "installation");
|
|
460
|
+
return context.run(async () => {
|
|
461
|
+
const since = call.since ?? null;
|
|
462
|
+
const first = endpoint.steps?.[0].request ?? endpoint.request;
|
|
463
|
+
const connection = call.connections?.[context.connection(first, endpoint.steps ? "steps/0/request" : "request") ?? ""] ?? {};
|
|
464
|
+
const read = { since, now: context.now, ...context.installed };
|
|
465
|
+
const params = schedule.params === undefined ? undefined : await context.value(schedule.params, { ...read, connection }, "params");
|
|
466
|
+
if (params !== undefined && (!params || typeof params !== "object" || Array.isArray(params))) {
|
|
467
|
+
throw new Error(`params answered ${text(params)}, which is not an object of the endpoint's params`);
|
|
298
468
|
}
|
|
299
|
-
|
|
469
|
+
const sent = { params: params, connections: call.connections };
|
|
470
|
+
const called = await answerEndpoint(endpoint, sent, context);
|
|
471
|
+
if (!("result" in called))
|
|
472
|
+
return called;
|
|
473
|
+
const writes = targeted(plugin, await context.value(schedule.write, { result: called.result, ...read }, "write"), "write");
|
|
474
|
+
return { result: called.result, writes };
|
|
300
475
|
});
|
|
301
476
|
}
|
|
302
477
|
/**
|
|
@@ -310,7 +485,7 @@ export async function runAfterConnect(plugin, connection, call) {
|
|
|
310
485
|
throw new TypeError(`'${connection}' has no declarative after_connect`);
|
|
311
486
|
const context = new Context(plugin.hosts ?? [], call, []);
|
|
312
487
|
return context.run(async () => {
|
|
313
|
-
const base = { params: call.params ?? {}, now: context.now };
|
|
488
|
+
const base = { params: call.params ?? {}, now: context.now, ...context.installed };
|
|
314
489
|
const steps = after.steps ?? [{ name: "", request: after.request }];
|
|
315
490
|
const answers = {};
|
|
316
491
|
let read = base;
|
|
@@ -339,7 +514,7 @@ export async function runHealth(plugin, connection, call) {
|
|
|
339
514
|
throw new TypeError(`'${connection}' declares no health check`);
|
|
340
515
|
const context = new Context(plugin.hosts ?? [], call, null);
|
|
341
516
|
return context.run(async () => {
|
|
342
|
-
const document = { params: {}, connection: call.fields ?? {}, now: context.now };
|
|
517
|
+
const document = { params: {}, connection: call.fields ?? {}, now: context.now, ...context.installed };
|
|
343
518
|
const response = await perform(health.request, document, context, "health/request");
|
|
344
519
|
for (const [index, row] of health.states.entries()) {
|
|
345
520
|
if (row.status !== undefined && !matches(row.status, response.status))
|
|
@@ -352,11 +527,52 @@ export async function runHealth(plugin, connection, call) {
|
|
|
352
527
|
});
|
|
353
528
|
}
|
|
354
529
|
/**
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
* throws
|
|
530
|
+
* The body Initiative posts with a connection's signed JWT, from its token's
|
|
531
|
+
* `exchange_body`: the object with each `{vendor.<key>}` in its strings filled
|
|
532
|
+
* from `vendor` and each `{<key>}` from the connection's non-secret `fields`,
|
|
533
|
+
* or the expression's answer, which reads those fields as `connection` and
|
|
534
|
+
* nothing else. It throws a TypeError where Initiative fails the token request,
|
|
535
|
+
* on a name with no value or an answer that is not an object, and for a
|
|
536
|
+
* connection with no `exchange_body`; an expression that fails throws
|
|
537
|
+
* {@link ExpressionError}.
|
|
538
|
+
*/
|
|
539
|
+
export async function runExchangeBody(plugin, connection, call = {}) {
|
|
540
|
+
const body = plugin.connections?.[connection]?.token?.exchange_body;
|
|
541
|
+
if (body === undefined)
|
|
542
|
+
throw new TypeError(`'${connection}' declares no exchange_body`);
|
|
543
|
+
const fields = call.fields ?? {};
|
|
544
|
+
if (typeof body === "string") {
|
|
545
|
+
const answer = await evaluate(body, { connection: fields });
|
|
546
|
+
if (!answer || typeof answer !== "object" || Array.isArray(answer)) {
|
|
547
|
+
throw new TypeError(`exchange_body answered ${text(answer)}, which is not an object`);
|
|
548
|
+
}
|
|
549
|
+
return answer;
|
|
550
|
+
}
|
|
551
|
+
const filled = (value, where) => {
|
|
552
|
+
if (typeof value === "string") {
|
|
553
|
+
return value.replace(/\{([^}]*)\}/g, (_, name) => {
|
|
554
|
+
const [values, key] = name.startsWith("vendor.") ? [call.vendor ?? {}, name.slice("vendor.".length)] : [fields, name];
|
|
555
|
+
const given = Object.hasOwn(values, key) ? values[key] : undefined;
|
|
556
|
+
if (given === undefined || given === null || given === "")
|
|
557
|
+
throw new TypeError(`${where} names '{${name}}', which has no value`);
|
|
558
|
+
return text(given);
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
if (Array.isArray(value))
|
|
562
|
+
return value.map((child, index) => filled(child, `${where}/${index}`));
|
|
563
|
+
if (value && typeof value === "object") {
|
|
564
|
+
return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, filled(child, `${where}/${key}`)]));
|
|
565
|
+
}
|
|
566
|
+
return value;
|
|
567
|
+
};
|
|
568
|
+
return filled(body, "exchange_body");
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* One webhook delivery, as a declarative plug-in maps it: the first matching
|
|
572
|
+
* `events` row's event (by the emit endpoint's key, its payload held to that
|
|
573
|
+
* endpoint's returns) and the changes its `write` answers, and the state the
|
|
574
|
+
* first matching `status` row sets. A delivery nothing matches answers neither.
|
|
575
|
+
* An expression that fails throws {@link ExpressionError}.
|
|
360
576
|
*/
|
|
361
577
|
export async function runWebhook(plugin, delivery) {
|
|
362
578
|
const clock = delivery.now ?? new Date();
|
|
@@ -365,14 +581,20 @@ export async function runWebhook(plugin, delivery) {
|
|
|
365
581
|
payload: delivery.payload,
|
|
366
582
|
connection: delivery.connection ?? {},
|
|
367
583
|
now: new Date(clock).toISOString(),
|
|
584
|
+
settings: delivery.settings ?? {},
|
|
585
|
+
aliases: delivery.aliases ?? {},
|
|
368
586
|
};
|
|
369
587
|
const holds = async (expression) => (await evaluate("$boolean($)", await evaluate(expression, document, { now: clock }))) === true;
|
|
370
588
|
const out = {};
|
|
371
589
|
for (const row of plugin.webhooks?.events ?? []) {
|
|
372
590
|
if (!(await holds(row.when)))
|
|
373
591
|
continue;
|
|
374
|
-
|
|
375
|
-
|
|
592
|
+
if (row.emit !== undefined) {
|
|
593
|
+
const payload = await evaluate(row.map, document, { now: clock });
|
|
594
|
+
out.event = { emit: row.emit, payload: fits(payload, plugin.endpoints?.[row.emit]?.returns, `the ${row.emit} event`) };
|
|
595
|
+
}
|
|
596
|
+
if (row.write !== undefined)
|
|
597
|
+
out.writes = targeted(plugin, await evaluate(row.write, document, { now: clock }), "write");
|
|
376
598
|
break;
|
|
377
599
|
}
|
|
378
600
|
for (const row of plugin.webhooks?.status ?? []) {
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts
CHANGED
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
* (the endpoint a widget binds, a `requires` term's connection, an endpoint's
|
|
7
7
|
* service prefix), the features/blocks cross-check in both directions, UTF-8
|
|
8
8
|
* byte-size caps, the rules tying a connection's `flow` and `token` to its
|
|
9
|
-
* scope and fields, what a vendor `setup` writes to, the bounds and
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* scope and fields, what a vendor `setup` writes to, the bounds, ids and
|
|
10
|
+
* endpoints of `schedules`, which terms each kind's schedules, actions, fields
|
|
11
|
+
* and webhook events take, the unique keys and ids of `fields`, `parts`,
|
|
12
|
+
* `actions` and `settings`, what a part's nodes, a field's element actions and
|
|
13
|
+
* an action's endpoint and `params` name, the placeholders in a part's text,
|
|
14
|
+
* and a part's size and depth.
|
|
13
15
|
*
|
|
14
16
|
* {@link validateManifest} runs the schema and then every one of those except
|
|
15
17
|
* the byte caps. It also reports every term the contract does not declare: a
|
|
@@ -22,6 +24,7 @@
|
|
|
22
24
|
* that a plug-in is one kind or the other, what its requests and steps name, and
|
|
23
25
|
* the hosts it calls.
|
|
24
26
|
*/
|
|
27
|
+
import { type ValidateFunction } from "ajv/dist/2020.js";
|
|
25
28
|
import { type Manifest } from "./contract.js";
|
|
26
29
|
/** Where a plug-in serves its manifest document. */
|
|
27
30
|
export declare const MANIFEST_PATH = "/.well-known/initiative-plugin.json";
|
|
@@ -65,6 +68,12 @@ export interface ValidationProblem {
|
|
|
65
68
|
where: string;
|
|
66
69
|
message: string;
|
|
67
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* One of the contract's definitions as a check of a value rather than of a
|
|
73
|
+
* manifest: what a declarative plug-in's `write` answered, held to `change` or
|
|
74
|
+
* `targetedChange`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function definitionValidator(name: string): ValidateFunction;
|
|
68
77
|
/**
|
|
69
78
|
* Everything this side can check: the schema, then the two cross-cutting rules
|
|
70
79
|
* it cannot express.
|