@mcp-monorepo/notion-query 1.1.0 → 1.3.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 (134) hide show
  1. package/dist/index.js +56 -7
  2. package/dist/index.js.map +1 -1
  3. package/dist/lib/client.d.ts +9 -0
  4. package/dist/lib/client.d.ts.map +1 -0
  5. package/dist/lib/client.js +19 -0
  6. package/dist/lib/client.js.map +1 -0
  7. package/dist/lib/config.d.ts +44 -0
  8. package/dist/lib/config.d.ts.map +1 -0
  9. package/dist/lib/config.js +49 -0
  10. package/dist/lib/config.js.map +1 -0
  11. package/dist/lib/id-utils.d.ts +8 -0
  12. package/dist/lib/id-utils.d.ts.map +1 -0
  13. package/dist/lib/id-utils.js +20 -0
  14. package/dist/lib/id-utils.js.map +1 -0
  15. package/dist/lib/markdown-converter.d.ts +8 -0
  16. package/dist/lib/markdown-converter.d.ts.map +1 -0
  17. package/dist/lib/markdown-converter.js +95 -0
  18. package/dist/lib/markdown-converter.js.map +1 -0
  19. package/dist/lib/notion-syncer.d.ts +27 -0
  20. package/dist/lib/notion-syncer.d.ts.map +1 -0
  21. package/dist/lib/notion-syncer.js +212 -0
  22. package/dist/lib/notion-syncer.js.map +1 -0
  23. package/dist/lib/parser.d.ts +13 -0
  24. package/dist/lib/parser.d.ts.map +1 -0
  25. package/dist/lib/parser.js +88 -0
  26. package/dist/lib/parser.js.map +1 -0
  27. package/dist/lib/property-parser.d.ts +23 -0
  28. package/dist/lib/property-parser.d.ts.map +1 -0
  29. package/dist/lib/property-parser.js +200 -0
  30. package/dist/lib/property-parser.js.map +1 -0
  31. package/dist/lib/response-formatter.d.ts +16 -0
  32. package/dist/lib/response-formatter.d.ts.map +1 -0
  33. package/dist/lib/response-formatter.js +173 -0
  34. package/dist/lib/response-formatter.js.map +1 -0
  35. package/dist/lib/sync-state-manager.d.ts +29 -0
  36. package/dist/lib/sync-state-manager.d.ts.map +1 -0
  37. package/dist/lib/sync-state-manager.js +45 -0
  38. package/dist/lib/sync-state-manager.js.map +1 -0
  39. package/dist/local-rag/DEMO.d.ts +22 -0
  40. package/dist/local-rag/DEMO.d.ts.map +1 -0
  41. package/dist/local-rag/DEMO.js +142 -0
  42. package/dist/local-rag/DEMO.js.map +1 -0
  43. package/dist/local-rag/chunker.d.ts +24 -0
  44. package/dist/local-rag/chunker.d.ts.map +1 -0
  45. package/dist/local-rag/chunker.js +58 -0
  46. package/dist/local-rag/chunker.js.map +1 -0
  47. package/dist/local-rag/embedder.d.ts +43 -0
  48. package/dist/local-rag/embedder.d.ts.map +1 -0
  49. package/dist/local-rag/embedder.js +74 -0
  50. package/dist/local-rag/embedder.js.map +1 -0
  51. package/dist/local-rag/embedder.service.d.ts +15 -0
  52. package/dist/local-rag/embedder.service.d.ts.map +1 -0
  53. package/dist/local-rag/embedder.service.js +84 -0
  54. package/dist/local-rag/embedder.service.js.map +1 -0
  55. package/dist/local-rag/embedder.worker.d.ts +2 -0
  56. package/dist/local-rag/embedder.worker.d.ts.map +1 -0
  57. package/dist/local-rag/embedder.worker.js +34 -0
  58. package/dist/local-rag/embedder.worker.js.map +1 -0
  59. package/dist/local-rag/errors.d.ts +31 -0
  60. package/dist/local-rag/errors.d.ts.map +1 -0
  61. package/dist/local-rag/errors.js +47 -0
  62. package/dist/local-rag/errors.js.map +1 -0
  63. package/dist/local-rag/html-parser.d.ts +2 -0
  64. package/dist/local-rag/html-parser.d.ts.map +1 -0
  65. package/dist/local-rag/html-parser.js +32 -0
  66. package/dist/local-rag/html-parser.js.map +1 -0
  67. package/dist/local-rag/index.d.ts +67 -0
  68. package/dist/local-rag/index.d.ts.map +1 -0
  69. package/dist/local-rag/index.js +410 -0
  70. package/dist/local-rag/index.js.map +1 -0
  71. package/dist/local-rag/parser.d.ts +59 -0
  72. package/dist/local-rag/parser.d.ts.map +1 -0
  73. package/dist/local-rag/parser.js +206 -0
  74. package/dist/local-rag/parser.js.map +1 -0
  75. package/dist/local-rag/types.d.ts +209 -0
  76. package/dist/local-rag/types.d.ts.map +1 -0
  77. package/dist/local-rag/types.js +5 -0
  78. package/dist/local-rag/types.js.map +1 -0
  79. package/dist/local-rag/utils/pool.d.ts +60 -0
  80. package/dist/local-rag/utils/pool.d.ts.map +1 -0
  81. package/dist/local-rag/utils/pool.js +140 -0
  82. package/dist/local-rag/utils/pool.js.map +1 -0
  83. package/dist/local-rag/utils/typed-emitter.d.ts +28 -0
  84. package/dist/local-rag/utils/typed-emitter.d.ts.map +1 -0
  85. package/dist/local-rag/utils/typed-emitter.js +44 -0
  86. package/dist/local-rag/utils/typed-emitter.js.map +1 -0
  87. package/dist/local-rag/vectordb/index.d.ts +91 -0
  88. package/dist/local-rag/vectordb/index.d.ts.map +1 -0
  89. package/dist/local-rag/vectordb/index.js +278 -0
  90. package/dist/local-rag/vectordb/index.js.map +1 -0
  91. package/dist/local-rag/vectordb/manager.d.ts +28 -0
  92. package/dist/local-rag/vectordb/manager.d.ts.map +1 -0
  93. package/dist/local-rag/vectordb/manager.js +91 -0
  94. package/dist/local-rag/vectordb/manager.js.map +1 -0
  95. package/dist/local-rag/vectordb/migration.d.ts +27 -0
  96. package/dist/local-rag/vectordb/migration.d.ts.map +1 -0
  97. package/dist/local-rag/vectordb/migration.js +121 -0
  98. package/dist/local-rag/vectordb/migration.js.map +1 -0
  99. package/dist/local-rag/vectordb/retriever.d.ts +51 -0
  100. package/dist/local-rag/vectordb/retriever.d.ts.map +1 -0
  101. package/dist/local-rag/vectordb/retriever.js +157 -0
  102. package/dist/local-rag/vectordb/retriever.js.map +1 -0
  103. package/dist/local-rag/vectordb/schema.d.ts +33 -0
  104. package/dist/local-rag/vectordb/schema.d.ts.map +1 -0
  105. package/dist/local-rag/vectordb/schema.js +102 -0
  106. package/dist/local-rag/vectordb/schema.js.map +1 -0
  107. package/dist/local-rag/watcher.d.ts +48 -0
  108. package/dist/local-rag/watcher.d.ts.map +1 -0
  109. package/dist/local-rag/watcher.js +102 -0
  110. package/dist/local-rag/watcher.js.map +1 -0
  111. package/dist/tools/create-pages.d.ts +4 -0
  112. package/dist/tools/create-pages.d.ts.map +1 -0
  113. package/dist/tools/create-pages.js +184 -0
  114. package/dist/tools/create-pages.js.map +1 -0
  115. package/dist/tools/fetch.d.ts +4 -0
  116. package/dist/tools/fetch.d.ts.map +1 -0
  117. package/dist/tools/fetch.js +90 -0
  118. package/dist/tools/fetch.js.map +1 -0
  119. package/dist/tools/query-datasource.d.ts +4 -0
  120. package/dist/tools/query-datasource.d.ts.map +1 -0
  121. package/dist/tools/{notion-query.js → query-datasource.js} +31 -38
  122. package/dist/tools/query-datasource.js.map +1 -0
  123. package/dist/tools/search.d.ts +12 -0
  124. package/dist/tools/search.d.ts.map +1 -0
  125. package/dist/tools/search.js +75 -0
  126. package/dist/tools/search.js.map +1 -0
  127. package/dist/tools/update-page.d.ts +4 -0
  128. package/dist/tools/update-page.d.ts.map +1 -0
  129. package/dist/tools/update-page.js +135 -0
  130. package/dist/tools/update-page.js.map +1 -0
  131. package/package.json +23 -8
  132. package/dist/tools/notion-query.d.ts +0 -3
  133. package/dist/tools/notion-query.d.ts.map +0 -1
  134. package/dist/tools/notion-query.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { type NotionSyncer } from '../lib/notion-syncer.js';
3
+ export declare const registerUpdatePageTool: (server: McpServer, notionSyncer: NotionSyncer) => void;
4
+ //# sourceMappingURL=update-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-page.d.ts","sourceRoot":"","sources":["../../src/tools/update-page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAaxE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAmC3D,eAAO,MAAM,sBAAsB,GAAI,QAAQ,SAAS,EAAE,cAAc,YAAY,SA4GhF,CAAA"}
@@ -0,0 +1,135 @@
1
+ import { registerTool } from '@mcp-monorepo/shared';
2
+ import { markdownToBlocks } from '@tryfabric/martian';
3
+ import { z } from 'zod';
4
+ import { getNotionClient } from '../lib/client.js';
5
+ import { normalizeId } from '../lib/id-utils.js';
6
+ import { notionToMarkdown } from '../lib/markdown-converter.js';
7
+ import { parsePropertiesForUpdate } from '../lib/property-parser.js';
8
+ const description = `Update a Notion page's properties or content.
9
+ Notion page properties are a JSON map of property names to SQLite values.
10
+ For pages in a database, use the SQLite schema definition shown in <database>.
11
+ For pages outside of a database, the only allowed property is "title", which is the title of the page in inline markdown format.
12
+ Notion page content is a string in Notion-flavored Markdown format. See the "create-pages" tool description for the full enhanced Markdown spec.
13
+ Before updating a page's content with this tool, use the "fetch" tool first to get the existing content to find out the Markdown snippets to use in the "replace_content_range" or "insert_content_after" commands.
14
+ IMPORTANT: Some property types require expanded formats:
15
+ - Date properties: Split into "date:{property}:start", "date:{property}:end" (optional), and "date:{property}:is_datetime" (0 or 1)
16
+ - Place properties: Split into "place:{property}:name", "place:{property}:address", "place:{property}:latitude", "place:{property}:longitude", and "place:{property}:google_place_id" (optional)
17
+ Number properties accept JavaScript numbers (not strings). Use null to remove a property's value. Boolean values like "__YES__" are supported for checkbox properties.`;
18
+ /** Helper function to find and modify a text range based on a start...end snippet */
19
+ function findAndModifyText(fullText, snippet, newText, mode) {
20
+ if (!snippet.includes('...')) {
21
+ throw new Error('Invalid selection_with_ellipsis format. Must contain exactly one "...".');
22
+ }
23
+ const [start, end] = snippet.split('...').map((p) => p.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
24
+ const regex = new RegExp(`(${start})([\\s\\S]*?)(${end})`, 's');
25
+ const match = fullText.match(regex);
26
+ if (!match)
27
+ throw new Error(`Could not find the specified content range: "${snippet}"`);
28
+ const originalMatch = match[0];
29
+ if (mode === 'replace')
30
+ return fullText.replace(originalMatch, newText);
31
+ return fullText.replace(originalMatch, originalMatch + newText);
32
+ }
33
+ export const registerUpdatePageTool = (server, notionSyncer) => registerTool(server, {
34
+ name: 'notion-update-page',
35
+ title: 'Update Notion page',
36
+ description,
37
+ inputSchema: {
38
+ data: z.discriminatedUnion('command', [
39
+ z
40
+ .object({
41
+ page_id: z.string().describe('The ID of the page to update, with or without dashes.'),
42
+ command: z.literal('update_properties'),
43
+ properties: z.record(z.union([z.string(), z.number(), z.boolean(), z.null()])),
44
+ })
45
+ .strict(),
46
+ z
47
+ .object({
48
+ page_id: z.string().describe('The ID of the page to update, with or without dashes.'),
49
+ command: z.literal('replace_content'),
50
+ new_str: z.string().describe('The new string to replace all content with.'),
51
+ })
52
+ .strict(),
53
+ z
54
+ .object({
55
+ page_id: z.string().describe('The ID of the page to update, with or without dashes.'),
56
+ command: z.literal('replace_content_range'),
57
+ selection_with_ellipsis: z.string().describe('Unique start and end snippet of the string to replace...'),
58
+ new_str: z.string().describe('The new string to replace the old string with.'),
59
+ })
60
+ .strict(),
61
+ z
62
+ .object({
63
+ page_id: z.string().describe('The ID of the page to update, with or without dashes.'),
64
+ command: z.literal('insert_content_after'),
65
+ selection_with_ellipsis: z.string().describe('Unique start and end snippet of the string to match...'),
66
+ new_str: z.string().describe('The new content to insert.'),
67
+ })
68
+ .strict(),
69
+ ]),
70
+ },
71
+ outputSchema: {
72
+ page_id: z.string(),
73
+ url: z.string(),
74
+ last_edited_time: z.string(),
75
+ },
76
+ async fetcher(args) {
77
+ const notion = getNotionClient();
78
+ const { data } = args;
79
+ const pageId = normalizeId(data.page_id);
80
+ if (!pageId)
81
+ throw new Error(`Invalid page_id: ${data.page_id}`);
82
+ switch (data.command) {
83
+ case 'update_properties': {
84
+ const page = (await notion.pages.retrieve({ page_id: pageId }));
85
+ if (page.parent.type !== 'data_source_id') {
86
+ throw new Error('Cannot update properties on a page that is not in a database.');
87
+ }
88
+ const dataSource = (await notion.dataSources.retrieve({
89
+ data_source_id: page.parent.data_source_id,
90
+ }));
91
+ const notionProperties = parsePropertiesForUpdate(data.properties, dataSource.properties);
92
+ return (await notion.pages.update({ page_id: pageId, properties: notionProperties }));
93
+ }
94
+ case 'replace_content':
95
+ case 'replace_content_range':
96
+ case 'insert_content_after': {
97
+ const allBlocks = (await notion.blocks.children.list({ block_id: pageId })).results;
98
+ let newMarkdown;
99
+ if (data.command === 'replace_content') {
100
+ newMarkdown = data.new_str;
101
+ }
102
+ else {
103
+ const originalMd = await notionToMarkdown(allBlocks);
104
+ const mode = data.command === 'replace_content_range' ? 'replace' : 'insert_after';
105
+ newMarkdown = findAndModifyText(originalMd, data.selection_with_ellipsis, data.new_str, mode);
106
+ }
107
+ // Delete all existing blocks before adding new ones.
108
+ // This is inefficient but necessary for replacement commands.
109
+ const deletePromises = allBlocks.map((block) => notion.blocks.delete({ block_id: block.id }));
110
+ await Promise.all(deletePromises);
111
+ const newBlocks = markdownToBlocks(newMarkdown);
112
+ const chunks = [];
113
+ for (let i = 0; i < newBlocks.length; i += 100) {
114
+ chunks.push(newBlocks.slice(i, i + 100));
115
+ }
116
+ for (const chunk of chunks) {
117
+ await notion.blocks.children.append({ block_id: pageId, children: chunk });
118
+ }
119
+ return (await notion.pages.retrieve({ page_id: pageId }));
120
+ }
121
+ default:
122
+ // This case should be unreachable due to Zod validation
123
+ throw new Error('Invalid command for update-page tool.');
124
+ }
125
+ },
126
+ async formatter(updatedPage) {
127
+ await notionSyncer.triggerImmediateSync(updatedPage.id);
128
+ return {
129
+ page_id: updatedPage.id,
130
+ url: updatedPage.url,
131
+ last_edited_time: updatedPage.last_edited_time,
132
+ };
133
+ },
134
+ });
135
+ //# sourceMappingURL=update-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-page.js","sourceRoot":"","sources":["../../src/tools/update-page.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,11 @@
1
1
  {
2
2
  "name": "@mcp-monorepo/notion-query",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "description": "MCP server for querying Notion data sources.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
- "bin": {
9
- "@mcp-monorepo/notion-query": "./dist/index.js"
10
- },
8
+ "bin": "./dist/index.js",
11
9
  "files": [
12
10
  "dist"
13
11
  ],
@@ -18,6 +16,7 @@
18
16
  "build": "tsc -b",
19
17
  "dev": "tsc --watch",
20
18
  "start": "node dist/index.js",
19
+ "demo": "node dist/local-rag/DEMO.js",
21
20
  "test": "vitest run --passWithNoTests",
22
21
  "test:watch": "vitest",
23
22
  "test:coverage": "vitest run --coverage",
@@ -25,14 +24,30 @@
25
24
  "clean": "rimraf dist tsconfig.tsbuildinfo"
26
25
  },
27
26
  "dependencies": {
27
+ "@huggingface/transformers": "^3.8.1",
28
+ "@lancedb/lancedb": "0.22.2",
29
+ "@langchain/core": "^1.1.8",
30
+ "@langchain/textsplitters": "^1.0.1",
31
+ "@mcp-monorepo/shared": "workspace:*",
28
32
  "@modelcontextprotocol/sdk": "^1.0.0",
29
- "zod": "^3.25.76",
30
- "@mcp-monorepo/shared": "*"
33
+ "@mozilla/readability": "^0.6.0",
34
+ "@notionhq/client": "^5.6.0",
35
+ "@tryfabric/martian": "^1.2.4",
36
+ "apache-arrow": "^21.1.0",
37
+ "chokidar": "^5.0.0",
38
+ "jsdom": "^27.3.0",
39
+ "mammoth": "^1.11.0",
40
+ "notion-to-md": "^3.1.9",
41
+ "papaparse": "^5.5.3",
42
+ "pdf-parse": "^2.4.5",
43
+ "zod": "^3.25.76"
31
44
  },
32
45
  "devDependencies": {
46
+ "@types/jsdom": "^27",
33
47
  "@types/node": "^22.14.1",
48
+ "@types/papaparse": "^5",
49
+ "rimraf": "^6.0.1",
34
50
  "typescript": "^5.8.3",
35
- "vitest": "^3.2.4",
36
- "rimraf": "^6.0.1"
51
+ "vitest": "^3.2.4"
37
52
  }
38
53
  }
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare const registerNotionQueryTool: (server: McpServer) => void;
3
- //# sourceMappingURL=notion-query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notion-query.d.ts","sourceRoot":"","sources":["../../src/tools/notion-query.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,uBAAuB,GAAI,QAAQ,SAAS,SAuFrD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notion-query.js","sourceRoot":"","sources":["../../src/tools/notion-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAiB,EAAE,EAAE,CAC3D,YAAY,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,4BAA4B;IACnC,WAAW,EAAE,sgBAAsgB;IACnhB,WAAW,EAAE;QACX,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,CAAC,iGAAiG,CAAC;QAC9G,MAAM,EAAE,CAAC;aACN,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/B,QAAQ,EAAE;aACV,QAAQ,CACP,+GAA+G,CAChH;QACH,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACxC,QAAQ,EAAE;aACV,QAAQ,CAAC,2FAA2F,CAAC;QACxG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACtG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;QACrF,iBAAiB,EAAE,CAAC;aACjB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,4FAA4F,CAAC;KAC1G;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAClF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC5E;IACD,UAAU,EAAE,IAAI;IAChB,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAA;QAE3F,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACrF,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAEtE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,0CAA0C,YAAY,QAAQ,CAAC,CAAA;QAEtF,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;YACvD,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,CAAA;QACxC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAChC,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAC7B,IAAI,YAAY;YAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAClD,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAEzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,cAAc,EAAE;gBACzC,gBAAgB,EAAE,YAAY;gBAC9B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAA;QAC3F,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0E,CAAA;IACzG,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}