xypriss 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +72 -12
  2. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  3. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js +11 -9
  4. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -1
  5. package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js +465 -0
  6. package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -0
  7. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js +1 -1
  8. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -1
  9. package/dist/cjs/src/middleware/security-middleware.js +49 -24
  10. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  11. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +72 -12
  12. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  13. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js +11 -9
  14. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -1
  15. package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js +444 -0
  16. package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -0
  17. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js +1 -1
  18. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -1
  19. package/dist/esm/src/middleware/security-middleware.js +49 -24
  20. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  21. package/dist/index.d.ts +139 -62
  22. package/package.json +1 -1
@@ -65,7 +65,13 @@ class SecurityMiddleware {
65
65
  this.browserOnly =
66
66
  config.browserOnly !== false ? config.browserOnly || false : false;
67
67
  this.terminalOnly =
68
- config.terminalOnly !== false ? config.terminalOnly || false : false;
68
+ config.terminalOnly !== false
69
+ ? config.terminalOnly || false
70
+ : false;
71
+ this.requestSignature =
72
+ config.requestSignature !== false
73
+ ? config.requestSignature || false
74
+ : false;
69
75
  // Validate that both browserOnly and terminalOnly are not enabled simultaneously
70
76
  const browserOnlyEnabled = this.isBrowserOnlyEnabled();
71
77
  const terminalOnlyEnabled = this.isTerminalOnlyEnabled();
@@ -305,6 +311,15 @@ class SecurityMiddleware {
305
311
  this.terminalOnlyMiddleware =
306
312
  BuiltInMiddleware.terminalOnly(terminalOnlyConfig);
307
313
  }
314
+ // Request signature protection (API authentication)
315
+ if (this.requestSignature) {
316
+ const requestSignatureConfig = typeof this.requestSignature === "object" &&
317
+ this.requestSignature !== null
318
+ ? this.requestSignature
319
+ : { secret: "default-secret" }; // This will be overridden by user config
320
+ this.requestSignatureMiddleware =
321
+ BuiltInMiddleware.requestSignature(requestSignatureConfig);
322
+ }
308
323
  // Compression middleware
309
324
  if (this.compression) {
310
325
  const compressionConfig = typeof this.compression === "object" ? this.compression : {};
@@ -374,71 +389,78 @@ class SecurityMiddleware {
374
389
  applySecurityStack(req, res, next) {
375
390
  this.logger.debug("security", "Starting security middleware stack");
376
391
  const middlewareStack = [];
377
- // 1. Compression (should be first)
392
+ // 🚨 CRITICAL: Access control middlewares FIRST (before any other processing)
393
+ // These must run before route resolution to block unwanted requests
394
+ // 1. Browser-only protection (blocks cURL and automation tools)
395
+ if (this.isBrowserOnlyEnabled() && this.browserOnlyMiddleware) {
396
+ this.logger.debug("security", "Adding browser-only middleware (FIRST)");
397
+ middlewareStack.push(this.browserOnlyMiddleware);
398
+ }
399
+ // 2. Terminal-only protection (blocks browser requests)
400
+ if (this.isTerminalOnlyEnabled() && this.terminalOnlyMiddleware) {
401
+ this.logger.debug("security", "Adding terminal-only middleware (FIRST)");
402
+ middlewareStack.push(this.terminalOnlyMiddleware);
403
+ }
404
+ // 3. Request signature protection (API authentication)
405
+ if (this.requestSignature && this.requestSignatureMiddleware) {
406
+ this.logger.debug("security", "Adding request signature middleware (FIRST)");
407
+ middlewareStack.push(this.requestSignatureMiddleware);
408
+ }
409
+ // 4. Compression (should be early but after access control)
378
410
  if (this.compression && this.compressionMiddleware) {
379
411
  this.logger.debug("security", "Adding compression middleware");
380
412
  middlewareStack.push(this.compressionMiddleware);
381
413
  }
382
- // 2. Security headers (Helmet)
414
+ // 5. Security headers (Helmet)
383
415
  if (this.helmet && this.helmetMiddleware) {
384
416
  this.logger.debug("security", "Adding helmet middleware");
385
417
  middlewareStack.push(this.helmetMiddleware);
386
418
  }
387
- // 3. CORS
419
+ // 6. CORS
388
420
  if (this.cors !== false && this.corsMiddleware) {
389
421
  this.logger.debug("security", "Adding CORS middleware");
390
422
  middlewareStack.push(this.corsMiddleware);
391
423
  }
392
- // 4. Rate limiting (brute force protection - stricter)
424
+ // 7. Rate limiting (brute force protection - stricter)
393
425
  if (this.bruteForce && this.bruteForceMiddleware) {
394
426
  this.logger.debug("security", "Adding brute force protection middleware");
395
427
  middlewareStack.push(this.bruteForceMiddleware);
396
428
  }
397
- // 5. General rate limiting (less strict)
429
+ // 8. General rate limiting (less strict)
398
430
  if (this.rateLimit && this.rateLimitMiddleware) {
399
431
  this.logger.debug("security", "Adding general rate limiting middleware");
400
432
  middlewareStack.push(this.rateLimitMiddleware);
401
433
  }
402
- // 6. HTTP Parameter Pollution protection
434
+ // 9. HTTP Parameter Pollution protection
403
435
  if (this.hpp && this.hppMiddleware) {
404
436
  this.logger.debug("security", "Adding HPP middleware");
405
437
  middlewareStack.push(this.hppMiddleware);
406
438
  }
407
- // 7. MongoDB sanitization
439
+ // 10. MongoDB sanitization
408
440
  if (this.mongoSanitize && this.mongoSanitizeMiddleware) {
409
441
  this.logger.debug("security", "Adding mongo sanitize middleware");
410
442
  middlewareStack.push(this.mongoSanitizeMiddleware);
411
443
  }
412
- // 8. Morgan logging
444
+ // 11. Morgan logging
413
445
  if (this.morgan && this.morganMiddleware) {
414
446
  this.logger.debug("security", "Adding morgan middleware");
415
447
  middlewareStack.push(this.morganMiddleware);
416
448
  }
417
- // 9. Slow down middleware
449
+ // 12. Slow down middleware
418
450
  if (this.slowDown && this.slowDownMiddleware) {
419
451
  this.logger.debug("security", "Adding slow down middleware");
420
452
  middlewareStack.push(this.slowDownMiddleware);
421
453
  }
422
- // 10. XSS protection (custom implementation)
454
+ // 13. XSS protection (custom implementation)
423
455
  if (this.xss) {
424
456
  this.logger.debug("security", "Adding XSS protection middleware");
425
457
  middlewareStack.push(this.xssProtection.bind(this));
426
458
  }
427
- // 11. CSRF protection (should be after body parsing)
459
+ // 14. CSRF protection (should be after body parsing)
428
460
  if (this.csrf && this.csrfMiddleware) {
429
461
  this.logger.debug("security", "Adding CSRF middleware");
430
462
  middlewareStack.push(this.csrfMiddleware);
431
463
  }
432
- // 12. Browser-only protection (blocks cURL and automation tools)
433
- if (this.isBrowserOnlyEnabled() && this.browserOnlyMiddleware) {
434
- this.logger.debug("security", "Adding browser-only middleware");
435
- middlewareStack.push(this.browserOnlyMiddleware);
436
- }
437
- // 13. Terminal-only protection (blocks browser requests)
438
- if (this.isTerminalOnlyEnabled() && this.terminalOnlyMiddleware) {
439
- this.logger.debug("security", "Adding terminal-only middleware");
440
- middlewareStack.push(this.terminalOnlyMiddleware);
441
- }
442
464
  this.logger.debug("security", `Total middleware in stack: ${middlewareStack.length}`);
443
465
  // Execute middleware stack
444
466
  this.executeMiddlewareStack(middlewareStack, req, res, next);
@@ -737,7 +759,7 @@ class SecurityMiddleware {
737
759
  isBrowserOnlyEnabled() {
738
760
  if (this.browserOnly === true)
739
761
  return true;
740
- if (typeof this.browserOnly === 'object' && this.browserOnly !== null) {
762
+ if (typeof this.browserOnly === "object" && this.browserOnly !== null) {
741
763
  return this.browserOnly.enable !== false; // Default to true when config provided
742
764
  }
743
765
  return false;
@@ -748,7 +770,8 @@ class SecurityMiddleware {
748
770
  isTerminalOnlyEnabled() {
749
771
  if (this.terminalOnly === true)
750
772
  return true;
751
- if (typeof this.terminalOnly === 'object' && this.terminalOnly !== null) {
773
+ if (typeof this.terminalOnly === "object" &&
774
+ this.terminalOnly !== null) {
752
775
  return this.terminalOnly.enable !== false; // Default to true when config provided
753
776
  }
754
777
  return false;
@@ -762,6 +785,8 @@ class SecurityMiddleware {
762
785
  csrf: this.csrf,
763
786
  helmet: this.helmet,
764
787
  browserOnly: this.browserOnly,
788
+ terminalOnly: this.terminalOnly,
789
+ requestSignature: this.requestSignature,
765
790
  xss: this.xss,
766
791
  sqlInjection: this.sqlInjection,
767
792
  pathTraversal: this.pathTraversal,
@@ -1 +1 @@
1
- {"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["XyPrissJS"],"mappings":"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"}
1
+ {"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["XyPrissJS"],"mappings":";;;;;;;;;;AAAA;;;AAGG;AA6CH;;;AAGG;MACU,kBAAkB,CAAA;IAuD3B,WAAY,CAAA,MAAA,GAAyB,EAAE,EAAE,MAAe,EAAA;;AAEpD,QAAA,IAAI,CAAC,MAAM;YACP,MAAM;AACN,gBAAA,IAAI,MAAM,CAAC;AACP,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9B,oBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACzB,iBAAA,CAAC,CAAC;;QAGP,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC;QACtE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,YAAY;AACb,YAAA,MAAM,CAAC,YAAY,KAAK,KAAK,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa;YACd,MAAM,CAAC,aAAa,KAAK,KAAK;AAC1B,kBAAE,MAAM,CAAC,aAAa,IAAI,KAAK;kBAC7B,KAAK,CAAC;AAChB,QAAA,IAAI,CAAC,gBAAgB;YACjB,MAAM,CAAC,gBAAgB,KAAK,KAAK;AAC7B,kBAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;kBAChC,KAAK,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK,GAAG,KAAK,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa;YACd,MAAM,CAAC,aAAa,KAAK,KAAK;AAC1B,kBAAE,MAAM,CAAC,aAAa,IAAI,KAAK;kBAC7B,KAAK,CAAC;AAChB,QAAA,IAAI,CAAC,UAAU;AACX,YAAA,MAAM,CAAC,UAAU,KAAK,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC;AACpE,QAAA,IAAI,CAAC,SAAS;AACV,YAAA,MAAM,CAAC,SAAS,KAAK,KAAK,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC;AAChE,QAAA,IAAI,CAAC,WAAW;AACZ,YAAA,MAAM,CAAC,WAAW,KAAK,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC;QACtE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,aAAa;YACd,MAAM,CAAC,aAAa,KAAK,KAAK;AAC1B,kBAAE,MAAM,CAAC,aAAa,IAAI,IAAI;kBAC5B,KAAK,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ;AACT,YAAA,MAAM,CAAC,QAAQ,KAAK,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AAChE,QAAA,IAAI,CAAC,WAAW;AACZ,YAAA,MAAM,CAAC,WAAW,KAAK,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,GAAG,KAAK,CAAC;AACvE,QAAA,IAAI,CAAC,YAAY;YACb,MAAM,CAAC,YAAY,KAAK,KAAK;AACzB,kBAAE,MAAM,CAAC,YAAY,IAAI,KAAK;kBAC5B,KAAK,CAAC;AAChB,QAAA,IAAI,CAAC,gBAAgB;YACjB,MAAM,CAAC,gBAAgB,KAAK,KAAK;AAC7B,kBAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;kBAChC,KAAK,CAAC;;AAGhB,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACvD,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAEzD,QAAA,IAAI,kBAAkB,IAAI,mBAAmB,EAAE;YAC3C,MAAM,IAAI,KAAK,CACX,+FAA+F;AAC3F,gBAAA,mDAAmD,CAC1D,CAAC;SACL;QAED,IAAI,CAAC,UAAU,GAAG;AACd,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,OAAO,EAAE,EAAE;YACX,GAAG,MAAM,CAAC,UAAU;SACvB,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG;AAClB,YAAA,GAAG,EAAE;AACD,gBAAA,MAAM,EACF,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM;oBAClCA,eAAS,CAAC,mBAAmB,CAAC;AAC1B,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,OAAO,EAAE,MAAM;qBAClB,CAAC;gBACN,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;gBACxD,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,SAAS,IAAI,OAAO;AAC9D,aAAA;AACD,YAAA,OAAO,EAAE;AACL,gBAAA,MAAM,EACF,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM;oBACtCA,eAAS,CAAC,mBAAmB,CAAC;AAC1B,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,OAAO,EAAE,MAAM;qBAClB,CAAC;AACN,gBAAA,IAAI,EACA,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI;oBACpC,qBAAqB;AACzB,gBAAA,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC3B,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,GAAG,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM;AAC5C,iBAAA;AACJ,aAAA;YACD,GAAG,MAAM,CAAC,cAAc;SAC3B,CAAC;;AAGF,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;AAGtC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;AACjD,YAAA,UAAU,EACN,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AACjC,kBAAE,IAAI,CAAC,YAAY,CAAC,UAAU;AAC9B,kBAAE,KAAK;AACf,YAAA,kBAAkB,EACd,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AACjC,kBAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB;AACtC,kBAAE,IAAI;AACd,YAAA,WAAW,EACP,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AACjC,kBAAE,IAAI,CAAC,YAAY,CAAC,WAAW;AAC/B,kBAAE,IAAI;AACd,YAAA,sBAAsB,EAClB,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AACjC,kBAAE,IAAI,CAAC,YAAY,CAAC,sBAAsB;AAC1C,kBAAE,GAAG;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;AACnD,YAAA,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;AAC7B,YAAA,UAAU,EACN,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,UAAU;AAC/B,kBAAE,KAAK;AACf,YAAA,WAAW,EACP,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI;AACd,YAAA,gBAAgB,EACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB;AACrC,kBAAE,IAAI;AACd,YAAA,YAAY,EACR,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,YAAY;AACjC,kBAAE,EAAE;AACZ,YAAA,iBAAiB,EACb,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB;kBACpC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,YAAA,QAAQ,EACJ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;AAC7B,kBAAE,CAAC;AACX,YAAA,sBAAsB,EAClB,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB;AAC3C,kBAAE,GAAG;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAAC;AACzD,YAAA,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB;AAChC,YAAA,UAAU,EACN,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;AAClC,kBAAE,KAAK;AACf,YAAA,WAAW,EACP,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW;AACnC,kBAAE,IAAI;AACd,YAAA,gBAAgB,EACZ,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;AACxC,kBAAE,IAAI;AACd,YAAA,kBAAkB,EACd,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB;AAC1C,kBAAE,IAAI;AACd,YAAA,eAAe,EACX,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe;AACvC,kBAAE,EAAE;AACZ,YAAA,sBAAsB,EAClB,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;AACrC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB;AAC9C,kBAAE,GAAG;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;AACjC,YAAA,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;AACnB,YAAA,UAAU,EACN,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI;AAC7D,YAAA,WAAW,EACP,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI;AAC9D,YAAA,gBAAgB,EACZ,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI;AACnE,YAAA,QAAQ,EAAE,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK;AAClE,YAAA,qBAAqB,EACjB,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;AACxB,kBAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB;AAChC,kBAAE,KAAK;AACf,YAAA,mBAAmB,EACf,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC;AACtE,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;AACnD,YAAA,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;AAC7B,YAAA,UAAU,EACN,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,UAAU;AAC/B,kBAAE,KAAK;AACf,YAAA,WAAW,EACP,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,WAAW;AAChC,kBAAE,IAAI;AACd,YAAA,gBAAgB,EACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB;AACrC,kBAAE,IAAI;AACd,YAAA,sBAAsB,EAClB,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;AAClC,kBAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB;AAC3C,kBAAE,GAAG;AAChB,SAAA,CAAC,CAAC;;QAGH,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;AAED;;;AAGG;IACK,oBAAoB,GAAA;;AAExB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,MAAM,YAAY,GACd,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;;YAGvD,IAAI,SAAS,GAAQ,KAAK,CAAC;AAC3B,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC1B,gBAAA,SAAS,GAAG;AACR,oBAAA,UAAU,EAAE;wBACR,UAAU,EAAE,CAAC,QAAQ,CAAC;AACtB,wBAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;wBACvC,SAAS,EAAE,CAAC,QAAQ,CAAC;AACrB,wBAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACxC,qBAAA;iBACJ,CAAC;aACL;AAAM,iBAAA,IAAI,YAAY,CAAC,qBAAqB,EAAE;;AAE3C,gBAAA,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC;aAClD;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC;AAC7C,gBAAA,qBAAqB,EAAE,SAAS;gBAChC,IAAI,EACA,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI;sBACrC,YAAY,CAAC,IAAI;AACnB,sBAAE,SAAS;AACnB,gBAAA,yBAAyB,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;AACtD,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACrB,YAAA,MAAM,UAAU,GACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;kBACvB,IAAI,CAAC,IAAI;AACX,kBAAE;AACI,oBAAA,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI;AAC/C,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,oBAAoB,EAAE,GAAG;iBAC5B,CAAC;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,+BAAA,EAAkC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA,CAAE,CACjE,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;;AAGD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,eAAe,GACjB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC/D,YACI,eAAe,CAAC,GAAG;AACnB,iBAAC,IAAI,CAAC,KAAK,KAAK,SAAS;AACrB,sBAAE,EAAE;AACJ,sBAAE,IAAI,CAAC,KAAK,KAAK,UAAU;AAC3B,0BAAE,GAAG;0BACH,GAAG,EAAE;AAEf,YAAA,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;SACzD;;AAGD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,eAAe,GACjB,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YAC7D,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,IAAI,GAAG,CAAC;AAE/C,YAAA,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,SAAS,CAAC;gBACnD,QAAQ,EAAE,eAAe,CAAC,QAAQ,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;AACpD,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI;AAChC,oBAAA,KAAK,EAAE,4CAA4C;AACnD,oBAAA,UAAU,EAAE,YAAY;AAC3B,iBAAA;AACD,gBAAA,eAAe,EAAE,eAAe,CAAC,eAAe,KAAK,KAAK;AAC1D,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;AAEf,oBAAA,QACI,GAAG,CAAC,IAAI,KAAK,SAAS;wBACtB,GAAG,CAAC,IAAI,KAAK,OAAO;AACpB,wBAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;wBAC/B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EACjC;iBACL;AACJ,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAA+C,4CAAA,EAAA,WAAW,CAAW,SAAA,CAAA,CACxE,CAAC;SACL;;AAGD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,MAAM,UAAU,GACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACnD,YAAA,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACzC,gBAAA,SAAS,EAAE,CAAC,GAAQ,KAChB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM;oBACnC,kEAAkE;gBACtE,oBAAoB,EAAE,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE;AACnD,gBAAA,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,mBAAmB;AACxD,gBAAA,aAAa,EAAE;AACX,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBAC7C,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC3B,oBAAA,IAAI,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;AACtC,iBAAA;AACJ,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC7B,YAAA,MAAM,iBAAiB,GACnB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACjE,YAAA,IAAI,CAAC,qBAAqB;AACtB,gBAAA,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACxD;;AAGD,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,YAAA,MAAM,kBAAkB,GACpB,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACnE,YAAA,IAAI,CAAC,sBAAsB;AACvB,gBAAA,iBAAiB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;SAC1D;;AAGD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,MAAM,sBAAsB,GACxB,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;gBACzC,IAAI,CAAC,gBAAgB,KAAK,IAAI;kBACxB,IAAI,CAAC,gBAAgB;kBACrB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,0BAA0B;AAC3B,gBAAA,iBAAiB,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;SAClE;;AAGD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,iBAAiB,GACnB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACjE,YAAA,IAAI,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,WAAW,CAAC;AACvD,gBAAA,KAAK,EAAE,iBAAiB,CAAC,KAAK,IAAI,CAAC;AACnC,gBAAA,SAAS,EAAE,iBAAiB,CAAC,SAAS,IAAI,IAAI;gBAC9C,MAAM,EAAE,iBAAiB,CAAC,MAAM;AACnC,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,MAAM,SAAS,GACX,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC;gBACvC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AACxD,gBAAA,UAAU,EAAE,SAAS,CAAC,UAAU,KAAK,KAAK;AAC1C,gBAAA,SAAS,EAAE,SAAS,CAAC,SAAS,KAAK,KAAK;AAC3C,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,MAAM,WAAW,GACb,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;kBAChC,IAAI,CAAC,aAAa;kBAClB,EAAE,CAAC;AACb,YAAA,IAAI,CAAC,uBAAuB,GAAG,iBAAiB,CAAC,aAAa,CAAC;AAC3D,gBAAA,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,GAAG;gBAC3C,UAAU,EACN,WAAW,CAAC,UAAU;AACtB,qBAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAO,KAAI;AACnB,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAU,EACV,CAAiB,cAAA,EAAA,GAAG,oBAAoB,GAAG,CAAC,EAAE,CAAA,CAAE,CACnD,CAAC;AACN,qBAAC,CAAC;AACT,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,MAAM,YAAY,GACd,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC;gBAC7C,IAAI,EACA,YAAY,CAAC,IAAI;AACjB,qBAAC,CAAC,GAAQ,EAAE,GAAQ,KAAK,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBAClD,MAAM,EAAE,YAAY,CAAC,MAAM;AAC9B,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,MAAM,cAAc,GAChB,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC;gBACjD,QAAQ,EAAE,cAAc,CAAC,QAAQ,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;AACnD,gBAAA,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,GAAG;gBAC5C,OAAO,EACH,cAAc,CAAC,OAAO;AACtB,qBAAC,CAAC,IAAS,EAAE,GAAQ,KAAI;wBACrB,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,GAAG,CAAC;AAC9C,wBAAA,OAAO,CAAC,IAAI,GAAG,UAAU,IAAI,GAAG,CAAC;AACrC,qBAAC,CAAC;AACT,aAAA,CAAC,CAAC;SACN;KACJ;AAED;;;AAGG;IACI,aAAa,GAAA;AAChB,QAAA,OAAO,CACH,GAAkB,EAClB,GAAmB,EACnB,IAAkB,KAClB;YACA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5C,SAAC,CAAC;KACL;AAED;;AAEG;AACK,IAAA,kBAAkB,CACtB,GAAkB,EAClB,GAAmB,EACnB,IAAkB,EAAA;QAElB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAC;QACpE,MAAM,eAAe,GACjB,EAAE,CAAC;;;;QAMP,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,wCAAwC,CAC3C,CAAC;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACpD;;QAGD,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,yCAAyC,CAC5C,CAAC;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACrD;;QAGD,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,0BAA0B,EAAE;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,6CAA6C,CAChD,CAAC;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;SACzD;;QAGD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;AAC/D,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACpD;;QAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;AAC1D,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC/C;;QAGD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACxD,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7C;;QAGD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,0CAA0C,CAC7C,CAAC;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACnD;;QAGD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,yCAAyC,CAC5C,CAAC;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAClD;;QAGD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;AACvD,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC5C;;QAGD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;AAClE,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACtD;;QAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;AAC1D,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC/C;;QAGD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;AAC7D,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACjD;;AAGD,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;AAClE,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;;QAGD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACxD,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7C;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,2BAAA,EAA8B,eAAe,CAAC,MAAM,CAAA,CAAE,CACzD,CAAC;;QAEF,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;KAChE;AAED;;AAEG;AACK,IAAA,sBAAsB,CAC1B,KAAqD,EACrD,GAAkB,EAClB,GAAmB,EACnB,SAAuB,EAAA;QAEvB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,gCAAA,EAAmC,KAAK,CAAC,MAAM,CAAA,WAAA,CAAa,CAC/D,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,CAAC,KAAW,KAAI;YACzB,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,gDAAgD,CACnD,CAAC;gBACF,OAAO;aACV;YAED,IAAI,KAAK,EAAE;gBACP,UAAU,GAAG,IAAI,CAAC;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAgC,6BAAA,EAAA,KAAK,GAAG,CAAC,CAAA,CAAA,CAAG,EAC5C,KAAK,CACR,CAAC;AACF,gBAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;aAC3B;AAED,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvB,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,8CAA8C,CACjD,CAAC;gBACF,OAAO,SAAS,EAAE,CAAC;aACtB;YAED,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,qBAAA,EAAwB,YAAY,GAAG,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,MAAM,CAAA,CAAE,CAC7D,CAAC;AAEF,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAElC,YAAA,IAAI;;gBAEA,IAAI,SAAS,GAA0B,IAAI,CAAC;gBAC5C,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,gBAAA,MAAM,cAAc,GAAG,CAAC,GAAS,KAAI;AACjC,oBAAA,IAAI,mBAAmB;wBAAE,OAAO;oBAChC,mBAAmB,GAAG,IAAI,CAAC;oBAE3B,IAAI,SAAS,EAAE;wBACX,YAAY,CAAC,SAAS,CAAC,CAAC;qBAC3B;AAED,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,WAAA,EAAc,YAAY,GAAG,CAAC,CAAA,UAAA,CAAY,CAC7C,CAAC;oBAEF,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,iBAAC,CAAC;;AAGF,gBAAA,SAAS,GAAG,UAAU,CAAC,MAAK;oBACxB,IAAI,CAAC,mBAAmB,EAAE;AACtB,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,WAAA,EACI,YAAY,GAAG,CACnB,CAAA,6BAAA,CAA+B,CAClC,CAAC;wBACF,mBAAmB,GAAG,IAAI,CAAC;AAC3B,wBAAA,IAAI,EAAE,CAAC;qBACV;AACL,iBAAC,EAAE,GAAG,CAAC,CAAC;;AAGR,gBAAA,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;aACxC;YAAC,OAAO,KAAK,EAAE;AACZ,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,UAAU,EACV,CAAA,iCAAA,EAAoC,YAAY,CAAA,CAAA,CAAG,EACnD,KAAK,CACR,CAAC;gBACF,SAAS,CAAC,KAAK,CAAC,CAAC;aACpB;AACL,SAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AAC3D,QAAA,IAAI,EAAE,CAAC;KACV;AAED;;AAEG;AACK,IAAA,aAAa,CACjB,GAAkB,EAClB,GAAmB,EACnB,IAAkB,EAAA;QAElB,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,MAAM,eAAe,GAAa,EAAE,CAAC;;QAGrC,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1C,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAC3D,GAAG,CAAC,IAAI,EACR,EAAE,EACF,GAAG,CACN,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,wBAAwB,GAAG,IAAI,CAAC;AAChC,gBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,KAAA,EAAQ,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;aAC5D;AAED,YAAA,IAAI;AACA,gBAAA,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;;AAEZ,gBAAA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;AAC/B,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,YAAY,EAAE,IAAI;AACrB,iBAAA,CAAC,CAAC;aACN;SACJ;;QAGD,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC5C,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAC3D,GAAG,CAAC,KAAK,EACT,EAAE,EACF,GAAG,CACN,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,wBAAwB,GAAG,IAAI,CAAC;AAChC,gBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,MAAA,EAAS,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;aAC7D;AAED,YAAA,IAAI;AACA,gBAAA,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;aACzB;YAAC,OAAO,KAAK,EAAE;;AAEZ,gBAAA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;AAChC,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,YAAY,EAAE,IAAI;AACrB,iBAAA,CAAC,CAAC;aACN;SACJ;;QAGD,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC9C,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAC3D,GAAG,CAAC,MAAM,EACV,EAAE,EACF,GAAG,CACN,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,wBAAwB,GAAG,IAAI,CAAC;AAChC,gBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,OAAA,EAAU,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;aAC9D;AAED,YAAA,IAAI;AACA,gBAAA,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;;AAEZ,gBAAA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;AACjC,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,YAAY,EAAE,IAAI;AACrB,iBAAA,CAAC,CAAC;aACN;SACJ;;QAGD,IAAI,wBAAwB,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAU,EACV,2BACI,GAAG,CAAC,EACR,CAAuB,oBAAA,EAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACtD,CAAC;AAEF,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,gBAAA,KAAK,EAAE,4BAA4B;AACnC,gBAAA,OAAO,EAAE,6CAA6C;AACtD,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACtC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO;SACV;AAED,QAAA,IAAI,EAAE,CAAC;KACV;AAED;;AAEG;AACK,IAAA,cAAc,CAAC,GAAQ,EAAA;AAC3B,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACnB;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;AAED,QAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAChC,MAAM,SAAS,GAAQ,EAAE,CAAC;AAC1B,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC/C;AACD,YAAA,OAAO,SAAS,CAAC;SACpB;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED;;AAEG;AACK,IAAA,2BAA2B,CAC/B,GAAQ,EACR,IAAe,GAAA,EAAE,EACjB,GAAmB,EAAA;QAEnB,MAAM,OAAO,GAAa,EAAE,CAAC;AAE7B,QAAA,MAAM,qBAAqB,GAAG,CAC1B,KAAU,EACV,WAAmB,KACd;AACL,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,gBAAA,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,MAAM,gBAAgB,GAAa,EAAE,CAAC;;AAGtC,gBAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;oBACxB,cAAc,GAAG,IAAI,CAAC;AACtB,oBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChC;;gBAGD,IACI,IAAI,CAAC,YAAY;AACjB,oBAAA,IAAI,CAAC,yBAAyB,CAC1B,GAAI,EACJ,IAAI,CAAC,WAAW,EAAE,YAAY,CACjC,EACH;AACE,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC9C,QAAQ,EACR,WAAW,CACd,CAAC;AACF,oBAAA,IAAI,SAAS,CAAC,WAAW,EAAE;wBACvB,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CACjB,CAAA,eAAA,EAAkB,SAAS,CAAC,SAAS,CAAG,CAAA,CAAA,CAC3C,CAAC;;AAEF,wBAAA,IAAI,SAAS,CAAC,cAAc,EAAE;AAC1B,4BAAA,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;yBACxC;qBACJ;iBACJ;;gBAGD,IACI,IAAI,CAAC,aAAa;AAClB,oBAAA,IAAI,CAAC,yBAAyB,CAC1B,GAAI,EACJ,IAAI,CAAC,WAAW,EAAE,aAAa,CAClC,EACH;oBACE,MAAM,UAAU,GACZ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,oBAAA,IAAI,UAAU,CAAC,WAAW,EAAE;wBACxB,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CACjB,CAAA,gBAAA,EAAmB,UAAU,CAAC,SAAS,CAAG,CAAA,CAAA,CAC7C,CAAC;AACF,wBAAA,IAAI,UAAU,CAAC,cAAc,EAAE;AAC3B,4BAAA,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC;yBACzC;qBACJ;iBACJ;;gBAGD,IACI,IAAI,CAAC,gBAAgB;AACrB,oBAAA,IAAI,CAAC,yBAAyB,CAC1B,GAAI,EACJ,IAAI,CAAC,WAAW,EAAE,gBAAgB,CACrC,EACH;oBACE,MAAM,SAAS,GACX,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnD,oBAAA,IAAI,SAAS,CAAC,WAAW,EAAE;wBACvB,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CACjB,CAAA,mBAAA,EAAsB,SAAS,CAAC,SAAS,CAAG,CAAA,CAAA,CAC/C,CAAC;AACF,wBAAA,IAAI,SAAS,CAAC,cAAc,EAAE;AAC1B,4BAAA,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;yBACxC;qBACJ;iBACJ;;gBAGD,IACI,IAAI,CAAC,GAAG;oBACR,IAAI,CAAC,yBAAyB,CAC1B,GAAI,EACJ,IAAI,CAAC,WAAW,EAAE,GAAG,CACxB;AACD,qBAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvB,wBAAA,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACrC;oBACE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrD,oBAAA,IAAI,SAAS,CAAC,WAAW,EAAE;wBACvB,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CACjB,CAAA,YAAA,EAAe,SAAS,CAAC,SAAS,CAAG,CAAA,CAAA,CACxC,CAAC;AACF,wBAAA,IAAI,SAAS,CAAC,cAAc,EAAE;AAC1B,4BAAA,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;yBACxC;qBACJ;iBACJ;;gBAGD,IACI,IAAI,CAAC,aAAa;AAClB,oBAAA,IAAI,CAAC,yBAAyB,CAC1B,GAAI,EACJ,IAAI,CAAC,WAAW,EAAE,aAAa,CAClC,EACH;oBACE,MAAM,UAAU,GACZ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,oBAAA,IAAI,UAAU,CAAC,WAAW,EAAE;wBACxB,cAAc,GAAG,IAAI,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CACjB,CAAA,gBAAA,EAAmB,UAAU,CAAC,SAAS,CAAG,CAAA,CAAA,CAC7C,CAAC;AACF,wBAAA,IAAI,UAAU,CAAC,cAAc,EAAE;AAC3B,4BAAA,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC;yBACzC;qBACJ;iBACJ;;AAGD,gBAAA,MAAM,iBAAiB,GAAG;oBACtB,cAAc;oBACd,YAAY;oBACZ,QAAQ;AACR,oBAAA,YAAY;oBACZ,UAAU;oBACV,UAAU;oBACV,SAAS;oBACT,QAAQ;oBACR,QAAQ;AACR,oBAAA,kBAAkB;oBAClB,yBAAyB;iBAC5B,CAAC;AAEF,gBAAA,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;AACrC,oBAAA,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBACxB,cAAc,GAAG,IAAI,CAAC;AACtB,wBAAA,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;wBAEtC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;wBACnD,MAAM;qBACT;iBACJ;gBAED,IAAI,cAAc,EAAE;AAChB,oBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC;;oBAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAU,EACV,+BACI,WAAW,IAAI,MACnB,CAAK,EAAA,EAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACrC,CAAC;iBACL;AAED,gBAAA,OAAO,SAAS,CAAC;aACpB;AAED,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KACzB,qBAAqB,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,IAAI,KAAK,CAAA,CAAA,CAAG,CAAC,CAC1D,CAAC;aACL;AAED,YAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,MAAM,SAAS,GAAQ,EAAE,CAAC;AAC1B,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5C,oBAAA,MAAM,OAAO,GAAG,WAAW,GAAG,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,GAAG,CAAE,CAAA,GAAG,GAAG,CAAC;oBAC5D,SAAS,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;iBACxD;AACD,gBAAA,OAAO,SAAS,CAAC;aACpB;AAED,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC;QAEF,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnD,QAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;KACjC;AAED;;AAEG;AACI,IAAA,iBAAiB,CAAC,GAAkB,EAAA;QACvC,IAAI,IAAI,CAAC,IAAI,IAAK,GAAW,CAAC,SAAS,EAAE;AACrC,YAAA,OAAQ,GAAW,CAAC,SAAS,EAAE,CAAC;SACnC;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;AAEG;IACK,oBAAoB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;AAC3C,QAAA,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YACnE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC;SAC5C;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;IACK,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;AAC5C,QAAA,IACI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AACrC,YAAA,IAAI,CAAC,YAAY,KAAK,IAAI,EAC5B;YACE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC;SAC7C;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;IACI,SAAS,GAAA;QACZ,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC;KACL;AAED;;AAEG;AACK,IAAA,YAAY,CAChB,WAAmB,EACnB,aAAqB,EACrB,OAAuC,EAAA;;QAGvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE;YAClD,MAAM,YAAY,GAAG,OAAuB,CAAC;;AAE7C,YAAA,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,gBAAA,IACI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAC7D;AACE,oBAAA,OAAO,KAAK,CAAC;iBAChB;aACJ;AACD,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,WAAW,EACX,aAAa,EACb,YAAY,CAAC,IAAI,CACpB,CAAC;SACL;;AAGD,QAAA,IAAI,OAAO,YAAY,MAAM,EAAE;AAC3B,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC;;QAGD,MAAM,UAAU,GAAG,OAAiB,CAAC;;QAGrC,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;AAGxD,QAAA,IAAI,iBAAiB,KAAK,qBAAqB,EAAE;AAC7C,YAAA,OAAO,IAAI,CAAC;SACf;;AAGD,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE1B,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC3B,gBAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;AAEvC,gBAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CACpB,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA,SAAA,CAAW,CAC9D,CAAC;AACF,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;iBAAM;gBACH,MAAM,YAAY,GAAG,UAAU;AAC1B,qBAAA,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACrC,qBAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,YAAY,CAAG,CAAA,CAAA,CAAC,CAAC;AAC9C,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;SACJ;;AAGD,QAAA,IAAI,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;IACK,yBAAyB,CAC7B,GAAkB,EAClB,YAAwC,EAAA;QAExC,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;;QAG1C,IACI,YAAY,CAAC,aAAa;AAC1B,YAAA,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EACvC;;YAEE,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAC3C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CACzD,CAAC;SACL;;QAGD,IACI,YAAY,CAAC,aAAa;AAC1B,YAAA,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EACvC;;YAEE,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KACvD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CACzD,CAAC;YACF,OAAO,CAAC,UAAU,CAAC;SACtB;QAED,OAAO,IAAI,CAAC;KACf;AACJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -1664,64 +1664,6 @@ interface CacheStrategy {
1664
1664
  tags?: string[];
1665
1665
  }
1666
1666
 
1667
- /**
1668
- * @fileoverview Security-related type definitions for XyPrissJS Express integration
1669
- *
1670
- * This module contains all security-related types including authentication,
1671
- * authorization, encryption, and security policies.
1672
- *
1673
- * @version 4.5.11
1674
- * @author XyPrissJS Team
1675
- * @since 2025-01-06
1676
- */
1677
- /**
1678
- * Security configuration levels.
1679
- *
1680
- * Predefined security levels that automatically configure
1681
- * appropriate security measures:
1682
- * - basic: Essential security features
1683
- * - enhanced: Additional security layers
1684
- * - maximum: All security features enabled
1685
- */
1686
- type SecurityLevel = "basic" | "enhanced" | "maximum";
1687
- /**
1688
- * CSRF Protection Configuration
1689
- *
1690
- * Protects against Cross-Site Request Forgery attacks by requiring tokens.
1691
- * Can be enabled/disabled or configured with custom options.
1692
- *
1693
- * @example Enable with defaults:
1694
- * ```typescript
1695
- * csrf: true
1696
- * ```
1697
- *
1698
- * @example Disable:
1699
- * ```typescript
1700
- * csrf: false
1701
- * ```
1702
- *
1703
- * @example Custom configuration:
1704
- * ```typescript
1705
- * csrf: {
1706
- * cookieName: '__Host-csrf-token',
1707
- * cookieOptions: {
1708
- * httpOnly: true,
1709
- * sameSite: 'strict',
1710
- * secure: process.env.NODE_ENV === 'production'
1711
- * }
1712
- * }
1713
- * ```
1714
- */
1715
- interface CSRFConfig {
1716
- /** CSRF token cookie name */
1717
- cookieName?: string;
1718
- /** CSRF token cookie options */
1719
- cookieOptions?: {
1720
- httpOnly?: boolean;
1721
- sameSite?: boolean | "lax" | "strict" | "none";
1722
- secure?: boolean;
1723
- };
1724
- }
1725
1667
  /**
1726
1668
  * Browser-Only Protection Configuration
1727
1669
  *
@@ -1804,6 +1746,102 @@ interface TerminalOnlyConfig {
1804
1746
  /** Enable debug logging */
1805
1747
  debug?: boolean;
1806
1748
  }
1749
+
1750
+ /**
1751
+ * @fileoverview Security-related type definitions for XyPrissJS Express integration
1752
+ *
1753
+ * This module contains all security-related types including authentication,
1754
+ * authorization, encryption, and security policies.
1755
+ *
1756
+ * @version 4.5.11
1757
+ * @author XyPrissJS Team
1758
+ * @since 2025-01-06
1759
+ */
1760
+ /**
1761
+ * Security configuration levels.
1762
+ *
1763
+ * Predefined security levels that automatically configure
1764
+ * appropriate security measures:
1765
+ * - basic: Essential security features
1766
+ * - enhanced: Additional security layers
1767
+ * - maximum: All security features enabled
1768
+ */
1769
+ type SecurityLevel = "basic" | "enhanced" | "maximum";
1770
+ /**
1771
+ * CSRF Protection Configuration
1772
+ *
1773
+ * Protects against Cross-Site Request Forgery attacks by requiring tokens.
1774
+ * Can be enabled/disabled or configured with custom options.
1775
+ *
1776
+ * @example Enable with defaults:
1777
+ * ```typescript
1778
+ * csrf: true
1779
+ * ```
1780
+ *
1781
+ * @example Disable:
1782
+ * ```typescript
1783
+ * csrf: false
1784
+ * ```
1785
+ *
1786
+ * @example Custom configuration:
1787
+ * ```typescript
1788
+ * csrf: {
1789
+ * cookieName: '__Host-csrf-token',
1790
+ * cookieOptions: {
1791
+ * httpOnly: true,
1792
+ * sameSite: 'strict',
1793
+ * secure: process.env.NODE_ENV === 'production'
1794
+ * }
1795
+ * }
1796
+ * ```
1797
+ */
1798
+ interface CSRFConfig {
1799
+ /** CSRF token cookie name */
1800
+ cookieName?: string;
1801
+ /** CSRF token cookie options */
1802
+ cookieOptions?: {
1803
+ httpOnly?: boolean;
1804
+ sameSite?: boolean | "lax" | "strict" | "none";
1805
+ secure?: boolean;
1806
+ };
1807
+ }
1808
+ /**
1809
+ * XyRS - XyPriss Request Signature Configuration
1810
+ *
1811
+ * Validates request signatures using the XP-Request-Sig header.
1812
+ * Provides API authentication by requiring a secret signature on all requests.
1813
+ *
1814
+ * @example Enable with secret:
1815
+ * ```typescript
1816
+ * requestSignature: {
1817
+ * secret: "my-secret-api-key"
1818
+ * }
1819
+ * ```
1820
+ *
1821
+ * @example Custom configuration:
1822
+ * ```typescript
1823
+ * requestSignature: {
1824
+ * secret: "my-secret-api-key",
1825
+ * errorMessage: "API key required",
1826
+ * statusCode: 403,
1827
+ * caseSensitive: false
1828
+ * }
1829
+ * ```
1830
+ */
1831
+ interface RequestSignatureConfig {
1832
+ /** The secret value that must match the XP-Request-Sig header */
1833
+ secret: string;
1834
+ /** Custom error message for blocked requests */
1835
+ errorMessage?: string;
1836
+ /** HTTP status code for blocked requests */
1837
+ statusCode?: number;
1838
+ /** Enable debug logging */
1839
+ debug?: boolean;
1840
+ /** Case-sensitive comparison */
1841
+ caseSensitive?: boolean;
1842
+ /** Trim whitespace from header value */
1843
+ trimValue?: boolean;
1844
+ }
1807
1845
  /**
1808
1846
  * Helmet Security Headers Configuration
1809
1847
  *
@@ -2714,6 +2752,30 @@ interface SecurityConfig {
2714
2752
  * ```
2715
2753
  */
2716
2754
  terminalOnly?: boolean | TerminalOnlyConfig;
2755
+ /**
2756
+ * XyRS - XyPriss Request Signature Configuration
2757
+ *
2758
+ * Validates request signatures using the XP-Request-Sig header.
2759
+ * Provides API authentication by requiring a secret signature on all requests.
2760
+ *
2761
+ * @example Enable with secret:
2762
+ * ```typescript
2763
+ * requestSignature: {
2764
+ * secret: "my-secret-api-key"
2765
+ * }
2766
+ * ```
2767
+ *
2768
+ * @example Custom configuration:
2769
+ * ```typescript
2770
+ * requestSignature: {
2771
+ * secret: "my-secret-api-key",
2772
+ * errorMessage: "API key required",
2773
+ * statusCode: 403,
2774
+ * caseSensitive: false
2775
+ * }
2776
+ * ```
2777
+ */
2778
+ requestSignature?: boolean | RequestSignatureConfig;
2717
2779
  }
2718
2780
  /**
2719
2781
  * Encryption configuration interface.
@@ -2879,25 +2941,38 @@ interface SessionCookieConfig {
2879
2941
  *
2880
2942
  * @example
2881
2943
  * ```typescript
2882
- * // Allow all headers (default - developer-friendly)
2944
+ * // Allow all origins (default - developer-friendly)
2883
2945
  * const corsConfig: CORSConfig = {
2884
2946
  * origin: '*',
2885
2947
  * methods: ['GET', 'POST', 'PUT', 'DELETE'],
2886
2948
  * credentials: true
2887
2949
  * };
2888
2950
  *
2889
- * // Restrict specific headers (production)
2951
+ * // Restrict specific origins (production)
2890
2952
  * const restrictiveCorsConfig: CORSConfig = {
2891
2953
  * origin: ['https://example.com', 'https://app.example.com'],
2892
2954
  * methods: ['GET', 'POST', 'PUT', 'DELETE'],
2893
2955
  * allowedHeaders: ['Content-Type', 'Authorization'],
2894
2956
  * credentials: true
2895
2957
  * };
2958
+ *
2959
+ * // Advanced patterns with RegExp (powerful and flexible)
2960
+ * const advancedCorsConfig: CORSConfig = {
2961
+ * origin: [
2962
+ * /^localhost:\d+$/, // localhost:3000, localhost:8080, etc.
2963
+ * /^127\.0\.0\.1:\d+$/, // 127.0.0.1:3000, etc.
2964
+ * /^::1:\d+$/, // IPv6 localhost
2965
+ * /\.test\.com$/, // *.test.com
2966
+ * 'https://production.com' // Exact match
2967
+ * ],
2968
+ * methods: ['GET', 'POST'],
2969
+ * credentials: true
2970
+ * };
2896
2971
  * ```
2897
2972
  */
2898
2973
  interface CORSConfig {
2899
- /** Allowed origins - can be string, array of strings, or boolean */
2900
- origin?: string | string[] | boolean;
2974
+ /** Allowed origins - can be string, RegExp, array of mixed types, or boolean */
2975
+ origin?: string | RegExp | (string | RegExp)[] | boolean;
2901
2976
  /** Allowed HTTP methods */
2902
2977
  methods?: string[];
2903
2978
  /**
@@ -4553,6 +4628,7 @@ declare class SecurityMiddleware {
4553
4628
  slowDown: boolean | SlowDownConfig;
4554
4629
  browserOnly: boolean | BrowserOnlyConfig;
4555
4630
  terminalOnly: boolean | TerminalOnlyConfig;
4631
+ requestSignature: boolean | RequestSignatureConfig;
4556
4632
  encryption: Required<SecurityConfig>["encryption"];
4557
4633
  authentication: Required<SecurityConfig>["authentication"];
4558
4634
  routeConfig?: SecurityConfig["routeConfig"];
@@ -4563,6 +4639,7 @@ declare class SecurityMiddleware {
4563
4639
  private csrfMiddleware;
4564
4640
  private browserOnlyMiddleware;
4565
4641
  private terminalOnlyMiddleware;
4642
+ private requestSignatureMiddleware;
4566
4643
  private mongoSanitizeMiddleware;
4567
4644
  private hppMiddleware;
4568
4645
  private compressionMiddleware;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xypriss",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "XyPriss is a lightweight, TypeScript-first, open-source Node.js web framework crafted for developers seeking a familiar Express-like API without Express dependencies. It features built-in security middleware, a robust routing system, and performance optimizations to build scalable, secure web applications effortlessly. Join our community and contribute on GitHub!",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",