@hooklink/cli 0.1.51 → 0.1.53

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.
@@ -9,7 +9,6 @@ const http_1 = __importDefault(require("http"));
9
9
  const https_1 = __importDefault(require("https"));
10
10
  const zlib_1 = require("zlib");
11
11
  const sentry_1 = require("../utils/sentry");
12
- const STREAM_CHUNK_SIZE = 64 * 1024; // 64KB chunks for streaming
13
12
  const COMPRESS_MIN_SIZE = 1024; // Only compress bodies > 1KB
14
13
  const MAX_INTERNAL_REDIRECTS = 10; // Max same-origin redirects to follow internally
15
14
  // Keep-alive agents reuse TCP connections across requests
@@ -435,128 +434,242 @@ class HttpForwarder {
435
434
  return result;
436
435
  }
437
436
  /**
438
- * Forward a request using Node.js streams, calling callbacks as data arrives.
439
- * Used for tunnel-type endpoints to reduce TTFB.
437
+ * Stream the upstream HTTP response chunk-by-chunk via callbacks.
438
+ * Binary content and non-tunnel responses stream directly.
439
+ * Text content that needs URL rewriting falls back to the buffered forward() path.
440
440
  */
441
441
  async forwardStreaming(request, callbacks) {
442
- // Build URL (same logic as forward())
443
- let url;
444
- if (request.targetUrl) {
445
- const parsed = new URL(request.targetUrl);
446
- if (parsed.pathname === '/') {
447
- url = new URL(request.path, request.targetUrl);
448
- Object.entries(request.query).forEach(([key, value]) => {
449
- url.searchParams.append(key, value);
450
- });
442
+ const startTime = Date.now();
443
+ try {
444
+ // Resolve URL (same logic as forward())
445
+ const url = this.resolveUrl(request);
446
+ // Decode request body if base64-encoded
447
+ let requestData = request.body;
448
+ if (request.bodyEncoding === 'base64' && request.body) {
449
+ requestData = Buffer.from(request.body, 'base64');
451
450
  }
452
- else {
453
- url = parsed;
451
+ // Follow same-origin redirects to reach the final URL, then stream
452
+ const headers = this.filterHeaders(request.headers);
453
+ const forwardedHost = request.headers['x-forwarded-host'] ||
454
+ request.headers['X-Forwarded-Host'];
455
+ if (forwardedHost) {
456
+ headers['host'] = String(forwardedHost);
454
457
  }
455
- }
456
- else {
457
- url = new URL(request.path, this.targetUrl);
458
- Object.entries(request.query).forEach(([key, value]) => {
459
- url.searchParams.append(key, value);
460
- });
461
- }
462
- // Decode request body
463
- let requestData = request.body;
464
- if (request.bodyEncoding === 'base64' && request.body) {
465
- requestData = Buffer.from(request.body, 'base64');
466
- }
467
- const headers = this.filterHeaders(request.headers);
468
- const forwardedHost = request.headers['x-forwarded-host'] || request.headers['X-Forwarded-Host'];
469
- if (forwardedHost) {
470
- headers['host'] = String(forwardedHost);
471
- }
472
- const isHttps = url.protocol === 'https:';
473
- const transport = isHttps ? https_1.default : http_1.default;
474
- const agent = isHttps ? httpsAgent : httpAgent;
475
- return new Promise((resolve, reject) => {
458
+ const needsUrlRewriting = !!forwardedHost;
459
+ const finalUrl = url.toString();
460
+ // Issue the HTTP request using Node.js native API for streaming
461
+ const parsedUrl = new URL(finalUrl);
462
+ const transport = parsedUrl.protocol === 'https:' ? https_1.default : http_1.default;
476
463
  const reqOptions = {
477
464
  method: request.method,
478
- hostname: url.hostname,
479
- port: url.port || (isHttps ? 443 : 80),
480
- path: url.pathname + url.search,
465
+ hostname: parsedUrl.hostname,
466
+ port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
467
+ path: parsedUrl.pathname + parsedUrl.search,
481
468
  headers,
482
- agent,
469
+ agent: parsedUrl.protocol === 'https:' ? httpsAgent : httpAgent,
483
470
  timeout: 120000,
484
471
  };
485
- const req = transport.request(reqOptions, (res) => {
486
- // Follow same-origin redirects for GET/HEAD
487
- const isGetOrHead = request.method === 'GET' || request.method === 'HEAD';
488
- const location = res.headers['location'];
489
- if (isGetOrHead &&
490
- location &&
491
- res.statusCode &&
492
- res.statusCode >= 300 && res.statusCode < 400) {
493
- const resolved = new URL(location, url.toString());
494
- if (resolved.origin === url.origin) {
495
- // Follow redirect by falling back to buffered forward
496
- res.resume();
497
- this.forward(request).then((bufferedResponse) => {
498
- // Convert buffered response to streaming callbacks
499
- const body = bufferedResponse.bodyEncoding === 'base64'
500
- ? Buffer.from(bufferedResponse.body || '', 'base64')
501
- : Buffer.from(bufferedResponse.body || '', 'utf8');
502
- const flatHeaders = {};
503
- for (const [k, v] of Object.entries(bufferedResponse.headers)) {
504
- flatHeaders[k] = Array.isArray(v) ? v.join(', ') : v;
472
+ await new Promise((resolve, reject) => {
473
+ const req = transport.request(reqOptions, (res) => {
474
+ const statusCode = res.statusCode || 502;
475
+ const contentType = res.headers['content-type'];
476
+ const binary = isBinaryContentType(contentType);
477
+ // Check if we need URL rewriting (text content in tunnel mode)
478
+ // If so, buffer the response and rewrite URLs before sending
479
+ if (needsUrlRewriting && !binary && isTextContentType(contentType)) {
480
+ const chunks = [];
481
+ res.on('data', (chunk) => chunks.push(chunk));
482
+ res.on('end', async () => {
483
+ try {
484
+ const fullBody = Buffer.concat(chunks);
485
+ let bodyStr = fullBody.toString('utf8');
486
+ // Build remote origin for URL rewriting
487
+ const remoteProto = request.headers['x-forwarded-proto'] ||
488
+ request.headers['X-Forwarded-Proto'] ||
489
+ 'https';
490
+ const remoteOrigin = `${remoteProto}://${forwardedHost}`;
491
+ const effectiveBaseUrl = request.targetUrl
492
+ ? new URL(request.targetUrl).origin
493
+ : this.targetUrl;
494
+ // Rewrite URLs in body
495
+ bodyStr = this.rewriteUrls(bodyStr, remoteOrigin, effectiveBaseUrl);
496
+ // Strip CSP meta tags from HTML
497
+ if (contentType && contentType.toLowerCase().includes('text/html')) {
498
+ bodyStr = bodyStr.replace(/<meta\b[^>]*http-equiv\s*=\s*["']?\s*content-security-policy(?:-report-only)?\s*["']?[^>]*>/gi, '');
499
+ bodyStr = bodyStr.replace(/<meta\b[^>]*content\s*=\s*["'][^"']*content-security-policy[^"']*["'][^>]*>/gi, '');
500
+ bodyStr = bodyStr.replace(/\sintegrity\s*=\s*["'][^"']*["']/gi, '');
501
+ bodyStr = bodyStr.replace(/\scrossorigin\s*=\s*["'][^"']*["']/gi, '');
502
+ }
503
+ // Sanitize and rewrite response headers
504
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
505
+ delete sanitizedHeaders['content-security-policy'];
506
+ delete sanitizedHeaders['content-security-policy-report-only'];
507
+ delete sanitizedHeaders['x-frame-options'];
508
+ delete sanitizedHeaders['cross-origin-opener-policy'];
509
+ delete sanitizedHeaders['cross-origin-embedder-policy'];
510
+ delete sanitizedHeaders['cross-origin-resource-policy'];
511
+ if (typeof sanitizedHeaders['location'] === 'string') {
512
+ sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
513
+ }
514
+ if (typeof sanitizedHeaders['link'] === 'string') {
515
+ sanitizedHeaders['link'] = this.rewriteUrls(sanitizedHeaders['link'], remoteOrigin, effectiveBaseUrl);
516
+ }
517
+ if (forwardedHost && sanitizedHeaders['set-cookie']) {
518
+ sanitizedHeaders['set-cookie'] = this.rewriteCookieDomains(sanitizedHeaders['set-cookie'], String(forwardedHost), effectiveBaseUrl);
519
+ }
520
+ // Remove content-length since we may have changed the body size
521
+ delete sanitizedHeaders['content-length'];
522
+ callbacks.onStart(statusCode, sanitizedHeaders);
523
+ await callbacks.onChunk(Buffer.from(bodyStr, 'utf8'));
524
+ callbacks.onEnd(Date.now() - startTime);
525
+ resolve();
505
526
  }
506
- callbacks.onHeader(bufferedResponse.statusCode, flatHeaders);
507
- callbacks.onChunk(body, true);
508
- resolve();
509
- }, reject);
527
+ catch (err) {
528
+ reject(err);
529
+ }
530
+ });
531
+ res.on('error', reject);
510
532
  return;
511
533
  }
512
- }
513
- // Emit header
514
- const responseHeaders = {};
515
- for (const [key, value] of Object.entries(res.headers)) {
516
- if (value !== undefined) {
517
- responseHeaders[key] = Array.isArray(value) ? value.join(', ') : value;
534
+ // Follow same-origin redirects for GET/HEAD
535
+ const location = res.headers['location'];
536
+ const isGetOrHead = request.method === 'GET' || request.method === 'HEAD';
537
+ if (isGetOrHead && location && statusCode >= 300 && statusCode < 400) {
538
+ const resolved = new URL(location, finalUrl);
539
+ const localOrigin = new URL(finalUrl).origin;
540
+ if (resolved.origin === localOrigin) {
541
+ // Follow redirect by re-issuing as streaming
542
+ res.resume(); // drain the current response
543
+ this.forwardStreaming({ ...request, targetUrl: resolved.toString() }, callbacks).then(resolve, reject);
544
+ return;
545
+ }
518
546
  }
519
- }
520
- // Strip security headers that don't work through tunnel
521
- delete responseHeaders['content-security-policy'];
522
- delete responseHeaders['content-security-policy-report-only'];
523
- delete responseHeaders['x-frame-options'];
524
- delete responseHeaders['cross-origin-opener-policy'];
525
- delete responseHeaders['cross-origin-embedder-policy'];
526
- delete responseHeaders['cross-origin-resource-policy'];
527
- callbacks.onHeader(res.statusCode || 200, responseHeaders);
528
- // Stream body in chunks
529
- let buffer = Buffer.alloc(0);
530
- res.on('data', (chunk) => {
531
- buffer = Buffer.concat([buffer, chunk]);
532
- // Flush when buffer exceeds chunk size
533
- while (buffer.length >= STREAM_CHUNK_SIZE) {
534
- const toSend = buffer.subarray(0, STREAM_CHUNK_SIZE);
535
- buffer = buffer.subarray(STREAM_CHUNK_SIZE);
536
- callbacks.onChunk(toSend, false);
547
+ // Sanitize response headers
548
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
549
+ // Strip security headers that break tunnels
550
+ delete sanitizedHeaders['content-security-policy'];
551
+ delete sanitizedHeaders['content-security-policy-report-only'];
552
+ delete sanitizedHeaders['x-frame-options'];
553
+ delete sanitizedHeaders['cross-origin-opener-policy'];
554
+ delete sanitizedHeaders['cross-origin-embedder-policy'];
555
+ delete sanitizedHeaders['cross-origin-resource-policy'];
556
+ // Rewrite Location header for redirects
557
+ if (needsUrlRewriting && typeof sanitizedHeaders['location'] === 'string') {
558
+ const effectiveBaseUrl = request.targetUrl
559
+ ? new URL(request.targetUrl).origin
560
+ : this.targetUrl;
561
+ const remoteProto = request.headers['x-forwarded-proto'] ||
562
+ request.headers['X-Forwarded-Proto'] ||
563
+ 'https';
564
+ const remoteOrigin = `${remoteProto}://${forwardedHost}`;
565
+ sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
537
566
  }
567
+ // Remove content-length since we are streaming (chunked transfer)
568
+ delete sanitizedHeaders['content-length'];
569
+ sanitizedHeaders['transfer-encoding'] = 'chunked';
570
+ // Send headers immediately
571
+ callbacks.onStart(statusCode, sanitizedHeaders);
572
+ // Stream data chunks
573
+ res.on('data', async (chunk) => {
574
+ try {
575
+ // Pause the stream while we wait for backpressure resolution
576
+ res.pause();
577
+ await callbacks.onChunk(chunk);
578
+ res.resume();
579
+ }
580
+ catch (err) {
581
+ req.destroy();
582
+ reject(err);
583
+ }
584
+ });
585
+ res.on('end', () => {
586
+ callbacks.onEnd(Date.now() - startTime);
587
+ resolve();
588
+ });
589
+ res.on('error', (err) => {
590
+ callbacks.onError(err);
591
+ reject(err);
592
+ });
538
593
  });
539
- res.on('end', () => {
540
- // Send final chunk (may be empty)
541
- callbacks.onChunk(buffer, true);
542
- resolve();
594
+ req.on('error', (err) => {
595
+ // Check if retryable
596
+ if (isRetryableError(err)) {
597
+ // Retry once with same streaming logic
598
+ const retryReq = transport.request(reqOptions, (res) => {
599
+ // Simplified retry: buffer and send as single chunk to avoid complexity
600
+ const chunks = [];
601
+ const statusCode = res.statusCode || 502;
602
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
603
+ delete sanitizedHeaders['content-security-policy'];
604
+ delete sanitizedHeaders['content-security-policy-report-only'];
605
+ res.on('data', (chunk) => chunks.push(chunk));
606
+ res.on('end', async () => {
607
+ callbacks.onStart(statusCode, sanitizedHeaders);
608
+ const body = Buffer.concat(chunks);
609
+ if (body.length > 0) {
610
+ await callbacks.onChunk(body);
611
+ }
612
+ callbacks.onEnd(Date.now() - startTime);
613
+ resolve();
614
+ });
615
+ res.on('error', (retryErr) => {
616
+ callbacks.onError(retryErr);
617
+ reject(retryErr);
618
+ });
619
+ });
620
+ retryReq.on('error', (retryErr) => {
621
+ callbacks.onError(retryErr);
622
+ reject(retryErr);
623
+ });
624
+ if (requestData) {
625
+ retryReq.write(requestData);
626
+ }
627
+ retryReq.end();
628
+ }
629
+ else {
630
+ callbacks.onError(err);
631
+ reject(err);
632
+ }
543
633
  });
544
- res.on('error', (err) => {
545
- reject(err);
634
+ req.on('timeout', () => {
635
+ req.destroy(new Error('Request timeout'));
546
636
  });
637
+ if (requestData) {
638
+ req.write(requestData);
639
+ }
640
+ req.end();
547
641
  });
548
- req.on('error', (err) => {
549
- reject(err);
550
- });
551
- req.on('timeout', () => {
552
- req.destroy(new Error('Request timeout'));
553
- });
554
- // Write request body
555
- if (requestData) {
556
- req.write(requestData);
642
+ }
643
+ catch (error) {
644
+ const code = error.code;
645
+ const isLocalError = (code && LOCAL_ERROR_CODES.has(code)) ||
646
+ (error instanceof Error && LOCAL_ERROR_MESSAGES.some((msg) => error.message.includes(msg)));
647
+ if (!isLocalError) {
648
+ (0, sentry_1.captureException)(error);
649
+ }
650
+ callbacks.onError(error instanceof Error ? error : new Error(String(error)));
651
+ }
652
+ }
653
+ /**
654
+ * Resolve the target URL from a request (shared logic between forward and forwardStreaming)
655
+ */
656
+ resolveUrl(request) {
657
+ if (request.targetUrl) {
658
+ const parsed = new URL(request.targetUrl);
659
+ if (parsed.pathname === '/') {
660
+ const url = new URL(request.path, request.targetUrl);
661
+ Object.entries(request.query).forEach(([key, value]) => {
662
+ url.searchParams.append(key, value);
663
+ });
664
+ return url;
557
665
  }
558
- req.end();
666
+ return parsed;
667
+ }
668
+ const url = new URL(request.path, this.targetUrl);
669
+ Object.entries(request.query).forEach(([key, value]) => {
670
+ url.searchParams.append(key, value);
559
671
  });
672
+ return url;
560
673
  }
561
674
  setTargetUrl(url) {
562
675
  this.targetUrl = url;
@@ -1 +1 @@
1
- {"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { WSRequestMessage, WSResponseMessage } from '../types';
3
- export interface StreamingCallbacks {
4
- onHeader: (statusCode: number, headers: Record<string, string>) => void;
5
- onChunk: (data: Buffer, isFinal: boolean) => void;
6
- }
2
+ import { WSRequestMessage, WSResponseMessage, StreamCallbacks } from '../types';
7
3
  export interface WebSocketClientOptions {
8
4
  wsUrl: string;
9
5
  apiKey: string;
@@ -11,9 +7,10 @@ export interface WebSocketClientOptions {
11
7
  endpointIds?: string[];
12
8
  trialToken?: string;
13
9
  sessionId?: string;
10
+ poolIndex?: number;
14
11
  maxReconnectAttempts?: number;
15
12
  onRequest: (request: WSRequestMessage) => Promise<WSResponseMessage>;
16
- onRequestStreaming?: (request: WSRequestMessage, callbacks: StreamingCallbacks) => Promise<void>;
13
+ onStreamingRequest?: (request: WSRequestMessage, callbacks: StreamCallbacks) => Promise<void>;
17
14
  }
18
15
  export declare class WebSocketClient extends EventEmitter {
19
16
  private ws;
@@ -36,8 +33,31 @@ export declare class WebSocketClient extends EventEmitter {
36
33
  private scheduleReconnect;
37
34
  private handleMessage;
38
35
  private handleRequest;
36
+ /**
37
+ * Wait until WS send buffer drains below the high water mark.
38
+ * This propagates backpressure from the WS transport up to the HTTP stream.
39
+ */
40
+ private waitForDrain;
39
41
  private sendRaw;
40
42
  disconnect(): void;
41
43
  isConnected(): boolean;
42
44
  }
45
+ /**
46
+ * WebSocket connection pool: maintains multiple parallel connections
47
+ * to avoid head-of-line blocking on a single WS connection.
48
+ */
49
+ export declare class WebSocketPool extends EventEmitter {
50
+ private connections;
51
+ private poolSize;
52
+ private options;
53
+ private connectedCount;
54
+ private sessionId;
55
+ constructor(options: WebSocketClientOptions & {
56
+ poolSize?: number;
57
+ });
58
+ connect(): Promise<void>;
59
+ disconnect(): void;
60
+ isConnected(): boolean;
61
+ getActiveConnectionCount(): number;
62
+ }
43
63
  //# sourceMappingURL=websocket-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACxE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClG;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAI7B;gBAES,OAAO,EAAE,sBAAsB;IAQrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG9B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YA0BX,aAAa;YAuCb,aAAa;IAyD3B,OAAO,CAAC,OAAO;IAMf,UAAU,IAAI,IAAI;IAalB,WAAW,IAAI,OAAO;CAGvB"}
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAI7B;gBAES,OAAO,EAAE,sBAAsB;IAQrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG9B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YA0BX,aAAa;YAuCb,aAAa;IAuG3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,OAAO;IAMf,UAAU,IAAI,IAAI;IAalB,WAAW,IAAI,OAAO;CAGvB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E9B,UAAU,IAAI,IAAI;IAQlB,WAAW,IAAI,OAAO;IAItB,wBAAwB,IAAI,MAAM;CAGnC"}