rawsql-ts 0.11.6-beta → 0.11.8-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 (261) hide show
  1. package/README.md +816 -735
  2. package/dist/esm/index.js +1 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +23 -15
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/{types/src → src}/index.d.ts +1 -0
  7. package/dist/esm/src/index.js +1 -0
  8. package/dist/esm/src/index.js.map +1 -1
  9. package/dist/esm/{types/src → src}/models/BinarySelectQuery.d.ts +2 -2
  10. package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
  11. package/dist/esm/{types/src → src}/models/SelectQuery.d.ts +2 -1
  12. package/dist/esm/src/models/SelectQuery.js.map +1 -1
  13. package/dist/esm/{types/src → src}/models/SimpleSelectQuery.d.ts +2 -2
  14. package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
  15. package/dist/esm/{types/src → src}/models/ValueComponent.d.ts +19 -4
  16. package/dist/esm/src/models/ValueComponent.js +19 -1
  17. package/dist/esm/src/models/ValueComponent.js.map +1 -1
  18. package/dist/esm/{types/src → src}/models/ValuesQuery.d.ts +2 -1
  19. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  20. package/dist/esm/src/parsers/CommonTableParser.js +16 -0
  21. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  22. package/dist/esm/src/parsers/LiteralParser.js +15 -5
  23. package/dist/esm/src/parsers/LiteralParser.js.map +1 -1
  24. package/dist/esm/{types/src → src}/parsers/SqlPrintTokenParser.d.ts +2 -0
  25. package/dist/esm/src/parsers/SqlPrintTokenParser.js +42 -2
  26. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  27. package/dist/esm/{types/src → src}/parsers/ValueParser.d.ts +13 -0
  28. package/dist/esm/src/parsers/ValueParser.js +134 -1
  29. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  30. package/dist/esm/src/parsers/WithClauseParser.js +8 -2
  31. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  32. package/dist/esm/src/reporting/models/DataFlowEdge.d.ts +33 -0
  33. package/dist/esm/src/reporting/models/DataFlowEdge.js +53 -0
  34. package/dist/esm/src/reporting/models/DataFlowEdge.js.map +1 -0
  35. package/dist/esm/src/reporting/models/DataFlowGraph.d.ts +49 -0
  36. package/dist/esm/src/reporting/models/DataFlowGraph.js +156 -0
  37. package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -0
  38. package/dist/esm/src/reporting/models/DataFlowNode.d.ts +64 -0
  39. package/dist/esm/src/reporting/models/DataFlowNode.js +109 -0
  40. package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -0
  41. package/dist/esm/src/reporting/services/CTEHandler.d.ts +13 -0
  42. package/dist/esm/src/reporting/services/CTEHandler.js +27 -0
  43. package/dist/esm/src/reporting/services/CTEHandler.js.map +1 -0
  44. package/dist/esm/src/reporting/services/DataSourceHandler.d.ts +25 -0
  45. package/dist/esm/src/reporting/services/DataSourceHandler.js +91 -0
  46. package/dist/esm/src/reporting/services/DataSourceHandler.js.map +1 -0
  47. package/dist/esm/src/reporting/services/JoinHandler.d.ts +32 -0
  48. package/dist/esm/src/reporting/services/JoinHandler.js +80 -0
  49. package/dist/esm/src/reporting/services/JoinHandler.js.map +1 -0
  50. package/dist/esm/src/reporting/services/ProcessHandler.d.ts +55 -0
  51. package/dist/esm/src/reporting/services/ProcessHandler.js +177 -0
  52. package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -0
  53. package/dist/esm/{types/src → src}/tokenReaders/EscapedIdentifierTokenReader.d.ts +5 -0
  54. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js +37 -1
  55. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -1
  56. package/dist/esm/{types/src → src}/tokenReaders/LiteralTokenReader.d.ts +16 -0
  57. package/dist/esm/src/tokenReaders/LiteralTokenReader.js +119 -0
  58. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  59. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +4 -0
  60. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  61. package/dist/esm/src/tokenReaders/ParameterTokenReader.d.ts +26 -0
  62. package/dist/esm/src/tokenReaders/ParameterTokenReader.js +126 -0
  63. package/dist/esm/src/tokenReaders/ParameterTokenReader.js.map +1 -1
  64. package/dist/esm/{types/src → src}/transformers/DynamicQueryBuilder.d.ts +28 -2
  65. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
  66. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.d.ts +37 -0
  67. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js +140 -0
  68. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  69. package/dist/esm/{types/src → src}/transformers/SqlParamInjector.d.ts +11 -0
  70. package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
  71. package/dist/esm/{types/src → src}/transformers/TypeTransformationPostProcessor.d.ts +5 -5
  72. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js +20 -8
  73. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -1
  74. package/dist/esm/src/utils/OperatorPrecedence.js +23 -1
  75. package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -1
  76. package/dist/esm/src/utils/charLookupTable.js +4 -4
  77. package/dist/esm/src/utils/charLookupTable.js.map +1 -1
  78. package/dist/esm/src/utils/stringUtils.js +17 -1
  79. package/dist/esm/src/utils/stringUtils.js.map +1 -1
  80. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  81. package/dist/index.min.js +23 -15
  82. package/dist/index.min.js.map +4 -4
  83. package/dist/src/index.d.ts +1 -0
  84. package/dist/src/index.js +1 -0
  85. package/dist/src/index.js.map +1 -1
  86. package/dist/src/models/BinarySelectQuery.d.ts +2 -2
  87. package/dist/src/models/BinarySelectQuery.js.map +1 -1
  88. package/dist/src/models/SelectQuery.d.ts +2 -1
  89. package/dist/src/models/SelectQuery.js.map +1 -1
  90. package/dist/src/models/SimpleSelectQuery.d.ts +2 -2
  91. package/dist/src/models/SimpleSelectQuery.js.map +1 -1
  92. package/dist/src/models/ValueComponent.d.ts +19 -4
  93. package/dist/src/models/ValueComponent.js +22 -2
  94. package/dist/src/models/ValueComponent.js.map +1 -1
  95. package/dist/src/models/ValuesQuery.d.ts +2 -1
  96. package/dist/src/models/ValuesQuery.js.map +1 -1
  97. package/dist/src/parsers/CommonTableParser.js +16 -0
  98. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  99. package/dist/src/parsers/LiteralParser.js +15 -5
  100. package/dist/src/parsers/LiteralParser.js.map +1 -1
  101. package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -0
  102. package/dist/src/parsers/SqlPrintTokenParser.js +41 -1
  103. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  104. package/dist/src/parsers/ValueParser.d.ts +13 -0
  105. package/dist/src/parsers/ValueParser.js +133 -0
  106. package/dist/src/parsers/ValueParser.js.map +1 -1
  107. package/dist/src/parsers/WithClauseParser.js +8 -2
  108. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  109. package/dist/src/reporting/models/DataFlowEdge.d.ts +33 -0
  110. package/dist/src/reporting/models/DataFlowEdge.js +58 -0
  111. package/dist/src/reporting/models/DataFlowEdge.js.map +1 -0
  112. package/dist/src/reporting/models/DataFlowGraph.d.ts +49 -0
  113. package/dist/src/reporting/models/DataFlowGraph.js +160 -0
  114. package/dist/src/reporting/models/DataFlowGraph.js.map +1 -0
  115. package/dist/src/reporting/models/DataFlowNode.d.ts +64 -0
  116. package/dist/src/reporting/models/DataFlowNode.js +117 -0
  117. package/dist/src/reporting/models/DataFlowNode.js.map +1 -0
  118. package/dist/src/reporting/services/CTEHandler.d.ts +13 -0
  119. package/dist/src/reporting/services/CTEHandler.js +31 -0
  120. package/dist/src/reporting/services/CTEHandler.js.map +1 -0
  121. package/dist/src/reporting/services/DataSourceHandler.d.ts +25 -0
  122. package/dist/src/reporting/services/DataSourceHandler.js +95 -0
  123. package/dist/src/reporting/services/DataSourceHandler.js.map +1 -0
  124. package/dist/src/reporting/services/JoinHandler.d.ts +32 -0
  125. package/dist/src/reporting/services/JoinHandler.js +84 -0
  126. package/dist/src/reporting/services/JoinHandler.js.map +1 -0
  127. package/dist/src/reporting/services/ProcessHandler.d.ts +55 -0
  128. package/dist/src/reporting/services/ProcessHandler.js +181 -0
  129. package/dist/src/reporting/services/ProcessHandler.js.map +1 -0
  130. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.d.ts +5 -0
  131. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js +37 -1
  132. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -1
  133. package/dist/src/tokenReaders/LiteralTokenReader.d.ts +16 -0
  134. package/dist/src/tokenReaders/LiteralTokenReader.js +119 -0
  135. package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  136. package/dist/src/tokenReaders/OperatorTokenReader.js +4 -0
  137. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  138. package/dist/src/tokenReaders/ParameterTokenReader.d.ts +14 -0
  139. package/dist/src/tokenReaders/ParameterTokenReader.js +126 -0
  140. package/dist/src/tokenReaders/ParameterTokenReader.js.map +1 -1
  141. package/dist/src/transformers/DynamicQueryBuilder.d.ts +28 -2
  142. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
  143. package/dist/src/transformers/QueryFlowDiagramGenerator.d.ts +37 -0
  144. package/dist/src/transformers/QueryFlowDiagramGenerator.js +144 -0
  145. package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  146. package/dist/src/transformers/SqlParamInjector.d.ts +11 -0
  147. package/dist/src/transformers/SqlParamInjector.js.map +1 -1
  148. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +5 -5
  149. package/dist/src/transformers/TypeTransformationPostProcessor.js +20 -8
  150. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -1
  151. package/dist/src/utils/OperatorPrecedence.js +23 -1
  152. package/dist/src/utils/OperatorPrecedence.js.map +1 -1
  153. package/dist/src/utils/charLookupTable.js +4 -4
  154. package/dist/src/utils/charLookupTable.js.map +1 -1
  155. package/dist/src/utils/stringUtils.js +17 -1
  156. package/dist/src/utils/stringUtils.js.map +1 -1
  157. package/dist/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +1 -1
  159. package/dist/esm/types/src/tokenReaders/ParameterTokenReader.d.ts +0 -12
  160. /package/dist/esm/{types/src → src}/models/CTEError.d.ts +0 -0
  161. /package/dist/esm/{types/src → src}/models/Clause.d.ts +0 -0
  162. /package/dist/esm/{types/src → src}/models/CreateTableQuery.d.ts +0 -0
  163. /package/dist/esm/{types/src → src}/models/HintClause.d.ts +0 -0
  164. /package/dist/esm/{types/src → src}/models/InsertQuery.d.ts +0 -0
  165. /package/dist/esm/{types/src → src}/models/KeywordTrie.d.ts +0 -0
  166. /package/dist/esm/{types/src → src}/models/Lexeme.d.ts +0 -0
  167. /package/dist/esm/{types/src → src}/models/SqlComponent.d.ts +0 -0
  168. /package/dist/esm/{types/src → src}/models/SqlPrintToken.d.ts +0 -0
  169. /package/dist/esm/{types/src → src}/models/UpdateQuery.d.ts +0 -0
  170. /package/dist/esm/{types/src → src}/parsers/CommandExpressionParser.d.ts +0 -0
  171. /package/dist/esm/{types/src → src}/parsers/CommonTableParser.d.ts +0 -0
  172. /package/dist/esm/{types/src → src}/parsers/FetchClauseParser.d.ts +0 -0
  173. /package/dist/esm/{types/src → src}/parsers/ForClauseParser.d.ts +0 -0
  174. /package/dist/esm/{types/src → src}/parsers/FromClauseParser.d.ts +0 -0
  175. /package/dist/esm/{types/src → src}/parsers/FullNameParser.d.ts +0 -0
  176. /package/dist/esm/{types/src → src}/parsers/FunctionExpressionParser.d.ts +0 -0
  177. /package/dist/esm/{types/src → src}/parsers/GroupByParser.d.ts +0 -0
  178. /package/dist/esm/{types/src → src}/parsers/HavingParser.d.ts +0 -0
  179. /package/dist/esm/{types/src → src}/parsers/IdentifierDecorator.d.ts +0 -0
  180. /package/dist/esm/{types/src → src}/parsers/IdentifierParser.d.ts +0 -0
  181. /package/dist/esm/{types/src → src}/parsers/InsertQueryParser.d.ts +0 -0
  182. /package/dist/esm/{types/src → src}/parsers/JoinClauseParser.d.ts +0 -0
  183. /package/dist/esm/{types/src → src}/parsers/JoinOnClauseParser.d.ts +0 -0
  184. /package/dist/esm/{types/src → src}/parsers/JoinUsingClauseParser.d.ts +0 -0
  185. /package/dist/esm/{types/src → src}/parsers/KeywordParser.d.ts +0 -0
  186. /package/dist/esm/{types/src → src}/parsers/LimitClauseParser.d.ts +0 -0
  187. /package/dist/esm/{types/src → src}/parsers/LiteralParser.d.ts +0 -0
  188. /package/dist/esm/{types/src → src}/parsers/OffsetClauseParser.d.ts +0 -0
  189. /package/dist/esm/{types/src → src}/parsers/OrderByClauseParser.d.ts +0 -0
  190. /package/dist/esm/{types/src → src}/parsers/OverExpressionParser.d.ts +0 -0
  191. /package/dist/esm/{types/src → src}/parsers/ParameterDecorator.d.ts +0 -0
  192. /package/dist/esm/{types/src → src}/parsers/ParameterExpressionParser.d.ts +0 -0
  193. /package/dist/esm/{types/src → src}/parsers/ParenExpressionParser.d.ts +0 -0
  194. /package/dist/esm/{types/src → src}/parsers/ParseError.d.ts +0 -0
  195. /package/dist/esm/{types/src → src}/parsers/PartitionByParser.d.ts +0 -0
  196. /package/dist/esm/{types/src → src}/parsers/ReturningClauseParser.d.ts +0 -0
  197. /package/dist/esm/{types/src → src}/parsers/SelectClauseParser.d.ts +0 -0
  198. /package/dist/esm/{types/src → src}/parsers/SelectQueryParser.d.ts +0 -0
  199. /package/dist/esm/{types/src → src}/parsers/SetClauseParser.d.ts +0 -0
  200. /package/dist/esm/{types/src → src}/parsers/SourceAliasExpressionParser.d.ts +0 -0
  201. /package/dist/esm/{types/src → src}/parsers/SourceExpressionParser.d.ts +0 -0
  202. /package/dist/esm/{types/src → src}/parsers/SourceParser.d.ts +0 -0
  203. /package/dist/esm/{types/src → src}/parsers/SqlTokenizer.d.ts +0 -0
  204. /package/dist/esm/{types/src → src}/parsers/StringSpecifierExpressionParser.d.ts +0 -0
  205. /package/dist/esm/{types/src → src}/parsers/UnaryExpressionParser.d.ts +0 -0
  206. /package/dist/esm/{types/src → src}/parsers/UpdateClauseParser.d.ts +0 -0
  207. /package/dist/esm/{types/src → src}/parsers/UpdateQueryParser.d.ts +0 -0
  208. /package/dist/esm/{types/src → src}/parsers/ValuesQueryParser.d.ts +0 -0
  209. /package/dist/esm/{types/src → src}/parsers/WhereClauseParser.d.ts +0 -0
  210. /package/dist/esm/{types/src → src}/parsers/WindowClauseParser.d.ts +0 -0
  211. /package/dist/esm/{types/src → src}/parsers/WindowExpressionParser.d.ts +0 -0
  212. /package/dist/esm/{types/src → src}/parsers/WithClauseParser.d.ts +0 -0
  213. /package/dist/esm/{types/src → src}/tokenReaders/BaseTokenReader.d.ts +0 -0
  214. /package/dist/esm/{types/src → src}/tokenReaders/CommandTokenReader.d.ts +0 -0
  215. /package/dist/esm/{types/src → src}/tokenReaders/FunctionTokenReader.d.ts +0 -0
  216. /package/dist/esm/{types/src → src}/tokenReaders/IdentifierTokenReader.d.ts +0 -0
  217. /package/dist/esm/{types/src → src}/tokenReaders/OperatorTokenReader.d.ts +0 -0
  218. /package/dist/esm/{types/src → src}/tokenReaders/StringSpecifierTokenReader.d.ts +0 -0
  219. /package/dist/esm/{types/src → src}/tokenReaders/SymbolTokenReader.d.ts +0 -0
  220. /package/dist/esm/{types/src → src}/tokenReaders/TokenReaderManager.d.ts +0 -0
  221. /package/dist/esm/{types/src → src}/tokenReaders/TypeTokenReader.d.ts +0 -0
  222. /package/dist/esm/{types/src → src}/transformers/CTEBuilder.d.ts +0 -0
  223. /package/dist/esm/{types/src → src}/transformers/CTECollector.d.ts +0 -0
  224. /package/dist/esm/{types/src → src}/transformers/CTEDependencyTracer.d.ts +0 -0
  225. /package/dist/esm/{types/src → src}/transformers/CTEDisabler.d.ts +0 -0
  226. /package/dist/esm/{types/src → src}/transformers/CTEInjector.d.ts +0 -0
  227. /package/dist/esm/{types/src → src}/transformers/CTENormalizer.d.ts +0 -0
  228. /package/dist/esm/{types/src → src}/transformers/EnhancedJsonMapping.d.ts +0 -0
  229. /package/dist/esm/{types/src → src}/transformers/Formatter.d.ts +0 -0
  230. /package/dist/esm/{types/src → src}/transformers/JsonMappingConverter.d.ts +0 -0
  231. /package/dist/esm/{types/src → src}/transformers/JsonMappingUnifier.d.ts +0 -0
  232. /package/dist/esm/{types/src → src}/transformers/LinePrinter.d.ts +0 -0
  233. /package/dist/esm/{types/src → src}/transformers/ModelDrivenJsonMapping.d.ts +0 -0
  234. /package/dist/esm/{types/src → src}/transformers/ParameterCollector.d.ts +0 -0
  235. /package/dist/esm/{types/src → src}/transformers/PostgresArrayEntityCteBuilder.d.ts +0 -0
  236. /package/dist/esm/{types/src → src}/transformers/PostgresJsonQueryBuilder.d.ts +0 -0
  237. /package/dist/esm/{types/src → src}/transformers/PostgresObjectEntityCteBuilder.d.ts +0 -0
  238. /package/dist/esm/{types/src → src}/transformers/QueryBuilder.d.ts +0 -0
  239. /package/dist/esm/{types/src → src}/transformers/SchemaCollector.d.ts +0 -0
  240. /package/dist/esm/{types/src → src}/transformers/SelectValueCollector.d.ts +0 -0
  241. /package/dist/esm/{types/src → src}/transformers/SelectableColumnCollector.d.ts +0 -0
  242. /package/dist/esm/{types/src → src}/transformers/SqlFormatter.d.ts +0 -0
  243. /package/dist/esm/{types/src → src}/transformers/SqlOutputToken.d.ts +0 -0
  244. /package/dist/esm/{types/src → src}/transformers/SqlPaginationInjector.d.ts +0 -0
  245. /package/dist/esm/{types/src → src}/transformers/SqlParameterBinder.d.ts +0 -0
  246. /package/dist/esm/{types/src → src}/transformers/SqlPrinter.d.ts +0 -0
  247. /package/dist/esm/{types/src → src}/transformers/SqlSortInjector.d.ts +0 -0
  248. /package/dist/esm/{types/src → src}/transformers/TableColumnResolver.d.ts +0 -0
  249. /package/dist/esm/{types/src → src}/transformers/TableSourceCollector.d.ts +0 -0
  250. /package/dist/esm/{types/src → src}/transformers/UpstreamSelectQueryFinder.d.ts +0 -0
  251. /package/dist/esm/{types/src → src}/utils/CommentEditor.d.ts +0 -0
  252. /package/dist/esm/{types/src → src}/utils/CommentUtils.d.ts +0 -0
  253. /package/dist/esm/{types/src → src}/utils/JsonSchemaValidator.d.ts +0 -0
  254. /package/dist/esm/{types/src → src}/utils/OperatorPrecedence.d.ts +0 -0
  255. /package/dist/esm/{types/src → src}/utils/ParameterDetector.d.ts +0 -0
  256. /package/dist/esm/{types/src → src}/utils/ParameterHelper.d.ts +0 -0
  257. /package/dist/esm/{types/src → src}/utils/ParameterRemover.d.ts +0 -0
  258. /package/dist/esm/{types/src → src}/utils/SchemaManager.d.ts +0 -0
  259. /package/dist/esm/{types/src → src}/utils/SqlSchemaValidator.d.ts +0 -0
  260. /package/dist/esm/{types/src → src}/utils/charLookupTable.d.ts +0 -0
  261. /package/dist/esm/{types/src → src}/utils/stringUtils.d.ts +0 -0
@@ -0,0 +1,26 @@
1
+ import { BaseTokenReader } from './BaseTokenReader';
2
+ import { Lexeme } from '../models/Lexeme';
3
+ /**
4
+ * Reads SQL parameter tokens (@param, :param, $param, ?, ${param})
5
+ */
6
+ export declare class ParameterTokenReader extends BaseTokenReader {
7
+ constructor(input: string);
8
+ /**
9
+ * Try to read a parameter token
10
+ */
11
+ tryRead(previous: Lexeme | null): Lexeme | null;
12
+ /**
13
+ * Check if we're in an array slice context where : should be treated as an operator
14
+ * Look backwards for an opening bracket that suggests array access
15
+ */
16
+ private isInArraySliceContext;
17
+ /**
18
+ * Check if the current position starts a PostgreSQL dollar-quoted string
19
+ * Patterns: $$ or $tag$
20
+ */
21
+ private isDollarQuotedString;
22
+ /**
23
+ * Check if character is alphanumeric (letter or digit)
24
+ */
25
+ private isAlphanumeric;
26
+ }
@@ -40,6 +40,32 @@ export class ParameterTokenReader extends BaseTokenReader {
40
40
  if (this.canRead(1) && CharLookupTable.isOperatorSymbol(this.input[this.position + 1])) {
41
41
  return null;
42
42
  }
43
+ // Don't treat `:` as parameter prefix in array slice context [1:2]
44
+ if (char === ':' && this.isInArraySliceContext()) {
45
+ return null;
46
+ }
47
+ // Special handling for PostgreSQL dollar-quoted strings ($$ or $tag$)
48
+ if (char === '$' && this.isDollarQuotedString()) {
49
+ return null; // Let LiteralTokenReader handle it as dollar-quoted string
50
+ }
51
+ // Special handling for SQL Server MONEY literals ($123.45)
52
+ // Only treat as MONEY if it contains decimal point or comma (not just $123)
53
+ if (char === '$' && this.canRead(1) && CharLookupTable.isDigit(this.input[this.position + 1])) {
54
+ // Look ahead to see if this looks like a MONEY literal (has . or ,)
55
+ let pos = this.position + 1;
56
+ let hasDecimalOrComma = false;
57
+ while (pos < this.input.length && (CharLookupTable.isDigit(this.input[pos]) || this.input[pos] === ',' || this.input[pos] === '.')) {
58
+ if (this.input[pos] === '.' || this.input[pos] === ',') {
59
+ hasDecimalOrComma = true;
60
+ break;
61
+ }
62
+ pos++;
63
+ }
64
+ if (hasDecimalOrComma) {
65
+ return null; // Let LiteralTokenReader handle it as MONEY
66
+ }
67
+ // Otherwise, treat as parameter (e.g., $1, $123)
68
+ }
43
69
  this.position++;
44
70
  // Read the identifier part after the prefix
45
71
  const start = this.position;
@@ -50,11 +76,111 @@ export class ParameterTokenReader extends BaseTokenReader {
50
76
  return this.createLexeme(TokenType.Parameter, char + identifier);
51
77
  }
52
78
  // nameless parameter (?)
79
+ // However, do not recognize as a parameter if it could be a JSON operator
53
80
  if (char === '?') {
81
+ // Check for JSON operators ?| and ?&
82
+ if (this.canRead(1)) {
83
+ const nextChar = this.input[this.position + 1];
84
+ if (nextChar === '|' || nextChar === '&') {
85
+ return null; // Let OperatorTokenReader handle it
86
+ }
87
+ }
88
+ // If previous token is an identifier or literal, ? might be a JSON operator
89
+ if (previous && (previous.type & TokenType.Identifier || previous.type & TokenType.Literal)) {
90
+ return null; // Let OperatorTokenReader handle it
91
+ }
54
92
  this.position++;
55
93
  return this.createLexeme(TokenType.Parameter, char);
56
94
  }
57
95
  return null;
58
96
  }
97
+ /**
98
+ * Check if we're in an array slice context where : should be treated as an operator
99
+ * Look backwards for an opening bracket that suggests array access
100
+ */
101
+ isInArraySliceContext() {
102
+ // Look backwards from current position to find opening bracket
103
+ let pos = this.position - 1;
104
+ let bracketDepth = 0;
105
+ let parenDepth = 0;
106
+ while (pos >= 0) {
107
+ const char = this.input[pos];
108
+ if (char === ']') {
109
+ bracketDepth++;
110
+ }
111
+ else if (char === '[') {
112
+ bracketDepth--;
113
+ if (bracketDepth < 0) {
114
+ // Found unmatched opening bracket, check if it's array access context
115
+ // Array access context: after identifier, closing paren, or closing bracket
116
+ if (pos > 0) {
117
+ const prevChar = this.input[pos - 1];
118
+ // If previous char could end an expression (identifier, paren, bracket)
119
+ if (/[a-zA-Z0-9_)\]]/.test(prevChar)) {
120
+ return true;
121
+ }
122
+ }
123
+ // Also check if we're at start of input with brackets
124
+ if (pos === 0) {
125
+ return false; // Standalone [expr] is not array access
126
+ }
127
+ break;
128
+ }
129
+ }
130
+ else if (char === ')') {
131
+ parenDepth++;
132
+ }
133
+ else if (char === '(') {
134
+ parenDepth--;
135
+ // Continue searching even through parentheses as they might be function calls
136
+ // in array slice context like arr[func(x):func(y)]
137
+ }
138
+ pos--;
139
+ }
140
+ return false;
141
+ }
142
+ /**
143
+ * Check if the current position starts a PostgreSQL dollar-quoted string
144
+ * Patterns: $$ or $tag$
145
+ */
146
+ isDollarQuotedString() {
147
+ if (!this.canRead(1)) {
148
+ return false;
149
+ }
150
+ // Check for $$ pattern
151
+ if (this.input[this.position + 1] === '$') {
152
+ return true;
153
+ }
154
+ // Check for $tag$ pattern
155
+ // Look for the closing $ after the tag
156
+ let pos = this.position + 1;
157
+ while (pos < this.input.length) {
158
+ const char = this.input[pos];
159
+ if (char === '$') {
160
+ // Found closing $ - this looks like $tag$ pattern
161
+ return true;
162
+ }
163
+ // Tag can contain letters, digits, underscores
164
+ if (!this.isAlphanumeric(char) && char !== '_') {
165
+ // Invalid character for tag, not a dollar-quoted string
166
+ return false;
167
+ }
168
+ pos++;
169
+ }
170
+ // No closing $ found
171
+ return false;
172
+ }
173
+ /**
174
+ * Check if character is alphanumeric (letter or digit)
175
+ */
176
+ isAlphanumeric(char) {
177
+ if (char.length !== 1)
178
+ return false;
179
+ const code = char.charCodeAt(0);
180
+ // Check if digit (0-9) or letter (a-z, A-Z)
181
+ return (code >= 48 && code <= 57) || // 0-9
182
+ (code >= 65 && code <= 90) || // A-Z
183
+ (code >= 97 && code <= 122); // a-z
184
+ }
59
185
  }
60
186
  //# sourceMappingURL=ParameterTokenReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterTokenReader.js","sourceRoot":"","sources":["../../../../src/tokenReaders/ParameterTokenReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACrD,YAAY,KAAa;QACrB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,QAAuB;QAClC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAChG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2EAA2E,KAAK,EAAE,CAAC,CAAC;YACxG,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,6DAA6D,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACjG,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvC,2CAA2C;QAC3C,IAAI,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAE/C,uFAAuF;YACvF,yBAAyB;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,4CAA4C;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC;QACrE,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
1
+ {"version":3,"file":"ParameterTokenReader.js","sourceRoot":"","sources":["../../../../src/tokenReaders/ParameterTokenReader.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,38 @@ import { SelectQuery } from "../models/SelectQuery";
2
2
  import { SortConditions } from "./SqlSortInjector";
3
3
  import { PaginationOptions } from "./SqlPaginationInjector";
4
4
  import { JsonMapping } from "./PostgresJsonQueryBuilder";
5
+ import { SqlParameterValue } from "../models/ValueComponent";
6
+ export type FilterConditionValue = SqlParameterValue | SqlParameterValue[] | {
7
+ min?: SqlParameterValue;
8
+ max?: SqlParameterValue;
9
+ like?: string;
10
+ ilike?: string;
11
+ in?: SqlParameterValue[];
12
+ any?: SqlParameterValue[];
13
+ '='?: SqlParameterValue;
14
+ '>'?: SqlParameterValue;
15
+ '<'?: SqlParameterValue;
16
+ '>='?: SqlParameterValue;
17
+ '<='?: SqlParameterValue;
18
+ '!='?: SqlParameterValue;
19
+ '<>'?: SqlParameterValue;
20
+ or?: {
21
+ column: string;
22
+ [operator: string]: SqlParameterValue | string;
23
+ }[];
24
+ and?: {
25
+ column: string;
26
+ [operator: string]: SqlParameterValue | string;
27
+ }[];
28
+ column?: string;
29
+ };
30
+ export type FilterConditions = Record<string, FilterConditionValue>;
5
31
  /**
6
32
  * Options for dynamic query building
7
33
  */
8
34
  export interface QueryBuildOptions {
9
35
  /** Filter conditions to inject into WHERE clause */
10
- filter?: Record<string, any>;
36
+ filter?: FilterConditions;
11
37
  /** Sort conditions to inject into ORDER BY clause */
12
38
  sort?: SortConditions;
13
39
  /** Pagination options to inject LIMIT/OFFSET clauses */
@@ -75,7 +101,7 @@ export declare class DynamicQueryBuilder {
75
101
  * @param filter Filter conditions to apply
76
102
  * @returns Modified SelectQuery with filter conditions applied
77
103
  */
78
- buildFilteredQuery(sqlContent: string, filter: Record<string, any>): SelectQuery;
104
+ buildFilteredQuery(sqlContent: string, filter: FilterConditions): SelectQuery;
79
105
  /**
80
106
  * Builds a SelectQuery with only sorting applied.
81
107
  * Convenience method for when you only need dynamic ORDER BY clauses.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { SelectQuery } from '../models/SelectQuery';
2
+ export interface BaseMermaidOptions {
3
+ /** Diagram title */
4
+ title?: string;
5
+ }
6
+ export interface FlowDiagramOptions extends BaseMermaidOptions {
7
+ /** Show detailed information (columns, conditions) */
8
+ showDetails?: boolean;
9
+ /** Include CTE dependencies */
10
+ showCTEDependencies?: boolean;
11
+ /** Direction of flow (top-down, left-right) */
12
+ direction?: 'TD' | 'LR' | 'TB' | 'RL';
13
+ }
14
+ /**
15
+ * QueryFlowDiagramGenerator using model-based architecture
16
+ * Generates Mermaid diagrams from SQL queries following consistent principles
17
+ */
18
+ export declare class QueryFlowDiagramGenerator {
19
+ private graph;
20
+ private dataSourceHandler;
21
+ private joinHandler;
22
+ private processHandler;
23
+ private cteHandler;
24
+ constructor();
25
+ generateMermaidFlow(query: SelectQuery | string, options?: FlowDiagramOptions): string;
26
+ static generate(sql: string): string;
27
+ private processQuery;
28
+ private processSimpleQuery;
29
+ private processBinaryQuery;
30
+ private processSimpleBinaryOperation;
31
+ private processMultiPartOperation;
32
+ private handleOutputNode;
33
+ /**
34
+ * Flattens a binary operation chain into individual parts
35
+ */
36
+ private flattenBinaryChain;
37
+ }
@@ -0,0 +1,140 @@
1
+ import { SelectQueryParser } from '../parsers/SelectQueryParser';
2
+ import { SimpleSelectQuery } from '../models/SimpleSelectQuery';
3
+ import { BinarySelectQuery } from '../models/BinarySelectQuery';
4
+ import { DataFlowGraph } from '../reporting/models/DataFlowGraph';
5
+ import { DataSourceHandler } from '../reporting/services/DataSourceHandler';
6
+ import { JoinHandler } from '../reporting/services/JoinHandler';
7
+ import { ProcessHandler } from '../reporting/services/ProcessHandler';
8
+ import { CTEHandler } from '../reporting/services/CTEHandler';
9
+ /**
10
+ * QueryFlowDiagramGenerator using model-based architecture
11
+ * Generates Mermaid diagrams from SQL queries following consistent principles
12
+ */
13
+ export class QueryFlowDiagramGenerator {
14
+ constructor() {
15
+ this.graph = new DataFlowGraph();
16
+ this.dataSourceHandler = new DataSourceHandler(this.graph);
17
+ this.joinHandler = new JoinHandler(this.graph, this.dataSourceHandler);
18
+ this.processHandler = new ProcessHandler(this.graph, this.dataSourceHandler);
19
+ this.cteHandler = new CTEHandler(this.graph);
20
+ }
21
+ generateMermaidFlow(query, options) {
22
+ // Reset state for new diagram generation
23
+ this.graph = new DataFlowGraph();
24
+ this.dataSourceHandler = new DataSourceHandler(this.graph);
25
+ this.joinHandler = new JoinHandler(this.graph, this.dataSourceHandler);
26
+ this.processHandler = new ProcessHandler(this.graph, this.dataSourceHandler);
27
+ this.cteHandler = new CTEHandler(this.graph);
28
+ this.joinHandler.resetJoinCounter();
29
+ // Parse SQL if string
30
+ const parsedQuery = typeof query === 'string'
31
+ ? SelectQueryParser.parse(query)
32
+ : query;
33
+ // Process the query
34
+ const cteNames = new Set();
35
+ this.processQuery(parsedQuery, 'main', cteNames);
36
+ // Generate Mermaid output
37
+ return this.graph.generateMermaid((options === null || options === void 0 ? void 0 : options.direction) || 'TD', options === null || options === void 0 ? void 0 : options.title);
38
+ }
39
+ static generate(sql) {
40
+ const generator = new QueryFlowDiagramGenerator();
41
+ return generator.generateMermaidFlow(sql);
42
+ }
43
+ processQuery(query, context, cteNames) {
44
+ if (query instanceof SimpleSelectQuery) {
45
+ return this.processSimpleQuery(query, context, cteNames);
46
+ }
47
+ else if (query instanceof BinarySelectQuery) {
48
+ return this.processBinaryQuery(query, context, cteNames);
49
+ }
50
+ throw new Error('Unsupported query type');
51
+ }
52
+ processSimpleQuery(query, context, cteNames) {
53
+ // Process CTEs first
54
+ if (query.withClause) {
55
+ this.cteHandler.processCTEs(query.withClause, cteNames, this.processQuery.bind(this));
56
+ }
57
+ let currentNodeId = '';
58
+ // 1. Process FROM clause (including JOINs)
59
+ if (query.fromClause) {
60
+ currentNodeId = this.joinHandler.processFromClause(query.fromClause, cteNames, this.processQuery.bind(this));
61
+ }
62
+ // 2-7. Process other clauses in execution order
63
+ if (currentNodeId) {
64
+ currentNodeId = this.processHandler.processQueryClauses(query, context, currentNodeId, cteNames, this.processQuery.bind(this));
65
+ }
66
+ // Handle output node creation based on context
67
+ return this.handleOutputNode(currentNodeId, context);
68
+ }
69
+ processBinaryQuery(query, context, cteNames) {
70
+ // Check if this is a chain of the same operation
71
+ const parts = this.flattenBinaryChain(query, query.operator.value);
72
+ if (parts.length > 2) {
73
+ return this.processMultiPartOperation(parts, query.operator.value, context, cteNames);
74
+ }
75
+ else {
76
+ return this.processSimpleBinaryOperation(query, context, cteNames);
77
+ }
78
+ }
79
+ processSimpleBinaryOperation(query, context, cteNames) {
80
+ const leftNodeId = this.processQuery(query.left, `${context}_left`, cteNames);
81
+ const rightNodeId = this.processQuery(query.right, `${context}_right`, cteNames);
82
+ // Create operation node
83
+ const operationNode = this.graph.createSetOperationNode('1', query.operator.value);
84
+ // Connect left and right to operation
85
+ if (leftNodeId && !this.graph.hasConnection(leftNodeId, operationNode.id)) {
86
+ this.graph.addConnection(leftNodeId, operationNode.id);
87
+ }
88
+ if (rightNodeId && !this.graph.hasConnection(rightNodeId, operationNode.id)) {
89
+ this.graph.addConnection(rightNodeId, operationNode.id);
90
+ }
91
+ return operationNode.id;
92
+ }
93
+ processMultiPartOperation(parts, operator, context, cteNames) {
94
+ const partNodes = [];
95
+ const operationNode = this.graph.createSetOperationNode('1', operator);
96
+ // Process each part with numbered naming
97
+ for (let i = 0; i < parts.length; i++) {
98
+ const partContext = `${context}_part${i + 1}`;
99
+ const partNodeId = this.processQuery(parts[i], partContext, cteNames);
100
+ partNodes.push(partNodeId);
101
+ }
102
+ // Connect all parts to operation
103
+ for (const partNodeId of partNodes) {
104
+ if (partNodeId && !this.graph.hasConnection(partNodeId, operationNode.id)) {
105
+ this.graph.addConnection(partNodeId, operationNode.id);
106
+ }
107
+ }
108
+ return operationNode.id;
109
+ }
110
+ handleOutputNode(currentNodeId, context) {
111
+ // Simple principle: Only create output node for main query
112
+ // All other contexts return their processing result directly
113
+ if (context === 'main') {
114
+ const outputNode = this.graph.createOutputNode(context);
115
+ if (currentNodeId) {
116
+ this.graph.addConnection(currentNodeId, outputNode.id);
117
+ }
118
+ return outputNode.id;
119
+ }
120
+ return currentNodeId;
121
+ }
122
+ /**
123
+ * Flattens a binary operation chain into individual parts
124
+ */
125
+ flattenBinaryChain(query, operator) {
126
+ const parts = [];
127
+ const collectParts = (q) => {
128
+ if (q instanceof BinarySelectQuery && q.operator.value === operator) {
129
+ collectParts(q.left);
130
+ collectParts(q.right);
131
+ }
132
+ else {
133
+ parts.push(q);
134
+ }
135
+ };
136
+ collectParts(query);
137
+ return parts;
138
+ }
139
+ }
140
+ //# sourceMappingURL=QueryFlowDiagramGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryFlowDiagramGenerator.js","sourceRoot":"","sources":["../../../../src/transformers/QueryFlowDiagramGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { SelectQuery, SimpleSelectQuery } from "../models/SelectQuery";
2
+ import { SqlParameterValue } from "../models/ValueComponent";
2
3
  /**
3
4
  * Options for SqlParamInjector
4
5
  */
@@ -8,6 +9,7 @@ export interface SqlParamInjectorOptions {
8
9
  /** Whether to allow injection when all parameters are undefined (defaults to false for safety) */
9
10
  allowAllUndefined?: boolean;
10
11
  }
12
+ export type StateParameterValue = SqlParameterValue | SqlParameterValue[] | Condition | OrCondition | AndCondition | ExplicitColumnMapping;
11
13
  /**
12
14
  * SqlParamInjector injects state parameters into a SelectQuery model,
13
15
  * creating WHERE conditions and setting parameter values.
@@ -97,4 +99,13 @@ type LogicalCondition = {
97
99
  or?: SingleCondition[];
98
100
  };
99
101
  type Condition = BaseCondition | SingleCondition | LogicalCondition;
102
+ type OrCondition = {
103
+ or: SingleCondition[];
104
+ };
105
+ type AndCondition = {
106
+ and: SingleCondition[];
107
+ };
108
+ type ExplicitColumnMapping = {
109
+ column: string;
110
+ } & BaseCondition;
100
111
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAkB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAYjE;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAIzB,YAAY,iBAA+E,EAAE,OAAiC;QAC1H,mDAAmD;QACnD,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;YAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC3C,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACT,KAAiC,EACjC,KAAsF;QAEtF,8EAA8E;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAsB,CAAC;QAChE,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1E,0CAA0C;QAC1C,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;QAEjF,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE9H,wCAAwC;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,aAAa,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEtF,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gJAAgJ,CAAC,CAAC;QACtK,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,wBAAwB;YACxB,IAAI,UAAU,KAAK,SAAS;gBAAE,SAAS;YAEvC,IAAI,CAAC,qBAAqB,CACtB,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EACjE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,CAC7G,CAAC;QACN,CAAC;QAAC,SAAS,mBAAmB,CAC1B,CAAoB,EACpB,QAAgB,EAChB,aAAgC,EAChC,SAAgC,EAChC,gBAA2D,EAC3D,SAAoC;YAEpC,gFAAgF;YAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAEnD,yBAAyB;gBACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,wCAAwC,CAAC,CAAC;gBACnF,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,6CAA6C;gBAC7C,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAAC,IAAI,MAAM,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,OAAO,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,OAAO,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,QAAQ,CAAC;oBAC/C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAyB,CAAC;oBACnD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,mBAAmB,CAAC,GAAG,QAAQ,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAC7D,CAAC;oBACF,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnG,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxG,CAAC;gBACD,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,GAAG,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC,KAAK,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzE,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;QACL,CAAC;QAED,SAAS,kBAAkB,CACvB,CAAoB,EACpB,QAAgB,EAChB,YAA+B,EAC/B,SAAgC,EAChC,gBAA2D,EAC3D,SAAoC;YAEpC,MAAM,aAAa,GAAqB,EAAE,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAElD,yBAAyB;gBACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,uCAAuC,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE9B,uCAAuC;gBACvC,MAAM,gBAAgB,GAAqB,EAAE,CAAC;gBAE9C,4CAA4C;gBAC5C,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAAC,IAAI,MAAM,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5D,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC5D,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,QAAQ,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACtD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAyB,CAAC;oBAClD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,mBAAmB,CAAC,GAAG,QAAQ,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5D,CAAC;oBACF,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,CAAC;gBACD,IAAI,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChH,CAAC;gBACD,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,GAAG,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,MAAM,CAAC;oBAC5C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,IAAI,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO,CAAC,KAAK,CAAC;oBAC3C,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,gBAAgB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,UAAU,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACD,kEAAkE;oBAClE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACJ,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,WAAW,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAED,iDAAiD;gBACjD,CAAC,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QAED,SAAS,iBAAiB,CAAC,UAAkB,EAAE,UAAoB,EAAE,IAAY;YAC7E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,IAAI,GAAG,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,SAAS,qBAAqB,CAAC,CAAoB,EAAE,SAAyB,EAAE,IAAY,EAAE,UAAe;YACzG,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,SAAS,uBAAuB,CAAC,CAAoB,EAAE,SAAyB,EAAE,IAAY,EAAE,UAAqB;YACnH,MAAM,UAAU,GAAqB,EAAE,CAAC;YAExC,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3E,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC9E,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAwB,CAAC;gBACpD,MAAM,IAAI,GAA0B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjD,IAAI,mBAAmB,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAChD,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,GAAG,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,yFAAyF;YACzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,2CAA2C;gBAC3C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,6EAA6E;gBAC7E,IAAI,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,YAAY,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,CAAC,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAU;QAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC;IACjG,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAU;QAC7B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC;IAClG,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,KAAU;QACtC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpE,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAU;QAClC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAU;QAC/B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC;IACrG,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAU;QAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC;IACxG,CAAC;IAED;;OAEG;IACK,qBAAqB,CACzB,IAAY,EACZ,UAAe,EACf,KAAwB,EACxB,MAAiC,EACjC,SAAoC,EACpC,SAAgC,EAChC,UAAoB,EACpB,kBAA4B,EAC5B,mBAA6B,EAC7B,qBAA+B,EAC/B,uBAAiC,EACjC,iBAA2B;QAE3B,4EAA4E;QAC5E,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAuB,CAAC;YACxD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CACpC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACtF,OAAO;YACX,CAAC;QACL,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAwB,CAAC;YAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAkC,CACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CACrC,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvE,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACxF,OAAO;YACX,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7C,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;gBAClF,CAAC;gBAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,kBAAkB,sBAAsB,CAAC,CAAC;oBAClF,CAAC;oBAED,+BAA+B;oBAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;oBACpD,CAAC;oBAED,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,6BAA6B,CAC9B,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EACjE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,CACpE,CAAC;IACN,CAAC;IAED;;OAEG;IACK,6BAA6B,CACjC,IAAY,EACZ,UAAe,EACf,KAAwB,EACxB,MAAiC,EACjC,SAAoC,EACpC,SAAgC,EAChC,UAAoB,EACpB,qBAA+B,EAC/B,uBAAiC,EACjC,iBAA2B;QAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YAE9B,+BAA+B;YAC/B,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,iCAAiC;YACjC,IAAI,YAAY,GAAG,SAAS,CAAC;YAC7B,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7C,IAAI,kBAAkB,EAAE,CAAC;oBACrB,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACtG,IAAI,aAAa,EAAE,CAAC;wBAChB,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;wBACnC,gBAAgB,GAAG,kBAAkB,CAAC;oBAC1C,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,qBAAqB,CAAC,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kCAAkC,CACtC,MAAiC,EACjC,KAAwB,EACxB,QAAgB,EAChB,UAA6B;QAE7B,MAAM,iBAAiB,GAAG,UAAU;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB;QAE/E,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,KAAM,UAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,eAAe,aAAa,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC1B,KAAwB,EACxB,SAAoC;QAEpC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAwB;QAC9C,MAAM,UAAU,GAA8C,EAAE,CAAC;QAEjE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC9D,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,+CAA+C;oBAC/C,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7F,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,6BAA6B,CAAC,KAAkB;QACpD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC1E,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YAC5C,wEAAwE;YACxE,uDAAuD;YACvD,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
1
+ {"version":3,"file":"SqlParamInjector.js","sourceRoot":"","sources":["../../../../src/transformers/SqlParamInjector.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface TypeTransformationConfig {
13
13
  };
14
14
  /** Custom transformation functions */
15
15
  customTransformers?: {
16
- [transformerName: string]: (value: any) => any;
16
+ [transformerName: string]: (value: unknown) => unknown;
17
17
  };
18
18
  /** Enable value-based type detection when column mapping is not provided (default: true) */
19
19
  enableValueBasedDetection?: boolean;
@@ -30,7 +30,7 @@ export interface TypeTransformation {
30
30
  /** Whether to handle null values (default: true) */
31
31
  handleNull?: boolean;
32
32
  /** Validation function for the value */
33
- validator?: (value: any) => boolean;
33
+ validator?: (value: unknown) => boolean;
34
34
  }
35
35
  /**
36
36
  * Applies type transformations to JSON results from PostgreSQL
@@ -43,7 +43,7 @@ export declare class TypeTransformationPostProcessor {
43
43
  * @param result The result object from PostgreSQL JSON query
44
44
  * @returns Transformed result with proper TypeScript types
45
45
  */
46
- transformResult<T = any>(result: any): T;
46
+ transformResult<T = unknown>(result: unknown): T;
47
47
  /**
48
48
  * Transform a single object recursively
49
49
  */
@@ -88,7 +88,7 @@ export declare class TypeTransformationPostProcessor {
88
88
  /**
89
89
  * Convenience function to create and apply transformations
90
90
  */
91
- export declare function transformDatabaseResult<T = any>(result: any, config?: TypeTransformationConfig): T;
91
+ export declare function transformDatabaseResult<T = unknown>(result: unknown, config?: TypeTransformationConfig): T;
92
92
  /**
93
93
  * Type-safe transformation helpers
94
94
  */
@@ -104,5 +104,5 @@ export declare const TypeTransformers: {
104
104
  /**
105
105
  * Transform JSON string to object
106
106
  */
107
- toObject: <T = any>(value: string | null) => T | null;
107
+ toObject: <T = unknown>(value: string | null) => T | null;
108
108
  };