snaprender-mcp 1.5.2 → 1.5.4

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 CHANGED
@@ -1,7 +1,13 @@
1
1
  # snaprender-mcp
2
2
 
3
+ [![smithery badge](https://smithery.ai/badge/snaprender/snaprender)](https://smithery.ai/server/snaprender/snaprender)
4
+ [![npm](https://img.shields.io/npm/v/snaprender-mcp)](https://www.npmjs.com/package/snaprender-mcp)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](../LICENSE)
6
+
3
7
  MCP (Model Context Protocol) server for [SnapRender Screenshot API](https://snap-render.com). Lets AI agents like Claude capture website screenshots, check cache status, and monitor usage.
4
8
 
9
+ **Published on npm:** [`snaprender-mcp`](https://www.npmjs.com/package/snaprender-mcp)
10
+
5
11
  ## Quick Start
6
12
 
7
13
  ### With Claude Desktop
@@ -40,13 +46,60 @@ Add to your project's `.mcp.json`:
40
46
  }
41
47
  ```
42
48
 
43
- ## Tools
49
+ ### Remote Mode (no install)
50
+
51
+ Connect any MCP client directly to the hosted server — zero dependencies, works instantly:
52
+
53
+ ```
54
+ https://app.snap-render.com/mcp
55
+ ```
56
+
57
+ Uses [Streamable HTTP transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http) (MCP spec 2025-03-26). Authenticate via `Authorization: Bearer sk_live_...` or `X-API-Key` header.
58
+
59
+ #### Claude Desktop (remote)
60
+
61
+ ```json
62
+ {
63
+ "mcpServers": {
64
+ "snaprender": {
65
+ "type": "streamable-http",
66
+ "url": "https://app.snap-render.com/mcp",
67
+ "headers": {
68
+ "Authorization": "Bearer sk_live_your_key_here"
69
+ }
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ #### Any MCP client (curl example)
76
+
77
+ ```bash
78
+ # Initialize a session
79
+ curl -X POST https://app.snap-render.com/mcp \
80
+ -H "Content-Type: application/json" \
81
+ -H "Accept: application/json, text/event-stream" \
82
+ -H "X-API-Key: sk_live_your_key_here" \
83
+ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
84
+ ```
85
+
86
+ The server returns an `Mcp-Session-Id` header — pass it in subsequent requests to reuse the session.
87
+
88
+ ### Local vs Remote
89
+
90
+ | | Local (`npx`) | Remote (hosted) |
91
+ |---|---|---|
92
+ | **Install** | Requires Node.js + npx | None — just an HTTPS URL |
93
+ | **Transport** | stdio | Streamable HTTP |
94
+ | **Latency** | Slightly lower (local process) | Slightly higher (network hop) |
95
+ | **Use case** | Claude Desktop, Claude Code | Any MCP client, Smithery, web apps |
96
+
97
+ ## Tools (11 total)
44
98
 
45
99
  ### `take_screenshot`
46
100
 
47
101
  Capture a screenshot of any website.
48
102
 
49
- **Parameters:**
50
103
  | Parameter | Type | Required | Description |
51
104
  |-----------|------|----------|-------------|
52
105
  | `url` | string | Yes | URL to capture |
@@ -60,33 +113,92 @@ Capture a screenshot of any website.
60
113
  | `block_cookie_banners` | boolean | No | Remove cookie banners (default: true) |
61
114
  | `quality` | integer | No | JPEG/WebP quality 1-100 (default: 90) |
62
115
  | `delay` | integer | No | Wait ms after page load (default: 0) |
63
- | `hide_selectors` | string | No | Comma-separated CSS selectors to hide before capture |
116
+ | `hide_selectors` | string | No | Comma-separated CSS selectors to hide |
64
117
  | `click_selector` | string | No | CSS selector to click before capture |
65
- | `user_agent` | string | No | Custom user agent string |
66
- | `cache` | boolean | No | Use cached result. Set to `true` to enable caching (default: false) |
67
- | `cache_ttl` | integer | No | Cache TTL in seconds, 0-2592000. Clamped to plan max (default: 86400) |
118
+
119
+ ### `extract_content`
120
+
121
+ Extract content from a web page as markdown, text, HTML, links, or metadata.
122
+
123
+ | Parameter | Type | Required | Description |
124
+ |-----------|------|----------|-------------|
125
+ | `url` | string | Yes | URL to extract from |
126
+ | `type` | string | No | `markdown`, `text`, `html`, `article`, `links`, or `metadata` (default: `markdown`) |
127
+
128
+ ### `batch_screenshots`
129
+
130
+ Capture up to 50 URLs in a single batch job. Returns a job ID for polling.
131
+
132
+ | Parameter | Type | Required | Description |
133
+ |-----------|------|----------|-------------|
134
+ | `urls` | string[] | Yes | Array of URLs (max 50) |
135
+ | `format` | string | No | Output format (default: `png`) |
136
+ | `width` | integer | No | Viewport width |
137
+ | `height` | integer | No | Viewport height |
138
+
139
+ ### `get_batch_status`
140
+
141
+ Poll a batch job for completion status and download URLs.
142
+
143
+ | Parameter | Type | Required | Description |
144
+ |-----------|------|----------|-------------|
145
+ | `job_id` | string | Yes | Batch job ID from `batch_screenshots` |
146
+
147
+ ### `sign_screenshot_url`
148
+
149
+ Generate a signed URL that renders a screenshot when visited. No API key needed to use the URL.
150
+
151
+ | Parameter | Type | Required | Description |
152
+ |-----------|------|----------|-------------|
153
+ | `url` | string | Yes | URL to screenshot |
154
+ | `expires_in` | integer | No | Expiry in seconds (default: 86400) |
155
+ | `format` | string | No | Output format |
68
156
 
69
157
  ### `check_screenshot_cache`
70
158
 
71
- Check if a screenshot is cached without capturing. Does not count against your quota. Pass the same parameters you would use for `take_screenshot` so the cache key matches.
159
+ Check if a screenshot is cached without capturing.
72
160
 
73
161
  | Parameter | Type | Required | Description |
74
162
  |-----------|------|----------|-------------|
75
163
  | `url` | string | Yes | URL to check |
76
164
  | `format` | string | No | Output format |
77
- | `width` | integer | No | Viewport width |
78
- | `height` | integer | No | Viewport height |
79
- | `full_page` | boolean | No | Full page capture |
80
- | `dark_mode` | boolean | No | Dark mode |
81
- | `block_ads` | boolean | No | Block ads |
82
- | `device` | string | No | Device preset |
83
- | `quality` | integer | No | Image quality |
84
- | `hide_selectors` | string | No | CSS selectors to hide |
85
- | `click_selector` | string | No | CSS selector to click |
165
+
166
+ ### `list_webhooks`
167
+
168
+ List all webhook subscriptions for your account. Read-only.
169
+
170
+ ### `create_webhook`
171
+
172
+ Create a new webhook subscription.
173
+
174
+ | Parameter | Type | Required | Description |
175
+ |-----------|------|----------|-------------|
176
+ | `url` | string | Yes | HTTPS webhook endpoint URL |
177
+ | `events` | string[] | Yes | Events: `screenshot.completed`, `quota.warning`, `quota.exceeded` |
178
+
179
+ ### `delete_webhook`
180
+
181
+ Delete a webhook subscription. Destructive.
182
+
183
+ | Parameter | Type | Required | Description |
184
+ |-----------|------|----------|-------------|
185
+ | `webhook_id` | string | Yes | ID of the webhook to delete |
186
+
187
+ ### `test_webhook`
188
+
189
+ Send a test event to a webhook endpoint to verify delivery.
190
+
191
+ | Parameter | Type | Required | Description |
192
+ |-----------|------|----------|-------------|
193
+ | `webhook_id` | string | Yes | ID of the webhook to test |
86
194
 
87
195
  ### `get_usage`
88
196
 
89
- Get current month's usage statistics. No parameters required.
197
+ Get screenshot usage statistics.
198
+
199
+ | Parameter | Type | Required | Description |
200
+ |-----------|------|----------|-------------|
201
+ | `month` | string | No | Month in `YYYY-MM` format (default: current month) |
90
202
 
91
203
  ## Get an API Key
92
204
 
@@ -98,3 +210,15 @@ Sign up for free at [snap-render.com](https://snap-render.com/auth/signup) — 2
98
210
  |----------|----------|-------------|
99
211
  | `SNAPRENDER_API_KEY` | Yes | Your API key (starts with `sk_live_`) |
100
212
  | `SNAPRENDER_URL` | No | API base URL (default: `https://app.snap-render.com`) |
213
+
214
+ ## Related
215
+
216
+ - [Node.js SDK](https://www.npmjs.com/package/snaprender) — `npm install snaprender`
217
+ - [Python SDK](https://pypi.org/project/snaprender/) — `pip install snaprender`
218
+ - [OpenClaw Skill](../openclaw/) — Screenshot skill for OpenClaw agents
219
+ - [ChatGPT Actions](../chatgpt-actions/) — OpenAPI spec for Custom GPTs
220
+ - [Postman Collection](../postman/) — Pre-built API requests
221
+
222
+ ## License
223
+
224
+ MIT
package/dist/index.js CHANGED
@@ -4,12 +4,17 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  const API_KEY = process.env.SNAPRENDER_API_KEY;
6
6
  const BASE_URL = process.env.SNAPRENDER_URL || "https://app.snap-render.com";
7
+ const REQUEST_TIMEOUT_MS = 60_000;
7
8
  if (!API_KEY) {
8
9
  console.error("Error: SNAPRENDER_API_KEY environment variable is required.\n" +
9
10
  "Get a free API key at https://app.snap-render.com/auth/signup");
10
11
  process.exit(1);
11
12
  }
12
- const server = new Server({ name: "snaprender-mcp", version: "1.5.2" }, { capabilities: { tools: {} } });
13
+ function log(level, message, data) {
14
+ const entry = { timestamp: new Date().toISOString(), level, message, ...data };
15
+ process.stderr.write(JSON.stringify(entry) + "\n");
16
+ }
17
+ const server = new Server({ name: "snaprender-mcp", version: "1.5.4" }, { capabilities: { tools: {} } });
13
18
  // --- Tool definitions ---
14
19
  const TOOLS = [
15
20
  {
@@ -18,6 +23,12 @@ const TOOLS = [
18
23
  "Returns the image as a PNG, JPEG, WebP, or PDF. " +
19
24
  "Supports device emulation (iPhone, Pixel, iPad), dark mode, ad blocking, " +
20
25
  "cookie banner removal, full-page capture, and custom viewports.",
26
+ annotations: {
27
+ title: "Take Screenshot",
28
+ readOnlyHint: true,
29
+ destructiveHint: false,
30
+ openWorldHint: true,
31
+ },
21
32
  inputSchema: {
22
33
  type: "object",
23
34
  properties: {
@@ -120,6 +131,12 @@ const TOOLS = [
120
131
  description: "Check if a screenshot is already cached without capturing a new one. " +
121
132
  "Does not count against your quota. Pass the same parameters you would use for take_screenshot " +
122
133
  "so the cache key matches correctly.",
134
+ annotations: {
135
+ title: "Check Screenshot Cache",
136
+ readOnlyHint: true,
137
+ destructiveHint: false,
138
+ openWorldHint: true,
139
+ },
123
140
  inputSchema: {
124
141
  type: "object",
125
142
  properties: {
@@ -150,6 +167,12 @@ const TOOLS = [
150
167
  description: "Generate a signed URL for a screenshot that can be used without an API key. " +
151
168
  "Useful for embedding screenshots in emails, documents, or sharing with third parties. " +
152
169
  "Signing is free, rendering the URL consumes one credit. URLs expire after the specified duration.",
170
+ annotations: {
171
+ title: "Sign Screenshot URL",
172
+ readOnlyHint: true,
173
+ destructiveHint: false,
174
+ openWorldHint: true,
175
+ },
153
176
  inputSchema: {
154
177
  type: "object",
155
178
  properties: {
@@ -203,6 +226,12 @@ const TOOLS = [
203
226
  description: "Extract content from a web page. Returns structured data based on the extraction type. " +
204
227
  "Supports: markdown (readable content), text (plain text), html (raw HTML), " +
205
228
  "article (structured with title/author/excerpt), links (all page links), metadata (OG tags, title, description).",
229
+ annotations: {
230
+ title: "Extract Content",
231
+ readOnlyHint: true,
232
+ destructiveHint: false,
233
+ openWorldHint: true,
234
+ },
206
235
  inputSchema: {
207
236
  type: "object",
208
237
  properties: {
@@ -256,8 +285,14 @@ const TOOLS = [
256
285
  {
257
286
  name: "batch_screenshots",
258
287
  description: "Create a batch screenshot job for multiple URLs (1-50). " +
259
- "Returns immediately with a job ID. Use get_batch_status to poll for results. " +
288
+ "Returns immediately with a job ID. Use get_batch_status to poll for results (wait 2-5 seconds between polls). " +
260
289
  "All URLs share the same screenshot options. Each URL consumes one credit; failed URLs get credits rolled back.",
290
+ annotations: {
291
+ title: "Batch Screenshots",
292
+ readOnlyHint: false,
293
+ destructiveHint: false,
294
+ openWorldHint: true,
295
+ },
261
296
  inputSchema: {
262
297
  type: "object",
263
298
  properties: {
@@ -305,8 +340,14 @@ const TOOLS = [
305
340
  },
306
341
  {
307
342
  name: "get_batch_status",
308
- description: "Get the status of a batch screenshot job. Poll this until status is 'completed' or 'failed'. " +
343
+ description: "Get the status of a batch screenshot job. Poll this until status is 'completed' or 'failed' (wait 2-5 seconds between polls). " +
309
344
  "Completed items include presigned download URLs valid for 24 hours.",
345
+ annotations: {
346
+ title: "Get Batch Status",
347
+ readOnlyHint: true,
348
+ destructiveHint: false,
349
+ openWorldHint: true,
350
+ },
310
351
  inputSchema: {
311
352
  type: "object",
312
353
  properties: {
@@ -319,39 +360,98 @@ const TOOLS = [
319
360
  },
320
361
  },
321
362
  {
322
- name: "manage_webhooks",
323
- description: "Create, list, or delete webhooks for event notifications. " +
363
+ name: "list_webhooks",
364
+ description: "List all webhook subscriptions on your account. " +
365
+ "Returns webhook IDs, URLs, subscribed events, and creation dates.",
366
+ annotations: {
367
+ title: "List Webhooks",
368
+ readOnlyHint: true,
369
+ destructiveHint: false,
370
+ openWorldHint: false,
371
+ },
372
+ inputSchema: {
373
+ type: "object",
374
+ properties: {},
375
+ },
376
+ },
377
+ {
378
+ name: "create_webhook",
379
+ description: "Create a webhook subscription for event notifications. " +
324
380
  "Events: screenshot.completed (batch job done), quota.warning (80% used), quota.exceeded (100% used). " +
325
- "Max 5 webhooks per account. Payloads are signed with HMAC-SHA256.",
381
+ "Max 5 webhooks per account. Payloads are signed with HMAC-SHA256. Save the returned secret to verify signatures.",
382
+ annotations: {
383
+ title: "Create Webhook",
384
+ readOnlyHint: false,
385
+ destructiveHint: false,
386
+ openWorldHint: true,
387
+ },
326
388
  inputSchema: {
327
389
  type: "object",
328
390
  properties: {
329
- action: {
330
- type: "string",
331
- enum: ["create", "list", "delete", "test"],
332
- description: "Action to perform",
333
- },
334
391
  url: {
335
392
  type: "string",
336
- description: "Webhook endpoint URL (required for 'create')",
393
+ description: "Webhook endpoint URL. Must be a public HTTPS URL.",
337
394
  },
338
395
  events: {
339
396
  type: "array",
340
397
  items: { type: "string", enum: ["screenshot.completed", "quota.warning", "quota.exceeded"] },
341
- description: "Events to subscribe to (required for 'create')",
398
+ description: "Events to subscribe to",
399
+ },
400
+ },
401
+ required: ["url", "events"],
402
+ },
403
+ },
404
+ {
405
+ name: "delete_webhook",
406
+ description: "Delete a webhook subscription by ID. This cannot be undone.",
407
+ annotations: {
408
+ title: "Delete Webhook",
409
+ readOnlyHint: false,
410
+ destructiveHint: true,
411
+ openWorldHint: false,
412
+ },
413
+ inputSchema: {
414
+ type: "object",
415
+ properties: {
416
+ webhook_id: {
417
+ type: "string",
418
+ description: "The webhook ID to delete (from list_webhooks)",
342
419
  },
420
+ },
421
+ required: ["webhook_id"],
422
+ },
423
+ },
424
+ {
425
+ name: "test_webhook",
426
+ description: "Send a test payload to a webhook endpoint to verify it receives events correctly. " +
427
+ "Returns the delivery status and HTTP response code.",
428
+ annotations: {
429
+ title: "Test Webhook",
430
+ readOnlyHint: false,
431
+ destructiveHint: false,
432
+ openWorldHint: true,
433
+ },
434
+ inputSchema: {
435
+ type: "object",
436
+ properties: {
343
437
  webhook_id: {
344
438
  type: "string",
345
- description: "Webhook ID (required for 'delete' and 'test')",
439
+ description: "The webhook ID to test (from list_webhooks)",
346
440
  },
347
441
  },
348
- required: ["action"],
442
+ required: ["webhook_id"],
349
443
  },
350
444
  },
351
445
  {
352
446
  name: "get_usage",
353
447
  description: "Get current month's screenshot usage statistics including " +
354
448
  "screenshots used, limit, and remaining quota.",
449
+ annotations: {
450
+ title: "Get Usage",
451
+ readOnlyHint: true,
452
+ destructiveHint: false,
453
+ openWorldHint: false,
454
+ },
355
455
  inputSchema: {
356
456
  type: "object",
357
457
  properties: {},
@@ -359,14 +459,52 @@ const TOOLS = [
359
459
  },
360
460
  ];
361
461
  // --- Helpers ---
362
- async function parseErrorMessage(response) {
363
- const body = await response.text();
462
+ async function fetchWithTimeout(url, options) {
463
+ const controller = new AbortController();
464
+ const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
465
+ try {
466
+ const response = await fetch(url, { ...options, signal: controller.signal });
467
+ return response;
468
+ }
469
+ finally {
470
+ clearTimeout(timeout);
471
+ }
472
+ }
473
+ function sanitizeError(status, rawMessage) {
474
+ if (status === 401)
475
+ return "Authentication failed. Check your API key.";
476
+ if (status === 403)
477
+ return "Access denied.";
478
+ if (status === 429)
479
+ return "Rate limit exceeded. Try again later.";
480
+ if (status >= 500)
481
+ return "SnapRender service error. Try again later.";
482
+ const parsed = (() => {
483
+ try {
484
+ return JSON.parse(rawMessage);
485
+ }
486
+ catch {
487
+ return null;
488
+ }
489
+ })();
490
+ if (parsed?.error?.message)
491
+ return String(parsed.error.message);
492
+ if (rawMessage.length > 200)
493
+ return rawMessage.slice(0, 200) + "...";
494
+ return rawMessage;
495
+ }
496
+ function validateWebhookUrl(url) {
364
497
  try {
365
- const parsed = JSON.parse(body);
366
- return parsed.error?.message || body;
498
+ const parsed = new URL(url);
499
+ if (parsed.protocol !== "https:")
500
+ return "Webhook URL must use HTTPS.";
501
+ if (["localhost", "127.0.0.1", "[::1]"].includes(parsed.hostname)) {
502
+ return "Webhook URL cannot point to localhost.";
503
+ }
504
+ return null;
367
505
  }
368
506
  catch {
369
- return body;
507
+ return "Invalid webhook URL format.";
370
508
  }
371
509
  }
372
510
  // --- Tool handlers ---
@@ -375,25 +513,51 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
375
513
  }));
376
514
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
377
515
  const { name, arguments: args } = request.params;
378
- switch (name) {
379
- case "take_screenshot":
380
- return handleScreenshot(args);
381
- case "check_screenshot_cache":
382
- return handleCacheCheck(args);
383
- case "sign_screenshot_url":
384
- return handleSignUrl(args);
385
- case "extract_content":
386
- return handleExtract(args);
387
- case "batch_screenshots":
388
- return handleBatch(args);
389
- case "get_batch_status":
390
- return handleBatchStatus(args);
391
- case "manage_webhooks":
392
- return handleWebhooks(args);
393
- case "get_usage":
394
- return handleUsage();
395
- default:
396
- throw new Error(`Unknown tool: ${name}`);
516
+ try {
517
+ switch (name) {
518
+ case "take_screenshot":
519
+ return await handleScreenshot(args);
520
+ case "check_screenshot_cache":
521
+ return await handleCacheCheck(args);
522
+ case "sign_screenshot_url":
523
+ return await handleSignUrl(args);
524
+ case "extract_content":
525
+ return await handleExtract(args);
526
+ case "batch_screenshots":
527
+ return await handleBatch(args);
528
+ case "get_batch_status":
529
+ return await handleBatchStatus(args);
530
+ case "list_webhooks":
531
+ return await handleListWebhooks();
532
+ case "create_webhook":
533
+ return await handleCreateWebhook(args);
534
+ case "delete_webhook":
535
+ return await handleDeleteWebhook(args);
536
+ case "test_webhook":
537
+ return await handleTestWebhook(args);
538
+ case "get_usage":
539
+ return await handleUsage();
540
+ default:
541
+ return {
542
+ content: [{ type: "text", text: `Unknown tool: ${name}` }],
543
+ isError: true,
544
+ };
545
+ }
546
+ }
547
+ catch (error) {
548
+ const message = error instanceof Error ? error.message : String(error);
549
+ if (error instanceof Error && error.name === "AbortError") {
550
+ log("error", "Request timed out", { tool: name });
551
+ return {
552
+ content: [{ type: "text", text: "Request timed out. The server took too long to respond." }],
553
+ isError: true,
554
+ };
555
+ }
556
+ log("error", "Tool execution failed", { tool: name, error: message });
557
+ return {
558
+ content: [{ type: "text", text: message }],
559
+ isError: true,
560
+ };
397
561
  }
398
562
  });
399
563
  async function handleScreenshot(args) {
@@ -428,7 +592,7 @@ async function handleScreenshot(args) {
428
592
  if (args[key] !== undefined)
429
593
  body[key] = !!args[key];
430
594
  }
431
- response = await fetch(`${BASE_URL}/v1/screenshot`, {
595
+ response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot`, {
432
596
  method: "POST",
433
597
  headers: {
434
598
  "X-API-Key": API_KEY,
@@ -455,12 +619,14 @@ async function handleScreenshot(args) {
455
619
  if (args[key] !== undefined)
456
620
  params.set(key, args[key] ? "true" : "false");
457
621
  }
458
- response = await fetch(`${BASE_URL}/v1/screenshot?${params}`, {
622
+ response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot?${params}`, {
459
623
  headers: { "X-API-Key": API_KEY },
460
624
  });
461
625
  }
462
626
  if (!response.ok) {
463
- const errorMessage = await parseErrorMessage(response);
627
+ const raw = await response.text();
628
+ const errorMessage = sanitizeError(response.status, raw);
629
+ log("warn", "Screenshot failed", { status: response.status });
464
630
  return {
465
631
  content: [
466
632
  {
@@ -477,7 +643,6 @@ async function handleScreenshot(args) {
477
643
  const cacheStatus = response.headers.get("X-Cache") || "MISS";
478
644
  const responseTime = response.headers.get("X-Response-Time") || "unknown";
479
645
  const remaining = response.headers.get("X-Remaining-Credits") || "unknown";
480
- // PDFs are returned as text resource since MCP image type doesn't support PDF
481
646
  if (format === "pdf") {
482
647
  return {
483
648
  content: [
@@ -527,7 +692,7 @@ async function handleSignUrl(args) {
527
692
  if (args[key] !== undefined)
528
693
  body[key] = !!args[key];
529
694
  }
530
- const response = await fetch(`${BASE_URL}/v1/screenshot/sign`, {
695
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot/sign`, {
531
696
  method: "POST",
532
697
  headers: {
533
698
  "X-API-Key": API_KEY,
@@ -536,7 +701,9 @@ async function handleSignUrl(args) {
536
701
  body: JSON.stringify(body),
537
702
  });
538
703
  if (!response.ok) {
539
- const errorMessage = await parseErrorMessage(response);
704
+ const raw = await response.text();
705
+ const errorMessage = sanitizeError(response.status, raw);
706
+ log("warn", "Sign URL failed", { status: response.status });
540
707
  return {
541
708
  content: [
542
709
  {
@@ -578,7 +745,7 @@ async function handleExtract(args) {
578
745
  body.cache = !!args.cache;
579
746
  if (args.cache_ttl !== undefined)
580
747
  body.cache_ttl = Number(args.cache_ttl);
581
- const response = await fetch(`${BASE_URL}/v1/extract`, {
748
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/extract`, {
582
749
  method: "POST",
583
750
  headers: {
584
751
  "X-API-Key": API_KEY,
@@ -587,7 +754,9 @@ async function handleExtract(args) {
587
754
  body: JSON.stringify(body),
588
755
  });
589
756
  if (!response.ok) {
590
- const errorMessage = await parseErrorMessage(response);
757
+ const raw = await response.text();
758
+ const errorMessage = sanitizeError(response.status, raw);
759
+ log("warn", "Extract failed", { status: response.status });
591
760
  return {
592
761
  content: [
593
762
  {
@@ -612,89 +781,96 @@ async function handleExtract(args) {
612
781
  ],
613
782
  };
614
783
  }
615
- async function handleWebhooks(args) {
616
- const action = args.action;
617
- if (!action)
618
- throw new Error("action is required");
619
- switch (action) {
620
- case "create": {
621
- const url = args.url;
622
- const events = args.events;
623
- if (!url)
624
- throw new Error("url is required for create");
625
- if (!events || events.length === 0)
626
- throw new Error("events array is required for create");
627
- const response = await fetch(`${BASE_URL}/v1/webhooks`, {
628
- method: "POST",
629
- headers: { "X-API-Key": API_KEY, "Content-Type": "application/json" },
630
- body: JSON.stringify({ url, events }),
631
- });
632
- if (!response.ok) {
633
- const errorMessage = await parseErrorMessage(response);
634
- return { content: [{ type: "text", text: `Webhook creation failed (${response.status}): ${errorMessage}` }], isError: true };
635
- }
636
- const data = await response.json();
637
- return {
638
- content: [{
639
- type: "text",
640
- text: `Webhook created successfully.\n\nID: ${data.id}\nURL: ${data.url}\nEvents: ${data.events.join(", ")}\nSecret: ${data.secret}\n\nSave the secret to verify webhook signatures. It won't be shown again in full.`,
641
- }],
642
- };
643
- }
644
- case "list": {
645
- const response = await fetch(`${BASE_URL}/v1/webhooks`, {
646
- headers: { "X-API-Key": API_KEY },
647
- });
648
- if (!response.ok) {
649
- const errorMessage = await parseErrorMessage(response);
650
- return { content: [{ type: "text", text: `List webhooks failed (${response.status}): ${errorMessage}` }], isError: true };
651
- }
652
- const data = await response.json();
653
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
654
- }
655
- case "delete": {
656
- const webhookId = args.webhook_id;
657
- if (!webhookId)
658
- throw new Error("webhook_id is required for delete");
659
- const response = await fetch(`${BASE_URL}/v1/webhooks/${webhookId}`, {
660
- method: "DELETE",
661
- headers: { "X-API-Key": API_KEY },
662
- });
663
- if (!response.ok && response.status !== 204) {
664
- const errorMessage = await parseErrorMessage(response);
665
- return { content: [{ type: "text", text: `Delete webhook failed (${response.status}): ${errorMessage}` }], isError: true };
666
- }
667
- return { content: [{ type: "text", text: `Webhook ${webhookId} deleted successfully.` }] };
668
- }
669
- case "test": {
670
- const webhookId = args.webhook_id;
671
- if (!webhookId)
672
- throw new Error("webhook_id is required for test");
673
- const response = await fetch(`${BASE_URL}/v1/webhooks/${webhookId}/test`, {
674
- method: "POST",
675
- headers: { "X-API-Key": API_KEY },
676
- });
677
- if (!response.ok) {
678
- const errorMessage = await parseErrorMessage(response);
679
- return { content: [{ type: "text", text: `Test webhook failed (${response.status}): ${errorMessage}` }], isError: true };
680
- }
681
- const data = await response.json();
682
- return {
683
- content: [{
684
- type: "text",
685
- text: `Test delivery sent.\n\nDelivery ID: ${data.deliveryId}\nStatus Code: ${data.statusCode ?? "N/A (timeout)"}\nSuccess: ${data.success}`,
686
- }],
687
- };
688
- }
689
- default:
690
- throw new Error(`Unknown action: ${action}. Use create, list, delete, or test.`);
784
+ async function handleListWebhooks() {
785
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/webhooks`, {
786
+ headers: { "X-API-Key": API_KEY },
787
+ });
788
+ if (!response.ok) {
789
+ const raw = await response.text();
790
+ const errorMessage = sanitizeError(response.status, raw);
791
+ log("warn", "List webhooks failed", { status: response.status });
792
+ return { content: [{ type: "text", text: `List webhooks failed (${response.status}): ${errorMessage}` }], isError: true };
793
+ }
794
+ const data = await response.json();
795
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
796
+ }
797
+ async function handleCreateWebhook(args) {
798
+ const url = args.url;
799
+ const events = args.events;
800
+ if (!url)
801
+ throw new Error("url is required");
802
+ if (!events || events.length === 0)
803
+ throw new Error("events array is required");
804
+ const urlError = validateWebhookUrl(url);
805
+ if (urlError)
806
+ throw new Error(urlError);
807
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/webhooks`, {
808
+ method: "POST",
809
+ headers: { "X-API-Key": API_KEY, "Content-Type": "application/json" },
810
+ body: JSON.stringify({ url, events }),
811
+ });
812
+ if (!response.ok) {
813
+ const raw = await response.text();
814
+ const errorMessage = sanitizeError(response.status, raw);
815
+ log("warn", "Webhook creation failed", { status: response.status });
816
+ return { content: [{ type: "text", text: `Webhook creation failed (${response.status}): ${errorMessage}` }], isError: true };
817
+ }
818
+ const data = await response.json();
819
+ log("info", "Webhook created", { webhookId: data.id });
820
+ return {
821
+ content: [{
822
+ type: "text",
823
+ text: `Webhook created successfully.\n\nID: ${data.id}\nURL: ${data.url}\nEvents: ${data.events.join(", ")}\nSecret: ${data.secret}\n\nSave the secret to verify webhook signatures. It won't be shown again in full.`,
824
+ }],
825
+ };
826
+ }
827
+ async function handleDeleteWebhook(args) {
828
+ const webhookId = args.webhook_id;
829
+ if (!webhookId)
830
+ throw new Error("webhook_id is required");
831
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/webhooks/${webhookId}`, {
832
+ method: "DELETE",
833
+ headers: { "X-API-Key": API_KEY },
834
+ });
835
+ if (!response.ok && response.status !== 204) {
836
+ const raw = await response.text();
837
+ const errorMessage = sanitizeError(response.status, raw);
838
+ log("warn", "Delete webhook failed", { status: response.status });
839
+ return { content: [{ type: "text", text: `Delete webhook failed (${response.status}): ${errorMessage}` }], isError: true };
840
+ }
841
+ log("info", "Webhook deleted", { webhookId });
842
+ return { content: [{ type: "text", text: `Webhook ${webhookId} deleted successfully.` }] };
843
+ }
844
+ async function handleTestWebhook(args) {
845
+ const webhookId = args.webhook_id;
846
+ if (!webhookId)
847
+ throw new Error("webhook_id is required");
848
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/webhooks/${webhookId}/test`, {
849
+ method: "POST",
850
+ headers: { "X-API-Key": API_KEY },
851
+ });
852
+ if (!response.ok) {
853
+ const raw = await response.text();
854
+ const errorMessage = sanitizeError(response.status, raw);
855
+ log("warn", "Test webhook failed", { status: response.status });
856
+ return { content: [{ type: "text", text: `Test webhook failed (${response.status}): ${errorMessage}` }], isError: true };
691
857
  }
858
+ const data = await response.json();
859
+ return {
860
+ content: [{
861
+ type: "text",
862
+ text: `Test delivery sent.\n\nDelivery ID: ${data.deliveryId}\nStatus Code: ${data.statusCode ?? "N/A (timeout)"}\nSuccess: ${data.success}`,
863
+ }],
864
+ };
692
865
  }
693
866
  async function handleBatch(args) {
694
867
  const urls = args.urls;
695
868
  if (!urls || !Array.isArray(urls) || urls.length === 0) {
696
869
  throw new Error("urls array is required (1-50 URLs)");
697
870
  }
871
+ if (urls.length > 50) {
872
+ throw new Error("Maximum 50 URLs per batch request.");
873
+ }
698
874
  const body = { urls };
699
875
  const stringParams = ["format", "device", "hide_selectors", "click_selector", "user_agent"];
700
876
  const intParams = ["width", "height", "quality", "delay"];
@@ -711,7 +887,7 @@ async function handleBatch(args) {
711
887
  if (args[key] !== undefined)
712
888
  body[key] = !!args[key];
713
889
  }
714
- const response = await fetch(`${BASE_URL}/v1/screenshot/batch`, {
890
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot/batch`, {
715
891
  method: "POST",
716
892
  headers: {
717
893
  "X-API-Key": API_KEY,
@@ -720,7 +896,9 @@ async function handleBatch(args) {
720
896
  body: JSON.stringify(body),
721
897
  });
722
898
  if (!response.ok) {
723
- const errorMessage = await parseErrorMessage(response);
899
+ const raw = await response.text();
900
+ const errorMessage = sanitizeError(response.status, raw);
901
+ log("warn", "Batch creation failed", { status: response.status });
724
902
  return {
725
903
  content: [
726
904
  {
@@ -732,11 +910,12 @@ async function handleBatch(args) {
732
910
  };
733
911
  }
734
912
  const data = await response.json();
913
+ log("info", "Batch job created", { jobId: data.jobId, total: data.total });
735
914
  return {
736
915
  content: [
737
916
  {
738
917
  type: "text",
739
- text: `Batch job created successfully.\n\nJob ID: ${data.jobId}\nStatus: ${data.status}\nTotal URLs: ${data.total}\n\nUse get_batch_status with job_id="${data.jobId}" to poll for results.`,
918
+ text: `Batch job created successfully.\n\nJob ID: ${data.jobId}\nStatus: ${data.status}\nTotal URLs: ${data.total}\n\nUse get_batch_status with job_id="${data.jobId}" to poll for results. Wait 2-5 seconds between polls.`,
740
919
  },
741
920
  ],
742
921
  };
@@ -745,11 +924,13 @@ async function handleBatchStatus(args) {
745
924
  const jobId = args.job_id;
746
925
  if (!jobId)
747
926
  throw new Error("job_id is required");
748
- const response = await fetch(`${BASE_URL}/v1/screenshot/batch/${jobId}`, {
927
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot/batch/${jobId}`, {
749
928
  headers: { "X-API-Key": API_KEY },
750
929
  });
751
930
  if (!response.ok) {
752
- const errorMessage = await parseErrorMessage(response);
931
+ const raw = await response.text();
932
+ const errorMessage = sanitizeError(response.status, raw);
933
+ log("warn", "Batch status check failed", { status: response.status });
753
934
  return {
754
935
  content: [
755
936
  {
@@ -776,6 +957,12 @@ async function handleBatchStatus(args) {
776
957
  lines.push(` [${item.status.toUpperCase()}] ${item.url}`);
777
958
  }
778
959
  }
960
+ if (data.status !== "completed" && data.status !== "failed") {
961
+ lines.push("", "Poll again in 2-5 seconds. Download URLs expire after 24 hours.");
962
+ }
963
+ else {
964
+ lines.push("", "Download URLs expire after 24 hours.");
965
+ }
779
966
  return {
780
967
  content: [
781
968
  {
@@ -790,7 +977,6 @@ async function handleCacheCheck(args) {
790
977
  if (!url)
791
978
  throw new Error("url is required");
792
979
  const params = new URLSearchParams({ url });
793
- // Pass all cache-key-relevant params so the lookup matches correctly
794
980
  const strKeys = ["format", "device", "hide_selectors", "click_selector"];
795
981
  const intKeys = ["width", "height", "quality"];
796
982
  const boolKeys = ["full_page", "dark_mode", "block_ads"];
@@ -806,9 +992,11 @@ async function handleCacheCheck(args) {
806
992
  if (args[k] !== undefined)
807
993
  params.set(k, args[k] ? "true" : "false");
808
994
  }
809
- const response = await fetch(`${BASE_URL}/v1/screenshot/info?${params}`, { headers: { "X-API-Key": API_KEY } });
995
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/screenshot/info?${params}`, { headers: { "X-API-Key": API_KEY } });
810
996
  if (!response.ok) {
811
- const errorMessage = await parseErrorMessage(response);
997
+ const raw = await response.text();
998
+ const errorMessage = sanitizeError(response.status, raw);
999
+ log("warn", "Cache check failed", { status: response.status });
812
1000
  return {
813
1001
  content: [
814
1002
  {
@@ -830,11 +1018,13 @@ async function handleCacheCheck(args) {
830
1018
  };
831
1019
  }
832
1020
  async function handleUsage() {
833
- const response = await fetch(`${BASE_URL}/v1/usage`, {
1021
+ const response = await fetchWithTimeout(`${BASE_URL}/v1/usage`, {
834
1022
  headers: { "X-API-Key": API_KEY },
835
1023
  });
836
1024
  if (!response.ok) {
837
- const errorMessage = await parseErrorMessage(response);
1025
+ const raw = await response.text();
1026
+ const errorMessage = sanitizeError(response.status, raw);
1027
+ log("warn", "Usage check failed", { status: response.status });
838
1028
  return {
839
1029
  content: [
840
1030
  {
@@ -858,4 +1048,5 @@ async function handleUsage() {
858
1048
  // --- Start server ---
859
1049
  const transport = new StdioServerTransport();
860
1050
  await server.connect(transport);
1051
+ log("info", "SnapRender MCP server started");
861
1052
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC/C,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,6BAA6B,CAAC;AAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CACX,+DAA+D;QAC7D,+DAA+D,CAClE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC5C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,2BAA2B;AAE3B,MAAM,KAAK,GAAG;IACZ;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,wHAAwH;YACxH,kDAAkD;YAClD,2EAA2E;YAC3E,iEAAiE;QACnE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kGAAkG;iBAChH;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6FAA6F;iBAC3G;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wHAAwH;iBACtI;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,0CAA0C;iBACxD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG;oBACZ,WAAW,EAAE,kDAAkD;iBAChE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,WAAW;wBACX,eAAe;wBACf,SAAS;wBACT,UAAU;wBACV,aAAa;qBACd;oBACD,WAAW,EAAE,2CAA2C;iBACzD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,gFAAgF;iBACnF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,OAAO;oBAChB,WAAW,EACT,4EAA4E;iBAC/E;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,uEAAuE;YACvE,gGAAgG;YAChG,qCAAqC;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,cAAc;iBAC5B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACzE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAC1E,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;gBACjF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACzE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACxE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;gBACxD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACxE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACxE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aACzE;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,8EAA8E;YAC9E,wFAAwF;YACxF,mGAAmG;QACrG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,8DAA8D;iBAC5E;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,0CAA0C;iBACxD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;gBAC9F,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAClG,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACnH,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAChF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACxE,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAC/F,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC;oBAC1E,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACxE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACxE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;aACjE;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,yFAAyF;YACzF,6EAA6E;YAC7E,iHAAiH;QACnH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mEAAmE;iBACjF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;oBAClE,WAAW,EAAE,qCAAqC;iBACnD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,wDAAwD;iBACtE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,uCAAuC;iBACrD;aACF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,0DAA0D;YAC1D,+EAA+E;YAC/E,gHAAgH;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,0CAA0C;iBACxD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;gBAC9F,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBAClG,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACnH,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAChF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACxE,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAC/F,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC;oBAC1E,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACxE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBACxE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;aACjE;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,+FAA+F;YAC/F,qEAAqE;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,4DAA4D;YAC5D,uGAAuG;YACvG,mEAAmE;QACrE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC1C,WAAW,EAAE,mBAAmB;iBACjC;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE;oBAC5F,WAAW,EAAE,gDAAgD;iBAC9D;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,4DAA4D;YAC5D,+CAA+C;QACjD,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC;AAEF,kBAAkB;AAElB,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wBAAwB;AAExB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB;YACpB,OAAO,gBAAgB,CAAC,IAA+B,CAAC,CAAC;QAC3D,KAAK,wBAAwB;YAC3B,OAAO,gBAAgB,CAAC,IAA+B,CAAC,CAAC;QAC3D,KAAK,qBAAqB;YACxB,OAAO,aAAa,CAAC,IAA+B,CAAC,CAAC;QACxD,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,IAA+B,CAAC,CAAC;QACxD,KAAK,mBAAmB;YACtB,OAAO,WAAW,CAAC,IAA+B,CAAC,CAAC;QACtD,KAAK,kBAAkB;YACrB,OAAO,iBAAiB,CAAC,IAA+B,CAAC,CAAC;QAC5D,KAAK,iBAAiB;YACpB,OAAO,cAAc,CAAC,IAA+B,CAAC,CAAC;QACzD,KAAK,WAAW;YACd,OAAO,WAAW,EAAE,CAAC;QACvB;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,gBAAgB,CAAC,IAA6B;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAyB,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;IAErD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IACrC,IAAI,QAAkB,CAAC;IAEvB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC5F,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE5F,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,gBAAgB,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,WAAW,EAAE,OAAQ;gBACrB,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAI,CAAC,CAAC;QAExB,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC5F,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE5F,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;QAED,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,kBAAkB,MAAM,EAAE,EAAE;YAC5D,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,sBAAsB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBAChE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,KAAK,CAAC;IAEhD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC;IAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC;IAE3E,8EAA8E;IAC9E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+BAA+B,MAAM,CAAC,UAAU,kBAAkB,WAAW,WAAW,YAAY,wBAAwB,SAAS,sDAAsD,MAAM,EAAE;iBAC1M;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GACZ,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,MAAM,KAAK,MAAM;YACjB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,WAAW,CAAC;IAEpB,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAgB;gBACtB,IAAI,EAAE,MAAM;gBACZ,QAAQ;aACT;YACD;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,wBAAwB,MAAM,CAAC,UAAU,kBAAkB,WAAW,WAAW,YAAY,wBAAwB,SAAS,GAAG;aACxI;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAA6B;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAEnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,qBAAqB,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,WAAW,EAAE,OAAQ;YACrB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,oBAAoB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBAC9D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAoE,CAAC;IACrG,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,8CAA8C,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,UAAU,mJAAmJ;aACnR;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAA6B;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACpE,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS;QAAE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACrG,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACxD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,aAAa,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,WAAW,EAAE,OAAQ;YACrB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAmB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBAC7D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAmG,CAAC;IACpI,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,UAAU,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;aAClD;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAA6B;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAkB,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAE3F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,cAAc,EAAE;gBACtD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBACtE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACxI,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAmE,CAAC;YACpG,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wCAAwC,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,oFAAoF;qBACvN,CAAC;aACH,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,cAAc,EAAE;gBACtD,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yBAAyB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrI,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvF,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC5C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,gBAAgB,SAAS,EAAE,EAAE;gBACnE,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtI,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,SAAS,wBAAwB,EAAE,CAAC,EAAE,CAAC;QACtG,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC5C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAEnE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,gBAAgB,SAAS,OAAO,EAAE;gBACxE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpI,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyE,CAAC;YAC1G,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uCAAuC,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,UAAU,IAAI,eAAe,cAAc,IAAI,CAAC,OAAO,EAAE;qBAC7I,CAAC;aACH,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,sCAAsC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAA6B;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAgB,CAAC;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAEnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,sBAAsB,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,WAAW,EAAE,OAAQ;YACrB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0BAA0B,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBACpE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyE,CAAC;IAC1G,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,8CAA8C,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,MAAM,iBAAiB,IAAI,CAAC,KAAK,yCAAyC,IAAI,CAAC,KAAK,wBAAwB;aAC7L;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAA6B;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAgB,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,wBAAwB,KAAK,EAAE,EAAE;QACvE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;KACnC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,8BAA8B,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBACxE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAI/B,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;IAC/K,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aACvB;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAA6B;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,qEAAqE;IACrE,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAG,IAAI,CAAC,CAAC,CAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAEhH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,QAAQ,uBAAuB,MAAM,EAAE,EAC1C,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE,EAAE,CACvC,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,uBAAuB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBACjE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,WAAW,EAAE;QACnD,OAAO,EAAE,EAAE,WAAW,EAAE,OAAQ,EAAE;KACnC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,uBAAuB,QAAQ,CAAC,MAAM,MAAM,YAAY,EAAE;iBACjE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC;SACF;KACF,CAAC;AACJ,CAAC;AAED,uBAAuB;AAEvB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "snaprender-mcp",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "mcpName": "io.github.User0856/snaprender",
5
5
  "description": "MCP server for SnapRender Screenshot API — lets AI agents capture website screenshots",
6
6
  "type": "module",