initiative-plugin-sdk 7.2.0 → 8.0.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 +298 -43
- package/dist/build.d.ts +1 -1
- package/dist/build.js +10 -5
- package/dist/build.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 +64 -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 +97 -5
- package/dist/plugin-api.generated.js +15 -2
- package/dist/plugin-api.generated.js.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.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 +462 -33
- package/schemas/plugin-manifest.json +553 -22
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.
|
package/dist/validate.js
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
|
|
@@ -26,7 +28,7 @@ import { readFileSync } from "node:fs";
|
|
|
26
28
|
import { dirname, join } from "node:path";
|
|
27
29
|
import { fileURLToPath } from "node:url";
|
|
28
30
|
import { Ajv2020 } from "ajv/dist/2020.js";
|
|
29
|
-
import { CAPS, FEATURES, PLATFORM_CODES, } from "./contract.js";
|
|
31
|
+
import { ACTOR_KINDS, CAPS, FEATURES, PLATFORM_CODES, } from "./contract.js";
|
|
30
32
|
import { parseExpression } from "./expression.js";
|
|
31
33
|
/** Where a plug-in serves its manifest document. */
|
|
32
34
|
export const MANIFEST_PATH = "/.well-known/initiative-plugin.json";
|
|
@@ -119,14 +121,24 @@ export function manifestSchema() {
|
|
|
119
121
|
throw new Error("plugin-manifest.json is not packaged beside this module");
|
|
120
122
|
}
|
|
121
123
|
/** Compiled once — Ajv's compile step is the expensive part, not validation. */
|
|
124
|
+
let ajv;
|
|
122
125
|
let compiled;
|
|
123
126
|
function schemaValidator() {
|
|
124
127
|
if (!compiled) {
|
|
125
|
-
|
|
128
|
+
ajv = new Ajv2020({ allErrors: true, strict: false });
|
|
126
129
|
compiled = ajv.compile(manifestSchema());
|
|
127
130
|
}
|
|
128
131
|
return compiled;
|
|
129
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* One of the contract's definitions as a check of a value rather than of a
|
|
135
|
+
* manifest: what a declarative plug-in's `write` answered, held to `change` or
|
|
136
|
+
* `targetedChange`.
|
|
137
|
+
*/
|
|
138
|
+
export function definitionValidator(name) {
|
|
139
|
+
const { $id } = schemaValidator().schema;
|
|
140
|
+
return ajv.getSchema(`${$id}#/$defs/${name}`);
|
|
141
|
+
}
|
|
130
142
|
/**
|
|
131
143
|
* Everything this side can check: the schema, then the two cross-cutting rules
|
|
132
144
|
* it cannot express.
|
|
@@ -552,16 +564,40 @@ function referenceProblems(body, publicId) {
|
|
|
552
564
|
(body[block] ?? []).forEach((item, index) => checkRequires(item.requires, `/${block}/${index}/requires`));
|
|
553
565
|
}
|
|
554
566
|
(body.actions ?? []).forEach((action, index) => {
|
|
555
|
-
|
|
556
|
-
|
|
567
|
+
const where = `/actions/${index}`;
|
|
568
|
+
if (action.endpoint === undefined) {
|
|
569
|
+
if (action.params)
|
|
570
|
+
problems.push({ where: `${where}/params`, message: "an action asks for its endpoint's parameters, and names no endpoint" });
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
573
|
+
// Initiative calls an action's endpoint for the reader. A container's does
|
|
574
|
+
// the work, so it is a write; a declarative plug-in's `write` does the work,
|
|
575
|
+
// so its endpoint may be a read that fetches what the write keeps.
|
|
557
576
|
const named = byId.get(action.endpoint);
|
|
558
|
-
|
|
577
|
+
const allowed = body.service === undefined ? ["read", "write"] : ["write"];
|
|
578
|
+
if (!named || !allowed.includes(named.direction)) {
|
|
559
579
|
problems.push({
|
|
560
|
-
where:
|
|
580
|
+
where: `${where}/endpoint`,
|
|
561
581
|
message: named
|
|
562
582
|
? `names '${action.endpoint}', which is a ${named.direction} endpoint`
|
|
563
583
|
: `names '${action.endpoint}', which this manifest does not declare`,
|
|
564
584
|
});
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
// The endpoint is sent what the reader was asked for, and nothing else.
|
|
588
|
+
const params = named.params ?? [];
|
|
589
|
+
(action.params ?? []).forEach((key, position) => {
|
|
590
|
+
if (!params.some((param) => param.key === key)) {
|
|
591
|
+
problems.push({ where: `${where}/params/${position}`, message: `'${key}' is not a parameter of '${action.endpoint}'` });
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
for (const param of params) {
|
|
595
|
+
if (param.required && !action.params?.includes(param.key)) {
|
|
596
|
+
problems.push({
|
|
597
|
+
where: `${where}/params`,
|
|
598
|
+
message: `'${action.endpoint}' requires '${param.key}', which the action does not ask for`,
|
|
599
|
+
});
|
|
600
|
+
}
|
|
565
601
|
}
|
|
566
602
|
});
|
|
567
603
|
(body.widgets ?? []).forEach((widget, index) => {
|
|
@@ -668,6 +704,20 @@ function connectionProblems(body) {
|
|
|
668
704
|
for (const key of ["exchange_url", "iss", "key"]) {
|
|
669
705
|
templated.push([`${where}/token/${key}`, connection.token[key]]);
|
|
670
706
|
}
|
|
707
|
+
// Every string in an object body, at any depth, is rendered as the others
|
|
708
|
+
// are. An expression body is parsed with the other expressions instead:
|
|
709
|
+
// its braces are JSONata's.
|
|
710
|
+
const strings = (value, at) => {
|
|
711
|
+
if (typeof value === "string")
|
|
712
|
+
templated.push([at, value]);
|
|
713
|
+
else if (value && typeof value === "object") {
|
|
714
|
+
for (const [key, child] of Object.entries(value))
|
|
715
|
+
strings(child, `${at}/${key}`);
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
if (typeof connection.token.exchange_body === "object") {
|
|
719
|
+
strings(connection.token.exchange_body, `${where}/token/exchange_body`);
|
|
720
|
+
}
|
|
671
721
|
}
|
|
672
722
|
for (const [at, value] of templated) {
|
|
673
723
|
for (const name of templateNames(value ?? "")) {
|
|
@@ -761,24 +811,55 @@ function setupProblems(body) {
|
|
|
761
811
|
}
|
|
762
812
|
return problems;
|
|
763
813
|
}
|
|
764
|
-
/**
|
|
814
|
+
/**
|
|
815
|
+
* Each schedule's interval is within the bounds, and no two share an id. A
|
|
816
|
+
* declarative plug-in's schedule makes a read as the installation, and its id
|
|
817
|
+
* is no connection's.
|
|
818
|
+
*/
|
|
765
819
|
function scheduleProblems(body) {
|
|
766
820
|
const problems = [];
|
|
767
821
|
const seen = new Set();
|
|
822
|
+
const declarative = body.service === undefined;
|
|
823
|
+
const connections = new Set((body.connections ?? []).map((connection) => connection.id));
|
|
768
824
|
(body.schedules ?? []).forEach((schedule, index) => {
|
|
769
825
|
const where = `/schedules/${index}`;
|
|
770
826
|
if (seen.has(schedule.id)) {
|
|
771
827
|
problems.push({ where: `${where}/id`, message: `'${schedule.id}' is declared twice` });
|
|
772
828
|
}
|
|
773
829
|
seen.add(schedule.id);
|
|
830
|
+
if (declarative && connections.has(schedule.id)) {
|
|
831
|
+
problems.push({
|
|
832
|
+
where: `${where}/id`,
|
|
833
|
+
message: `'${schedule.id}' is also a connection's id, and Initiative keys connection health checks by connection id`,
|
|
834
|
+
});
|
|
835
|
+
}
|
|
774
836
|
problems.push(...intervalProblems(schedule.every, `${where}/every`));
|
|
837
|
+
if (!declarative || schedule.endpoint === undefined)
|
|
838
|
+
return;
|
|
839
|
+
const named = (body.endpoints ?? []).find((endpoint) => endpoint.id === schedule.endpoint);
|
|
840
|
+
if (named?.direction !== "read") {
|
|
841
|
+
problems.push({
|
|
842
|
+
where: `${where}/endpoint`,
|
|
843
|
+
message: named
|
|
844
|
+
? `names '${schedule.endpoint}', which is a ${named.direction} endpoint`
|
|
845
|
+
: `names '${schedule.endpoint}', which this manifest does not declare`,
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
else if (!named.actors?.includes("installation")) {
|
|
849
|
+
problems.push({
|
|
850
|
+
where: `${where}/endpoint`,
|
|
851
|
+
message: `'${schedule.endpoint}' does not take the installation as its actor, and no person is present when a schedule runs`,
|
|
852
|
+
});
|
|
853
|
+
}
|
|
775
854
|
});
|
|
776
855
|
return problems;
|
|
777
856
|
}
|
|
778
857
|
/**
|
|
779
|
-
* Fields, parts and
|
|
780
|
-
* can draw on every item kind it is offered on
|
|
781
|
-
*
|
|
858
|
+
* Fields, parts, actions and settings: each declared once, every part a tree
|
|
859
|
+
* Initiative can draw on every item kind it is offered on, and a list field's
|
|
860
|
+
* element actions offered wherever the field is. A node or a field naming a
|
|
861
|
+
* field or an action that is not offered where it is would draw nothing there,
|
|
862
|
+
* and a part's text names only the placeholders Initiative fills.
|
|
782
863
|
*/
|
|
783
864
|
function partProblems(body) {
|
|
784
865
|
const problems = [];
|
|
@@ -795,28 +876,51 @@ function partProblems(body) {
|
|
|
795
876
|
const fields = declared("fields", "key", (body.fields ?? []).map((field) => [field.key, field.on]));
|
|
796
877
|
const actions = declared("actions", "id", (body.actions ?? []).map((action) => [action.id, action.on]));
|
|
797
878
|
declared("parts", "id", (body.parts ?? []).map((part) => [part.id, part.on]));
|
|
879
|
+
const settings = declared("settings", "key", (body.settings ?? []).map((setting) => [setting.key, []]));
|
|
880
|
+
// What a part's node or a field names, offered on every kind its holder is.
|
|
881
|
+
const reaches = (what, kinds, on, holder, where) => {
|
|
882
|
+
if (!kinds) {
|
|
883
|
+
problems.push({ where, message: `'${what}' is not declared by this manifest` });
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
const missing = on.filter((kind) => !kinds.includes(kind));
|
|
887
|
+
if (missing.length) {
|
|
888
|
+
problems.push({ where, message: `'${what}' is not offered on ${missing.join(", ")}, where this ${holder} is` });
|
|
889
|
+
}
|
|
890
|
+
};
|
|
891
|
+
(body.fields ?? []).forEach((field, index) => {
|
|
892
|
+
const where = `/fields/${index}/actions`;
|
|
893
|
+
if (field.actions && !field.list)
|
|
894
|
+
problems.push({ where, message: "actions are offered on a list's elements, and this field is not a list" });
|
|
895
|
+
field.actions?.forEach((id, position) => reaches(id, actions.get(id), field.on, "field", `${where}/${position}`));
|
|
896
|
+
});
|
|
798
897
|
(body.parts ?? []).forEach((part, index) => {
|
|
799
898
|
let count = 0;
|
|
800
|
-
const reaches = (what, kinds, where) => {
|
|
801
|
-
if (!kinds) {
|
|
802
|
-
problems.push({ where, message: `'${what}' is not declared by this manifest` });
|
|
803
|
-
return;
|
|
804
|
-
}
|
|
805
|
-
const missing = part.on.filter((kind) => !kinds.includes(kind));
|
|
806
|
-
if (missing.length) {
|
|
807
|
-
problems.push({ where, message: `'${what}' is not offered on ${missing.join(", ")}, where this part is` });
|
|
808
|
-
}
|
|
809
|
-
};
|
|
810
899
|
const visit = (node, depth, where) => {
|
|
811
900
|
count += 1;
|
|
812
901
|
if (depth > CAPS.partDepth) {
|
|
813
902
|
problems.push({ where, message: `nested deeper than ${CAPS.partDepth}` });
|
|
814
903
|
return;
|
|
815
904
|
}
|
|
816
|
-
if (node.type === "field" || node.type === "value")
|
|
817
|
-
reaches(node.props.field, fields.get(node.props.field), `${where}/props/field`);
|
|
905
|
+
if (node.type === "field" || node.type === "value") {
|
|
906
|
+
reaches(node.props.field, fields.get(node.props.field), part.on, "part", `${where}/props/field`);
|
|
907
|
+
}
|
|
818
908
|
if (node.type === "button")
|
|
819
|
-
reaches(node.props.action, actions.get(node.props.action), `${where}/props/action`);
|
|
909
|
+
reaches(node.props.action, actions.get(node.props.action), part.on, "part", `${where}/props/action`);
|
|
910
|
+
if (node.type === "text") {
|
|
911
|
+
for (const [language, words] of Object.entries(node.props.text)) {
|
|
912
|
+
for (const name of typeof words === "string" ? templateNames(words) : []) {
|
|
913
|
+
if (name === "item.id" || (name.startsWith("settings.") && settings.has(name.slice("settings.".length))))
|
|
914
|
+
continue;
|
|
915
|
+
problems.push({
|
|
916
|
+
where: `${where}/props/text/${language}`,
|
|
917
|
+
message: name.startsWith("settings.")
|
|
918
|
+
? `'{${name}}' names a setting this manifest does not declare`
|
|
919
|
+
: `'{${name}}' is not a placeholder: a part's text names '{item.id}' and '{settings.<key>}'`,
|
|
920
|
+
});
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
820
924
|
if (node.type === "section" || node.type === "stack") {
|
|
821
925
|
(node.children ?? []).forEach((child, position) => visit(child, depth + 1, `${where}/children/${position}`));
|
|
822
926
|
}
|
|
@@ -841,8 +945,9 @@ const DECLARATIVE_TERMS = ["request", "steps", "map", "errors"];
|
|
|
841
945
|
/**
|
|
842
946
|
* A plug-in is one kind or the other. A declarative plug-in — no `service` block —
|
|
843
947
|
* names its hosts, and every read and write it offers is a request and a map:
|
|
844
|
-
* there is no container for a handler, hook
|
|
845
|
-
*
|
|
948
|
+
* there is no container for a handler, hook or page to run in, so its schedules
|
|
949
|
+
* and actions say in expressions what Initiative does. It asks only for read
|
|
950
|
+
* scopes. A container plug-in uses none of the declarative terms.
|
|
846
951
|
*/
|
|
847
952
|
function kindProblems(body) {
|
|
848
953
|
const problems = [];
|
|
@@ -852,16 +957,23 @@ function kindProblems(body) {
|
|
|
852
957
|
if (body.service === undefined) {
|
|
853
958
|
if (!body.hosts)
|
|
854
959
|
push("/hosts", "a declarative plug-in (one with no service block) names the hosts it calls");
|
|
855
|
-
if (body.schedules)
|
|
856
|
-
push("/schedules", "a declarative plug-in has no schedules: they call a container's hook");
|
|
857
960
|
if (body.pages)
|
|
858
961
|
push("/pages", "a declarative plug-in has no pages: a page is served by a container");
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
962
|
+
(body.scopes ?? []).forEach((scope, index) => {
|
|
963
|
+
if (!scope.endsWith(":read")) {
|
|
964
|
+
push(`/scopes/${index}`, "a declarative plug-in asks only for read scopes: it keeps its own values on items it can read, and does not call Initiative");
|
|
965
|
+
}
|
|
966
|
+
});
|
|
967
|
+
(body.schedules ?? []).forEach((schedule, index) => {
|
|
968
|
+
if (schedule.endpoint === undefined || schedule.write === undefined) {
|
|
969
|
+
push(`/schedules/${index}`, "a declarative plug-in's schedule names the read it makes and the write it makes from the answer: there is no hook to call");
|
|
970
|
+
}
|
|
971
|
+
});
|
|
972
|
+
(body.actions ?? []).forEach((action, index) => {
|
|
973
|
+
if (action.endpoint === undefined && action.write === undefined) {
|
|
974
|
+
push(`/actions/${index}`, "a declarative plug-in's action names an endpoint, a write, or both");
|
|
975
|
+
}
|
|
976
|
+
});
|
|
865
977
|
endpoints.forEach((endpoint, index) => {
|
|
866
978
|
const where = `/endpoints/${index}`;
|
|
867
979
|
if (endpoint.direction === "emit") {
|
|
@@ -894,6 +1006,26 @@ function kindProblems(body) {
|
|
|
894
1006
|
if (body[key] !== undefined)
|
|
895
1007
|
push(`/${key}`, `'${key}' is a declarative plug-in's term; a container plug-in makes its own calls`);
|
|
896
1008
|
}
|
|
1009
|
+
if (body.scopes !== undefined)
|
|
1010
|
+
push("/scopes", "a container plug-in declares its scopes in its service block");
|
|
1011
|
+
(body.schedules ?? []).forEach((schedule, index) => {
|
|
1012
|
+
for (const key of ["endpoint", "params", "write"]) {
|
|
1013
|
+
if (schedule[key] !== undefined)
|
|
1014
|
+
push(`/schedules/${index}/${key}`, "a container plug-in's schedule calls its schedule hook");
|
|
1015
|
+
}
|
|
1016
|
+
});
|
|
1017
|
+
(body.actions ?? []).forEach((action, index) => {
|
|
1018
|
+
if (action.endpoint === undefined) {
|
|
1019
|
+
push(`/actions/${index}`, "a container plug-in's action names the write endpoint its handler answers");
|
|
1020
|
+
}
|
|
1021
|
+
if (action.write !== undefined)
|
|
1022
|
+
push(`/actions/${index}/write`, "a container plug-in's action is answered by its handler");
|
|
1023
|
+
});
|
|
1024
|
+
(body.fields ?? []).forEach((field, index) => {
|
|
1025
|
+
if (field.actions !== undefined) {
|
|
1026
|
+
push(`/fields/${index}/actions`, "a container plug-in's action is not told which element it was run from: its handler is handed the item alone");
|
|
1027
|
+
}
|
|
1028
|
+
});
|
|
897
1029
|
endpoints.forEach((endpoint, index) => {
|
|
898
1030
|
for (const key of DECLARATIVE_TERMS) {
|
|
899
1031
|
if (endpoint[key] !== undefined) {
|
|
@@ -942,9 +1074,13 @@ function wellFormedHost(host) {
|
|
|
942
1074
|
}
|
|
943
1075
|
/**
|
|
944
1076
|
* What a declarative plug-in's terms say: every expression parses, every request
|
|
945
|
-
* names what it may, a request
|
|
946
|
-
* endpoint
|
|
947
|
-
* a
|
|
1077
|
+
* names what it may, a request naming a member's connection for every call is
|
|
1078
|
+
* on an endpoint whose `requires` names it and whose actors leave out the
|
|
1079
|
+
* installation, a request naming a connection per actor is a write's and names
|
|
1080
|
+
* one for each of the endpoint's actors (the member's interactive, the
|
|
1081
|
+
* installation's static), steps read only the steps before them, every event
|
|
1082
|
+
* row emits a declared emission with its map, writes, or both, and each refusal
|
|
1083
|
+
* names a code the endpoint has.
|
|
948
1084
|
*/
|
|
949
1085
|
function declarativeProblems(body) {
|
|
950
1086
|
const problems = [];
|
|
@@ -996,7 +1132,7 @@ function declarativeProblems(body) {
|
|
|
996
1132
|
else if (!owned && value.connection === undefined) {
|
|
997
1133
|
push(where, "names the connection whose credential it carries");
|
|
998
1134
|
}
|
|
999
|
-
else if (value.connection
|
|
1135
|
+
else if (typeof value.connection === "string" && !connectionIds.has(value.connection)) {
|
|
1000
1136
|
push(`${where}/connection`, `'${value.connection}' is not a connection this plug-in declares`);
|
|
1001
1137
|
}
|
|
1002
1138
|
const paging = value.paging;
|
|
@@ -1023,22 +1159,62 @@ function declarativeProblems(body) {
|
|
|
1023
1159
|
const where = `/endpoints/${index}`;
|
|
1024
1160
|
const names = new Set();
|
|
1025
1161
|
// A member's own connection is resolved for the caller by `requires`, so a
|
|
1026
|
-
// request carrying one names it there too.
|
|
1162
|
+
// request carrying one on every call names it there too. A request naming a
|
|
1163
|
+
// connection per actor carries the member's only on a call made as the
|
|
1164
|
+
// member, which requires it.
|
|
1027
1165
|
const required = new Set(Object.values(endpoint.requires ?? {}).flat());
|
|
1028
|
-
const
|
|
1166
|
+
const actorConnection = (value, at) => {
|
|
1029
1167
|
const named = value.connection;
|
|
1030
|
-
if (
|
|
1031
|
-
|
|
1168
|
+
if (typeof named === "string") {
|
|
1169
|
+
if (!interactive.has(named))
|
|
1170
|
+
return;
|
|
1171
|
+
if (!required.has(named)) {
|
|
1172
|
+
push(`${at}/connection`, `its request uses the member connection '${named}', which requires does not name`);
|
|
1173
|
+
}
|
|
1174
|
+
if (endpoint.actors?.includes("installation")) {
|
|
1175
|
+
const instead = endpoint.direction === "write" ? ": name a connection per actor" : "";
|
|
1176
|
+
push(`${at}/connection`, `its request uses the member connection '${named}', which a call made as the installation does not have${instead}`);
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
else if (named !== undefined) {
|
|
1180
|
+
if (endpoint.direction !== "write") {
|
|
1181
|
+
push(`${at}/connection`, "only a write endpoint's request names a connection per actor");
|
|
1182
|
+
}
|
|
1183
|
+
else if (!endpoint.actors) {
|
|
1184
|
+
push(`${at}/connection`, "names a connection per actor, and the endpoint declares no actors");
|
|
1185
|
+
}
|
|
1186
|
+
else {
|
|
1187
|
+
for (const actor of ACTOR_KINDS) {
|
|
1188
|
+
const id = named[actor];
|
|
1189
|
+
const entry = `${at}/connection/${actor}`;
|
|
1190
|
+
if (id === undefined) {
|
|
1191
|
+
if (endpoint.actors.includes(actor))
|
|
1192
|
+
push(`${at}/connection`, `names no connection for '${actor}', one of the endpoint's actors`);
|
|
1193
|
+
}
|
|
1194
|
+
else if (!endpoint.actors.includes(actor)) {
|
|
1195
|
+
push(entry, `'${actor}' is not one of the endpoint's actors`);
|
|
1196
|
+
}
|
|
1197
|
+
else if (!connectionIds.has(id)) {
|
|
1198
|
+
push(entry, `'${id}' is not a connection this plug-in declares`);
|
|
1199
|
+
}
|
|
1200
|
+
else if (actor === "member" && !interactive.has(id)) {
|
|
1201
|
+
push(entry, `'${id}' is not an interactive connection: a call made as the member carries the member's own credential`);
|
|
1202
|
+
}
|
|
1203
|
+
else if (actor === "installation" && interactive.has(id)) {
|
|
1204
|
+
push(entry, `'${id}' is not a static connection: a call made as the installation carries the community's credential`);
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1032
1208
|
}
|
|
1033
1209
|
};
|
|
1034
1210
|
if (endpoint.request) {
|
|
1035
1211
|
request(endpoint.request, `${where}/request`, false, names);
|
|
1036
|
-
|
|
1212
|
+
actorConnection(endpoint.request, `${where}/request`);
|
|
1037
1213
|
}
|
|
1038
1214
|
(endpoint.steps ?? []).forEach((step, position) => {
|
|
1039
1215
|
const at = `${where}/steps/${position}`;
|
|
1040
1216
|
request(step.request, `${at}/request`, false, new Set(names));
|
|
1041
|
-
|
|
1217
|
+
actorConnection(step.request, `${at}/request`);
|
|
1042
1218
|
if (names.has(step.name))
|
|
1043
1219
|
push(`${at}/name`, `'${step.name}' names two steps`);
|
|
1044
1220
|
names.add(step.name);
|
|
@@ -1072,6 +1248,10 @@ function declarativeProblems(body) {
|
|
|
1072
1248
|
push(at, "a refusal gives both 'refuse_when' and the 'code' it answers");
|
|
1073
1249
|
}
|
|
1074
1250
|
}
|
|
1251
|
+
// Either kind's token may answer its body with an expression.
|
|
1252
|
+
const exchange = connection.token?.exchange_body;
|
|
1253
|
+
if (typeof exchange === "string")
|
|
1254
|
+
expression(exchange, `${where}/token/exchange_body`);
|
|
1075
1255
|
const health = connection.health;
|
|
1076
1256
|
if (health) {
|
|
1077
1257
|
request(health.request, `${where}/health/request`, true);
|
|
@@ -1083,8 +1263,20 @@ function declarativeProblems(body) {
|
|
|
1083
1263
|
const where = `/webhooks/events/${index}`;
|
|
1084
1264
|
expression(event.when, `${where}/when`);
|
|
1085
1265
|
expression(event.map, `${where}/map`);
|
|
1086
|
-
|
|
1266
|
+
expression(event.write, `${where}/write`);
|
|
1267
|
+
if (event.emit === undefined && event.write === undefined)
|
|
1268
|
+
push(where, "an event row emits, writes, or both");
|
|
1269
|
+
if ((event.emit === undefined) !== (event.map === undefined)) {
|
|
1270
|
+
push(where, "an event row gives both 'emit' and the 'map' of its payload");
|
|
1271
|
+
}
|
|
1272
|
+
if (event.emit !== undefined && !emits.has(event.emit)) {
|
|
1087
1273
|
push(`${where}/emit`, `'${event.emit}' is not an emit endpoint this plug-in declares`);
|
|
1274
|
+
}
|
|
1275
|
+
});
|
|
1276
|
+
(body.actions ?? []).forEach((action, index) => expression(action.write, `/actions/${index}/write`));
|
|
1277
|
+
(body.schedules ?? []).forEach((schedule, index) => {
|
|
1278
|
+
expression(schedule.params, `/schedules/${index}/params`);
|
|
1279
|
+
expression(schedule.write, `/schedules/${index}/write`);
|
|
1088
1280
|
});
|
|
1089
1281
|
(body.webhooks?.status ?? []).forEach((row, index) => {
|
|
1090
1282
|
const where = `/webhooks/status/${index}`;
|