microcms-mcp-server 0.8.0 → 0.9.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/README.md +142 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +112 -25
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client.d.ts +117 -28
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +293 -48
  8. package/dist/client.js.map +1 -1
  9. package/dist/config.d.ts +24 -5
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +146 -2
  12. package/dist/config.js.map +1 -1
  13. package/dist/index.js +31 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/server.d.ts +8 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +183 -153
  18. package/dist/server.js.map +1 -1
  19. package/dist/tools/create-content-draft.d.ts +2 -2
  20. package/dist/tools/create-content-draft.d.ts.map +1 -1
  21. package/dist/tools/create-content-draft.js +7 -3
  22. package/dist/tools/create-content-draft.js.map +1 -1
  23. package/dist/tools/create-content-published.d.ts +2 -2
  24. package/dist/tools/create-content-published.d.ts.map +1 -1
  25. package/dist/tools/create-content-published.js +7 -3
  26. package/dist/tools/create-content-published.js.map +1 -1
  27. package/dist/tools/create-contents-bulk.d.ts +4 -4
  28. package/dist/tools/create-contents-bulk.d.ts.map +1 -1
  29. package/dist/tools/create-contents-bulk.js +14 -6
  30. package/dist/tools/create-contents-bulk.js.map +1 -1
  31. package/dist/tools/delete-content.d.ts +2 -2
  32. package/dist/tools/delete-content.d.ts.map +1 -1
  33. package/dist/tools/delete-content.js +6 -2
  34. package/dist/tools/delete-content.js.map +1 -1
  35. package/dist/tools/delete-media.d.ts +2 -2
  36. package/dist/tools/delete-media.d.ts.map +1 -1
  37. package/dist/tools/delete-media.js +6 -2
  38. package/dist/tools/delete-media.js.map +1 -1
  39. package/dist/tools/get-api-info.d.ts +2 -2
  40. package/dist/tools/get-api-info.d.ts.map +1 -1
  41. package/dist/tools/get-api-info.js +6 -2
  42. package/dist/tools/get-api-info.js.map +1 -1
  43. package/dist/tools/get-apis-list.d.ts +2 -2
  44. package/dist/tools/get-apis-list.d.ts.map +1 -1
  45. package/dist/tools/get-apis-list.js +9 -4
  46. package/dist/tools/get-apis-list.js.map +1 -1
  47. package/dist/tools/get-content-meta.d.ts +2 -2
  48. package/dist/tools/get-content-meta.d.ts.map +1 -1
  49. package/dist/tools/get-content-meta.js +6 -2
  50. package/dist/tools/get-content-meta.js.map +1 -1
  51. package/dist/tools/get-content.d.ts +2 -2
  52. package/dist/tools/get-content.d.ts.map +1 -1
  53. package/dist/tools/get-content.js +6 -2
  54. package/dist/tools/get-content.js.map +1 -1
  55. package/dist/tools/get-list-meta.d.ts +2 -2
  56. package/dist/tools/get-list-meta.d.ts.map +1 -1
  57. package/dist/tools/get-list-meta.js +6 -2
  58. package/dist/tools/get-list-meta.js.map +1 -1
  59. package/dist/tools/get-list.d.ts +2 -2
  60. package/dist/tools/get-list.d.ts.map +1 -1
  61. package/dist/tools/get-list.js +6 -2
  62. package/dist/tools/get-list.js.map +1 -1
  63. package/dist/tools/get-media.d.ts +2 -2
  64. package/dist/tools/get-media.d.ts.map +1 -1
  65. package/dist/tools/get-media.js +9 -4
  66. package/dist/tools/get-media.js.map +1 -1
  67. package/dist/tools/get-member.d.ts +2 -2
  68. package/dist/tools/get-member.d.ts.map +1 -1
  69. package/dist/tools/get-member.js +6 -2
  70. package/dist/tools/get-member.js.map +1 -1
  71. package/dist/tools/get-services.d.ts +19 -0
  72. package/dist/tools/get-services.d.ts.map +1 -0
  73. package/dist/tools/get-services.js +48 -0
  74. package/dist/tools/get-services.js.map +1 -0
  75. package/dist/tools/patch-content-created-by.d.ts +2 -2
  76. package/dist/tools/patch-content-created-by.d.ts.map +1 -1
  77. package/dist/tools/patch-content-created-by.js +10 -3
  78. package/dist/tools/patch-content-created-by.js.map +1 -1
  79. package/dist/tools/patch-content-status.d.ts +2 -2
  80. package/dist/tools/patch-content-status.d.ts.map +1 -1
  81. package/dist/tools/patch-content-status.js +6 -2
  82. package/dist/tools/patch-content-status.js.map +1 -1
  83. package/dist/tools/patch-content.d.ts +2 -2
  84. package/dist/tools/patch-content.d.ts.map +1 -1
  85. package/dist/tools/patch-content.js +8 -3
  86. package/dist/tools/patch-content.js.map +1 -1
  87. package/dist/tools/update-content-draft.d.ts +2 -2
  88. package/dist/tools/update-content-draft.d.ts.map +1 -1
  89. package/dist/tools/update-content-draft.js +7 -3
  90. package/dist/tools/update-content-draft.js.map +1 -1
  91. package/dist/tools/update-content-published.d.ts +2 -2
  92. package/dist/tools/update-content-published.d.ts.map +1 -1
  93. package/dist/tools/update-content-published.js +7 -3
  94. package/dist/tools/update-content-published.js.map +1 -1
  95. package/dist/tools/upload-media.d.ts +2 -2
  96. package/dist/tools/upload-media.d.ts.map +1 -1
  97. package/dist/tools/upload-media.js +12 -6
  98. package/dist/tools/upload-media.js.map +1 -1
  99. package/dist/transport/http.d.ts +4 -0
  100. package/dist/transport/http.d.ts.map +1 -0
  101. package/dist/transport/http.js +63 -0
  102. package/dist/transport/http.js.map +1 -0
  103. package/dist/transport/index.d.ts +4 -0
  104. package/dist/transport/index.d.ts.map +1 -0
  105. package/dist/transport/index.js +12 -0
  106. package/dist/transport/index.js.map +1 -0
  107. package/dist/transport/stdio.d.ts +3 -0
  108. package/dist/transport/stdio.d.ts.map +1 -0
  109. package/dist/transport/stdio.js +6 -0
  110. package/dist/transport/stdio.js.map +1 -0
  111. package/dist/types.d.ts +78 -2
  112. package/dist/types.d.ts.map +1 -1
  113. package/package.json +11 -8
  114. package/dist/tools/get-contents-list-management.d.ts +0 -5
  115. package/dist/tools/get-contents-list-management.d.ts.map +0 -1
  116. package/dist/tools/get-contents-list-management.js +0 -39
  117. package/dist/tools/get-contents-list-management.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ import { bearerAuth, StreamableHTTPTransport } from '@hono/mcp';
2
+ import { serve } from '@hono/node-server';
3
+ import { Hono } from 'hono';
4
+ import { cors } from 'hono/cors';
5
+ export async function startHttpTransport(serverFactory, config) {
6
+ const app = new Hono();
7
+ // CORS
8
+ app.use('/mcp', cors());
9
+ // Bearer token auth (only if configured)
10
+ if (config.auth.enabled && config.auth.bearerToken) {
11
+ app.use('/mcp', bearerAuth({ token: config.auth.bearerToken }));
12
+ }
13
+ // Health check
14
+ app.get('/health', (c) => c.json({ status: 'ok' }));
15
+ // Session management for stateful mode
16
+ const activeSessions = new Map();
17
+ const sessionLastAccess = new Map();
18
+ // Session timeout: clean up abandoned sessions (30 minutes)
19
+ const SESSION_TIMEOUT_MS = 30 * 60 * 1000;
20
+ const cleanupInterval = setInterval(() => {
21
+ const now = Date.now();
22
+ for (const [sessionId, lastAccess] of sessionLastAccess) {
23
+ if (now - lastAccess > SESSION_TIMEOUT_MS) {
24
+ activeSessions.delete(sessionId);
25
+ sessionLastAccess.delete(sessionId);
26
+ }
27
+ }
28
+ }, 60 * 1000);
29
+ cleanupInterval.unref();
30
+ // MCP endpoint (stateful: session management)
31
+ app.all('/mcp', async (c) => {
32
+ const sessionId = c.req.header('mcp-session-id');
33
+ // Route to existing session
34
+ if (sessionId) {
35
+ const existingTransport = activeSessions.get(sessionId);
36
+ if (existingTransport) {
37
+ sessionLastAccess.set(sessionId, Date.now());
38
+ return existingTransport.handleRequest(c);
39
+ }
40
+ }
41
+ // Create new session
42
+ const transport = new StreamableHTTPTransport({
43
+ sessionIdGenerator: () => crypto.randomUUID(),
44
+ onsessioninitialized: (newSessionId) => {
45
+ activeSessions.set(newSessionId, transport);
46
+ sessionLastAccess.set(newSessionId, Date.now());
47
+ },
48
+ onsessionclosed: (closedSessionId) => {
49
+ activeSessions.delete(closedSessionId);
50
+ sessionLastAccess.delete(closedSessionId);
51
+ },
52
+ });
53
+ const server = serverFactory();
54
+ await server.connect(transport);
55
+ return transport.handleRequest(c);
56
+ });
57
+ const { host, port } = config.transport;
58
+ serve({ fetch: app.fetch, hostname: host, port }, (info) => {
59
+ // biome-ignore lint/suspicious/noConsole: intentional server startup log to stderr
60
+ console.error(`microCMS MCP Server (HTTP) listening on http://${info.address}:${info.port}/mcp`);
61
+ });
62
+ }
63
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import type { FullAppConfig } from '../types.js';
3
+ export declare function startTransport(serverFactory: () => Server, config: FullAppConfig): Promise<void>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,MAAM,EAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,12 @@
1
+ import { startHttpTransport } from './http.js';
2
+ import { startStdioTransport } from './stdio.js';
3
+ export async function startTransport(serverFactory, config) {
4
+ if (config.transport.mode === 'http') {
5
+ await startHttpTransport(serverFactory, config);
6
+ }
7
+ else {
8
+ const server = serverFactory();
9
+ await startStdioTransport(server);
10
+ }
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAA2B,EAC3B,MAAqB;IAErB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,MAAM,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ export declare function startStdioTransport(server: Server): Promise<void>;
3
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGxE,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
@@ -0,0 +1,6 @@
1
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
+ export async function startStdioTransport(server) {
3
+ const transport = new StdioServerTransport();
4
+ await server.connect(transport);
5
+ }
6
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,37 @@
1
+ export interface ServiceConfig {
2
+ id: string;
3
+ apiKey: string;
4
+ }
5
+ export type ConfigMode = 'single' | 'multi';
6
+ export interface SingleServiceConfig {
7
+ mode: 'single';
8
+ serviceDomain: string;
9
+ apiKey: string;
10
+ }
11
+ export interface MultiServiceConfig {
12
+ mode: 'multi';
13
+ services: ServiceConfig[];
14
+ }
15
+ export type AppConfig = SingleServiceConfig | MultiServiceConfig;
16
+ export type TransportMode = 'stdio' | 'http';
17
+ export interface TransportConfig {
18
+ mode: TransportMode;
19
+ host: string;
20
+ port: number;
21
+ }
22
+ export interface AuthConfig {
23
+ enabled: boolean;
24
+ bearerToken?: string;
25
+ }
26
+ export interface ServiceInfo {
27
+ id: string;
28
+ name: string;
29
+ }
30
+ export interface FullAppConfig {
31
+ services: AppConfig;
32
+ transport: TransportConfig;
33
+ auth: AuthConfig;
34
+ }
1
35
  export interface MicroCMSListOptions {
2
36
  draftKey?: string;
3
37
  limit?: number;
@@ -27,7 +61,7 @@ export interface MicroCMSContent {
27
61
  updatedAt: string;
28
62
  publishedAt?: string;
29
63
  revisedAt?: string;
30
- [key: string]: any;
64
+ [key: string]: unknown;
31
65
  }
32
66
  export interface MicroCMSListResponse<T = MicroCMSContent> {
33
67
  contents: T[];
@@ -51,7 +85,7 @@ export interface MemberInfo {
51
85
  export interface ToolParameters {
52
86
  endpoint: string;
53
87
  contentId?: string;
54
- content?: Record<string, any>;
88
+ content?: Record<string, unknown>;
55
89
  draftKey?: string;
56
90
  limit?: number;
57
91
  offset?: number;
@@ -101,4 +135,46 @@ export interface BulkToolParameters {
101
135
  endpoint: string;
102
136
  contents: BulkCreateItem[];
103
137
  }
138
+ export interface ApiInfo {
139
+ apiName: string;
140
+ apiEndpoint: string;
141
+ apiType: string[];
142
+ apiFields: unknown[];
143
+ customFields?: unknown[];
144
+ }
145
+ export interface ApiListResponse {
146
+ apis: ApiInfo[];
147
+ }
148
+ export interface ContentMeta {
149
+ id: string;
150
+ status: string[];
151
+ createdBy?: string;
152
+ updatedBy?: string;
153
+ reservationTime?: string | null;
154
+ closedAt?: string | null;
155
+ customStatus?: unknown;
156
+ [key: string]: unknown;
157
+ }
158
+ export interface ContentMetaListResponse {
159
+ contents: ContentMeta[];
160
+ totalCount: number;
161
+ offset: number;
162
+ limit: number;
163
+ }
164
+ export interface MediaItem {
165
+ url: string;
166
+ width?: number;
167
+ height?: number;
168
+ fileName?: string;
169
+ fileSize?: number;
170
+ mimeType?: string;
171
+ createdAt: string;
172
+ }
173
+ export interface MediaListResponse {
174
+ media: MediaItem[];
175
+ token?: string;
176
+ }
177
+ export interface MediaUploadResponse {
178
+ url: string;
179
+ }
104
180
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microcms-mcp-server",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "microCMS MCP Bundle - microCMSのコンテンツAPIやマネジメントAPIを利用し、LLMからコンテンツ管理ができるMCP Bundle",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -16,10 +16,13 @@
16
16
  "scripts": {
17
17
  "build": "tsc",
18
18
  "start": "node dist/index.js",
19
+ "start:http": "node dist/index.js --transport http",
19
20
  "start:args": "node dist/index.js --service-id your-service-id --api-key your-api-key",
20
21
  "dev": "tsc --watch & node --watch dist/index.js",
21
- "lint": "eslint src/**/*.ts",
22
- "format": "prettier --write src/**/*.ts",
22
+ "lint": "biome lint src/",
23
+ "format": "biome format --write src/",
24
+ "check": "biome check src/",
25
+ "check:fix": "biome check --write src/",
23
26
  "prepublishOnly": "npm run build",
24
27
  "test": "echo \"No tests specified\" && exit 0"
25
28
  },
@@ -48,15 +51,15 @@
48
51
  "homepage": "https://github.com/microcmsio/microcms-mcp-server#readme",
49
52
  "license": "MIT",
50
53
  "dependencies": {
51
- "@modelcontextprotocol/sdk": "^1.0.0",
54
+ "@hono/mcp": "^0.2.3",
55
+ "@hono/node-server": "^1.19.9",
56
+ "@modelcontextprotocol/sdk": "^1.27.0",
57
+ "hono": "^4.12.0",
52
58
  "microcms-js-sdk": "^3.1.2"
53
59
  },
54
60
  "devDependencies": {
61
+ "@biomejs/biome": "2.3.4",
55
62
  "@types/node": "^20.0.0",
56
- "@typescript-eslint/eslint-plugin": "^6.0.0",
57
- "@typescript-eslint/parser": "^6.0.0",
58
- "eslint": "^8.0.0",
59
- "prettier": "^3.0.0",
60
63
  "typescript": "^5.0.0"
61
64
  },
62
65
  "engines": {
@@ -1,5 +0,0 @@
1
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
- import type { ToolParameters } from '../types.js';
3
- export declare const getListMetaTool: Tool;
4
- export declare function handleGetListMeta(params: ToolParameters): Promise<any>;
5
- //# sourceMappingURL=get-contents-list-management.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-contents-list-management.d.ts","sourceRoot":"","sources":["../../src/tools/get-contents-list-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,IAwB7B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,cAAc,gBAY7D"}
@@ -1,39 +0,0 @@
1
- import { getListMeta } from '../client.js';
2
- export const getListMetaTool = {
3
- name: 'microcms_get_list_meta',
4
- description: 'Get a list of contents with metadata from microCMS Management API. IMPORTANT: Use this tool ONLY when the user message contains "メタ" (meta) or "メタ情報" (metadata). This API returns metadata information such as status, createdBy, updatedBy, reservationTime, closedAt, and customStatus that are not available in the regular content API. For regular content retrieval, use microcms_get_list instead.',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- endpoint: {
9
- type: 'string',
10
- description: 'Content type name (e.g., "blogs", "news")',
11
- },
12
- limit: {
13
- type: 'number',
14
- description: 'Number of contents to retrieve (default: 10, max: 100)',
15
- minimum: 1,
16
- maximum: 100,
17
- },
18
- offset: {
19
- type: 'number',
20
- description: 'Offset for pagination (default: 0)',
21
- minimum: 0,
22
- },
23
- },
24
- required: ['endpoint'],
25
- },
26
- };
27
- export async function handleGetListMeta(params) {
28
- const { endpoint, limit, offset } = params;
29
- if (!endpoint) {
30
- throw new Error('endpoint is required');
31
- }
32
- const options = {};
33
- if (limit !== undefined)
34
- options.limit = limit;
35
- if (offset !== undefined)
36
- options.offset = offset;
37
- return await getListMeta(endpoint, options);
38
- }
39
- //# sourceMappingURL=get-contents-list-management.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-contents-list-management.js","sourceRoot":"","sources":["../../src/tools/get-contents-list-management.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,eAAe,GAAS;IACjC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,4YAA4Y;IACzZ,WAAW,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aAC3D;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;aACf;YACD,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,CAAC;aACb;SACJ;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACzB;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAsB;IAC1D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAElD,OAAO,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}