rawsql-ts 0.13.0 → 0.13.3

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 (1133) hide show
  1. package/dist/esm/formatters/OriginalFormatRestorer.js.map +1 -0
  2. package/dist/esm/index.d.ts +119 -0
  3. package/dist/esm/index.js +95 -91
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/index.min.js +10 -10
  6. package/dist/esm/index.min.js.map +4 -4
  7. package/dist/esm/models/BinarySelectQuery.js.map +1 -0
  8. package/dist/esm/models/CTEError.js.map +1 -0
  9. package/dist/esm/models/Clause.js.map +1 -0
  10. package/dist/esm/models/CreateTableQuery.js.map +1 -0
  11. package/dist/esm/models/DDLStatements.d.ts +290 -0
  12. package/dist/esm/models/DDLStatements.js +256 -0
  13. package/dist/esm/models/DDLStatements.js.map +1 -0
  14. package/dist/esm/models/DeleteQuery.js.map +1 -0
  15. package/dist/esm/models/HintClause.js.map +1 -0
  16. package/dist/esm/models/InsertQuery.js.map +1 -0
  17. package/dist/esm/models/KeywordTrie.js.map +1 -0
  18. package/dist/esm/models/Lexeme.js.map +1 -0
  19. package/dist/esm/models/MergeQuery.js.map +1 -0
  20. package/dist/esm/models/SelectQuery.js.map +1 -0
  21. package/dist/esm/models/SimpleSelectQuery.js.map +1 -0
  22. package/dist/esm/models/SqlComponent.js.map +1 -0
  23. package/dist/esm/models/SqlPrintToken.d.ts +148 -0
  24. package/dist/esm/models/SqlPrintToken.js +139 -0
  25. package/dist/esm/models/SqlPrintToken.js.map +1 -0
  26. package/dist/esm/models/TableDefinitionModel.d.ts +41 -0
  27. package/dist/esm/models/TableDefinitionModel.js +78 -0
  28. package/dist/esm/models/TableDefinitionModel.js.map +1 -0
  29. package/dist/esm/models/UpdateQuery.js.map +1 -0
  30. package/dist/esm/models/ValueComponent.d.ts +225 -0
  31. package/dist/esm/models/ValueComponent.js +349 -0
  32. package/dist/esm/models/ValueComponent.js.map +1 -0
  33. package/dist/esm/models/ValuesQuery.js.map +1 -0
  34. package/dist/esm/parsers/AlterTableParser.d.ts +26 -0
  35. package/dist/esm/parsers/AlterTableParser.js +486 -0
  36. package/dist/esm/parsers/AlterTableParser.js.map +1 -0
  37. package/dist/esm/parsers/AnalyzeStatementParser.js.map +1 -0
  38. package/dist/esm/parsers/CommandExpressionParser.js.map +1 -0
  39. package/dist/esm/parsers/CommonTableParser.js.map +1 -0
  40. package/dist/esm/parsers/CreateIndexParser.js.map +1 -0
  41. package/dist/esm/parsers/CreateTableParser.js.map +1 -0
  42. package/dist/esm/parsers/DeleteClauseParser.js.map +1 -0
  43. package/dist/esm/parsers/DeleteQueryParser.js.map +1 -0
  44. package/dist/esm/parsers/DropConstraintParser.js.map +1 -0
  45. package/dist/esm/parsers/DropIndexParser.js.map +1 -0
  46. package/dist/esm/parsers/DropTableParser.js.map +1 -0
  47. package/dist/esm/parsers/ExplainStatementParser.js.map +1 -0
  48. package/dist/esm/parsers/FetchClauseParser.js.map +1 -0
  49. package/dist/esm/parsers/ForClauseParser.js.map +1 -0
  50. package/dist/esm/parsers/FromClauseParser.js.map +1 -0
  51. package/dist/esm/parsers/FullNameParser.js.map +1 -0
  52. package/dist/esm/parsers/FunctionExpressionParser.d.ts +65 -0
  53. package/dist/esm/parsers/FunctionExpressionParser.js +520 -0
  54. package/dist/esm/parsers/FunctionExpressionParser.js.map +1 -0
  55. package/dist/esm/parsers/GroupByParser.js.map +1 -0
  56. package/dist/esm/parsers/HavingParser.js.map +1 -0
  57. package/dist/esm/parsers/IdentifierDecorator.js.map +1 -0
  58. package/dist/esm/parsers/IdentifierParser.js.map +1 -0
  59. package/dist/esm/parsers/InsertQueryParser.js.map +1 -0
  60. package/dist/esm/parsers/JoinClauseParser.js.map +1 -0
  61. package/dist/esm/parsers/JoinOnClauseParser.js.map +1 -0
  62. package/dist/esm/parsers/JoinUsingClauseParser.js.map +1 -0
  63. package/dist/esm/parsers/KeywordParser.js.map +1 -0
  64. package/dist/esm/parsers/LimitClauseParser.js.map +1 -0
  65. package/dist/esm/parsers/LiteralParser.js.map +1 -0
  66. package/dist/esm/parsers/MergeQueryParser.js.map +1 -0
  67. package/dist/esm/parsers/OffsetClauseParser.js.map +1 -0
  68. package/dist/esm/parsers/OrderByClauseParser.js.map +1 -0
  69. package/dist/esm/parsers/OverExpressionParser.js.map +1 -0
  70. package/dist/esm/parsers/ParameterDecorator.js.map +1 -0
  71. package/dist/esm/parsers/ParameterExpressionParser.js.map +1 -0
  72. package/dist/esm/parsers/ParenExpressionParser.js.map +1 -0
  73. package/dist/esm/parsers/ParseError.js.map +1 -0
  74. package/dist/esm/parsers/PartitionByParser.js.map +1 -0
  75. package/dist/esm/parsers/ReturningClauseParser.js.map +1 -0
  76. package/dist/esm/parsers/SelectClauseParser.js.map +1 -0
  77. package/dist/esm/parsers/SelectQueryParser.js.map +1 -0
  78. package/dist/esm/parsers/SequenceParser.d.ts +16 -0
  79. package/dist/esm/parsers/SequenceParser.js +240 -0
  80. package/dist/esm/parsers/SequenceParser.js.map +1 -0
  81. package/dist/esm/parsers/SetClauseParser.js.map +1 -0
  82. package/dist/esm/parsers/SourceAliasExpressionParser.js.map +1 -0
  83. package/dist/esm/parsers/SourceExpressionParser.js.map +1 -0
  84. package/dist/esm/parsers/SourceParser.js.map +1 -0
  85. package/dist/esm/parsers/SqlParser.d.ts +41 -0
  86. package/dist/esm/parsers/SqlParser.js +427 -0
  87. package/dist/esm/parsers/SqlParser.js.map +1 -0
  88. package/dist/esm/parsers/SqlPrintTokenParser.d.ts +320 -0
  89. package/dist/esm/parsers/SqlPrintTokenParser.js +3285 -0
  90. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -0
  91. package/dist/esm/parsers/SqlTokenizer.d.ts +124 -0
  92. package/dist/esm/parsers/SqlTokenizer.js +536 -0
  93. package/dist/esm/parsers/SqlTokenizer.js.map +1 -0
  94. package/dist/esm/parsers/StringSpecifierExpressionParser.js.map +1 -0
  95. package/dist/esm/parsers/UnaryExpressionParser.js.map +1 -0
  96. package/dist/esm/parsers/UpdateClauseParser.js.map +1 -0
  97. package/dist/esm/parsers/UpdateQueryParser.js.map +1 -0
  98. package/dist/esm/parsers/UsingClauseParser.js.map +1 -0
  99. package/dist/esm/parsers/ValueParser.js +558 -0
  100. package/dist/esm/parsers/ValueParser.js.map +1 -0
  101. package/dist/esm/parsers/ValuesQueryParser.js.map +1 -0
  102. package/dist/esm/parsers/WhereClauseParser.js.map +1 -0
  103. package/dist/esm/parsers/WindowClauseParser.js.map +1 -0
  104. package/dist/esm/parsers/WindowExpressionParser.js.map +1 -0
  105. package/dist/esm/parsers/WithClauseParser.js.map +1 -0
  106. package/dist/esm/parsers/utils/LexemeCommentUtils.js.map +1 -0
  107. package/dist/esm/reporting/models/DataFlowEdge.js.map +1 -0
  108. package/dist/esm/reporting/models/DataFlowGraph.js.map +1 -0
  109. package/dist/esm/reporting/models/DataFlowNode.js.map +1 -0
  110. package/dist/esm/reporting/services/CTEHandler.js.map +1 -0
  111. package/dist/esm/reporting/services/DataSourceHandler.js.map +1 -0
  112. package/dist/esm/reporting/services/JoinHandler.js.map +1 -0
  113. package/dist/esm/reporting/services/ProcessHandler.js.map +1 -0
  114. package/dist/esm/tokenReaders/BaseTokenReader.js.map +1 -0
  115. package/dist/esm/tokenReaders/CommandTokenReader.js +217 -0
  116. package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -0
  117. package/dist/esm/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
  118. package/dist/esm/tokenReaders/FunctionTokenReader.js.map +1 -0
  119. package/dist/esm/tokenReaders/IdentifierTokenReader.js.map +1 -0
  120. package/dist/esm/tokenReaders/LiteralTokenReader.js.map +1 -0
  121. package/dist/esm/tokenReaders/OperatorTokenReader.js.map +1 -0
  122. package/dist/esm/tokenReaders/ParameterTokenReader.js.map +1 -0
  123. package/dist/esm/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
  124. package/dist/esm/tokenReaders/SymbolTokenReader.js.map +1 -0
  125. package/dist/esm/tokenReaders/TokenReaderManager.js.map +1 -0
  126. package/dist/esm/tokenReaders/TypeTokenReader.js.map +1 -0
  127. package/dist/esm/transformers/AliasRenamer.js.map +1 -0
  128. package/dist/esm/transformers/CTEBuilder.js.map +1 -0
  129. package/dist/esm/transformers/CTECollector.js.map +1 -0
  130. package/dist/esm/transformers/CTEComposer.js.map +1 -0
  131. package/dist/esm/transformers/CTEDependencyAnalyzer.js.map +1 -0
  132. package/dist/esm/transformers/CTEDependencyTracer.js.map +1 -0
  133. package/dist/esm/transformers/CTEDisabler.js.map +1 -0
  134. package/dist/esm/transformers/CTEInjector.js.map +1 -0
  135. package/dist/esm/transformers/CTENormalizer.js.map +1 -0
  136. package/dist/esm/transformers/CTEQueryDecomposer.js.map +1 -0
  137. package/dist/esm/transformers/CTERenamer.js.map +1 -0
  138. package/dist/esm/transformers/CTETableReferenceCollector.js.map +1 -0
  139. package/dist/esm/transformers/ColumnReferenceCollector.js +474 -0
  140. package/dist/esm/transformers/ColumnReferenceCollector.js.map +1 -0
  141. package/dist/esm/transformers/DDLDiffGenerator.d.ts +18 -0
  142. package/dist/esm/transformers/DDLDiffGenerator.js +309 -0
  143. package/dist/esm/transformers/DDLDiffGenerator.js.map +1 -0
  144. package/dist/esm/transformers/DDLGeneralizer.js.map +1 -0
  145. package/dist/esm/transformers/DDLToFixtureConverter.js.map +1 -0
  146. package/dist/esm/transformers/DeleteResultSelectConverter.js +410 -0
  147. package/dist/esm/transformers/DeleteResultSelectConverter.js.map +1 -0
  148. package/dist/esm/transformers/DynamicQueryBuilder.js.map +1 -0
  149. package/dist/esm/transformers/EnhancedJsonMapping.js.map +1 -0
  150. package/dist/esm/transformers/FilterableItemCollector.js.map +1 -0
  151. package/dist/esm/transformers/FixtureCteBuilder.js.map +1 -0
  152. package/dist/esm/transformers/FormatOptionResolver.js.map +1 -0
  153. package/dist/esm/transformers/Formatter.js.map +1 -0
  154. package/dist/esm/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
  155. package/dist/esm/transformers/InsertResultSelectConverter.d.ts +67 -0
  156. package/dist/esm/transformers/InsertResultSelectConverter.js +585 -0
  157. package/dist/esm/transformers/InsertResultSelectConverter.js.map +1 -0
  158. package/dist/esm/transformers/JoinAggregationDecomposer.js.map +1 -0
  159. package/dist/esm/transformers/JsonMappingConverter.js.map +1 -0
  160. package/dist/esm/transformers/JsonMappingUnifier.js.map +1 -0
  161. package/dist/esm/transformers/LinePrinter.js.map +1 -0
  162. package/dist/esm/transformers/MergeResultSelectConverter.js.map +1 -0
  163. package/dist/esm/transformers/ModelDrivenJsonMapping.js.map +1 -0
  164. package/dist/esm/transformers/OnelineFormattingHelper.js.map +1 -0
  165. package/dist/esm/transformers/ParameterCollector.js.map +1 -0
  166. package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
  167. package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +1 -0
  168. package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
  169. package/dist/esm/transformers/QueryBuilder.js.map +1 -0
  170. package/dist/esm/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  171. package/dist/esm/transformers/SchemaCollector.js.map +1 -0
  172. package/dist/esm/transformers/SelectResultSelectConverter.js.map +1 -0
  173. package/dist/esm/transformers/SelectValueCollector.js.map +1 -0
  174. package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -0
  175. package/dist/esm/transformers/SimulatedSelectConverter.js.map +1 -0
  176. package/dist/esm/transformers/SmartRenamer.js.map +1 -0
  177. package/dist/esm/transformers/SqlFormatter.js.map +1 -0
  178. package/dist/esm/transformers/SqlIdentifierRenamer.js.map +1 -0
  179. package/dist/esm/transformers/SqlOutputToken.js.map +1 -0
  180. package/dist/esm/transformers/SqlPaginationInjector.js.map +1 -0
  181. package/dist/esm/transformers/SqlParamInjector.js.map +1 -0
  182. package/dist/esm/transformers/SqlParameterBinder.js.map +1 -0
  183. package/dist/esm/transformers/SqlPrinter.js +1474 -0
  184. package/dist/esm/transformers/SqlPrinter.js.map +1 -0
  185. package/dist/esm/transformers/SqlSortInjector.js.map +1 -0
  186. package/dist/esm/transformers/TableSourceCollector.js +435 -0
  187. package/dist/esm/transformers/TableSourceCollector.js.map +1 -0
  188. package/dist/esm/transformers/TypeTransformationPostProcessor.js.map +1 -0
  189. package/dist/esm/transformers/UpdateResultSelectConverter.js +355 -0
  190. package/dist/esm/transformers/UpdateResultSelectConverter.js.map +1 -0
  191. package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +1 -0
  192. package/dist/esm/types/GenericFixture.d.ts +17 -0
  193. package/dist/esm/types/GenericFixture.js +2 -0
  194. package/dist/esm/types/GenericFixture.js.map +1 -0
  195. package/dist/esm/utils/CTERegionDetector.js.map +1 -0
  196. package/dist/esm/utils/CommentEditor.js.map +1 -0
  197. package/dist/esm/utils/CommentUtils.js.map +1 -0
  198. package/dist/esm/utils/CursorContextAnalyzer.js.map +1 -0
  199. package/dist/esm/utils/IntelliSenseApi.js.map +1 -0
  200. package/dist/esm/utils/JsonSchemaValidator.js.map +1 -0
  201. package/dist/esm/utils/KeywordCache.js.map +1 -0
  202. package/dist/esm/utils/LexemeCursor.js.map +1 -0
  203. package/dist/esm/utils/MultiQuerySplitter.js.map +1 -0
  204. package/dist/esm/utils/OperatorPrecedence.js.map +1 -0
  205. package/dist/esm/utils/ParameterDetector.js.map +1 -0
  206. package/dist/esm/utils/ParameterHelper.js.map +1 -0
  207. package/dist/esm/utils/ParameterRemover.js +779 -0
  208. package/dist/esm/utils/ParameterRemover.js.map +1 -0
  209. package/dist/esm/utils/ParserStringUtils.js.map +1 -0
  210. package/dist/esm/utils/PositionAwareParser.js.map +1 -0
  211. package/dist/esm/utils/SchemaManager.js.map +1 -0
  212. package/dist/esm/utils/ScopeResolver.js.map +1 -0
  213. package/dist/esm/utils/SelectQueryWithClauseHelper.js.map +1 -0
  214. package/dist/esm/utils/SqlSchemaValidator.js.map +1 -0
  215. package/dist/esm/utils/TableNameUtils.d.ts +10 -0
  216. package/dist/esm/utils/TableNameUtils.js +30 -0
  217. package/dist/esm/utils/TableNameUtils.js.map +1 -0
  218. package/dist/esm/utils/TextPositionUtils.js.map +1 -0
  219. package/dist/esm/utils/ValueComponentRewriter.js +184 -0
  220. package/dist/esm/utils/ValueComponentRewriter.js.map +1 -0
  221. package/dist/esm/utils/charLookupTable.js.map +1 -0
  222. package/dist/esm/utils/stringUtils.js.map +1 -0
  223. package/dist/index.min.js +10 -10
  224. package/dist/index.min.js.map +4 -4
  225. package/dist/tsconfig.browser.tsbuildinfo +1 -0
  226. package/package.json +1 -1
  227. package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +0 -1
  228. package/dist/esm/src/index.d.ts +0 -116
  229. package/dist/esm/src/index.js +0 -111
  230. package/dist/esm/src/index.js.map +0 -1
  231. package/dist/esm/src/models/BinarySelectQuery.js.map +0 -1
  232. package/dist/esm/src/models/CTEError.js.map +0 -1
  233. package/dist/esm/src/models/Clause.js.map +0 -1
  234. package/dist/esm/src/models/CreateTableQuery.js.map +0 -1
  235. package/dist/esm/src/models/DDLStatements.d.ts +0 -207
  236. package/dist/esm/src/models/DDLStatements.js +0 -213
  237. package/dist/esm/src/models/DDLStatements.js.map +0 -1
  238. package/dist/esm/src/models/DeleteQuery.js.map +0 -1
  239. package/dist/esm/src/models/FormattingLexeme.js.map +0 -1
  240. package/dist/esm/src/models/HintClause.js.map +0 -1
  241. package/dist/esm/src/models/InsertQuery.js.map +0 -1
  242. package/dist/esm/src/models/KeywordTrie.js.map +0 -1
  243. package/dist/esm/src/models/Lexeme.js.map +0 -1
  244. package/dist/esm/src/models/MergeQuery.js.map +0 -1
  245. package/dist/esm/src/models/SelectQuery.js.map +0 -1
  246. package/dist/esm/src/models/SimpleSelectQuery.js.map +0 -1
  247. package/dist/esm/src/models/SqlComponent.js.map +0 -1
  248. package/dist/esm/src/models/SqlPrintToken.d.ts +0 -143
  249. package/dist/esm/src/models/SqlPrintToken.js +0 -134
  250. package/dist/esm/src/models/SqlPrintToken.js.map +0 -1
  251. package/dist/esm/src/models/TableDefinitionModel.d.ts +0 -39
  252. package/dist/esm/src/models/TableDefinitionModel.js +0 -77
  253. package/dist/esm/src/models/TableDefinitionModel.js.map +0 -1
  254. package/dist/esm/src/models/UpdateQuery.js.map +0 -1
  255. package/dist/esm/src/models/ValueComponent.d.ts +0 -224
  256. package/dist/esm/src/models/ValueComponent.js +0 -348
  257. package/dist/esm/src/models/ValueComponent.js.map +0 -1
  258. package/dist/esm/src/models/ValuesQuery.js.map +0 -1
  259. package/dist/esm/src/parsers/AlterTableParser.d.ts +0 -25
  260. package/dist/esm/src/parsers/AlterTableParser.js +0 -428
  261. package/dist/esm/src/parsers/AlterTableParser.js.map +0 -1
  262. package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +0 -1
  263. package/dist/esm/src/parsers/CommandExpressionParser.js.map +0 -1
  264. package/dist/esm/src/parsers/CommonTableParser.js.map +0 -1
  265. package/dist/esm/src/parsers/CreateIndexParser.js.map +0 -1
  266. package/dist/esm/src/parsers/CreateTableParser.js.map +0 -1
  267. package/dist/esm/src/parsers/DeleteClauseParser.js.map +0 -1
  268. package/dist/esm/src/parsers/DeleteQueryParser.js.map +0 -1
  269. package/dist/esm/src/parsers/DropConstraintParser.js.map +0 -1
  270. package/dist/esm/src/parsers/DropIndexParser.js.map +0 -1
  271. package/dist/esm/src/parsers/DropTableParser.js.map +0 -1
  272. package/dist/esm/src/parsers/ExplainStatementParser.js.map +0 -1
  273. package/dist/esm/src/parsers/FetchClauseParser.js.map +0 -1
  274. package/dist/esm/src/parsers/ForClauseParser.js.map +0 -1
  275. package/dist/esm/src/parsers/FromClauseParser.js.map +0 -1
  276. package/dist/esm/src/parsers/FullNameParser.js.map +0 -1
  277. package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +0 -64
  278. package/dist/esm/src/parsers/FunctionExpressionParser.js +0 -487
  279. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +0 -1
  280. package/dist/esm/src/parsers/GroupByParser.js.map +0 -1
  281. package/dist/esm/src/parsers/HavingParser.js.map +0 -1
  282. package/dist/esm/src/parsers/IdentifierDecorator.js.map +0 -1
  283. package/dist/esm/src/parsers/IdentifierParser.js.map +0 -1
  284. package/dist/esm/src/parsers/InsertQueryParser.js.map +0 -1
  285. package/dist/esm/src/parsers/JoinClauseParser.js.map +0 -1
  286. package/dist/esm/src/parsers/JoinOnClauseParser.js.map +0 -1
  287. package/dist/esm/src/parsers/JoinUsingClauseParser.js.map +0 -1
  288. package/dist/esm/src/parsers/KeywordParser.js.map +0 -1
  289. package/dist/esm/src/parsers/LimitClauseParser.js.map +0 -1
  290. package/dist/esm/src/parsers/LiteralParser.js.map +0 -1
  291. package/dist/esm/src/parsers/MergeQueryParser.js.map +0 -1
  292. package/dist/esm/src/parsers/OffsetClauseParser.js.map +0 -1
  293. package/dist/esm/src/parsers/OrderByClauseParser.js.map +0 -1
  294. package/dist/esm/src/parsers/OverExpressionParser.js.map +0 -1
  295. package/dist/esm/src/parsers/ParameterDecorator.js.map +0 -1
  296. package/dist/esm/src/parsers/ParameterExpressionParser.js.map +0 -1
  297. package/dist/esm/src/parsers/ParenExpressionParser.js.map +0 -1
  298. package/dist/esm/src/parsers/ParseError.js.map +0 -1
  299. package/dist/esm/src/parsers/PartitionByParser.js.map +0 -1
  300. package/dist/esm/src/parsers/ReturningClauseParser.js.map +0 -1
  301. package/dist/esm/src/parsers/SelectClauseParser.js.map +0 -1
  302. package/dist/esm/src/parsers/SelectQueryParser.js.map +0 -1
  303. package/dist/esm/src/parsers/SetClauseParser.js.map +0 -1
  304. package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +0 -1
  305. package/dist/esm/src/parsers/SourceExpressionParser.js.map +0 -1
  306. package/dist/esm/src/parsers/SourceParser.js.map +0 -1
  307. package/dist/esm/src/parsers/SqlParser.d.ts +0 -39
  308. package/dist/esm/src/parsers/SqlParser.js +0 -386
  309. package/dist/esm/src/parsers/SqlParser.js.map +0 -1
  310. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +0 -312
  311. package/dist/esm/src/parsers/SqlPrintTokenParser.js +0 -3076
  312. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +0 -1
  313. package/dist/esm/src/parsers/SqlTokenizer.d.ts +0 -123
  314. package/dist/esm/src/parsers/SqlTokenizer.js +0 -503
  315. package/dist/esm/src/parsers/SqlTokenizer.js.map +0 -1
  316. package/dist/esm/src/parsers/StringSpecifierExpressionParser.js.map +0 -1
  317. package/dist/esm/src/parsers/UnaryExpressionParser.js.map +0 -1
  318. package/dist/esm/src/parsers/UpdateClauseParser.js.map +0 -1
  319. package/dist/esm/src/parsers/UpdateQueryParser.js.map +0 -1
  320. package/dist/esm/src/parsers/UsingClauseParser.js.map +0 -1
  321. package/dist/esm/src/parsers/ValueParser.js +0 -531
  322. package/dist/esm/src/parsers/ValueParser.js.map +0 -1
  323. package/dist/esm/src/parsers/ValuesQueryParser.js.map +0 -1
  324. package/dist/esm/src/parsers/WhereClauseParser.js.map +0 -1
  325. package/dist/esm/src/parsers/WindowClauseParser.js.map +0 -1
  326. package/dist/esm/src/parsers/WindowExpressionParser.js.map +0 -1
  327. package/dist/esm/src/parsers/WithClauseParser.js.map +0 -1
  328. package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +0 -1
  329. package/dist/esm/src/reporting/models/DataFlowEdge.js.map +0 -1
  330. package/dist/esm/src/reporting/models/DataFlowGraph.js.map +0 -1
  331. package/dist/esm/src/reporting/models/DataFlowNode.js.map +0 -1
  332. package/dist/esm/src/reporting/services/CTEHandler.js.map +0 -1
  333. package/dist/esm/src/reporting/services/DataSourceHandler.js.map +0 -1
  334. package/dist/esm/src/reporting/services/JoinHandler.js.map +0 -1
  335. package/dist/esm/src/reporting/services/ProcessHandler.js.map +0 -1
  336. package/dist/esm/src/tokenReaders/BaseTokenReader.js.map +0 -1
  337. package/dist/esm/src/tokenReaders/CommandTokenReader.js +0 -212
  338. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +0 -1
  339. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js.map +0 -1
  340. package/dist/esm/src/tokenReaders/FunctionTokenReader.js.map +0 -1
  341. package/dist/esm/src/tokenReaders/IdentifierTokenReader.js.map +0 -1
  342. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +0 -1
  343. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +0 -1
  344. package/dist/esm/src/tokenReaders/ParameterTokenReader.js.map +0 -1
  345. package/dist/esm/src/tokenReaders/StringSpecifierTokenReader.js.map +0 -1
  346. package/dist/esm/src/tokenReaders/SymbolTokenReader.js.map +0 -1
  347. package/dist/esm/src/tokenReaders/TokenReaderManager.js.map +0 -1
  348. package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +0 -1
  349. package/dist/esm/src/transformers/AliasRenamer.js.map +0 -1
  350. package/dist/esm/src/transformers/CTEBuilder.js.map +0 -1
  351. package/dist/esm/src/transformers/CTECollector.js.map +0 -1
  352. package/dist/esm/src/transformers/CTEComposer.js.map +0 -1
  353. package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +0 -1
  354. package/dist/esm/src/transformers/CTEDependencyTracer.js.map +0 -1
  355. package/dist/esm/src/transformers/CTEDisabler.js.map +0 -1
  356. package/dist/esm/src/transformers/CTEInjector.js.map +0 -1
  357. package/dist/esm/src/transformers/CTENormalizer.js.map +0 -1
  358. package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +0 -1
  359. package/dist/esm/src/transformers/CTERenamer.js.map +0 -1
  360. package/dist/esm/src/transformers/CTETableReferenceCollector.js.map +0 -1
  361. package/dist/esm/src/transformers/ColumnReferenceCollector.js +0 -464
  362. package/dist/esm/src/transformers/ColumnReferenceCollector.js.map +0 -1
  363. package/dist/esm/src/transformers/DDLDiffGenerator.d.ts +0 -14
  364. package/dist/esm/src/transformers/DDLDiffGenerator.js +0 -197
  365. package/dist/esm/src/transformers/DDLDiffGenerator.js.map +0 -1
  366. package/dist/esm/src/transformers/DDLGeneralizer.js.map +0 -1
  367. package/dist/esm/src/transformers/DDLToFixtureConverter.js.map +0 -1
  368. package/dist/esm/src/transformers/DeleteResultSelectConverter.js +0 -394
  369. package/dist/esm/src/transformers/DeleteResultSelectConverter.js.map +0 -1
  370. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +0 -1
  371. package/dist/esm/src/transformers/EnhancedJsonMapping.js.map +0 -1
  372. package/dist/esm/src/transformers/FilterableItemCollector.js.map +0 -1
  373. package/dist/esm/src/transformers/FixtureCteBuilder.js.map +0 -1
  374. package/dist/esm/src/transformers/FormatOptionResolver.js.map +0 -1
  375. package/dist/esm/src/transformers/Formatter.js.map +0 -1
  376. package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +0 -1
  377. package/dist/esm/src/transformers/InsertResultSelectConverter.d.ts +0 -64
  378. package/dist/esm/src/transformers/InsertResultSelectConverter.js +0 -495
  379. package/dist/esm/src/transformers/InsertResultSelectConverter.js.map +0 -1
  380. package/dist/esm/src/transformers/JoinAggregationDecomposer.js.map +0 -1
  381. package/dist/esm/src/transformers/JsonMappingConverter.js.map +0 -1
  382. package/dist/esm/src/transformers/JsonMappingUnifier.js.map +0 -1
  383. package/dist/esm/src/transformers/LinePrinter.js.map +0 -1
  384. package/dist/esm/src/transformers/MergeResultSelectConverter.js.map +0 -1
  385. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +0 -1
  386. package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +0 -1
  387. package/dist/esm/src/transformers/ParameterCollector.js.map +0 -1
  388. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
  389. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +0 -1
  390. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
  391. package/dist/esm/src/transformers/QueryBuilder.js.map +0 -1
  392. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +0 -1
  393. package/dist/esm/src/transformers/SchemaCollector.js.map +0 -1
  394. package/dist/esm/src/transformers/SelectResultSelectConverter.js.map +0 -1
  395. package/dist/esm/src/transformers/SelectValueCollector.js.map +0 -1
  396. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +0 -1
  397. package/dist/esm/src/transformers/SimulatedSelectConverter.js.map +0 -1
  398. package/dist/esm/src/transformers/SmartRenamer.js.map +0 -1
  399. package/dist/esm/src/transformers/SqlFormatter.js.map +0 -1
  400. package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +0 -1
  401. package/dist/esm/src/transformers/SqlOutputToken.js.map +0 -1
  402. package/dist/esm/src/transformers/SqlPaginationInjector.js.map +0 -1
  403. package/dist/esm/src/transformers/SqlParamInjector.js.map +0 -1
  404. package/dist/esm/src/transformers/SqlParameterBinder.js.map +0 -1
  405. package/dist/esm/src/transformers/SqlPrinter.js +0 -1473
  406. package/dist/esm/src/transformers/SqlPrinter.js.map +0 -1
  407. package/dist/esm/src/transformers/SqlSortInjector.js.map +0 -1
  408. package/dist/esm/src/transformers/TableColumnResolver.js.map +0 -1
  409. package/dist/esm/src/transformers/TableSourceCollector.js +0 -431
  410. package/dist/esm/src/transformers/TableSourceCollector.js.map +0 -1
  411. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +0 -1
  412. package/dist/esm/src/transformers/UpdateResultSelectConverter.js +0 -340
  413. package/dist/esm/src/transformers/UpdateResultSelectConverter.js.map +0 -1
  414. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +0 -1
  415. package/dist/esm/src/types/Formatting.js.map +0 -1
  416. package/dist/esm/src/utils/CTERegionDetector.js.map +0 -1
  417. package/dist/esm/src/utils/CommentEditor.js.map +0 -1
  418. package/dist/esm/src/utils/CommentUtils.js.map +0 -1
  419. package/dist/esm/src/utils/CursorContextAnalyzer.js.map +0 -1
  420. package/dist/esm/src/utils/IntelliSenseApi.js.map +0 -1
  421. package/dist/esm/src/utils/JsonSchemaValidator.js.map +0 -1
  422. package/dist/esm/src/utils/KeywordCache.js.map +0 -1
  423. package/dist/esm/src/utils/LexemeCursor.js.map +0 -1
  424. package/dist/esm/src/utils/MultiQuerySplitter.js.map +0 -1
  425. package/dist/esm/src/utils/OperatorPrecedence.js.map +0 -1
  426. package/dist/esm/src/utils/ParameterDetector.js.map +0 -1
  427. package/dist/esm/src/utils/ParameterHelper.js.map +0 -1
  428. package/dist/esm/src/utils/ParameterRemover.js +0 -777
  429. package/dist/esm/src/utils/ParameterRemover.js.map +0 -1
  430. package/dist/esm/src/utils/ParserStringUtils.js.map +0 -1
  431. package/dist/esm/src/utils/PositionAwareParser.js.map +0 -1
  432. package/dist/esm/src/utils/SchemaManager.js.map +0 -1
  433. package/dist/esm/src/utils/ScopeResolver.js.map +0 -1
  434. package/dist/esm/src/utils/SelectQueryWithClauseHelper.js.map +0 -1
  435. package/dist/esm/src/utils/SqlSchemaValidator.js.map +0 -1
  436. package/dist/esm/src/utils/TextPositionUtils.js.map +0 -1
  437. package/dist/esm/src/utils/ValueComponentRewriter.js +0 -180
  438. package/dist/esm/src/utils/ValueComponentRewriter.js.map +0 -1
  439. package/dist/esm/src/utils/charLookupTable.js.map +0 -1
  440. package/dist/esm/src/utils/stringUtils.js.map +0 -1
  441. package/dist/esm/tsconfig.browser.tsbuildinfo +0 -1
  442. package/dist/src/formatters/OriginalFormatRestorer.js +0 -139
  443. package/dist/src/formatters/OriginalFormatRestorer.js.map +0 -1
  444. package/dist/src/index.js +0 -138
  445. package/dist/src/index.js.map +0 -1
  446. package/dist/src/models/BinarySelectQuery.js +0 -198
  447. package/dist/src/models/BinarySelectQuery.js.map +0 -1
  448. package/dist/src/models/CTEError.js +0 -37
  449. package/dist/src/models/CTEError.js.map +0 -1
  450. package/dist/src/models/Clause.js +0 -535
  451. package/dist/src/models/Clause.js.map +0 -1
  452. package/dist/src/models/CreateTableQuery.js +0 -135
  453. package/dist/src/models/CreateTableQuery.js.map +0 -1
  454. package/dist/src/models/DDLStatements.js +0 -229
  455. package/dist/src/models/DDLStatements.js.map +0 -1
  456. package/dist/src/models/DeleteQuery.js +0 -20
  457. package/dist/src/models/DeleteQuery.js.map +0 -1
  458. package/dist/src/models/FormattingLexeme.js +0 -3
  459. package/dist/src/models/HintClause.js +0 -41
  460. package/dist/src/models/HintClause.js.map +0 -1
  461. package/dist/src/models/InsertQuery.js +0 -23
  462. package/dist/src/models/InsertQuery.js.map +0 -1
  463. package/dist/src/models/KeywordTrie.js +0 -54
  464. package/dist/src/models/KeywordTrie.js.map +0 -1
  465. package/dist/src/models/Lexeme.js +0 -22
  466. package/dist/src/models/Lexeme.js.map +0 -1
  467. package/dist/src/models/MergeQuery.js +0 -104
  468. package/dist/src/models/MergeQuery.js.map +0 -1
  469. package/dist/src/models/SelectQuery.js +0 -22
  470. package/dist/src/models/SelectQuery.js.map +0 -1
  471. package/dist/src/models/SimpleSelectQuery.js +0 -648
  472. package/dist/src/models/SimpleSelectQuery.js.map +0 -1
  473. package/dist/src/models/SqlComponent.js +0 -73
  474. package/dist/src/models/SqlComponent.js.map +0 -1
  475. package/dist/src/models/SqlPrintToken.js +0 -138
  476. package/dist/src/models/SqlPrintToken.js.map +0 -1
  477. package/dist/src/models/TableDefinitionModel.js +0 -85
  478. package/dist/src/models/TableDefinitionModel.js.map +0 -1
  479. package/dist/src/models/UpdateQuery.js +0 -29
  480. package/dist/src/models/UpdateQuery.js.map +0 -1
  481. package/dist/src/models/ValueComponent.js +0 -379
  482. package/dist/src/models/ValueComponent.js.map +0 -1
  483. package/dist/src/models/ValuesQuery.js +0 -62
  484. package/dist/src/models/ValuesQuery.js.map +0 -1
  485. package/dist/src/parsers/AlterTableParser.js +0 -453
  486. package/dist/src/parsers/AlterTableParser.js.map +0 -1
  487. package/dist/src/parsers/AnalyzeStatementParser.js +0 -94
  488. package/dist/src/parsers/AnalyzeStatementParser.js.map +0 -1
  489. package/dist/src/parsers/CommandExpressionParser.js +0 -213
  490. package/dist/src/parsers/CommandExpressionParser.js.map +0 -1
  491. package/dist/src/parsers/CommonTableParser.js +0 -177
  492. package/dist/src/parsers/CommonTableParser.js.map +0 -1
  493. package/dist/src/parsers/CreateIndexParser.js +0 -241
  494. package/dist/src/parsers/CreateIndexParser.js.map +0 -1
  495. package/dist/src/parsers/CreateTableParser.js +0 -738
  496. package/dist/src/parsers/CreateTableParser.js.map +0 -1
  497. package/dist/src/parsers/DeleteClauseParser.js +0 -37
  498. package/dist/src/parsers/DeleteClauseParser.js.map +0 -1
  499. package/dist/src/parsers/DeleteQueryParser.js +0 -77
  500. package/dist/src/parsers/DeleteQueryParser.js.map +0 -1
  501. package/dist/src/parsers/DropConstraintParser.js +0 -51
  502. package/dist/src/parsers/DropConstraintParser.js.map +0 -1
  503. package/dist/src/parsers/DropIndexParser.js +0 -73
  504. package/dist/src/parsers/DropIndexParser.js.map +0 -1
  505. package/dist/src/parsers/DropTableParser.js +0 -63
  506. package/dist/src/parsers/DropTableParser.js.map +0 -1
  507. package/dist/src/parsers/ExplainStatementParser.js +0 -189
  508. package/dist/src/parsers/ExplainStatementParser.js.map +0 -1
  509. package/dist/src/parsers/FetchClauseParser.js +0 -89
  510. package/dist/src/parsers/FetchClauseParser.js.map +0 -1
  511. package/dist/src/parsers/ForClauseParser.js +0 -58
  512. package/dist/src/parsers/ForClauseParser.js.map +0 -1
  513. package/dist/src/parsers/FromClauseParser.js +0 -54
  514. package/dist/src/parsers/FromClauseParser.js.map +0 -1
  515. package/dist/src/parsers/FullNameParser.js +0 -110
  516. package/dist/src/parsers/FullNameParser.js.map +0 -1
  517. package/dist/src/parsers/FunctionExpressionParser.js +0 -491
  518. package/dist/src/parsers/FunctionExpressionParser.js.map +0 -1
  519. package/dist/src/parsers/GroupByParser.js +0 -58
  520. package/dist/src/parsers/GroupByParser.js.map +0 -1
  521. package/dist/src/parsers/HavingParser.js +0 -36
  522. package/dist/src/parsers/HavingParser.js.map +0 -1
  523. package/dist/src/parsers/IdentifierDecorator.js +0 -17
  524. package/dist/src/parsers/IdentifierDecorator.js.map +0 -1
  525. package/dist/src/parsers/IdentifierParser.js +0 -15
  526. package/dist/src/parsers/IdentifierParser.js.map +0 -1
  527. package/dist/src/parsers/InsertQueryParser.js +0 -162
  528. package/dist/src/parsers/InsertQueryParser.js.map +0 -1
  529. package/dist/src/parsers/JoinClauseParser.js +0 -117
  530. package/dist/src/parsers/JoinClauseParser.js.map +0 -1
  531. package/dist/src/parsers/JoinOnClauseParser.js +0 -21
  532. package/dist/src/parsers/JoinOnClauseParser.js.map +0 -1
  533. package/dist/src/parsers/JoinUsingClauseParser.js +0 -23
  534. package/dist/src/parsers/JoinUsingClauseParser.js.map +0 -1
  535. package/dist/src/parsers/KeywordParser.js +0 -99
  536. package/dist/src/parsers/KeywordParser.js.map +0 -1
  537. package/dist/src/parsers/LimitClauseParser.js +0 -38
  538. package/dist/src/parsers/LimitClauseParser.js.map +0 -1
  539. package/dist/src/parsers/LiteralParser.js +0 -48
  540. package/dist/src/parsers/LiteralParser.js.map +0 -1
  541. package/dist/src/parsers/MergeQueryParser.js +0 -483
  542. package/dist/src/parsers/MergeQueryParser.js.map +0 -1
  543. package/dist/src/parsers/OffsetClauseParser.js +0 -42
  544. package/dist/src/parsers/OffsetClauseParser.js.map +0 -1
  545. package/dist/src/parsers/OrderByClauseParser.js +0 -108
  546. package/dist/src/parsers/OrderByClauseParser.js.map +0 -1
  547. package/dist/src/parsers/OverExpressionParser.js +0 -44
  548. package/dist/src/parsers/OverExpressionParser.js.map +0 -1
  549. package/dist/src/parsers/ParameterDecorator.js +0 -40
  550. package/dist/src/parsers/ParameterDecorator.js.map +0 -1
  551. package/dist/src/parsers/ParameterExpressionParser.js +0 -24
  552. package/dist/src/parsers/ParameterExpressionParser.js.map +0 -1
  553. package/dist/src/parsers/ParenExpressionParser.js +0 -109
  554. package/dist/src/parsers/ParenExpressionParser.js.map +0 -1
  555. package/dist/src/parsers/ParseError.js +0 -25
  556. package/dist/src/parsers/ParseError.js.map +0 -1
  557. package/dist/src/parsers/PartitionByParser.js +0 -53
  558. package/dist/src/parsers/PartitionByParser.js.map +0 -1
  559. package/dist/src/parsers/ReturningClauseParser.js +0 -64
  560. package/dist/src/parsers/ReturningClauseParser.js.map +0 -1
  561. package/dist/src/parsers/SelectClauseParser.js +0 -244
  562. package/dist/src/parsers/SelectClauseParser.js.map +0 -1
  563. package/dist/src/parsers/SelectQueryParser.js +0 -564
  564. package/dist/src/parsers/SelectQueryParser.js.map +0 -1
  565. package/dist/src/parsers/SetClauseParser.js +0 -125
  566. package/dist/src/parsers/SetClauseParser.js.map +0 -1
  567. package/dist/src/parsers/SourceAliasExpressionParser.js +0 -60
  568. package/dist/src/parsers/SourceAliasExpressionParser.js.map +0 -1
  569. package/dist/src/parsers/SourceExpressionParser.js +0 -69
  570. package/dist/src/parsers/SourceExpressionParser.js.map +0 -1
  571. package/dist/src/parsers/SourceParser.js +0 -144
  572. package/dist/src/parsers/SourceParser.js.map +0 -1
  573. package/dist/src/parsers/SqlParser.js +0 -390
  574. package/dist/src/parsers/SqlParser.js.map +0 -1
  575. package/dist/src/parsers/SqlPrintTokenParser.js +0 -3080
  576. package/dist/src/parsers/SqlPrintTokenParser.js.map +0 -1
  577. package/dist/src/parsers/SqlTokenizer.js +0 -520
  578. package/dist/src/parsers/SqlTokenizer.js.map +0 -1
  579. package/dist/src/parsers/StringSpecifierExpressionParser.js +0 -22
  580. package/dist/src/parsers/StringSpecifierExpressionParser.js.map +0 -1
  581. package/dist/src/parsers/UnaryExpressionParser.js +0 -39
  582. package/dist/src/parsers/UnaryExpressionParser.js.map +0 -1
  583. package/dist/src/parsers/UpdateClauseParser.js +0 -21
  584. package/dist/src/parsers/UpdateClauseParser.js.map +0 -1
  585. package/dist/src/parsers/UpdateQueryParser.js +0 -98
  586. package/dist/src/parsers/UpdateQueryParser.js.map +0 -1
  587. package/dist/src/parsers/UsingClauseParser.js +0 -33
  588. package/dist/src/parsers/UsingClauseParser.js.map +0 -1
  589. package/dist/src/parsers/ValueParser.js +0 -535
  590. package/dist/src/parsers/ValueParser.js.map +0 -1
  591. package/dist/src/parsers/ValuesQueryParser.js +0 -112
  592. package/dist/src/parsers/ValuesQueryParser.js.map +0 -1
  593. package/dist/src/parsers/WhereClauseParser.js +0 -51
  594. package/dist/src/parsers/WhereClauseParser.js.map +0 -1
  595. package/dist/src/parsers/WindowClauseParser.js +0 -57
  596. package/dist/src/parsers/WindowClauseParser.js.map +0 -1
  597. package/dist/src/parsers/WindowExpressionParser.js +0 -163
  598. package/dist/src/parsers/WindowExpressionParser.js.map +0 -1
  599. package/dist/src/parsers/WithClauseParser.js +0 -165
  600. package/dist/src/parsers/WithClauseParser.js.map +0 -1
  601. package/dist/src/parsers/utils/LexemeCommentUtils.js +0 -29
  602. package/dist/src/parsers/utils/LexemeCommentUtils.js.map +0 -1
  603. package/dist/src/reporting/models/DataFlowEdge.js +0 -58
  604. package/dist/src/reporting/models/DataFlowEdge.js.map +0 -1
  605. package/dist/src/reporting/models/DataFlowGraph.js +0 -138
  606. package/dist/src/reporting/models/DataFlowGraph.js.map +0 -1
  607. package/dist/src/reporting/models/DataFlowNode.js +0 -148
  608. package/dist/src/reporting/models/DataFlowNode.js.map +0 -1
  609. package/dist/src/reporting/services/CTEHandler.js +0 -58
  610. package/dist/src/reporting/services/CTEHandler.js.map +0 -1
  611. package/dist/src/reporting/services/DataSourceHandler.js +0 -95
  612. package/dist/src/reporting/services/DataSourceHandler.js.map +0 -1
  613. package/dist/src/reporting/services/JoinHandler.js +0 -84
  614. package/dist/src/reporting/services/JoinHandler.js.map +0 -1
  615. package/dist/src/reporting/services/ProcessHandler.js +0 -26
  616. package/dist/src/reporting/services/ProcessHandler.js.map +0 -1
  617. package/dist/src/tokenReaders/BaseTokenReader.js +0 -86
  618. package/dist/src/tokenReaders/BaseTokenReader.js.map +0 -1
  619. package/dist/src/tokenReaders/CommandTokenReader.js +0 -216
  620. package/dist/src/tokenReaders/CommandTokenReader.js.map +0 -1
  621. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js +0 -99
  622. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js.map +0 -1
  623. package/dist/src/tokenReaders/FunctionTokenReader.js +0 -47
  624. package/dist/src/tokenReaders/FunctionTokenReader.js.map +0 -1
  625. package/dist/src/tokenReaders/IdentifierTokenReader.js +0 -34
  626. package/dist/src/tokenReaders/IdentifierTokenReader.js.map +0 -1
  627. package/dist/src/tokenReaders/LiteralTokenReader.js +0 -329
  628. package/dist/src/tokenReaders/LiteralTokenReader.js.map +0 -1
  629. package/dist/src/tokenReaders/OperatorTokenReader.js +0 -152
  630. package/dist/src/tokenReaders/OperatorTokenReader.js.map +0 -1
  631. package/dist/src/tokenReaders/ParameterTokenReader.js +0 -190
  632. package/dist/src/tokenReaders/ParameterTokenReader.js.map +0 -1
  633. package/dist/src/tokenReaders/StringSpecifierTokenReader.js +0 -31
  634. package/dist/src/tokenReaders/StringSpecifierTokenReader.js.map +0 -1
  635. package/dist/src/tokenReaders/SymbolTokenReader.js +0 -35
  636. package/dist/src/tokenReaders/SymbolTokenReader.js.map +0 -1
  637. package/dist/src/tokenReaders/TokenReaderManager.js +0 -110
  638. package/dist/src/tokenReaders/TokenReaderManager.js.map +0 -1
  639. package/dist/src/tokenReaders/TypeTokenReader.js +0 -69
  640. package/dist/src/tokenReaders/TypeTokenReader.js.map +0 -1
  641. package/dist/src/transformers/AliasRenamer.js +0 -600
  642. package/dist/src/transformers/AliasRenamer.js.map +0 -1
  643. package/dist/src/transformers/CTEBuilder.js +0 -188
  644. package/dist/src/transformers/CTEBuilder.js.map +0 -1
  645. package/dist/src/transformers/CTECollector.js +0 -409
  646. package/dist/src/transformers/CTECollector.js.map +0 -1
  647. package/dist/src/transformers/CTEComposer.js +0 -302
  648. package/dist/src/transformers/CTEComposer.js.map +0 -1
  649. package/dist/src/transformers/CTEDependencyAnalyzer.js +0 -285
  650. package/dist/src/transformers/CTEDependencyAnalyzer.js.map +0 -1
  651. package/dist/src/transformers/CTEDependencyTracer.js +0 -253
  652. package/dist/src/transformers/CTEDependencyTracer.js.map +0 -1
  653. package/dist/src/transformers/CTEDisabler.js +0 -355
  654. package/dist/src/transformers/CTEDisabler.js.map +0 -1
  655. package/dist/src/transformers/CTEInjector.js +0 -83
  656. package/dist/src/transformers/CTEInjector.js.map +0 -1
  657. package/dist/src/transformers/CTENormalizer.js +0 -46
  658. package/dist/src/transformers/CTENormalizer.js.map +0 -1
  659. package/dist/src/transformers/CTEQueryDecomposer.js +0 -589
  660. package/dist/src/transformers/CTEQueryDecomposer.js.map +0 -1
  661. package/dist/src/transformers/CTERenamer.js +0 -486
  662. package/dist/src/transformers/CTERenamer.js.map +0 -1
  663. package/dist/src/transformers/CTETableReferenceCollector.js +0 -358
  664. package/dist/src/transformers/CTETableReferenceCollector.js.map +0 -1
  665. package/dist/src/transformers/ColumnReferenceCollector.js +0 -468
  666. package/dist/src/transformers/ColumnReferenceCollector.js.map +0 -1
  667. package/dist/src/transformers/DDLDiffGenerator.js +0 -313
  668. package/dist/src/transformers/DDLDiffGenerator.js.map +0 -1
  669. package/dist/src/transformers/DDLGeneralizer.js +0 -119
  670. package/dist/src/transformers/DDLGeneralizer.js.map +0 -1
  671. package/dist/src/transformers/DDLToFixtureConverter.js +0 -206
  672. package/dist/src/transformers/DDLToFixtureConverter.js.map +0 -1
  673. package/dist/src/transformers/DeleteResultSelectConverter.js +0 -398
  674. package/dist/src/transformers/DeleteResultSelectConverter.js.map +0 -1
  675. package/dist/src/transformers/DynamicQueryBuilder.js +0 -164
  676. package/dist/src/transformers/DynamicQueryBuilder.js.map +0 -1
  677. package/dist/src/transformers/EnhancedJsonMapping.js +0 -223
  678. package/dist/src/transformers/EnhancedJsonMapping.js.map +0 -1
  679. package/dist/src/transformers/FilterableItemCollector.js +0 -259
  680. package/dist/src/transformers/FilterableItemCollector.js.map +0 -1
  681. package/dist/src/transformers/FixtureCteBuilder.js +0 -151
  682. package/dist/src/transformers/FixtureCteBuilder.js.map +0 -1
  683. package/dist/src/transformers/FormatOptionResolver.js +0 -67
  684. package/dist/src/transformers/FormatOptionResolver.js.map +0 -1
  685. package/dist/src/transformers/Formatter.js +0 -38
  686. package/dist/src/transformers/Formatter.js.map +0 -1
  687. package/dist/src/transformers/InsertQuerySelectValuesConverter.js +0 -125
  688. package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +0 -1
  689. package/dist/src/transformers/InsertResultSelectConverter.js +0 -499
  690. package/dist/src/transformers/InsertResultSelectConverter.js.map +0 -1
  691. package/dist/src/transformers/JoinAggregationDecomposer.js +0 -497
  692. package/dist/src/transformers/JoinAggregationDecomposer.js.map +0 -1
  693. package/dist/src/transformers/JsonMappingConverter.js +0 -392
  694. package/dist/src/transformers/JsonMappingConverter.js.map +0 -1
  695. package/dist/src/transformers/JsonMappingUnifier.js +0 -216
  696. package/dist/src/transformers/JsonMappingUnifier.js.map +0 -1
  697. package/dist/src/transformers/LinePrinter.js +0 -148
  698. package/dist/src/transformers/LinePrinter.js.map +0 -1
  699. package/dist/src/transformers/MergeResultSelectConverter.js +0 -310
  700. package/dist/src/transformers/MergeResultSelectConverter.js.map +0 -1
  701. package/dist/src/transformers/ModelDrivenJsonMapping.js +0 -122
  702. package/dist/src/transformers/ModelDrivenJsonMapping.js.map +0 -1
  703. package/dist/src/transformers/OnelineFormattingHelper.js +0 -99
  704. package/dist/src/transformers/OnelineFormattingHelper.js.map +0 -1
  705. package/dist/src/transformers/ParameterCollector.js +0 -37
  706. package/dist/src/transformers/ParameterCollector.js.map +0 -1
  707. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +0 -458
  708. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
  709. package/dist/src/transformers/PostgresJsonQueryBuilder.js +0 -245
  710. package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +0 -1
  711. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +0 -347
  712. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
  713. package/dist/src/transformers/QueryBuilder.js +0 -649
  714. package/dist/src/transformers/QueryBuilder.js.map +0 -1
  715. package/dist/src/transformers/QueryFlowDiagramGenerator.js +0 -157
  716. package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +0 -1
  717. package/dist/src/transformers/SchemaCollector.js +0 -523
  718. package/dist/src/transformers/SchemaCollector.js.map +0 -1
  719. package/dist/src/transformers/SelectResultSelectConverter.js +0 -36
  720. package/dist/src/transformers/SelectResultSelectConverter.js.map +0 -1
  721. package/dist/src/transformers/SelectValueCollector.js +0 -244
  722. package/dist/src/transformers/SelectValueCollector.js.map +0 -1
  723. package/dist/src/transformers/SelectableColumnCollector.js +0 -674
  724. package/dist/src/transformers/SelectableColumnCollector.js.map +0 -1
  725. package/dist/src/transformers/SimulatedSelectConverter.js +0 -65
  726. package/dist/src/transformers/SimulatedSelectConverter.js.map +0 -1
  727. package/dist/src/transformers/SmartRenamer.js +0 -422
  728. package/dist/src/transformers/SmartRenamer.js.map +0 -1
  729. package/dist/src/transformers/SqlFormatter.js +0 -77
  730. package/dist/src/transformers/SqlFormatter.js.map +0 -1
  731. package/dist/src/transformers/SqlIdentifierRenamer.js +0 -504
  732. package/dist/src/transformers/SqlIdentifierRenamer.js.map +0 -1
  733. package/dist/src/transformers/SqlOutputToken.js +0 -13
  734. package/dist/src/transformers/SqlOutputToken.js.map +0 -1
  735. package/dist/src/transformers/SqlPaginationInjector.js +0 -108
  736. package/dist/src/transformers/SqlPaginationInjector.js.map +0 -1
  737. package/dist/src/transformers/SqlParamInjector.js +0 -802
  738. package/dist/src/transformers/SqlParamInjector.js.map +0 -1
  739. package/dist/src/transformers/SqlParameterBinder.js +0 -70
  740. package/dist/src/transformers/SqlParameterBinder.js.map +0 -1
  741. package/dist/src/transformers/SqlPrinter.js +0 -1477
  742. package/dist/src/transformers/SqlPrinter.js.map +0 -1
  743. package/dist/src/transformers/SqlSortInjector.js +0 -153
  744. package/dist/src/transformers/SqlSortInjector.js.map +0 -1
  745. package/dist/src/transformers/TableColumnResolver.js +0 -3
  746. package/dist/src/transformers/TableSourceCollector.js +0 -435
  747. package/dist/src/transformers/TableSourceCollector.js.map +0 -1
  748. package/dist/src/transformers/TypeTransformationPostProcessor.js +0 -363
  749. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +0 -1
  750. package/dist/src/transformers/UpdateResultSelectConverter.js +0 -344
  751. package/dist/src/transformers/UpdateResultSelectConverter.js.map +0 -1
  752. package/dist/src/transformers/UpstreamSelectQueryFinder.js +0 -184
  753. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +0 -1
  754. package/dist/src/types/Formatting.js +0 -3
  755. package/dist/src/utils/CTERegionDetector.js +0 -464
  756. package/dist/src/utils/CTERegionDetector.js.map +0 -1
  757. package/dist/src/utils/CommentEditor.js +0 -345
  758. package/dist/src/utils/CommentEditor.js.map +0 -1
  759. package/dist/src/utils/CommentUtils.js +0 -69
  760. package/dist/src/utils/CommentUtils.js.map +0 -1
  761. package/dist/src/utils/CursorContextAnalyzer.js +0 -338
  762. package/dist/src/utils/CursorContextAnalyzer.js.map +0 -1
  763. package/dist/src/utils/IntelliSenseApi.js +0 -292
  764. package/dist/src/utils/IntelliSenseApi.js.map +0 -1
  765. package/dist/src/utils/JsonSchemaValidator.js +0 -215
  766. package/dist/src/utils/JsonSchemaValidator.js.map +0 -1
  767. package/dist/src/utils/KeywordCache.js +0 -206
  768. package/dist/src/utils/KeywordCache.js.map +0 -1
  769. package/dist/src/utils/LexemeCursor.js +0 -314
  770. package/dist/src/utils/LexemeCursor.js.map +0 -1
  771. package/dist/src/utils/MultiQuerySplitter.js +0 -292
  772. package/dist/src/utils/MultiQuerySplitter.js.map +0 -1
  773. package/dist/src/utils/OperatorPrecedence.js +0 -107
  774. package/dist/src/utils/OperatorPrecedence.js.map +0 -1
  775. package/dist/src/utils/ParameterDetector.js +0 -53
  776. package/dist/src/utils/ParameterDetector.js.map +0 -1
  777. package/dist/src/utils/ParameterHelper.js +0 -31
  778. package/dist/src/utils/ParameterHelper.js.map +0 -1
  779. package/dist/src/utils/ParameterRemover.js +0 -781
  780. package/dist/src/utils/ParameterRemover.js.map +0 -1
  781. package/dist/src/utils/ParserStringUtils.js +0 -31
  782. package/dist/src/utils/ParserStringUtils.js.map +0 -1
  783. package/dist/src/utils/PositionAwareParser.js +0 -363
  784. package/dist/src/utils/PositionAwareParser.js.map +0 -1
  785. package/dist/src/utils/SchemaManager.js +0 -217
  786. package/dist/src/utils/SchemaManager.js.map +0 -1
  787. package/dist/src/utils/ScopeResolver.js +0 -272
  788. package/dist/src/utils/ScopeResolver.js.map +0 -1
  789. package/dist/src/utils/SelectQueryWithClauseHelper.js +0 -47
  790. package/dist/src/utils/SelectQueryWithClauseHelper.js.map +0 -1
  791. package/dist/src/utils/SqlSchemaValidator.js +0 -55
  792. package/dist/src/utils/SqlSchemaValidator.js.map +0 -1
  793. package/dist/src/utils/TextPositionUtils.js +0 -128
  794. package/dist/src/utils/TextPositionUtils.js.map +0 -1
  795. package/dist/src/utils/ValueComponentRewriter.js +0 -183
  796. package/dist/src/utils/ValueComponentRewriter.js.map +0 -1
  797. package/dist/src/utils/charLookupTable.js +0 -73
  798. package/dist/src/utils/charLookupTable.js.map +0 -1
  799. package/dist/src/utils/stringUtils.js +0 -230
  800. package/dist/src/utils/stringUtils.js.map +0 -1
  801. package/dist/tsconfig.tsbuildinfo +0 -1
  802. /package/dist/esm/{src/formatters → formatters}/OriginalFormatRestorer.d.ts +0 -0
  803. /package/dist/esm/{src/formatters → formatters}/OriginalFormatRestorer.js +0 -0
  804. /package/dist/esm/{src/models → models}/BinarySelectQuery.d.ts +0 -0
  805. /package/dist/esm/{src/models → models}/BinarySelectQuery.js +0 -0
  806. /package/dist/esm/{src/models → models}/CTEError.d.ts +0 -0
  807. /package/dist/esm/{src/models → models}/CTEError.js +0 -0
  808. /package/dist/esm/{src/models → models}/Clause.d.ts +0 -0
  809. /package/dist/esm/{src/models → models}/Clause.js +0 -0
  810. /package/dist/esm/{src/models → models}/CreateTableQuery.d.ts +0 -0
  811. /package/dist/esm/{src/models → models}/CreateTableQuery.js +0 -0
  812. /package/dist/esm/{src/models → models}/DeleteQuery.d.ts +0 -0
  813. /package/dist/esm/{src/models → models}/DeleteQuery.js +0 -0
  814. /package/dist/esm/{src/models → models}/FormattingLexeme.d.ts +0 -0
  815. /package/dist/esm/{src/models → models}/FormattingLexeme.js +0 -0
  816. /package/dist/{src → esm}/models/FormattingLexeme.js.map +0 -0
  817. /package/dist/esm/{src/models → models}/HintClause.d.ts +0 -0
  818. /package/dist/esm/{src/models → models}/HintClause.js +0 -0
  819. /package/dist/esm/{src/models → models}/InsertQuery.d.ts +0 -0
  820. /package/dist/esm/{src/models → models}/InsertQuery.js +0 -0
  821. /package/dist/esm/{src/models → models}/KeywordTrie.d.ts +0 -0
  822. /package/dist/esm/{src/models → models}/KeywordTrie.js +0 -0
  823. /package/dist/esm/{src/models → models}/Lexeme.d.ts +0 -0
  824. /package/dist/esm/{src/models → models}/Lexeme.js +0 -0
  825. /package/dist/esm/{src/models → models}/MergeQuery.d.ts +0 -0
  826. /package/dist/esm/{src/models → models}/MergeQuery.js +0 -0
  827. /package/dist/esm/{src/models → models}/SelectQuery.d.ts +0 -0
  828. /package/dist/esm/{src/models → models}/SelectQuery.js +0 -0
  829. /package/dist/esm/{src/models → models}/SimpleSelectQuery.d.ts +0 -0
  830. /package/dist/esm/{src/models → models}/SimpleSelectQuery.js +0 -0
  831. /package/dist/esm/{src/models → models}/SqlComponent.d.ts +0 -0
  832. /package/dist/esm/{src/models → models}/SqlComponent.js +0 -0
  833. /package/dist/esm/{src/models → models}/UpdateQuery.d.ts +0 -0
  834. /package/dist/esm/{src/models → models}/UpdateQuery.js +0 -0
  835. /package/dist/esm/{src/models → models}/ValuesQuery.d.ts +0 -0
  836. /package/dist/esm/{src/models → models}/ValuesQuery.js +0 -0
  837. /package/dist/esm/{src/parsers → parsers}/AnalyzeStatementParser.d.ts +0 -0
  838. /package/dist/esm/{src/parsers → parsers}/AnalyzeStatementParser.js +0 -0
  839. /package/dist/esm/{src/parsers → parsers}/CommandExpressionParser.d.ts +0 -0
  840. /package/dist/esm/{src/parsers → parsers}/CommandExpressionParser.js +0 -0
  841. /package/dist/esm/{src/parsers → parsers}/CommonTableParser.d.ts +0 -0
  842. /package/dist/esm/{src/parsers → parsers}/CommonTableParser.js +0 -0
  843. /package/dist/esm/{src/parsers → parsers}/CreateIndexParser.d.ts +0 -0
  844. /package/dist/esm/{src/parsers → parsers}/CreateIndexParser.js +0 -0
  845. /package/dist/esm/{src/parsers → parsers}/CreateTableParser.d.ts +0 -0
  846. /package/dist/esm/{src/parsers → parsers}/CreateTableParser.js +0 -0
  847. /package/dist/esm/{src/parsers → parsers}/DeleteClauseParser.d.ts +0 -0
  848. /package/dist/esm/{src/parsers → parsers}/DeleteClauseParser.js +0 -0
  849. /package/dist/esm/{src/parsers → parsers}/DeleteQueryParser.d.ts +0 -0
  850. /package/dist/esm/{src/parsers → parsers}/DeleteQueryParser.js +0 -0
  851. /package/dist/esm/{src/parsers → parsers}/DropConstraintParser.d.ts +0 -0
  852. /package/dist/esm/{src/parsers → parsers}/DropConstraintParser.js +0 -0
  853. /package/dist/esm/{src/parsers → parsers}/DropIndexParser.d.ts +0 -0
  854. /package/dist/esm/{src/parsers → parsers}/DropIndexParser.js +0 -0
  855. /package/dist/esm/{src/parsers → parsers}/DropTableParser.d.ts +0 -0
  856. /package/dist/esm/{src/parsers → parsers}/DropTableParser.js +0 -0
  857. /package/dist/esm/{src/parsers → parsers}/ExplainStatementParser.d.ts +0 -0
  858. /package/dist/esm/{src/parsers → parsers}/ExplainStatementParser.js +0 -0
  859. /package/dist/esm/{src/parsers → parsers}/FetchClauseParser.d.ts +0 -0
  860. /package/dist/esm/{src/parsers → parsers}/FetchClauseParser.js +0 -0
  861. /package/dist/esm/{src/parsers → parsers}/ForClauseParser.d.ts +0 -0
  862. /package/dist/esm/{src/parsers → parsers}/ForClauseParser.js +0 -0
  863. /package/dist/esm/{src/parsers → parsers}/FromClauseParser.d.ts +0 -0
  864. /package/dist/esm/{src/parsers → parsers}/FromClauseParser.js +0 -0
  865. /package/dist/esm/{src/parsers → parsers}/FullNameParser.d.ts +0 -0
  866. /package/dist/esm/{src/parsers → parsers}/FullNameParser.js +0 -0
  867. /package/dist/esm/{src/parsers → parsers}/GroupByParser.d.ts +0 -0
  868. /package/dist/esm/{src/parsers → parsers}/GroupByParser.js +0 -0
  869. /package/dist/esm/{src/parsers → parsers}/HavingParser.d.ts +0 -0
  870. /package/dist/esm/{src/parsers → parsers}/HavingParser.js +0 -0
  871. /package/dist/esm/{src/parsers → parsers}/IdentifierDecorator.d.ts +0 -0
  872. /package/dist/esm/{src/parsers → parsers}/IdentifierDecorator.js +0 -0
  873. /package/dist/esm/{src/parsers → parsers}/IdentifierParser.d.ts +0 -0
  874. /package/dist/esm/{src/parsers → parsers}/IdentifierParser.js +0 -0
  875. /package/dist/esm/{src/parsers → parsers}/InsertQueryParser.d.ts +0 -0
  876. /package/dist/esm/{src/parsers → parsers}/InsertQueryParser.js +0 -0
  877. /package/dist/esm/{src/parsers → parsers}/JoinClauseParser.d.ts +0 -0
  878. /package/dist/esm/{src/parsers → parsers}/JoinClauseParser.js +0 -0
  879. /package/dist/esm/{src/parsers → parsers}/JoinOnClauseParser.d.ts +0 -0
  880. /package/dist/esm/{src/parsers → parsers}/JoinOnClauseParser.js +0 -0
  881. /package/dist/esm/{src/parsers → parsers}/JoinUsingClauseParser.d.ts +0 -0
  882. /package/dist/esm/{src/parsers → parsers}/JoinUsingClauseParser.js +0 -0
  883. /package/dist/esm/{src/parsers → parsers}/KeywordParser.d.ts +0 -0
  884. /package/dist/esm/{src/parsers → parsers}/KeywordParser.js +0 -0
  885. /package/dist/esm/{src/parsers → parsers}/LimitClauseParser.d.ts +0 -0
  886. /package/dist/esm/{src/parsers → parsers}/LimitClauseParser.js +0 -0
  887. /package/dist/esm/{src/parsers → parsers}/LiteralParser.d.ts +0 -0
  888. /package/dist/esm/{src/parsers → parsers}/LiteralParser.js +0 -0
  889. /package/dist/esm/{src/parsers → parsers}/MergeQueryParser.d.ts +0 -0
  890. /package/dist/esm/{src/parsers → parsers}/MergeQueryParser.js +0 -0
  891. /package/dist/esm/{src/parsers → parsers}/OffsetClauseParser.d.ts +0 -0
  892. /package/dist/esm/{src/parsers → parsers}/OffsetClauseParser.js +0 -0
  893. /package/dist/esm/{src/parsers → parsers}/OrderByClauseParser.d.ts +0 -0
  894. /package/dist/esm/{src/parsers → parsers}/OrderByClauseParser.js +0 -0
  895. /package/dist/esm/{src/parsers → parsers}/OverExpressionParser.d.ts +0 -0
  896. /package/dist/esm/{src/parsers → parsers}/OverExpressionParser.js +0 -0
  897. /package/dist/esm/{src/parsers → parsers}/ParameterDecorator.d.ts +0 -0
  898. /package/dist/esm/{src/parsers → parsers}/ParameterDecorator.js +0 -0
  899. /package/dist/esm/{src/parsers → parsers}/ParameterExpressionParser.d.ts +0 -0
  900. /package/dist/esm/{src/parsers → parsers}/ParameterExpressionParser.js +0 -0
  901. /package/dist/esm/{src/parsers → parsers}/ParenExpressionParser.d.ts +0 -0
  902. /package/dist/esm/{src/parsers → parsers}/ParenExpressionParser.js +0 -0
  903. /package/dist/esm/{src/parsers → parsers}/ParseError.d.ts +0 -0
  904. /package/dist/esm/{src/parsers → parsers}/ParseError.js +0 -0
  905. /package/dist/esm/{src/parsers → parsers}/PartitionByParser.d.ts +0 -0
  906. /package/dist/esm/{src/parsers → parsers}/PartitionByParser.js +0 -0
  907. /package/dist/esm/{src/parsers → parsers}/ReturningClauseParser.d.ts +0 -0
  908. /package/dist/esm/{src/parsers → parsers}/ReturningClauseParser.js +0 -0
  909. /package/dist/esm/{src/parsers → parsers}/SelectClauseParser.d.ts +0 -0
  910. /package/dist/esm/{src/parsers → parsers}/SelectClauseParser.js +0 -0
  911. /package/dist/esm/{src/parsers → parsers}/SelectQueryParser.d.ts +0 -0
  912. /package/dist/esm/{src/parsers → parsers}/SelectQueryParser.js +0 -0
  913. /package/dist/esm/{src/parsers → parsers}/SetClauseParser.d.ts +0 -0
  914. /package/dist/esm/{src/parsers → parsers}/SetClauseParser.js +0 -0
  915. /package/dist/esm/{src/parsers → parsers}/SourceAliasExpressionParser.d.ts +0 -0
  916. /package/dist/esm/{src/parsers → parsers}/SourceAliasExpressionParser.js +0 -0
  917. /package/dist/esm/{src/parsers → parsers}/SourceExpressionParser.d.ts +0 -0
  918. /package/dist/esm/{src/parsers → parsers}/SourceExpressionParser.js +0 -0
  919. /package/dist/esm/{src/parsers → parsers}/SourceParser.d.ts +0 -0
  920. /package/dist/esm/{src/parsers → parsers}/SourceParser.js +0 -0
  921. /package/dist/esm/{src/parsers → parsers}/StringSpecifierExpressionParser.d.ts +0 -0
  922. /package/dist/esm/{src/parsers → parsers}/StringSpecifierExpressionParser.js +0 -0
  923. /package/dist/esm/{src/parsers → parsers}/UnaryExpressionParser.d.ts +0 -0
  924. /package/dist/esm/{src/parsers → parsers}/UnaryExpressionParser.js +0 -0
  925. /package/dist/esm/{src/parsers → parsers}/UpdateClauseParser.d.ts +0 -0
  926. /package/dist/esm/{src/parsers → parsers}/UpdateClauseParser.js +0 -0
  927. /package/dist/esm/{src/parsers → parsers}/UpdateQueryParser.d.ts +0 -0
  928. /package/dist/esm/{src/parsers → parsers}/UpdateQueryParser.js +0 -0
  929. /package/dist/esm/{src/parsers → parsers}/UsingClauseParser.d.ts +0 -0
  930. /package/dist/esm/{src/parsers → parsers}/UsingClauseParser.js +0 -0
  931. /package/dist/esm/{src/parsers → parsers}/ValueParser.d.ts +0 -0
  932. /package/dist/esm/{src/parsers → parsers}/ValuesQueryParser.d.ts +0 -0
  933. /package/dist/esm/{src/parsers → parsers}/ValuesQueryParser.js +0 -0
  934. /package/dist/esm/{src/parsers → parsers}/WhereClauseParser.d.ts +0 -0
  935. /package/dist/esm/{src/parsers → parsers}/WhereClauseParser.js +0 -0
  936. /package/dist/esm/{src/parsers → parsers}/WindowClauseParser.d.ts +0 -0
  937. /package/dist/esm/{src/parsers → parsers}/WindowClauseParser.js +0 -0
  938. /package/dist/esm/{src/parsers → parsers}/WindowExpressionParser.d.ts +0 -0
  939. /package/dist/esm/{src/parsers → parsers}/WindowExpressionParser.js +0 -0
  940. /package/dist/esm/{src/parsers → parsers}/WithClauseParser.d.ts +0 -0
  941. /package/dist/esm/{src/parsers → parsers}/WithClauseParser.js +0 -0
  942. /package/dist/esm/{src/parsers → parsers}/utils/LexemeCommentUtils.d.ts +0 -0
  943. /package/dist/esm/{src/parsers → parsers}/utils/LexemeCommentUtils.js +0 -0
  944. /package/dist/esm/{src/reporting → reporting}/models/DataFlowEdge.d.ts +0 -0
  945. /package/dist/esm/{src/reporting → reporting}/models/DataFlowEdge.js +0 -0
  946. /package/dist/esm/{src/reporting → reporting}/models/DataFlowGraph.d.ts +0 -0
  947. /package/dist/esm/{src/reporting → reporting}/models/DataFlowGraph.js +0 -0
  948. /package/dist/esm/{src/reporting → reporting}/models/DataFlowNode.d.ts +0 -0
  949. /package/dist/esm/{src/reporting → reporting}/models/DataFlowNode.js +0 -0
  950. /package/dist/esm/{src/reporting → reporting}/services/CTEHandler.d.ts +0 -0
  951. /package/dist/esm/{src/reporting → reporting}/services/CTEHandler.js +0 -0
  952. /package/dist/esm/{src/reporting → reporting}/services/DataSourceHandler.d.ts +0 -0
  953. /package/dist/esm/{src/reporting → reporting}/services/DataSourceHandler.js +0 -0
  954. /package/dist/esm/{src/reporting → reporting}/services/JoinHandler.d.ts +0 -0
  955. /package/dist/esm/{src/reporting → reporting}/services/JoinHandler.js +0 -0
  956. /package/dist/esm/{src/reporting → reporting}/services/ProcessHandler.d.ts +0 -0
  957. /package/dist/esm/{src/reporting → reporting}/services/ProcessHandler.js +0 -0
  958. /package/dist/esm/{src/tokenReaders → tokenReaders}/BaseTokenReader.d.ts +0 -0
  959. /package/dist/esm/{src/tokenReaders → tokenReaders}/BaseTokenReader.js +0 -0
  960. /package/dist/esm/{src/tokenReaders → tokenReaders}/CommandTokenReader.d.ts +0 -0
  961. /package/dist/esm/{src/tokenReaders → tokenReaders}/EscapedIdentifierTokenReader.d.ts +0 -0
  962. /package/dist/esm/{src/tokenReaders → tokenReaders}/EscapedIdentifierTokenReader.js +0 -0
  963. /package/dist/esm/{src/tokenReaders → tokenReaders}/FunctionTokenReader.d.ts +0 -0
  964. /package/dist/esm/{src/tokenReaders → tokenReaders}/FunctionTokenReader.js +0 -0
  965. /package/dist/esm/{src/tokenReaders → tokenReaders}/IdentifierTokenReader.d.ts +0 -0
  966. /package/dist/esm/{src/tokenReaders → tokenReaders}/IdentifierTokenReader.js +0 -0
  967. /package/dist/esm/{src/tokenReaders → tokenReaders}/LiteralTokenReader.d.ts +0 -0
  968. /package/dist/esm/{src/tokenReaders → tokenReaders}/LiteralTokenReader.js +0 -0
  969. /package/dist/esm/{src/tokenReaders → tokenReaders}/OperatorTokenReader.d.ts +0 -0
  970. /package/dist/esm/{src/tokenReaders → tokenReaders}/OperatorTokenReader.js +0 -0
  971. /package/dist/esm/{src/tokenReaders → tokenReaders}/ParameterTokenReader.d.ts +0 -0
  972. /package/dist/esm/{src/tokenReaders → tokenReaders}/ParameterTokenReader.js +0 -0
  973. /package/dist/esm/{src/tokenReaders → tokenReaders}/StringSpecifierTokenReader.d.ts +0 -0
  974. /package/dist/esm/{src/tokenReaders → tokenReaders}/StringSpecifierTokenReader.js +0 -0
  975. /package/dist/esm/{src/tokenReaders → tokenReaders}/SymbolTokenReader.d.ts +0 -0
  976. /package/dist/esm/{src/tokenReaders → tokenReaders}/SymbolTokenReader.js +0 -0
  977. /package/dist/esm/{src/tokenReaders → tokenReaders}/TokenReaderManager.d.ts +0 -0
  978. /package/dist/esm/{src/tokenReaders → tokenReaders}/TokenReaderManager.js +0 -0
  979. /package/dist/esm/{src/tokenReaders → tokenReaders}/TypeTokenReader.d.ts +0 -0
  980. /package/dist/esm/{src/tokenReaders → tokenReaders}/TypeTokenReader.js +0 -0
  981. /package/dist/esm/{src/transformers → transformers}/AliasRenamer.d.ts +0 -0
  982. /package/dist/esm/{src/transformers → transformers}/AliasRenamer.js +0 -0
  983. /package/dist/esm/{src/transformers → transformers}/CTEBuilder.d.ts +0 -0
  984. /package/dist/esm/{src/transformers → transformers}/CTEBuilder.js +0 -0
  985. /package/dist/esm/{src/transformers → transformers}/CTECollector.d.ts +0 -0
  986. /package/dist/esm/{src/transformers → transformers}/CTECollector.js +0 -0
  987. /package/dist/esm/{src/transformers → transformers}/CTEComposer.d.ts +0 -0
  988. /package/dist/esm/{src/transformers → transformers}/CTEComposer.js +0 -0
  989. /package/dist/esm/{src/transformers → transformers}/CTEDependencyAnalyzer.d.ts +0 -0
  990. /package/dist/esm/{src/transformers → transformers}/CTEDependencyAnalyzer.js +0 -0
  991. /package/dist/esm/{src/transformers → transformers}/CTEDependencyTracer.d.ts +0 -0
  992. /package/dist/esm/{src/transformers → transformers}/CTEDependencyTracer.js +0 -0
  993. /package/dist/esm/{src/transformers → transformers}/CTEDisabler.d.ts +0 -0
  994. /package/dist/esm/{src/transformers → transformers}/CTEDisabler.js +0 -0
  995. /package/dist/esm/{src/transformers → transformers}/CTEInjector.d.ts +0 -0
  996. /package/dist/esm/{src/transformers → transformers}/CTEInjector.js +0 -0
  997. /package/dist/esm/{src/transformers → transformers}/CTENormalizer.d.ts +0 -0
  998. /package/dist/esm/{src/transformers → transformers}/CTENormalizer.js +0 -0
  999. /package/dist/esm/{src/transformers → transformers}/CTEQueryDecomposer.d.ts +0 -0
  1000. /package/dist/esm/{src/transformers → transformers}/CTEQueryDecomposer.js +0 -0
  1001. /package/dist/esm/{src/transformers → transformers}/CTERenamer.d.ts +0 -0
  1002. /package/dist/esm/{src/transformers → transformers}/CTERenamer.js +0 -0
  1003. /package/dist/esm/{src/transformers → transformers}/CTETableReferenceCollector.d.ts +0 -0
  1004. /package/dist/esm/{src/transformers → transformers}/CTETableReferenceCollector.js +0 -0
  1005. /package/dist/esm/{src/transformers → transformers}/ColumnReferenceCollector.d.ts +0 -0
  1006. /package/dist/esm/{src/transformers → transformers}/DDLGeneralizer.d.ts +0 -0
  1007. /package/dist/esm/{src/transformers → transformers}/DDLGeneralizer.js +0 -0
  1008. /package/dist/esm/{src/transformers → transformers}/DDLToFixtureConverter.d.ts +0 -0
  1009. /package/dist/esm/{src/transformers → transformers}/DDLToFixtureConverter.js +0 -0
  1010. /package/dist/esm/{src/transformers → transformers}/DeleteResultSelectConverter.d.ts +0 -0
  1011. /package/dist/esm/{src/transformers → transformers}/DynamicQueryBuilder.d.ts +0 -0
  1012. /package/dist/esm/{src/transformers → transformers}/DynamicQueryBuilder.js +0 -0
  1013. /package/dist/esm/{src/transformers → transformers}/EnhancedJsonMapping.d.ts +0 -0
  1014. /package/dist/esm/{src/transformers → transformers}/EnhancedJsonMapping.js +0 -0
  1015. /package/dist/esm/{src/transformers → transformers}/FilterableItemCollector.d.ts +0 -0
  1016. /package/dist/esm/{src/transformers → transformers}/FilterableItemCollector.js +0 -0
  1017. /package/dist/esm/{src/transformers → transformers}/FixtureCteBuilder.d.ts +0 -0
  1018. /package/dist/esm/{src/transformers → transformers}/FixtureCteBuilder.js +0 -0
  1019. /package/dist/esm/{src/transformers → transformers}/FormatOptionResolver.d.ts +0 -0
  1020. /package/dist/esm/{src/transformers → transformers}/FormatOptionResolver.js +0 -0
  1021. /package/dist/esm/{src/transformers → transformers}/Formatter.d.ts +0 -0
  1022. /package/dist/esm/{src/transformers → transformers}/Formatter.js +0 -0
  1023. /package/dist/esm/{src/transformers → transformers}/InsertQuerySelectValuesConverter.d.ts +0 -0
  1024. /package/dist/esm/{src/transformers → transformers}/InsertQuerySelectValuesConverter.js +0 -0
  1025. /package/dist/esm/{src/transformers → transformers}/JoinAggregationDecomposer.d.ts +0 -0
  1026. /package/dist/esm/{src/transformers → transformers}/JoinAggregationDecomposer.js +0 -0
  1027. /package/dist/esm/{src/transformers → transformers}/JsonMappingConverter.d.ts +0 -0
  1028. /package/dist/esm/{src/transformers → transformers}/JsonMappingConverter.js +0 -0
  1029. /package/dist/esm/{src/transformers → transformers}/JsonMappingUnifier.d.ts +0 -0
  1030. /package/dist/esm/{src/transformers → transformers}/JsonMappingUnifier.js +0 -0
  1031. /package/dist/esm/{src/transformers → transformers}/LinePrinter.d.ts +0 -0
  1032. /package/dist/esm/{src/transformers → transformers}/LinePrinter.js +0 -0
  1033. /package/dist/esm/{src/transformers → transformers}/MergeResultSelectConverter.d.ts +0 -0
  1034. /package/dist/esm/{src/transformers → transformers}/MergeResultSelectConverter.js +0 -0
  1035. /package/dist/esm/{src/transformers → transformers}/ModelDrivenJsonMapping.d.ts +0 -0
  1036. /package/dist/esm/{src/transformers → transformers}/ModelDrivenJsonMapping.js +0 -0
  1037. /package/dist/esm/{src/transformers → transformers}/OnelineFormattingHelper.d.ts +0 -0
  1038. /package/dist/esm/{src/transformers → transformers}/OnelineFormattingHelper.js +0 -0
  1039. /package/dist/esm/{src/transformers → transformers}/ParameterCollector.d.ts +0 -0
  1040. /package/dist/esm/{src/transformers → transformers}/ParameterCollector.js +0 -0
  1041. /package/dist/esm/{src/transformers → transformers}/PostgresArrayEntityCteBuilder.d.ts +0 -0
  1042. /package/dist/esm/{src/transformers → transformers}/PostgresArrayEntityCteBuilder.js +0 -0
  1043. /package/dist/esm/{src/transformers → transformers}/PostgresJsonQueryBuilder.d.ts +0 -0
  1044. /package/dist/esm/{src/transformers → transformers}/PostgresJsonQueryBuilder.js +0 -0
  1045. /package/dist/esm/{src/transformers → transformers}/PostgresObjectEntityCteBuilder.d.ts +0 -0
  1046. /package/dist/esm/{src/transformers → transformers}/PostgresObjectEntityCteBuilder.js +0 -0
  1047. /package/dist/esm/{src/transformers → transformers}/QueryBuilder.d.ts +0 -0
  1048. /package/dist/esm/{src/transformers → transformers}/QueryBuilder.js +0 -0
  1049. /package/dist/esm/{src/transformers → transformers}/QueryFlowDiagramGenerator.d.ts +0 -0
  1050. /package/dist/esm/{src/transformers → transformers}/QueryFlowDiagramGenerator.js +0 -0
  1051. /package/dist/esm/{src/transformers → transformers}/SchemaCollector.d.ts +0 -0
  1052. /package/dist/esm/{src/transformers → transformers}/SchemaCollector.js +0 -0
  1053. /package/dist/esm/{src/transformers → transformers}/SelectResultSelectConverter.d.ts +0 -0
  1054. /package/dist/esm/{src/transformers → transformers}/SelectResultSelectConverter.js +0 -0
  1055. /package/dist/esm/{src/transformers → transformers}/SelectValueCollector.d.ts +0 -0
  1056. /package/dist/esm/{src/transformers → transformers}/SelectValueCollector.js +0 -0
  1057. /package/dist/esm/{src/transformers → transformers}/SelectableColumnCollector.d.ts +0 -0
  1058. /package/dist/esm/{src/transformers → transformers}/SelectableColumnCollector.js +0 -0
  1059. /package/dist/esm/{src/transformers → transformers}/SimulatedSelectConverter.d.ts +0 -0
  1060. /package/dist/esm/{src/transformers → transformers}/SimulatedSelectConverter.js +0 -0
  1061. /package/dist/esm/{src/transformers → transformers}/SmartRenamer.d.ts +0 -0
  1062. /package/dist/esm/{src/transformers → transformers}/SmartRenamer.js +0 -0
  1063. /package/dist/esm/{src/transformers → transformers}/SqlFormatter.d.ts +0 -0
  1064. /package/dist/esm/{src/transformers → transformers}/SqlFormatter.js +0 -0
  1065. /package/dist/esm/{src/transformers → transformers}/SqlIdentifierRenamer.d.ts +0 -0
  1066. /package/dist/esm/{src/transformers → transformers}/SqlIdentifierRenamer.js +0 -0
  1067. /package/dist/esm/{src/transformers → transformers}/SqlOutputToken.d.ts +0 -0
  1068. /package/dist/esm/{src/transformers → transformers}/SqlOutputToken.js +0 -0
  1069. /package/dist/esm/{src/transformers → transformers}/SqlPaginationInjector.d.ts +0 -0
  1070. /package/dist/esm/{src/transformers → transformers}/SqlPaginationInjector.js +0 -0
  1071. /package/dist/esm/{src/transformers → transformers}/SqlParamInjector.d.ts +0 -0
  1072. /package/dist/esm/{src/transformers → transformers}/SqlParamInjector.js +0 -0
  1073. /package/dist/esm/{src/transformers → transformers}/SqlParameterBinder.d.ts +0 -0
  1074. /package/dist/esm/{src/transformers → transformers}/SqlParameterBinder.js +0 -0
  1075. /package/dist/esm/{src/transformers → transformers}/SqlPrinter.d.ts +0 -0
  1076. /package/dist/esm/{src/transformers → transformers}/SqlSortInjector.d.ts +0 -0
  1077. /package/dist/esm/{src/transformers → transformers}/SqlSortInjector.js +0 -0
  1078. /package/dist/esm/{src/transformers → transformers}/TableColumnResolver.d.ts +0 -0
  1079. /package/dist/esm/{src/transformers → transformers}/TableColumnResolver.js +0 -0
  1080. /package/dist/{src → esm}/transformers/TableColumnResolver.js.map +0 -0
  1081. /package/dist/esm/{src/transformers → transformers}/TableSourceCollector.d.ts +0 -0
  1082. /package/dist/esm/{src/transformers → transformers}/TypeTransformationPostProcessor.d.ts +0 -0
  1083. /package/dist/esm/{src/transformers → transformers}/TypeTransformationPostProcessor.js +0 -0
  1084. /package/dist/esm/{src/transformers → transformers}/UpdateResultSelectConverter.d.ts +0 -0
  1085. /package/dist/esm/{src/transformers → transformers}/UpstreamSelectQueryFinder.d.ts +0 -0
  1086. /package/dist/esm/{src/transformers → transformers}/UpstreamSelectQueryFinder.js +0 -0
  1087. /package/dist/esm/{src/types → types}/Formatting.d.ts +0 -0
  1088. /package/dist/esm/{src/types → types}/Formatting.js +0 -0
  1089. /package/dist/{src → esm}/types/Formatting.js.map +0 -0
  1090. /package/dist/esm/{src/utils → utils}/CTERegionDetector.d.ts +0 -0
  1091. /package/dist/esm/{src/utils → utils}/CTERegionDetector.js +0 -0
  1092. /package/dist/esm/{src/utils → utils}/CommentEditor.d.ts +0 -0
  1093. /package/dist/esm/{src/utils → utils}/CommentEditor.js +0 -0
  1094. /package/dist/esm/{src/utils → utils}/CommentUtils.d.ts +0 -0
  1095. /package/dist/esm/{src/utils → utils}/CommentUtils.js +0 -0
  1096. /package/dist/esm/{src/utils → utils}/CursorContextAnalyzer.d.ts +0 -0
  1097. /package/dist/esm/{src/utils → utils}/CursorContextAnalyzer.js +0 -0
  1098. /package/dist/esm/{src/utils → utils}/IntelliSenseApi.d.ts +0 -0
  1099. /package/dist/esm/{src/utils → utils}/IntelliSenseApi.js +0 -0
  1100. /package/dist/esm/{src/utils → utils}/JsonSchemaValidator.d.ts +0 -0
  1101. /package/dist/esm/{src/utils → utils}/JsonSchemaValidator.js +0 -0
  1102. /package/dist/esm/{src/utils → utils}/KeywordCache.d.ts +0 -0
  1103. /package/dist/esm/{src/utils → utils}/KeywordCache.js +0 -0
  1104. /package/dist/esm/{src/utils → utils}/LexemeCursor.d.ts +0 -0
  1105. /package/dist/esm/{src/utils → utils}/LexemeCursor.js +0 -0
  1106. /package/dist/esm/{src/utils → utils}/MultiQuerySplitter.d.ts +0 -0
  1107. /package/dist/esm/{src/utils → utils}/MultiQuerySplitter.js +0 -0
  1108. /package/dist/esm/{src/utils → utils}/OperatorPrecedence.d.ts +0 -0
  1109. /package/dist/esm/{src/utils → utils}/OperatorPrecedence.js +0 -0
  1110. /package/dist/esm/{src/utils → utils}/ParameterDetector.d.ts +0 -0
  1111. /package/dist/esm/{src/utils → utils}/ParameterDetector.js +0 -0
  1112. /package/dist/esm/{src/utils → utils}/ParameterHelper.d.ts +0 -0
  1113. /package/dist/esm/{src/utils → utils}/ParameterHelper.js +0 -0
  1114. /package/dist/esm/{src/utils → utils}/ParameterRemover.d.ts +0 -0
  1115. /package/dist/esm/{src/utils → utils}/ParserStringUtils.d.ts +0 -0
  1116. /package/dist/esm/{src/utils → utils}/ParserStringUtils.js +0 -0
  1117. /package/dist/esm/{src/utils → utils}/PositionAwareParser.d.ts +0 -0
  1118. /package/dist/esm/{src/utils → utils}/PositionAwareParser.js +0 -0
  1119. /package/dist/esm/{src/utils → utils}/SchemaManager.d.ts +0 -0
  1120. /package/dist/esm/{src/utils → utils}/SchemaManager.js +0 -0
  1121. /package/dist/esm/{src/utils → utils}/ScopeResolver.d.ts +0 -0
  1122. /package/dist/esm/{src/utils → utils}/ScopeResolver.js +0 -0
  1123. /package/dist/esm/{src/utils → utils}/SelectQueryWithClauseHelper.d.ts +0 -0
  1124. /package/dist/esm/{src/utils → utils}/SelectQueryWithClauseHelper.js +0 -0
  1125. /package/dist/esm/{src/utils → utils}/SqlSchemaValidator.d.ts +0 -0
  1126. /package/dist/esm/{src/utils → utils}/SqlSchemaValidator.js +0 -0
  1127. /package/dist/esm/{src/utils → utils}/TextPositionUtils.d.ts +0 -0
  1128. /package/dist/esm/{src/utils → utils}/TextPositionUtils.js +0 -0
  1129. /package/dist/esm/{src/utils → utils}/ValueComponentRewriter.d.ts +0 -0
  1130. /package/dist/esm/{src/utils → utils}/charLookupTable.d.ts +0 -0
  1131. /package/dist/esm/{src/utils → utils}/charLookupTable.js +0 -0
  1132. /package/dist/esm/{src/utils → utils}/stringUtils.d.ts +0 -0
  1133. /package/dist/esm/{src/utils → utils}/stringUtils.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlPrintTokenParser.js","sourceRoot":"","sources":["../../../src/parsers/SqlPrintTokenParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { FormattingLexeme } from '../models/FormattingLexeme';
2
+ import { Lexeme } from '../models/Lexeme';
3
+ /**
4
+ * Options for tokenization behavior
5
+ */
6
+ export interface TokenizeOptions {
7
+ preserveFormatting?: boolean;
8
+ }
9
+ export interface StatementLexemeResult {
10
+ lexemes: Lexeme[];
11
+ statementStart: number;
12
+ statementEnd: number;
13
+ nextPosition: number;
14
+ rawText: string;
15
+ leadingComments: string[] | null;
16
+ }
17
+ /**
18
+ * Class responsible for tokenizing SQL input.
19
+ */
20
+ export declare class SqlTokenizer {
21
+ /**
22
+ * The input SQL string to be tokenized.
23
+ */
24
+ private input;
25
+ /**
26
+ * Current position within the input string.
27
+ */
28
+ private position;
29
+ /**
30
+ * Manager responsible for handling token readers.
31
+ */
32
+ private readerManager;
33
+ /**
34
+ * Cached start offsets for each line in the input string.
35
+ */
36
+ private lineStartPositions;
37
+ /**
38
+ * Initializes a new instance of the SqlTokenizer.
39
+ */
40
+ constructor(input: string);
41
+ /**
42
+ * Checks if the end of input is reached.
43
+ *
44
+ * @param shift - The shift to consider beyond the current position.
45
+ * @returns True if the end of input is reached; otherwise, false.
46
+ */
47
+ private isEndOfInput;
48
+ /**
49
+ * Checks if more input can be read.
50
+ *
51
+ * @param shift - The shift to consider beyond the current position.
52
+ * @returns True if more input can be read; otherwise, false.
53
+ */
54
+ private canRead;
55
+ /**
56
+ * Tokenizes the input SQL with optional formatting preservation.
57
+ */
58
+ tokenize(): Lexeme[];
59
+ tokenize(options: {
60
+ preserveFormatting: true;
61
+ }): FormattingLexeme[];
62
+ tokenize(options?: TokenizeOptions): Lexeme[] | FormattingLexeme[];
63
+ /**
64
+ * @deprecated Use {@link readLexemes} (correct spelling) instead.
65
+ * This legacy alias remains for backwards compatibility and delegates to the new method.
66
+ */
67
+ readLexmes(): Lexeme[];
68
+ /**
69
+ * Reads the lexemes from the input string.
70
+ *
71
+ * @returns An array of lexemes extracted from the input string.
72
+ * @throws Error if an unexpected character is encountered.
73
+ */
74
+ readLexemes(): Lexeme[];
75
+ /**
76
+ * Tokenizes the input SQL without formatting preservation (internal method)
77
+ */
78
+ private tokenizeBasic;
79
+ readNextStatement(startPosition?: number, carryComments?: string[] | null): StatementLexemeResult | null;
80
+ private buildLexemesFromTokenData;
81
+ private skipPastTerminator;
82
+ private mergeComments;
83
+ private relocateOrderByComments;
84
+ private attachCommentsToLexeme;
85
+ /**
86
+ * Skips whitespace characters and SQL comments in the input.
87
+ *
88
+ * @remarks This method updates the position pointer.
89
+ */
90
+ private readComment;
91
+ /**
92
+ * Gets debug information for error reporting.
93
+ *
94
+ * @param errPosition - The position where the error occurred.
95
+ * @returns A string containing the debug position information.
96
+ */
97
+ private getDebugPositionInfo;
98
+ /**
99
+ * Tokenizes the input SQL while preserving formatting information
100
+ */
101
+ private tokenizeWithFormatting;
102
+ private mapToFormattingLexemes;
103
+ /**
104
+ * Find lexeme at a specific position, handling case variations
105
+ */
106
+ private findLexemeAtPosition;
107
+ private isValidLexemeMatch;
108
+ /**
109
+ * Check if character is alphanumeric or underscore (faster than regex)
110
+ */
111
+ private isAlphanumericUnderscore;
112
+ /**
113
+ * Check if character is whitespace (faster than regex)
114
+ */
115
+ private isWhitespace;
116
+ private extractCommentsFromWhitespace;
117
+ /**
118
+ * Skip whitespace and comments from the given position
119
+ */
120
+ private skipWhitespaceAndComments;
121
+ private getLineColumnInfo;
122
+ private getLineColumn;
123
+ private ensureLineStartPositions;
124
+ }