@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.
Files changed (182) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/build/cjs/apply-design.d.ts.map +1 -1
  3. package/build/cjs/apply-design.js +11 -1
  4. package/build/cjs/apply-design.js.map +1 -1
  5. package/build/cjs/apply-overrides.d.ts.map +1 -1
  6. package/build/cjs/apply-overrides.js +18 -1
  7. package/build/cjs/apply-overrides.js.map +1 -1
  8. package/build/cjs/card-holds.d.ts +4 -0
  9. package/build/cjs/card-holds.d.ts.map +1 -0
  10. package/build/cjs/card-holds.js +51 -0
  11. package/build/cjs/card-holds.js.map +1 -0
  12. package/build/cjs/channel-link.d.ts +11 -0
  13. package/build/cjs/channel-link.d.ts.map +1 -0
  14. package/build/cjs/channel-link.js +39 -0
  15. package/build/cjs/channel-link.js.map +1 -0
  16. package/build/cjs/coverage-links.d.ts +1 -1
  17. package/build/cjs/coverage-links.d.ts.map +1 -1
  18. package/build/cjs/coverage-links.js +10 -3
  19. package/build/cjs/coverage-links.js.map +1 -1
  20. package/build/cjs/design.d.ts +38 -7
  21. package/build/cjs/design.d.ts.map +1 -1
  22. package/build/cjs/design.js +6 -4
  23. package/build/cjs/design.js.map +1 -1
  24. package/build/cjs/diagnostics.d.ts +12 -0
  25. package/build/cjs/diagnostics.d.ts.map +1 -1
  26. package/build/cjs/diagnostics.js.map +1 -1
  27. package/build/cjs/effective-design.d.ts +2 -2
  28. package/build/cjs/effective-design.d.ts.map +1 -1
  29. package/build/cjs/effective-design.js +30 -2
  30. package/build/cjs/effective-design.js.map +1 -1
  31. package/build/cjs/entry-points.d.ts.map +1 -1
  32. package/build/cjs/entry-points.js +3 -1
  33. package/build/cjs/entry-points.js.map +1 -1
  34. package/build/cjs/fork-scenarios.d.ts +3 -1
  35. package/build/cjs/fork-scenarios.d.ts.map +1 -1
  36. package/build/cjs/fork-scenarios.js +20 -5
  37. package/build/cjs/fork-scenarios.js.map +1 -1
  38. package/build/cjs/index.d.ts +6 -0
  39. package/build/cjs/index.d.ts.map +1 -1
  40. package/build/cjs/index.js +6 -0
  41. package/build/cjs/index.js.map +1 -1
  42. package/build/cjs/map-review-view.d.ts +29 -0
  43. package/build/cjs/map-review-view.d.ts.map +1 -0
  44. package/build/cjs/map-review-view.js +64 -0
  45. package/build/cjs/map-review-view.js.map +1 -0
  46. package/build/cjs/map-structure.d.ts +25 -1
  47. package/build/cjs/map-structure.d.ts.map +1 -1
  48. package/build/cjs/map-structure.js.map +1 -1
  49. package/build/cjs/map-vocabulary.d.ts +8 -1
  50. package/build/cjs/map-vocabulary.d.ts.map +1 -1
  51. package/build/cjs/map-vocabulary.js +15 -2
  52. package/build/cjs/map-vocabulary.js.map +1 -1
  53. package/build/cjs/nodes.d.ts +67 -0
  54. package/build/cjs/nodes.d.ts.map +1 -1
  55. package/build/cjs/nodes.js +8 -1
  56. package/build/cjs/nodes.js.map +1 -1
  57. package/build/cjs/overrides.d.ts +21 -0
  58. package/build/cjs/overrides.d.ts.map +1 -1
  59. package/build/cjs/overrides.js +53 -1
  60. package/build/cjs/overrides.js.map +1 -1
  61. package/build/cjs/reality-check.d.ts +19 -1
  62. package/build/cjs/reality-check.d.ts.map +1 -1
  63. package/build/cjs/reality-check.js +113 -6
  64. package/build/cjs/reality-check.js.map +1 -1
  65. package/build/cjs/scenario-test-level.d.ts +25 -0
  66. package/build/cjs/scenario-test-level.d.ts.map +1 -0
  67. package/build/cjs/scenario-test-level.js +43 -0
  68. package/build/cjs/scenario-test-level.js.map +1 -0
  69. package/build/cjs/session.d.ts +21 -2
  70. package/build/cjs/session.d.ts.map +1 -1
  71. package/build/cjs/session.js +3 -2
  72. package/build/cjs/session.js.map +1 -1
  73. package/build/cjs/spec.d.ts.map +1 -1
  74. package/build/cjs/spec.js +70 -13
  75. package/build/cjs/spec.js.map +1 -1
  76. package/build/cjs/step-elements.d.ts +27 -0
  77. package/build/cjs/step-elements.d.ts.map +1 -0
  78. package/build/cjs/step-elements.js +28 -0
  79. package/build/cjs/step-elements.js.map +1 -0
  80. package/build/cjs/tags.d.ts +26 -0
  81. package/build/cjs/tags.d.ts.map +1 -0
  82. package/build/cjs/tags.js +28 -0
  83. package/build/cjs/tags.js.map +1 -0
  84. package/build/cjs/topology.d.ts.map +1 -1
  85. package/build/cjs/topology.js +2 -0
  86. package/build/cjs/topology.js.map +1 -1
  87. package/build/cjs/validate-design.d.ts +1 -1
  88. package/build/cjs/validate-design.d.ts.map +1 -1
  89. package/build/cjs/validate-design.js +242 -10
  90. package/build/cjs/validate-design.js.map +1 -1
  91. package/build/esm/apply-design.d.ts.map +1 -1
  92. package/build/esm/apply-design.js +11 -1
  93. package/build/esm/apply-design.js.map +1 -1
  94. package/build/esm/apply-overrides.d.ts.map +1 -1
  95. package/build/esm/apply-overrides.js +18 -1
  96. package/build/esm/apply-overrides.js.map +1 -1
  97. package/build/esm/card-holds.d.ts +4 -0
  98. package/build/esm/card-holds.d.ts.map +1 -0
  99. package/build/esm/card-holds.js +48 -0
  100. package/build/esm/card-holds.js.map +1 -0
  101. package/build/esm/channel-link.d.ts +11 -0
  102. package/build/esm/channel-link.d.ts.map +1 -0
  103. package/build/esm/channel-link.js +34 -0
  104. package/build/esm/channel-link.js.map +1 -0
  105. package/build/esm/coverage-links.d.ts +1 -1
  106. package/build/esm/coverage-links.d.ts.map +1 -1
  107. package/build/esm/coverage-links.js +10 -3
  108. package/build/esm/coverage-links.js.map +1 -1
  109. package/build/esm/design.d.ts +38 -7
  110. package/build/esm/design.d.ts.map +1 -1
  111. package/build/esm/design.js +6 -4
  112. package/build/esm/design.js.map +1 -1
  113. package/build/esm/diagnostics.d.ts +12 -0
  114. package/build/esm/diagnostics.d.ts.map +1 -1
  115. package/build/esm/diagnostics.js.map +1 -1
  116. package/build/esm/effective-design.d.ts +2 -2
  117. package/build/esm/effective-design.d.ts.map +1 -1
  118. package/build/esm/effective-design.js +30 -2
  119. package/build/esm/effective-design.js.map +1 -1
  120. package/build/esm/entry-points.d.ts.map +1 -1
  121. package/build/esm/entry-points.js +3 -1
  122. package/build/esm/entry-points.js.map +1 -1
  123. package/build/esm/fork-scenarios.d.ts +3 -1
  124. package/build/esm/fork-scenarios.d.ts.map +1 -1
  125. package/build/esm/fork-scenarios.js +20 -5
  126. package/build/esm/fork-scenarios.js.map +1 -1
  127. package/build/esm/index.d.ts +6 -0
  128. package/build/esm/index.d.ts.map +1 -1
  129. package/build/esm/index.js +6 -0
  130. package/build/esm/index.js.map +1 -1
  131. package/build/esm/map-review-view.d.ts +29 -0
  132. package/build/esm/map-review-view.d.ts.map +1 -0
  133. package/build/esm/map-review-view.js +58 -0
  134. package/build/esm/map-review-view.js.map +1 -0
  135. package/build/esm/map-structure.d.ts +25 -1
  136. package/build/esm/map-structure.d.ts.map +1 -1
  137. package/build/esm/map-structure.js.map +1 -1
  138. package/build/esm/map-vocabulary.d.ts +8 -1
  139. package/build/esm/map-vocabulary.d.ts.map +1 -1
  140. package/build/esm/map-vocabulary.js +13 -1
  141. package/build/esm/map-vocabulary.js.map +1 -1
  142. package/build/esm/nodes.d.ts +67 -0
  143. package/build/esm/nodes.d.ts.map +1 -1
  144. package/build/esm/nodes.js +7 -0
  145. package/build/esm/nodes.js.map +1 -1
  146. package/build/esm/overrides.d.ts +21 -0
  147. package/build/esm/overrides.d.ts.map +1 -1
  148. package/build/esm/overrides.js +51 -1
  149. package/build/esm/overrides.js.map +1 -1
  150. package/build/esm/reality-check.d.ts +19 -1
  151. package/build/esm/reality-check.d.ts.map +1 -1
  152. package/build/esm/reality-check.js +112 -6
  153. package/build/esm/reality-check.js.map +1 -1
  154. package/build/esm/scenario-test-level.d.ts +25 -0
  155. package/build/esm/scenario-test-level.d.ts.map +1 -0
  156. package/build/esm/scenario-test-level.js +37 -0
  157. package/build/esm/scenario-test-level.js.map +1 -0
  158. package/build/esm/session.d.ts +21 -2
  159. package/build/esm/session.d.ts.map +1 -1
  160. package/build/esm/session.js +3 -2
  161. package/build/esm/session.js.map +1 -1
  162. package/build/esm/spec.d.ts.map +1 -1
  163. package/build/esm/spec.js +71 -14
  164. package/build/esm/spec.js.map +1 -1
  165. package/build/esm/step-elements.d.ts +27 -0
  166. package/build/esm/step-elements.d.ts.map +1 -0
  167. package/build/esm/step-elements.js +21 -0
  168. package/build/esm/step-elements.js.map +1 -0
  169. package/build/esm/tags.d.ts +26 -0
  170. package/build/esm/tags.d.ts.map +1 -0
  171. package/build/esm/tags.js +21 -0
  172. package/build/esm/tags.js.map +1 -0
  173. package/build/esm/topology.d.ts.map +1 -1
  174. package/build/esm/topology.js +2 -0
  175. package/build/esm/topology.js.map +1 -1
  176. package/build/esm/validate-design.d.ts +1 -1
  177. package/build/esm/validate-design.d.ts.map +1 -1
  178. package/build/esm/validate-design.js +243 -11
  179. package/build/esm/validate-design.js.map +1 -1
  180. package/build/tsconfig.tsbuildinfo +1 -1
  181. package/package.json +1 -1
  182. 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;AAEzD,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGvF,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,CAAC;AAE3B,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,CAalF,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;AAqkBF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,qBAA0B,GAClC,sBAAsB,CA6GxB"}
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
- function checkProposedNode(node, path, issues) {
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 — a command's data schema, an aggregate's logic, an event's payload — and its note says what that is.
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, or, when the change is one no field holds `
126
- + '(a data schema, logic, a policy, an event\'s payload), leave set empty and describe the change in note'
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
- for (const { entry, path } of nodes)
522
- checkProposedNode(entry, path, issues);
523
- for (const { entry, path } of modifies)
524
- checkModifyEntry(entry, path, issues);
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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"}