@graph-ir/core 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/generation/id-generator.d.ts +81 -0
- package/dist/generation/id-generator.d.ts.map +1 -0
- package/dist/generation/id-generator.js +193 -0
- package/dist/generation/id-generator.js.map +1 -0
- package/dist/generation/index.d.ts +7 -0
- package/dist/generation/index.d.ts.map +1 -0
- package/dist/generation/index.js +7 -0
- package/dist/generation/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/output/ci.d.ts +36 -0
- package/dist/output/ci.d.ts.map +1 -0
- package/dist/output/ci.js +145 -0
- package/dist/output/ci.js.map +1 -0
- package/dist/output/index.d.ts +20 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +40 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/json.d.ts +24 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +49 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/pretty.d.ts +44 -0
- package/dist/output/pretty.d.ts.map +1 -0
- package/dist/output/pretty.js +227 -0
- package/dist/output/pretty.js.map +1 -0
- package/dist/output/types.d.ts +63 -0
- package/dist/output/types.d.ts.map +1 -0
- package/dist/output/types.js +5 -0
- package/dist/output/types.js.map +1 -0
- package/dist/schemas/graph-ir.schema.json +360 -0
- package/dist/skills/diff.d.ts +73 -0
- package/dist/skills/diff.d.ts.map +1 -0
- package/dist/skills/diff.js +315 -0
- package/dist/skills/diff.js.map +1 -0
- package/dist/skills/migrate.d.ts +40 -0
- package/dist/skills/migrate.d.ts.map +1 -0
- package/dist/skills/migrate.js +288 -0
- package/dist/skills/migrate.js.map +1 -0
- package/dist/skills/visualize.d.ts +30 -0
- package/dist/skills/visualize.d.ts.map +1 -0
- package/dist/skills/visualize.js +254 -0
- package/dist/skills/visualize.js.map +1 -0
- package/dist/symbols/index.d.ts +12 -0
- package/dist/symbols/index.d.ts.map +1 -0
- package/dist/symbols/index.js +12 -0
- package/dist/symbols/index.js.map +1 -0
- package/dist/symbols/notation-registry.d.ts +61 -0
- package/dist/symbols/notation-registry.d.ts.map +1 -0
- package/dist/symbols/notation-registry.js +114 -0
- package/dist/symbols/notation-registry.js.map +1 -0
- package/dist/symbols/symbol-registry.d.ts +58 -0
- package/dist/symbols/symbol-registry.d.ts.map +1 -0
- package/dist/symbols/symbol-registry.js +88 -0
- package/dist/symbols/symbol-registry.js.map +1 -0
- package/dist/symbols/types.d.ts +166 -0
- package/dist/symbols/types.d.ts.map +1 -0
- package/dist/symbols/types.js +13 -0
- package/dist/symbols/types.js.map +1 -0
- package/dist/testing/diff.d.ts +46 -0
- package/dist/testing/diff.d.ts.map +1 -0
- package/dist/testing/diff.js +400 -0
- package/dist/testing/diff.js.map +1 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/snapshot.d.ts +95 -0
- package/dist/testing/snapshot.d.ts.map +1 -0
- package/dist/testing/snapshot.js +172 -0
- package/dist/testing/snapshot.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +8 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/ir-validator.d.ts +51 -0
- package/dist/validation/ir-validator.d.ts.map +1 -0
- package/dist/validation/ir-validator.js +349 -0
- package/dist/validation/ir-validator.js.map +1 -0
- package/dist/validation/validator.d.ts +13 -0
- package/dist/validation/validator.d.ts.map +1 -0
- package/dist/validation/validator.js +19 -0
- package/dist/validation/validator.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/skills/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IR Visualize Skill
|
|
3
|
+
*
|
|
4
|
+
* Renders Graph-IR as ASCII diagrams for terminal viewing.
|
|
5
|
+
*/
|
|
6
|
+
import type { GraphIR } from '@graph-ir/core';
|
|
7
|
+
export interface VisualizationOptions {
|
|
8
|
+
/** Diagram style */
|
|
9
|
+
style?: 'box' | 'compact' | 'tree' | 'list';
|
|
10
|
+
/** Flow direction */
|
|
11
|
+
direction?: 'down' | 'right' | 'up' | 'left';
|
|
12
|
+
/** Maximum output width */
|
|
13
|
+
maxWidth?: number;
|
|
14
|
+
/** Show node types */
|
|
15
|
+
showTypes?: boolean;
|
|
16
|
+
/** Show edge labels */
|
|
17
|
+
showLabels?: boolean;
|
|
18
|
+
/** Node IDs to highlight */
|
|
19
|
+
highlight?: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface VisualizationResult {
|
|
22
|
+
success: boolean;
|
|
23
|
+
output: string;
|
|
24
|
+
errors: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Visualize Graph-IR as ASCII
|
|
28
|
+
*/
|
|
29
|
+
export declare function visualizeIR(ir: GraphIR, options?: VisualizationOptions): VisualizationResult;
|
|
30
|
+
//# sourceMappingURL=visualize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize.d.ts","sourceRoot":"","sources":["../../src/skills/visualize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IAC7C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,OAAO,EACX,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA8BrB"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IR Visualize Skill
|
|
3
|
+
*
|
|
4
|
+
* Renders Graph-IR as ASCII diagrams for terminal viewing.
|
|
5
|
+
*/
|
|
6
|
+
const DEFAULT_OPTIONS = {
|
|
7
|
+
style: 'box',
|
|
8
|
+
direction: 'down',
|
|
9
|
+
maxWidth: 120,
|
|
10
|
+
showTypes: false,
|
|
11
|
+
showLabels: true,
|
|
12
|
+
highlight: [],
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Visualize Graph-IR as ASCII
|
|
16
|
+
*/
|
|
17
|
+
export function visualizeIR(ir, options = {}) {
|
|
18
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
19
|
+
try {
|
|
20
|
+
let output;
|
|
21
|
+
switch (opts.style) {
|
|
22
|
+
case 'compact':
|
|
23
|
+
output = renderCompact(ir, opts);
|
|
24
|
+
break;
|
|
25
|
+
case 'tree':
|
|
26
|
+
output = renderTree(ir, opts);
|
|
27
|
+
break;
|
|
28
|
+
case 'list':
|
|
29
|
+
output = renderList(ir, opts);
|
|
30
|
+
break;
|
|
31
|
+
case 'box':
|
|
32
|
+
default:
|
|
33
|
+
output = renderBox(ir, opts);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
return { success: true, output, errors: [] };
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
output: '',
|
|
42
|
+
errors: [e instanceof Error ? e.message : 'Unknown error'],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Box style - nodes as ASCII boxes with connecting lines
|
|
48
|
+
*/
|
|
49
|
+
function renderBox(ir, opts) {
|
|
50
|
+
const lines = [];
|
|
51
|
+
const nodeMap = new Map(ir.nodes.map((n) => [n.id, n]));
|
|
52
|
+
const highlightSet = new Set(opts.highlight);
|
|
53
|
+
// Group edges by source
|
|
54
|
+
const outgoing = new Map();
|
|
55
|
+
for (const edge of ir.edges) {
|
|
56
|
+
const edges = outgoing.get(edge.source) || [];
|
|
57
|
+
edges.push(edge);
|
|
58
|
+
outgoing.set(edge.source, edges);
|
|
59
|
+
}
|
|
60
|
+
// Header
|
|
61
|
+
lines.push(`Graph: ${ir.name || ir.id}`);
|
|
62
|
+
lines.push('═'.repeat(Math.min(40, opts.maxWidth)));
|
|
63
|
+
lines.push('');
|
|
64
|
+
// Render each node
|
|
65
|
+
for (const node of ir.nodes) {
|
|
66
|
+
const isHighlighted = highlightSet.has(node.id);
|
|
67
|
+
renderNodeBox(node, lines, isHighlighted, opts);
|
|
68
|
+
// Render outgoing edges
|
|
69
|
+
const edges = outgoing.get(node.id) || [];
|
|
70
|
+
for (const edge of edges) {
|
|
71
|
+
const target = nodeMap.get(edge.target);
|
|
72
|
+
const targetLabel = target?.label || edge.target;
|
|
73
|
+
const edgeLabel = opts.showLabels && edge.label ? ` [${edge.label}]` : '';
|
|
74
|
+
lines.push(' │');
|
|
75
|
+
lines.push(` └──${edgeLabel}──► ${targetLabel}`);
|
|
76
|
+
}
|
|
77
|
+
lines.push('');
|
|
78
|
+
}
|
|
79
|
+
// Footer
|
|
80
|
+
lines.push('─'.repeat(Math.min(40, opts.maxWidth)));
|
|
81
|
+
lines.push(`Nodes: ${ir.nodes.length}, Edges: ${ir.edges.length}`);
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
84
|
+
function renderNodeBox(node, lines, highlighted, opts) {
|
|
85
|
+
const label = node.label || node.id;
|
|
86
|
+
const typeStr = opts.showTypes ? `(${node.type})` : '';
|
|
87
|
+
const content = typeStr ? `${label} ${typeStr}` : label;
|
|
88
|
+
const width = Math.min(content.length + 4, opts.maxWidth - 4);
|
|
89
|
+
const paddedContent = content.padEnd(width - 2).slice(0, width - 2);
|
|
90
|
+
if (highlighted) {
|
|
91
|
+
// Double-line box for highlighted nodes
|
|
92
|
+
lines.push('╔' + '═'.repeat(width) + '╗');
|
|
93
|
+
lines.push('║ ' + paddedContent + ' ║');
|
|
94
|
+
lines.push('╚' + '═'.repeat(width) + '╝');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
lines.push('┌' + '─'.repeat(width) + '┐');
|
|
98
|
+
lines.push('│ ' + paddedContent + ' │');
|
|
99
|
+
lines.push('└' + '─'.repeat(width) + '┘');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Compact style - inline representation
|
|
104
|
+
*/
|
|
105
|
+
function renderCompact(ir, opts) {
|
|
106
|
+
const lines = [];
|
|
107
|
+
const nodeMap = new Map(ir.nodes.map((n) => [n.id, n]));
|
|
108
|
+
// Build adjacency for tree-like rendering
|
|
109
|
+
const outgoing = new Map();
|
|
110
|
+
const hasIncoming = new Set();
|
|
111
|
+
for (const edge of ir.edges) {
|
|
112
|
+
const edges = outgoing.get(edge.source) || [];
|
|
113
|
+
edges.push(edge);
|
|
114
|
+
outgoing.set(edge.source, edges);
|
|
115
|
+
hasIncoming.add(edge.target);
|
|
116
|
+
}
|
|
117
|
+
// Find roots (nodes with no incoming edges)
|
|
118
|
+
const roots = ir.nodes.filter((n) => !hasIncoming.has(n.id));
|
|
119
|
+
function renderPath(nodeId, prefix, visited) {
|
|
120
|
+
if (visited.has(nodeId)) {
|
|
121
|
+
lines.push(`${prefix}(cycle: ${nodeId})`);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
visited.add(nodeId);
|
|
125
|
+
const node = nodeMap.get(nodeId);
|
|
126
|
+
const label = node?.label || nodeId;
|
|
127
|
+
const edges = outgoing.get(nodeId) || [];
|
|
128
|
+
if (edges.length === 0) {
|
|
129
|
+
lines.push(`${prefix}${label}`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
for (let i = 0; i < edges.length; i++) {
|
|
133
|
+
const edge = edges[i];
|
|
134
|
+
const edgeLabel = opts.showLabels && edge.label ? `─${edge.label}─` : '──';
|
|
135
|
+
const target = nodeMap.get(edge.target);
|
|
136
|
+
const targetLabel = target?.label || edge.target;
|
|
137
|
+
if (i === 0) {
|
|
138
|
+
lines.push(`${prefix}${label} ${edgeLabel}► ${targetLabel}`);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
const padding = ' '.repeat(prefix.length + label.length + 1);
|
|
142
|
+
lines.push(`${padding}├${edgeLabel}► ${targetLabel}`);
|
|
143
|
+
}
|
|
144
|
+
// Recurse for children of target
|
|
145
|
+
const targetEdges = outgoing.get(edge.target) || [];
|
|
146
|
+
if (targetEdges.length > 0 && !visited.has(edge.target)) {
|
|
147
|
+
const newPrefix = ' '.repeat(prefix.length + label.length + edgeLabel.length + 4);
|
|
148
|
+
for (const te of targetEdges) {
|
|
149
|
+
const tt = nodeMap.get(te.target);
|
|
150
|
+
const ttLabel = tt?.label || te.target;
|
|
151
|
+
const teLabel = opts.showLabels && te.label ? `─${te.label}─` : '──';
|
|
152
|
+
lines.push(`${newPrefix}└${teLabel}► ${ttLabel}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
for (const root of roots) {
|
|
159
|
+
renderPath(root.id, '', new Set());
|
|
160
|
+
}
|
|
161
|
+
// Handle orphans
|
|
162
|
+
const rendered = new Set(roots.map((r) => r.id));
|
|
163
|
+
for (const edge of ir.edges) {
|
|
164
|
+
rendered.add(edge.source);
|
|
165
|
+
rendered.add(edge.target);
|
|
166
|
+
}
|
|
167
|
+
const orphans = ir.nodes.filter((n) => !rendered.has(n.id) && !hasIncoming.has(n.id));
|
|
168
|
+
if (orphans.length > 0) {
|
|
169
|
+
lines.push('');
|
|
170
|
+
lines.push('(Disconnected):');
|
|
171
|
+
for (const orphan of orphans) {
|
|
172
|
+
lines.push(` ${orphan.label || orphan.id}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return lines.join('\n');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Tree style - hierarchical indentation
|
|
179
|
+
*/
|
|
180
|
+
function renderTree(ir, opts) {
|
|
181
|
+
const lines = [];
|
|
182
|
+
const nodeMap = new Map(ir.nodes.map((n) => [n.id, n]));
|
|
183
|
+
// Build adjacency
|
|
184
|
+
const children = new Map();
|
|
185
|
+
const hasParent = new Set();
|
|
186
|
+
for (const edge of ir.edges) {
|
|
187
|
+
const kids = children.get(edge.source) || [];
|
|
188
|
+
kids.push(edge.target);
|
|
189
|
+
children.set(edge.source, kids);
|
|
190
|
+
hasParent.add(edge.target);
|
|
191
|
+
}
|
|
192
|
+
// Find roots
|
|
193
|
+
const roots = ir.nodes.filter((n) => !hasParent.has(n.id));
|
|
194
|
+
function renderNode(nodeId, prefix, isLast, visited) {
|
|
195
|
+
if (visited.has(nodeId)) {
|
|
196
|
+
lines.push(`${prefix}${isLast ? '└── ' : '├── '}(cycle: ${nodeId})`);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
visited.add(nodeId);
|
|
200
|
+
const node = nodeMap.get(nodeId);
|
|
201
|
+
const label = node?.label || nodeId;
|
|
202
|
+
const typeStr = opts.showTypes && node ? ` [${node.type}]` : '';
|
|
203
|
+
const connector = isLast ? '└── ' : '├── ';
|
|
204
|
+
lines.push(`${prefix}${connector}${label}${typeStr}`);
|
|
205
|
+
const kids = children.get(nodeId) || [];
|
|
206
|
+
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
207
|
+
kids.forEach((kidId, index) => {
|
|
208
|
+
renderNode(kidId, childPrefix, index === kids.length - 1, visited);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
for (let i = 0; i < roots.length; i++) {
|
|
212
|
+
const root = roots[i];
|
|
213
|
+
const node = nodeMap.get(root.id);
|
|
214
|
+
const label = node?.label || root.id;
|
|
215
|
+
const typeStr = opts.showTypes && node ? ` [${node.type}]` : '';
|
|
216
|
+
lines.push(`${label}${typeStr}`);
|
|
217
|
+
const kids = children.get(root.id) || [];
|
|
218
|
+
kids.forEach((kidId, index) => {
|
|
219
|
+
renderNode(kidId, '', index === kids.length - 1, new Set([root.id]));
|
|
220
|
+
});
|
|
221
|
+
if (i < roots.length - 1)
|
|
222
|
+
lines.push('');
|
|
223
|
+
}
|
|
224
|
+
return lines.join('\n');
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* List style - simple enumeration for large graphs
|
|
228
|
+
*/
|
|
229
|
+
function renderList(ir, opts) {
|
|
230
|
+
const lines = [];
|
|
231
|
+
const nodeMap = new Map(ir.nodes.map((n) => [n.id, n]));
|
|
232
|
+
const highlightSet = new Set(opts.highlight);
|
|
233
|
+
// Nodes section
|
|
234
|
+
lines.push(`NODES (${ir.nodes.length}):`);
|
|
235
|
+
for (const node of ir.nodes) {
|
|
236
|
+
const label = node.label || node.id;
|
|
237
|
+
const typeStr = opts.showTypes ? ` [${node.type}]` : '';
|
|
238
|
+
const marker = highlightSet.has(node.id) ? '★' : '•';
|
|
239
|
+
lines.push(` ${marker} ${label}${typeStr}`);
|
|
240
|
+
}
|
|
241
|
+
lines.push('');
|
|
242
|
+
// Edges section
|
|
243
|
+
lines.push(`EDGES (${ir.edges.length}):`);
|
|
244
|
+
for (const edge of ir.edges) {
|
|
245
|
+
const source = nodeMap.get(edge.source);
|
|
246
|
+
const target = nodeMap.get(edge.target);
|
|
247
|
+
const sourceLabel = source?.label || edge.source;
|
|
248
|
+
const targetLabel = target?.label || edge.target;
|
|
249
|
+
const edgeLabel = opts.showLabels && edge.label ? `─${edge.label}─` : '──';
|
|
250
|
+
lines.push(` • ${sourceLabel} ${edgeLabel}► ${targetLabel}`);
|
|
251
|
+
}
|
|
252
|
+
return lines.join('\n');
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=visualize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize.js","sourceRoot":"","sources":["../../src/skills/visualize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,MAAM,eAAe,GAAmC;IACtD,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,EAAE;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,EAAW,EACX,UAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEhD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QAEnB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,KAAK,CAAC;YACX;gBACE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7B,MAAM;QACV,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,EAAW,EAAE,IAAoC;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,mBAAmB;IACnB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAEhD,wBAAwB;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,UAAU,SAAS,OAAO,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,YAAY,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CACpB,IAAe,EACf,KAAe,EACf,WAAoB,EACpB,IAAoC;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAExD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAEpE,IAAI,WAAW,EAAE,CAAC;QAChB,wCAAwC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,EAAW,EAAE,IAAoC;IACtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,4CAA4C;IAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,OAAoB;QACtE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,MAAM,GAAG,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;gBAEjD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAED,iCAAiC;gBACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClF,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;wBAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;wBAClC,MAAM,OAAO,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;wBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,EAAW,EAAE,IAAoC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;IACb,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3D,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,MAAe,EAAE,OAAoB;QACvF,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,WAAW,MAAM,GAAG,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAE3C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,EAAW,EAAE,IAAoC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7C,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,gBAAgB;IAChB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol/Notation Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Exports types and registries for the three-layer architecture:
|
|
5
|
+
* - Shape Layer: Pure geometry
|
|
6
|
+
* - Symbol Layer: Shapes with meaning
|
|
7
|
+
* - Notation Layer: Grammar rules
|
|
8
|
+
*/
|
|
9
|
+
export type { ShapeDefinition, ShapeParameter, PortAnchor, SymbolDefinition, SymbolVariant, SymbolPort, SymbolDefaults, NotationDefinition, NotationEdgeStyle, ConnectionRule, ConnectionConstraints, NotationValidation, NotationValidationResult, NotationError, NotationErrorCode, } from './types.js';
|
|
10
|
+
export { SymbolRegistry } from './symbol-registry.js';
|
|
11
|
+
export { NotationRegistry, type ConnectionValidationResult } from './notation-registry.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/symbols/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EAEV,eAAe,EACf,cAAc,EACd,UAAU,EAEV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAElB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol/Notation Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Exports types and registries for the three-layer architecture:
|
|
5
|
+
* - Shape Layer: Pure geometry
|
|
6
|
+
* - Symbol Layer: Shapes with meaning
|
|
7
|
+
* - Notation Layer: Grammar rules
|
|
8
|
+
*/
|
|
9
|
+
// Registries
|
|
10
|
+
export { SymbolRegistry } from './symbol-registry.js';
|
|
11
|
+
export { NotationRegistry } from './notation-registry.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/symbols/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAmC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotationRegistry - Registry for notation definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to register, query, and validate against notations.
|
|
5
|
+
* Notations are loaded from Coral (diagrams) and Armada (code).
|
|
6
|
+
*/
|
|
7
|
+
import type { NotationDefinition, SymbolDefinition } from './types.js';
|
|
8
|
+
import type { SymbolRegistry } from './symbol-registry.js';
|
|
9
|
+
export interface ConnectionValidationResult {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
message?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class NotationRegistry {
|
|
14
|
+
private notations;
|
|
15
|
+
private symbolRegistry;
|
|
16
|
+
constructor(symbolRegistry: SymbolRegistry);
|
|
17
|
+
/**
|
|
18
|
+
* Register a notation definition.
|
|
19
|
+
* Overwrites any existing notation with the same ID.
|
|
20
|
+
*/
|
|
21
|
+
register(notation: NotationDefinition): void;
|
|
22
|
+
/**
|
|
23
|
+
* Register multiple notations at once.
|
|
24
|
+
*/
|
|
25
|
+
registerAll(notations: NotationDefinition[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get a notation by ID.
|
|
28
|
+
*/
|
|
29
|
+
get(id: string): NotationDefinition | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a notation exists.
|
|
32
|
+
*/
|
|
33
|
+
has(id: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get all registered notations.
|
|
36
|
+
*/
|
|
37
|
+
all(): NotationDefinition[];
|
|
38
|
+
/**
|
|
39
|
+
* Get the count of registered notations.
|
|
40
|
+
*/
|
|
41
|
+
count(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Get symbols valid for a notation.
|
|
44
|
+
* Only returns symbols that exist in the symbol registry.
|
|
45
|
+
*/
|
|
46
|
+
getSymbols(notationId: string): SymbolDefinition[];
|
|
47
|
+
/**
|
|
48
|
+
* Validate a connection against notation rules.
|
|
49
|
+
*
|
|
50
|
+
* @param notationId - The notation to validate against
|
|
51
|
+
* @param fromSymbol - Source symbol ID
|
|
52
|
+
* @param toSymbol - Target symbol ID
|
|
53
|
+
* @returns Validation result with valid flag and optional message
|
|
54
|
+
*/
|
|
55
|
+
validateConnection(notationId: string, fromSymbol: string, toSymbol: string): ConnectionValidationResult;
|
|
56
|
+
/**
|
|
57
|
+
* Clear all notations from the registry.
|
|
58
|
+
*/
|
|
59
|
+
clear(): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=notation-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notation-registry.d.ts","sourceRoot":"","sources":["../../src/symbols/notation-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAI5C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAMlD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI/C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,GAAG,IAAI,kBAAkB,EAAE;IAI3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAgBlD;;;;;;;OAOG;IACH,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,0BAA0B;IAqC7B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NotationRegistry - Registry for notation definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to register, query, and validate against notations.
|
|
5
|
+
* Notations are loaded from Coral (diagrams) and Armada (code).
|
|
6
|
+
*/
|
|
7
|
+
export class NotationRegistry {
|
|
8
|
+
notations = new Map();
|
|
9
|
+
symbolRegistry;
|
|
10
|
+
constructor(symbolRegistry) {
|
|
11
|
+
this.symbolRegistry = symbolRegistry;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Register a notation definition.
|
|
15
|
+
* Overwrites any existing notation with the same ID.
|
|
16
|
+
*/
|
|
17
|
+
register(notation) {
|
|
18
|
+
this.notations.set(notation.id, notation);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Register multiple notations at once.
|
|
22
|
+
*/
|
|
23
|
+
registerAll(notations) {
|
|
24
|
+
for (const notation of notations) {
|
|
25
|
+
this.register(notation);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get a notation by ID.
|
|
30
|
+
*/
|
|
31
|
+
get(id) {
|
|
32
|
+
return this.notations.get(id);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if a notation exists.
|
|
36
|
+
*/
|
|
37
|
+
has(id) {
|
|
38
|
+
return this.notations.has(id);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get all registered notations.
|
|
42
|
+
*/
|
|
43
|
+
all() {
|
|
44
|
+
return Array.from(this.notations.values());
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the count of registered notations.
|
|
48
|
+
*/
|
|
49
|
+
count() {
|
|
50
|
+
return this.notations.size;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get symbols valid for a notation.
|
|
54
|
+
* Only returns symbols that exist in the symbol registry.
|
|
55
|
+
*/
|
|
56
|
+
getSymbols(notationId) {
|
|
57
|
+
const notation = this.notations.get(notationId);
|
|
58
|
+
if (!notation) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
const symbols = [];
|
|
62
|
+
for (const symbolId of notation.symbols) {
|
|
63
|
+
const symbol = this.symbolRegistry.get(symbolId);
|
|
64
|
+
if (symbol) {
|
|
65
|
+
symbols.push(symbol);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return symbols;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Validate a connection against notation rules.
|
|
72
|
+
*
|
|
73
|
+
* @param notationId - The notation to validate against
|
|
74
|
+
* @param fromSymbol - Source symbol ID
|
|
75
|
+
* @param toSymbol - Target symbol ID
|
|
76
|
+
* @returns Validation result with valid flag and optional message
|
|
77
|
+
*/
|
|
78
|
+
validateConnection(notationId, fromSymbol, toSymbol) {
|
|
79
|
+
const notation = this.notations.get(notationId);
|
|
80
|
+
if (!notation) {
|
|
81
|
+
return {
|
|
82
|
+
valid: false,
|
|
83
|
+
message: `Unknown notation: ${notationId}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// If no connection rules, everything is allowed
|
|
87
|
+
if (!notation.connectionRules || notation.connectionRules.length === 0) {
|
|
88
|
+
return { valid: true };
|
|
89
|
+
}
|
|
90
|
+
// Find matching rule
|
|
91
|
+
const rule = notation.connectionRules.find((r) => r.from === fromSymbol || r.from === '*');
|
|
92
|
+
if (!rule) {
|
|
93
|
+
return {
|
|
94
|
+
valid: false,
|
|
95
|
+
message: `No connection rule found for source symbol: ${fromSymbol}`,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Check if target is in allowed list
|
|
99
|
+
if (!rule.to.includes(toSymbol)) {
|
|
100
|
+
return {
|
|
101
|
+
valid: false,
|
|
102
|
+
message: `Connection from '${fromSymbol}' to '${toSymbol}' is not allowed in notation '${notationId}'`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return { valid: true };
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Clear all notations from the registry.
|
|
109
|
+
*/
|
|
110
|
+
clear() {
|
|
111
|
+
this.notations.clear();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=notation-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notation-registry.js","sourceRoot":"","sources":["../../src/symbols/notation-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SymbolRegistry - Registry for symbol definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to register, query, and search symbols.
|
|
5
|
+
* Symbols are loaded from Coral (diagrams) and Armada (code).
|
|
6
|
+
*/
|
|
7
|
+
import type { SymbolDefinition } from './types.js';
|
|
8
|
+
export declare class SymbolRegistry {
|
|
9
|
+
private symbols;
|
|
10
|
+
/**
|
|
11
|
+
* Register a symbol definition.
|
|
12
|
+
* Overwrites any existing symbol with the same ID.
|
|
13
|
+
*/
|
|
14
|
+
register(symbol: SymbolDefinition): void;
|
|
15
|
+
/**
|
|
16
|
+
* Register multiple symbols at once.
|
|
17
|
+
*/
|
|
18
|
+
registerAll(symbols: SymbolDefinition[]): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get a symbol by ID.
|
|
21
|
+
*/
|
|
22
|
+
get(id: string): SymbolDefinition | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a symbol exists.
|
|
25
|
+
*/
|
|
26
|
+
has(id: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Get all registered symbols.
|
|
29
|
+
*/
|
|
30
|
+
all(): SymbolDefinition[];
|
|
31
|
+
/**
|
|
32
|
+
* Get the count of registered symbols.
|
|
33
|
+
*/
|
|
34
|
+
count(): number;
|
|
35
|
+
/**
|
|
36
|
+
* Find symbols that belong to a specific notation.
|
|
37
|
+
*/
|
|
38
|
+
byNotation(notationId: string): SymbolDefinition[];
|
|
39
|
+
/**
|
|
40
|
+
* Find symbols with a specific tag.
|
|
41
|
+
*/
|
|
42
|
+
byTag(tag: string): SymbolDefinition[];
|
|
43
|
+
/**
|
|
44
|
+
* Search symbols by name or description.
|
|
45
|
+
* Case-insensitive partial match.
|
|
46
|
+
*/
|
|
47
|
+
search(query: string): SymbolDefinition[];
|
|
48
|
+
/**
|
|
49
|
+
* Merge another registry into this one.
|
|
50
|
+
* Symbols from the other registry overwrite existing symbols with the same ID.
|
|
51
|
+
*/
|
|
52
|
+
merge(other: SymbolRegistry): void;
|
|
53
|
+
/**
|
|
54
|
+
* Clear all symbols from the registry.
|
|
55
|
+
*/
|
|
56
|
+
clear(): void;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=symbol-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-registry.d.ts","sourceRoot":"","sources":["../../src/symbols/symbol-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAA4C;IAE3D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIxC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAM9C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,GAAG,IAAI,gBAAgB,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAMlD;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAMtC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE;IASzC;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAMlC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|