@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-elements.js","sourceRoot":"","sources":["../../src/step-elements.ts"],"names":[],"mappings":";;;AAoBA,4CAIC;AAGD,4CAQC;AAlBD,MAAM,aAAa,GAA2B,CAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAE,CAAC;AAE1E,0HAA0H;AAC1H,SAAgB,gBAAgB,CAAE,MAAqB;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;IAC7G,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACjG,CAAC;AAED,uHAAuH;AACvH,SAAgB,gBAAgB,CAAE,MAAqB,EAAE,GAAmB;IAC1E,MAAM,SAAS,GAAG,gBAAgB,CAAE,MAAM,CAAE,CAAC;IAC7C,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAM,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAE,QAAQ,CAAC,EAAE,CAAE,GAAG,aAAa,CAAC,OAAO,CAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAC,OAAO,CAAC,CAAE,IAAI,EAAE,KAAK,EAAG,EAAE,CACtG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,EAAE,CAAE,CAAC,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+GAA+G;AACxG,MAAM,iBAAiB,GAAG,CAAE,QAAgC,EAAuB,EAAE,CAC1F,QAAQ,CAAC,MAAM,CAAC,CAAE,OAAO,EAAgC,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAE,CAAC;AAD9E,QAAA,iBAAiB,qBAC6D;AAE3F,iHAAiH;AAC1G,MAAM,gBAAgB,GAAG,CAAE,QAAgC,EAAa,EAAE,CAC/E,QAAQ,CAAC,MAAM,CAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAE,CAAC,GAAG,CAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;AAD7E,QAAA,gBAAgB,oBAC6D"}
@@ -0,0 +1,26 @@
1
+ import type { NodeType } from './nodes.js';
2
+ /**
3
+ * BP-279: a tag is a named design property of a node; its identity is its normalised name. A predefined tag is a
4
+ * schema constant: it applies to the node types it names, and `source: 'code'` marks a tag the code declares, so its
5
+ * absence is meaningful (an untagged system is unkeyed).
6
+ */
7
+ export type PredefinedTag = {
8
+ name: string;
9
+ appliesTo: readonly NodeType[];
10
+ source: 'code';
11
+ };
12
+ export declare const KEYED_TAG = "keyed";
13
+ export declare const PREDEFINED_TAGS: readonly PredefinedTag[];
14
+ /** A normalised tag name: lower-case letters, digits and dashes, starting with a letter or digit, at most 40 long. */
15
+ export declare const TAG_NAME_PATTERN: RegExp;
16
+ /** A tag's identity: the name trimmed, lower-cased, each run of whitespace one dash. */
17
+ export declare const normaliseTagName: (name: string) => string;
18
+ /** The rule a tag name must meet, worded for a refusal message. */
19
+ export declare const TAG_NAME_RULE: string;
20
+ /** Whether `name`, once normalised, is a well-formed tag name. */
21
+ export declare const isTagName: (name: unknown) => name is string;
22
+ /** A tag list as it is stored: every name normalised, sorted, each once. */
23
+ export declare const normaliseTags: (tags: readonly string[]) => string[];
24
+ /** Whether the tag `name` may sit on a node of `type`: a predefined tag only on the types it names, any other anywhere. */
25
+ export declare const tagApplies: (name: string, type: NodeType) => boolean;
26
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,SAAS,UAAU,CAAC;AAEjC,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAEnD,CAAC;AAEF,sHAAsH;AACtH,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,GAAK,MAAM,MAAM,KAAI,MACA,CAAC;AAEnD,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAC8B,CAAC;AAEzD,kEAAkE;AAClE,eAAO,MAAM,SAAS,GAAK,MAAM,OAAO,KAAI,IAAI,IAAI,MAC0B,CAAC;AAE/E,4EAA4E;AAC5E,eAAO,MAAM,aAAa,GAAK,MAAM,SAAS,MAAM,EAAE,KAAI,MAAM,EACV,CAAC;AAEvD,2HAA2H;AAC3H,eAAO,MAAM,UAAU,GAAK,MAAM,MAAM,EAAE,MAAM,QAAQ,KAAI,OAG3D,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tagApplies = exports.normaliseTags = exports.isTagName = exports.TAG_NAME_RULE = exports.normaliseTagName = exports.TAG_NAME_PATTERN = exports.PREDEFINED_TAGS = exports.KEYED_TAG = void 0;
4
+ exports.KEYED_TAG = 'keyed';
5
+ exports.PREDEFINED_TAGS = [
6
+ { name: exports.KEYED_TAG, appliesTo: ['system'], source: 'code' }
7
+ ];
8
+ /** A normalised tag name: lower-case letters, digits and dashes, starting with a letter or digit, at most 40 long. */
9
+ exports.TAG_NAME_PATTERN = /^[a-z0-9][a-z0-9-]{0,39}$/;
10
+ /** A tag's identity: the name trimmed, lower-cased, each run of whitespace one dash. */
11
+ const normaliseTagName = (name) => name.trim().toLowerCase().replace(/\s+/g, '-');
12
+ exports.normaliseTagName = normaliseTagName;
13
+ /** The rule a tag name must meet, worded for a refusal message. */
14
+ exports.TAG_NAME_RULE = 'once trimmed, lower-cased and with each run of whitespace a dash, a name is 1 to 40 letters, '
15
+ + 'digits and dashes, starting with a letter or digit';
16
+ /** Whether `name`, once normalised, is a well-formed tag name. */
17
+ const isTagName = (name) => typeof name === 'string' && exports.TAG_NAME_PATTERN.test((0, exports.normaliseTagName)(name));
18
+ exports.isTagName = isTagName;
19
+ /** A tag list as it is stored: every name normalised, sorted, each once. */
20
+ const normaliseTags = (tags) => [...new Set(tags.map(exports.normaliseTagName))].sort();
21
+ exports.normaliseTags = normaliseTags;
22
+ /** Whether the tag `name` may sit on a node of `type`: a predefined tag only on the types it names, any other anywhere. */
23
+ const tagApplies = (name, type) => {
24
+ const predefined = exports.PREDEFINED_TAGS.find(tag => tag.name === (0, exports.normaliseTagName)(name));
25
+ return predefined === undefined || predefined.appliesTo.includes(type);
26
+ };
27
+ exports.tagApplies = tagApplies;
28
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tags.ts"],"names":[],"mappings":";;;AAaa,QAAA,SAAS,GAAG,OAAO,CAAC;AAEpB,QAAA,eAAe,GAA6B;IACvD,EAAE,IAAI,EAAE,iBAAS,EAAE,SAAS,EAAE,CAAE,QAAQ,CAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAC7D,CAAC;AAEF,sHAAsH;AACzG,QAAA,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,wFAAwF;AACjF,MAAM,gBAAgB,GAAG,CAAE,IAAY,EAAW,EAAE,CACzD,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAE,MAAM,EAAE,GAAG,CAAE,CAAC;AADtC,QAAA,gBAAgB,oBACsB;AAEnD,mEAAmE;AACtD,QAAA,aAAa,GAAG,+FAA+F;MACxH,oDAAoD,CAAC;AAEzD,kEAAkE;AAC3D,MAAM,SAAS,GAAG,CAAE,IAAa,EAAmB,EAAE,CAC3D,OAAO,IAAI,KAAK,QAAQ,IAAI,wBAAgB,CAAC,IAAI,CAAE,IAAA,wBAAgB,EAAE,IAAI,CAAE,CAAC,CAAC;AADlE,QAAA,SAAS,aACyD;AAE/E,4EAA4E;AACrE,MAAM,aAAa,GAAG,CAAE,IAAuB,EAAa,EAAE,CACnE,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,wBAAgB,CAAE,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;AAD1C,QAAA,aAAa,iBAC6B;AAEvD,2HAA2H;AACpH,MAAM,UAAU,GAAG,CAAE,IAAY,EAAE,IAAc,EAAY,EAAE;IACpE,MAAM,UAAU,GAAG,uBAAe,CAAC,IAAI,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAA,wBAAgB,EAAE,IAAI,CAAE,CAAC,CAAC;IACvF,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC;AAC3E,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../src/topology.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AA6DF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAElD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAc,CAAC;AAEjE,wBAAgB,aAAa,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAI,OAAO,CAErF;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAI,SAAS,QAAQ,EAAE,CAEpF"}
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../src/topology.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAgEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAElD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAc,CAAC;AAEjE,wBAAgB,aAAa,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAI,OAAO,CAErF;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAI,SAAS,QAAQ,EAAE,CAEpF"}
@@ -21,6 +21,8 @@ const RAW_RULES = [
21
21
  { from: 'system', kind: 'emits', to: 'event' },
22
22
  { from: 'event', kind: 'triggers', to: 'policy' },
23
23
  { from: 'policy', kind: 'issues', to: 'command' },
24
+ // pv4 MV-116: an external system's reply runs a command.
25
+ { from: 'external-system', kind: 'issues', to: 'command' },
24
26
  { from: 'event', kind: 'causes', to: 'command' },
25
27
  { from: 'ui', kind: 'invokes', to: 'command' },
26
28
  { from: 'ui', kind: 'subscribes-to', to: 'read-model' },
@@ -1 +1 @@
1
- {"version":3,"file":"topology.js","sourceRoot":"","sources":["../../src/topology.ts"],"names":[],"mappings":";;;AA0EA,sCAEC;AAED,4CAEC;AAvED,MAAM,cAAc,GAAwB;IAC1C,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY;CACb,CAAC;AAEF,MAAM,SAAS,GAAmB;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE;IACxD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IAErD,8GAA8G;IAC9G,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE;IAExD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE;IAElD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;IACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;IAE9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE;IAEjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE;IAEjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE;IAEhD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IAC9C,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,EAAE;IAEvD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE;IAEzD,GAAK,CAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAkB,CAAC,OAAO,CAAC,CAAE,IAAI,EAAG,EAAE,CAC5E,CAAE,YAAY,EAAE,WAAW,CAAkB,CAAC,GAAG,CACjD,CAAE,EAAE,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAC3D,CAAC;IAEJ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE;IAC9D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE;IAE/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,EAAE,WAAW,EAAE;IACzE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,EAAE,WAAW,EAAE;IAEtE,GAAK,CAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAkB,CAAC,OAAO,CAAC,CAAE,IAAI,EAAG,EAAE,CACxE,CAAE,WAAW,EAAE,YAAY,CAAkB,CAAC,GAAG,CACjD,CAAE,EAAE,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAC1D,CAAC;IAEJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE;IACxD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE;IACxD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE;IAE3D,GAAG,cAAc,CAAC,GAAG,CAAC,CAAE,IAAI,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;CAC7F,CAAC;AAEF,SAAS,OAAO,CAAE,IAAc,EAAE,IAAc,EAAE,EAAY;IAC5D,OAAO,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAE,CAAC;AACvC,CAAC;AAEY,QAAA,kBAAkB,GAAwB,IAAI,GAAG,CAC5D,SAAS,CAAC,GAAG,CAAC,CAAE,CAAC,EAAG,EAAE,CAAC,OAAO,CAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CACxD,CAAC;AAEW,QAAA,cAAc,GAA4B,SAAS,CAAC;AAEjE,SAAgB,aAAa,CAAE,IAAc,EAAE,IAAc,EAAE,EAAY;IACzE,OAAO,0BAAkB,CAAC,GAAG,CAAE,OAAO,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,gBAAgB,CAAE,IAAc,EAAE,EAAY;IAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,CAAE,CAAC,EAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"topology.js","sourceRoot":"","sources":["../../src/topology.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type DesignBatch, type DesignFile } from './design.js';
2
2
  import { type BlueprintGraph } from './graph.js';
3
3
  import { type BlueprintOverrides } from './overrides.js';
4
- export type DesignIssueCode = 'UNSUPPORTED_SCHEMA_VERSION' | 'MALFORMED_ENTRY' | 'UNKNOWN_NODE_TYPE' | 'UNKNOWN_EDGE_KIND' | 'UNRESOLVED_EDGE_ENDPOINT' | 'TOPOLOGY_VIOLATION' | 'UNMODIFIABLE_FIELD' | 'UNRESOLVED_TARGET' | 'DUPLICATE_IDENTITY' | 'EDGE_TARGETS_REMOVED' | 'INVALID_EDGE_HANDLER' | 'DUPLICATE_COMMENT_ID';
4
+ export type DesignIssueCode = 'UNSUPPORTED_SCHEMA_VERSION' | 'MALFORMED_ENTRY' | 'UNKNOWN_NODE_TYPE' | 'UNKNOWN_EDGE_KIND' | 'UNRESOLVED_EDGE_ENDPOINT' | 'TOPOLOGY_VIOLATION' | 'UNMODIFIABLE_FIELD' | 'UNRESOLVED_TARGET' | 'DUPLICATE_IDENTITY' | 'EDGE_TARGETS_REMOVED' | 'INVALID_EDGE_HANDLER' | 'DUPLICATE_COMMENT_ID' | 'TAG_MALFORMED' | 'TAG_NOT_APPLICABLE' | 'DATA_SHAPE_NOT_ALLOWED' | 'UNRESOLVED_DATA_REF';
5
5
  export type DesignValidationIssue = {
6
6
  code: DesignIssueCode;
7
7
  path: string;
@@ -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"}
@@ -9,6 +9,7 @@ const apply_overrides_js_1 = require("./apply-overrides.js");
9
9
  const graph_js_1 = require("./graph.js");
10
10
  const nodes_js_1 = require("./nodes.js");
11
11
  const overrides_js_1 = require("./overrides.js");
12
+ const tags_js_1 = require("./tags.js");
12
13
  const topology_js_1 = require("./topology.js");
13
14
  exports.DESIGN_ISSUE_CLASS = {
14
15
  UNSUPPORTED_SCHEMA_VERSION: 'malformed',
@@ -17,12 +18,16 @@ exports.DESIGN_ISSUE_CLASS = {
17
18
  UNKNOWN_EDGE_KIND: 'malformed',
18
19
  UNMODIFIABLE_FIELD: 'malformed',
19
20
  DUPLICATE_COMMENT_ID: 'malformed',
21
+ TAG_MALFORMED: 'malformed',
22
+ DATA_SHAPE_NOT_ALLOWED: 'malformed',
23
+ UNRESOLVED_DATA_REF: 'malformed',
20
24
  TOPOLOGY_VIOLATION: 'incoherent',
21
25
  DUPLICATE_IDENTITY: 'incoherent',
22
26
  EDGE_TARGETS_REMOVED: 'incoherent',
23
27
  UNRESOLVED_TARGET: 'incoherent',
24
28
  UNRESOLVED_EDGE_ENDPOINT: 'incoherent',
25
- INVALID_EDGE_HANDLER: 'incoherent'
29
+ INVALID_EDGE_HANDLER: 'incoherent',
30
+ TAG_NOT_APPLICABLE: 'incoherent'
26
31
  };
27
32
  function splitByClass(issues) {
28
33
  const malformed = [];
@@ -76,7 +81,164 @@ function checkInvariantFields(values, prefix, path, issues) {
76
81
  });
77
82
  }
78
83
  }
79
- function checkProposedNode(node, path, issues) {
84
+ // BP-279: a tag list is a list of names that are well-formed once normalised (tags.ts); a malformed one refuses the batch.
85
+ function checkTagNames(tags, prefix, path, issues) {
86
+ if (tags === undefined)
87
+ return;
88
+ if (!Array.isArray(tags)) {
89
+ issues.push({
90
+ code: 'TAG_MALFORMED',
91
+ path,
92
+ message: `${prefix}.tags must be a list of tag names`
93
+ });
94
+ return;
95
+ }
96
+ for (const tag of tags) {
97
+ if ((0, tags_js_1.isTagName)(tag))
98
+ continue;
99
+ issues.push({
100
+ code: 'TAG_MALFORMED',
101
+ path,
102
+ message: `${prefix}.tags holds ${JSON.stringify(tag)}, which is not a tag name: ${tags_js_1.TAG_NAME_RULE}`
103
+ });
104
+ }
105
+ }
106
+ // BP-279: a predefined tag on a node type it does not apply to (keyed on anything but a system) is written and reported.
107
+ function checkTagsApply(tags, type, prefix, path, issues) {
108
+ if (type === undefined || !Array.isArray(tags))
109
+ return;
110
+ for (const tag of tags) {
111
+ if (!(0, tags_js_1.isTagName)(tag) || (0, tags_js_1.tagApplies)(tag, type))
112
+ continue;
113
+ issues.push({
114
+ code: 'TAG_NOT_APPLICABLE',
115
+ path,
116
+ message: `${prefix}.tags holds ${JSON.stringify(tag)}, which does not apply to a ${type}`
117
+ });
118
+ }
119
+ }
120
+ const FIELD_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
121
+ function isRecord(value) {
122
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
123
+ }
124
+ function malformed(path, message, issues) {
125
+ issues.push({ code: 'MALFORMED_ENTRY', path, message });
126
+ }
127
+ function checkBooleanFlag(value, at, path, issues) {
128
+ if (value !== undefined && typeof value !== 'boolean')
129
+ malformed(path, `${at} must be a boolean`, issues);
130
+ }
131
+ function checkNestedType(value, at, path, issues, refs) {
132
+ if (!isRecord(value)) {
133
+ malformed(path, `${at} must be a data type`, issues);
134
+ return;
135
+ }
136
+ checkDataType(value, at, path, issues, refs);
137
+ }
138
+ function checkDataType(type, at, path, issues, refs) {
139
+ const { kind } = type;
140
+ switch (kind) {
141
+ case 'number':
142
+ case 'integer':
143
+ case 'boolean':
144
+ case 'any':
145
+ return;
146
+ case 'string':
147
+ if (type.format !== undefined && !isFilledString(type.format)) {
148
+ malformed(path, `${at}.format must be a non-empty string`, issues);
149
+ }
150
+ return;
151
+ case 'enum':
152
+ // BP-270 D52 F4 / D71: an empty `values` is an enum whose values are unknown (an extractor read the enum but not its
153
+ // values), accepted so a shape read back from code never refuses every later edit of the node it sits in.
154
+ if (!Array.isArray(type.values) || !type.values.every(isFilledString)) {
155
+ malformed(path, `${at}.values must be a list of non-empty strings (empty when its values are unknown)`, issues);
156
+ }
157
+ return;
158
+ case 'list':
159
+ checkNestedType(type.items, `${at}.items`, path, issues, refs);
160
+ return;
161
+ case 'map':
162
+ checkNestedType(type.values, `${at}.values`, path, issues, refs);
163
+ return;
164
+ case 'object':
165
+ checkBooleanFlag(type.open, `${at}.open`, path, issues);
166
+ if (!Array.isArray(type.fields)) {
167
+ malformed(path, `${at}.fields must be a list of fields`, issues);
168
+ return;
169
+ }
170
+ checkDataFields(type.fields, `${at}.fields`, path, issues, refs);
171
+ return;
172
+ case 'ref':
173
+ if (!isFilledString(type.target)) {
174
+ malformed(path, `${at}.target must be a node id`, issues);
175
+ return;
176
+ }
177
+ refs.push({ at: `${at}.target`, target: type.target });
178
+ return;
179
+ case 'schema':
180
+ if (!isFilledString(type.name))
181
+ malformed(path, `${at}.name must be a non-empty schema name`, issues);
182
+ return;
183
+ default:
184
+ malformed(path, `${at}.kind ${JSON.stringify(kind)} is not a data type — one of `
185
+ + nodes_js_1.DATA_TYPE_KINDS.join(', '), issues);
186
+ }
187
+ }
188
+ // D12: a field's name is an identifier, unique among its siblings; a nested object's fields are a shape of their own.
189
+ function checkDataFields(fields, prefix, path, issues, refs) {
190
+ const seen = new Set();
191
+ fields.forEach((field, index) => {
192
+ const at = `${prefix}[${index}]`;
193
+ if (!isRecord(field)) {
194
+ malformed(path, `${at} must be a field { name, type?, optional?, nullable?, note? }`, issues);
195
+ return;
196
+ }
197
+ const { name } = field;
198
+ if (typeof name !== 'string' || !FIELD_NAME.test(name)) {
199
+ malformed(path, `${at}.name ${JSON.stringify(name)} must be an identifier `
200
+ + '(a letter or _, then letters, digits or _)', issues);
201
+ }
202
+ else if (seen.has(name)) {
203
+ malformed(path, `${at}.name ${JSON.stringify(name)} is listed twice; a field name is unique in its shape`, issues);
204
+ }
205
+ else {
206
+ seen.add(name);
207
+ }
208
+ checkBooleanFlag(field.optional, `${at}.optional`, path, issues);
209
+ checkBooleanFlag(field.nullable, `${at}.nullable`, path, issues);
210
+ if (field.note !== undefined && typeof field.note !== 'string')
211
+ malformed(path, `${at}.note must be a string`, issues);
212
+ if (field.type !== undefined)
213
+ checkNestedType(field.type, `${at}.type`, path, issues, refs);
214
+ });
215
+ }
216
+ // The structure of a data shape: `{ fields, open? }` or `{ sameAs }`. Whether its node may carry one, and whether the
217
+ // ids it names resolve, need the namespace, so validateDesign checks those for the incoming batch.
218
+ function checkDataShape(shape, prefix, path, issues, refs) {
219
+ if (!isRecord(shape) || ('fields' in shape) === ('sameAs' in shape)
220
+ || ('sameAs' in shape ? !isFilledString(shape.sameAs) : !Array.isArray(shape.fields))) {
221
+ malformed(path, `${prefix} must be { fields, open? } or { sameAs }`, issues);
222
+ return;
223
+ }
224
+ if (isFilledString(shape.sameAs)) {
225
+ refs.push({ at: `${prefix}.sameAs`, target: shape.sameAs });
226
+ return;
227
+ }
228
+ checkBooleanFlag(shape.open, `${prefix}.open`, path, issues);
229
+ checkDataFields(shape.fields, `${prefix}.fields`, path, issues, refs);
230
+ }
231
+ function checkDataShapeAllowed(type, prefix, path, issues) {
232
+ if (type === undefined || nodes_js_1.DATA_SHAPE_NODE_TYPES.includes(type))
233
+ return;
234
+ issues.push({
235
+ code: 'DATA_SHAPE_NOT_ALLOWED',
236
+ path,
237
+ message: `${prefix} may not sit on a ${type} — a data shape belongs to a `
238
+ + `${nodes_js_1.DATA_SHAPE_NODE_TYPES.slice(0, -1).join(', ')} or ${nodes_js_1.DATA_SHAPE_NODE_TYPES[nodes_js_1.DATA_SHAPE_NODE_TYPES.length - 1]}`
239
+ });
240
+ }
241
+ function checkProposedNode(node, path, issues, refs) {
80
242
  if (!nodes_js_1.NODE_TYPES.includes(node.type)) {
81
243
  issues.push({
82
244
  code: 'UNKNOWN_NODE_TYPE',
@@ -99,9 +261,14 @@ function checkProposedNode(node, path, issues) {
99
261
  });
100
262
  }
101
263
  checkInvariantFields(node, path, path, issues);
264
+ checkTagNames(node.tags, path, path, issues);
265
+ if (nodes_js_1.NODE_TYPES.includes(node.type))
266
+ checkTagsApply(node.tags, node.type, path, path, issues);
267
+ if (node.dataShape !== undefined)
268
+ checkDataShape(node.dataShape, `${path}.dataShape`, path, issues, refs);
102
269
  checkAttribution(node, path, issues);
103
270
  }
104
- function checkModifyEntry(entry, path, issues) {
271
+ function checkModifyEntry(entry, path, issues, refs) {
105
272
  checkAttribution(entry, path, issues);
106
273
  if (!isFilledString(entry.id)) {
107
274
  issues.push({
@@ -111,7 +278,8 @@ function checkModifyEntry(entry, path, issues) {
111
278
  });
112
279
  }
113
280
  // A modify that changes no listed field (an omitted set reads as an empty one) declares a change the fields cannot
114
- // express — a command's data schema, an aggregate's logic, an event's payload — and its note says what that is.
281
+ // express — an aggregate's logic, a policy, an algorithm — and its note says what that is. A command's or event's
282
+ // payload is a field: set.dataShape (BP-270).
115
283
  const set = entry.set ?? {};
116
284
  if (typeof set !== 'object' || set === null || Array.isArray(set)) {
117
285
  issues.push({
@@ -126,8 +294,9 @@ function checkModifyEntry(entry, path, issues) {
126
294
  issues.push({
127
295
  code: 'MALFORMED_ENTRY',
128
296
  path,
129
- message: `${path} changes nothing — set at least one field, or, when the change is one no field holds `
130
- + '(a data schema, logic, a policy, an event\'s payload), leave set empty and describe the change in note'
297
+ message: `${path} changes nothing — set at least one field (a payload's fields go in set.dataShape), or, `
298
+ + 'when the change is one no field holds (logic, a policy, an algorithm), leave set empty and describe the '
299
+ + 'change in note'
131
300
  });
132
301
  }
133
302
  for (const field of fields) {
@@ -159,6 +328,13 @@ function checkModifyEntry(entry, path, issues) {
159
328
  });
160
329
  }
161
330
  checkInvariantFields(values, `${path}.set`, path, issues);
331
+ checkTagNames(values.tags, `${path}.set`, path, issues);
332
+ if (values.dataShape !== undefined)
333
+ checkDataShape(values.dataShape, `${path}.set.dataShape`, path, issues, refs);
334
+ // BP-270 D5: the shape a set.dataShape replaces is the code's, as the local store kept it; its structure is checked so
335
+ // a hand-edited one is refused rather than read, and the ids it names are not resolved, since they named the code then.
336
+ if (entry.previousDataShape !== undefined)
337
+ checkDataShape(entry.previousDataShape, `${path}.previousDataShape`, path, issues, []);
162
338
  }
163
339
  function checkRemoveEntry(entry, path, issues) {
164
340
  checkAttribution(entry, path, issues);
@@ -227,6 +403,13 @@ function checkComment(entry, path, issues) {
227
403
  message: `${path}.mentions must be a list of member ids when present`
228
404
  });
229
405
  }
406
+ if (entry.principal !== undefined && !isFilledString(entry.principal)) {
407
+ issues.push({
408
+ code: 'MALFORMED_ENTRY',
409
+ path,
410
+ message: `${path}.principal must be the writer's non-empty principal when present`
411
+ });
412
+ }
230
413
  if (entry.reaction !== undefined && !design_js_1.COMMENT_REACTIONS.includes(entry.reaction)) {
231
414
  issues.push({
232
415
  code: 'MALFORMED_ENTRY',
@@ -234,6 +417,21 @@ function checkComment(entry, path, issues) {
234
417
  message: `${path}.reaction must be one of ${design_js_1.COMMENT_REACTIONS.join(', ')} when present`
235
418
  });
236
419
  }
420
+ if (entry.handOff !== undefined && entry.handOff !== true) {
421
+ issues.push({
422
+ code: 'MALFORMED_ENTRY',
423
+ path,
424
+ message: `${path}.handOff must be true when present — it marks a reply job's hand-off note`
425
+ });
426
+ }
427
+ if (entry.answers !== undefined
428
+ && (!Array.isArray(entry.answers) || entry.answers.length === 0 || !entry.answers.every(isFilledString))) {
429
+ issues.push({
430
+ code: 'MALFORMED_ENTRY',
431
+ path,
432
+ message: `${path}.answers must be a non-empty list of comment ids when present — the comments an agent comment answers`
433
+ });
434
+ }
237
435
  const { anchor } = entry;
238
436
  if (anchor === null || anchor === undefined || typeof anchor === 'string')
239
437
  return;
@@ -522,10 +720,20 @@ function validateDesign(design, context = {}) {
522
720
  const modifies = locate(design.modify ?? [], incoming.modify ?? [], 'modify');
523
721
  const removes = locate(design.remove ?? [], incoming.remove ?? [], 'remove');
524
722
  const comments = locate(design.comments ?? [], incoming.comments ?? [], 'comments');
525
- for (const { entry, path } of nodes)
526
- checkProposedNode(entry, path, issues);
527
- for (const { entry, path } of modifies)
528
- checkModifyEntry(entry, path, issues);
723
+ // BP-270: the ids the incoming batch's data shapes name, checked against the namespace once it is built.
724
+ const dataRefs = [];
725
+ for (const { entry, path, incoming: isIncoming } of nodes) {
726
+ const refs = [];
727
+ checkProposedNode(entry, path, issues, refs);
728
+ if (isIncoming)
729
+ dataRefs.push(...refs.map(ref => ({ ...ref, path })));
730
+ }
731
+ for (const { entry, path, incoming: isIncoming } of modifies) {
732
+ const refs = [];
733
+ checkModifyEntry(entry, path, issues, refs);
734
+ if (isIncoming)
735
+ dataRefs.push(...refs.map(ref => ({ ...ref, path })));
736
+ }
529
737
  for (const { entry, path } of removes)
530
738
  checkRemoveEntry(entry, path, issues);
531
739
  for (const { entry, path } of comments)
@@ -546,8 +754,32 @@ function validateDesign(design, context = {}) {
546
754
  commentIds.add(entry.id);
547
755
  }
548
756
  const namespace = buildNamespace(nodes, modifies, context.graph, issues);
757
+ // D4, and D14's rule that a write is refused only for what it introduces: a node type that may not carry a shape,
758
+ // and an id a shape names that is in neither the design nor the graph, are checked on the incoming batch alone, so
759
+ // a reclassify or a removal that lands later does not lock a document that was valid when written.
760
+ for (const { entry, path, incoming: isIncoming } of nodes) {
761
+ if (!isIncoming || entry.dataShape === undefined || !nodes_js_1.NODE_TYPES.includes(entry.type))
762
+ continue;
763
+ checkDataShapeAllowed(entry.type, `${path}.dataShape`, path, issues);
764
+ }
765
+ for (const { entry, path, incoming: isIncoming } of modifies) {
766
+ if (!isIncoming || entry.set?.dataShape === undefined)
767
+ continue;
768
+ checkDataShapeAllowed(namespace.get(entry.id)?.type, `${path}.set.dataShape`, path, issues);
769
+ }
770
+ for (const { at, target, path } of dataRefs) {
771
+ if (namespace.has(target))
772
+ continue;
773
+ issues.push({
774
+ code: 'UNRESOLVED_DATA_REF',
775
+ path,
776
+ message: `${at} ${JSON.stringify(target)} is in neither the design nor the graph`
777
+ });
778
+ }
549
779
  for (const located of modifies) {
550
780
  checkTarget(located.entry.id, located, namespace, issues);
781
+ const tags = located.entry.set?.tags;
782
+ checkTagsApply(tags, namespace.get(located.entry.id)?.type, `${located.path}.set`, located.path, issues);
551
783
  }
552
784
  for (const located of removes) {
553
785
  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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-design.d.ts","sourceRoot":"","sources":["../../src/apply-design.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,sBAAsB,EAAE,kBAAkB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,eAAe,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAMF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,GAC3D,MAAM,CAER;AA6KD,wBAAgB,WAAW,CACzB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,iBAAiB,CAkDnB"}
1
+ {"version":3,"file":"apply-design.d.ts","sourceRoot":"","sources":["../../src/apply-design.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,sBAAsB,EAAE,kBAAkB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,eAAe,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAMF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,GAC3D,MAAM,CAER;AAoLD,wBAAgB,WAAW,CACzB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,iBAAiB,CAkDnB"}
@@ -22,6 +22,8 @@ function applyProposedNode(proposed, byId) {
22
22
  ...(proposed.rule !== undefined ? { rule: proposed.rule } : {}),
23
23
  ...(proposed.errorCodes !== undefined ? { errorCodes: [...proposed.errorCodes] } : {}),
24
24
  ...(proposed.generic !== undefined ? { generic: proposed.generic } : {}),
25
+ ...(proposed.tags !== undefined && proposed.tags.length > 0 ? { tags: [...proposed.tags] } : {}),
26
+ ...(proposed.dataShape !== undefined ? { dataShape: proposed.dataShape } : {}),
25
27
  origin: proposed.author,
26
28
  status: 'proposed',
27
29
  ...(proposed.note !== undefined ? { note: proposed.note } : {})
@@ -79,7 +81,7 @@ function applyModifyEntry(entry, byId, skipped) {
79
81
  skipped.push(entry.id);
80
82
  return;
81
83
  }
82
- const { label, subdomain, resourceKey, queries, rule, errorCodes, generic } = entry.set ?? {};
84
+ const { label, subdomain, resourceKey, queries, rule, errorCodes, generic, tags, dataShape } = entry.set ?? {};
83
85
  // A modify of a node an earlier entry of this design already touched keeps that entry's note beside its own.
84
86
  const touched = current.status === 'proposed' || current.status === 'modified';
85
87
  // A node this design proposes stays new however often the design reshapes it.
@@ -103,6 +105,14 @@ function applyModifyEntry(entry, byId, skipped) {
103
105
  modified.errorCodes = [...errorCodes];
104
106
  if (generic !== undefined)
105
107
  modified.generic = generic;
108
+ // BP-279: a modify sets the whole tag list, and [] clears it.
109
+ if (tags !== undefined && tags.length > 0)
110
+ modified.tags = [...tags];
111
+ else if (tags !== undefined)
112
+ delete modified.tags;
113
+ // BP-270 D5: a set shape replaces the node's whole shape; it is never merged field by field.
114
+ if (dataShape !== undefined)
115
+ modified.dataShape = dataShape;
106
116
  const note = touched ? joinedNote(current.note, entry.note) : entry.note ?? current.note;
107
117
  if (note !== undefined)
108
118
  modified.note = note;