wabachi 0.1.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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +84 -0
  3. package/dist/architecture/canon/authority.d.ts +35 -0
  4. package/dist/architecture/canon/authority.js +76 -0
  5. package/dist/architecture/canon/authority.js.map +1 -0
  6. package/dist/architecture/canon/boundaries.d.ts +31 -0
  7. package/dist/architecture/canon/boundaries.js +73 -0
  8. package/dist/architecture/canon/boundaries.js.map +1 -0
  9. package/dist/architecture/canon/codec.d.ts +10 -0
  10. package/dist/architecture/canon/codec.js +516 -0
  11. package/dist/architecture/canon/codec.js.map +1 -0
  12. package/dist/architecture/canon/constraints.d.ts +60 -0
  13. package/dist/architecture/canon/constraints.js +116 -0
  14. package/dist/architecture/canon/constraints.js.map +1 -0
  15. package/dist/architecture/canon/decisions.d.ts +62 -0
  16. package/dist/architecture/canon/decisions.js +192 -0
  17. package/dist/architecture/canon/decisions.js.map +1 -0
  18. package/dist/architecture/canon/deployment.d.ts +89 -0
  19. package/dist/architecture/canon/deployment.js +156 -0
  20. package/dist/architecture/canon/deployment.js.map +1 -0
  21. package/dist/architecture/canon/document.d.ts +60 -0
  22. package/dist/architecture/canon/document.js +106 -0
  23. package/dist/architecture/canon/document.js.map +1 -0
  24. package/dist/architecture/canon/elements.d.ts +21 -0
  25. package/dist/architecture/canon/elements.js +87 -0
  26. package/dist/architecture/canon/elements.js.map +1 -0
  27. package/dist/architecture/canon/flows.d.ts +37 -0
  28. package/dist/architecture/canon/flows.js +82 -0
  29. package/dist/architecture/canon/flows.js.map +1 -0
  30. package/dist/architecture/canon/identity.d.ts +45 -0
  31. package/dist/architecture/canon/identity.js +83 -0
  32. package/dist/architecture/canon/identity.js.map +1 -0
  33. package/dist/architecture/canon/relationships.d.ts +48 -0
  34. package/dist/architecture/canon/relationships.js +181 -0
  35. package/dist/architecture/canon/relationships.js.map +1 -0
  36. package/dist/architecture/canon/repository-mappings.d.ts +51 -0
  37. package/dist/architecture/canon/repository-mappings.js +134 -0
  38. package/dist/architecture/canon/repository-mappings.js.map +1 -0
  39. package/dist/architecture/canon/responsibilities.d.ts +40 -0
  40. package/dist/architecture/canon/responsibilities.js +89 -0
  41. package/dist/architecture/canon/responsibilities.js.map +1 -0
  42. package/dist/architecture/canon/validate.d.ts +14 -0
  43. package/dist/architecture/canon/validate.js +389 -0
  44. package/dist/architecture/canon/validate.js.map +1 -0
  45. package/dist/architecture/canon/views.d.ts +101 -0
  46. package/dist/architecture/canon/views.js +182 -0
  47. package/dist/architecture/canon/views.js.map +1 -0
  48. package/dist/architecture/cli.d.ts +2 -0
  49. package/dist/architecture/cli.js +158 -0
  50. package/dist/architecture/cli.js.map +1 -0
  51. package/dist/architecture/documentation/html.d.ts +3 -0
  52. package/dist/architecture/documentation/html.js +143 -0
  53. package/dist/architecture/documentation/html.js.map +1 -0
  54. package/dist/architecture/documentation/model.d.ts +46 -0
  55. package/dist/architecture/documentation/model.js +13 -0
  56. package/dist/architecture/documentation/model.js.map +1 -0
  57. package/dist/architecture/documentation/project.d.ts +4 -0
  58. package/dist/architecture/documentation/project.js +166 -0
  59. package/dist/architecture/documentation/project.js.map +1 -0
  60. package/dist/architecture/documentation/site.d.ts +43 -0
  61. package/dist/architecture/documentation/site.js +147 -0
  62. package/dist/architecture/documentation/site.js.map +1 -0
  63. package/dist/architecture/projection/structurizr-export.d.ts +65 -0
  64. package/dist/architecture/projection/structurizr-export.js +136 -0
  65. package/dist/architecture/projection/structurizr-export.js.map +1 -0
  66. package/dist/architecture/projection/structurizr.d.ts +34 -0
  67. package/dist/architecture/projection/structurizr.js +667 -0
  68. package/dist/architecture/projection/structurizr.js.map +1 -0
  69. package/dist/cli.d.ts +1 -0
  70. package/dist/cli.js +143 -0
  71. package/dist/cli.js.map +1 -0
  72. package/dist/index.d.ts +2 -0
  73. package/dist/index.js +6 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/runtime/correlation.d.ts +143 -0
  76. package/dist/runtime/correlation.js +919 -0
  77. package/dist/runtime/correlation.js.map +1 -0
  78. package/dist/runtime/facts.d.ts +138 -0
  79. package/dist/runtime/facts.js +614 -0
  80. package/dist/runtime/facts.js.map +1 -0
  81. package/dist/runtime/fixtureProvider.d.ts +10 -0
  82. package/dist/runtime/fixtureProvider.js +30 -0
  83. package/dist/runtime/fixtureProvider.js.map +1 -0
  84. package/dist/runtime/graftProvider.d.ts +8 -0
  85. package/dist/runtime/graftProvider.js +107 -0
  86. package/dist/runtime/graftProvider.js.map +1 -0
  87. package/dist/runtime/graftWiring.d.ts +30 -0
  88. package/dist/runtime/graftWiring.js +3 -0
  89. package/dist/runtime/graftWiring.js.map +1 -0
  90. package/dist/runtime/manifest.d.ts +17 -0
  91. package/dist/runtime/manifest.js +39 -0
  92. package/dist/runtime/manifest.js.map +1 -0
  93. package/dist/runtime/matrix.d.ts +337 -0
  94. package/dist/runtime/matrix.js +1485 -0
  95. package/dist/runtime/matrix.js.map +1 -0
  96. package/dist/runtime/observation.d.ts +36 -0
  97. package/dist/runtime/observation.js +3 -0
  98. package/dist/runtime/observation.js.map +1 -0
  99. package/dist/runtime/provider.d.ts +34 -0
  100. package/dist/runtime/provider.js +2 -0
  101. package/dist/runtime/provider.js.map +1 -0
  102. package/dist/runtime/repository.d.ts +20 -0
  103. package/dist/runtime/repository.js +55 -0
  104. package/dist/runtime/repository.js.map +1 -0
  105. package/dist/runtime/run.d.ts +21 -0
  106. package/dist/runtime/run.js +80 -0
  107. package/dist/runtime/run.js.map +1 -0
  108. package/dist/runtime/scipProvider.d.ts +11 -0
  109. package/dist/runtime/scipProvider.js +126 -0
  110. package/dist/runtime/scipProvider.js.map +1 -0
  111. package/dist/runtime/typescriptProvider.d.ts +10 -0
  112. package/dist/runtime/typescriptProvider.js +289 -0
  113. package/dist/runtime/typescriptProvider.js.map +1 -0
  114. package/dist/runtime/workflow.d.ts +30 -0
  115. package/dist/runtime/workflow.js +153 -0
  116. package/dist/runtime/workflow.js.map +1 -0
  117. package/package.json +72 -0
@@ -0,0 +1,389 @@
1
+ const REGISTRY_NAMESPACES = [
2
+ "architecture",
3
+ "element",
4
+ "interface",
5
+ "responsibility",
6
+ "boundary",
7
+ "flow",
8
+ "decision",
9
+ "reference",
10
+ ];
11
+ const TARGET_NAMESPACES = [
12
+ "architecture",
13
+ "element",
14
+ "interface",
15
+ "responsibility",
16
+ "boundary",
17
+ "flow",
18
+ "decision",
19
+ ];
20
+ export const ARCHITECTURE_DIAGNOSTIC_CODES = [
21
+ "identity-registry-mismatch",
22
+ "duplicate-identity-registry-entry",
23
+ "unknown-reference",
24
+ "invalid-reference-kind",
25
+ "invalid-containment-reference",
26
+ "invalid-interface-owner",
27
+ "invalid-relationship-endpoint",
28
+ "invalid-relationship-interface",
29
+ "invalid-responsibility-target",
30
+ "invalid-boundary-member",
31
+ "invalid-authority-target",
32
+ "invalid-constraint-target",
33
+ "invalid-flow-reference",
34
+ "invalid-deployment-reference",
35
+ "invalid-repository-mapping",
36
+ "invalid-decision-target",
37
+ "invalid-decision-reference",
38
+ "invalid-supersession",
39
+ "invalid-view-reference",
40
+ ];
41
+ class DiagnosticCollector {
42
+ values = [];
43
+ keys = new Set();
44
+ add(code, path, message) {
45
+ const key = `${code}\u0000${path}`;
46
+ if (this.keys.has(key))
47
+ return;
48
+ this.keys.add(key);
49
+ this.values.push(Object.freeze({ code, path, message }));
50
+ }
51
+ finish() {
52
+ const diagnostics = Object.freeze([...this.values]);
53
+ return Object.freeze({ valid: diagnostics.length === 0, diagnostics });
54
+ }
55
+ }
56
+ function setOf(values, read) {
57
+ return new Set(values.map(read));
58
+ }
59
+ function expectedRegistry(document) {
60
+ const expected = new Map();
61
+ expected.set(document.root.id, "architecture");
62
+ for (const element of document.elements)
63
+ expected.set(element.id, "element");
64
+ for (const contract of document.interfaces)
65
+ expected.set(contract.id, "interface");
66
+ for (const responsibility of document.responsibilities.responsibilities) {
67
+ expected.set(responsibility.id, "responsibility");
68
+ }
69
+ for (const boundary of document.boundaries)
70
+ expected.set(boundary.id, "boundary");
71
+ for (const flow of document.flows)
72
+ expected.set(flow.id, "flow");
73
+ for (const decision of document.decisions.decisions)
74
+ expected.set(decision.id, "decision");
75
+ for (const reference of document.decisions.references)
76
+ expected.set(reference.id, "reference");
77
+ return expected;
78
+ }
79
+ function readRegistry(document, diagnostics) {
80
+ const registry = new Map();
81
+ const entries = document.globalIdentityRegistry.entries;
82
+ for (let index = 0; index < entries.length; index += 1) {
83
+ const entry = entries[index];
84
+ const path = `globalIdentityRegistry.entries[${index}]`;
85
+ if (!REGISTRY_NAMESPACES.includes(entry.namespace)) {
86
+ diagnostics.add("identity-registry-mismatch", path, `identity registry entry has unsupported namespace: ${String(entry.namespace)}`);
87
+ continue;
88
+ }
89
+ if (registry.has(entry.id)) {
90
+ diagnostics.add("duplicate-identity-registry-entry", path, `identity registry contains duplicate id: ${entry.id}`);
91
+ continue;
92
+ }
93
+ registry.set(entry.id, entry.namespace);
94
+ }
95
+ const expected = expectedRegistry(document);
96
+ for (const [id, namespace] of expected) {
97
+ if (registry.get(id) !== namespace) {
98
+ diagnostics.add("identity-registry-mismatch", "globalIdentityRegistry.entries", `identity registry does not contain ${namespace} identity: ${id}`);
99
+ }
100
+ }
101
+ for (const [id, namespace] of registry) {
102
+ if (expected.get(id) !== namespace) {
103
+ diagnostics.add("identity-registry-mismatch", "globalIdentityRegistry.entries", `identity registry contains an identity not owned by its section: ${id}`);
104
+ }
105
+ }
106
+ return registry;
107
+ }
108
+ function createIndex(document, registry) {
109
+ return {
110
+ registry,
111
+ architectureIds: new Set([document.root.id]),
112
+ elementIds: setOf(document.elements, (element) => element.id),
113
+ interfaceIds: setOf(document.interfaces, (contract) => contract.id),
114
+ responsibilityIds: setOf(document.responsibilities.responsibilities, (responsibility) => responsibility.id),
115
+ boundaryIds: setOf(document.boundaries, (boundary) => boundary.id),
116
+ flowIds: setOf(document.flows, (flow) => flow.id),
117
+ decisionIds: setOf(document.decisions.decisions, (decision) => decision.id),
118
+ referenceIds: setOf(document.decisions.references, (reference) => reference.id),
119
+ runtimeEnvironmentIds: setOf(document.deployment.runtimeEnvironments, (environment) => environment.id),
120
+ deploymentNodeIds: setOf(document.deployment.deploymentNodes, (node) => node.id),
121
+ deploymentInstanceIds: setOf(document.deployment.deploymentInstances, (instance) => instance.id),
122
+ infrastructureReferenceIds: setOf(document.deployment.infrastructureReferences, (reference) => reference.id),
123
+ // RelationshipRecord has no identity field. References are therefore only
124
+ // resolvable for explicitly identity-bearing records supplied at runtime;
125
+ // the canonical relationship shape otherwise fails closed.
126
+ relationshipIds: new Set(document.relationships.flatMap((relationship) => {
127
+ const candidate = relationship;
128
+ return typeof candidate.id === "string" ? [candidate.id] : [];
129
+ })),
130
+ };
131
+ }
132
+ function sectionIds(index, namespace) {
133
+ switch (namespace) {
134
+ case "architecture":
135
+ return index.architectureIds;
136
+ case "element":
137
+ return index.elementIds;
138
+ case "interface":
139
+ return index.interfaceIds;
140
+ case "responsibility":
141
+ return index.responsibilityIds;
142
+ case "boundary":
143
+ return index.boundaryIds;
144
+ case "flow":
145
+ return index.flowIds;
146
+ case "decision":
147
+ return index.decisionIds;
148
+ case "reference":
149
+ return index.referenceIds;
150
+ }
151
+ }
152
+ function hasIdentity(index, namespace, id) {
153
+ return index.registry.get(id) === namespace && sectionIds(index, namespace).has(id);
154
+ }
155
+ function validateIdentityReference(index, diagnostics, path, id, namespace, code, label) {
156
+ const registeredNamespace = index.registry.get(id);
157
+ if (registeredNamespace === undefined) {
158
+ diagnostics.add(code, path, `${label} references unknown ${namespace}: ${id}`);
159
+ return false;
160
+ }
161
+ if (registeredNamespace !== namespace) {
162
+ diagnostics.add("invalid-reference-kind", path, `${label} references ${id} as ${namespace}, but it is ${registeredNamespace}`);
163
+ return false;
164
+ }
165
+ if (!sectionIds(index, namespace).has(id)) {
166
+ diagnostics.add(code, path, `${label} references an identity missing from its section: ${id}`);
167
+ return false;
168
+ }
169
+ return true;
170
+ }
171
+ function validateTargetIdentity(index, diagnostics, path, id, label, code) {
172
+ const namespace = index.registry.get(id);
173
+ if (namespace === undefined || !TARGET_NAMESPACES.includes(namespace)) {
174
+ diagnostics.add(code, path, `${label} references an ineligible or unknown Canon identity: ${id}`);
175
+ return false;
176
+ }
177
+ if (!hasIdentity(index, namespace, id)) {
178
+ diagnostics.add(code, path, `${label} references an identity missing from its section: ${id}`);
179
+ return false;
180
+ }
181
+ return true;
182
+ }
183
+ function validateContainment(document, index, diagnostics) {
184
+ for (let indexInSection = 0; indexInSection < document.elements.length; indexInSection += 1) {
185
+ const element = document.elements[indexInSection];
186
+ if (element.parentId !== undefined) {
187
+ validateIdentityReference(index, diagnostics, `elements[${indexInSection}].parentId`, element.parentId, "element", "invalid-containment-reference", "element parent");
188
+ }
189
+ }
190
+ }
191
+ function validateRelationships(document, index, diagnostics) {
192
+ for (let indexInSection = 0; indexInSection < document.interfaces.length; indexInSection += 1) {
193
+ const contract = document.interfaces[indexInSection];
194
+ validateIdentityReference(index, diagnostics, `interfaces[${indexInSection}].owner`, contract.owner, "element", "invalid-interface-owner", "interface owner");
195
+ }
196
+ for (let indexInSection = 0; indexInSection < document.relationships.length; indexInSection += 1) {
197
+ const relationship = document.relationships[indexInSection];
198
+ validateIdentityReference(index, diagnostics, `relationships[${indexInSection}].source`, relationship.source, "element", "invalid-relationship-endpoint", "relationship source");
199
+ validateIdentityReference(index, diagnostics, `relationships[${indexInSection}].target`, relationship.target, "element", "invalid-relationship-endpoint", "relationship target");
200
+ if (relationship.interfaceId !== undefined) {
201
+ const knownInterface = validateIdentityReference(index, diagnostics, `relationships[${indexInSection}].interfaceId`, relationship.interfaceId, "interface", "invalid-relationship-interface", "relationship interface");
202
+ const contract = document.interfaces.find((candidate) => candidate.id === relationship.interfaceId);
203
+ if (knownInterface &&
204
+ contract !== undefined &&
205
+ contract.owner !== relationship.source &&
206
+ contract.owner !== relationship.target) {
207
+ diagnostics.add("invalid-interface-owner", `relationships[${indexInSection}].interfaceId`, `relationship interface owner is not an endpoint: ${relationship.interfaceId}`);
208
+ }
209
+ }
210
+ }
211
+ }
212
+ function validateResponsibilities(document, index, diagnostics) {
213
+ for (let indexInSection = 0; indexInSection < document.responsibilities.responsibilities.length; indexInSection += 1) {
214
+ const responsibility = document.responsibilities.responsibilities[indexInSection];
215
+ const path = `responsibilities.responsibilities[${indexInSection}].target.id`;
216
+ if (responsibility.target.kind === "architecture") {
217
+ validateIdentityReference(index, diagnostics, path, responsibility.target.id, "architecture", "invalid-responsibility-target", "responsibility target");
218
+ }
219
+ else {
220
+ validateIdentityReference(index, diagnostics, path, responsibility.target.id, "element", "invalid-responsibility-target", "responsibility target");
221
+ }
222
+ }
223
+ }
224
+ function validateBoundaries(document, index, diagnostics) {
225
+ for (let boundaryIndex = 0; boundaryIndex < document.boundaries.length; boundaryIndex += 1) {
226
+ const boundary = document.boundaries[boundaryIndex];
227
+ for (let memberIndex = 0; memberIndex < boundary.memberIds.length; memberIndex += 1) {
228
+ validateIdentityReference(index, diagnostics, `boundaries[${boundaryIndex}].memberIds[${memberIndex}]`, boundary.memberIds[memberIndex], "element", "invalid-boundary-member", "boundary member");
229
+ }
230
+ }
231
+ }
232
+ function validateAuthorityAndConstraints(document, index, diagnostics) {
233
+ for (let factIndex = 0; factIndex < document.authority.authority.length; factIndex += 1) {
234
+ const fact = document.authority.authority[factIndex];
235
+ validateIdentityReference(index, diagnostics, `authority.authority[${factIndex}].concern`, fact.concern, "element", "invalid-authority-target", "authority concern");
236
+ validateIdentityReference(index, diagnostics, `authority.authority[${factIndex}].owner`, fact.owner, "element", "invalid-authority-target", "authority owner");
237
+ }
238
+ for (let factIndex = 0; factIndex < document.authority.ownership.length; factIndex += 1) {
239
+ const fact = document.authority.ownership[factIndex];
240
+ validateIdentityReference(index, diagnostics, `authority.ownership[${factIndex}].resource`, fact.resource, "element", "invalid-authority-target", "ownership resource");
241
+ validateIdentityReference(index, diagnostics, `authority.ownership[${factIndex}].owner`, fact.owner, "element", "invalid-authority-target", "ownership owner");
242
+ }
243
+ for (let constraintIndex = 0; constraintIndex < document.constraints.length; constraintIndex += 1) {
244
+ const constraint = document.constraints[constraintIndex];
245
+ const path = `constraints[${constraintIndex}]`;
246
+ if (constraint.kind === "single-authority") {
247
+ validateIdentityReference(index, diagnostics, `${path}.concern`, constraint.concern, "element", "invalid-constraint-target", "constraint concern");
248
+ }
249
+ else {
250
+ validateIdentityReference(index, diagnostics, `${path}.source`, constraint.source, "element", "invalid-constraint-target", "constraint source");
251
+ validateIdentityReference(index, diagnostics, `${path}.target`, constraint.target, "element", "invalid-constraint-target", "constraint target");
252
+ if (constraint.kind === "must-go-through") {
253
+ validateIdentityReference(index, diagnostics, `${path}.through`, constraint.through, "element", "invalid-constraint-target", "constraint through target");
254
+ }
255
+ }
256
+ }
257
+ }
258
+ function validateFlows(document, index, diagnostics) {
259
+ for (let flowIndex = 0; flowIndex < document.flows.length; flowIndex += 1) {
260
+ const flow = document.flows[flowIndex];
261
+ for (let stepIndex = 0; stepIndex < flow.steps.length; stepIndex += 1) {
262
+ const step = flow.steps[stepIndex];
263
+ if (step.relationshipId !== undefined && !index.relationshipIds.has(step.relationshipId)) {
264
+ diagnostics.add("invalid-flow-reference", `flows[${flowIndex}].steps[${stepIndex}].relationshipId`, `flow step references an unknown relationship: ${step.relationshipId}`);
265
+ }
266
+ if (step.interfaceId !== undefined) {
267
+ validateIdentityReference(index, diagnostics, `flows[${flowIndex}].steps[${stepIndex}].interfaceId`, step.interfaceId, "interface", "invalid-flow-reference", "flow step");
268
+ }
269
+ }
270
+ }
271
+ }
272
+ function validateDeployment(document, index, diagnostics) {
273
+ for (let nodeIndex = 0; nodeIndex < document.deployment.deploymentNodes.length; nodeIndex += 1) {
274
+ const node = document.deployment.deploymentNodes[nodeIndex];
275
+ if (!index.runtimeEnvironmentIds.has(node.environmentId)) {
276
+ diagnostics.add("invalid-deployment-reference", `deployment.deploymentNodes[${nodeIndex}].environmentId`, `deployment node references an unknown runtime environment: ${node.environmentId}`);
277
+ }
278
+ }
279
+ for (let instanceIndex = 0; instanceIndex < document.deployment.deploymentInstances.length; instanceIndex += 1) {
280
+ const instance = document.deployment.deploymentInstances[instanceIndex];
281
+ if (!index.deploymentNodeIds.has(instance.nodeId)) {
282
+ diagnostics.add("invalid-deployment-reference", `deployment.deploymentInstances[${instanceIndex}].nodeId`, `deployment instance references an unknown deployment node: ${instance.nodeId}`);
283
+ }
284
+ }
285
+ for (let mappingIndex = 0; mappingIndex < document.deployment.mappings.length; mappingIndex += 1) {
286
+ const mapping = document.deployment.mappings[mappingIndex];
287
+ validateIdentityReference(index, diagnostics, `deployment.mappings[${mappingIndex}].softwareElementId`, mapping.softwareElementId, "element", "invalid-deployment-reference", "deployment mapping");
288
+ if (!index.deploymentInstanceIds.has(mapping.deploymentInstanceId)) {
289
+ diagnostics.add("invalid-deployment-reference", `deployment.mappings[${mappingIndex}].deploymentInstanceId`, `deployment mapping references an unknown deployment instance: ${mapping.deploymentInstanceId}`);
290
+ }
291
+ }
292
+ }
293
+ function validateRepositoryMappings(document, index, diagnostics) {
294
+ for (let mappingIndex = 0; mappingIndex < document.repositoryMappings.length; mappingIndex += 1) {
295
+ const mapping = document.repositoryMappings[mappingIndex];
296
+ validateTargetIdentity(index, diagnostics, `repositoryMappings[${mappingIndex}].canonId`, mapping.canonId, "repository mapping", "invalid-repository-mapping");
297
+ }
298
+ }
299
+ function validateDecisions(document, index, diagnostics) {
300
+ for (let decisionIndex = 0; decisionIndex < document.decisions.decisions.length; decisionIndex += 1) {
301
+ const decision = document.decisions.decisions[decisionIndex];
302
+ for (let targetIndex = 0; targetIndex < decision.targetIds.length; targetIndex += 1) {
303
+ validateTargetIdentity(index, diagnostics, `decisions.decisions[${decisionIndex}].targetIds[${targetIndex}]`, decision.targetIds[targetIndex], "decision target", "invalid-decision-target");
304
+ }
305
+ for (let referenceIndex = 0; referenceIndex < decision.referenceIds.length; referenceIndex += 1) {
306
+ validateIdentityReference(index, diagnostics, `decisions.decisions[${decisionIndex}].referenceIds[${referenceIndex}]`, decision.referenceIds[referenceIndex], "reference", "invalid-decision-reference", "decision");
307
+ }
308
+ for (let supersededIndex = 0; supersededIndex < decision.supersedes.length; supersededIndex += 1) {
309
+ validateIdentityReference(index, diagnostics, `decisions.decisions[${decisionIndex}].supersedes[${supersededIndex}]`, decision.supersedes[supersededIndex], "decision", "invalid-supersession", "decision supersession");
310
+ }
311
+ }
312
+ for (let attachmentIndex = 0; attachmentIndex < document.decisions.referenceAttachments.length; attachmentIndex += 1) {
313
+ const attachment = document.decisions.referenceAttachments[attachmentIndex];
314
+ if (attachment.targetId !== document.documentId) {
315
+ validateTargetIdentity(index, diagnostics, `decisions.referenceAttachments[${attachmentIndex}].targetId`, attachment.targetId, "reference attachment target", "invalid-decision-target");
316
+ }
317
+ for (let referenceIndex = 0; referenceIndex < attachment.referenceIds.length; referenceIndex += 1) {
318
+ validateIdentityReference(index, diagnostics, `decisions.referenceAttachments[${attachmentIndex}].referenceIds[${referenceIndex}]`, attachment.referenceIds[referenceIndex], "reference", "invalid-decision-reference", "reference attachment");
319
+ }
320
+ }
321
+ }
322
+ function validateViewReference(index, diagnostics, path, kind, id) {
323
+ switch (kind) {
324
+ case "element":
325
+ validateIdentityReference(index, diagnostics, path, id, "element", "invalid-view-reference", "view");
326
+ return;
327
+ case "flow":
328
+ validateIdentityReference(index, diagnostics, path, id, "flow", "invalid-view-reference", "view");
329
+ return;
330
+ case "relationship":
331
+ if (!index.relationshipIds.has(id)) {
332
+ diagnostics.add("invalid-view-reference", path, `view references an unknown relationship: ${id}`);
333
+ }
334
+ return;
335
+ case "runtime-environment":
336
+ if (!index.runtimeEnvironmentIds.has(id)) {
337
+ diagnostics.add("invalid-view-reference", path, `view references an unknown runtime environment: ${id}`);
338
+ }
339
+ return;
340
+ case "deployment-node":
341
+ if (!index.deploymentNodeIds.has(id)) {
342
+ diagnostics.add("invalid-view-reference", path, `view references an unknown deployment node: ${id}`);
343
+ }
344
+ return;
345
+ case "deployment-instance":
346
+ if (!index.deploymentInstanceIds.has(id)) {
347
+ diagnostics.add("invalid-view-reference", path, `view references an unknown deployment instance: ${id}`);
348
+ }
349
+ return;
350
+ case "infrastructure-reference":
351
+ if (!index.infrastructureReferenceIds.has(id)) {
352
+ diagnostics.add("invalid-view-reference", path, `view references an unknown infrastructure reference: ${id}`);
353
+ }
354
+ return;
355
+ default:
356
+ diagnostics.add("invalid-view-reference", path, `view references an unsupported kind: ${kind}`);
357
+ }
358
+ }
359
+ function validateViews(document, index, diagnostics) {
360
+ for (let viewIndex = 0; viewIndex < document.views.length; viewIndex += 1) {
361
+ const view = document.views[viewIndex];
362
+ for (let referenceIndex = 0; referenceIndex < view.scope.include.length; referenceIndex += 1) {
363
+ const reference = view.scope.include[referenceIndex];
364
+ validateViewReference(index, diagnostics, `views[${viewIndex}].scope.include[${referenceIndex}]`, reference.kind, reference.id);
365
+ }
366
+ for (let referenceIndex = 0; referenceIndex < view.scope.exclude.length; referenceIndex += 1) {
367
+ const reference = view.scope.exclude[referenceIndex];
368
+ validateViewReference(index, diagnostics, `views[${viewIndex}].scope.exclude[${referenceIndex}]`, reference.kind, reference.id);
369
+ }
370
+ }
371
+ }
372
+ /** Validate complete-document Canon semantics without mutating the document. */
373
+ export function validateArchitectureDocument(document) {
374
+ const diagnostics = new DiagnosticCollector();
375
+ const registry = readRegistry(document, diagnostics);
376
+ const index = createIndex(document, registry);
377
+ validateContainment(document, index, diagnostics);
378
+ validateRelationships(document, index, diagnostics);
379
+ validateResponsibilities(document, index, diagnostics);
380
+ validateBoundaries(document, index, diagnostics);
381
+ validateAuthorityAndConstraints(document, index, diagnostics);
382
+ validateFlows(document, index, diagnostics);
383
+ validateDeployment(document, index, diagnostics);
384
+ validateRepositoryMappings(document, index, diagnostics);
385
+ validateDecisions(document, index, diagnostics);
386
+ validateViews(document, index, diagnostics);
387
+ return diagnostics.finish();
388
+ }
389
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/architecture/canon/validate.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,UAAU;IACV,WAAW;CAC0C,CAAC;AAExD,MAAM,iBAAiB,GAAG;IACxB,cAAc;IACd,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,UAAU;CAC2C,CAAC;AAExD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,4BAA4B;IAC5B,mCAAmC;IACnC,mBAAmB;IACnB,wBAAwB;IACxB,+BAA+B;IAC/B,yBAAyB;IACzB,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,8BAA8B;IAC9B,4BAA4B;IAC5B,yBAAyB;IACzB,4BAA4B;IAC5B,sBAAsB;IACtB,wBAAwB;CAChB,CAAC;AAkCX,MAAM,mBAAmB;IACN,MAAM,GAA6B,EAAE,CAAC;IACtC,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,GAAG,CAAC,IAAgC,EAAE,IAAY,EAAE,OAAe;QACjE,MAAM,GAAG,GAAG,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAED,SAAS,KAAK,CAAI,MAAoB,EAAE,IAA0B;IAChE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgC;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC5D,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC/C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ;QAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU;QAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,KAAK,MAAM,cAAc,IAAI,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QACxE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU;QAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAClF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3F,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,UAAU;QAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgC,EAAE,WAAgC;IACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC;IAExD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAwB,CAAC;QACpD,MAAM,IAAI,GAAG,kCAAkC,KAAK,GAAG,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAoC,CAAC,EAAE,CAAC;YAC9E,WAAW,CAAC,GAAG,CACb,4BAA4B,EAC5B,IAAI,EACJ,sDAAsD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAChF,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,WAAW,CAAC,GAAG,CACb,mCAAmC,EACnC,IAAI,EACJ,4CAA4C,KAAK,CAAC,EAAE,EAAE,CACvD,CAAC;YACF,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CACb,4BAA4B,EAC5B,gCAAgC,EAChC,sCAAsC,SAAS,cAAc,EAAE,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CACb,4BAA4B,EAC5B,gCAAgC,EAChC,oEAAoE,EAAE,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgC,EAAE,QAAqC;IAC1F,OAAO;QACL,QAAQ;QACR,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3G,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/E,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;QACtG,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChG,0BAA0B,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5G,0EAA0E;QAC1E,0EAA0E;QAC1E,2DAA2D;QAC3D,eAAe,EAAE,IAAI,GAAG,CACtB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,YAAoD,CAAC;YACvE,OAAO,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,CAAC,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB,EAAE,SAAkC;IACvE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC,eAAe,CAAC;QAC/B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,YAAY,CAAC;QAC5B,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAC,iBAAiB,CAAC;QACjC,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,WAAW,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,WAAW,CAAC;QAC3B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,YAAY,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB,EAAE,SAAkC,EAAE,EAAU;IACpF,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAiB,EACjB,WAAgC,EAChC,IAAY,EACZ,EAAU,EACV,SAAkC,EAClC,IAAgC,EAChC,KAAa;IAEb,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,uBAAuB,SAAS,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,WAAW,CAAC,GAAG,CACb,wBAAwB,EACxB,IAAI,EACJ,GAAG,KAAK,eAAe,EAAE,OAAO,SAAS,eAAe,mBAAmB,EAAE,CAC9E,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1C,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,qDAAqD,EAAE,EAAE,CAAC,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAiB,EACjB,WAAgC,EAChC,IAAY,EACZ,EAAU,EACV,KAAa,EACb,IAAgC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAiC,CAAC,EAAE,CAAC;QAC9F,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,wDAAwD,EAAE,EAAE,CAAC,CAAC;QAClG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAiC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/D,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,qDAAqD,EAAE,EAAE,CAAC,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;QAC5F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,YAAY,cAAc,YAAY,EACtC,OAAO,CAAC,QAAQ,EAChB,SAAS,EACT,+BAA+B,EAC/B,gBAAgB,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACrD,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,cAAc,cAAc,SAAS,EACrC,QAAQ,CAAC,KAAK,EACd,SAAS,EACT,yBAAyB,EACzB,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;QACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC5D,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,iBAAiB,cAAc,UAAU,EACzC,YAAY,CAAC,MAAM,EACnB,SAAS,EACT,+BAA+B,EAC/B,qBAAqB,CACtB,CAAC;QACF,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,iBAAiB,cAAc,UAAU,EACzC,YAAY,CAAC,MAAM,EACnB,SAAS,EACT,+BAA+B,EAC/B,qBAAqB,CACtB,CAAC;QAEF,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,yBAAyB,CAC9C,KAAK,EACL,WAAW,EACX,iBAAiB,cAAc,eAAe,EAC9C,YAAY,CAAC,WAAW,EACxB,WAAW,EACX,gCAAgC,EAChC,wBAAwB,CACzB,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC;YACpG,IACE,cAAc;gBACd,QAAQ,KAAK,SAAS;gBACtB,QAAQ,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM;gBACtC,QAAQ,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EACtC,CAAC;gBACD,WAAW,CAAC,GAAG,CACb,yBAAyB,EACzB,iBAAiB,cAAc,eAAe,EAC9C,oDAAoD,YAAY,CAAC,WAAW,EAAE,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KACE,IAAI,cAAc,GAAG,CAAC,EACtB,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,EAClE,cAAc,IAAI,CAAC,EACnB,CAAC;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,qCAAqC,cAAc,aAAa,CAAC;QAC9E,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClD,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,cAAc,CAAC,MAAM,CAAC,EAAE,EACxB,cAAc,EACd,+BAA+B,EAC/B,uBAAuB,CACxB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,cAAc,CAAC,MAAM,CAAC,EAAE,EACxB,SAAS,EACT,+BAA+B,EAC/B,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,EAAE,CAAC;QAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpD,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;YACpF,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,cAAc,aAAa,eAAe,WAAW,GAAG,EACxD,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAC/B,SAAS,EACT,yBAAyB,EACzB,iBAAiB,CAClB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,SAAS,WAAW,EAC3C,IAAI,CAAC,OAAO,EACZ,SAAS,EACT,0BAA0B,EAC1B,mBAAmB,CACpB,CAAC;QACF,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,SAAS,SAAS,EACzC,IAAI,CAAC,KAAK,EACV,SAAS,EACT,0BAA0B,EAC1B,iBAAiB,CAClB,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,SAAS,YAAY,EAC5C,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,0BAA0B,EAC1B,oBAAoB,CACrB,CAAC;QACF,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,SAAS,SAAS,EACzC,IAAI,CAAC,KAAK,EACV,SAAS,EACT,0BAA0B,EAC1B,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,EAAE,CAAC;QAClG,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,eAAe,eAAe,GAAG,CAAC;QAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC3C,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,GAAG,IAAI,UAAU,EACjB,UAAU,CAAC,OAAO,EAClB,SAAS,EACT,2BAA2B,EAC3B,oBAAoB,CACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,GAAG,IAAI,SAAS,EAChB,UAAU,CAAC,MAAM,EACjB,SAAS,EACT,2BAA2B,EAC3B,mBAAmB,CACpB,CAAC;YACF,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,GAAG,IAAI,SAAS,EAChB,UAAU,CAAC,MAAM,EACjB,SAAS,EACT,2BAA2B,EAC3B,mBAAmB,CACpB,CAAC;YACF,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC1C,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,GAAG,IAAI,UAAU,EACjB,UAAU,CAAC,OAAO,EAClB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgC,EAAE,KAAiB,EAAE,WAAgC;IAC1G,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzF,WAAW,CAAC,GAAG,CACb,wBAAwB,EACxB,SAAS,SAAS,WAAW,SAAS,kBAAkB,EACxD,iDAAiD,IAAI,CAAC,cAAc,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,SAAS,SAAS,WAAW,SAAS,eAAe,EACrD,IAAI,CAAC,WAAW,EAChB,WAAW,EACX,wBAAwB,EACxB,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,WAAW,CAAC,GAAG,CACb,8BAA8B,EAC9B,8BAA8B,SAAS,iBAAiB,EACxD,8DAA8D,IAAI,CAAC,aAAa,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,EAAE,CAAC;QAC/G,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,WAAW,CAAC,GAAG,CACb,8BAA8B,EAC9B,kCAAkC,aAAa,UAAU,EACzD,8DAA8D,QAAQ,CAAC,MAAM,EAAE,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC;QACjG,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3D,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,YAAY,qBAAqB,EACxD,OAAO,CAAC,iBAAiB,EACzB,SAAS,EACT,8BAA8B,EAC9B,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACnE,WAAW,CAAC,GAAG,CACb,8BAA8B,EAC9B,uBAAuB,YAAY,wBAAwB,EAC3D,iEAAiE,OAAO,CAAC,oBAAoB,EAAE,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC;QAChG,MAAM,OAAO,GAAG,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC1D,sBAAsB,CACpB,KAAK,EACL,WAAW,EACX,sBAAsB,YAAY,WAAW,EAC7C,OAAO,CAAC,OAAO,EACf,oBAAoB,EACpB,4BAA4B,CAC7B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAgC,EAChC,KAAiB,EACjB,WAAgC;IAEhC,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,EAAE,CAAC;QACpG,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7D,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;YACpF,sBAAsB,CACpB,KAAK,EACL,WAAW,EACX,uBAAuB,aAAa,eAAe,WAAW,GAAG,EACjE,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAC/B,iBAAiB,EACjB,yBAAyB,CAC1B,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YAChG,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,aAAa,kBAAkB,cAAc,GAAG,EACvE,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,EACrC,WAAW,EACX,4BAA4B,EAC5B,UAAU,CACX,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,EAAE,CAAC;YACjG,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,uBAAuB,aAAa,gBAAgB,eAAe,GAAG,EACtE,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EACpC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KACE,IAAI,eAAe,GAAG,CAAC,EACvB,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAChE,eAAe,IAAI,CAAC,EACpB,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;YAChD,sBAAsB,CACpB,KAAK,EACL,WAAW,EACX,kCAAkC,eAAe,YAAY,EAC7D,UAAU,CAAC,QAAQ,EACnB,6BAA6B,EAC7B,yBAAyB,CAC1B,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YAClG,yBAAyB,CACvB,KAAK,EACL,WAAW,EACX,kCAAkC,eAAe,kBAAkB,cAAc,GAAG,EACpF,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,EACvC,WAAW,EACX,4BAA4B,EAC5B,sBAAsB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAiB,EACjB,WAAgC,EAChC,IAAY,EACZ,IAAY,EACZ,EAAU;IAEV,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;YACrG,OAAO;QACT,KAAK,MAAM;YACT,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAClG,OAAO;QACT,KAAK,cAAc;YACjB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,4CAA4C,EAAE,EAAE,CAAC,CAAC;YACpG,CAAC;YACD,OAAO;QACT,KAAK,qBAAqB;YACxB,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,mDAAmD,EAAE,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO;QACT,KAAK,iBAAiB;YACpB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,+CAA+C,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,OAAO;QACT,KAAK,qBAAqB;YACxB,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,mDAAmD,EAAE,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO;QACT,KAAK,0BAA0B;YAC7B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9C,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,wDAAwD,EAAE,EAAE,CAAC,CAAC;YAChH,CAAC;YACD,OAAO;QACT;YACE,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,wCAAwC,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgC,EAAE,KAAiB,EAAE,WAAgC;IAC1G,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,qBAAqB,CACnB,KAAK,EACL,WAAW,EACX,SAAS,SAAS,mBAAmB,cAAc,GAAG,EACtD,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,qBAAqB,CACnB,KAAK,EACL,WAAW,EACX,SAAS,SAAS,mBAAmB,cAAc,GAAG,EACtD,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAAC,QAAgC;IAC3E,MAAM,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9C,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAClD,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpD,wBAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACjD,+BAA+B,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9D,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5C,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACjD,0BAA0B,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzD,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAE5C,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { type ObjectId } from "./identity.js";
2
+ import type { DeploymentInstanceId, DeploymentNodeId, InfrastructureReferenceId, RuntimeEnvironmentId } from "./deployment.js";
3
+ import type { FlowId } from "./flows.js";
4
+ declare const viewIdentityBrand: unique symbol;
5
+ /** A projection identity, deliberately separate from canonical object IDs. */
6
+ export type ViewId = string & {
7
+ readonly [viewIdentityBrand]: never;
8
+ };
9
+ export type ViewKey = ViewId;
10
+ export declare const VIEW_KINDS: readonly ["structural", "dynamic", "deployment"];
11
+ export type ViewKind = (typeof VIEW_KINDS)[number];
12
+ export declare const VIEW_REFERENCE_KINDS: readonly ["element", "relationship", "flow", "runtime-environment", "deployment-node", "deployment-instance", "infrastructure-reference"];
13
+ export type ViewReferenceKind = (typeof VIEW_REFERENCE_KINDS)[number];
14
+ export interface ViewReferenceInput {
15
+ readonly kind: ViewReferenceKind;
16
+ /** An opaque Canon identity; complete-document validation resolves it. */
17
+ readonly id: string;
18
+ }
19
+ export type ViewReference = {
20
+ readonly kind: "element";
21
+ readonly id: ObjectId;
22
+ } | {
23
+ readonly kind: "relationship";
24
+ readonly id: string;
25
+ } | {
26
+ readonly kind: "flow";
27
+ readonly id: FlowId;
28
+ } | {
29
+ readonly kind: "runtime-environment";
30
+ readonly id: RuntimeEnvironmentId;
31
+ } | {
32
+ readonly kind: "deployment-node";
33
+ readonly id: DeploymentNodeId;
34
+ } | {
35
+ readonly kind: "deployment-instance";
36
+ readonly id: DeploymentInstanceId;
37
+ } | {
38
+ readonly kind: "infrastructure-reference";
39
+ readonly id: InfrastructureReferenceId;
40
+ };
41
+ export interface ViewScopeInput {
42
+ readonly include?: readonly ViewReferenceInput[];
43
+ readonly exclude?: readonly ViewReferenceInput[];
44
+ }
45
+ export interface ViewScope {
46
+ readonly include: readonly ViewReference[];
47
+ readonly exclude: readonly ViewReference[];
48
+ }
49
+ /** Renderer-neutral hints. They never participate in Canon identity or scope. */
50
+ export interface ViewPresentationHintsInput {
51
+ readonly layout?: string;
52
+ readonly direction?: string;
53
+ readonly grouping?: string;
54
+ }
55
+ export interface ViewPresentationHints {
56
+ readonly layout?: string;
57
+ readonly direction?: string;
58
+ readonly grouping?: string;
59
+ }
60
+ export interface ViewInput {
61
+ readonly key: string;
62
+ readonly kind: ViewKind;
63
+ readonly scope: ViewScopeInput;
64
+ readonly order?: number;
65
+ readonly title?: string;
66
+ readonly presentation?: ViewPresentationHintsInput;
67
+ }
68
+ export interface ViewSpec {
69
+ readonly key: ViewKey;
70
+ readonly kind: ViewKind;
71
+ readonly scope: ViewScope;
72
+ readonly order?: number;
73
+ readonly title?: string;
74
+ readonly presentation?: ViewPresentationHints;
75
+ }
76
+ export interface StructuralViewInput extends ViewInput {
77
+ readonly kind: "structural";
78
+ }
79
+ export interface StructuralView extends ViewSpec {
80
+ readonly kind: "structural";
81
+ }
82
+ export interface DynamicViewInput extends ViewInput {
83
+ readonly kind: "dynamic";
84
+ }
85
+ export interface DynamicView extends ViewSpec {
86
+ readonly kind: "dynamic";
87
+ }
88
+ export interface DeploymentViewInput extends ViewInput {
89
+ readonly kind: "deployment";
90
+ }
91
+ export interface DeploymentView extends ViewSpec {
92
+ readonly kind: "deployment";
93
+ }
94
+ export declare function createView(input: ViewInput): ViewSpec;
95
+ export declare function createStructuralView(input: StructuralViewInput): StructuralView;
96
+ export declare function createDynamicView(input: DynamicViewInput): DynamicView;
97
+ export declare function createDeploymentView(input: DeploymentViewInput): DeploymentView;
98
+ /** Normalize view identity order without resolving references into architecture facts. */
99
+ export declare function normalizeViews(inputs: readonly ViewInput[]): readonly ViewSpec[];
100
+ export declare const createViews: typeof normalizeViews;
101
+ export {};