@antonytm/mcp-sitecore-server 0.2.0 → 0.2.1
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 +3 -0
- package/dist/tools/powershell/client.js +6 -1
- package/dist/tools/powershell/client.js.map +1 -1
- package/dist/tools/powershell/simple/security/register-get-user.js +13 -4
- package/dist/tools/powershell/simple/security/register-get-user.js.map +1 -1
- package/dist/tools/powershell/simple/security/register-new-user.d.ts +3 -0
- package/dist/tools/powershell/simple/security/register-new-user.js +43 -0
- package/dist/tools/powershell/simple/security/register-new-user.js.map +1 -0
- package/dist/tools/powershell/simple/security/register-remove-user.d.ts +3 -0
- package/dist/tools/powershell/simple/security/register-remove-user.js +15 -0
- package/dist/tools/powershell/simple/security/register-remove-user.js.map +1 -0
- package/dist/tools/powershell/simple/security/register-security-powershell.js +4 -0
- package/dist/tools/powershell/simple/security/register-security-powershell.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
- [ ] Security
|
|
27
27
|
- [x] `security-get-current-user`: returns the current user
|
|
28
28
|
- [x] `security-get-user-by-name`: returns a user by name
|
|
29
|
+
- [x] `security-get-user-by-filter`: returns a user by filter
|
|
30
|
+
- [x] `security-new-user`: creates a new user
|
|
31
|
+
- [x] `security-remove-user`: removes a user
|
|
29
32
|
- [ ] Sitecore CLI
|
|
30
33
|
|
|
31
34
|
## Installation
|
|
@@ -22,7 +22,12 @@ class PowershellClient {
|
|
|
22
22
|
let scriptWithParameters = script;
|
|
23
23
|
if (parameters) {
|
|
24
24
|
for (const parameter in parameters) {
|
|
25
|
-
|
|
25
|
+
if (parameters[parameter] === "") {
|
|
26
|
+
scriptWithParameters += ` -${parameter}`;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
scriptWithParameters += ` -${parameter} "${parameters[parameter]}"`;
|
|
30
|
+
}
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
const body = `${scriptWithParameters}\r\n <#${uuid}#>\r\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/powershell/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,gBAAgB;IACV,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAY,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,SAAiB,UAAU;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,aAAkC,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,+BAA+B,IAAI,2CAA2C,CAAC;QAC5G,MAAM,OAAO,GAAG;YACZ,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QAEF,IAAI,oBAAoB,GAAG,MAAM,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACb,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/powershell/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,gBAAgB;IACV,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAY,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,SAAiB,UAAU;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,aAAkC,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,+BAA+B,IAAI,2CAA2C,CAAC;QAC5G,MAAM,OAAO,GAAG;YACZ,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QAEF,IAAI,oBAAoB,GAAG,MAAM,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC/B,oBAAoB,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7C,CAAC;qBACI,CAAC;oBACF,oBAAoB,IAAI,KAAK,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACxE,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,oBAAoB,UAAU,IAAI,QAAQ,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SAEb,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,aAAkC,EAAE;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI;iBAC3B,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -2,21 +2,30 @@ import { z } from "zod";
|
|
|
2
2
|
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
3
|
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
4
|
export function registerGetUserPowerShell(server, config) {
|
|
5
|
-
server.tool(
|
|
6
|
-
|
|
5
|
+
server.tool("security-get-user-by-name", "Get a Sitecore user by its name.", {
|
|
6
|
+
identity: z.string(),
|
|
7
7
|
}, async (params) => {
|
|
8
8
|
const command = `Get-User`;
|
|
9
9
|
const options = {
|
|
10
|
-
"Identity": params.
|
|
10
|
+
"Identity": params.identity,
|
|
11
11
|
};
|
|
12
12
|
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
13
13
|
});
|
|
14
|
-
server.tool(
|
|
14
|
+
server.tool("security-get-current-user", "Get the current Sitecore user.", {}, async () => {
|
|
15
15
|
const command = `Get-User`;
|
|
16
16
|
const options = {
|
|
17
17
|
"Current": "",
|
|
18
18
|
};
|
|
19
19
|
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
20
20
|
});
|
|
21
|
+
server.tool("security-get-user-by-filter", "Get a Sitecore users by filter.", {
|
|
22
|
+
filter: z.string(),
|
|
23
|
+
}, async (params) => {
|
|
24
|
+
const command = `Get-User`;
|
|
25
|
+
const options = {
|
|
26
|
+
"Filter": params.filter,
|
|
27
|
+
};
|
|
28
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
29
|
+
});
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=register-get-user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-get-user.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-get-user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAc;IACvE,MAAM,CAAC,IAAI,CACP,2BAA2B,EAC3B,kCAAkC,EAClC;QACI,
|
|
1
|
+
{"version":3,"file":"register-get-user.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-get-user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAc;IACvE,MAAM,CAAC,IAAI,CACP,2BAA2B,EAC3B,kCAAkC,EAClC;QACI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,MAAM,OAAO,GAAuB;YAChC,UAAU,EAAE,MAAM,CAAC,QAAQ;SAC9B,CAAC;QACF,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACP,2BAA2B,EAC3B,gCAAgC,EAChC,EAAE,EACF,KAAK,IAAI,EAAE;QACP,MAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,MAAM,OAAO,GAAuB;YAChC,SAAS,EAAE,EAAE;SAChB,CAAC;QACF,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACP,6BAA6B,EAC7B,iCAAiC,EACjC;QACI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,MAAM,OAAO,GAAuB;YAChC,QAAQ,EAAE,MAAM,CAAC,MAAM;SAC1B,CAAC;QACF,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function registerNewUserPowerShell(server, config) {
|
|
5
|
+
server.tool("security-new-user", "Creates a new Sitecore user.", {
|
|
6
|
+
identity: z.string(),
|
|
7
|
+
password: z.string().optional(),
|
|
8
|
+
email: z.string().optional(),
|
|
9
|
+
fullName: z.string().optional(),
|
|
10
|
+
comment: z.string().optional(),
|
|
11
|
+
portrait: z.string().optional(),
|
|
12
|
+
enabled: z.boolean().optional(),
|
|
13
|
+
profileItemId: z.string().optional(),
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const command = `New-User`;
|
|
16
|
+
const options = {
|
|
17
|
+
"Identity": params.identity,
|
|
18
|
+
};
|
|
19
|
+
if (params.password) {
|
|
20
|
+
options["Password"] = params.password;
|
|
21
|
+
}
|
|
22
|
+
if (params.email) {
|
|
23
|
+
options["Email"] = params.email;
|
|
24
|
+
}
|
|
25
|
+
if (params.fullName) {
|
|
26
|
+
options["FullName"] = params.fullName;
|
|
27
|
+
}
|
|
28
|
+
if (params.comment) {
|
|
29
|
+
options["Comment"] = params.comment;
|
|
30
|
+
}
|
|
31
|
+
if (params.portrait) {
|
|
32
|
+
options["Portrait"] = params.portrait;
|
|
33
|
+
}
|
|
34
|
+
if (params.enabled) {
|
|
35
|
+
options["Enabled"] = "";
|
|
36
|
+
}
|
|
37
|
+
if (params.profileItemId) {
|
|
38
|
+
options["ProfileItemId"] = params.profileItemId;
|
|
39
|
+
}
|
|
40
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=register-new-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-new-user.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-new-user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAc;IACvE,MAAM,CAAC,IAAI,CACP,mBAAmB,EACnB,8BAA8B,EAC9B;QACI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,MAAM,OAAO,GAAuB;YAChC,UAAU,EAAE,MAAM,CAAC,QAAQ;SAC9B,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;QACpD,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function registerRemoveUserPowerShell(server, config) {
|
|
5
|
+
server.tool("security-remove-user", "Removes the Sitecore user.", {
|
|
6
|
+
identity: z.string(),
|
|
7
|
+
}, async (params) => {
|
|
8
|
+
const command = `Remove-User`;
|
|
9
|
+
const options = {
|
|
10
|
+
"Identity": params.identity,
|
|
11
|
+
};
|
|
12
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=register-remove-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-remove-user.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-remove-user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,MAAc;IAC1E,MAAM,CAAC,IAAI,CACP,sBAAsB,EACtB,4BAA4B,EAC5B;QACI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,aAAa,CAAC;QAC9B,MAAM,OAAO,GAAuB;YAChC,UAAU,EAAE,MAAM,CAAC,QAAQ;SAC9B,CAAC;QAEF,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -2,7 +2,11 @@ import { z } from "zod";
|
|
|
2
2
|
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
3
|
import { register } from "module";
|
|
4
4
|
import { registerGetUserPowerShell } from "./register-get-user.js";
|
|
5
|
+
import { registerNewUserPowerShell } from "./register-new-user.js";
|
|
6
|
+
import { registerRemoveUserPowerShell } from "./register-remove-user.js";
|
|
5
7
|
export function registerSecurityPowerShell(server, config) {
|
|
6
8
|
registerGetUserPowerShell(server, config);
|
|
9
|
+
registerNewUserPowerShell(server, config);
|
|
10
|
+
registerRemoveUserPowerShell(server, config);
|
|
7
11
|
}
|
|
8
12
|
//# sourceMappingURL=register-security-powershell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-security-powershell.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-security-powershell.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-security-powershell.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/security/register-security-powershell.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAc;IACxE,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC"}
|