rawsql-ts 0.11.32-beta → 0.11.33-beta

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 (123) hide show
  1. package/dist/esm/index.js +9 -0
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/index.min.js +37 -29
  4. package/dist/esm/index.min.js.map +4 -4
  5. package/dist/esm/src/formatters/OriginalFormatRestorer.d.ts +40 -0
  6. package/dist/esm/src/formatters/OriginalFormatRestorer.js +135 -0
  7. package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
  8. package/dist/esm/src/index.d.ts +11 -0
  9. package/dist/esm/src/index.js +9 -0
  10. package/dist/esm/src/index.js.map +1 -1
  11. package/dist/esm/src/models/FormattingLexeme.d.ts +66 -0
  12. package/dist/esm/src/models/FormattingLexeme.js +2 -0
  13. package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
  14. package/dist/esm/src/models/ValueComponent.d.ts +3 -1
  15. package/dist/esm/src/models/ValueComponent.js +3 -1
  16. package/dist/esm/src/models/ValueComponent.js.map +1 -1
  17. package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +12 -0
  18. package/dist/esm/src/parsers/FunctionExpressionParser.js +111 -7
  19. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  20. package/dist/esm/src/parsers/KeywordParser.d.ts +1 -0
  21. package/dist/esm/src/parsers/KeywordParser.js +10 -4
  22. package/dist/esm/src/parsers/KeywordParser.js.map +1 -1
  23. package/dist/esm/src/parsers/SqlPrintTokenParser.js +8 -0
  24. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  25. package/dist/esm/src/parsers/SqlTokenizer.d.ts +42 -2
  26. package/dist/esm/src/parsers/SqlTokenizer.js +213 -12
  27. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  28. package/dist/esm/src/tokenReaders/CommandTokenReader.d.ts +3 -0
  29. package/dist/esm/src/tokenReaders/CommandTokenReader.js +4 -1
  30. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  31. package/dist/esm/src/transformers/AliasRenamer.d.ts +199 -0
  32. package/dist/esm/src/transformers/AliasRenamer.js +595 -0
  33. package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
  34. package/dist/esm/src/transformers/CTERenamer.d.ts +53 -0
  35. package/dist/esm/src/transformers/CTERenamer.js +138 -0
  36. package/dist/esm/src/transformers/CTERenamer.js.map +1 -1
  37. package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +72 -0
  38. package/dist/esm/src/transformers/DynamicQueryBuilder.js +42 -0
  39. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
  40. package/dist/esm/src/transformers/FilterableItemCollector.d.ts +80 -0
  41. package/dist/esm/src/transformers/FilterableItemCollector.js +254 -0
  42. package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
  43. package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +3 -0
  44. package/dist/esm/src/transformers/SelectableColumnCollector.js +68 -7
  45. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
  46. package/dist/esm/src/transformers/SmartRenamer.d.ts +134 -0
  47. package/dist/esm/src/transformers/SmartRenamer.js +430 -0
  48. package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
  49. package/dist/esm/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
  50. package/dist/esm/src/transformers/SqlIdentifierRenamer.js +493 -0
  51. package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
  52. package/dist/esm/src/transformers/SqlParamInjector.d.ts +27 -0
  53. package/dist/esm/src/transformers/SqlParamInjector.js +304 -16
  54. package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
  55. package/dist/esm/src/transformers/SqlSortInjector.js +6 -3
  56. package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -1
  57. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +5 -2
  58. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  59. package/dist/esm/src/utils/LexemeCursor.d.ts +41 -0
  60. package/dist/esm/src/utils/LexemeCursor.js +93 -0
  61. package/dist/esm/src/utils/LexemeCursor.js.map +1 -1
  62. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  63. package/dist/index.min.js +37 -29
  64. package/dist/index.min.js.map +4 -4
  65. package/dist/src/formatters/OriginalFormatRestorer.d.ts +40 -0
  66. package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
  67. package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
  68. package/dist/src/index.d.ts +11 -0
  69. package/dist/src/index.js +11 -1
  70. package/dist/src/index.js.map +1 -1
  71. package/dist/src/models/FormattingLexeme.d.ts +66 -0
  72. package/dist/src/models/FormattingLexeme.js +3 -0
  73. package/dist/src/models/FormattingLexeme.js.map +1 -0
  74. package/dist/src/models/ValueComponent.d.ts +3 -1
  75. package/dist/src/models/ValueComponent.js +3 -1
  76. package/dist/src/models/ValueComponent.js.map +1 -1
  77. package/dist/src/parsers/FunctionExpressionParser.d.ts +12 -0
  78. package/dist/src/parsers/FunctionExpressionParser.js +110 -6
  79. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  80. package/dist/src/parsers/KeywordParser.d.ts +1 -0
  81. package/dist/src/parsers/KeywordParser.js +10 -4
  82. package/dist/src/parsers/KeywordParser.js.map +1 -1
  83. package/dist/src/parsers/SqlPrintTokenParser.js +8 -0
  84. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  85. package/dist/src/parsers/SqlTokenizer.d.ts +42 -2
  86. package/dist/src/parsers/SqlTokenizer.js +222 -12
  87. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  88. package/dist/src/tokenReaders/CommandTokenReader.d.ts +3 -0
  89. package/dist/src/tokenReaders/CommandTokenReader.js +5 -2
  90. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  91. package/dist/src/transformers/AliasRenamer.d.ts +199 -0
  92. package/dist/src/transformers/AliasRenamer.js +599 -0
  93. package/dist/src/transformers/AliasRenamer.js.map +1 -0
  94. package/dist/src/transformers/CTERenamer.d.ts +53 -0
  95. package/dist/src/transformers/CTERenamer.js +138 -0
  96. package/dist/src/transformers/CTERenamer.js.map +1 -1
  97. package/dist/src/transformers/DynamicQueryBuilder.d.ts +72 -0
  98. package/dist/src/transformers/DynamicQueryBuilder.js +42 -0
  99. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
  100. package/dist/src/transformers/FilterableItemCollector.d.ts +80 -0
  101. package/dist/src/transformers/FilterableItemCollector.js +259 -0
  102. package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
  103. package/dist/src/transformers/SelectableColumnCollector.d.ts +3 -0
  104. package/dist/src/transformers/SelectableColumnCollector.js +67 -6
  105. package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
  106. package/dist/src/transformers/SmartRenamer.d.ts +134 -0
  107. package/dist/src/transformers/SmartRenamer.js +442 -0
  108. package/dist/src/transformers/SmartRenamer.js.map +1 -0
  109. package/dist/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
  110. package/dist/src/transformers/SqlIdentifierRenamer.js +497 -0
  111. package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
  112. package/dist/src/transformers/SqlParamInjector.d.ts +27 -0
  113. package/dist/src/transformers/SqlParamInjector.js +303 -15
  114. package/dist/src/transformers/SqlParamInjector.js.map +1 -1
  115. package/dist/src/transformers/SqlSortInjector.js +5 -2
  116. package/dist/src/transformers/SqlSortInjector.js.map +1 -1
  117. package/dist/src/transformers/UpstreamSelectQueryFinder.js +4 -1
  118. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  119. package/dist/src/utils/LexemeCursor.d.ts +41 -0
  120. package/dist/src/utils/LexemeCursor.js +93 -0
  121. package/dist/src/utils/LexemeCursor.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +1 -1
@@ -7,6 +7,7 @@ const SelectableColumnCollector_1 = require("./SelectableColumnCollector");
7
7
  const ValueComponent_1 = require("../models/ValueComponent");
8
8
  const UpstreamSelectQueryFinder_1 = require("./UpstreamSelectQueryFinder");
9
9
  const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
10
+ const Clause_1 = require("../models/Clause");
10
11
  /**
11
12
  * SqlParamInjector injects state parameters into a SelectQuery model,
12
13
  * creating WHERE conditions and setting parameter values.
@@ -37,7 +38,10 @@ class SqlParamInjector {
37
38
  }
38
39
  // Pass tableColumnResolver to finder and collector
39
40
  const finder = new UpstreamSelectQueryFinder_1.UpstreamSelectQueryFinder(this.tableColumnResolver, this.options);
40
- const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver);
41
+ const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
42
+ SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns (u.id vs p.id)
43
+ { upstream: true } // Enable upstream collection for qualified name resolution
44
+ );
41
45
  // Normalization is handled locally below.
42
46
  const normalize = (s) => this.options.ignoreCaseAndUnderscore ? s.toLowerCase().replace(/_/g, '') : s;
43
47
  const allowedOps = ['min', 'max', 'like', 'ilike', 'in', 'any', '=', '<', '>', '!=', '<>', '<=', '>=', 'or', 'and', 'column'];
@@ -48,13 +52,37 @@ class SqlParamInjector {
48
52
  if (allUndefined && !this.options.allowAllUndefined) {
49
53
  throw new Error('All parameters are undefined. This would result in fetching all records. Use allowAllUndefined: true option to explicitly allow this behavior.');
50
54
  }
55
+ // Separate qualified and unqualified parameters for hybrid processing
56
+ const qualifiedParams = [];
57
+ const unqualifiedParams = [];
51
58
  for (const [name, stateValue] of Object.entries(state)) {
52
59
  // skip undefined values
53
60
  if (stateValue === undefined)
54
61
  continue;
62
+ if (this.isQualifiedColumnName(name)) {
63
+ qualifiedParams.push([name, stateValue]);
64
+ }
65
+ else {
66
+ unqualifiedParams.push([name, stateValue]);
67
+ }
68
+ }
69
+ // Process qualified parameters first
70
+ for (const [name, stateValue] of qualifiedParams) {
55
71
  this.processStateParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators);
56
72
  }
57
- function injectAndConditions(q, baseName, andConditions, normalize, availableColumns, collector) {
73
+ // Then process unqualified parameters, but only for columns that haven't been processed yet
74
+ const processedQualifiedColumns = new Set();
75
+ for (const [qualifiedName, _] of qualifiedParams) {
76
+ const parsed = this.parseQualifiedColumnName(qualifiedName);
77
+ if (parsed) {
78
+ // Track which table.column combinations have been processed
79
+ processedQualifiedColumns.add(`${parsed.table.toLowerCase()}.${parsed.column.toLowerCase()}`);
80
+ }
81
+ }
82
+ for (const [name, stateValue] of unqualifiedParams) {
83
+ this.processUnqualifiedParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators, processedQualifiedColumns);
84
+ }
85
+ function injectAndConditions(q, baseName, andConditions, normalize, availableColumns) {
58
86
  // For AND conditions, we process each condition and add them all with AND logic
59
87
  for (let i = 0; i < andConditions.length; i++) {
60
88
  const andCondition = andConditions[i];
@@ -133,7 +161,7 @@ class SqlParamInjector {
133
161
  }
134
162
  }
135
163
  }
136
- function injectOrConditions(q, baseName, orConditions, normalize, availableColumns, collector) {
164
+ function injectOrConditions(q, baseName, orConditions, normalize, availableColumns) {
137
165
  const orExpressions = [];
138
166
  for (let i = 0; i < orConditions.length; i++) {
139
167
  const orCondition = orConditions[i];
@@ -345,6 +373,34 @@ class SqlParamInjector {
345
373
  return value !== null && typeof value === 'object' && !Array.isArray(value) &&
346
374
  Object.getPrototypeOf(value) === Object.prototype;
347
375
  }
376
+ /**
377
+ * Parses a qualified column name (table.column) into its components
378
+ * @param qualifiedName The qualified name (e.g., 'users.name' or 'name')
379
+ * @returns Object with table and column parts, or null if invalid
380
+ */
381
+ parseQualifiedColumnName(qualifiedName) {
382
+ const parts = qualifiedName.split('.');
383
+ if (parts.length === 2 && parts[0].trim() && parts[1].trim()) {
384
+ return {
385
+ table: parts[0].trim(),
386
+ column: parts[1].trim()
387
+ };
388
+ }
389
+ return null;
390
+ }
391
+ /**
392
+ * Checks if a column name is qualified (contains a dot)
393
+ */
394
+ isQualifiedColumnName(name) {
395
+ return name.includes('.') && this.parseQualifiedColumnName(name) !== null;
396
+ }
397
+ /**
398
+ * Sanitizes parameter names by replacing dots with underscores
399
+ * This ensures qualified names like 'users.name' become 'users_name' as parameter names
400
+ */
401
+ sanitizeParameterName(name) {
402
+ return name.replace(/\./g, '_');
403
+ }
348
404
  /**
349
405
  * Type guard for column mapping presence
350
406
  */
@@ -367,7 +423,7 @@ class SqlParamInjector {
367
423
  if (orConditions && orConditions.length > 0) {
368
424
  const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, orConditions);
369
425
  const allColumns = this.getAllAvailableColumns(targetQuery, collector);
370
- injectOrConditions(targetQuery, name, orConditions, normalize, allColumns, collector);
426
+ injectOrConditions(targetQuery, name, orConditions, normalize, allColumns);
371
427
  return;
372
428
  }
373
429
  }
@@ -377,7 +433,7 @@ class SqlParamInjector {
377
433
  if (andConditions && andConditions.length > 0) {
378
434
  const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, andConditions);
379
435
  const allColumns = this.getAllAvailableColumns(targetQuery, collector);
380
- injectAndConditions(targetQuery, name, andConditions, normalize, allColumns, collector);
436
+ injectAndConditions(targetQuery, name, andConditions, normalize, allColumns);
381
437
  return;
382
438
  }
383
439
  }
@@ -408,9 +464,53 @@ class SqlParamInjector {
408
464
  this.processRegularColumnCondition(name, stateValue, query, finder, collector, normalize, allowedOps, injectSimpleCondition, injectComplexConditions, validateOperators);
409
465
  }
410
466
  /**
411
- * Processes regular column conditions (non-logical, non-explicit)
467
+ * Processes unqualified parameters, respecting qualified parameter overrides
412
468
  */
413
- processRegularColumnCondition(name, stateValue, query, finder, collector, normalize, allowedOps, injectSimpleCondition, injectComplexConditions, validateOperators) {
469
+ processUnqualifiedParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators, processedQualifiedColumns) {
470
+ // Handle OR conditions specially - they don't need the main column to exist
471
+ if (this.isOrCondition(stateValue)) {
472
+ const orConditions = stateValue.or;
473
+ if (orConditions && orConditions.length > 0) {
474
+ const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, orConditions);
475
+ const allColumns = this.getAllAvailableColumns(targetQuery, collector);
476
+ injectOrConditions(targetQuery, name, orConditions, normalize, allColumns);
477
+ return;
478
+ }
479
+ }
480
+ // Handle AND conditions specially - they don't need the main column to exist
481
+ if (this.isAndCondition(stateValue)) {
482
+ const andConditions = stateValue.and;
483
+ if (andConditions && andConditions.length > 0) {
484
+ const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, andConditions);
485
+ const allColumns = this.getAllAvailableColumns(targetQuery, collector);
486
+ injectAndConditions(targetQuery, name, andConditions, normalize, allColumns);
487
+ return;
488
+ }
489
+ }
490
+ // Handle explicit column mapping without OR
491
+ if (this.isExplicitColumnMapping(stateValue)) {
492
+ const explicitColumnName = stateValue.column;
493
+ if (explicitColumnName) {
494
+ const queries = finder.find(query, explicitColumnName);
495
+ if (queries.length === 0) {
496
+ throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
497
+ }
498
+ for (const q of queries) {
499
+ const allColumns = this.getAllAvailableColumns(q, collector);
500
+ const entry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
501
+ if (!entry) {
502
+ throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
503
+ }
504
+ // if object, validate its keys
505
+ if (this.isValidatableObject(stateValue)) {
506
+ validateOperators(stateValue, allowedOps, name);
507
+ }
508
+ injectComplexConditions(q, entry.value, name, stateValue);
509
+ }
510
+ return;
511
+ }
512
+ }
513
+ // Find all queries that contain this unqualified column name
414
514
  const queries = finder.find(query, name);
415
515
  if (queries.length === 0) {
416
516
  // Ignore non-existent columns if option is enabled
@@ -421,9 +521,133 @@ class SqlParamInjector {
421
521
  }
422
522
  for (const q of queries) {
423
523
  const allColumns = this.getAllAvailableColumns(q, collector);
424
- const entry = allColumns.find(item => normalize(item.name) === normalize(name));
425
- if (!entry) {
426
- throw new Error(`Column '${name}' not found in query`);
524
+ const tableMapping = this.buildTableMapping(q);
525
+ // Find all columns with this name
526
+ const matchingColumns = allColumns.filter(item => normalize(item.name) === normalize(name));
527
+ for (const entry of matchingColumns) {
528
+ // Check if this column has already been processed by a qualified parameter
529
+ let skipColumn = false;
530
+ // Get the table name for this column
531
+ if (entry.value && typeof entry.value.getNamespace === 'function') {
532
+ const namespace = entry.value.getNamespace();
533
+ if (namespace) {
534
+ const realTableName = tableMapping.aliasToRealTable.get(namespace.toLowerCase());
535
+ if (realTableName) {
536
+ const qualifiedKey = `${realTableName.toLowerCase()}.${name.toLowerCase()}`;
537
+ if (processedQualifiedColumns.has(qualifiedKey)) {
538
+ skipColumn = true;
539
+ }
540
+ }
541
+ }
542
+ }
543
+ // Skip if this column was already processed by a qualified parameter
544
+ if (skipColumn) {
545
+ continue;
546
+ }
547
+ const columnRef = entry.value;
548
+ // if object, validate its keys
549
+ if (this.isValidatableObject(stateValue)) {
550
+ validateOperators(stateValue, allowedOps, name);
551
+ }
552
+ // Handle explicit column mapping
553
+ let targetColumn = columnRef;
554
+ if (this.hasColumnMapping(stateValue)) {
555
+ const explicitColumnName = stateValue.column;
556
+ if (explicitColumnName) {
557
+ const explicitEntry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
558
+ if (explicitEntry) {
559
+ targetColumn = explicitEntry.value;
560
+ }
561
+ }
562
+ }
563
+ // Use the original parameter name for unqualified columns
564
+ if (this.isSimpleValue(stateValue)) {
565
+ injectSimpleCondition(q, targetColumn, name, stateValue);
566
+ }
567
+ else {
568
+ injectComplexConditions(q, targetColumn, name, stateValue);
569
+ }
570
+ }
571
+ }
572
+ }
573
+ /**
574
+ * Processes regular column conditions (non-logical, non-explicit)
575
+ */
576
+ processRegularColumnCondition(name, stateValue, query, finder, collector, normalize, allowedOps, injectSimpleCondition, injectComplexConditions, validateOperators) {
577
+ // Check if this is a qualified column name (table.column)
578
+ let searchColumnName = name;
579
+ let targetTableName = undefined;
580
+ if (this.isQualifiedColumnName(name)) {
581
+ const parsed = this.parseQualifiedColumnName(name);
582
+ if (parsed) {
583
+ searchColumnName = parsed.column;
584
+ targetTableName = parsed.table;
585
+ }
586
+ }
587
+ const queries = finder.find(query, searchColumnName);
588
+ if (queries.length === 0) {
589
+ // Ignore non-existent columns if option is enabled
590
+ if (this.options.ignoreNonExistentColumns) {
591
+ return;
592
+ }
593
+ throw new Error(`Column '${searchColumnName}' not found in query`);
594
+ }
595
+ for (const q of queries) {
596
+ const allColumns = this.getAllAvailableColumns(q, collector);
597
+ // For qualified names, find the column with the specific table name
598
+ let entry;
599
+ if (targetTableName) {
600
+ // Build table mapping for enhanced qualified name resolution
601
+ const tableMapping = this.buildTableMapping(q);
602
+ // Look for column with specific real table name only (no alias matching)
603
+ entry = allColumns.find(item => {
604
+ const normalizedColumnName = normalize(item.name) === normalize(searchColumnName);
605
+ if (!normalizedColumnName)
606
+ return false;
607
+ // Check if the column has the target table name
608
+ if (item.value && typeof item.value.getNamespace === 'function') {
609
+ const namespace = item.value.getNamespace();
610
+ if (namespace) {
611
+ const normalizedNamespace = normalize(namespace);
612
+ const normalizedTargetTable = normalize(targetTableName);
613
+ // Only check if targetTableName is a real table name that maps to this alias
614
+ const realTableName = tableMapping.aliasToRealTable.get(normalizedNamespace);
615
+ if (realTableName && normalize(realTableName) === normalizedTargetTable) {
616
+ return true;
617
+ }
618
+ }
619
+ }
620
+ return false;
621
+ });
622
+ if (!entry) {
623
+ // If qualified name not found, try to be more lenient for backward compatibility
624
+ if (this.options.ignoreNonExistentColumns) {
625
+ continue;
626
+ }
627
+ // Check if the table exists at all
628
+ const tableMapping = this.buildTableMapping(q);
629
+ const hasRealTable = Array.from(tableMapping.realTableToAlias.keys()).some(realTable => normalize(realTable) === normalize(targetTableName));
630
+ const hasAliasTable = Array.from(tableMapping.aliasToRealTable.keys()).some(alias => normalize(alias) === normalize(targetTableName));
631
+ if (!hasRealTable && !hasAliasTable) {
632
+ // Table doesn't exist at all
633
+ throw new Error(`Column '${name}' (qualified as ${name}) not found in query`);
634
+ }
635
+ else if (hasAliasTable && !hasRealTable) {
636
+ // It's an alias, not a real table name
637
+ throw new Error(`Column '${name}' not found. Only real table names are allowed in qualified column references (e.g., 'users.name'), not aliases (e.g., 'u.name').`);
638
+ }
639
+ else {
640
+ // Real table exists but column doesn't
641
+ throw new Error(`Column '${name}' (qualified as ${name}) not found in query`);
642
+ }
643
+ }
644
+ }
645
+ else {
646
+ // Unqualified name - find any matching column
647
+ entry = allColumns.find(item => normalize(item.name) === normalize(searchColumnName));
648
+ if (!entry) {
649
+ throw new Error(`Column '${searchColumnName}' not found in query`);
650
+ }
427
651
  }
428
652
  const columnRef = entry.value;
429
653
  // if object, validate its keys
@@ -432,22 +656,23 @@ class SqlParamInjector {
432
656
  }
433
657
  // Handle explicit column mapping
434
658
  let targetColumn = columnRef;
435
- let targetColumnName = name;
436
659
  if (this.hasColumnMapping(stateValue)) {
437
660
  const explicitColumnName = stateValue.column;
438
661
  if (explicitColumnName) {
439
662
  const explicitEntry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
440
663
  if (explicitEntry) {
441
664
  targetColumn = explicitEntry.value;
442
- targetColumnName = explicitColumnName;
443
665
  }
444
666
  }
445
667
  }
668
+ // Use sanitized parameter name (replace dots with underscores)
669
+ // This ensures qualified names like 'users.name' become 'users_name' as parameter names
670
+ const parameterName = this.sanitizeParameterName(name);
446
671
  if (this.isSimpleValue(stateValue)) {
447
- injectSimpleCondition(q, targetColumn, targetColumnName, stateValue);
672
+ injectSimpleCondition(q, targetColumn, parameterName, stateValue);
448
673
  }
449
674
  else {
450
- injectComplexConditions(q, targetColumn, targetColumnName, stateValue);
675
+ injectComplexConditions(q, targetColumn, parameterName, stateValue);
451
676
  }
452
677
  }
453
678
  }
@@ -499,7 +724,10 @@ class SqlParamInjector {
499
724
  */
500
725
  collectColumnsFromSelectQuery(query) {
501
726
  if (query instanceof SelectQuery_1.SimpleSelectQuery) {
502
- const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver);
727
+ const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
728
+ SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns
729
+ { upstream: true } // Enable upstream collection for qualified name resolution
730
+ );
503
731
  return collector.collect(query);
504
732
  }
505
733
  else if (query instanceof BinarySelectQuery_1.BinarySelectQuery) {
@@ -509,6 +737,66 @@ class SqlParamInjector {
509
737
  }
510
738
  return [];
511
739
  }
740
+ /**
741
+ * Builds a mapping between table aliases and real table names for enhanced qualified name resolution
742
+ */
743
+ buildTableMapping(query) {
744
+ const aliasToRealTable = new Map();
745
+ const realTableToAlias = new Map();
746
+ try {
747
+ // Process FROM clause
748
+ if (query.fromClause) {
749
+ this.processSourceForMapping(query.fromClause.source, aliasToRealTable, realTableToAlias);
750
+ // Process JOIN clauses
751
+ if (query.fromClause.joins) {
752
+ for (const join of query.fromClause.joins) {
753
+ this.processSourceForMapping(join.source, aliasToRealTable, realTableToAlias);
754
+ }
755
+ }
756
+ }
757
+ // Process CTE definitions
758
+ if (query.withClause) {
759
+ for (const cte of query.withClause.tables) {
760
+ const cteAlias = cte.getSourceAliasName();
761
+ if (cteAlias) {
762
+ // For CTEs, the "real table name" is the CTE name itself
763
+ aliasToRealTable.set(cteAlias.toLowerCase(), cteAlias);
764
+ realTableToAlias.set(cteAlias.toLowerCase(), cteAlias);
765
+ }
766
+ }
767
+ }
768
+ }
769
+ catch (error) {
770
+ // Log warning but continue with empty mapping for safety
771
+ console.warn('Failed to build table mapping:', error);
772
+ }
773
+ return { aliasToRealTable, realTableToAlias };
774
+ }
775
+ /**
776
+ * Helper method to process a single SourceExpression for table mapping
777
+ */
778
+ processSourceForMapping(source, aliasToRealTable, realTableToAlias) {
779
+ var _a, _b;
780
+ try {
781
+ if (source.datasource instanceof Clause_1.TableSource) {
782
+ const realTableName = source.datasource.getSourceName();
783
+ const aliasName = ((_b = (_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.name) || realTableName;
784
+ if (realTableName && aliasName) {
785
+ // Store mappings in lowercase for case-insensitive lookup
786
+ aliasToRealTable.set(aliasName.toLowerCase(), realTableName);
787
+ realTableToAlias.set(realTableName.toLowerCase(), aliasName);
788
+ // Also store direct mapping if alias equals real table name
789
+ if (aliasName === realTableName) {
790
+ aliasToRealTable.set(realTableName.toLowerCase(), realTableName);
791
+ }
792
+ }
793
+ }
794
+ }
795
+ catch (error) {
796
+ // Log warning but continue processing other sources
797
+ console.warn('Failed to process source for mapping:', error);
798
+ }
799
+ }
512
800
  }
513
801
  exports.SqlParamInjector = SqlParamInjector;
514
802
  //# sourceMappingURL=SqlParamInjector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":"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"}
@@ -59,8 +59,11 @@ class SqlSortInjector {
59
59
  if (!(query instanceof SelectQuery_1.SimpleSelectQuery)) {
60
60
  throw new Error('Complex queries are not supported for sorting');
61
61
  }
62
- // Collect available columns from the current query only (no upstream search)
63
- const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver);
62
+ // Collect available columns including all JOIN table columns for sorting
63
+ const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
64
+ SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns
65
+ { upstream: true } // Enable upstream collection for JOIN table sorting
66
+ );
64
67
  const availableColumns = collector.collect(query);
65
68
  // Validate that all specified columns exist
66
69
  for (const columnName of Object.keys(sortConditions)) {
@@ -1 +1 @@
1
- {"version":3,"file":"SqlSortInjector.js","sourceRoot":"","sources":["../../../src/transformers/SqlSortInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlSortInjector.js","sourceRoot":"","sources":["../../../src/transformers/SqlSortInjector.ts"],"names":[],"mappings":";;;AAAA,uDAAuE;AACvE,2EAAgG;AAChG,6CAAiG;AAEjG,oEAAiE;AAEjE;;;GAGG;AACH,MAAa,eAAe;IAGxB,YAAY,mBAAqD;QAC7D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,KAAiC;QACzD,8EAA8E;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,qCAAiB,CAAC,KAAK,CAAC,KAAK,CAAsB,CAAC;QAChE,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,CAAC,KAAK,YAAY,+BAAiB,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9E,CAAC;QAED,6CAA6C;QAC7C,OAAO,IAAI,+BAAiB,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,aAAa,EAAE,IAAI,EAAE,kBAAkB;YACvC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC7B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACT,KAAiC,EACjC,cAA8B;QAE9B,8EAA8E;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,qCAAiB,CAAC,KAAK,CAAC,KAAK,CAAsB,CAAC;QAChE,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,CAAC,KAAK,YAAY,+BAAiB,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QAED,yEAAyE;QACzE,MAAM,SAAS,GAAG,IAAI,qDAAyB,CAC3C,IAAI,CAAC,mBAAmB,EACxB,KAAK,EAAE,kBAAkB;QACzB,kDAAsB,CAAC,QAAQ,EAAE,8CAA8C;QAC/E,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,oDAAoD;SAC1E,CAAC;QACF,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAElD,4CAA4C;QAC5C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,8BAA8B,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,eAAe,GAAkB,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW;gBAAE,SAAS,CAAC,4CAA4C;YAExE,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;YAEpC,qBAAqB;YACrB,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAElD,2BAA2B;YAC3B,IAAI,aAA4B,CAAC;YACjC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjB,aAAa,GAAG,sBAAa,CAAC,UAAU,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,aAAa,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,iBAAiB;YAC9D,CAAC;YAED,2BAA2B;YAC3B,IAAI,aAAa,GAA8B,IAAI,CAAC;YACpD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACvB,aAAa,GAAG,2BAAkB,CAAC,KAAK,CAAC;YAC7C,CAAC;iBAAM,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC7B,aAAa,GAAG,2BAAkB,CAAC,IAAI,CAAC;YAC5C,CAAC;YAED,qBAAqB;YACrB,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YAC7E,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,mDAAmD;QACnD,IAAI,iBAAiB,GAAqC,EAAE,CAAC;QAE7D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,8BAA8B;YAC9B,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACJ,sBAAsB;YACtB,iBAAiB,GAAG,eAAe,CAAC;QACxC,CAAC;QAED,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,IAAI,sBAAa,CAAC,iBAAiB,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC;QAEX,gDAAgD;QAChD,OAAO,IAAI,+BAAiB,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,aAAa,EAAE,gBAAgB;YAC/B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC7B,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,UAAkB,EAAE,SAAwB;QACtE,wCAAwC;QACxC,IAAI,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,gCAAgC,CAAC,CAAC;QAC3G,CAAC;QAED,wCAAwC;QACxC,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,4CAA4C,CAAC,CAAC;QACvH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,+CAA+C,CAAC,CAAC;QACnH,CAAC;IACL,CAAC;CACJ;AAnKD,0CAmKC"}
@@ -20,7 +20,10 @@ class UpstreamSelectQueryFinder {
20
20
  this.options = options || {};
21
21
  this.tableColumnResolver = tableColumnResolver;
22
22
  // Pass the tableColumnResolver instead of options to fix type mismatch.
23
- this.columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver);
23
+ this.columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
24
+ SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns
25
+ { upstream: true } // Enable upstream collection for qualified name resolution
26
+ );
24
27
  }
25
28
  /**
26
29
  * Finds the highest SelectQuery containing all specified columns.
@@ -1 +1 @@
1
- {"version":3,"file":"UpstreamSelectQueryFinder.js","sourceRoot":"","sources":["../../../src/transformers/UpstreamSelectQueryFinder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpstreamSelectQueryFinder.js","sourceRoot":"","sources":["../../../src/transformers/UpstreamSelectQueryFinder.ts"],"names":[],"mappings":";;;AAAA,uDAAuG;AACvG,6CAAwF;AACxF,2EAAgG;AAChG,iDAA8C;AAE9C;;;;;;;;;GASG;AACH,MAAa,yBAAyB;IAKlC,YAAY,mBAAqD,EAAE,OAA+C;QAC9G,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,wEAAwE;QACxE,IAAI,CAAC,eAAe,GAAG,IAAI,qDAAyB,CAChD,IAAI,CAAC,mBAAmB,EACxB,KAAK,EAAE,kBAAkB;QACzB,kDAAsB,CAAC,QAAQ,EAAE,8CAA8C;QAC/E,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,2DAA2D;SACjF,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,KAAkB,EAAE,WAA8B;QAC1D,iCAAiC;QACjC,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACjF,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAEO,iBAAiB,CAAC,GAAgB,EAAE,WAAqB,EAAE,MAAgC;QAC/F,oDAAoD;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,GAAG,EAAE,CAAC;YACN,yEAAyE;YACzE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,oBAAoB,CAAC,GAAmB,EAAE,WAAqB,EAAE,MAAgC;QACrG,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC7B,UAAe,EACf,WAAqB,EACrB,MAAgC;QAEhC,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,IAAI,gBAAgB,GAA0B,EAAE,CAAC;QACjD,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,iCAAiC;QAE3D,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;YAClC,IAAI,YAAY,GAA+B,IAAI,CAAC;YACpD,IAAI,GAAG,YAAY,oBAAW,EAAE,CAAC;gBAC7B,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBAChE,gBAAgB,EAAE,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,YAAY,uBAAc,EAAE,CAAC;gBACvC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACnE,gBAAgB,EAAE,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;gBACpC,mEAAmE;gBACnE,SAAS;YACb,CAAC;iBAAM,CAAC;gBACJ,aAAa,GAAG,KAAK,CAAC;gBACtB,MAAM;YACV,CAAC;YAED,iCAAiC;YACjC,8DAA8D;YAC9D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBACxB,aAAa,GAAG,KAAK,CAAC;gBACtB,MAAM;YACV,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QAED,sFAAsF;QACtF,IAAI,aAAa,IAAI,gBAAgB,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChE,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,KAAkB,EAAE,WAAqB,EAAE,MAAgC;QAC5F,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YACrC,uDAAuD;YACvD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YACpC,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrF,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,OAAO,YAAY,CAAC;gBACxB,CAAC;YACL,CAAC;YAED,4EAA4E;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzE,0CAA0C;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;YAE/C,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,oEAAoE;YACpE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErG,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YAC5C,qEAAqE;YACrE,oEAAoE;YACpE,wFAAwF;YACxF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAwB,EAAE,MAAgC;QAChF,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,yDAAyD;QACzD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,iCAAiC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9D,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,6BAA6B,CAAC,KAAkB;QACpD,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YACrC,IAAI,CAAC;gBACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,wDAAwD;gBACxD,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;gBACzE,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,YAAY,+BAAiB,EAAE,CAAC;YAC5C,2EAA2E;YAC3E,wGAAwG;YACxG,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzLD,8DAyLC"}