@bett3r-dev/blueprint-schema 1.6.0 → 1.7.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 (201) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/build/cjs/apply-design.d.ts +5 -5
  3. package/build/cjs/apply-design.d.ts.map +1 -1
  4. package/build/cjs/apply-design.js +10 -1
  5. package/build/cjs/apply-design.js.map +1 -1
  6. package/build/cjs/apply-overrides.d.ts +3 -3
  7. package/build/cjs/apply-overrides.d.ts.map +1 -1
  8. package/build/cjs/apply-overrides.js +3 -0
  9. package/build/cjs/apply-overrides.js.map +1 -1
  10. package/build/cjs/card-channel.d.ts +18 -0
  11. package/build/cjs/card-channel.d.ts.map +1 -0
  12. package/build/cjs/card-channel.js +30 -0
  13. package/build/cjs/card-channel.js.map +1 -0
  14. package/build/cjs/convergence.d.ts +2 -2
  15. package/build/cjs/convergence.d.ts.map +1 -1
  16. package/build/cjs/coverage-links.d.ts +27 -0
  17. package/build/cjs/coverage-links.d.ts.map +1 -0
  18. package/build/cjs/coverage-links.js +117 -0
  19. package/build/cjs/coverage-links.js.map +1 -0
  20. package/build/cjs/design.d.ts +32 -2
  21. package/build/cjs/design.d.ts.map +1 -1
  22. package/build/cjs/design.js +27 -2
  23. package/build/cjs/design.js.map +1 -1
  24. package/build/cjs/diagnostics.d.ts +2 -2
  25. package/build/cjs/diagnostics.d.ts.map +1 -1
  26. package/build/cjs/edges.d.ts +2 -2
  27. package/build/cjs/edges.d.ts.map +1 -1
  28. package/build/cjs/edges.js +2 -1
  29. package/build/cjs/edges.js.map +1 -1
  30. package/build/cjs/entry-points.d.ts +2 -2
  31. package/build/cjs/entry-points.d.ts.map +1 -1
  32. package/build/cjs/find-orphan-nodes.d.ts +3 -3
  33. package/build/cjs/find-orphan-nodes.d.ts.map +1 -1
  34. package/build/cjs/flow-traversal.d.ts +3 -3
  35. package/build/cjs/flow-traversal.d.ts.map +1 -1
  36. package/build/cjs/fork-scenarios.d.ts +44 -0
  37. package/build/cjs/fork-scenarios.d.ts.map +1 -0
  38. package/build/cjs/fork-scenarios.js +83 -0
  39. package/build/cjs/fork-scenarios.js.map +1 -0
  40. package/build/cjs/graph.d.ts +2 -2
  41. package/build/cjs/graph.d.ts.map +1 -1
  42. package/build/cjs/graph.js.map +1 -1
  43. package/build/cjs/handler-scope.d.ts +3 -3
  44. package/build/cjs/handler-scope.d.ts.map +1 -1
  45. package/build/cjs/index.d.ts +5 -0
  46. package/build/cjs/index.d.ts.map +1 -1
  47. package/build/cjs/index.js +5 -0
  48. package/build/cjs/index.js.map +1 -1
  49. package/build/cjs/invariants.d.ts +26 -0
  50. package/build/cjs/invariants.d.ts.map +1 -0
  51. package/build/cjs/invariants.js +39 -0
  52. package/build/cjs/invariants.js.map +1 -0
  53. package/build/cjs/map-links.d.ts +1 -0
  54. package/build/cjs/map-links.d.ts.map +1 -1
  55. package/build/cjs/map-links.js +14 -1
  56. package/build/cjs/map-links.js.map +1 -1
  57. package/build/cjs/map-structure.d.ts +171 -2
  58. package/build/cjs/map-structure.d.ts.map +1 -1
  59. package/build/cjs/map-structure.js +46 -4
  60. package/build/cjs/map-structure.js.map +1 -1
  61. package/build/cjs/map-vocabulary.d.ts +29 -1
  62. package/build/cjs/map-vocabulary.d.ts.map +1 -1
  63. package/build/cjs/map-vocabulary.js +72 -2
  64. package/build/cjs/map-vocabulary.js.map +1 -1
  65. package/build/cjs/nodes.d.ts +11 -1
  66. package/build/cjs/nodes.d.ts.map +1 -1
  67. package/build/cjs/nodes.js +4 -2
  68. package/build/cjs/nodes.js.map +1 -1
  69. package/build/cjs/ops.d.ts +43 -10
  70. package/build/cjs/ops.d.ts.map +1 -1
  71. package/build/cjs/ops.js +1 -1
  72. package/build/cjs/ops.js.map +1 -1
  73. package/build/cjs/overrides.d.ts +5 -2
  74. package/build/cjs/overrides.d.ts.map +1 -1
  75. package/build/cjs/overrides.js.map +1 -1
  76. package/build/cjs/package.json +1 -0
  77. package/build/cjs/reachability.d.ts +4 -4
  78. package/build/cjs/reachability.d.ts.map +1 -1
  79. package/build/cjs/reachability.js +4 -0
  80. package/build/cjs/reachability.js.map +1 -1
  81. package/build/cjs/reality-check.d.ts +4 -4
  82. package/build/cjs/reality-check.d.ts.map +1 -1
  83. package/build/cjs/reality-check.js +9 -0
  84. package/build/cjs/reality-check.js.map +1 -1
  85. package/build/cjs/session.d.ts +21 -0
  86. package/build/cjs/session.d.ts.map +1 -1
  87. package/build/cjs/session.js +19 -0
  88. package/build/cjs/session.js.map +1 -1
  89. package/build/cjs/spec.d.ts +137 -0
  90. package/build/cjs/spec.d.ts.map +1 -0
  91. package/build/cjs/spec.js +462 -0
  92. package/build/cjs/spec.js.map +1 -0
  93. package/build/cjs/topology.d.ts +2 -2
  94. package/build/cjs/topology.d.ts.map +1 -1
  95. package/build/cjs/topology.js +2 -0
  96. package/build/cjs/topology.js.map +1 -1
  97. package/build/cjs/validate-design.d.ts +3 -3
  98. package/build/cjs/validate-design.d.ts.map +1 -1
  99. package/build/cjs/validate-design.js +34 -0
  100. package/build/cjs/validate-design.js.map +1 -1
  101. package/build/esm/apply-design.d.ts +5 -5
  102. package/build/esm/apply-design.d.ts.map +1 -1
  103. package/build/esm/apply-design.js +10 -1
  104. package/build/esm/apply-design.js.map +1 -1
  105. package/build/esm/apply-overrides.d.ts +3 -3
  106. package/build/esm/apply-overrides.d.ts.map +1 -1
  107. package/build/esm/apply-overrides.js +3 -0
  108. package/build/esm/apply-overrides.js.map +1 -1
  109. package/build/esm/card-channel.d.ts +18 -0
  110. package/build/esm/card-channel.d.ts.map +1 -0
  111. package/build/esm/card-channel.js +25 -0
  112. package/build/esm/card-channel.js.map +1 -0
  113. package/build/esm/convergence.d.ts +2 -2
  114. package/build/esm/convergence.d.ts.map +1 -1
  115. package/build/esm/coverage-links.d.ts +27 -0
  116. package/build/esm/coverage-links.d.ts.map +1 -0
  117. package/build/esm/coverage-links.js +113 -0
  118. package/build/esm/coverage-links.js.map +1 -0
  119. package/build/esm/design.d.ts +32 -2
  120. package/build/esm/design.d.ts.map +1 -1
  121. package/build/esm/design.js +25 -1
  122. package/build/esm/design.js.map +1 -1
  123. package/build/esm/diagnostics.d.ts +2 -2
  124. package/build/esm/diagnostics.d.ts.map +1 -1
  125. package/build/esm/edges.d.ts +2 -2
  126. package/build/esm/edges.d.ts.map +1 -1
  127. package/build/esm/edges.js +2 -1
  128. package/build/esm/edges.js.map +1 -1
  129. package/build/esm/entry-points.d.ts +2 -2
  130. package/build/esm/entry-points.d.ts.map +1 -1
  131. package/build/esm/find-orphan-nodes.d.ts +3 -3
  132. package/build/esm/find-orphan-nodes.d.ts.map +1 -1
  133. package/build/esm/flow-traversal.d.ts +3 -3
  134. package/build/esm/flow-traversal.d.ts.map +1 -1
  135. package/build/esm/fork-scenarios.d.ts +44 -0
  136. package/build/esm/fork-scenarios.d.ts.map +1 -0
  137. package/build/esm/fork-scenarios.js +78 -0
  138. package/build/esm/fork-scenarios.js.map +1 -0
  139. package/build/esm/graph.d.ts +2 -2
  140. package/build/esm/graph.d.ts.map +1 -1
  141. package/build/esm/graph.js.map +1 -1
  142. package/build/esm/handler-scope.d.ts +3 -3
  143. package/build/esm/handler-scope.d.ts.map +1 -1
  144. package/build/esm/index.d.ts +5 -0
  145. package/build/esm/index.d.ts.map +1 -1
  146. package/build/esm/index.js +5 -0
  147. package/build/esm/index.js.map +1 -1
  148. package/build/esm/invariants.d.ts +26 -0
  149. package/build/esm/invariants.d.ts.map +1 -0
  150. package/build/esm/invariants.js +36 -0
  151. package/build/esm/invariants.js.map +1 -0
  152. package/build/esm/map-links.d.ts +1 -0
  153. package/build/esm/map-links.d.ts.map +1 -1
  154. package/build/esm/map-links.js +14 -1
  155. package/build/esm/map-links.js.map +1 -1
  156. package/build/esm/map-structure.d.ts +171 -2
  157. package/build/esm/map-structure.d.ts.map +1 -1
  158. package/build/esm/map-structure.js +42 -3
  159. package/build/esm/map-structure.js.map +1 -1
  160. package/build/esm/map-vocabulary.d.ts +29 -1
  161. package/build/esm/map-vocabulary.d.ts.map +1 -1
  162. package/build/esm/map-vocabulary.js +64 -1
  163. package/build/esm/map-vocabulary.js.map +1 -1
  164. package/build/esm/nodes.d.ts +11 -1
  165. package/build/esm/nodes.d.ts.map +1 -1
  166. package/build/esm/nodes.js +4 -2
  167. package/build/esm/nodes.js.map +1 -1
  168. package/build/esm/ops.d.ts +43 -10
  169. package/build/esm/ops.d.ts.map +1 -1
  170. package/build/esm/ops.js +1 -1
  171. package/build/esm/ops.js.map +1 -1
  172. package/build/esm/overrides.d.ts +5 -2
  173. package/build/esm/overrides.d.ts.map +1 -1
  174. package/build/esm/overrides.js.map +1 -1
  175. package/build/esm/reachability.d.ts +4 -4
  176. package/build/esm/reachability.d.ts.map +1 -1
  177. package/build/esm/reachability.js +4 -0
  178. package/build/esm/reachability.js.map +1 -1
  179. package/build/esm/reality-check.d.ts +4 -4
  180. package/build/esm/reality-check.d.ts.map +1 -1
  181. package/build/esm/reality-check.js +9 -0
  182. package/build/esm/reality-check.js.map +1 -1
  183. package/build/esm/session.d.ts +21 -0
  184. package/build/esm/session.d.ts.map +1 -1
  185. package/build/esm/session.js +17 -0
  186. package/build/esm/session.js.map +1 -1
  187. package/build/esm/spec.d.ts +137 -0
  188. package/build/esm/spec.d.ts.map +1 -0
  189. package/build/esm/spec.js +449 -0
  190. package/build/esm/spec.js.map +1 -0
  191. package/build/esm/topology.d.ts +2 -2
  192. package/build/esm/topology.d.ts.map +1 -1
  193. package/build/esm/topology.js +2 -0
  194. package/build/esm/topology.js.map +1 -1
  195. package/build/esm/validate-design.d.ts +3 -3
  196. package/build/esm/validate-design.d.ts.map +1 -1
  197. package/build/esm/validate-design.js +35 -1
  198. package/build/esm/validate-design.js.map +1 -1
  199. package/build/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +14 -4
  201. package/schema/map.schema.json +62 -1
@@ -1,4 +1,6 @@
1
- import { type DecidedSource, type MapNodeLevel, type MapShape } from './map-vocabulary.js';
1
+ import { type DecidedSource, type KpiDirection, type KpiFilterOutcome, type KpiKind, type MapNodeLevel, type MapShape, type WalkKind } from './map-vocabulary.js';
2
+ import type { DesignAuthor } from './nodes.js';
3
+ import type { OpVerb } from './ops.js';
2
4
  export type MapStructureVersion = 1;
3
5
  export declare const MAP_STRUCTURE_VERSION: MapStructureVersion;
4
6
  export declare const LEGACY_MAP_STRUCTURE_VERSIONS: readonly number[];
@@ -9,6 +11,7 @@ export type MapNode = {
9
11
  level: MapNodeLevel;
10
12
  title: string;
11
13
  parents: MapEntryId[];
14
+ description?: string;
12
15
  struck?: {
13
16
  reason: string;
14
17
  };
@@ -27,6 +30,10 @@ export declare function isMapForkStatus(value: unknown): value is MapForkStatus;
27
30
  export type MapOptionWalk = {
28
31
  scenario: string;
29
32
  text: string;
33
+ kind?: WalkKind;
34
+ given?: string;
35
+ when?: string;
36
+ then?: string;
30
37
  };
31
38
  export type MapOption = {
32
39
  id: MapOptionId;
@@ -59,6 +66,119 @@ export type MapLink = {
59
66
  esId: string;
60
67
  deliverableId: MapEntryId;
61
68
  };
69
+ export type ExampleStatus = {
70
+ kind: 'proposed';
71
+ } | {
72
+ kind: 'agreed';
73
+ seq: number;
74
+ at: string;
75
+ principal?: string;
76
+ } | {
77
+ kind: 'struck';
78
+ reason: string;
79
+ };
80
+ export declare function isExampleStatus(value: unknown): value is ExampleStatus;
81
+ export type ExampleStatusRestore = {
82
+ id: MapEntryId;
83
+ status: ExampleStatus;
84
+ };
85
+ export type GherkinStep = {
86
+ text: string;
87
+ };
88
+ export type ExamplesTable = {
89
+ columns: string[];
90
+ rows: string[][];
91
+ };
92
+ export type ScenarioDerivationBasis = Omit<MapOptionWalk, 'scenario'>;
93
+ export type ScenarioDerivation = {
94
+ forkId: MapEntryId;
95
+ optionId: MapOptionId;
96
+ walk?: string;
97
+ basis?: ScenarioDerivationBasis;
98
+ };
99
+ export type MapScenario = {
100
+ id: MapEntryId;
101
+ title: string;
102
+ anchors: MapEntryId[];
103
+ given: GherkinStep[];
104
+ when: GherkinStep[];
105
+ then: GherkinStep[];
106
+ examples?: ExamplesTable;
107
+ derivedFrom?: ScenarioDerivation;
108
+ supersedes?: MapEntryId;
109
+ proposedBy: DesignAuthor;
110
+ status: ExampleStatus;
111
+ };
112
+ export type KpiEventFilters = {
113
+ outcome?: KpiFilterOutcome;
114
+ errorCode?: string;
115
+ };
116
+ export type KpiEventSide = {
117
+ esIds: string[];
118
+ filters?: KpiEventFilters;
119
+ };
120
+ export type KpiSource = {
121
+ kind: 'events';
122
+ numerator: KpiEventSide;
123
+ denominator?: KpiEventSide;
124
+ } | {
125
+ kind: 'query';
126
+ datasource: string;
127
+ expr: string;
128
+ };
129
+ export type KpiDefinition = {
130
+ kind: KpiKind;
131
+ unit: string;
132
+ percentile?: number;
133
+ source: KpiSource;
134
+ };
135
+ export type ObservationKpi = {
136
+ mode: 'define';
137
+ definition: KpiDefinition;
138
+ } | {
139
+ mode: 'reference';
140
+ ref: string;
141
+ label?: string;
142
+ };
143
+ export type KpiExpectation = {
144
+ direction: KpiDirection;
145
+ target: number;
146
+ baseline?: number;
147
+ window: string;
148
+ };
149
+ export type MapObservation = {
150
+ id: MapEntryId;
151
+ title: string;
152
+ anchors: MapEntryId[];
153
+ kpi: ObservationKpi;
154
+ expect: KpiExpectation;
155
+ supersedes?: MapEntryId;
156
+ proposedBy: DesignAuthor;
157
+ status: ExampleStatus;
158
+ };
159
+ export type MapExample = MapScenario | MapObservation;
160
+ export type MapExampleLevel = 'scenario' | 'observation';
161
+ export declare const MAP_EXAMPLE_ID_PREFIX: {
162
+ readonly [Level in MapExampleLevel]: string;
163
+ };
164
+ export declare const MAP_EXAMPLE_ID_PATTERN: RegExp;
165
+ export declare function isMapExampleLevel(value: unknown): value is MapExampleLevel;
166
+ export type CoverageLink = {
167
+ esId: string;
168
+ scenarioId: MapEntryId;
169
+ };
170
+ export type MapAgreedSnapshot = {
171
+ seq: number;
172
+ at: string;
173
+ ids: MapEntryId[];
174
+ decided: Record<MapEntryId, MapOptionId>;
175
+ };
176
+ export type ReviewFlag = {
177
+ esId: string;
178
+ deliverableId: MapEntryId;
179
+ cause: string;
180
+ verb: OpVerb;
181
+ };
62
182
  export type MapFile = {
63
183
  structureVersion: MapStructureVersion;
64
184
  shape?: MapShape;
@@ -66,11 +186,18 @@ export type MapFile = {
66
186
  nodes: MapNode[];
67
187
  forks: MapFork[];
68
188
  links: MapLink[];
189
+ scenarios: MapScenario[];
190
+ observations: MapObservation[];
191
+ coverage: CoverageLink[];
192
+ agreedAt?: MapAgreedSnapshot;
193
+ review?: ReviewFlag[];
69
194
  };
70
195
  export type MapGroundOpPayload = {
71
196
  shape: MapShape;
72
197
  };
73
- export type MapPostNodeEntry = Omit<MapNode, 'struck'>;
198
+ export type MapPostNodeEntry = Omit<MapNode, 'struck'> & {
199
+ byFork?: MapEntryId;
200
+ };
74
201
  export type MapPostForkEntry = Omit<MapFork, 'status'> & {
75
202
  level: 'fork';
76
203
  };
@@ -78,13 +205,47 @@ export type MapPostEntry = MapPostNodeEntry | MapPostForkEntry;
78
205
  export type MapPostOpPayload = MapPostEntry & {
79
206
  prior?: MapEntry;
80
207
  };
208
+ export type MapPostScenarioEntry = Omit<MapScenario, 'id' | 'proposedBy' | 'status'> & {
209
+ level: 'scenario';
210
+ id?: MapEntryId;
211
+ covers?: string[];
212
+ };
213
+ export type MapPostObservationEntry = Omit<MapObservation, 'id' | 'proposedBy' | 'status'> & {
214
+ level: 'observation';
215
+ id?: MapEntryId;
216
+ };
217
+ export type MapPostExampleEntry = MapPostScenarioEntry | MapPostObservationEntry;
218
+ export type MapPostExampleOpPayload = (Omit<MapPostScenarioEntry, 'id'> & {
219
+ id: MapEntryId;
220
+ proposedBy: DesignAuthor;
221
+ prior?: MapScenario;
222
+ }) | (Omit<MapPostObservationEntry, 'id'> & {
223
+ id: MapEntryId;
224
+ proposedBy: DesignAuthor;
225
+ prior?: MapObservation;
226
+ });
227
+ export type MapAgreeOpPayload = {
228
+ id: MapEntryId;
229
+ seenSeq: number;
230
+ seq: number;
231
+ at: string;
232
+ principal?: string;
233
+ };
234
+ export type MapExampleWithdrawal = {
235
+ level: MapExampleLevel;
236
+ id: MapEntryId;
237
+ prior?: MapExample;
238
+ coverage?: CoverageLink[];
239
+ };
81
240
  export type MapWithdrawal = {
82
241
  entries: MapEntry[];
83
242
  prior?: MapEntry[];
243
+ example?: MapExampleWithdrawal;
84
244
  };
85
245
  export type MapStrikeOpPayload = {
86
246
  id: MapEntryId;
87
247
  reason: string;
248
+ byFork?: MapEntryId;
88
249
  };
89
250
  export type MapChooseOpPayload = {
90
251
  fork: MapEntryId;
@@ -96,10 +257,18 @@ export type MapChooseOpPayload = {
96
257
  export type MapLinkOpPayload = MapLink & {
97
258
  added?: false;
98
259
  };
260
+ export type MapCoverOpPayload = CoverageLink & {
261
+ added?: false;
262
+ };
263
+ export type MapUncoverRequest = CoverageLink;
264
+ export type MapUncoverOpPayload = CoverageLink & {
265
+ removed: CoverageLink[];
266
+ };
99
267
  export declare const MAP_ID_PATTERN: RegExp;
100
268
  export declare function isMapId(value: unknown): value is MapEntryId;
101
269
  export declare function isMapFork(entry: MapEntry): entry is MapFork;
102
270
  export declare function emptyMap(): MapFile;
271
+ export declare function withExampleArrays<Map extends Partial<Pick<MapFile, 'scenarios' | 'observations' | 'coverage'>>>(map: Map): Map & Pick<MapFile, 'scenarios' | 'observations' | 'coverage'>;
103
272
  export type MapReadStatus = 'ok' | 'migrated' | 'unreadable' | 'unsupported-structure-version';
104
273
  export type MapRead = {
105
274
  map: MapFile;
@@ -1 +1 @@
1
- {"version":3,"file":"map-structure.d.ts","sourceRoot":"","sources":["../../src/map-structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-structure.d.ts","sourceRoot":"","sources":["../../src/map-structure.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,26 @@ export function isMapForkStatus(value) {
12
12
  default: return false;
13
13
  }
14
14
  }
15
+ export function isExampleStatus(value) {
16
+ if (value === null || typeof value !== 'object')
17
+ return false;
18
+ const status = value;
19
+ switch (status.kind) {
20
+ case 'proposed': return true;
21
+ case 'agreed': return Number.isInteger(status.seq) && typeof status.at === 'string'
22
+ && (status.principal === undefined || typeof status.principal === 'string');
23
+ case 'struck': return typeof status.reason === 'string';
24
+ default: return false;
25
+ }
26
+ }
27
+ export const MAP_EXAMPLE_ID_PREFIX = Object.freeze({
28
+ scenario: 'SCN',
29
+ observation: 'OBS'
30
+ });
31
+ export const MAP_EXAMPLE_ID_PATTERN = /^(SCN|OBS)-[0-9A-HJKMNP-TV-Z]{8}$/;
32
+ export function isMapExampleLevel(value) {
33
+ return value === 'scenario' || value === 'observation';
34
+ }
15
35
  export const MAP_ID_PATTERN = /^[A-Za-z0-9-]+$/;
16
36
  export function isMapId(value) {
17
37
  return typeof value === 'string' && MAP_ID_PATTERN.test(value);
@@ -20,7 +40,26 @@ export function isMapFork(entry) {
20
40
  return !('level' in entry);
21
41
  }
22
42
  export function emptyMap() {
23
- return { structureVersion: MAP_STRUCTURE_VERSION, grounded: false, nodes: [], forks: [], links: [] };
43
+ return {
44
+ structureVersion: MAP_STRUCTURE_VERSION,
45
+ grounded: false,
46
+ nodes: [],
47
+ forks: [],
48
+ links: [],
49
+ scenarios: [],
50
+ observations: [],
51
+ coverage: []
52
+ };
53
+ }
54
+ // ESAS-287 (F11): the example arrays are required on MapFile but absent from anything stored before
55
+ // them, so a read boundary defaults them to [] (additive; no structureVersion bump).
56
+ export function withExampleArrays(map) {
57
+ return {
58
+ ...map,
59
+ scenarios: Array.isArray(map.scenarios) ? map.scenarios : [],
60
+ observations: Array.isArray(map.observations) ? map.observations : [],
61
+ coverage: Array.isArray(map.coverage) ? map.coverage : []
62
+ };
24
63
  }
25
64
  export function readMapDocument(value) {
26
65
  if (typeof value !== 'object' || value === null || Array.isArray(value)) {
@@ -29,10 +68,10 @@ export function readMapDocument(value) {
29
68
  const document = value;
30
69
  const observed = document.structureVersion;
31
70
  if (observed === MAP_STRUCTURE_VERSION)
32
- return { map: document, status: 'ok' };
71
+ return { map: withExampleArrays(document), status: 'ok' };
33
72
  if (observed === undefined || LEGACY_MAP_STRUCTURE_VERSIONS.includes(observed)) {
34
73
  return {
35
- map: { ...document, structureVersion: MAP_STRUCTURE_VERSION },
74
+ map: { ...withExampleArrays(document), structureVersion: MAP_STRUCTURE_VERSION },
36
75
  status: 'migrated'
37
76
  };
38
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"map-structure.js","sourceRoot":"","sources":["../../src/map-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI5G,MAAM,CAAC,MAAM,qBAAqB,GAAwB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,6BAA6B,GAAsB,CAAE,CAAC,CAAE,CAAC;AAmBtE,MAAM,UAAU,eAAe,CAAE,KAAc;IAC7C,IAAK,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAG,OAAO,KAAK,CAAC;IAChE,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,QAAS,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,SAAS,CAAC,CAAC,OAAO,eAAe,CAAE,MAAM,CAAC,MAAM,CAAE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;QAC7F,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;QACtD,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAmFD,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEhD,MAAM,UAAU,OAAO,CAAE,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,SAAS,CAAE,KAAe;IACxC,OAAO,CAAC,CAAE,OAAO,IAAI,KAAK,CAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACvG,CAAC;AAcD,MAAM,UAAU,eAAe,CAAE,KAAc;IAC7C,IAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE,EAAC,CAAC;QAC1E,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;IAC/F,CAAC;IAED,MAAM,QAAQ,GAAG,KAA0D,CAAC;IAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAE3C,IAAK,QAAQ,KAAK,qBAAqB;QAAG,OAAO,EAAE,GAAG,EAAE,QAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE5F,IAAK,QAAQ,KAAK,SAAS,IAAI,6BAA6B,CAAC,QAAQ,CAAE,QAAkB,CAAE,EAAC,CAAC;QAC3F,OAAO;YACL,GAAG,EAAE,EAAE,GAAK,QAAqB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE;YAC5E,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,QAAQ,EAAE;QACf,MAAM,EAAE,+BAA+B;QACvC,KAAK,EAAE,yCAA0C,IAAI,CAAC,SAAS,CAAE,QAAQ,CAAG,qBAAqB;cAC7F,GAAI,CAAE,GAAG,6BAA6B,EAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,CAAG,EAAE;KACpF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"map-structure.js","sourceRoot":"","sources":["../../src/map-structure.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type MapSchemaVersion = 2;
1
+ export type MapSchemaVersion = 3;
2
2
  export declare const MAP_SCHEMA_VERSION: MapSchemaVersion;
3
3
  export type ForkStatusKind = 'open' | 'decided' | 'moot';
4
4
  export declare const FORK_STATUS_KINDS: readonly ForkStatusKind[];
@@ -12,6 +12,27 @@ export declare function isMapNodeLevel(value: unknown): value is MapNodeLevel;
12
12
  export type MapShape = 'impact' | 'decision';
13
13
  export declare const MAP_SHAPES: readonly MapShape[];
14
14
  export declare function isMapShape(value: unknown): value is MapShape;
15
+ export type ExampleStatusKind = 'proposed' | 'agreed' | 'struck';
16
+ export declare const EXAMPLE_STATUS_KINDS: readonly ExampleStatusKind[];
17
+ export declare function isExampleStatusKind(value: unknown): value is ExampleStatusKind;
18
+ export type KpiMode = 'define' | 'reference';
19
+ export declare const KPI_MODES: readonly KpiMode[];
20
+ export declare function isKpiMode(value: unknown): value is KpiMode;
21
+ export type KpiKind = 'counter' | 'rate' | 'ratio' | 'duration-percentile' | 'gauge';
22
+ export declare const KPI_KINDS: readonly KpiKind[];
23
+ export declare function isKpiKind(value: unknown): value is KpiKind;
24
+ export type KpiDirection = 'up' | 'down' | 'hold';
25
+ export declare const KPI_DIRECTIONS: readonly KpiDirection[];
26
+ export declare function isKpiDirection(value: unknown): value is KpiDirection;
27
+ export type KpiSourceKind = 'events' | 'query';
28
+ export declare const KPI_SOURCE_KINDS: readonly KpiSourceKind[];
29
+ export declare function isKpiSourceKind(value: unknown): value is KpiSourceKind;
30
+ export type KpiFilterOutcome = 'ok' | 'rejected';
31
+ export declare const KPI_FILTER_OUTCOMES: readonly KpiFilterOutcome[];
32
+ export declare function isKpiFilterOutcome(value: unknown): value is KpiFilterOutcome;
33
+ export type WalkKind = 'behavioral' | 'structural';
34
+ export declare const WALK_KINDS: readonly WalkKind[];
35
+ export declare function isWalkKind(value: unknown): value is WalkKind;
15
36
  export type MapSchemaVocabulary = {
16
37
  type: 'string';
17
38
  description: string;
@@ -27,6 +48,13 @@ export type MapSchemaDocument = {
27
48
  decidedSource: MapSchemaVocabulary;
28
49
  mapNodeLevel: MapSchemaVocabulary;
29
50
  mapShape: MapSchemaVocabulary;
51
+ exampleStatusKind: MapSchemaVocabulary;
52
+ kpiMode: MapSchemaVocabulary;
53
+ kpiKind: MapSchemaVocabulary;
54
+ kpiDirection: MapSchemaVocabulary;
55
+ kpiSourceKind: MapSchemaVocabulary;
56
+ kpiFilterOutcome: MapSchemaVocabulary;
57
+ walkKind: MapSchemaVocabulary;
30
58
  };
31
59
  };
32
60
  export declare function mapSchemaDocument(): MapSchemaDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"map-vocabulary.d.ts","sourceRoot":"","sources":["../../src/map-vocabulary.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAEjC,eAAO,MAAM,kBAAkB,EAAE,gBAAoB,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAEtD,CAAC;AAEF,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,OAAO,GAAI,KAAK,IAAI,cAAc,CAE1E;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEhE,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAEnD,CAAC;AAEF,wBAAgB,eAAe,CAAE,KAAK,EAAE,OAAO,GAAI,KAAK,IAAI,aAAa,CAExE;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAKhD,CAAC;AAEJ,wBAAgB,cAAc,CAAE,KAAK,EAAE,OAAO,GAAI,KAAK,IAAI,YAAY,CAEtE;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7C,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAA8C,CAAC;AAEzF,wBAAgB,UAAU,CAAE,KAAK,EAAE,OAAO,GAAI,KAAK,IAAI,QAAQ,CAE9D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,gBAAgB,CAAC;IAChC,KAAK,EAAE;QACL,cAAc,EAAE,mBAAmB,CAAC;QACpC,aAAa,EAAE,mBAAmB,CAAC;QACnC,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,iBAAiB,CAgCrD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,GAAG,UAAU,CAAC;AAEjG,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC9C,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAChD,CAAC;AA8BF,wBAAgB,qBAAqB,CAAE,QAAQ,EAAE,OAAO,GAAI,uBAAuB,CAyElF"}
1
+ {"version":3,"file":"map-vocabulary.d.ts","sourceRoot":"","sources":["../../src/map-vocabulary.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export const MAP_SCHEMA_VERSION = 2;
1
+ export const MAP_SCHEMA_VERSION = 3;
2
2
  export const FORK_STATUS_KINDS = Object.freeze(['open', 'decided', 'moot']);
3
3
  export function isForkStatusKind(value) {
4
4
  return typeof value === 'string' && FORK_STATUS_KINDS.includes(value);
@@ -20,6 +20,34 @@ export const MAP_SHAPES = Object.freeze(['impact', 'decision']);
20
20
  export function isMapShape(value) {
21
21
  return typeof value === 'string' && MAP_SHAPES.includes(value);
22
22
  }
23
+ export const EXAMPLE_STATUS_KINDS = Object.freeze(['proposed', 'agreed', 'struck']);
24
+ export function isExampleStatusKind(value) {
25
+ return typeof value === 'string' && EXAMPLE_STATUS_KINDS.includes(value);
26
+ }
27
+ export const KPI_MODES = Object.freeze(['define', 'reference']);
28
+ export function isKpiMode(value) {
29
+ return typeof value === 'string' && KPI_MODES.includes(value);
30
+ }
31
+ export const KPI_KINDS = Object.freeze(['counter', 'rate', 'ratio', 'duration-percentile', 'gauge']);
32
+ export function isKpiKind(value) {
33
+ return typeof value === 'string' && KPI_KINDS.includes(value);
34
+ }
35
+ export const KPI_DIRECTIONS = Object.freeze(['up', 'down', 'hold']);
36
+ export function isKpiDirection(value) {
37
+ return typeof value === 'string' && KPI_DIRECTIONS.includes(value);
38
+ }
39
+ export const KPI_SOURCE_KINDS = Object.freeze(['events', 'query']);
40
+ export function isKpiSourceKind(value) {
41
+ return typeof value === 'string' && KPI_SOURCE_KINDS.includes(value);
42
+ }
43
+ export const KPI_FILTER_OUTCOMES = Object.freeze(['ok', 'rejected']);
44
+ export function isKpiFilterOutcome(value) {
45
+ return typeof value === 'string' && KPI_FILTER_OUTCOMES.includes(value);
46
+ }
47
+ export const WALK_KINDS = Object.freeze(['behavioral', 'structural']);
48
+ export function isWalkKind(value) {
49
+ return typeof value === 'string' && WALK_KINDS.includes(value);
50
+ }
23
51
  export function mapSchemaDocument() {
24
52
  return {
25
53
  $schema: 'https://json-schema.org/draft/2020-12/schema',
@@ -48,6 +76,41 @@ export function mapSchemaDocument() {
48
76
  type: 'string',
49
77
  description: 'How a map is drawn: impact columns or a decision tree.',
50
78
  enum: [...MAP_SHAPES]
79
+ },
80
+ exampleStatusKind: {
81
+ type: 'string',
82
+ description: 'Where a scenario or observation stands; only a human agrees one.',
83
+ enum: [...EXAMPLE_STATUS_KINDS]
84
+ },
85
+ kpiMode: {
86
+ type: 'string',
87
+ description: 'Whether an observation defines a new KPI or references one the APM already tracks.',
88
+ enum: [...KPI_MODES]
89
+ },
90
+ kpiKind: {
91
+ type: 'string',
92
+ description: 'What a defined KPI measures.',
93
+ enum: [...KPI_KINDS]
94
+ },
95
+ kpiDirection: {
96
+ type: 'string',
97
+ description: 'Which way an observation expects its KPI to move.',
98
+ enum: [...KPI_DIRECTIONS]
99
+ },
100
+ kpiSourceKind: {
101
+ type: 'string',
102
+ description: 'Where a defined KPI is read from: eventstorming ids, or a query on a logical datasource role.',
103
+ enum: [...KPI_SOURCE_KINDS]
104
+ },
105
+ kpiFilterOutcome: {
106
+ type: 'string',
107
+ description: 'The logical outcome a KPI event side may be filtered on.',
108
+ enum: [...KPI_FILTER_OUTCOMES]
109
+ },
110
+ walkKind: {
111
+ type: 'string',
112
+ description: 'Whether a fork option\'s walk describes behaviour or structure.',
113
+ enum: [...WALK_KINDS]
51
114
  }
52
115
  }
53
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"map-vocabulary.js","sourceRoot":"","sources":["../../src/map-vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-vocabulary.js","sourceRoot":"","sources":["../../src/map-vocabulary.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,18 @@ export type NodeSource = {
4
4
  };
5
5
  export type NodeMeta = {
6
6
  source: NodeSource;
7
+ /**
8
+ * The name the running code emits this node under (an event or command type), for an extractor
9
+ * to record where it can differ from the label (ESAS-306). Absent, the KPI compiler falls back
10
+ * to the label's PascalCase.
11
+ */
12
+ runtimeName?: string;
7
13
  };
8
14
  export type Origin = 'extracted' | 'manual' | 'human' | 'ai' | 'derived';
9
15
  export type DesignAuthor = 'human' | 'ai';
10
16
  export type DesignStatus = 'proposed' | 'modified' | 'removed' | 'satisfied';
11
17
  export type UiKind = 'end-user' | 'back-office';
12
- export type NodeType = 'aggregate' | 'system' | 'command' | 'event' | 'policy' | 'read-model' | 'external-system' | 'datastore' | 'cache' | 'ui' | 'postgres-view';
18
+ export type NodeType = 'aggregate' | 'system' | 'command' | 'event' | 'policy' | 'read-model' | 'external-system' | 'datastore' | 'cache' | 'ui' | 'postgres-view' | 'invariant';
13
19
  export declare const NODE_TYPES: readonly NodeType[];
14
20
  export declare const NODE_ABBREV: Record<NodeType, string>;
15
21
  export declare const NODE_TYPE_BY_ABBREV: Readonly<Record<string, NodeType>>;
@@ -31,6 +37,10 @@ export type BlueprintNode = {
31
37
  searchIndexes?: ReadModelSearchIndex[];
32
38
  meta?: NodeMeta;
33
39
  uiKind?: UiKind;
40
+ /** ESAS-305: an invariant's rule sentence, the codes it rejects with, and whether a framework library supplies it. */
41
+ rule?: string;
42
+ errorCodes?: string[];
43
+ generic?: boolean;
34
44
  origin?: Origin;
35
45
  status?: DesignStatus;
36
46
  previousLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/nodes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,OAAO,GACP,IAAI,GACJ,eAAe,CAAC;AAEpB,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAYhC,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAYhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAElE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/nodes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,OAAO,GACP,IAAI,GACJ,eAAe,GACf,WAAW,CAAC;AAEhB,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAahC,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAahD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAElE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sHAAsH;IACtH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -9,7 +9,8 @@ export const NODE_TYPES = [
9
9
  'datastore',
10
10
  'cache',
11
11
  'ui',
12
- 'postgres-view'
12
+ 'postgres-view',
13
+ 'invariant'
13
14
  ];
14
15
  export const NODE_ABBREV = {
15
16
  'aggregate': 'agg',
@@ -22,7 +23,8 @@ export const NODE_ABBREV = {
22
23
  'datastore': 'tbl',
23
24
  'cache': 'cache',
24
25
  'ui': 'ui',
25
- 'postgres-view': 'view'
26
+ 'postgres-view': 'view',
27
+ 'invariant': 'inv'
26
28
  };
27
29
  export const NODE_TYPE_BY_ABBREV = Object.fromEntries(NODE_TYPES.map(type => [NODE_ABBREV[type], type]));
28
30
  //# sourceMappingURL=nodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/nodes.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,OAAO;IACP,IAAI;IACJ,eAAe;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,IAAI;IACV,eAAe,EAAE,MAAM;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuC,MAAM,CAAC,WAAW,CACvF,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,CAAE,WAAW,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAE,CACxD,CAAC"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/nodes.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,OAAO;IACP,IAAI;IACJ,eAAe;IACf,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,IAAI;IACV,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuC,MAAM,CAAC,WAAW,CACvF,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,CAAE,WAAW,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAE,CACxD,CAAC"}