context-mapper-mcp 1.0.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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -0
  3. package/dist/generators/plantuml.d.ts +17 -0
  4. package/dist/generators/plantuml.d.ts.map +1 -0
  5. package/dist/generators/plantuml.js +244 -0
  6. package/dist/generators/plantuml.js.map +1 -0
  7. package/dist/index.d.ts +7 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +897 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/model/parser.d.ts +51 -0
  12. package/dist/model/parser.d.ts.map +1 -0
  13. package/dist/model/parser.js +934 -0
  14. package/dist/model/parser.js.map +1 -0
  15. package/dist/model/types.d.ts +121 -0
  16. package/dist/model/types.d.ts.map +1 -0
  17. package/dist/model/types.js +12 -0
  18. package/dist/model/types.js.map +1 -0
  19. package/dist/model/validation.d.ts +36 -0
  20. package/dist/model/validation.d.ts.map +1 -0
  21. package/dist/model/validation.js +411 -0
  22. package/dist/model/validation.js.map +1 -0
  23. package/dist/model/writer.d.ts +30 -0
  24. package/dist/model/writer.d.ts.map +1 -0
  25. package/dist/model/writer.js +305 -0
  26. package/dist/model/writer.js.map +1 -0
  27. package/dist/tools/aggregate-tools.d.ts +295 -0
  28. package/dist/tools/aggregate-tools.d.ts.map +1 -0
  29. package/dist/tools/aggregate-tools.js +965 -0
  30. package/dist/tools/aggregate-tools.js.map +1 -0
  31. package/dist/tools/context-tools.d.ts +60 -0
  32. package/dist/tools/context-tools.d.ts.map +1 -0
  33. package/dist/tools/context-tools.js +166 -0
  34. package/dist/tools/context-tools.js.map +1 -0
  35. package/dist/tools/generation-tools.d.ts +29 -0
  36. package/dist/tools/generation-tools.d.ts.map +1 -0
  37. package/dist/tools/generation-tools.js +62 -0
  38. package/dist/tools/generation-tools.js.map +1 -0
  39. package/dist/tools/model-tools.d.ts +72 -0
  40. package/dist/tools/model-tools.d.ts.map +1 -0
  41. package/dist/tools/model-tools.js +186 -0
  42. package/dist/tools/model-tools.js.map +1 -0
  43. package/dist/tools/query-tools.d.ts +170 -0
  44. package/dist/tools/query-tools.d.ts.map +1 -0
  45. package/dist/tools/query-tools.js +322 -0
  46. package/dist/tools/query-tools.js.map +1 -0
  47. package/dist/tools/relationship-tools.d.ts +68 -0
  48. package/dist/tools/relationship-tools.d.ts.map +1 -0
  49. package/dist/tools/relationship-tools.js +178 -0
  50. package/dist/tools/relationship-tools.js.map +1 -0
  51. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-tools.js","sourceRoot":"","sources":["../../src/tools/aggregate-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Context Tools - CRUD operations for Bounded Contexts
3
+ */
4
+ export interface CreateBoundedContextParams {
5
+ name: string;
6
+ domainVisionStatement?: string;
7
+ responsibilities?: string[];
8
+ implementationTechnology?: string;
9
+ knowledgeLevel?: 'META' | 'CONCRETE';
10
+ }
11
+ export interface CreateBoundedContextResult {
12
+ success: boolean;
13
+ context?: {
14
+ id: string;
15
+ name: string;
16
+ };
17
+ error?: string;
18
+ }
19
+ export declare function createBoundedContext(params: CreateBoundedContextParams): CreateBoundedContextResult;
20
+ export interface UpdateBoundedContextParams {
21
+ name: string;
22
+ newName?: string;
23
+ domainVisionStatement?: string;
24
+ responsibilities?: string[];
25
+ implementationTechnology?: string;
26
+ knowledgeLevel?: 'META' | 'CONCRETE';
27
+ }
28
+ export interface UpdateBoundedContextResult {
29
+ success: boolean;
30
+ context?: {
31
+ id: string;
32
+ name: string;
33
+ };
34
+ error?: string;
35
+ }
36
+ export declare function updateBoundedContext(params: UpdateBoundedContextParams): UpdateBoundedContextResult;
37
+ export interface DeleteBoundedContextParams {
38
+ name: string;
39
+ }
40
+ export interface DeleteBoundedContextResult {
41
+ success: boolean;
42
+ deletedRelationships?: number;
43
+ error?: string;
44
+ }
45
+ export declare function deleteBoundedContext(params: DeleteBoundedContextParams): DeleteBoundedContextResult;
46
+ export interface CreateContextMapParams {
47
+ name?: string;
48
+ state?: 'AS_IS' | 'TO_BE';
49
+ }
50
+ export interface CreateContextMapResult {
51
+ success: boolean;
52
+ contextMap?: {
53
+ id: string;
54
+ name: string;
55
+ state?: string;
56
+ };
57
+ error?: string;
58
+ }
59
+ export declare function createContextMap(params?: CreateContextMapParams): CreateContextMapResult;
60
+ //# sourceMappingURL=context-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-tools.d.ts","sourceRoot":"","sources":["../../src/tools/context-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,0BAA0B,CAsCnG;AAGD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,0BAA0B,CAmEnG;AAGD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,0BAA0B,CAyCnG;AAGD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,sBAA2B,GAAG,sBAAsB,CA4B5F"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Context Tools - CRUD operations for Bounded Contexts
3
+ */
4
+ import { v4 as uuidv4 } from 'uuid';
5
+ import { getCurrentModel } from './model-tools.js';
6
+ import { sanitizeIdentifier } from '../model/validation.js';
7
+ export function createBoundedContext(params) {
8
+ const model = getCurrentModel();
9
+ if (!model) {
10
+ return { success: false, error: 'No model is currently loaded' };
11
+ }
12
+ const name = sanitizeIdentifier(params.name);
13
+ // Check for duplicate name
14
+ if (model.boundedContexts.some(bc => bc.name === name)) {
15
+ return { success: false, error: `Bounded context '${name}' already exists` };
16
+ }
17
+ const bc = {
18
+ id: uuidv4(),
19
+ name,
20
+ domainVisionStatement: params.domainVisionStatement,
21
+ responsibilities: params.responsibilities,
22
+ implementationTechnology: params.implementationTechnology,
23
+ knowledgeLevel: params.knowledgeLevel,
24
+ aggregates: [],
25
+ modules: [],
26
+ };
27
+ model.boundedContexts.push(bc);
28
+ // Add to context map if exists
29
+ if (model.contextMap) {
30
+ model.contextMap.boundedContexts.push(name);
31
+ }
32
+ return {
33
+ success: true,
34
+ context: {
35
+ id: bc.id,
36
+ name: bc.name,
37
+ },
38
+ };
39
+ }
40
+ export function updateBoundedContext(params) {
41
+ const model = getCurrentModel();
42
+ if (!model) {
43
+ return { success: false, error: 'No model is currently loaded' };
44
+ }
45
+ const bc = model.boundedContexts.find(c => c.name === params.name);
46
+ if (!bc) {
47
+ return { success: false, error: `Bounded context '${params.name}' not found` };
48
+ }
49
+ // Update name if provided
50
+ if (params.newName) {
51
+ const newName = sanitizeIdentifier(params.newName);
52
+ // Check for duplicate
53
+ if (newName !== bc.name && model.boundedContexts.some(c => c.name === newName)) {
54
+ return { success: false, error: `Bounded context '${newName}' already exists` };
55
+ }
56
+ const oldName = bc.name;
57
+ // Update context map references
58
+ if (model.contextMap) {
59
+ const idx = model.contextMap.boundedContexts.indexOf(oldName);
60
+ if (idx !== -1) {
61
+ model.contextMap.boundedContexts[idx] = newName;
62
+ }
63
+ // Update relationship references
64
+ for (const rel of model.contextMap.relationships) {
65
+ if (rel.type === 'Partnership' || rel.type === 'SharedKernel') {
66
+ const symRel = rel;
67
+ if (symRel.participant1 === oldName)
68
+ symRel.participant1 = newName;
69
+ if (symRel.participant2 === oldName)
70
+ symRel.participant2 = newName;
71
+ }
72
+ else {
73
+ const udRel = rel;
74
+ if (udRel.upstream === oldName)
75
+ udRel.upstream = newName;
76
+ if (udRel.downstream === oldName)
77
+ udRel.downstream = newName;
78
+ }
79
+ }
80
+ }
81
+ bc.name = newName;
82
+ }
83
+ // Update other properties
84
+ if (params.domainVisionStatement !== undefined) {
85
+ bc.domainVisionStatement = params.domainVisionStatement || undefined;
86
+ }
87
+ if (params.responsibilities !== undefined) {
88
+ bc.responsibilities = params.responsibilities.length > 0 ? params.responsibilities : undefined;
89
+ }
90
+ if (params.implementationTechnology !== undefined) {
91
+ bc.implementationTechnology = params.implementationTechnology || undefined;
92
+ }
93
+ if (params.knowledgeLevel !== undefined) {
94
+ bc.knowledgeLevel = params.knowledgeLevel;
95
+ }
96
+ return {
97
+ success: true,
98
+ context: {
99
+ id: bc.id,
100
+ name: bc.name,
101
+ },
102
+ };
103
+ }
104
+ export function deleteBoundedContext(params) {
105
+ const model = getCurrentModel();
106
+ if (!model) {
107
+ return { success: false, error: 'No model is currently loaded' };
108
+ }
109
+ const idx = model.boundedContexts.findIndex(bc => bc.name === params.name);
110
+ if (idx === -1) {
111
+ return { success: false, error: `Bounded context '${params.name}' not found` };
112
+ }
113
+ // Remove from bounded contexts
114
+ model.boundedContexts.splice(idx, 1);
115
+ let deletedRelationships = 0;
116
+ // Remove from context map and relationships
117
+ if (model.contextMap) {
118
+ const cmIdx = model.contextMap.boundedContexts.indexOf(params.name);
119
+ if (cmIdx !== -1) {
120
+ model.contextMap.boundedContexts.splice(cmIdx, 1);
121
+ }
122
+ // Remove relationships involving this context
123
+ const originalLength = model.contextMap.relationships.length;
124
+ model.contextMap.relationships = model.contextMap.relationships.filter(rel => {
125
+ if (rel.type === 'Partnership' || rel.type === 'SharedKernel') {
126
+ const symRel = rel;
127
+ return symRel.participant1 !== params.name && symRel.participant2 !== params.name;
128
+ }
129
+ else {
130
+ const udRel = rel;
131
+ return udRel.upstream !== params.name && udRel.downstream !== params.name;
132
+ }
133
+ });
134
+ deletedRelationships = originalLength - model.contextMap.relationships.length;
135
+ }
136
+ return {
137
+ success: true,
138
+ deletedRelationships,
139
+ };
140
+ }
141
+ export function createContextMap(params = {}) {
142
+ const model = getCurrentModel();
143
+ if (!model) {
144
+ return { success: false, error: 'No model is currently loaded' };
145
+ }
146
+ if (model.contextMap) {
147
+ return { success: false, error: 'Context map already exists in model' };
148
+ }
149
+ const contextMap = {
150
+ id: uuidv4(),
151
+ name: params.name || 'MainContextMap',
152
+ boundedContexts: model.boundedContexts.map(bc => bc.name),
153
+ relationships: [],
154
+ state: params.state,
155
+ };
156
+ model.contextMap = contextMap;
157
+ return {
158
+ success: true,
159
+ contextMap: {
160
+ id: contextMap.id,
161
+ name: contextMap.name,
162
+ state: contextMap.state,
163
+ },
164
+ };
165
+ }
166
+ //# sourceMappingURL=context-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-tools.js","sourceRoot":"","sources":["../../src/tools/context-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generation Tools - PlantUML diagram generation
3
+ */
4
+ export interface GenerateContextMapDiagramParams {
5
+ includeAggregates?: boolean;
6
+ }
7
+ export interface GenerateContextMapDiagramResult {
8
+ success: boolean;
9
+ plantuml?: string;
10
+ error?: string;
11
+ }
12
+ export declare function generateContextMapDiagramTool(params?: GenerateContextMapDiagramParams): GenerateContextMapDiagramResult;
13
+ export interface GenerateAggregateDiagramParams {
14
+ contextName: string;
15
+ aggregateName: string;
16
+ }
17
+ export interface GenerateAggregateDiagramResult {
18
+ success: boolean;
19
+ plantuml?: string;
20
+ error?: string;
21
+ }
22
+ export declare function generateAggregateDiagramTool(params: GenerateAggregateDiagramParams): GenerateAggregateDiagramResult;
23
+ export interface GenerateFullDiagramResult {
24
+ success: boolean;
25
+ plantuml?: string;
26
+ error?: string;
27
+ }
28
+ export declare function generateFullDiagramTool(): GenerateFullDiagramResult;
29
+ //# sourceMappingURL=generation-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-tools.d.ts","sourceRoot":"","sources":["../../src/tools/generation-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,+BAA+B;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,6BAA6B,CAAC,MAAM,GAAE,+BAAoC,GAAG,+BAA+B,CAY3H;AAGD,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,8BAA8B,GAAG,8BAA8B,CAiCnH;AAGD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,uBAAuB,IAAI,yBAAyB,CAYnE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Generation Tools - PlantUML diagram generation
3
+ */
4
+ import { getCurrentModel } from './model-tools.js';
5
+ import { generateContextMapDiagram, generateAggregateDiagram, generateFullModelDiagram } from '../generators/plantuml.js';
6
+ export function generateContextMapDiagramTool(params = {}) {
7
+ const model = getCurrentModel();
8
+ if (!model) {
9
+ return { success: false, error: 'No model is currently loaded' };
10
+ }
11
+ try {
12
+ const plantuml = generateContextMapDiagram(model, params.includeAggregates);
13
+ return { success: true, plantuml };
14
+ }
15
+ catch (err) {
16
+ return { success: false, error: err instanceof Error ? err.message : 'Unknown error generating diagram' };
17
+ }
18
+ }
19
+ export function generateAggregateDiagramTool(params) {
20
+ const model = getCurrentModel();
21
+ if (!model) {
22
+ return { success: false, error: 'No model is currently loaded' };
23
+ }
24
+ const bc = model.boundedContexts.find(c => c.name === params.contextName);
25
+ if (!bc) {
26
+ return { success: false, error: `Bounded context '${params.contextName}' not found` };
27
+ }
28
+ let aggregate = bc.aggregates.find(a => a.name === params.aggregateName);
29
+ if (!aggregate) {
30
+ for (const mod of bc.modules) {
31
+ const found = mod.aggregates.find(a => a.name === params.aggregateName);
32
+ if (found) {
33
+ aggregate = found;
34
+ break;
35
+ }
36
+ }
37
+ }
38
+ if (!aggregate) {
39
+ return { success: false, error: `Aggregate '${params.aggregateName}' not found in context '${params.contextName}'` };
40
+ }
41
+ try {
42
+ const plantuml = generateAggregateDiagram(aggregate);
43
+ return { success: true, plantuml };
44
+ }
45
+ catch (err) {
46
+ return { success: false, error: err instanceof Error ? err.message : 'Unknown error generating diagram' };
47
+ }
48
+ }
49
+ export function generateFullDiagramTool() {
50
+ const model = getCurrentModel();
51
+ if (!model) {
52
+ return { success: false, error: 'No model is currently loaded' };
53
+ }
54
+ try {
55
+ const plantuml = generateFullModelDiagram(model);
56
+ return { success: true, plantuml };
57
+ }
58
+ catch (err) {
59
+ return { success: false, error: err instanceof Error ? err.message : 'Unknown error generating diagram' };
60
+ }
61
+ }
62
+ //# sourceMappingURL=generation-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-tools.js","sourceRoot":"","sources":["../../src/tools/generation-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Model Tools - Create, load, save, validate CML models
3
+ */
4
+ import type { CMLModel, ValidationResult } from '../model/types.js';
5
+ export declare function getCurrentModel(): CMLModel | null;
6
+ export declare function setCurrentModel(model: CMLModel | null): void;
7
+ export interface CreateModelParams {
8
+ name: string;
9
+ }
10
+ export interface CreateModelResult {
11
+ success: boolean;
12
+ model?: {
13
+ name: string;
14
+ boundedContextsCount: number;
15
+ hasContextMap: boolean;
16
+ };
17
+ error?: string;
18
+ }
19
+ export declare function createModel(params: CreateModelParams): CreateModelResult;
20
+ export interface LoadModelParams {
21
+ path: string;
22
+ }
23
+ export interface LoadModelResult {
24
+ success: boolean;
25
+ model?: {
26
+ name: string;
27
+ boundedContextsCount: number;
28
+ hasContextMap: boolean;
29
+ filePath: string;
30
+ };
31
+ parseErrors?: Array<{
32
+ message: string;
33
+ line?: number;
34
+ column?: number;
35
+ }>;
36
+ error?: string;
37
+ }
38
+ export declare function loadModel(params: LoadModelParams): Promise<LoadModelResult>;
39
+ export interface SaveModelParams {
40
+ path?: string;
41
+ }
42
+ export interface SaveModelResult {
43
+ success: boolean;
44
+ filePath?: string;
45
+ error?: string;
46
+ }
47
+ export declare function saveModel(params: SaveModelParams): Promise<SaveModelResult>;
48
+ export interface ValidateModelResult {
49
+ success: boolean;
50
+ validation?: ValidationResult;
51
+ error?: string;
52
+ }
53
+ export declare function validateCurrentModel(): ValidateModelResult;
54
+ export interface ModelInfoResult {
55
+ success: boolean;
56
+ info?: {
57
+ name: string;
58
+ filePath?: string;
59
+ hasContextMap: boolean;
60
+ contextMapState?: string;
61
+ boundedContextsCount: number;
62
+ totalAggregates: number;
63
+ totalEntities: number;
64
+ totalValueObjects: number;
65
+ totalDomainEvents: number;
66
+ totalCommands: number;
67
+ totalRelationships: number;
68
+ };
69
+ error?: string;
70
+ }
71
+ export declare function getModelInfo(): ModelInfoResult;
72
+ //# sourceMappingURL=model-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tools.d.ts","sourceRoot":"","sources":["../../src/tools/model-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQpE,wBAAgB,eAAe,IAAI,QAAQ,GAAG,IAAI,CAEjD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAE5D;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAuBxE;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoCjF;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA0CjF;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,IAAI,mBAAmB,CAqB1D;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,IAAI,eAAe,CAwD9C"}