@stacksfinder/mcp-server 1.5.1 → 1.6.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/README.md +6 -1
- package/dist/data/compatibility_matrix.json +1160 -228
- package/dist/data/index.d.ts +2 -2
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +52 -43
- package/dist/data/index.js.map +1 -1
- package/dist/data/technology_scores.json +2936 -1030
- package/dist/http.js +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +463 -313
- package/dist/server.js.map +1 -1
- package/dist/tools/audit.d.ts +81 -1
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +358 -171
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/list-techs.d.ts +4 -4
- package/dist/tools/list-techs.js +1 -1
- package/dist/tools/list-techs.js.map +1 -1
- package/dist/tools/project-kit/generate.d.ts.map +1 -1
- package/dist/tools/project-kit/generate.js +2 -1
- package/dist/tools/project-kit/generate.js.map +1 -1
- package/dist/tools/project-kit/match-mcps.d.ts +1 -1
- package/dist/tools/project-kit/match-mcps.d.ts.map +1 -1
- package/dist/tools/project-kit/match-mcps.js +213 -199
- package/dist/tools/project-kit/match-mcps.js.map +1 -1
- package/dist/tools/recommend-demo.d.ts.map +1 -1
- package/dist/tools/recommend-demo.js +34 -10
- package/dist/tools/recommend-demo.js.map +1 -1
- package/package.json +75 -75
package/dist/data/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Data version - update when syncing from source.
|
|
3
3
|
*/
|
|
4
|
-
export declare const DATA_VERSION = "
|
|
4
|
+
export declare const DATA_VERSION = "2026.01.29";
|
|
5
5
|
/**
|
|
6
6
|
* Score dimensions.
|
|
7
7
|
*/
|
|
@@ -14,7 +14,7 @@ export declare const DIMENSION_LABELS: Record<ScoreDimension, string>;
|
|
|
14
14
|
/**
|
|
15
15
|
* Technology categories.
|
|
16
16
|
*/
|
|
17
|
-
export declare const CATEGORIES: readonly ["frontend", "backend", "meta-framework", "database", "orm", "auth", "hosting", "payments"];
|
|
17
|
+
export declare const CATEGORIES: readonly ["frontend", "backend", "meta-framework", "database", "orm", "auth", "hosting", "payments", "cms"];
|
|
18
18
|
export type Category = (typeof CATEGORIES)[number];
|
|
19
19
|
/**
|
|
20
20
|
* Score contexts.
|
package/dist/data/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,wEAOnB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAO3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,6GAUb,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,QAAQ,2CAA4C,CAAC;AAClE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CACjC;AAwBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAExE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CACxD,QAAQ,EACR,QAAQ,EAAE,CACX,CAoBA;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAmB,GAC3B,MAAM,GAAG,IAAI,CAIf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAclD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAcrE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,KAAK,SAAI,GACR,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAWtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAKA"}
|
package/dist/data/index.js
CHANGED
|
@@ -1,43 +1,51 @@
|
|
|
1
|
-
import { findSimilar } from
|
|
1
|
+
import { findSimilar } from "../utils/errors.js";
|
|
2
2
|
// Import JSON directly - esbuild bundles these inline for Smithery
|
|
3
|
-
import techScoresData from
|
|
4
|
-
import compatibilityData from
|
|
3
|
+
import techScoresData from "./technology_scores.json" with { type: "json" };
|
|
4
|
+
import compatibilityData from "./compatibility_matrix.json" with { type: "json" };
|
|
5
5
|
/**
|
|
6
6
|
* Data version - update when syncing from source.
|
|
7
7
|
*/
|
|
8
|
-
export const DATA_VERSION =
|
|
8
|
+
export const DATA_VERSION = "2026.01.29";
|
|
9
9
|
/**
|
|
10
10
|
* Score dimensions.
|
|
11
11
|
*/
|
|
12
|
-
export const SCORE_DIMENSIONS = [
|
|
12
|
+
export const SCORE_DIMENSIONS = [
|
|
13
|
+
"perf",
|
|
14
|
+
"dx",
|
|
15
|
+
"ecosystem",
|
|
16
|
+
"maintain",
|
|
17
|
+
"cost",
|
|
18
|
+
"compliance",
|
|
19
|
+
];
|
|
13
20
|
/**
|
|
14
21
|
* Human-readable dimension names.
|
|
15
22
|
*/
|
|
16
23
|
export const DIMENSION_LABELS = {
|
|
17
|
-
perf:
|
|
18
|
-
dx:
|
|
19
|
-
ecosystem:
|
|
20
|
-
maintain:
|
|
21
|
-
cost:
|
|
22
|
-
compliance:
|
|
24
|
+
perf: "Performance",
|
|
25
|
+
dx: "Developer Experience",
|
|
26
|
+
ecosystem: "Ecosystem",
|
|
27
|
+
maintain: "Maintainability",
|
|
28
|
+
cost: "Cost Efficiency",
|
|
29
|
+
compliance: "Compliance",
|
|
23
30
|
};
|
|
24
31
|
/**
|
|
25
32
|
* Technology categories.
|
|
26
33
|
*/
|
|
27
34
|
export const CATEGORIES = [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
"frontend",
|
|
36
|
+
"backend",
|
|
37
|
+
"meta-framework",
|
|
38
|
+
"database",
|
|
39
|
+
"orm",
|
|
40
|
+
"auth",
|
|
41
|
+
"hosting",
|
|
42
|
+
"payments",
|
|
43
|
+
"cms",
|
|
36
44
|
];
|
|
37
45
|
/**
|
|
38
46
|
* Score contexts.
|
|
39
47
|
*/
|
|
40
|
-
export const CONTEXTS = [
|
|
48
|
+
export const CONTEXTS = ["default", "mvp", "enterprise"];
|
|
41
49
|
// Type assertions for imported JSON
|
|
42
50
|
const scores = techScoresData;
|
|
43
51
|
const compat = compatibilityData;
|
|
@@ -72,12 +80,13 @@ export function getTechnologiesGroupedByCategory() {
|
|
|
72
80
|
const grouped = {
|
|
73
81
|
frontend: [],
|
|
74
82
|
backend: [],
|
|
75
|
-
|
|
83
|
+
"meta-framework": [],
|
|
76
84
|
database: [],
|
|
77
85
|
orm: [],
|
|
78
86
|
auth: [],
|
|
79
87
|
hosting: [],
|
|
80
|
-
payments: []
|
|
88
|
+
payments: [],
|
|
89
|
+
cms: [],
|
|
81
90
|
};
|
|
82
91
|
for (const tech of getAllTechnologies()) {
|
|
83
92
|
if (tech.category in grouped) {
|
|
@@ -89,7 +98,7 @@ export function getTechnologiesGroupedByCategory() {
|
|
|
89
98
|
/**
|
|
90
99
|
* Get scores for a technology in a specific context.
|
|
91
100
|
*/
|
|
92
|
-
export function getScores(techId, context =
|
|
101
|
+
export function getScores(techId, context = "default") {
|
|
93
102
|
const tech = getTechnology(techId);
|
|
94
103
|
if (!tech)
|
|
95
104
|
return null;
|
|
@@ -107,30 +116,30 @@ export function calculateOverallScore(scores) {
|
|
|
107
116
|
*/
|
|
108
117
|
export function scoreToGrade(score) {
|
|
109
118
|
if (score >= 97)
|
|
110
|
-
return
|
|
119
|
+
return "A+";
|
|
111
120
|
if (score >= 93)
|
|
112
|
-
return
|
|
121
|
+
return "A";
|
|
113
122
|
if (score >= 90)
|
|
114
|
-
return
|
|
123
|
+
return "A-";
|
|
115
124
|
if (score >= 87)
|
|
116
|
-
return
|
|
125
|
+
return "B+";
|
|
117
126
|
if (score >= 83)
|
|
118
|
-
return
|
|
127
|
+
return "B";
|
|
119
128
|
if (score >= 80)
|
|
120
|
-
return
|
|
129
|
+
return "B-";
|
|
121
130
|
if (score >= 77)
|
|
122
|
-
return
|
|
131
|
+
return "C+";
|
|
123
132
|
if (score >= 73)
|
|
124
|
-
return
|
|
133
|
+
return "C";
|
|
125
134
|
if (score >= 70)
|
|
126
|
-
return
|
|
135
|
+
return "C-";
|
|
127
136
|
if (score >= 67)
|
|
128
|
-
return
|
|
137
|
+
return "D+";
|
|
129
138
|
if (score >= 63)
|
|
130
|
-
return
|
|
139
|
+
return "D";
|
|
131
140
|
if (score >= 60)
|
|
132
|
-
return
|
|
133
|
-
return
|
|
141
|
+
return "D-";
|
|
142
|
+
return "F";
|
|
134
143
|
}
|
|
135
144
|
/**
|
|
136
145
|
* Get compatibility score between two technologies.
|
|
@@ -156,14 +165,14 @@ export function getCompatibility(techA, techB) {
|
|
|
156
165
|
*/
|
|
157
166
|
export function getCompatibilityVerdict(score) {
|
|
158
167
|
if (score === 0)
|
|
159
|
-
return
|
|
168
|
+
return "Incompatible";
|
|
160
169
|
if (score < 50)
|
|
161
|
-
return
|
|
170
|
+
return "Poor";
|
|
162
171
|
if (score < 80)
|
|
163
|
-
return
|
|
172
|
+
return "Acceptable";
|
|
164
173
|
if (score < 95)
|
|
165
|
-
return
|
|
166
|
-
return
|
|
174
|
+
return "Good";
|
|
175
|
+
return "Excellent";
|
|
167
176
|
}
|
|
168
177
|
/**
|
|
169
178
|
* Find compatible technologies for a given tech.
|
|
@@ -174,7 +183,7 @@ export function findCompatibleTechs(techId, limit = 8) {
|
|
|
174
183
|
return allIds
|
|
175
184
|
.map((id) => ({
|
|
176
185
|
id,
|
|
177
|
-
score: getCompatibility(techId, id)
|
|
186
|
+
score: getCompatibility(techId, id),
|
|
178
187
|
}))
|
|
179
188
|
.filter((item) => item.score > 50) // Only include acceptable+ compatibility
|
|
180
189
|
.sort((a, b) => b.score - a.score)
|
|
@@ -198,7 +207,7 @@ export function techExists(id) {
|
|
|
198
207
|
export function getSourceDataVersion() {
|
|
199
208
|
return {
|
|
200
209
|
scores: scores.$version,
|
|
201
|
-
compatibility: compat.$version
|
|
210
|
+
compatibility: compat.$version,
|
|
202
211
|
};
|
|
203
212
|
}
|
|
204
213
|
//# sourceMappingURL=index.js.map
|
package/dist/data/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,mEAAmE;AACnE,OAAO,cAAc,MAAM,0BAA0B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,OAAO,iBAAiB,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,mEAAmE;AACnE,OAAO,cAAc,MAAM,0BAA0B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,OAAO,iBAAiB,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM;IACN,IAAI;IACJ,WAAW;IACX,UAAU;IACV,MAAM;IACN,YAAY;CACJ,CAAC;AAGX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,sBAAsB;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,UAAU;IACV,KAAK;IACL,MAAM;IACN,SAAS;IACT,UAAU;IACV,KAAK;CACG,CAAC;AAGX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAU,CAAC;AA4ClE,oCAAoC;AACpC,MAAM,MAAM,GAAG,cAAgC,CAAC;AAChD,MAAM,MAAM,GAAG,iBAAsC,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAkB;IAC1D,OAAO,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAI9C,MAAM,OAAO,GAAiC;QAC5C,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE;QACZ,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,MAAc,EACd,UAAmB,SAAS;IAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAa;IAC3D,iCAAiC;IACjC,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAEhC,wBAAwB;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAE9C,uCAAuC;IACvC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE1C,qBAAqB;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,YAAY,CAAC;IACpC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,KAAK,GAAG,CAAC;IAET,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAE7D,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE;QACF,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,yCAAyC;SAC3E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAK,GAAG,CAAC;IACzD,OAAO,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAIlC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,aAAa,EAAE,MAAM,CAAC,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
|