@bett3r-dev/blueprint-schema 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/build/cjs/apply-design.d.ts.map +1 -1
- package/build/cjs/apply-design.js +11 -1
- package/build/cjs/apply-design.js.map +1 -1
- package/build/cjs/apply-overrides.d.ts.map +1 -1
- package/build/cjs/apply-overrides.js +18 -1
- package/build/cjs/apply-overrides.js.map +1 -1
- package/build/cjs/card-holds.d.ts +4 -0
- package/build/cjs/card-holds.d.ts.map +1 -0
- package/build/cjs/card-holds.js +51 -0
- package/build/cjs/card-holds.js.map +1 -0
- package/build/cjs/channel-link.d.ts +11 -0
- package/build/cjs/channel-link.d.ts.map +1 -0
- package/build/cjs/channel-link.js +39 -0
- package/build/cjs/channel-link.js.map +1 -0
- package/build/cjs/coverage-links.d.ts +1 -1
- package/build/cjs/coverage-links.d.ts.map +1 -1
- package/build/cjs/coverage-links.js +10 -3
- package/build/cjs/coverage-links.js.map +1 -1
- package/build/cjs/design.d.ts +38 -7
- package/build/cjs/design.d.ts.map +1 -1
- package/build/cjs/design.js +6 -4
- package/build/cjs/design.js.map +1 -1
- package/build/cjs/diagnostics.d.ts +12 -0
- package/build/cjs/diagnostics.d.ts.map +1 -1
- package/build/cjs/diagnostics.js.map +1 -1
- package/build/cjs/effective-design.d.ts +2 -2
- package/build/cjs/effective-design.d.ts.map +1 -1
- package/build/cjs/effective-design.js +30 -2
- package/build/cjs/effective-design.js.map +1 -1
- package/build/cjs/entry-points.d.ts.map +1 -1
- package/build/cjs/entry-points.js +3 -1
- package/build/cjs/entry-points.js.map +1 -1
- package/build/cjs/fork-scenarios.d.ts +3 -1
- package/build/cjs/fork-scenarios.d.ts.map +1 -1
- package/build/cjs/fork-scenarios.js +20 -5
- package/build/cjs/fork-scenarios.js.map +1 -1
- package/build/cjs/index.d.ts +6 -0
- package/build/cjs/index.d.ts.map +1 -1
- package/build/cjs/index.js +6 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/map-review-view.d.ts +29 -0
- package/build/cjs/map-review-view.d.ts.map +1 -0
- package/build/cjs/map-review-view.js +64 -0
- package/build/cjs/map-review-view.js.map +1 -0
- package/build/cjs/map-structure.d.ts +25 -1
- package/build/cjs/map-structure.d.ts.map +1 -1
- package/build/cjs/map-structure.js.map +1 -1
- package/build/cjs/map-vocabulary.d.ts +8 -1
- package/build/cjs/map-vocabulary.d.ts.map +1 -1
- package/build/cjs/map-vocabulary.js +15 -2
- package/build/cjs/map-vocabulary.js.map +1 -1
- package/build/cjs/nodes.d.ts +67 -0
- package/build/cjs/nodes.d.ts.map +1 -1
- package/build/cjs/nodes.js +8 -1
- package/build/cjs/nodes.js.map +1 -1
- package/build/cjs/overrides.d.ts +21 -0
- package/build/cjs/overrides.d.ts.map +1 -1
- package/build/cjs/overrides.js +53 -1
- package/build/cjs/overrides.js.map +1 -1
- package/build/cjs/reality-check.d.ts +19 -1
- package/build/cjs/reality-check.d.ts.map +1 -1
- package/build/cjs/reality-check.js +113 -6
- package/build/cjs/reality-check.js.map +1 -1
- package/build/cjs/scenario-test-level.d.ts +25 -0
- package/build/cjs/scenario-test-level.d.ts.map +1 -0
- package/build/cjs/scenario-test-level.js +43 -0
- package/build/cjs/scenario-test-level.js.map +1 -0
- package/build/cjs/session.d.ts +21 -2
- package/build/cjs/session.d.ts.map +1 -1
- package/build/cjs/session.js +3 -2
- package/build/cjs/session.js.map +1 -1
- package/build/cjs/spec.d.ts.map +1 -1
- package/build/cjs/spec.js +70 -13
- package/build/cjs/spec.js.map +1 -1
- package/build/cjs/step-elements.d.ts +27 -0
- package/build/cjs/step-elements.d.ts.map +1 -0
- package/build/cjs/step-elements.js +28 -0
- package/build/cjs/step-elements.js.map +1 -0
- package/build/cjs/tags.d.ts +26 -0
- package/build/cjs/tags.d.ts.map +1 -0
- package/build/cjs/tags.js +28 -0
- package/build/cjs/tags.js.map +1 -0
- package/build/cjs/topology.d.ts.map +1 -1
- package/build/cjs/topology.js +2 -0
- package/build/cjs/topology.js.map +1 -1
- package/build/cjs/validate-design.d.ts +1 -1
- package/build/cjs/validate-design.d.ts.map +1 -1
- package/build/cjs/validate-design.js +242 -10
- package/build/cjs/validate-design.js.map +1 -1
- package/build/esm/apply-design.d.ts.map +1 -1
- package/build/esm/apply-design.js +11 -1
- package/build/esm/apply-design.js.map +1 -1
- package/build/esm/apply-overrides.d.ts.map +1 -1
- package/build/esm/apply-overrides.js +18 -1
- package/build/esm/apply-overrides.js.map +1 -1
- package/build/esm/card-holds.d.ts +4 -0
- package/build/esm/card-holds.d.ts.map +1 -0
- package/build/esm/card-holds.js +48 -0
- package/build/esm/card-holds.js.map +1 -0
- package/build/esm/channel-link.d.ts +11 -0
- package/build/esm/channel-link.d.ts.map +1 -0
- package/build/esm/channel-link.js +34 -0
- package/build/esm/channel-link.js.map +1 -0
- package/build/esm/coverage-links.d.ts +1 -1
- package/build/esm/coverage-links.d.ts.map +1 -1
- package/build/esm/coverage-links.js +10 -3
- package/build/esm/coverage-links.js.map +1 -1
- package/build/esm/design.d.ts +38 -7
- package/build/esm/design.d.ts.map +1 -1
- package/build/esm/design.js +6 -4
- package/build/esm/design.js.map +1 -1
- package/build/esm/diagnostics.d.ts +12 -0
- package/build/esm/diagnostics.d.ts.map +1 -1
- package/build/esm/diagnostics.js.map +1 -1
- package/build/esm/effective-design.d.ts +2 -2
- package/build/esm/effective-design.d.ts.map +1 -1
- package/build/esm/effective-design.js +30 -2
- package/build/esm/effective-design.js.map +1 -1
- package/build/esm/entry-points.d.ts.map +1 -1
- package/build/esm/entry-points.js +3 -1
- package/build/esm/entry-points.js.map +1 -1
- package/build/esm/fork-scenarios.d.ts +3 -1
- package/build/esm/fork-scenarios.d.ts.map +1 -1
- package/build/esm/fork-scenarios.js +20 -5
- package/build/esm/fork-scenarios.js.map +1 -1
- package/build/esm/index.d.ts +6 -0
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index.js +6 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/map-review-view.d.ts +29 -0
- package/build/esm/map-review-view.d.ts.map +1 -0
- package/build/esm/map-review-view.js +58 -0
- package/build/esm/map-review-view.js.map +1 -0
- package/build/esm/map-structure.d.ts +25 -1
- package/build/esm/map-structure.d.ts.map +1 -1
- package/build/esm/map-structure.js.map +1 -1
- package/build/esm/map-vocabulary.d.ts +8 -1
- package/build/esm/map-vocabulary.d.ts.map +1 -1
- package/build/esm/map-vocabulary.js +13 -1
- package/build/esm/map-vocabulary.js.map +1 -1
- package/build/esm/nodes.d.ts +67 -0
- package/build/esm/nodes.d.ts.map +1 -1
- package/build/esm/nodes.js +7 -0
- package/build/esm/nodes.js.map +1 -1
- package/build/esm/overrides.d.ts +21 -0
- package/build/esm/overrides.d.ts.map +1 -1
- package/build/esm/overrides.js +51 -1
- package/build/esm/overrides.js.map +1 -1
- package/build/esm/reality-check.d.ts +19 -1
- package/build/esm/reality-check.d.ts.map +1 -1
- package/build/esm/reality-check.js +112 -6
- package/build/esm/reality-check.js.map +1 -1
- package/build/esm/scenario-test-level.d.ts +25 -0
- package/build/esm/scenario-test-level.d.ts.map +1 -0
- package/build/esm/scenario-test-level.js +37 -0
- package/build/esm/scenario-test-level.js.map +1 -0
- package/build/esm/session.d.ts +21 -2
- package/build/esm/session.d.ts.map +1 -1
- package/build/esm/session.js +3 -2
- package/build/esm/session.js.map +1 -1
- package/build/esm/spec.d.ts.map +1 -1
- package/build/esm/spec.js +71 -14
- package/build/esm/spec.js.map +1 -1
- package/build/esm/step-elements.d.ts +27 -0
- package/build/esm/step-elements.d.ts.map +1 -0
- package/build/esm/step-elements.js +21 -0
- package/build/esm/step-elements.js.map +1 -0
- package/build/esm/tags.d.ts +26 -0
- package/build/esm/tags.d.ts.map +1 -0
- package/build/esm/tags.js +21 -0
- package/build/esm/tags.js.map +1 -0
- package/build/esm/topology.d.ts.map +1 -1
- package/build/esm/topology.js +2 -0
- package/build/esm/topology.js.map +1 -1
- package/build/esm/validate-design.d.ts +1 -1
- package/build/esm/validate-design.d.ts.map +1 -1
- package/build/esm/validate-design.js +243 -11
- package/build/esm/validate-design.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/schema/map.schema.json +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-design.d.ts","sourceRoot":"","sources":["../../src/validate-design.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,UAAU,EAQhB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-design.d.ts","sourceRoot":"","sources":["../../src/validate-design.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,UAAU,EAQhB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,YAAY,CAAC;AAQzD,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIvF,MAAM,MAAM,eAAe,GACvB,4BAA4B,GAC5B,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,0BAA0B,GAC1B,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,eAAe,GACf,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,GAAG,YAAY,CAiBlF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,CAAC;AAWF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9B,CAAC;AAoxBF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,qBAA0B,GAClC,sBAAsB,CA6IxB"}
|
|
@@ -3,8 +3,9 @@ import { buildHandlerScopeIndex, resolveHandlerScope } from './handler-scope.js'
|
|
|
3
3
|
import { COMMENT_REACTIONS, MODIFIABLE_NODE_FIELDS, isCommentIdAnchor, isEdgeRefAnchor } from './design.js';
|
|
4
4
|
import { manualNodeId } from './apply-overrides.js';
|
|
5
5
|
import { nodeId } from './graph.js';
|
|
6
|
-
import { NODE_TYPES } from './nodes.js';
|
|
6
|
+
import { DATA_SHAPE_NODE_TYPES, DATA_TYPE_KINDS, NODE_TYPES } from './nodes.js';
|
|
7
7
|
import { BLUEPRINT_OVERRIDES_FILENAME } from './overrides.js';
|
|
8
|
+
import { TAG_NAME_RULE, isTagName, tagApplies } from './tags.js';
|
|
8
9
|
import { isAllowedEdge } from './topology.js';
|
|
9
10
|
export const DESIGN_ISSUE_CLASS = {
|
|
10
11
|
UNSUPPORTED_SCHEMA_VERSION: 'malformed',
|
|
@@ -13,12 +14,16 @@ export const DESIGN_ISSUE_CLASS = {
|
|
|
13
14
|
UNKNOWN_EDGE_KIND: 'malformed',
|
|
14
15
|
UNMODIFIABLE_FIELD: 'malformed',
|
|
15
16
|
DUPLICATE_COMMENT_ID: 'malformed',
|
|
17
|
+
TAG_MALFORMED: 'malformed',
|
|
18
|
+
DATA_SHAPE_NOT_ALLOWED: 'malformed',
|
|
19
|
+
UNRESOLVED_DATA_REF: 'malformed',
|
|
16
20
|
TOPOLOGY_VIOLATION: 'incoherent',
|
|
17
21
|
DUPLICATE_IDENTITY: 'incoherent',
|
|
18
22
|
EDGE_TARGETS_REMOVED: 'incoherent',
|
|
19
23
|
UNRESOLVED_TARGET: 'incoherent',
|
|
20
24
|
UNRESOLVED_EDGE_ENDPOINT: 'incoherent',
|
|
21
|
-
INVALID_EDGE_HANDLER: 'incoherent'
|
|
25
|
+
INVALID_EDGE_HANDLER: 'incoherent',
|
|
26
|
+
TAG_NOT_APPLICABLE: 'incoherent'
|
|
22
27
|
};
|
|
23
28
|
function splitByClass(issues) {
|
|
24
29
|
const malformed = [];
|
|
@@ -72,7 +77,164 @@ function checkInvariantFields(values, prefix, path, issues) {
|
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
|
-
|
|
80
|
+
// BP-279: a tag list is a list of names that are well-formed once normalised (tags.ts); a malformed one refuses the batch.
|
|
81
|
+
function checkTagNames(tags, prefix, path, issues) {
|
|
82
|
+
if (tags === undefined)
|
|
83
|
+
return;
|
|
84
|
+
if (!Array.isArray(tags)) {
|
|
85
|
+
issues.push({
|
|
86
|
+
code: 'TAG_MALFORMED',
|
|
87
|
+
path,
|
|
88
|
+
message: `${prefix}.tags must be a list of tag names`
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
for (const tag of tags) {
|
|
93
|
+
if (isTagName(tag))
|
|
94
|
+
continue;
|
|
95
|
+
issues.push({
|
|
96
|
+
code: 'TAG_MALFORMED',
|
|
97
|
+
path,
|
|
98
|
+
message: `${prefix}.tags holds ${JSON.stringify(tag)}, which is not a tag name: ${TAG_NAME_RULE}`
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// BP-279: a predefined tag on a node type it does not apply to (keyed on anything but a system) is written and reported.
|
|
103
|
+
function checkTagsApply(tags, type, prefix, path, issues) {
|
|
104
|
+
if (type === undefined || !Array.isArray(tags))
|
|
105
|
+
return;
|
|
106
|
+
for (const tag of tags) {
|
|
107
|
+
if (!isTagName(tag) || tagApplies(tag, type))
|
|
108
|
+
continue;
|
|
109
|
+
issues.push({
|
|
110
|
+
code: 'TAG_NOT_APPLICABLE',
|
|
111
|
+
path,
|
|
112
|
+
message: `${prefix}.tags holds ${JSON.stringify(tag)}, which does not apply to a ${type}`
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const FIELD_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
117
|
+
function isRecord(value) {
|
|
118
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
119
|
+
}
|
|
120
|
+
function malformed(path, message, issues) {
|
|
121
|
+
issues.push({ code: 'MALFORMED_ENTRY', path, message });
|
|
122
|
+
}
|
|
123
|
+
function checkBooleanFlag(value, at, path, issues) {
|
|
124
|
+
if (value !== undefined && typeof value !== 'boolean')
|
|
125
|
+
malformed(path, `${at} must be a boolean`, issues);
|
|
126
|
+
}
|
|
127
|
+
function checkNestedType(value, at, path, issues, refs) {
|
|
128
|
+
if (!isRecord(value)) {
|
|
129
|
+
malformed(path, `${at} must be a data type`, issues);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
checkDataType(value, at, path, issues, refs);
|
|
133
|
+
}
|
|
134
|
+
function checkDataType(type, at, path, issues, refs) {
|
|
135
|
+
const { kind } = type;
|
|
136
|
+
switch (kind) {
|
|
137
|
+
case 'number':
|
|
138
|
+
case 'integer':
|
|
139
|
+
case 'boolean':
|
|
140
|
+
case 'any':
|
|
141
|
+
return;
|
|
142
|
+
case 'string':
|
|
143
|
+
if (type.format !== undefined && !isFilledString(type.format)) {
|
|
144
|
+
malformed(path, `${at}.format must be a non-empty string`, issues);
|
|
145
|
+
}
|
|
146
|
+
return;
|
|
147
|
+
case 'enum':
|
|
148
|
+
// BP-270 D52 F4 / D71: an empty `values` is an enum whose values are unknown (an extractor read the enum but not its
|
|
149
|
+
// values), accepted so a shape read back from code never refuses every later edit of the node it sits in.
|
|
150
|
+
if (!Array.isArray(type.values) || !type.values.every(isFilledString)) {
|
|
151
|
+
malformed(path, `${at}.values must be a list of non-empty strings (empty when its values are unknown)`, issues);
|
|
152
|
+
}
|
|
153
|
+
return;
|
|
154
|
+
case 'list':
|
|
155
|
+
checkNestedType(type.items, `${at}.items`, path, issues, refs);
|
|
156
|
+
return;
|
|
157
|
+
case 'map':
|
|
158
|
+
checkNestedType(type.values, `${at}.values`, path, issues, refs);
|
|
159
|
+
return;
|
|
160
|
+
case 'object':
|
|
161
|
+
checkBooleanFlag(type.open, `${at}.open`, path, issues);
|
|
162
|
+
if (!Array.isArray(type.fields)) {
|
|
163
|
+
malformed(path, `${at}.fields must be a list of fields`, issues);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
checkDataFields(type.fields, `${at}.fields`, path, issues, refs);
|
|
167
|
+
return;
|
|
168
|
+
case 'ref':
|
|
169
|
+
if (!isFilledString(type.target)) {
|
|
170
|
+
malformed(path, `${at}.target must be a node id`, issues);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
refs.push({ at: `${at}.target`, target: type.target });
|
|
174
|
+
return;
|
|
175
|
+
case 'schema':
|
|
176
|
+
if (!isFilledString(type.name))
|
|
177
|
+
malformed(path, `${at}.name must be a non-empty schema name`, issues);
|
|
178
|
+
return;
|
|
179
|
+
default:
|
|
180
|
+
malformed(path, `${at}.kind ${JSON.stringify(kind)} is not a data type — one of `
|
|
181
|
+
+ DATA_TYPE_KINDS.join(', '), issues);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// D12: a field's name is an identifier, unique among its siblings; a nested object's fields are a shape of their own.
|
|
185
|
+
function checkDataFields(fields, prefix, path, issues, refs) {
|
|
186
|
+
const seen = new Set();
|
|
187
|
+
fields.forEach((field, index) => {
|
|
188
|
+
const at = `${prefix}[${index}]`;
|
|
189
|
+
if (!isRecord(field)) {
|
|
190
|
+
malformed(path, `${at} must be a field { name, type?, optional?, nullable?, note? }`, issues);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const { name } = field;
|
|
194
|
+
if (typeof name !== 'string' || !FIELD_NAME.test(name)) {
|
|
195
|
+
malformed(path, `${at}.name ${JSON.stringify(name)} must be an identifier `
|
|
196
|
+
+ '(a letter or _, then letters, digits or _)', issues);
|
|
197
|
+
}
|
|
198
|
+
else if (seen.has(name)) {
|
|
199
|
+
malformed(path, `${at}.name ${JSON.stringify(name)} is listed twice; a field name is unique in its shape`, issues);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
seen.add(name);
|
|
203
|
+
}
|
|
204
|
+
checkBooleanFlag(field.optional, `${at}.optional`, path, issues);
|
|
205
|
+
checkBooleanFlag(field.nullable, `${at}.nullable`, path, issues);
|
|
206
|
+
if (field.note !== undefined && typeof field.note !== 'string')
|
|
207
|
+
malformed(path, `${at}.note must be a string`, issues);
|
|
208
|
+
if (field.type !== undefined)
|
|
209
|
+
checkNestedType(field.type, `${at}.type`, path, issues, refs);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
// The structure of a data shape: `{ fields, open? }` or `{ sameAs }`. Whether its node may carry one, and whether the
|
|
213
|
+
// ids it names resolve, need the namespace, so validateDesign checks those for the incoming batch.
|
|
214
|
+
function checkDataShape(shape, prefix, path, issues, refs) {
|
|
215
|
+
if (!isRecord(shape) || ('fields' in shape) === ('sameAs' in shape)
|
|
216
|
+
|| ('sameAs' in shape ? !isFilledString(shape.sameAs) : !Array.isArray(shape.fields))) {
|
|
217
|
+
malformed(path, `${prefix} must be { fields, open? } or { sameAs }`, issues);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (isFilledString(shape.sameAs)) {
|
|
221
|
+
refs.push({ at: `${prefix}.sameAs`, target: shape.sameAs });
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
checkBooleanFlag(shape.open, `${prefix}.open`, path, issues);
|
|
225
|
+
checkDataFields(shape.fields, `${prefix}.fields`, path, issues, refs);
|
|
226
|
+
}
|
|
227
|
+
function checkDataShapeAllowed(type, prefix, path, issues) {
|
|
228
|
+
if (type === undefined || DATA_SHAPE_NODE_TYPES.includes(type))
|
|
229
|
+
return;
|
|
230
|
+
issues.push({
|
|
231
|
+
code: 'DATA_SHAPE_NOT_ALLOWED',
|
|
232
|
+
path,
|
|
233
|
+
message: `${prefix} may not sit on a ${type} — a data shape belongs to a `
|
|
234
|
+
+ `${DATA_SHAPE_NODE_TYPES.slice(0, -1).join(', ')} or ${DATA_SHAPE_NODE_TYPES[DATA_SHAPE_NODE_TYPES.length - 1]}`
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function checkProposedNode(node, path, issues, refs) {
|
|
76
238
|
if (!NODE_TYPES.includes(node.type)) {
|
|
77
239
|
issues.push({
|
|
78
240
|
code: 'UNKNOWN_NODE_TYPE',
|
|
@@ -95,9 +257,14 @@ function checkProposedNode(node, path, issues) {
|
|
|
95
257
|
});
|
|
96
258
|
}
|
|
97
259
|
checkInvariantFields(node, path, path, issues);
|
|
260
|
+
checkTagNames(node.tags, path, path, issues);
|
|
261
|
+
if (NODE_TYPES.includes(node.type))
|
|
262
|
+
checkTagsApply(node.tags, node.type, path, path, issues);
|
|
263
|
+
if (node.dataShape !== undefined)
|
|
264
|
+
checkDataShape(node.dataShape, `${path}.dataShape`, path, issues, refs);
|
|
98
265
|
checkAttribution(node, path, issues);
|
|
99
266
|
}
|
|
100
|
-
function checkModifyEntry(entry, path, issues) {
|
|
267
|
+
function checkModifyEntry(entry, path, issues, refs) {
|
|
101
268
|
checkAttribution(entry, path, issues);
|
|
102
269
|
if (!isFilledString(entry.id)) {
|
|
103
270
|
issues.push({
|
|
@@ -107,7 +274,8 @@ function checkModifyEntry(entry, path, issues) {
|
|
|
107
274
|
});
|
|
108
275
|
}
|
|
109
276
|
// A modify that changes no listed field (an omitted set reads as an empty one) declares a change the fields cannot
|
|
110
|
-
// express —
|
|
277
|
+
// express — an aggregate's logic, a policy, an algorithm — and its note says what that is. A command's or event's
|
|
278
|
+
// payload is a field: set.dataShape (BP-270).
|
|
111
279
|
const set = entry.set ?? {};
|
|
112
280
|
if (typeof set !== 'object' || set === null || Array.isArray(set)) {
|
|
113
281
|
issues.push({
|
|
@@ -122,8 +290,9 @@ function checkModifyEntry(entry, path, issues) {
|
|
|
122
290
|
issues.push({
|
|
123
291
|
code: 'MALFORMED_ENTRY',
|
|
124
292
|
path,
|
|
125
|
-
message: `${path} changes nothing — set at least one field
|
|
126
|
-
+ '
|
|
293
|
+
message: `${path} changes nothing — set at least one field (a payload's fields go in set.dataShape), or, `
|
|
294
|
+
+ 'when the change is one no field holds (logic, a policy, an algorithm), leave set empty and describe the '
|
|
295
|
+
+ 'change in note'
|
|
127
296
|
});
|
|
128
297
|
}
|
|
129
298
|
for (const field of fields) {
|
|
@@ -155,6 +324,13 @@ function checkModifyEntry(entry, path, issues) {
|
|
|
155
324
|
});
|
|
156
325
|
}
|
|
157
326
|
checkInvariantFields(values, `${path}.set`, path, issues);
|
|
327
|
+
checkTagNames(values.tags, `${path}.set`, path, issues);
|
|
328
|
+
if (values.dataShape !== undefined)
|
|
329
|
+
checkDataShape(values.dataShape, `${path}.set.dataShape`, path, issues, refs);
|
|
330
|
+
// BP-270 D5: the shape a set.dataShape replaces is the code's, as the local store kept it; its structure is checked so
|
|
331
|
+
// a hand-edited one is refused rather than read, and the ids it names are not resolved, since they named the code then.
|
|
332
|
+
if (entry.previousDataShape !== undefined)
|
|
333
|
+
checkDataShape(entry.previousDataShape, `${path}.previousDataShape`, path, issues, []);
|
|
158
334
|
}
|
|
159
335
|
function checkRemoveEntry(entry, path, issues) {
|
|
160
336
|
checkAttribution(entry, path, issues);
|
|
@@ -223,6 +399,13 @@ function checkComment(entry, path, issues) {
|
|
|
223
399
|
message: `${path}.mentions must be a list of member ids when present`
|
|
224
400
|
});
|
|
225
401
|
}
|
|
402
|
+
if (entry.principal !== undefined && !isFilledString(entry.principal)) {
|
|
403
|
+
issues.push({
|
|
404
|
+
code: 'MALFORMED_ENTRY',
|
|
405
|
+
path,
|
|
406
|
+
message: `${path}.principal must be the writer's non-empty principal when present`
|
|
407
|
+
});
|
|
408
|
+
}
|
|
226
409
|
if (entry.reaction !== undefined && !COMMENT_REACTIONS.includes(entry.reaction)) {
|
|
227
410
|
issues.push({
|
|
228
411
|
code: 'MALFORMED_ENTRY',
|
|
@@ -230,6 +413,21 @@ function checkComment(entry, path, issues) {
|
|
|
230
413
|
message: `${path}.reaction must be one of ${COMMENT_REACTIONS.join(', ')} when present`
|
|
231
414
|
});
|
|
232
415
|
}
|
|
416
|
+
if (entry.handOff !== undefined && entry.handOff !== true) {
|
|
417
|
+
issues.push({
|
|
418
|
+
code: 'MALFORMED_ENTRY',
|
|
419
|
+
path,
|
|
420
|
+
message: `${path}.handOff must be true when present — it marks a reply job's hand-off note`
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
if (entry.answers !== undefined
|
|
424
|
+
&& (!Array.isArray(entry.answers) || entry.answers.length === 0 || !entry.answers.every(isFilledString))) {
|
|
425
|
+
issues.push({
|
|
426
|
+
code: 'MALFORMED_ENTRY',
|
|
427
|
+
path,
|
|
428
|
+
message: `${path}.answers must be a non-empty list of comment ids when present — the comments an agent comment answers`
|
|
429
|
+
});
|
|
430
|
+
}
|
|
233
431
|
const { anchor } = entry;
|
|
234
432
|
if (anchor === null || anchor === undefined || typeof anchor === 'string')
|
|
235
433
|
return;
|
|
@@ -518,10 +716,20 @@ export function validateDesign(design, context = {}) {
|
|
|
518
716
|
const modifies = locate(design.modify ?? [], incoming.modify ?? [], 'modify');
|
|
519
717
|
const removes = locate(design.remove ?? [], incoming.remove ?? [], 'remove');
|
|
520
718
|
const comments = locate(design.comments ?? [], incoming.comments ?? [], 'comments');
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
for (const { entry, path } of
|
|
524
|
-
|
|
719
|
+
// BP-270: the ids the incoming batch's data shapes name, checked against the namespace once it is built.
|
|
720
|
+
const dataRefs = [];
|
|
721
|
+
for (const { entry, path, incoming: isIncoming } of nodes) {
|
|
722
|
+
const refs = [];
|
|
723
|
+
checkProposedNode(entry, path, issues, refs);
|
|
724
|
+
if (isIncoming)
|
|
725
|
+
dataRefs.push(...refs.map(ref => ({ ...ref, path })));
|
|
726
|
+
}
|
|
727
|
+
for (const { entry, path, incoming: isIncoming } of modifies) {
|
|
728
|
+
const refs = [];
|
|
729
|
+
checkModifyEntry(entry, path, issues, refs);
|
|
730
|
+
if (isIncoming)
|
|
731
|
+
dataRefs.push(...refs.map(ref => ({ ...ref, path })));
|
|
732
|
+
}
|
|
525
733
|
for (const { entry, path } of removes)
|
|
526
734
|
checkRemoveEntry(entry, path, issues);
|
|
527
735
|
for (const { entry, path } of comments)
|
|
@@ -542,8 +750,32 @@ export function validateDesign(design, context = {}) {
|
|
|
542
750
|
commentIds.add(entry.id);
|
|
543
751
|
}
|
|
544
752
|
const namespace = buildNamespace(nodes, modifies, context.graph, issues);
|
|
753
|
+
// D4, and D14's rule that a write is refused only for what it introduces: a node type that may not carry a shape,
|
|
754
|
+
// and an id a shape names that is in neither the design nor the graph, are checked on the incoming batch alone, so
|
|
755
|
+
// a reclassify or a removal that lands later does not lock a document that was valid when written.
|
|
756
|
+
for (const { entry, path, incoming: isIncoming } of nodes) {
|
|
757
|
+
if (!isIncoming || entry.dataShape === undefined || !NODE_TYPES.includes(entry.type))
|
|
758
|
+
continue;
|
|
759
|
+
checkDataShapeAllowed(entry.type, `${path}.dataShape`, path, issues);
|
|
760
|
+
}
|
|
761
|
+
for (const { entry, path, incoming: isIncoming } of modifies) {
|
|
762
|
+
if (!isIncoming || entry.set?.dataShape === undefined)
|
|
763
|
+
continue;
|
|
764
|
+
checkDataShapeAllowed(namespace.get(entry.id)?.type, `${path}.set.dataShape`, path, issues);
|
|
765
|
+
}
|
|
766
|
+
for (const { at, target, path } of dataRefs) {
|
|
767
|
+
if (namespace.has(target))
|
|
768
|
+
continue;
|
|
769
|
+
issues.push({
|
|
770
|
+
code: 'UNRESOLVED_DATA_REF',
|
|
771
|
+
path,
|
|
772
|
+
message: `${at} ${JSON.stringify(target)} is in neither the design nor the graph`
|
|
773
|
+
});
|
|
774
|
+
}
|
|
545
775
|
for (const located of modifies) {
|
|
546
776
|
checkTarget(located.entry.id, located, namespace, issues);
|
|
777
|
+
const tags = located.entry.set?.tags;
|
|
778
|
+
checkTagsApply(tags, namespace.get(located.entry.id)?.type, `${located.path}.set`, located.path, issues);
|
|
547
779
|
}
|
|
548
780
|
for (const located of removes) {
|
|
549
781
|
const { entry } = located;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-design.js","sourceRoot":"","sources":["../../src/validate-design.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-design.js","sourceRoot":"","sources":["../../src/validate-design.ts"],"names":[],"mappings":"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"}
|