@ductape/sdk 0.0.4-v43 → 0.0.4-v44

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 (39) hide show
  1. package/dist/apps/services/app.service.js +16 -69
  2. package/dist/apps/services/app.service.js.map +1 -1
  3. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +1 -2
  4. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +2 -15
  5. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
  6. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +1 -2
  7. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +2 -14
  8. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
  9. package/dist/database/adapters/dynamodb.adapter.d.ts +8 -0
  10. package/dist/database/adapters/dynamodb.adapter.js +243 -11
  11. package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
  12. package/dist/database/adapters/mongodb.adapter.d.ts +1 -0
  13. package/dist/database/adapters/mongodb.adapter.js +170 -5
  14. package/dist/database/adapters/mongodb.adapter.js.map +1 -1
  15. package/dist/database/adapters/mysql.adapter.d.ts +5 -0
  16. package/dist/database/adapters/mysql.adapter.js +215 -19
  17. package/dist/database/adapters/mysql.adapter.js.map +1 -1
  18. package/dist/database/adapters/postgresql.adapter.d.ts +5 -0
  19. package/dist/database/adapters/postgresql.adapter.js +199 -15
  20. package/dist/database/adapters/postgresql.adapter.js.map +1 -1
  21. package/dist/database/database.service.d.ts +5 -0
  22. package/dist/database/database.service.js +45 -95
  23. package/dist/database/database.service.js.map +1 -1
  24. package/dist/database/types/aggregation.types.d.ts +28 -28
  25. package/dist/database/types/database.types.d.ts +2 -1
  26. package/dist/database/types/database.types.js +1 -0
  27. package/dist/database/types/database.types.js.map +1 -1
  28. package/dist/database/types/index.types.d.ts +20 -20
  29. package/dist/database/types/migration.types.d.ts +12 -12
  30. package/dist/database/types/query.types.d.ts +59 -28
  31. package/dist/index.d.ts +169 -142
  32. package/dist/index.js +196 -169
  33. package/dist/index.js.map +1 -1
  34. package/dist/processor/services/processor.service.js +51 -35
  35. package/dist/processor/services/processor.service.js.map +1 -1
  36. package/dist/test/test.processor.js +1 -3
  37. package/dist/test/test.processor.js.map +1 -1
  38. package/dist/types/appBuilder.types.d.ts +1 -1
  39. package/package.json +1 -1
@@ -406,7 +406,24 @@ class MongoDBAdapter extends base_adapter_1.BaseDatabaseAdapter {
406
406
  const aggregations = {};
407
407
  if (options.aggregate) {
408
408
  Object.entries(options.aggregate).forEach(([key, agg]) => {
409
- aggregations[key] = { [`$${agg.function}`]: `$${agg.column}` };
409
+ // Support both old format { function: 'avg', column: 'price' }
410
+ // and new simplified format { $AVG: 'price' }
411
+ if (agg.function && agg.column) {
412
+ aggregations[key] = { [`$${agg.function.toLowerCase()}`]: `$${agg.column}` };
413
+ }
414
+ else {
415
+ // Check for $-prefixed aggregation functions
416
+ const aggObj = agg;
417
+ const aggFunctions = ['$COUNT', '$AVG', '$SUM', '$MIN', '$MAX', 'COUNT', 'AVG', 'SUM', 'MIN', 'MAX'];
418
+ for (const func of aggFunctions) {
419
+ if (aggObj[func] !== undefined) {
420
+ const funcName = func.replace('$', '').toLowerCase();
421
+ const column = aggObj[func];
422
+ aggregations[key] = { [`$${funcName}`]: column === '*' ? 1 : `$${column}` };
423
+ break;
424
+ }
425
+ }
426
+ }
410
427
  });
411
428
  }
412
429
  const pipeline = [
@@ -431,7 +448,24 @@ class MongoDBAdapter extends base_adapter_1.BaseDatabaseAdapter {
431
448
  // Build aggregations
432
449
  const aggregations = {};
433
450
  Object.entries(options.operations).forEach(([key, agg]) => {
434
- aggregations[key] = { [`$${agg.function}`]: `$${agg.column}` };
451
+ // Support both old format { function: 'avg', column: 'price' }
452
+ // and new simplified format { $AVG: 'price' }
453
+ if (agg.function && agg.column) {
454
+ aggregations[key] = { [`$${agg.function.toLowerCase()}`]: `$${agg.column}` };
455
+ }
456
+ else {
457
+ // Check for $-prefixed aggregation functions
458
+ const aggObj = agg;
459
+ const aggFunctions = ['$COUNT', '$AVG', '$SUM', '$MIN', '$MAX', 'COUNT', 'AVG', 'SUM', 'MIN', 'MAX'];
460
+ for (const func of aggFunctions) {
461
+ if (aggObj[func] !== undefined) {
462
+ const funcName = func.replace('$', '').toLowerCase();
463
+ const column = aggObj[func];
464
+ aggregations[key] = { [`$${funcName}`]: column === '*' ? 1 : `$${column}` };
465
+ break;
466
+ }
467
+ }
468
+ }
435
469
  });
436
470
  const pipeline = [
437
471
  { $match: matchStage },
@@ -661,14 +695,145 @@ class MongoDBAdapter extends base_adapter_1.BaseDatabaseAdapter {
661
695
  // ==================== Helper Methods ====================
662
696
  /**
663
697
  * Build MongoDB filter from where clause
698
+ * Supports both simplified syntax (GT, LT, AND, OR, etc.) and legacy $ prefix operators
664
699
  */
665
700
  buildMongoFilter(where) {
666
701
  if (!where) {
667
702
  return {};
668
703
  }
669
- // Simple implementation - can be extended for complex queries
670
- // TODO: Handle operators like $and, $or, $gt, $lt, etc.
671
- return where;
704
+ if (typeof where !== 'object' || where === null) {
705
+ return where;
706
+ }
707
+ const buildCondition = (condition) => {
708
+ if (typeof condition !== 'object' || condition === null) {
709
+ return condition;
710
+ }
711
+ // Handle logical operators (supports $AND, AND, and legacy $and)
712
+ if (condition.$AND || condition.AND || condition.$and) {
713
+ const andConditions = condition.$AND || condition.AND || condition.$and;
714
+ if (typeof andConditions === 'object' && !Array.isArray(andConditions)) {
715
+ // New syntax: { $AND: { col1: val1, col2: val2 } }
716
+ return buildCondition(andConditions);
717
+ }
718
+ else {
719
+ // Array syntax: { $AND: [cond1, cond2] }
720
+ return { $and: andConditions.map(buildCondition) };
721
+ }
722
+ }
723
+ if (condition.$OR || condition.OR || condition.$or) {
724
+ const orConditions = condition.$OR || condition.OR || condition.$or;
725
+ if (typeof orConditions === 'object' && !Array.isArray(orConditions)) {
726
+ // New syntax: { $OR: { col1: val1, col2: val2 } }
727
+ const subConditions = [];
728
+ for (const [key, value] of Object.entries(orConditions)) {
729
+ if (key === '$AND' || key === 'AND' || key === '$and' || key === '$OR' || key === 'OR' || key === '$or') {
730
+ subConditions.push(buildCondition({ [key]: value }));
731
+ }
732
+ else {
733
+ subConditions.push(buildCondition({ [key]: value }));
734
+ }
735
+ }
736
+ return { $or: subConditions };
737
+ }
738
+ else {
739
+ // Array syntax: { $OR: [cond1, cond2] }
740
+ return { $or: orConditions.map(buildCondition) };
741
+ }
742
+ }
743
+ // Handle column conditions
744
+ const filter = {};
745
+ for (const [key, value] of Object.entries(condition)) {
746
+ // Skip logical operators at this level
747
+ if (key === '$AND' || key === 'AND' || key === '$and' || key === '$OR' || key === 'OR' || key === '$or') {
748
+ continue;
749
+ }
750
+ if (typeof value === 'object' && value !== null && !Array.isArray(value) && !(value instanceof Date)) {
751
+ // Handle comparison operators
752
+ const operators = {};
753
+ for (const [op, opValue] of Object.entries(value)) {
754
+ switch (op) {
755
+ // Preferred $-prefixed syntax - map to MongoDB operators
756
+ case '$GT':
757
+ case 'GT':
758
+ operators.$gt = opValue;
759
+ break;
760
+ case '$GTE':
761
+ case 'GTE':
762
+ operators.$gte = opValue;
763
+ break;
764
+ case '$LT':
765
+ case 'LT':
766
+ operators.$lt = opValue;
767
+ break;
768
+ case '$LTE':
769
+ case 'LTE':
770
+ operators.$lte = opValue;
771
+ break;
772
+ case '$NE':
773
+ case '$NOT':
774
+ case 'NE':
775
+ case 'NOT':
776
+ operators.$ne = opValue;
777
+ break;
778
+ case '$IN':
779
+ case 'IN':
780
+ operators.$in = opValue;
781
+ break;
782
+ case '$NOT_IN':
783
+ case 'NOT_IN':
784
+ operators.$nin = opValue;
785
+ break;
786
+ case '$LIKE':
787
+ case 'LIKE':
788
+ // MongoDB uses regex for pattern matching
789
+ operators.$regex = opValue.replace(/%/g, '.*').replace(/_/g, '.');
790
+ operators.$options = 'i';
791
+ break;
792
+ case '$IS_NULL':
793
+ case 'IS_NULL':
794
+ operators.$eq = null;
795
+ break;
796
+ case '$IS_NOT_NULL':
797
+ case 'IS_NOT_NULL':
798
+ operators.$ne = null;
799
+ break;
800
+ case '$BETWEEN':
801
+ case 'BETWEEN':
802
+ if (Array.isArray(opValue) && opValue.length === 2) {
803
+ operators.$gte = opValue[0];
804
+ operators.$lte = opValue[1];
805
+ }
806
+ break;
807
+ // Legacy lowercase $ operators - pass through
808
+ case '$gt':
809
+ case '$gte':
810
+ case '$lt':
811
+ case '$lte':
812
+ case '$ne':
813
+ case '$in':
814
+ case '$nin':
815
+ case '$regex':
816
+ case '$options':
817
+ case '$exists':
818
+ case '$type':
819
+ case '$eq':
820
+ case '$elemMatch':
821
+ case '$size':
822
+ case '$all':
823
+ operators[op] = opValue;
824
+ break;
825
+ }
826
+ }
827
+ filter[key] = operators;
828
+ }
829
+ else {
830
+ // Simple equality
831
+ filter[key] = value;
832
+ }
833
+ }
834
+ return filter;
835
+ };
836
+ return buildCondition(where);
672
837
  }
673
838
  // ==================== Utility Methods ====================
674
839
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/mongodb.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb.adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/mongodb.adapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;AAEH,iDAAqD;AACrD,4DAOiC;AACjC,sDAQ8B;AA0C9B;;GAEG;AACH,MAAM,iBAAiB;IAOrB,YAAY,EAAU,EAAE,MAAW,EAAE,EAAO;QAC1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,6BAAY,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,iCAAgB,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,0CAAE,WAAW,EAAE,CAAA,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,iCAAgB,CAAC,SAAS,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,iCAAgB,CAAC,YAAY,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,WAAW;;QACT,OAAO,IAAI,CAAC,MAAM,KAAK,iCAAgB,CAAC,SAAS,KAAI,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,0CAAE,WAAW,EAAE,CAAA,CAAC;IAC5F,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,EAAO,CAAC;IACtB,CAAC;CACF;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,kCAAmB;IAAvD;;QACW,SAAI,GAAG,6BAAY,CAAC,OAAO,CAAC;QAC7B,mBAAc,GAA6B,IAAI,GAAG,EAAE,CAAC;IAohC/D,CAAC;IAlhCC,+DAA+D;IAE/D,KAAK,CAAC,OAAO,CAAC,MAAuB;QACnC,IAAI,CAAC;YACH,2CAA2C;YAC3C,mDAAmD;YAEnD,8BAA8B;YAC9B,yCAAyC;YACzC,0FAA0F;YAE1F,8BAA8B;YAC9B,wCAAwC;YACxC,uBAAuB;YACvB,MAAM;YAEN,2BAA2B;YAC3B,0BAA0B;YAE1B,qBAAqB;YACrB,yCAAyC;YAEzC,kCAAkC;YAClC,mEAAmE;YACnE,sEAAsE;YAEtE,qBAAqB;YAErB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,gBAAgB,EAClC,2CAA2C,CAC5C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,gBAAgB,EAClC,iCAAiC,KAAK,CAAC,OAAO,EAAE,EAChD,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAuB;QACtC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAuB;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,kCAAkC;YAClC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE5C,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,mCAAmC;gBAC5C,YAAY,EAAE,SAAS;gBACvB,YAAY;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,8BAA8B;gBACvC,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACpC,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,gBAAgB,CAAC,UAAuB;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACtC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAuB,EAAE,WAAgB;QAC/D,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACtC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAuB,EAAE,WAAgB;QACjE,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,UAAuB,EACvB,WAAgB,EAChB,aAAqB;QAErB,sEAAsE;QACtE,6EAA6E;QAC7E,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAuB,EACvB,WAAgB,EAChB,aAAqB;QAErB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,UAAuB,EACvB,WAAgB,EAChB,aAAqB;QAErB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,qCAAqC,CACtC,CAAC;IACJ,CAAC;IAED,0DAA0D;IAE1D,KAAK,CAAC,KAAK,CAAU,UAAuB,EAAE,OAAsB;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,yCAAyC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEpD,sBAAsB;YACtB,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpC,4BAA4B;YAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;YAED,gBAAgB;YAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAQ,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1F,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,uBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;gBACH,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,yBAAyB;YACzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,aAAa;gBACb,YAAY,EAAE,SAAS;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,yBAAyB,KAAK,CAAC,OAAO,EAAE,EACxC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,UAAuB,EAAE,OAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACzE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAgB,CAAC,CAAC,CAAC,SAAS;gBACtD,aAAa;gBACb,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,0BAA0B,KAAK,CAAC,OAAO,EAAE,EACzC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,UAAuB,EAAE,OAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa;gBACb,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,0BAA0B,KAAK,CAAC,OAAO,EAAE,EACzC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,UAAuB,EAAE,OAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa;gBACb,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,0BAA0B,KAAK,CAAC,OAAO,EAAE,EACzC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,UAAuB,EAAE,OAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,wCAAwC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YAE1E,wBAAwB;YACxB,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,CAAC;gBACxC,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,aAAa,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;gBAC1D,aAAa;gBACb,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,0BAA0B,KAAK,CAAC,OAAO,EAAE,EACzC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAU,UAAuB,EAAE,OAAyB;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAElC,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/C,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnD,aAAa;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAC5C,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,KAAK,CAAC,UAAuB,EAAE,OAAsB;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,yBAAyB,KAAK,CAAC,OAAO,EAAE,EACxC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAuB,EAAE,OAAoB;;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,IAAW;wBAChB,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;qBACtC;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,KAAK,KAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,uBAAuB,KAAK,CAAC,OAAO,EAAE,EACtC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAuB,EAAE,OAAoB;;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,IAAW;wBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;qBACxC;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,KAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,uBAAuB,KAAK,CAAC,OAAO,EAAE,EACtC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAuB,EAAE,OAAoB;;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,IAAW;wBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;qBACxC;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,KAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,uBAAuB,KAAK,CAAC,OAAO,EAAE,EACtC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAuB,EAAE,OAAoB;;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,IAAW;wBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;qBACxC;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAA,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,KAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,uBAAuB,KAAK,CAAC,OAAO,EAAE,EACtC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAAwB;QAC7D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExD,8BAA8B;YAC9B,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,YAAY,GAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;oBACvD,+DAA+D;oBAC/D,8CAA8C;oBAC9C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC/E,CAAC;yBAAM,CAAC;wBACN,6CAA6C;wBAC7C,MAAM,MAAM,GAAG,GAAU,CAAC;wBAC1B,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACrG,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;4BAChC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gCAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gCACrD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gCAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;gCAC5E,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,kBACJ,GAAG,EAAE,OAAO,IACT,YAAY,CAChB;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAE9D,sCAAsC;YACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,+CAC3B,GAAG,CAAC,GAAG,GACP,GAAG,KACN,GAAG,EAAE,SAAS,IACd,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,2BAA2B,KAAK,CAAC,OAAO,EAAE,EAC1C,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAuB,EAAE,OAA0B;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExD,qBAAqB;YACrB,MAAM,YAAY,GAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBACxD,+DAA+D;gBAC/D,8CAA8C;gBAC9C,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,6CAA6C;oBAC7C,MAAM,MAAM,GAAG,GAAU,CAAC;oBAC1B,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACrG,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;wBAChC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;4BAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;4BACrD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;4BAC5E,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG;gBACf,EAAE,MAAM,EAAE,UAAU,EAAE;gBACtB;oBACE,MAAM,kBACJ,GAAG,EAAE,IAAW,IACb,YAAY,CAChB;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,MAAM,KAA8B,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAA7C,EAAE,GAAG,OAAwC,EAAnC,eAAe,cAAzB,OAA2B,CAAkB,CAAC;YACpD,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAC5C,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,KAAK,CAAC,WAAW,CACf,UAAuB,EACvB,MAAoB,EACpB,OAA6B;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAElC,6EAA6E;YAC7E,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEvC,8BAA8B;YAC9B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAQ,EAAE,CAAC;oBAC1B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAC;oBACH,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE7C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,aAAa;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAuB,EAAE,SAAiB;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAEnC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAAuB,EACvB,SAAiB,EACjB,WAAgC,EAChC,OAA4B;QAE5B,sEAAsE;QACtE,+DAA+D;QAC/D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAuB,EAAE,SAAiB;QAC7D,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE5C,wCAAwC;YACxC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE/C,sDAAsD;YACtD,sCAAsC;YACtC,MAAM,OAAO,GAAG,SAAS;gBACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,OAAO,SAAS,CAAC,GAAG,CAAQ;iBACnC,CAAC,CAAC;gBACL,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,YAAY,EAC9B,4CAA4C,KAAK,CAAC,OAAO,EAAE,EAC3D,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAuB;QACtC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC;YACzD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,uCAAuC,KAAK,CAAC,OAAO,EAAE,EACtD,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAuB,EAAE,SAAiB;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,0DAA0D;IAE1D,KAAK,CAAC,WAAW,CAAC,UAAuB,EAAE,OAA4B;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,SAAS,GAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE;gBACtC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;gBACxB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;gBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;gBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAuB,EAAE,OAA0B;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE9C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAuB,EAAE,OAA4B;QACrE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;YAEzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;gBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;aAC5B,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,mCAAmC,KAAK,CAAC,OAAO,EAAE,EAClD,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAuB,EACvB,SAAiB,EACjB,SAAkB;QAElB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAEvC,0CAA0C;YAC1C,sCAAsC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,WAAW,EAC7B,2CAA2C,KAAK,CAAC,OAAO,EAAE,EAC1D,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D,KAAK,CAAC,YAAY,CAChB,UAAuB,EACvB,SAA+B,EAC/B,OAAmC;QAEnC,kCAAkC;QAClC,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,eAAe,EACjC,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,UAAuB,EACvB,SAA+B,EAC/B,OAAmC;QAEnC,iCAAiC;QACjC,MAAM,IAAI,8BAAa,CACrB,kCAAiB,CAAC,eAAe,EACjC,gDAAgD,CACjD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAuB,EACvB,OAAmC;QAEnC,oCAAoC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,2DAA2D;IAE3D;;;OAGG;IACK,gBAAgB,CAAC,KAAW;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,SAAc,EAAO,EAAE;YAC7C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,iEAAiE;YACjE,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;gBACxE,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvE,mDAAmD;oBACnD,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,yCAAyC;oBACzC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;gBACnD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC;gBACpE,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrE,kDAAkD;oBAClD,MAAM,aAAa,GAAU,EAAE,CAAC;oBAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACxD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;4BACxG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnD,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,uCAAuC;gBACvC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;oBACxG,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;oBACrG,8BAA8B;oBAC9B,MAAM,SAAS,GAAQ,EAAE,CAAC;oBAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClD,QAAQ,EAAE,EAAE,CAAC;4BACX,yDAAyD;4BACzD,KAAK,KAAK,CAAC;4BACX,KAAK,IAAI;gCACP,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;gCACxB,MAAM;4BACR,KAAK,MAAM,CAAC;4BACZ,KAAK,KAAK;gCACR,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;gCACzB,MAAM;4BACR,KAAK,KAAK,CAAC;4BACX,KAAK,IAAI;gCACP,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;gCACxB,MAAM;4BACR,KAAK,MAAM,CAAC;4BACZ,KAAK,KAAK;gCACR,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;gCACzB,MAAM;4BACR,KAAK,KAAK,CAAC;4BACX,KAAK,MAAM,CAAC;4BACZ,KAAK,IAAI,CAAC;4BACV,KAAK,KAAK;gCACR,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;gCACxB,MAAM;4BACR,KAAK,KAAK,CAAC;4BACX,KAAK,IAAI;gCACP,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC;gCACxB,MAAM;4BACR,KAAK,SAAS,CAAC;4BACf,KAAK,QAAQ;gCACX,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;gCACzB,MAAM;4BACR,KAAK,OAAO,CAAC;4BACb,KAAK,MAAM;gCACT,0CAA0C;gCAC1C,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gCAClE,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC;gCACzB,MAAM;4BACR,KAAK,UAAU,CAAC;4BAChB,KAAK,SAAS;gCACZ,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;gCACrB,MAAM;4BACR,KAAK,cAAc,CAAC;4BACpB,KAAK,aAAa;gCAChB,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC;gCACrB,MAAM;4BACR,KAAK,UAAU,CAAC;4BAChB,KAAK,SAAS;gCACZ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCACnD,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oCAC5B,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gCAC9B,CAAC;gCACD,MAAM;4BACR,8CAA8C;4BAC9C,KAAK,KAAK,CAAC;4BACX,KAAK,MAAM,CAAC;4BACZ,KAAK,KAAK,CAAC;4BACX,KAAK,MAAM,CAAC;4BACZ,KAAK,KAAK,CAAC;4BACX,KAAK,KAAK,CAAC;4BACX,KAAK,MAAM,CAAC;4BACZ,KAAK,QAAQ,CAAC;4BACd,KAAK,UAAU,CAAC;4BAChB,KAAK,SAAS,CAAC;4BACf,KAAK,OAAO,CAAC;4BACb,KAAK,KAAK,CAAC;4BACX,KAAK,YAAY,CAAC;4BAClB,KAAK,OAAO,CAAC;4BACb,KAAK,MAAM;gCACT,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;gCACxB,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,kBAAkB;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,4DAA4D;IAE5D;;OAEG;IACH,gBAAgB,CAAC,UAAkB;QACjC,0DAA0D;QAC1D,qCAAqC;QACrC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAU;QACpB,uDAAuD;QACvD,8CAA8C;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAuB;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;QACnC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAthCD,wCAshCC"}
@@ -58,8 +58,13 @@ export declare class MySQLAdapter extends BaseDatabaseAdapter {
58
58
  * Build SELECT query from options
59
59
  */
60
60
  private buildSelectQuery;
61
+ /**
62
+ * Build JOIN clause for include relationships
63
+ */
64
+ private buildIncludeJoin;
61
65
  /**
62
66
  * Build WHERE clause from options
67
+ * Supports both simplified syntax (GT, LT, AND, OR) and legacy syntax ($gt, $lt, $and, $or)
63
68
  */
64
69
  private buildWhereClause;
65
70
  /**
@@ -790,23 +790,76 @@ class MySQLAdapter extends base_adapter_1.BaseDatabaseAdapter {
790
790
  */
791
791
  buildSelectQuery(options) {
792
792
  const params = [];
793
+ // Handle includes
794
+ const hasIncludes = options.include && (Array.isArray(options.include) ? options.include.length > 0 : true);
793
795
  // SELECT clause
794
- const selectColumns = options.select
795
- ? Array.isArray(options.select)
796
- ? options.select.map((col) => `\`${col}\``)
797
- : [options.select]
798
- : ['*'];
799
- let query = `SELECT ${selectColumns.join(', ')} FROM \`${options.table}\``;
796
+ let selectColumns;
797
+ if (options.select) {
798
+ const cols = Array.isArray(options.select) ? options.select : [options.select];
799
+ // Prefix main table columns with table name
800
+ selectColumns = cols.map((col) => `\`${options.table}\`.\`${col}\``).join(', ');
801
+ }
802
+ else {
803
+ // Select all from main table
804
+ selectColumns = hasIncludes ? `\`${options.table}\`.*` : '*';
805
+ }
806
+ // Add included relation columns
807
+ if (hasIncludes) {
808
+ const includes = Array.isArray(options.include) ? options.include : [options.include];
809
+ includes.forEach((include) => {
810
+ const relationAlias = include.relation;
811
+ if (include.select && include.select.length > 0) {
812
+ const relationCols = include.select.map((col) => `\`${relationAlias}\`.\`${col}\` as \`${relationAlias}_${col}\``).join(', ');
813
+ selectColumns += `, ${relationCols}`;
814
+ }
815
+ else {
816
+ // Use JSON aggregation for one-to-many
817
+ if (include.type === 'one-to-many') {
818
+ selectColumns += `, JSON_ARRAYAGG(JSON_OBJECT('*', \`${relationAlias}\`.*)) as \`${relationAlias}\``;
819
+ }
820
+ else {
821
+ selectColumns += `, JSON_OBJECT('*', \`${relationAlias}\`.*) as \`${relationAlias}\``;
822
+ }
823
+ }
824
+ });
825
+ }
826
+ let query = `SELECT ${options.distinct ? 'DISTINCT ' : ''}${selectColumns} FROM \`${options.table}\``;
827
+ // JOIN clauses for includes
828
+ if (hasIncludes) {
829
+ const includes = Array.isArray(options.include) ? options.include : [options.include];
830
+ includes.forEach((include) => {
831
+ const { joinClause } = this.buildIncludeJoin(options.table, include);
832
+ query += ` ${joinClause}`;
833
+ });
834
+ }
800
835
  // WHERE clause
801
836
  if (options.where) {
802
837
  const { clause, values } = this.buildWhereClause(options.where);
803
838
  query += ` WHERE ${clause}`;
804
839
  params.push(...values);
805
840
  }
841
+ // GROUP BY clause
842
+ if (options.groupBy && options.groupBy.length > 0) {
843
+ query += ` GROUP BY ${options.groupBy.map((col) => `\`${col}\``).join(', ')}`;
844
+ }
845
+ else if (hasIncludes) {
846
+ // Auto group by main table primary key for one-to-many relations
847
+ const includes = Array.isArray(options.include) ? options.include : [options.include];
848
+ const hasOneToMany = includes.some(inc => inc.type === 'one-to-many');
849
+ if (hasOneToMany) {
850
+ query += ` GROUP BY \`${options.table}\`.\`id\``;
851
+ }
852
+ }
853
+ // HAVING clause
854
+ if (options.having) {
855
+ const { clause, values } = this.buildWhereClause(options.having);
856
+ query += ` HAVING ${clause}`;
857
+ params.push(...values);
858
+ }
806
859
  // ORDER BY clause
807
860
  if (options.orderBy) {
808
861
  const orderByArray = Array.isArray(options.orderBy) ? options.orderBy : [options.orderBy];
809
- const orderClauses = orderByArray.map((order) => `\`${order.column}\` ${order.order || 'ASC'}`);
862
+ const orderClauses = orderByArray.map((order) => `\`${options.table}\`.\`${order.column}\` ${order.order || 'ASC'}`);
810
863
  query += ` ORDER BY ${orderClauses.join(', ')}`;
811
864
  }
812
865
  // LIMIT clause
@@ -821,49 +874,129 @@ class MySQLAdapter extends base_adapter_1.BaseDatabaseAdapter {
821
874
  }
822
875
  return { query, params };
823
876
  }
877
+ /**
878
+ * Build JOIN clause for include relationships
879
+ */
880
+ buildIncludeJoin(mainTable, include) {
881
+ const relationTable = include.relation;
882
+ const foreignKey = include.foreignKey || `${relationTable}_id`;
883
+ const primaryKey = include.primaryKey || 'id';
884
+ const joinType = include.type === 'one-to-many' || include.type === 'one-to-one' ? 'LEFT' : 'INNER';
885
+ let joinClause;
886
+ if (include.type === 'many-to-many' && include.through) {
887
+ // Many-to-many with junction table
888
+ const throughTable = include.through;
889
+ const throughForeignKey = include.throughForeignKey || `${mainTable}_id`;
890
+ const throughRelatedKey = include.throughRelatedKey || `${relationTable}_id`;
891
+ joinClause = `${joinType} JOIN \`${throughTable}\` ON \`${mainTable}\`.\`${primaryKey}\` = \`${throughTable}\`.\`${throughForeignKey}\` `;
892
+ joinClause += `${joinType} JOIN \`${relationTable}\` ON \`${throughTable}\`.\`${throughRelatedKey}\` = \`${relationTable}\`.\`${primaryKey}\``;
893
+ }
894
+ else if (include.type === 'one-to-many') {
895
+ // One-to-many: foreign key is in the related table
896
+ joinClause = `${joinType} JOIN \`${relationTable}\` ON \`${mainTable}\`.\`${primaryKey}\` = \`${relationTable}\`.\`${foreignKey}\``;
897
+ }
898
+ else {
899
+ // Many-to-one or one-to-one: foreign key is in the main table
900
+ joinClause = `${joinType} JOIN \`${relationTable}\` ON \`${mainTable}\`.\`${foreignKey}\` = \`${relationTable}\`.\`${primaryKey}\``;
901
+ }
902
+ // Add where clause for the relation if specified
903
+ if (include.where) {
904
+ const { clause } = this.buildWhereClause(include.where);
905
+ joinClause += ` AND ${clause}`;
906
+ }
907
+ return { joinClause };
908
+ }
824
909
  /**
825
910
  * Build WHERE clause from options
911
+ * Supports both simplified syntax (GT, LT, AND, OR) and legacy syntax ($gt, $lt, $and, $or)
826
912
  */
827
913
  buildWhereClause(where) {
828
914
  const values = [];
829
915
  const buildCondition = (condition) => {
830
- // Handle $and
831
- if (condition.$and) {
832
- const subConditions = condition.$and.map(buildCondition);
833
- return `(${subConditions.join(' AND ')})`;
916
+ if (typeof condition !== 'object' || condition === null) {
917
+ values.push(condition);
918
+ return '?';
834
919
  }
835
- // Handle $or
836
- if (condition.$or) {
837
- const subConditions = condition.$or.map(buildCondition);
838
- return `(${subConditions.join(' OR ')})`;
920
+ // Handle logical operators (supports $AND, AND, and legacy $and)
921
+ if (condition.$AND || condition.AND || condition.$and) {
922
+ const andConditions = condition.$AND || condition.AND || condition.$and;
923
+ if (typeof andConditions === 'object' && !Array.isArray(andConditions)) {
924
+ // New syntax: { $AND: { col1: val1, col2: val2 } }
925
+ return buildCondition(andConditions);
926
+ }
927
+ else {
928
+ // Legacy syntax: { $and: [cond1, cond2] }
929
+ const subConditions = andConditions.map(buildCondition);
930
+ return `(${subConditions.join(' AND ')})`;
931
+ }
932
+ }
933
+ if (condition.$OR || condition.OR || condition.$or) {
934
+ const orConditions = condition.$OR || condition.OR || condition.$or;
935
+ if (typeof orConditions === 'object' && !Array.isArray(orConditions)) {
936
+ // New syntax: { $OR: { col1: val1, col2: val2 } }
937
+ const subClauses = [];
938
+ for (const [key, value] of Object.entries(orConditions)) {
939
+ if (key === '$AND' || key === 'AND' || key === '$and' || key === '$OR' || key === 'OR' || key === '$or') {
940
+ subClauses.push(buildCondition({ [key]: value }));
941
+ }
942
+ else {
943
+ subClauses.push(buildCondition({ [key]: value }));
944
+ }
945
+ }
946
+ return `(${subClauses.join(' OR ')})`;
947
+ }
948
+ else {
949
+ // Legacy syntax: { $or: [cond1, cond2] }
950
+ const subConditions = orConditions.map(buildCondition);
951
+ return `(${subConditions.join(' OR ')})`;
952
+ }
839
953
  }
840
954
  // Handle column conditions
841
955
  const conditions = [];
842
956
  for (const [key, value] of Object.entries(condition)) {
843
- if (typeof value === 'object' && value !== null) {
844
- // Handle operators
957
+ // Skip logical operators
958
+ if (key === '$AND' || key === 'AND' || key === '$and' || key === '$OR' || key === 'OR' || key === '$or') {
959
+ continue;
960
+ }
961
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
962
+ // Handle comparison operators
845
963
  for (const [op, opValue] of Object.entries(value)) {
846
964
  switch (op) {
965
+ // Preferred $-prefixed syntax
966
+ case '$GT':
967
+ case 'GT':
847
968
  case '$gt':
848
969
  values.push(opValue);
849
970
  conditions.push(`\`${key}\` > ?`);
850
971
  break;
972
+ case '$GTE':
973
+ case 'GTE':
851
974
  case '$gte':
852
975
  values.push(opValue);
853
976
  conditions.push(`\`${key}\` >= ?`);
854
977
  break;
978
+ case '$LT':
979
+ case 'LT':
855
980
  case '$lt':
856
981
  values.push(opValue);
857
982
  conditions.push(`\`${key}\` < ?`);
858
983
  break;
984
+ case '$LTE':
985
+ case 'LTE':
859
986
  case '$lte':
860
987
  values.push(opValue);
861
988
  conditions.push(`\`${key}\` <= ?`);
862
989
  break;
990
+ case '$NE':
991
+ case '$NOT':
992
+ case 'NE':
993
+ case 'NOT':
863
994
  case '$ne':
864
995
  values.push(opValue);
865
996
  conditions.push(`\`${key}\` != ?`);
866
997
  break;
998
+ case '$IN':
999
+ case 'IN':
867
1000
  case '$in':
868
1001
  if (Array.isArray(opValue)) {
869
1002
  const placeholders = opValue.map(() => '?').join(', ');
@@ -871,10 +1004,39 @@ class MySQLAdapter extends base_adapter_1.BaseDatabaseAdapter {
871
1004
  conditions.push(`\`${key}\` IN (${placeholders})`);
872
1005
  }
873
1006
  break;
1007
+ case '$NOT_IN':
1008
+ case 'NOT_IN':
1009
+ case '$nin':
1010
+ if (Array.isArray(opValue)) {
1011
+ const placeholders = opValue.map(() => '?').join(', ');
1012
+ values.push(...opValue);
1013
+ conditions.push(`\`${key}\` NOT IN (${placeholders})`);
1014
+ }
1015
+ break;
1016
+ case '$LIKE':
1017
+ case 'LIKE':
874
1018
  case '$like':
875
1019
  values.push(opValue);
876
1020
  conditions.push(`\`${key}\` LIKE ?`);
877
1021
  break;
1022
+ case '$IS_NULL':
1023
+ case 'IS_NULL':
1024
+ case '$null':
1025
+ conditions.push(`\`${key}\` IS NULL`);
1026
+ break;
1027
+ case '$IS_NOT_NULL':
1028
+ case 'IS_NOT_NULL':
1029
+ case '$notNull':
1030
+ conditions.push(`\`${key}\` IS NOT NULL`);
1031
+ break;
1032
+ case '$BETWEEN':
1033
+ case 'BETWEEN':
1034
+ case '$between':
1035
+ if (Array.isArray(opValue) && opValue.length === 2) {
1036
+ values.push(opValue[0], opValue[1]);
1037
+ conditions.push(`\`${key}\` BETWEEN ? AND ?`);
1038
+ }
1039
+ break;
878
1040
  }
879
1041
  }
880
1042
  }
@@ -989,7 +1151,24 @@ class MySQLAdapter extends base_adapter_1.BaseDatabaseAdapter {
989
1151
  // Build aggregations
990
1152
  if (options.aggregate) {
991
1153
  Object.entries(options.aggregate).forEach(([alias, agg]) => {
992
- selectColumns.push(`${agg.function}(\`${agg.column}\`) as \`${alias}\``);
1154
+ // Support both old format { function: 'AVG', column: 'price' }
1155
+ // and new simplified format { $AVG: 'price' }
1156
+ if (agg.function && agg.column) {
1157
+ selectColumns.push(`${agg.function}(\`${agg.column}\`) as \`${alias}\``);
1158
+ }
1159
+ else {
1160
+ // Check for $-prefixed aggregation functions
1161
+ const aggObj = agg;
1162
+ const aggFunctions = ['$COUNT', '$AVG', '$SUM', '$MIN', '$MAX', 'COUNT', 'AVG', 'SUM', 'MIN', 'MAX'];
1163
+ for (const func of aggFunctions) {
1164
+ if (aggObj[func] !== undefined) {
1165
+ const funcName = func.replace('$', '');
1166
+ const column = aggObj[func];
1167
+ selectColumns.push(`${funcName}(\`${column}\`) as \`${alias}\``);
1168
+ break;
1169
+ }
1170
+ }
1171
+ }
993
1172
  });
994
1173
  }
995
1174
  let query = `SELECT ${selectColumns.join(', ')} FROM \`${options.table}\``;
@@ -1007,7 +1186,24 @@ class MySQLAdapter extends base_adapter_1.BaseDatabaseAdapter {
1007
1186
  buildMultiAggregateQuery(options) {
1008
1187
  const params = [];
1009
1188
  const aggregations = Object.entries(options.operations).map(([alias, agg]) => {
1010
- return `${agg.function}(\`${agg.column}\`) as \`${alias}\``;
1189
+ // Support both old format { function: 'AVG', column: 'price' }
1190
+ // and new simplified format { $AVG: 'price' }
1191
+ if (agg.function && agg.column) {
1192
+ return `${agg.function}(\`${agg.column}\`) as \`${alias}\``;
1193
+ }
1194
+ else {
1195
+ // Check for $-prefixed aggregation functions
1196
+ const aggObj = agg;
1197
+ const aggFunctions = ['$COUNT', '$AVG', '$SUM', '$MIN', '$MAX', 'COUNT', 'AVG', 'SUM', 'MIN', 'MAX'];
1198
+ for (const func of aggFunctions) {
1199
+ if (aggObj[func] !== undefined) {
1200
+ const funcName = func.replace('$', '');
1201
+ const column = aggObj[func];
1202
+ return `${funcName}(\`${column}\`) as \`${alias}\``;
1203
+ }
1204
+ }
1205
+ return `${agg.function}(\`${agg.column}\`) as \`${alias}\``; // fallback
1206
+ }
1011
1207
  });
1012
1208
  let query = `SELECT ${aggregations.join(', ')} FROM \`${options.table}\``;
1013
1209
  if (options.where) {