@zeroheight/mcp-server 1.2.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.
@@ -1,453 +0,0 @@
1
-
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a1566a24-9938-599b-a8a8-1237e4dbc1d7")}catch(e){}}();
3
- import { expect, describe, it } from "@rstest/core";
4
- import { formatStyleguideListAsMarkdown, formatTreeAsJson, } from "./styleguide.js";
5
- describe("formatStyleguideListAsMarkdown", () => {
6
- describe("when list is empty", () => {
7
- it("returns an empty string", () => {
8
- expect(formatStyleguideListAsMarkdown([])).toBe("");
9
- });
10
- });
11
- describe("when there's one styleguide", () => {
12
- it("formats styleguide list as markdown list on one line", () => {
13
- expect(formatStyleguideListAsMarkdown([
14
- { id: 1, name: "Styleguide 1", team_id: 1, share_id: "abc123" },
15
- ])).toBe("- Styleguide 1 (ID: 1)");
16
- });
17
- });
18
- describe("when there's multiple styleguides", () => {
19
- it("formats styleguide list as markdown list", () => {
20
- expect(formatStyleguideListAsMarkdown([
21
- { id: 1, name: "Styleguide 1", team_id: 1, share_id: "abc123" },
22
- { id: 2, name: "Styleguide 2", team_id: 1, share_id: "xyz987" },
23
- ])).toBe("- Styleguide 1 (ID: 1)\n- Styleguide 2 (ID: 2)");
24
- });
25
- });
26
- });
27
- describe("formatTreeAsJson", () => {
28
- describe("when tree is empty", () => {
29
- it("returns an empty object", () => {
30
- expect(formatTreeAsJson([])).toEqual({});
31
- });
32
- });
33
- describe("when tree has a single page node", () => {
34
- it("creates nested structure with page info", () => {
35
- const tree = [
36
- {
37
- id: 1,
38
- type: "category",
39
- name: "Documentation",
40
- hidden: false,
41
- children: [
42
- {
43
- id: 2,
44
- type: "page",
45
- name: "Getting Started",
46
- url: "/docs/getting-started",
47
- hidden: false,
48
- children: [],
49
- category_overview_page: false,
50
- },
51
- ],
52
- },
53
- ];
54
- const result = formatTreeAsJson(tree);
55
- expect(result).toEqual({
56
- Documentation: {
57
- "Getting Started": {
58
- id: 2,
59
- url: "/docs/getting-started",
60
- },
61
- },
62
- });
63
- });
64
- });
65
- describe("when tree has multiple categories", () => {
66
- it("creates nested structure for each category", () => {
67
- const tree = [
68
- {
69
- id: 1,
70
- type: "category",
71
- name: "API",
72
- hidden: false,
73
- children: [
74
- {
75
- id: 2,
76
- type: "page",
77
- name: "REST API",
78
- url: "/api/rest",
79
- hidden: false,
80
- children: [],
81
- category_overview_page: false,
82
- },
83
- ],
84
- },
85
- {
86
- id: 3,
87
- type: "category",
88
- name: "Guides",
89
- hidden: false,
90
- children: [
91
- {
92
- id: 4,
93
- type: "page",
94
- name: "Tutorial",
95
- url: "/guides/tutorial",
96
- hidden: false,
97
- children: [],
98
- category_overview_page: false,
99
- },
100
- ],
101
- },
102
- ];
103
- const result = formatTreeAsJson(tree);
104
- expect(result).toEqual({
105
- API: {
106
- "REST API": {
107
- id: 2,
108
- url: "/api/rest",
109
- },
110
- },
111
- Guides: {
112
- Tutorial: {
113
- id: 4,
114
- url: "/guides/tutorial",
115
- },
116
- },
117
- });
118
- });
119
- });
120
- describe("when tree has nested categories", () => {
121
- it("creates deeply nested structure", () => {
122
- const tree = [
123
- {
124
- id: 1,
125
- type: "category",
126
- name: "Documentation",
127
- hidden: false,
128
- children: [
129
- {
130
- id: 2,
131
- type: "category",
132
- name: "API",
133
- hidden: false,
134
- children: [
135
- {
136
- id: 3,
137
- type: "page",
138
- name: "Reference",
139
- url: "/docs/api/reference",
140
- hidden: false,
141
- children: [],
142
- category_overview_page: false,
143
- },
144
- ],
145
- },
146
- ],
147
- },
148
- ];
149
- const result = formatTreeAsJson(tree);
150
- expect(result).toEqual({
151
- Documentation: {
152
- API: {
153
- Reference: {
154
- id: 3,
155
- url: "/docs/api/reference",
156
- },
157
- },
158
- },
159
- });
160
- });
161
- });
162
- describe("when tree has navigation nodes", () => {
163
- it("processes navigation nodes and their children", () => {
164
- const tree = [
165
- {
166
- id: 1,
167
- type: "navigation",
168
- name: "Main Nav",
169
- hidden: false,
170
- children: [
171
- {
172
- id: 2,
173
- type: "page",
174
- name: "Home",
175
- url: "/home",
176
- hidden: false,
177
- children: [],
178
- category_overview_page: false,
179
- },
180
- {
181
- id: 3,
182
- type: "category",
183
- name: "Products",
184
- hidden: false,
185
- children: [
186
- {
187
- id: 4,
188
- type: "page",
189
- name: "Product A",
190
- url: "/products/a",
191
- hidden: false,
192
- children: [],
193
- category_overview_page: false,
194
- },
195
- ],
196
- },
197
- ],
198
- },
199
- ];
200
- const result = formatTreeAsJson(tree);
201
- expect(result).toEqual({
202
- "Main Nav": {
203
- Home: {
204
- id: 2,
205
- url: "/home",
206
- },
207
- Products: {
208
- "Product A": {
209
- id: 4,
210
- url: "/products/a",
211
- },
212
- },
213
- },
214
- });
215
- });
216
- });
217
- describe("when nodes have duplicate names", () => {
218
- it("appends numbers to make names unique", () => {
219
- const tree = [
220
- {
221
- id: 1,
222
- type: "category",
223
- name: "Docs",
224
- hidden: false,
225
- children: [
226
- {
227
- id: 2,
228
- type: "page",
229
- name: "Overview",
230
- url: "/docs/overview1",
231
- hidden: false,
232
- children: [],
233
- category_overview_page: false,
234
- },
235
- {
236
- id: 3,
237
- type: "page",
238
- name: "Overview",
239
- url: "/docs/overview2",
240
- hidden: false,
241
- children: [],
242
- category_overview_page: false,
243
- },
244
- {
245
- id: 4,
246
- type: "page",
247
- name: "Overview",
248
- url: "/docs/overview3",
249
- hidden: false,
250
- children: [],
251
- category_overview_page: false,
252
- },
253
- ],
254
- },
255
- ];
256
- const result = formatTreeAsJson(tree);
257
- expect(result).toEqual({
258
- Docs: {
259
- Overview: {
260
- id: 2,
261
- url: "/docs/overview1",
262
- },
263
- "Overview 1": {
264
- id: 3,
265
- url: "/docs/overview2",
266
- },
267
- "Overview 2": {
268
- id: 4,
269
- url: "/docs/overview3",
270
- },
271
- },
272
- });
273
- });
274
- });
275
- describe("when nodes have no name", () => {
276
- it("uses node type as fallback name", () => {
277
- const tree = [
278
- {
279
- id: 1,
280
- type: "category",
281
- name: "",
282
- hidden: false,
283
- children: [
284
- {
285
- id: 2,
286
- type: "page",
287
- name: "",
288
- url: "/page1",
289
- hidden: false,
290
- children: [],
291
- category_overview_page: false,
292
- },
293
- ],
294
- },
295
- ];
296
- const result = formatTreeAsJson(tree);
297
- expect(result).toEqual({
298
- category: {
299
- page: {
300
- id: 2,
301
- url: "/page1",
302
- },
303
- },
304
- });
305
- });
306
- });
307
- describe("when tree has tab nodes", () => {
308
- it("ignores tab nodes", () => {
309
- const tree = [
310
- {
311
- id: 1,
312
- type: "category",
313
- name: "Main",
314
- hidden: false,
315
- children: [
316
- {
317
- id: 3,
318
- type: "page",
319
- name: "Page1",
320
- url: "/page1",
321
- hidden: false,
322
- children: [
323
- {
324
- id: 2,
325
- type: "tab",
326
- name: "Tab1",
327
- url: "/tab1",
328
- hidden: false,
329
- children: [],
330
- },
331
- ],
332
- category_overview_page: false,
333
- },
334
- ],
335
- },
336
- ];
337
- const result = formatTreeAsJson(tree);
338
- expect(result).toEqual({
339
- Main: {
340
- Page1: {
341
- id: 3,
342
- url: "/page1",
343
- },
344
- },
345
- });
346
- });
347
- });
348
- describe("when tree has complex nested structure", () => {
349
- it("handles multiple levels of nesting correctly", () => {
350
- const tree = [
351
- {
352
- id: 1,
353
- type: "navigation",
354
- name: "Root",
355
- hidden: false,
356
- children: [
357
- {
358
- id: 2,
359
- type: "category",
360
- name: "Section A",
361
- hidden: false,
362
- children: [
363
- {
364
- id: 3,
365
- type: "category",
366
- name: "Subsection 1",
367
- hidden: false,
368
- children: [
369
- {
370
- id: 4,
371
- type: "page",
372
- name: "Page A",
373
- url: "/a/1/a",
374
- hidden: false,
375
- children: [],
376
- category_overview_page: false,
377
- },
378
- {
379
- id: 5,
380
- type: "page",
381
- name: "Page B",
382
- url: "/a/1/b",
383
- hidden: false,
384
- children: [],
385
- category_overview_page: false,
386
- },
387
- ],
388
- },
389
- {
390
- id: 6,
391
- type: "page",
392
- name: "Direct Page",
393
- url: "/a/direct",
394
- hidden: false,
395
- children: [],
396
- category_overview_page: false,
397
- },
398
- ],
399
- },
400
- ],
401
- },
402
- ];
403
- const result = formatTreeAsJson(tree);
404
- expect(result).toEqual({
405
- Root: {
406
- "Section A": {
407
- "Subsection 1": {
408
- "Page A": {
409
- id: 4,
410
- url: "/a/1/a",
411
- },
412
- "Page B": {
413
- id: 5,
414
- url: "/a/1/b",
415
- },
416
- },
417
- "Direct Page": {
418
- id: 6,
419
- url: "/a/direct",
420
- },
421
- },
422
- },
423
- });
424
- });
425
- });
426
- describe("when multiple root nodes have duplicate names", () => {
427
- it("handles duplicate names at root level", () => {
428
- const tree = [
429
- {
430
- id: 1,
431
- type: "category",
432
- name: "Section",
433
- hidden: false,
434
- children: [],
435
- },
436
- {
437
- id: 2,
438
- type: "category",
439
- name: "Section",
440
- hidden: false,
441
- children: [],
442
- },
443
- ];
444
- const result = formatTreeAsJson(tree);
445
- expect(result).toEqual({
446
- Section: {},
447
- "Section 1": {},
448
- });
449
- });
450
- });
451
- });
452
- //# sourceMappingURL=styleguide.test.js.map
453
- //# debugId=a1566a24-9938-599b-a8a8-1237e4dbc1d7
@@ -1 +0,0 @@
1
- {"version":3,"file":"styleguide.test.js","sources":["common/formatters/styleguide.test.ts"],"sourceRoot":"/","sourcesContent":["import { expect, describe, it } from \"@rstest/core\";\n\nimport {\n formatStyleguideListAsMarkdown,\n formatTreeAsJson,\n} from \"./styleguide.js\";\nimport { NodeType } from \"../../api/types/styleguide.js\";\n\ndescribe(\"formatStyleguideListAsMarkdown\", () => {\n describe(\"when list is empty\", () => {\n it(\"returns an empty string\", () => {\n expect(formatStyleguideListAsMarkdown([])).toBe(\"\");\n });\n });\n\n describe(\"when there's one styleguide\", () => {\n it(\"formats styleguide list as markdown list on one line\", () => {\n expect(\n formatStyleguideListAsMarkdown([\n { id: 1, name: \"Styleguide 1\", team_id: 1, share_id: \"abc123\" },\n ]),\n ).toBe(\"- Styleguide 1 (ID: 1)\");\n });\n });\n\n describe(\"when there's multiple styleguides\", () => {\n it(\"formats styleguide list as markdown list\", () => {\n expect(\n formatStyleguideListAsMarkdown([\n { id: 1, name: \"Styleguide 1\", team_id: 1, share_id: \"abc123\" },\n { id: 2, name: \"Styleguide 2\", team_id: 1, share_id: \"xyz987\" },\n ]),\n ).toBe(\"- Styleguide 1 (ID: 1)\\n- Styleguide 2 (ID: 2)\");\n });\n });\n});\n\ndescribe(\"formatTreeAsJson\", () => {\n describe(\"when tree is empty\", () => {\n it(\"returns an empty object\", () => {\n expect(formatTreeAsJson([])).toEqual({});\n });\n });\n\n describe(\"when tree has a single page node\", () => {\n it(\"creates nested structure with page info\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"Documentation\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"page\",\n name: \"Getting Started\",\n url: \"/docs/getting-started\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Documentation: {\n \"Getting Started\": {\n id: 2,\n url: \"/docs/getting-started\",\n },\n },\n });\n });\n });\n\n describe(\"when tree has multiple categories\", () => {\n it(\"creates nested structure for each category\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"API\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"page\",\n name: \"REST API\",\n url: \"/api/rest\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n {\n id: 3,\n type: \"category\",\n name: \"Guides\",\n hidden: false,\n children: [\n {\n id: 4,\n type: \"page\",\n name: \"Tutorial\",\n url: \"/guides/tutorial\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n API: {\n \"REST API\": {\n id: 2,\n url: \"/api/rest\",\n },\n },\n Guides: {\n Tutorial: {\n id: 4,\n url: \"/guides/tutorial\",\n },\n },\n });\n });\n });\n\n describe(\"when tree has nested categories\", () => {\n it(\"creates deeply nested structure\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"Documentation\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"category\",\n name: \"API\",\n hidden: false,\n children: [\n {\n id: 3,\n type: \"page\",\n name: \"Reference\",\n url: \"/docs/api/reference\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Documentation: {\n API: {\n Reference: {\n id: 3,\n url: \"/docs/api/reference\",\n },\n },\n },\n });\n });\n });\n\n describe(\"when tree has navigation nodes\", () => {\n it(\"processes navigation nodes and their children\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"navigation\",\n name: \"Main Nav\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"page\",\n name: \"Home\",\n url: \"/home\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n {\n id: 3,\n type: \"category\",\n name: \"Products\",\n hidden: false,\n children: [\n {\n id: 4,\n type: \"page\",\n name: \"Product A\",\n url: \"/products/a\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n \"Main Nav\": {\n Home: {\n id: 2,\n url: \"/home\",\n },\n Products: {\n \"Product A\": {\n id: 4,\n url: \"/products/a\",\n },\n },\n },\n });\n });\n });\n\n describe(\"when nodes have duplicate names\", () => {\n it(\"appends numbers to make names unique\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"Docs\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"page\",\n name: \"Overview\",\n url: \"/docs/overview1\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n {\n id: 3,\n type: \"page\",\n name: \"Overview\",\n url: \"/docs/overview2\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n {\n id: 4,\n type: \"page\",\n name: \"Overview\",\n url: \"/docs/overview3\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Docs: {\n Overview: {\n id: 2,\n url: \"/docs/overview1\",\n },\n \"Overview 1\": {\n id: 3,\n url: \"/docs/overview2\",\n },\n \"Overview 2\": {\n id: 4,\n url: \"/docs/overview3\",\n },\n },\n });\n });\n });\n\n describe(\"when nodes have no name\", () => {\n it(\"uses node type as fallback name\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"page\",\n name: \"\",\n url: \"/page1\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n category: {\n page: {\n id: 2,\n url: \"/page1\",\n },\n },\n });\n });\n });\n\n describe(\"when tree has tab nodes\", () => {\n it(\"ignores tab nodes\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"Main\",\n hidden: false,\n children: [\n {\n id: 3,\n type: \"page\",\n name: \"Page1\",\n url: \"/page1\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"tab\",\n name: \"Tab1\",\n url: \"/tab1\",\n hidden: false,\n children: [],\n },\n ],\n category_overview_page: false,\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Main: {\n Page1: {\n id: 3,\n url: \"/page1\",\n },\n },\n });\n });\n });\n\n describe(\"when tree has complex nested structure\", () => {\n it(\"handles multiple levels of nesting correctly\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"navigation\",\n name: \"Root\",\n hidden: false,\n children: [\n {\n id: 2,\n type: \"category\",\n name: \"Section A\",\n hidden: false,\n children: [\n {\n id: 3,\n type: \"category\",\n name: \"Subsection 1\",\n hidden: false,\n children: [\n {\n id: 4,\n type: \"page\",\n name: \"Page A\",\n url: \"/a/1/a\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n {\n id: 5,\n type: \"page\",\n name: \"Page B\",\n url: \"/a/1/b\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n {\n id: 6,\n type: \"page\",\n name: \"Direct Page\",\n url: \"/a/direct\",\n hidden: false,\n children: [],\n category_overview_page: false,\n },\n ],\n },\n ],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Root: {\n \"Section A\": {\n \"Subsection 1\": {\n \"Page A\": {\n id: 4,\n url: \"/a/1/a\",\n },\n \"Page B\": {\n id: 5,\n url: \"/a/1/b\",\n },\n },\n \"Direct Page\": {\n id: 6,\n url: \"/a/direct\",\n },\n },\n },\n });\n });\n });\n\n describe(\"when multiple root nodes have duplicate names\", () => {\n it(\"handles duplicate names at root level\", () => {\n const tree: NodeType[] = [\n {\n id: 1,\n type: \"category\",\n name: \"Section\",\n hidden: false,\n children: [],\n },\n {\n id: 2,\n type: \"category\",\n name: \"Section\",\n hidden: false,\n children: [],\n },\n ];\n\n const result = formatTreeAsJson(tree);\n expect(result).toEqual({\n Section: {},\n \"Section 1\": {},\n });\n });\n });\n});\n"],"names":[],"mappings":"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","debug_id":"a1566a24-9938-599b-a8a8-1237e4dbc1d7"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["index.ts"],"sourceRoot":"/","sourcesContent":["#!/usr/bin/env node\n\nimport * as Sentry from \"@sentry/node\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\n\nimport packageJson from \"../package.json\" with { type: \"json\" };\nimport {\n registerStyleguideListResource,\n registerStyleguideResource,\n} from \"./resources/styleguide.js\";\nimport {\n registerListPagesResource,\n registerPageResource,\n} from \"./resources/page.js\";\nimport {\n registerGetStyleguideTreeTool,\n registerListStyleguidesTool,\n} from \"./tools/styleguide.js\";\nimport { registerGetPageTool, registerListPagesTool } from \"./tools/page.js\";\nimport { recommendSummarizePagePrompt } from \"./prompts/page.js\";\nimport { registerRecommendPagesPrompt } from \"./prompts/styleguide.js\";\nimport { initSentry } from \"./api/sentry.js\";\nimport { captureException } from \"./common/errors.js\";\n\nfunction createServer() {\n // Create server instance\n const server = new McpServer({\n name: \"zeroheight\",\n version: packageJson.version,\n capabilities: {\n resources: {},\n tools: {},\n },\n });\n\n // Register all tools\n [\n registerListPagesTool,\n registerGetPageTool,\n registerListStyleguidesTool,\n registerGetStyleguideTreeTool,\n ].forEach((fn) => fn(server));\n\n // Register all resources\n [\n registerStyleguideListResource,\n registerStyleguideResource,\n registerListPagesResource,\n registerPageResource,\n ].forEach((fn) => fn(server));\n\n // Register all prompts\n [registerRecommendPagesPrompt, recommendSummarizePagePrompt].forEach((fn) =>\n fn(server),\n );\n\n return server;\n}\n\n// Start server on STDIO\nasync function main() {\n const disableTelemetry = process.env[\"ZEROHEIGHT_MCP_DISABLE_TELEMETRY\"];\n if (!disableTelemetry) {\n initSentry();\n }\n\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error(\"zeroheight MCP Server running on stdio\");\n}\n\nmain().catch((error) => {\n console.error(\"Fatal error in main():\", error);\n captureException(error);\n process.exit(1);\n});\n"],"names":[],"mappings":";;;AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,SAAS,YAAY;IACnB,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACV;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB;QACE,qBAAqB;QACrB,mBAAmB;QACnB,2BAA2B;QAC3B,6BAA6B;KAC9B,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,yBAAyB;IACzB;QACE,8BAA8B;QAC9B,0BAA0B;QAC1B,yBAAyB;QACzB,oBAAoB;KACrB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,uBAAuB;IACvB,CAAC,4BAA4B,EAAE,4BAA4B,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAC1E,EAAE,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wBAAwB;AACxB,KAAK,UAAU,IAAI;IACjB,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,UAAU,EAAE,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC1D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","debug_id":"c0c825d2-da83-500a-98f6-80086abbe1a6"}