rawsql-ts 0.12.1 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/esm/index.js +91 -95
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +8 -8
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/esm/src/index.d.ts +116 -0
- package/dist/esm/src/index.js +111 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -0
- package/dist/esm/src/models/CTEError.js.map +1 -0
- package/dist/esm/src/models/Clause.js.map +1 -0
- package/dist/esm/src/models/CreateTableQuery.js.map +1 -0
- package/dist/esm/src/models/DDLStatements.js.map +1 -0
- package/dist/esm/src/models/DeleteQuery.js.map +1 -0
- package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
- package/dist/esm/src/models/HintClause.js.map +1 -0
- package/dist/esm/src/models/InsertQuery.js.map +1 -0
- package/dist/esm/src/models/KeywordTrie.js.map +1 -0
- package/dist/esm/src/models/Lexeme.js.map +1 -0
- package/dist/esm/src/models/MergeQuery.js.map +1 -0
- package/dist/esm/src/models/SelectQuery.js.map +1 -0
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -0
- package/dist/esm/src/models/SqlComponent.js.map +1 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -0
- package/dist/esm/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/esm/src/models/UpdateQuery.js.map +1 -0
- package/dist/esm/src/models/ValueComponent.d.ts +224 -0
- package/dist/esm/src/models/ValueComponent.js +348 -0
- package/dist/esm/src/models/ValueComponent.js.map +1 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -0
- package/dist/esm/src/parsers/AlterTableParser.js +428 -0
- package/dist/esm/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/esm/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/CommonTableParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/esm/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/esm/src/parsers/DropTableParser.js.map +1 -0
- package/dist/esm/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/esm/src/parsers/FetchClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ForClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/FromClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/FullNameParser.js.map +1 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +64 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +487 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/GroupByParser.js.map +1 -0
- package/dist/esm/src/parsers/HavingParser.js.map +1 -0
- package/dist/esm/src/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/esm/src/parsers/IdentifierParser.js.map +1 -0
- package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/KeywordParser.js.map +1 -0
- package/dist/esm/src/parsers/LimitClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/LiteralParser.js.map +1 -0
- package/dist/esm/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/OverExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParameterDecorator.js.map +1 -0
- package/dist/esm/src/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/ParseError.js.map +1 -0
- package/dist/esm/src/parsers/PartitionByParser.js.map +1 -0
- package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/SetClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/SourceParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +312 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +3076 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -0
- package/dist/esm/src/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/ValueParser.js +531 -0
- package/dist/esm/src/parsers/ValueParser.js.map +1 -0
- package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/esm/src/parsers/WhereClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/WindowClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/esm/src/parsers/WithClauseParser.js.map +1 -0
- package/dist/esm/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowEdge.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -0
- package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -0
- package/dist/esm/src/reporting/services/CTEHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/DataSourceHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/JoinHandler.js.map +1 -0
- package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -0
- package/dist/esm/src/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/esm/src/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/esm/src/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTEBuilder.js.map +1 -0
- package/dist/esm/src/transformers/CTECollector.js.map +1 -0
- package/dist/esm/src/transformers/CTEComposer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDependencyTracer.js.map +1 -0
- package/dist/esm/src/transformers/CTEDisabler.js.map +1 -0
- package/dist/esm/src/transformers/CTEInjector.js.map +1 -0
- package/dist/esm/src/transformers/CTENormalizer.js.map +1 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -0
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTETableReferenceCollector.js.map +1 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js +464 -0
- package/dist/esm/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.d.ts +14 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.js +197 -0
- package/dist/esm/src/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/esm/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/esm/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/esm/src/transformers/DeleteResultSelectConverter.js +394 -0
- package/dist/esm/src/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/esm/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/esm/src/transformers/Formatter.js.map +1 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.d.ts +64 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.js +495 -0
- package/dist/esm/src/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/JoinAggregationDecomposer.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -0
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -0
- package/dist/esm/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
- package/dist/esm/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/esm/src/transformers/ParameterCollector.js.map +1 -0
- package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -0
- package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
- package/dist/esm/src/transformers/SchemaCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/SelectValueCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/esm/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlOutputToken.js.map +1 -0
- package/dist/esm/src/transformers/SqlPaginationInjector.js.map +1 -0
- package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -0
- package/dist/esm/src/transformers/SqlParameterBinder.js.map +1 -0
- package/dist/esm/src/transformers/SqlPrinter.js +1473 -0
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -0
- package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -0
- package/dist/esm/src/transformers/TableColumnResolver.js.map +1 -0
- package/dist/esm/src/transformers/TableSourceCollector.js +431 -0
- package/dist/esm/src/transformers/TableSourceCollector.js.map +1 -0
- package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js +340 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/esm/src/types/Formatting.js.map +1 -0
- package/dist/esm/src/utils/CTERegionDetector.js.map +1 -0
- package/dist/esm/src/utils/CommentEditor.js.map +1 -0
- package/dist/esm/src/utils/CommentUtils.js.map +1 -0
- package/dist/esm/src/utils/CursorContextAnalyzer.js.map +1 -0
- package/dist/esm/src/utils/IntelliSenseApi.js.map +1 -0
- package/dist/esm/src/utils/JsonSchemaValidator.js.map +1 -0
- package/dist/esm/src/utils/KeywordCache.js.map +1 -0
- package/dist/esm/src/utils/LexemeCursor.js.map +1 -0
- package/dist/esm/src/utils/MultiQuerySplitter.js.map +1 -0
- package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -0
- package/dist/esm/src/utils/ParameterDetector.js.map +1 -0
- package/dist/esm/src/utils/ParameterHelper.js.map +1 -0
- package/dist/esm/src/utils/ParameterRemover.js +777 -0
- package/dist/esm/src/utils/ParameterRemover.js.map +1 -0
- package/dist/esm/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/esm/src/utils/PositionAwareParser.js.map +1 -0
- package/dist/esm/src/utils/SchemaManager.js.map +1 -0
- package/dist/esm/src/utils/ScopeResolver.js.map +1 -0
- package/dist/esm/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/esm/src/utils/SqlSchemaValidator.js.map +1 -0
- package/dist/esm/src/utils/TextPositionUtils.js.map +1 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js +180 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/esm/src/utils/charLookupTable.js.map +1 -0
- package/dist/esm/src/utils/stringUtils.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +8 -8
- package/dist/index.min.js.map +4 -4
- package/dist/models/DDLStatements.js +47 -1
- package/dist/models/DDLStatements.js.map +1 -1
- package/dist/models/SqlPrintToken.js +5 -0
- package/dist/models/SqlPrintToken.js.map +1 -1
- package/dist/models/TableDefinitionModel.js +2 -1
- package/dist/models/TableDefinitionModel.js.map +1 -1
- package/dist/parsers/AlterTableParser.js +58 -21
- package/dist/parsers/AlterTableParser.js.map +1 -1
- package/dist/parsers/SequenceParser.js +245 -0
- package/dist/parsers/SequenceParser.js.map +1 -0
- package/dist/parsers/SqlParser.js +41 -0
- package/dist/parsers/SqlParser.js.map +1 -1
- package/dist/parsers/SqlPrintTokenParser.js +146 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/parsers/SqlTokenizer.js +33 -0
- package/dist/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
- package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +138 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/models/BinarySelectQuery.js +198 -0
- package/dist/src/models/BinarySelectQuery.js.map +1 -0
- package/dist/src/models/CTEError.js +37 -0
- package/dist/src/models/CTEError.js.map +1 -0
- package/dist/src/models/Clause.js +535 -0
- package/dist/src/models/Clause.js.map +1 -0
- package/dist/src/models/CreateTableQuery.js +135 -0
- package/dist/src/models/CreateTableQuery.js.map +1 -0
- package/dist/src/models/DDLStatements.d.ts +84 -1
- package/dist/src/models/DDLStatements.js +229 -0
- package/dist/src/models/DDLStatements.js.map +1 -0
- package/dist/src/models/DeleteQuery.js +20 -0
- package/dist/src/models/DeleteQuery.js.map +1 -0
- package/dist/src/models/FormattingLexeme.js +3 -0
- package/dist/src/models/HintClause.js +41 -0
- package/dist/src/models/HintClause.js.map +1 -0
- package/dist/src/models/InsertQuery.js +23 -0
- package/dist/src/models/InsertQuery.js.map +1 -0
- package/dist/src/models/KeywordTrie.js +54 -0
- package/dist/src/models/KeywordTrie.js.map +1 -0
- package/dist/src/models/Lexeme.js +22 -0
- package/dist/src/models/Lexeme.js.map +1 -0
- package/dist/src/models/MergeQuery.js +104 -0
- package/dist/src/models/MergeQuery.js.map +1 -0
- package/dist/src/models/SelectQuery.js +22 -0
- package/dist/src/models/SelectQuery.js.map +1 -0
- package/dist/src/models/SimpleSelectQuery.js +648 -0
- package/dist/src/models/SimpleSelectQuery.js.map +1 -0
- package/dist/src/models/SqlComponent.js +73 -0
- package/dist/src/models/SqlComponent.js.map +1 -0
- package/dist/src/models/SqlPrintToken.d.ts +5 -0
- package/dist/src/models/SqlPrintToken.js +138 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -0
- package/dist/src/models/TableDefinitionModel.d.ts +2 -0
- package/dist/src/models/TableDefinitionModel.js +85 -0
- package/dist/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/src/models/UpdateQuery.js +29 -0
- package/dist/src/models/UpdateQuery.js.map +1 -0
- package/dist/src/models/ValueComponent.js +379 -0
- package/dist/src/models/ValueComponent.js.map +1 -0
- package/dist/src/models/ValuesQuery.js +62 -0
- package/dist/src/models/ValuesQuery.js.map +1 -0
- package/dist/src/parsers/AlterTableParser.d.ts +1 -0
- package/dist/src/parsers/AlterTableParser.js +453 -0
- package/dist/src/parsers/AlterTableParser.js.map +1 -0
- package/dist/src/parsers/AnalyzeStatementParser.js +94 -0
- package/dist/src/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/src/parsers/CommandExpressionParser.js +213 -0
- package/dist/src/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/src/parsers/CommonTableParser.js +177 -0
- package/dist/src/parsers/CommonTableParser.js.map +1 -0
- package/dist/src/parsers/CreateIndexParser.js +241 -0
- package/dist/src/parsers/CreateIndexParser.js.map +1 -0
- package/dist/src/parsers/CreateTableParser.js +738 -0
- package/dist/src/parsers/CreateTableParser.js.map +1 -0
- package/dist/src/parsers/DeleteClauseParser.js +37 -0
- package/dist/src/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/src/parsers/DeleteQueryParser.js +77 -0
- package/dist/src/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/src/parsers/DropConstraintParser.js +51 -0
- package/dist/src/parsers/DropConstraintParser.js.map +1 -0
- package/dist/src/parsers/DropIndexParser.js +73 -0
- package/dist/src/parsers/DropIndexParser.js.map +1 -0
- package/dist/src/parsers/DropTableParser.js +63 -0
- package/dist/src/parsers/DropTableParser.js.map +1 -0
- package/dist/src/parsers/ExplainStatementParser.js +189 -0
- package/dist/src/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/src/parsers/FetchClauseParser.js +89 -0
- package/dist/src/parsers/FetchClauseParser.js.map +1 -0
- package/dist/src/parsers/ForClauseParser.js +58 -0
- package/dist/src/parsers/ForClauseParser.js.map +1 -0
- package/dist/src/parsers/FromClauseParser.js +54 -0
- package/dist/src/parsers/FromClauseParser.js.map +1 -0
- package/dist/src/parsers/FullNameParser.js +110 -0
- package/dist/src/parsers/FullNameParser.js.map +1 -0
- package/dist/src/parsers/FunctionExpressionParser.js +491 -0
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/src/parsers/GroupByParser.js +58 -0
- package/dist/src/parsers/GroupByParser.js.map +1 -0
- package/dist/src/parsers/HavingParser.js +36 -0
- package/dist/src/parsers/HavingParser.js.map +1 -0
- package/dist/src/parsers/IdentifierDecorator.js +17 -0
- package/dist/src/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/src/parsers/IdentifierParser.js +15 -0
- package/dist/src/parsers/IdentifierParser.js.map +1 -0
- package/dist/src/parsers/InsertQueryParser.js +162 -0
- package/dist/src/parsers/InsertQueryParser.js.map +1 -0
- package/dist/src/parsers/JoinClauseParser.js +117 -0
- package/dist/src/parsers/JoinClauseParser.js.map +1 -0
- package/dist/src/parsers/JoinOnClauseParser.js +21 -0
- package/dist/src/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/src/parsers/JoinUsingClauseParser.js +23 -0
- package/dist/src/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/src/parsers/KeywordParser.js +99 -0
- package/dist/src/parsers/KeywordParser.js.map +1 -0
- package/dist/src/parsers/LimitClauseParser.js +38 -0
- package/dist/src/parsers/LimitClauseParser.js.map +1 -0
- package/dist/src/parsers/LiteralParser.js +48 -0
- package/dist/src/parsers/LiteralParser.js.map +1 -0
- package/dist/src/parsers/MergeQueryParser.js +483 -0
- package/dist/src/parsers/MergeQueryParser.js.map +1 -0
- package/dist/src/parsers/OffsetClauseParser.js +42 -0
- package/dist/src/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/src/parsers/OrderByClauseParser.js +108 -0
- package/dist/src/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/src/parsers/OverExpressionParser.js +44 -0
- package/dist/src/parsers/OverExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParameterDecorator.js +40 -0
- package/dist/src/parsers/ParameterDecorator.js.map +1 -0
- package/dist/src/parsers/ParameterExpressionParser.js +24 -0
- package/dist/src/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParenExpressionParser.js +109 -0
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/src/parsers/ParseError.js +25 -0
- package/dist/src/parsers/ParseError.js.map +1 -0
- package/dist/src/parsers/PartitionByParser.js +53 -0
- package/dist/src/parsers/PartitionByParser.js.map +1 -0
- package/dist/src/parsers/ReturningClauseParser.js +64 -0
- package/dist/src/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/src/parsers/SelectClauseParser.js +244 -0
- package/dist/src/parsers/SelectClauseParser.js.map +1 -0
- package/dist/src/parsers/SelectQueryParser.js +564 -0
- package/dist/src/parsers/SelectQueryParser.js.map +1 -0
- package/dist/src/parsers/SequenceParser.d.ts +16 -0
- package/dist/src/parsers/SetClauseParser.js +125 -0
- package/dist/src/parsers/SetClauseParser.js.map +1 -0
- package/dist/src/parsers/SourceAliasExpressionParser.js +60 -0
- package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/src/parsers/SourceExpressionParser.js +69 -0
- package/dist/src/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/src/parsers/SourceParser.js +144 -0
- package/dist/src/parsers/SourceParser.js.map +1 -0
- package/dist/src/parsers/SqlParser.d.ts +4 -2
- package/dist/src/parsers/SqlParser.js +390 -0
- package/dist/src/parsers/SqlParser.js.map +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +5 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +3080 -0
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/src/parsers/SqlTokenizer.d.ts +1 -0
- package/dist/src/parsers/SqlTokenizer.js +520 -0
- package/dist/src/parsers/SqlTokenizer.js.map +1 -0
- package/dist/src/parsers/StringSpecifierExpressionParser.js +22 -0
- package/dist/src/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/src/parsers/UnaryExpressionParser.js +39 -0
- package/dist/src/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/src/parsers/UpdateClauseParser.js +21 -0
- package/dist/src/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/src/parsers/UpdateQueryParser.js +98 -0
- package/dist/src/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/src/parsers/UsingClauseParser.js +33 -0
- package/dist/src/parsers/UsingClauseParser.js.map +1 -0
- package/dist/src/parsers/ValueParser.js +535 -0
- package/dist/src/parsers/ValueParser.js.map +1 -0
- package/dist/src/parsers/ValuesQueryParser.js +112 -0
- package/dist/src/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/src/parsers/WhereClauseParser.js +51 -0
- package/dist/src/parsers/WhereClauseParser.js.map +1 -0
- package/dist/src/parsers/WindowClauseParser.js +57 -0
- package/dist/src/parsers/WindowClauseParser.js.map +1 -0
- package/dist/src/parsers/WindowExpressionParser.js +163 -0
- package/dist/src/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/src/parsers/WithClauseParser.js +165 -0
- package/dist/src/parsers/WithClauseParser.js.map +1 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js +29 -0
- package/dist/src/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/src/reporting/models/DataFlowEdge.js +58 -0
- package/dist/src/reporting/models/DataFlowEdge.js.map +1 -0
- package/dist/src/reporting/models/DataFlowGraph.js +138 -0
- package/dist/src/reporting/models/DataFlowGraph.js.map +1 -0
- package/dist/src/reporting/models/DataFlowNode.js +148 -0
- package/dist/src/reporting/models/DataFlowNode.js.map +1 -0
- package/dist/src/reporting/services/CTEHandler.js +58 -0
- package/dist/src/reporting/services/CTEHandler.js.map +1 -0
- package/dist/src/reporting/services/DataSourceHandler.js +95 -0
- package/dist/src/reporting/services/DataSourceHandler.js.map +1 -0
- package/dist/src/reporting/services/JoinHandler.js +84 -0
- package/dist/src/reporting/services/JoinHandler.js.map +1 -0
- package/dist/src/reporting/services/ProcessHandler.js +26 -0
- package/dist/src/reporting/services/ProcessHandler.js.map +1 -0
- package/dist/src/tokenReaders/BaseTokenReader.js +86 -0
- package/dist/src/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +216 -0
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js +99 -0
- package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/FunctionTokenReader.js +47 -0
- package/dist/src/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/IdentifierTokenReader.js +34 -0
- package/dist/src/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js +329 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/OperatorTokenReader.js +152 -0
- package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/ParameterTokenReader.js +190 -0
- package/dist/src/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/StringSpecifierTokenReader.js +31 -0
- package/dist/src/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/SymbolTokenReader.js +35 -0
- package/dist/src/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/src/tokenReaders/TokenReaderManager.js +110 -0
- package/dist/src/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/src/tokenReaders/TypeTokenReader.js +69 -0
- package/dist/src/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/src/transformers/AliasRenamer.js +600 -0
- package/dist/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/src/transformers/CTEBuilder.js +188 -0
- package/dist/src/transformers/CTEBuilder.js.map +1 -0
- package/dist/src/transformers/CTECollector.js +409 -0
- package/dist/src/transformers/CTECollector.js.map +1 -0
- package/dist/src/transformers/CTEComposer.js +302 -0
- package/dist/src/transformers/CTEComposer.js.map +1 -0
- package/dist/src/transformers/CTEDependencyAnalyzer.js +285 -0
- package/dist/src/transformers/CTEDependencyAnalyzer.js.map +1 -0
- package/dist/src/transformers/CTEDependencyTracer.js +253 -0
- package/dist/src/transformers/CTEDependencyTracer.js.map +1 -0
- package/dist/src/transformers/CTEDisabler.js +355 -0
- package/dist/src/transformers/CTEDisabler.js.map +1 -0
- package/dist/src/transformers/CTEInjector.js +83 -0
- package/dist/src/transformers/CTEInjector.js.map +1 -0
- package/dist/src/transformers/CTENormalizer.js +46 -0
- package/dist/src/transformers/CTENormalizer.js.map +1 -0
- package/dist/src/transformers/CTEQueryDecomposer.js +589 -0
- package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -0
- package/dist/src/transformers/CTERenamer.js +486 -0
- package/dist/src/transformers/CTERenamer.js.map +1 -0
- package/dist/src/transformers/CTETableReferenceCollector.js +358 -0
- package/dist/src/transformers/CTETableReferenceCollector.js.map +1 -0
- package/dist/src/transformers/ColumnReferenceCollector.js +468 -0
- package/dist/src/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/src/transformers/DDLDiffGenerator.js +313 -0
- package/dist/src/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/src/transformers/DDLGeneralizer.js +119 -0
- package/dist/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/src/transformers/DDLToFixtureConverter.js +206 -0
- package/dist/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js +398 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/DynamicQueryBuilder.js +164 -0
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -0
- package/dist/src/transformers/EnhancedJsonMapping.js +223 -0
- package/dist/src/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/src/transformers/FilterableItemCollector.js +259 -0
- package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/src/transformers/FixtureCteBuilder.js +151 -0
- package/dist/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/src/transformers/FormatOptionResolver.js +67 -0
- package/dist/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/src/transformers/Formatter.js +38 -0
- package/dist/src/transformers/Formatter.js.map +1 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js +125 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/src/transformers/InsertResultSelectConverter.js +499 -0
- package/dist/src/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/JoinAggregationDecomposer.js +497 -0
- package/dist/src/transformers/JoinAggregationDecomposer.js.map +1 -0
- package/dist/src/transformers/JsonMappingConverter.js +392 -0
- package/dist/src/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/src/transformers/JsonMappingUnifier.js +216 -0
- package/dist/src/transformers/JsonMappingUnifier.js.map +1 -0
- package/dist/src/transformers/LinePrinter.js +148 -0
- package/dist/src/transformers/LinePrinter.js.map +1 -0
- package/dist/src/transformers/MergeResultSelectConverter.js +310 -0
- package/dist/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/ModelDrivenJsonMapping.js +122 -0
- package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
- package/dist/src/transformers/OnelineFormattingHelper.js +99 -0
- package/dist/src/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/src/transformers/ParameterCollector.js +37 -0
- package/dist/src/transformers/ParameterCollector.js.map +1 -0
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +458 -0
- package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
- package/dist/src/transformers/PostgresJsonQueryBuilder.js +245 -0
- package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -0
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +347 -0
- package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
- package/dist/src/transformers/QueryBuilder.js +649 -0
- package/dist/src/transformers/QueryBuilder.js.map +1 -0
- package/dist/src/transformers/QueryFlowDiagramGenerator.js +157 -0
- package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
- package/dist/src/transformers/SchemaCollector.js +523 -0
- package/dist/src/transformers/SchemaCollector.js.map +1 -0
- package/dist/src/transformers/SelectResultSelectConverter.js +36 -0
- package/dist/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/SelectValueCollector.js +244 -0
- package/dist/src/transformers/SelectValueCollector.js.map +1 -0
- package/dist/src/transformers/SelectableColumnCollector.js +674 -0
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/src/transformers/SimulatedSelectConverter.js +65 -0
- package/dist/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/src/transformers/SmartRenamer.js +422 -0
- package/dist/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/src/transformers/SqlFormatter.js +77 -0
- package/dist/src/transformers/SqlFormatter.js.map +1 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js +504 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/src/transformers/SqlOutputToken.js +13 -0
- package/dist/src/transformers/SqlOutputToken.js.map +1 -0
- package/dist/src/transformers/SqlPaginationInjector.js +108 -0
- package/dist/src/transformers/SqlPaginationInjector.js.map +1 -0
- package/dist/src/transformers/SqlParamInjector.js +802 -0
- package/dist/src/transformers/SqlParamInjector.js.map +1 -0
- package/dist/src/transformers/SqlParameterBinder.js +70 -0
- package/dist/src/transformers/SqlParameterBinder.js.map +1 -0
- package/dist/src/transformers/SqlPrinter.js +1477 -0
- package/dist/src/transformers/SqlPrinter.js.map +1 -0
- package/dist/src/transformers/SqlSortInjector.js +153 -0
- package/dist/src/transformers/SqlSortInjector.js.map +1 -0
- package/dist/src/transformers/TableColumnResolver.js +3 -0
- package/dist/src/transformers/TableSourceCollector.js +435 -0
- package/dist/src/transformers/TableSourceCollector.js.map +1 -0
- package/dist/src/transformers/TypeTransformationPostProcessor.js +363 -0
- package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js +344 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/UpstreamSelectQueryFinder.js +184 -0
- package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/src/types/Formatting.js +3 -0
- package/dist/src/utils/CTERegionDetector.js +464 -0
- package/dist/src/utils/CTERegionDetector.js.map +1 -0
- package/dist/src/utils/CommentEditor.js +345 -0
- package/dist/src/utils/CommentEditor.js.map +1 -0
- package/dist/src/utils/CommentUtils.js +69 -0
- package/dist/src/utils/CommentUtils.js.map +1 -0
- package/dist/src/utils/CursorContextAnalyzer.js +338 -0
- package/dist/src/utils/CursorContextAnalyzer.js.map +1 -0
- package/dist/src/utils/IntelliSenseApi.js +292 -0
- package/dist/src/utils/IntelliSenseApi.js.map +1 -0
- package/dist/src/utils/JsonSchemaValidator.js +215 -0
- package/dist/src/utils/JsonSchemaValidator.js.map +1 -0
- package/dist/src/utils/KeywordCache.js +206 -0
- package/dist/src/utils/KeywordCache.js.map +1 -0
- package/dist/src/utils/LexemeCursor.js +314 -0
- package/dist/src/utils/LexemeCursor.js.map +1 -0
- package/dist/src/utils/MultiQuerySplitter.js +292 -0
- package/dist/src/utils/MultiQuerySplitter.js.map +1 -0
- package/dist/src/utils/OperatorPrecedence.js +107 -0
- package/dist/src/utils/OperatorPrecedence.js.map +1 -0
- package/dist/src/utils/ParameterDetector.js +53 -0
- package/dist/src/utils/ParameterDetector.js.map +1 -0
- package/dist/src/utils/ParameterHelper.js +31 -0
- package/dist/src/utils/ParameterHelper.js.map +1 -0
- package/dist/src/utils/ParameterRemover.js +781 -0
- package/dist/src/utils/ParameterRemover.js.map +1 -0
- package/dist/src/utils/ParserStringUtils.js +31 -0
- package/dist/src/utils/ParserStringUtils.js.map +1 -0
- package/dist/src/utils/PositionAwareParser.js +363 -0
- package/dist/src/utils/PositionAwareParser.js.map +1 -0
- package/dist/src/utils/SchemaManager.js +217 -0
- package/dist/src/utils/SchemaManager.js.map +1 -0
- package/dist/src/utils/ScopeResolver.js +272 -0
- package/dist/src/utils/ScopeResolver.js.map +1 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js +47 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/src/utils/SqlSchemaValidator.js +55 -0
- package/dist/src/utils/SqlSchemaValidator.js.map +1 -0
- package/dist/src/utils/TextPositionUtils.js +128 -0
- package/dist/src/utils/TextPositionUtils.js.map +1 -0
- package/dist/src/utils/ValueComponentRewriter.js +183 -0
- package/dist/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/src/utils/charLookupTable.js +73 -0
- package/dist/src/utils/charLookupTable.js.map +1 -0
- package/dist/src/utils/stringUtils.js +230 -0
- package/dist/src/utils/stringUtils.js.map +1 -0
- package/dist/tokenReaders/CommandTokenReader.js +5 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +62 -61
- package/dist/esm/formatters/OriginalFormatRestorer.js.map +0 -1
- package/dist/esm/index.d.ts +0 -119
- package/dist/esm/models/BinarySelectQuery.js.map +0 -1
- package/dist/esm/models/CTEError.js.map +0 -1
- package/dist/esm/models/Clause.js.map +0 -1
- package/dist/esm/models/CreateTableQuery.js.map +0 -1
- package/dist/esm/models/DDLStatements.js.map +0 -1
- package/dist/esm/models/DeleteQuery.js.map +0 -1
- package/dist/esm/models/HintClause.js.map +0 -1
- package/dist/esm/models/InsertQuery.js.map +0 -1
- package/dist/esm/models/KeywordTrie.js.map +0 -1
- package/dist/esm/models/Lexeme.js.map +0 -1
- package/dist/esm/models/MergeQuery.js.map +0 -1
- package/dist/esm/models/SelectQuery.js.map +0 -1
- package/dist/esm/models/SimpleSelectQuery.js.map +0 -1
- package/dist/esm/models/SqlComponent.js.map +0 -1
- package/dist/esm/models/SqlPrintToken.js.map +0 -1
- package/dist/esm/models/TableDefinitionModel.js.map +0 -1
- package/dist/esm/models/UpdateQuery.js.map +0 -1
- package/dist/esm/models/ValueComponent.d.ts +0 -225
- package/dist/esm/models/ValueComponent.js +0 -349
- package/dist/esm/models/ValueComponent.js.map +0 -1
- package/dist/esm/models/ValuesQuery.js.map +0 -1
- package/dist/esm/parsers/AlterTableParser.js +0 -449
- package/dist/esm/parsers/AlterTableParser.js.map +0 -1
- package/dist/esm/parsers/AnalyzeStatementParser.js.map +0 -1
- package/dist/esm/parsers/CommandExpressionParser.js.map +0 -1
- package/dist/esm/parsers/CommonTableParser.js.map +0 -1
- package/dist/esm/parsers/CreateIndexParser.js.map +0 -1
- package/dist/esm/parsers/CreateTableParser.js.map +0 -1
- package/dist/esm/parsers/DeleteClauseParser.js.map +0 -1
- package/dist/esm/parsers/DeleteQueryParser.js.map +0 -1
- package/dist/esm/parsers/DropConstraintParser.js.map +0 -1
- package/dist/esm/parsers/DropIndexParser.js.map +0 -1
- package/dist/esm/parsers/DropTableParser.js.map +0 -1
- package/dist/esm/parsers/ExplainStatementParser.js.map +0 -1
- package/dist/esm/parsers/FetchClauseParser.js.map +0 -1
- package/dist/esm/parsers/ForClauseParser.js.map +0 -1
- package/dist/esm/parsers/FromClauseParser.js.map +0 -1
- package/dist/esm/parsers/FullNameParser.js.map +0 -1
- package/dist/esm/parsers/FunctionExpressionParser.d.ts +0 -65
- package/dist/esm/parsers/FunctionExpressionParser.js +0 -520
- package/dist/esm/parsers/FunctionExpressionParser.js.map +0 -1
- package/dist/esm/parsers/GroupByParser.js.map +0 -1
- package/dist/esm/parsers/HavingParser.js.map +0 -1
- package/dist/esm/parsers/IdentifierDecorator.js.map +0 -1
- package/dist/esm/parsers/IdentifierParser.js.map +0 -1
- package/dist/esm/parsers/InsertQueryParser.js.map +0 -1
- package/dist/esm/parsers/JoinClauseParser.js.map +0 -1
- package/dist/esm/parsers/JoinOnClauseParser.js.map +0 -1
- package/dist/esm/parsers/JoinUsingClauseParser.js.map +0 -1
- package/dist/esm/parsers/KeywordParser.js.map +0 -1
- package/dist/esm/parsers/LimitClauseParser.js.map +0 -1
- package/dist/esm/parsers/LiteralParser.js.map +0 -1
- package/dist/esm/parsers/MergeQueryParser.js.map +0 -1
- package/dist/esm/parsers/OffsetClauseParser.js.map +0 -1
- package/dist/esm/parsers/OrderByClauseParser.js.map +0 -1
- package/dist/esm/parsers/OverExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParameterDecorator.js.map +0 -1
- package/dist/esm/parsers/ParameterExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParenExpressionParser.js.map +0 -1
- package/dist/esm/parsers/ParseError.js.map +0 -1
- package/dist/esm/parsers/PartitionByParser.js.map +0 -1
- package/dist/esm/parsers/ReturningClauseParser.js.map +0 -1
- package/dist/esm/parsers/SelectClauseParser.js.map +0 -1
- package/dist/esm/parsers/SelectQueryParser.js.map +0 -1
- package/dist/esm/parsers/SetClauseParser.js.map +0 -1
- package/dist/esm/parsers/SourceAliasExpressionParser.js.map +0 -1
- package/dist/esm/parsers/SourceExpressionParser.js.map +0 -1
- package/dist/esm/parsers/SourceParser.js.map +0 -1
- package/dist/esm/parsers/SqlParser.js.map +0 -1
- package/dist/esm/parsers/SqlPrintTokenParser.d.ts +0 -315
- package/dist/esm/parsers/SqlPrintTokenParser.js +0 -3139
- package/dist/esm/parsers/SqlPrintTokenParser.js.map +0 -1
- package/dist/esm/parsers/SqlTokenizer.js.map +0 -1
- package/dist/esm/parsers/StringSpecifierExpressionParser.js.map +0 -1
- package/dist/esm/parsers/UnaryExpressionParser.js.map +0 -1
- package/dist/esm/parsers/UpdateClauseParser.js.map +0 -1
- package/dist/esm/parsers/UpdateQueryParser.js.map +0 -1
- package/dist/esm/parsers/UsingClauseParser.js.map +0 -1
- package/dist/esm/parsers/ValueParser.js +0 -558
- package/dist/esm/parsers/ValueParser.js.map +0 -1
- package/dist/esm/parsers/ValuesQueryParser.js.map +0 -1
- package/dist/esm/parsers/WhereClauseParser.js.map +0 -1
- package/dist/esm/parsers/WindowClauseParser.js.map +0 -1
- package/dist/esm/parsers/WindowExpressionParser.js.map +0 -1
- package/dist/esm/parsers/WithClauseParser.js.map +0 -1
- package/dist/esm/parsers/utils/LexemeCommentUtils.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowEdge.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowGraph.js.map +0 -1
- package/dist/esm/reporting/models/DataFlowNode.js.map +0 -1
- package/dist/esm/reporting/services/CTEHandler.js.map +0 -1
- package/dist/esm/reporting/services/DataSourceHandler.js.map +0 -1
- package/dist/esm/reporting/services/JoinHandler.js.map +0 -1
- package/dist/esm/reporting/services/ProcessHandler.js.map +0 -1
- package/dist/esm/tokenReaders/BaseTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/CommandTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/EscapedIdentifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/FunctionTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/IdentifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/LiteralTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/OperatorTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/ParameterTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/StringSpecifierTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/SymbolTokenReader.js.map +0 -1
- package/dist/esm/tokenReaders/TokenReaderManager.js.map +0 -1
- package/dist/esm/tokenReaders/TypeTokenReader.js.map +0 -1
- package/dist/esm/transformers/AliasRenamer.js.map +0 -1
- package/dist/esm/transformers/CTEBuilder.js.map +0 -1
- package/dist/esm/transformers/CTECollector.js.map +0 -1
- package/dist/esm/transformers/CTEComposer.js.map +0 -1
- package/dist/esm/transformers/CTEDependencyAnalyzer.js.map +0 -1
- package/dist/esm/transformers/CTEDependencyTracer.js.map +0 -1
- package/dist/esm/transformers/CTEDisabler.js.map +0 -1
- package/dist/esm/transformers/CTEInjector.js.map +0 -1
- package/dist/esm/transformers/CTENormalizer.js.map +0 -1
- package/dist/esm/transformers/CTEQueryDecomposer.js.map +0 -1
- package/dist/esm/transformers/CTERenamer.js.map +0 -1
- package/dist/esm/transformers/CTETableReferenceCollector.js.map +0 -1
- package/dist/esm/transformers/ColumnReferenceCollector.js +0 -474
- package/dist/esm/transformers/ColumnReferenceCollector.js.map +0 -1
- package/dist/esm/transformers/DDLDiffGenerator.d.ts +0 -18
- package/dist/esm/transformers/DDLDiffGenerator.js +0 -309
- package/dist/esm/transformers/DDLDiffGenerator.js.map +0 -1
- package/dist/esm/transformers/DDLGeneralizer.js.map +0 -1
- package/dist/esm/transformers/DDLToFixtureConverter.js.map +0 -1
- package/dist/esm/transformers/DeleteResultSelectConverter.js +0 -410
- package/dist/esm/transformers/DeleteResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/DynamicQueryBuilder.js.map +0 -1
- package/dist/esm/transformers/EnhancedJsonMapping.js.map +0 -1
- package/dist/esm/transformers/FilterableItemCollector.js.map +0 -1
- package/dist/esm/transformers/FixtureCteBuilder.js.map +0 -1
- package/dist/esm/transformers/FormatOptionResolver.js.map +0 -1
- package/dist/esm/transformers/Formatter.js.map +0 -1
- package/dist/esm/transformers/InsertQuerySelectValuesConverter.js.map +0 -1
- package/dist/esm/transformers/InsertResultSelectConverter.d.ts +0 -67
- package/dist/esm/transformers/InsertResultSelectConverter.js +0 -585
- package/dist/esm/transformers/InsertResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/JoinAggregationDecomposer.js.map +0 -1
- package/dist/esm/transformers/JsonMappingConverter.js.map +0 -1
- package/dist/esm/transformers/JsonMappingUnifier.js.map +0 -1
- package/dist/esm/transformers/LinePrinter.js.map +0 -1
- package/dist/esm/transformers/MergeResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/ModelDrivenJsonMapping.js.map +0 -1
- package/dist/esm/transformers/OnelineFormattingHelper.js.map +0 -1
- package/dist/esm/transformers/ParameterCollector.js.map +0 -1
- package/dist/esm/transformers/PostgresArrayEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresJsonQueryBuilder.js.map +0 -1
- package/dist/esm/transformers/PostgresObjectEntityCteBuilder.js.map +0 -1
- package/dist/esm/transformers/QueryBuilder.js.map +0 -1
- package/dist/esm/transformers/QueryFlowDiagramGenerator.js.map +0 -1
- package/dist/esm/transformers/SchemaCollector.js.map +0 -1
- package/dist/esm/transformers/SelectResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/SelectValueCollector.js.map +0 -1
- package/dist/esm/transformers/SelectableColumnCollector.js.map +0 -1
- package/dist/esm/transformers/SimulatedSelectConverter.js.map +0 -1
- package/dist/esm/transformers/SmartRenamer.js.map +0 -1
- package/dist/esm/transformers/SqlFormatter.js.map +0 -1
- package/dist/esm/transformers/SqlIdentifierRenamer.js.map +0 -1
- package/dist/esm/transformers/SqlOutputToken.js.map +0 -1
- package/dist/esm/transformers/SqlPaginationInjector.js.map +0 -1
- package/dist/esm/transformers/SqlParamInjector.js.map +0 -1
- package/dist/esm/transformers/SqlParameterBinder.js.map +0 -1
- package/dist/esm/transformers/SqlPrinter.js +0 -1474
- package/dist/esm/transformers/SqlPrinter.js.map +0 -1
- package/dist/esm/transformers/SqlSortInjector.js.map +0 -1
- package/dist/esm/transformers/TableSourceCollector.js +0 -435
- package/dist/esm/transformers/TableSourceCollector.js.map +0 -1
- package/dist/esm/transformers/TypeTransformationPostProcessor.js.map +0 -1
- package/dist/esm/transformers/UpdateResultSelectConverter.js +0 -355
- package/dist/esm/transformers/UpdateResultSelectConverter.js.map +0 -1
- package/dist/esm/transformers/UpstreamSelectQueryFinder.js.map +0 -1
- package/dist/esm/types/GenericFixture.d.ts +0 -17
- package/dist/esm/types/GenericFixture.js +0 -2
- package/dist/esm/types/GenericFixture.js.map +0 -1
- package/dist/esm/utils/CTERegionDetector.js.map +0 -1
- package/dist/esm/utils/CommentEditor.js.map +0 -1
- package/dist/esm/utils/CommentUtils.js.map +0 -1
- package/dist/esm/utils/CursorContextAnalyzer.js.map +0 -1
- package/dist/esm/utils/IntelliSenseApi.js.map +0 -1
- package/dist/esm/utils/JsonSchemaValidator.js.map +0 -1
- package/dist/esm/utils/KeywordCache.js.map +0 -1
- package/dist/esm/utils/LexemeCursor.js.map +0 -1
- package/dist/esm/utils/MultiQuerySplitter.js.map +0 -1
- package/dist/esm/utils/OperatorPrecedence.js.map +0 -1
- package/dist/esm/utils/ParameterDetector.js.map +0 -1
- package/dist/esm/utils/ParameterHelper.js.map +0 -1
- package/dist/esm/utils/ParameterRemover.js +0 -779
- package/dist/esm/utils/ParameterRemover.js.map +0 -1
- package/dist/esm/utils/ParserStringUtils.js.map +0 -1
- package/dist/esm/utils/PositionAwareParser.js.map +0 -1
- package/dist/esm/utils/SchemaManager.js.map +0 -1
- package/dist/esm/utils/ScopeResolver.js.map +0 -1
- package/dist/esm/utils/SelectQueryWithClauseHelper.js.map +0 -1
- package/dist/esm/utils/SqlSchemaValidator.js.map +0 -1
- package/dist/esm/utils/TableNameUtils.d.ts +0 -10
- package/dist/esm/utils/TableNameUtils.js +0 -30
- package/dist/esm/utils/TableNameUtils.js.map +0 -1
- package/dist/esm/utils/TextPositionUtils.js.map +0 -1
- package/dist/esm/utils/ValueComponentRewriter.js +0 -184
- package/dist/esm/utils/ValueComponentRewriter.js.map +0 -1
- package/dist/esm/utils/charLookupTable.js.map +0 -1
- package/dist/esm/utils/stringUtils.js.map +0 -1
- package/dist/tsconfig.browser.tsbuildinfo +0 -1
- /package/dist/esm/{formatters → src/formatters}/OriginalFormatRestorer.d.ts +0 -0
- /package/dist/esm/{formatters → src/formatters}/OriginalFormatRestorer.js +0 -0
- /package/dist/esm/{models → src/models}/BinarySelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/BinarySelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/CTEError.d.ts +0 -0
- /package/dist/esm/{models → src/models}/CTEError.js +0 -0
- /package/dist/esm/{models → src/models}/Clause.d.ts +0 -0
- /package/dist/esm/{models → src/models}/Clause.js +0 -0
- /package/dist/esm/{models → src/models}/CreateTableQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/CreateTableQuery.js +0 -0
- /package/dist/esm/{models → src/models}/DDLStatements.d.ts +0 -0
- /package/dist/esm/{models → src/models}/DDLStatements.js +0 -0
- /package/dist/esm/{models → src/models}/DeleteQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/DeleteQuery.js +0 -0
- /package/dist/esm/{models → src/models}/FormattingLexeme.d.ts +0 -0
- /package/dist/esm/{models → src/models}/FormattingLexeme.js +0 -0
- /package/dist/esm/{models → src/models}/HintClause.d.ts +0 -0
- /package/dist/esm/{models → src/models}/HintClause.js +0 -0
- /package/dist/esm/{models → src/models}/InsertQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/InsertQuery.js +0 -0
- /package/dist/esm/{models → src/models}/KeywordTrie.d.ts +0 -0
- /package/dist/esm/{models → src/models}/KeywordTrie.js +0 -0
- /package/dist/esm/{models → src/models}/Lexeme.d.ts +0 -0
- /package/dist/esm/{models → src/models}/Lexeme.js +0 -0
- /package/dist/esm/{models → src/models}/MergeQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/MergeQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SimpleSelectQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SimpleSelectQuery.js +0 -0
- /package/dist/esm/{models → src/models}/SqlComponent.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SqlComponent.js +0 -0
- /package/dist/esm/{models → src/models}/SqlPrintToken.d.ts +0 -0
- /package/dist/esm/{models → src/models}/SqlPrintToken.js +0 -0
- /package/dist/esm/{models → src/models}/TableDefinitionModel.d.ts +0 -0
- /package/dist/esm/{models → src/models}/TableDefinitionModel.js +0 -0
- /package/dist/esm/{models → src/models}/UpdateQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/UpdateQuery.js +0 -0
- /package/dist/esm/{models → src/models}/ValuesQuery.d.ts +0 -0
- /package/dist/esm/{models → src/models}/ValuesQuery.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/AlterTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/AnalyzeStatementParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/AnalyzeStatementParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommandExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommandExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommonTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CommonTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateIndexParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateIndexParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/CreateTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DeleteQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropConstraintParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropConstraintParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropIndexParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropIndexParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropTableParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/DropTableParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ExplainStatementParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ExplainStatementParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FetchClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FetchClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ForClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ForClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FromClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FromClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/FullNameParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/FullNameParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/GroupByParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/GroupByParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/HavingParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/HavingParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierDecorator.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierDecorator.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/IdentifierParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/InsertQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/InsertQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinOnClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinOnClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinUsingClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/JoinUsingClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/KeywordParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/KeywordParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/LimitClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/LimitClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/LiteralParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/LiteralParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/MergeQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/MergeQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OffsetClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OffsetClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OrderByClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OrderByClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/OverExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/OverExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterDecorator.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterDecorator.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParameterExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParenExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParenExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParseError.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ParseError.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/PartitionByParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/PartitionByParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ReturningClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ReturningClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SelectQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SetClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SetClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceAliasExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceAliasExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SourceParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlTokenizer.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/SqlTokenizer.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/StringSpecifierExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/StringSpecifierExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UnaryExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UnaryExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UpdateQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/UsingClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/UsingClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValueParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValuesQueryParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/ValuesQueryParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WhereClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WhereClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowExpressionParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WindowExpressionParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/WithClauseParser.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/WithClauseParser.js +0 -0
- /package/dist/esm/{parsers → src/parsers}/utils/LexemeCommentUtils.d.ts +0 -0
- /package/dist/esm/{parsers → src/parsers}/utils/LexemeCommentUtils.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowEdge.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowEdge.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowGraph.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowGraph.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowNode.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/models/DataFlowNode.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/CTEHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/CTEHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/DataSourceHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/DataSourceHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/JoinHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/JoinHandler.js +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/ProcessHandler.d.ts +0 -0
- /package/dist/esm/{reporting → src/reporting}/services/ProcessHandler.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/BaseTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/BaseTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/CommandTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/CommandTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/EscapedIdentifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/EscapedIdentifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/FunctionTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/FunctionTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/IdentifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/IdentifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/LiteralTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/LiteralTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/OperatorTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/OperatorTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/ParameterTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/ParameterTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/StringSpecifierTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/StringSpecifierTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/SymbolTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/SymbolTokenReader.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TokenReaderManager.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TokenReaderManager.js +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TypeTokenReader.d.ts +0 -0
- /package/dist/esm/{tokenReaders → src/tokenReaders}/TypeTokenReader.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/AliasRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/AliasRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTECollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTECollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEComposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEComposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyAnalyzer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyAnalyzer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyTracer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDependencyTracer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDisabler.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEDisabler.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTENormalizer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTENormalizer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEQueryDecomposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTEQueryDecomposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTERenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTERenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTETableReferenceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/CTETableReferenceCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ColumnReferenceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLGeneralizer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLGeneralizer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLToFixtureConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DDLToFixtureConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/DeleteResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DynamicQueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/DynamicQueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/EnhancedJsonMapping.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/EnhancedJsonMapping.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FilterableItemCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FilterableItemCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FixtureCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FixtureCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/FormatOptionResolver.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/FormatOptionResolver.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/Formatter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/Formatter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/InsertQuerySelectValuesConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/InsertQuerySelectValuesConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JoinAggregationDecomposer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JoinAggregationDecomposer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingUnifier.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/JsonMappingUnifier.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/LinePrinter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/LinePrinter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/MergeResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/MergeResultSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ModelDrivenJsonMapping.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/ModelDrivenJsonMapping.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/OnelineFormattingHelper.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/OnelineFormattingHelper.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/ParameterCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/ParameterCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresArrayEntityCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresArrayEntityCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresJsonQueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresJsonQueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresObjectEntityCteBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/PostgresObjectEntityCteBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryBuilder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryBuilder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryFlowDiagramGenerator.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/QueryFlowDiagramGenerator.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SchemaCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SchemaCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectResultSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectValueCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectValueCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectableColumnCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SelectableColumnCollector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SimulatedSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SimulatedSelectConverter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SmartRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SmartRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlFormatter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlFormatter.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlIdentifierRenamer.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlIdentifierRenamer.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlOutputToken.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlOutputToken.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPaginationInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPaginationInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParamInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParamInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParameterBinder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlParameterBinder.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlPrinter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlSortInjector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/SqlSortInjector.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableColumnResolver.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableColumnResolver.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/TableSourceCollector.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TypeTransformationPostProcessor.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/TypeTransformationPostProcessor.js +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpdateResultSelectConverter.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpstreamSelectQueryFinder.d.ts +0 -0
- /package/dist/esm/{transformers → src/transformers}/UpstreamSelectQueryFinder.js +0 -0
- /package/dist/esm/{types → src/types}/Formatting.d.ts +0 -0
- /package/dist/esm/{types → src/types}/Formatting.js +0 -0
- /package/dist/esm/{utils → src/utils}/CTERegionDetector.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CTERegionDetector.js +0 -0
- /package/dist/esm/{utils → src/utils}/CommentEditor.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CommentEditor.js +0 -0
- /package/dist/esm/{utils → src/utils}/CommentUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CommentUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/CursorContextAnalyzer.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/CursorContextAnalyzer.js +0 -0
- /package/dist/esm/{utils → src/utils}/IntelliSenseApi.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/IntelliSenseApi.js +0 -0
- /package/dist/esm/{utils → src/utils}/JsonSchemaValidator.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/JsonSchemaValidator.js +0 -0
- /package/dist/esm/{utils → src/utils}/KeywordCache.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/KeywordCache.js +0 -0
- /package/dist/esm/{utils → src/utils}/LexemeCursor.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/LexemeCursor.js +0 -0
- /package/dist/esm/{utils → src/utils}/MultiQuerySplitter.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/MultiQuerySplitter.js +0 -0
- /package/dist/esm/{utils → src/utils}/OperatorPrecedence.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/OperatorPrecedence.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterDetector.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterDetector.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterHelper.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterHelper.js +0 -0
- /package/dist/esm/{utils → src/utils}/ParameterRemover.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParserStringUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ParserStringUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/PositionAwareParser.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/PositionAwareParser.js +0 -0
- /package/dist/esm/{utils → src/utils}/SchemaManager.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SchemaManager.js +0 -0
- /package/dist/esm/{utils → src/utils}/ScopeResolver.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/ScopeResolver.js +0 -0
- /package/dist/esm/{utils → src/utils}/SelectQueryWithClauseHelper.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SelectQueryWithClauseHelper.js +0 -0
- /package/dist/esm/{utils → src/utils}/SqlSchemaValidator.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/SqlSchemaValidator.js +0 -0
- /package/dist/esm/{utils → src/utils}/TextPositionUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/TextPositionUtils.js +0 -0
- /package/dist/esm/{utils → src/utils}/ValueComponentRewriter.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/charLookupTable.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/charLookupTable.js +0 -0
- /package/dist/esm/{utils → src/utils}/stringUtils.d.ts +0 -0
- /package/dist/esm/{utils → src/utils}/stringUtils.js +0 -0
- /package/dist/{esm → src}/models/FormattingLexeme.js.map +0 -0
- /package/dist/{esm → src}/transformers/TableColumnResolver.js.map +0 -0
- /package/dist/{esm → src}/types/Formatting.js.map +0 -0
|
@@ -0,0 +1,802 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SqlParamInjector = void 0;
|
|
4
|
+
const SelectQuery_1 = require("../models/SelectQuery");
|
|
5
|
+
const BinarySelectQuery_1 = require("../models/BinarySelectQuery");
|
|
6
|
+
const SelectableColumnCollector_1 = require("./SelectableColumnCollector");
|
|
7
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
|
8
|
+
const UpstreamSelectQueryFinder_1 = require("./UpstreamSelectQueryFinder");
|
|
9
|
+
const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
|
|
10
|
+
const Clause_1 = require("../models/Clause");
|
|
11
|
+
/**
|
|
12
|
+
* SqlParamInjector injects state parameters into a SelectQuery model,
|
|
13
|
+
* creating WHERE conditions and setting parameter values.
|
|
14
|
+
*/
|
|
15
|
+
class SqlParamInjector {
|
|
16
|
+
constructor(optionsOrResolver, options) {
|
|
17
|
+
// Type-check to decide which argument was provided
|
|
18
|
+
if (typeof optionsOrResolver === 'function') {
|
|
19
|
+
this.tableColumnResolver = optionsOrResolver;
|
|
20
|
+
this.options = options || {};
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.tableColumnResolver = undefined;
|
|
24
|
+
this.options = optionsOrResolver || {};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Injects parameters as WHERE conditions into the given query model.
|
|
29
|
+
* @param query The SelectQuery to modify
|
|
30
|
+
* @param state A record of parameter names and values
|
|
31
|
+
* @returns The modified SelectQuery
|
|
32
|
+
* @throws Error when all parameters are undefined and allowAllUndefined is not set to true
|
|
33
|
+
*/
|
|
34
|
+
inject(query, state) {
|
|
35
|
+
// Convert string query to SimpleSelectQuery using SelectQueryParser if needed
|
|
36
|
+
if (typeof query === 'string') {
|
|
37
|
+
query = SelectQueryParser_1.SelectQueryParser.parse(query);
|
|
38
|
+
}
|
|
39
|
+
// Pass tableColumnResolver to finder and collector
|
|
40
|
+
const finder = new UpstreamSelectQueryFinder_1.UpstreamSelectQueryFinder(this.tableColumnResolver, this.options);
|
|
41
|
+
const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
|
|
42
|
+
SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns (u.id vs p.id)
|
|
43
|
+
{ upstream: true } // Enable upstream collection for qualified name resolution
|
|
44
|
+
);
|
|
45
|
+
// Normalization is handled locally below.
|
|
46
|
+
const normalize = (s) => this.options.ignoreCaseAndUnderscore ? s.toLowerCase().replace(/_/g, '') : s;
|
|
47
|
+
const allowedOps = ['min', 'max', 'like', 'ilike', 'in', 'any', '=', '<', '>', '!=', '<>', '<=', '>=', 'or', 'and', 'column'];
|
|
48
|
+
// Check if all parameters are undefined
|
|
49
|
+
const stateValues = Object.values(state);
|
|
50
|
+
const hasParameters = stateValues.length > 0;
|
|
51
|
+
const allUndefined = hasParameters && stateValues.every(value => value === undefined);
|
|
52
|
+
if (allUndefined && !this.options.allowAllUndefined) {
|
|
53
|
+
throw new Error('All parameters are undefined. This would result in fetching all records. Use allowAllUndefined: true option to explicitly allow this behavior.');
|
|
54
|
+
}
|
|
55
|
+
// Separate qualified and unqualified parameters for hybrid processing
|
|
56
|
+
const qualifiedParams = [];
|
|
57
|
+
const unqualifiedParams = [];
|
|
58
|
+
for (const [name, stateValue] of Object.entries(state)) {
|
|
59
|
+
// skip undefined values
|
|
60
|
+
if (stateValue === undefined)
|
|
61
|
+
continue;
|
|
62
|
+
if (this.isQualifiedColumnName(name)) {
|
|
63
|
+
qualifiedParams.push([name, stateValue]);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
unqualifiedParams.push([name, stateValue]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Process qualified parameters first
|
|
70
|
+
for (const [name, stateValue] of qualifiedParams) {
|
|
71
|
+
this.processStateParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators);
|
|
72
|
+
}
|
|
73
|
+
// Then process unqualified parameters, but only for columns that haven't been processed yet
|
|
74
|
+
const processedQualifiedColumns = new Set();
|
|
75
|
+
for (const [qualifiedName, _] of qualifiedParams) {
|
|
76
|
+
const parsed = this.parseQualifiedColumnName(qualifiedName);
|
|
77
|
+
if (parsed) {
|
|
78
|
+
// Track which table.column combinations have been processed
|
|
79
|
+
processedQualifiedColumns.add(`${parsed.table.toLowerCase()}.${parsed.column.toLowerCase()}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
for (const [name, stateValue] of unqualifiedParams) {
|
|
83
|
+
this.processUnqualifiedParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators, processedQualifiedColumns);
|
|
84
|
+
}
|
|
85
|
+
function injectAndConditions(q, baseName, andConditions, normalize, availableColumns) {
|
|
86
|
+
// For AND conditions, we process each condition and add them all with AND logic
|
|
87
|
+
for (let i = 0; i < andConditions.length; i++) {
|
|
88
|
+
const andCondition = andConditions[i];
|
|
89
|
+
const columnName = andCondition.column || baseName;
|
|
90
|
+
// Find the target column
|
|
91
|
+
const entry = availableColumns.find(item => normalize(item.name) === normalize(columnName));
|
|
92
|
+
if (!entry) {
|
|
93
|
+
throw new Error(`Column '${columnName}' not found in query for AND condition`);
|
|
94
|
+
}
|
|
95
|
+
const columnRef = entry.value;
|
|
96
|
+
// Process each operator in the AND condition
|
|
97
|
+
if ('=' in andCondition && andCondition['='] !== undefined) {
|
|
98
|
+
const paramName = `${baseName}_and_${i}_eq`;
|
|
99
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['=']);
|
|
100
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "=", paramExpr));
|
|
101
|
+
}
|
|
102
|
+
if ('min' in andCondition && andCondition.min !== undefined) {
|
|
103
|
+
const paramName = `${baseName}_and_${i}_min`;
|
|
104
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition.min);
|
|
105
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramExpr));
|
|
106
|
+
}
|
|
107
|
+
if ('max' in andCondition && andCondition.max !== undefined) {
|
|
108
|
+
const paramName = `${baseName}_and_${i}_max`;
|
|
109
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition.max);
|
|
110
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramExpr));
|
|
111
|
+
}
|
|
112
|
+
if ('like' in andCondition && andCondition.like !== undefined) {
|
|
113
|
+
const paramName = `${baseName}_and_${i}_like`;
|
|
114
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition.like);
|
|
115
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "like", paramExpr));
|
|
116
|
+
}
|
|
117
|
+
if ('ilike' in andCondition && andCondition.ilike !== undefined) {
|
|
118
|
+
const paramName = `${baseName}_and_${i}_ilike`;
|
|
119
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition.ilike);
|
|
120
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "ilike", paramExpr));
|
|
121
|
+
}
|
|
122
|
+
if ('in' in andCondition && andCondition.in !== undefined) {
|
|
123
|
+
const arr = andCondition.in;
|
|
124
|
+
const prms = arr.map((v, j) => new ValueComponent_1.ParameterExpression(`${baseName}_and_${i}_in_${j}`, v));
|
|
125
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "in", new ValueComponent_1.ParenExpression(new ValueComponent_1.ValueList(prms))));
|
|
126
|
+
}
|
|
127
|
+
if ('any' in andCondition && andCondition.any !== undefined) {
|
|
128
|
+
const paramName = `${baseName}_and_${i}_any`;
|
|
129
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition.any);
|
|
130
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "=", new ValueComponent_1.FunctionCall(null, "any", paramExpr, null)));
|
|
131
|
+
}
|
|
132
|
+
if ('<' in andCondition && andCondition['<'] !== undefined) {
|
|
133
|
+
const paramName = `${baseName}_and_${i}_lt`;
|
|
134
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['<']);
|
|
135
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "<", paramExpr));
|
|
136
|
+
}
|
|
137
|
+
if ('>' in andCondition && andCondition['>'] !== undefined) {
|
|
138
|
+
const paramName = `${baseName}_and_${i}_gt`;
|
|
139
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['>']);
|
|
140
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, ">", paramExpr));
|
|
141
|
+
}
|
|
142
|
+
if ('!=' in andCondition && andCondition['!='] !== undefined) {
|
|
143
|
+
const paramName = `${baseName}_and_${i}_neq`;
|
|
144
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['!=']);
|
|
145
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "!=", paramExpr));
|
|
146
|
+
}
|
|
147
|
+
if ('<>' in andCondition && andCondition['<>'] !== undefined) {
|
|
148
|
+
const paramName = `${baseName}_and_${i}_ne`;
|
|
149
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['<>']);
|
|
150
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "<>", paramExpr));
|
|
151
|
+
}
|
|
152
|
+
if ('<=' in andCondition && andCondition['<='] !== undefined) {
|
|
153
|
+
const paramName = `${baseName}_and_${i}_le`;
|
|
154
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['<=']);
|
|
155
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramExpr));
|
|
156
|
+
}
|
|
157
|
+
if ('>=' in andCondition && andCondition['>='] !== undefined) {
|
|
158
|
+
const paramName = `${baseName}_and_${i}_ge`;
|
|
159
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, andCondition['>=']);
|
|
160
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramExpr));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function injectOrConditions(q, baseName, orConditions, normalize, availableColumns) {
|
|
165
|
+
const orExpressions = [];
|
|
166
|
+
for (let i = 0; i < orConditions.length; i++) {
|
|
167
|
+
const orCondition = orConditions[i];
|
|
168
|
+
const columnName = orCondition.column || baseName;
|
|
169
|
+
// Find the target column
|
|
170
|
+
const entry = availableColumns.find(item => normalize(item.name) === normalize(columnName));
|
|
171
|
+
if (!entry) {
|
|
172
|
+
throw new Error(`Column '${columnName}' not found in query for OR condition`);
|
|
173
|
+
}
|
|
174
|
+
const columnRef = entry.value;
|
|
175
|
+
// Create conditions for this OR branch
|
|
176
|
+
const branchConditions = [];
|
|
177
|
+
// Process each operator in the OR condition
|
|
178
|
+
if ('=' in orCondition && orCondition['='] !== undefined) {
|
|
179
|
+
const paramName = `${baseName}_or_${i}_eq`;
|
|
180
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['=']);
|
|
181
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "=", paramExpr));
|
|
182
|
+
}
|
|
183
|
+
if ('min' in orCondition && orCondition.min !== undefined) {
|
|
184
|
+
const paramName = `${baseName}_or_${i}_min`;
|
|
185
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition.min);
|
|
186
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramExpr));
|
|
187
|
+
}
|
|
188
|
+
if ('max' in orCondition && orCondition.max !== undefined) {
|
|
189
|
+
const paramName = `${baseName}_or_${i}_max`;
|
|
190
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition.max);
|
|
191
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramExpr));
|
|
192
|
+
}
|
|
193
|
+
if ('like' in orCondition && orCondition.like !== undefined) {
|
|
194
|
+
const paramName = `${baseName}_or_${i}_like`;
|
|
195
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition.like);
|
|
196
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "like", paramExpr));
|
|
197
|
+
}
|
|
198
|
+
if ('ilike' in orCondition && orCondition.ilike !== undefined) {
|
|
199
|
+
const paramName = `${baseName}_or_${i}_ilike`;
|
|
200
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition.ilike);
|
|
201
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "ilike", paramExpr));
|
|
202
|
+
}
|
|
203
|
+
if ('in' in orCondition && orCondition.in !== undefined) {
|
|
204
|
+
const arr = orCondition.in;
|
|
205
|
+
const prms = arr.map((v, j) => new ValueComponent_1.ParameterExpression(`${baseName}_or_${i}_in_${j}`, v));
|
|
206
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "in", new ValueComponent_1.ParenExpression(new ValueComponent_1.ValueList(prms))));
|
|
207
|
+
}
|
|
208
|
+
if ('any' in orCondition && orCondition.any !== undefined) {
|
|
209
|
+
const paramName = `${baseName}_or_${i}_any`;
|
|
210
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition.any);
|
|
211
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "=", new ValueComponent_1.FunctionCall(null, "any", paramExpr, null)));
|
|
212
|
+
}
|
|
213
|
+
if ('<' in orCondition && orCondition['<'] !== undefined) {
|
|
214
|
+
const paramName = `${baseName}_or_${i}_lt`;
|
|
215
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['<']);
|
|
216
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<", paramExpr));
|
|
217
|
+
}
|
|
218
|
+
if ('>' in orCondition && orCondition['>'] !== undefined) {
|
|
219
|
+
const paramName = `${baseName}_or_${i}_gt`;
|
|
220
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['>']);
|
|
221
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">", paramExpr));
|
|
222
|
+
}
|
|
223
|
+
if ('!=' in orCondition && orCondition['!='] !== undefined) {
|
|
224
|
+
const paramName = `${baseName}_or_${i}_neq`;
|
|
225
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['!=']);
|
|
226
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "!=", paramExpr));
|
|
227
|
+
}
|
|
228
|
+
if ('<>' in orCondition && orCondition['<>'] !== undefined) {
|
|
229
|
+
const paramName = `${baseName}_or_${i}_ne`;
|
|
230
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['<>']);
|
|
231
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<>", paramExpr));
|
|
232
|
+
}
|
|
233
|
+
if ('<=' in orCondition && orCondition['<='] !== undefined) {
|
|
234
|
+
const paramName = `${baseName}_or_${i}_le`;
|
|
235
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['<=']);
|
|
236
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramExpr));
|
|
237
|
+
}
|
|
238
|
+
if ('>=' in orCondition && orCondition['>='] !== undefined) {
|
|
239
|
+
const paramName = `${baseName}_or_${i}_ge`;
|
|
240
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(paramName, orCondition['>=']);
|
|
241
|
+
branchConditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramExpr));
|
|
242
|
+
}
|
|
243
|
+
// Combine branch conditions with AND if there are multiple
|
|
244
|
+
if (branchConditions.length > 0) {
|
|
245
|
+
let branchExpr = branchConditions[0];
|
|
246
|
+
for (let j = 1; j < branchConditions.length; j++) {
|
|
247
|
+
branchExpr = new ValueComponent_1.BinaryExpression(branchExpr, "and", branchConditions[j]);
|
|
248
|
+
}
|
|
249
|
+
// Wrap in parentheses if multiple conditions within the OR branch
|
|
250
|
+
if (branchConditions.length > 1) {
|
|
251
|
+
orExpressions.push(new ValueComponent_1.ParenExpression(branchExpr));
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
orExpressions.push(branchExpr);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Combine OR expressions
|
|
259
|
+
if (orExpressions.length > 0) {
|
|
260
|
+
let finalOrExpr = orExpressions[0];
|
|
261
|
+
for (let i = 1; i < orExpressions.length; i++) {
|
|
262
|
+
finalOrExpr = new ValueComponent_1.BinaryExpression(finalOrExpr, "or", orExpressions[i]);
|
|
263
|
+
}
|
|
264
|
+
// Wrap in parentheses and append to WHERE clause
|
|
265
|
+
q.appendWhere(new ValueComponent_1.ParenExpression(finalOrExpr));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function validateOperators(stateValue, allowedOps, name) {
|
|
269
|
+
Object.keys(stateValue).forEach(op => {
|
|
270
|
+
if (!allowedOps.includes(op)) {
|
|
271
|
+
throw new Error(`Unsupported operator '${op}' for state key '${name}'`);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
function injectSimpleCondition(q, columnRef, name, stateValue) {
|
|
276
|
+
const paramExpr = new ValueComponent_1.ParameterExpression(name, stateValue);
|
|
277
|
+
q.appendWhere(new ValueComponent_1.BinaryExpression(columnRef, "=", paramExpr));
|
|
278
|
+
}
|
|
279
|
+
function injectComplexConditions(q, columnRef, name, stateValue) {
|
|
280
|
+
const conditions = [];
|
|
281
|
+
if ('=' in stateValue) {
|
|
282
|
+
const paramEq = new ValueComponent_1.ParameterExpression(name, stateValue['=']);
|
|
283
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "=", paramEq));
|
|
284
|
+
}
|
|
285
|
+
if ('min' in stateValue) {
|
|
286
|
+
const paramMin = new ValueComponent_1.ParameterExpression(name + "_min", stateValue.min);
|
|
287
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramMin));
|
|
288
|
+
}
|
|
289
|
+
if ('max' in stateValue) {
|
|
290
|
+
const paramMax = new ValueComponent_1.ParameterExpression(name + "_max", stateValue.max);
|
|
291
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramMax));
|
|
292
|
+
}
|
|
293
|
+
if ('like' in stateValue) {
|
|
294
|
+
const paramLike = new ValueComponent_1.ParameterExpression(name + "_like", stateValue.like);
|
|
295
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "like", paramLike));
|
|
296
|
+
}
|
|
297
|
+
if ('ilike' in stateValue) {
|
|
298
|
+
const paramIlike = new ValueComponent_1.ParameterExpression(name + "_ilike", stateValue.ilike);
|
|
299
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "ilike", paramIlike));
|
|
300
|
+
}
|
|
301
|
+
if ('in' in stateValue) {
|
|
302
|
+
const arr = stateValue['in'];
|
|
303
|
+
const prms = arr.map((v, i) => new ValueComponent_1.ParameterExpression(`${name}_in_${i}`, v));
|
|
304
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "in", new ValueComponent_1.ParenExpression(new ValueComponent_1.ValueList(prms))));
|
|
305
|
+
}
|
|
306
|
+
if ('any' in stateValue) {
|
|
307
|
+
const paramAny = new ValueComponent_1.ParameterExpression(name + "_any", stateValue.any);
|
|
308
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "=", new ValueComponent_1.FunctionCall(null, "any", paramAny, null)));
|
|
309
|
+
}
|
|
310
|
+
if ('<' in stateValue) {
|
|
311
|
+
const paramLT = new ValueComponent_1.ParameterExpression(name + "_lt", stateValue['<']);
|
|
312
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<", paramLT));
|
|
313
|
+
}
|
|
314
|
+
if ('>' in stateValue) {
|
|
315
|
+
const paramGT = new ValueComponent_1.ParameterExpression(name + "_gt", stateValue['>']);
|
|
316
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">", paramGT));
|
|
317
|
+
}
|
|
318
|
+
if ('!=' in stateValue) {
|
|
319
|
+
const paramNEQ = new ValueComponent_1.ParameterExpression(name + "_neq", stateValue['!=']);
|
|
320
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "!=", paramNEQ));
|
|
321
|
+
}
|
|
322
|
+
if ('<>' in stateValue) {
|
|
323
|
+
const paramNE = new ValueComponent_1.ParameterExpression(name + "_ne", stateValue['<>']);
|
|
324
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<>", paramNE));
|
|
325
|
+
}
|
|
326
|
+
if ('<=' in stateValue) {
|
|
327
|
+
const paramLE = new ValueComponent_1.ParameterExpression(name + "_le", stateValue['<=']);
|
|
328
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, "<=", paramLE));
|
|
329
|
+
}
|
|
330
|
+
if ('>=' in stateValue) {
|
|
331
|
+
const paramGE = new ValueComponent_1.ParameterExpression(name + "_ge", stateValue['>=']);
|
|
332
|
+
conditions.push(new ValueComponent_1.BinaryExpression(columnRef, ">=", paramGE));
|
|
333
|
+
}
|
|
334
|
+
// Combine conditions with AND and wrap in parentheses if multiple conditions for clarity
|
|
335
|
+
if (conditions.length === 1) {
|
|
336
|
+
// Single condition - no parentheses needed
|
|
337
|
+
q.appendWhere(conditions[0]);
|
|
338
|
+
}
|
|
339
|
+
else if (conditions.length > 1) {
|
|
340
|
+
// Multiple conditions - combine with AND and wrap in parentheses for clarity
|
|
341
|
+
let combinedExpr = conditions[0];
|
|
342
|
+
for (let i = 1; i < conditions.length; i++) {
|
|
343
|
+
combinedExpr = new ValueComponent_1.BinaryExpression(combinedExpr, "and", conditions[i]);
|
|
344
|
+
}
|
|
345
|
+
q.appendWhere(new ValueComponent_1.ParenExpression(combinedExpr));
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return query;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Type guard for OR conditions
|
|
352
|
+
*/
|
|
353
|
+
isOrCondition(value) {
|
|
354
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) && 'or' in value;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Type guard for AND conditions
|
|
358
|
+
*/
|
|
359
|
+
isAndCondition(value) {
|
|
360
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) && 'and' in value;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Type guard for explicit column mapping without OR
|
|
364
|
+
*/
|
|
365
|
+
isExplicitColumnMapping(value) {
|
|
366
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) &&
|
|
367
|
+
'column' in value && !('or' in value);
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Type guard for objects that need operator validation
|
|
371
|
+
*/
|
|
372
|
+
isValidatableObject(value) {
|
|
373
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) &&
|
|
374
|
+
Object.getPrototypeOf(value) === Object.prototype;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Parses a qualified column name (table.column) into its components
|
|
378
|
+
* @param qualifiedName The qualified name (e.g., 'users.name' or 'name')
|
|
379
|
+
* @returns Object with table and column parts, or null if invalid
|
|
380
|
+
*/
|
|
381
|
+
parseQualifiedColumnName(qualifiedName) {
|
|
382
|
+
const parts = qualifiedName.split('.');
|
|
383
|
+
if (parts.length === 2 && parts[0].trim() && parts[1].trim()) {
|
|
384
|
+
return {
|
|
385
|
+
table: parts[0].trim(),
|
|
386
|
+
column: parts[1].trim()
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
return null;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Checks if a column name is qualified (contains a dot)
|
|
393
|
+
*/
|
|
394
|
+
isQualifiedColumnName(name) {
|
|
395
|
+
return name.includes('.') && this.parseQualifiedColumnName(name) !== null;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Sanitizes parameter names by replacing dots with underscores
|
|
399
|
+
* This ensures qualified names like 'users.name' become 'users_name' as parameter names
|
|
400
|
+
*/
|
|
401
|
+
sanitizeParameterName(name) {
|
|
402
|
+
return name.replace(/\./g, '_');
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Type guard for column mapping presence
|
|
406
|
+
*/
|
|
407
|
+
hasColumnMapping(value) {
|
|
408
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) && 'column' in value;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Type guard for simple values (non-object conditions)
|
|
412
|
+
*/
|
|
413
|
+
isSimpleValue(value) {
|
|
414
|
+
return value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Date;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Processes a single state parameter
|
|
418
|
+
*/
|
|
419
|
+
processStateParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators) {
|
|
420
|
+
// Handle OR conditions specially - they don't need the main column to exist
|
|
421
|
+
if (this.isOrCondition(stateValue)) {
|
|
422
|
+
const orConditions = stateValue.or;
|
|
423
|
+
if (orConditions && orConditions.length > 0) {
|
|
424
|
+
const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, orConditions);
|
|
425
|
+
const allColumns = this.getAllAvailableColumns(targetQuery, collector);
|
|
426
|
+
injectOrConditions(targetQuery, name, orConditions, normalize, allColumns);
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
// Handle AND conditions specially - they don't need the main column to exist
|
|
431
|
+
if (this.isAndCondition(stateValue)) {
|
|
432
|
+
const andConditions = stateValue.and;
|
|
433
|
+
if (andConditions && andConditions.length > 0) {
|
|
434
|
+
const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, andConditions);
|
|
435
|
+
const allColumns = this.getAllAvailableColumns(targetQuery, collector);
|
|
436
|
+
injectAndConditions(targetQuery, name, andConditions, normalize, allColumns);
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
// Handle explicit column mapping without OR
|
|
441
|
+
if (this.isExplicitColumnMapping(stateValue)) {
|
|
442
|
+
const explicitColumnName = stateValue.column;
|
|
443
|
+
if (explicitColumnName) {
|
|
444
|
+
const queries = finder.find(query, explicitColumnName);
|
|
445
|
+
if (queries.length === 0) {
|
|
446
|
+
throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
|
|
447
|
+
}
|
|
448
|
+
for (const q of queries) {
|
|
449
|
+
const allColumns = this.getAllAvailableColumns(q, collector);
|
|
450
|
+
const entry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
|
|
451
|
+
if (!entry) {
|
|
452
|
+
throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
|
|
453
|
+
}
|
|
454
|
+
// if object, validate its keys
|
|
455
|
+
if (this.isValidatableObject(stateValue)) {
|
|
456
|
+
validateOperators(stateValue, allowedOps, name);
|
|
457
|
+
}
|
|
458
|
+
injectComplexConditions(q, entry.value, name, stateValue);
|
|
459
|
+
}
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// Handle regular column conditions
|
|
464
|
+
this.processRegularColumnCondition(name, stateValue, query, finder, collector, normalize, allowedOps, injectSimpleCondition, injectComplexConditions, validateOperators);
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Processes unqualified parameters, respecting qualified parameter overrides
|
|
468
|
+
*/
|
|
469
|
+
processUnqualifiedParameter(name, stateValue, query, finder, collector, normalize, allowedOps, injectOrConditions, injectAndConditions, injectSimpleCondition, injectComplexConditions, validateOperators, processedQualifiedColumns) {
|
|
470
|
+
// Handle OR conditions specially - they don't need the main column to exist
|
|
471
|
+
if (this.isOrCondition(stateValue)) {
|
|
472
|
+
const orConditions = stateValue.or;
|
|
473
|
+
if (orConditions && orConditions.length > 0) {
|
|
474
|
+
const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, orConditions);
|
|
475
|
+
const allColumns = this.getAllAvailableColumns(targetQuery, collector);
|
|
476
|
+
injectOrConditions(targetQuery, name, orConditions, normalize, allColumns);
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
// Handle AND conditions specially - they don't need the main column to exist
|
|
481
|
+
if (this.isAndCondition(stateValue)) {
|
|
482
|
+
const andConditions = stateValue.and;
|
|
483
|
+
if (andConditions && andConditions.length > 0) {
|
|
484
|
+
const targetQuery = this.findTargetQueryForLogicalCondition(finder, query, name, andConditions);
|
|
485
|
+
const allColumns = this.getAllAvailableColumns(targetQuery, collector);
|
|
486
|
+
injectAndConditions(targetQuery, name, andConditions, normalize, allColumns);
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
// Handle explicit column mapping without OR
|
|
491
|
+
if (this.isExplicitColumnMapping(stateValue)) {
|
|
492
|
+
const explicitColumnName = stateValue.column;
|
|
493
|
+
if (explicitColumnName) {
|
|
494
|
+
const queries = finder.find(query, explicitColumnName);
|
|
495
|
+
if (queries.length === 0) {
|
|
496
|
+
throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
|
|
497
|
+
}
|
|
498
|
+
for (const q of queries) {
|
|
499
|
+
const allColumns = this.getAllAvailableColumns(q, collector);
|
|
500
|
+
const entry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
|
|
501
|
+
if (!entry) {
|
|
502
|
+
throw new Error(`Explicit column '${explicitColumnName}' not found in query`);
|
|
503
|
+
}
|
|
504
|
+
// if object, validate its keys
|
|
505
|
+
if (this.isValidatableObject(stateValue)) {
|
|
506
|
+
validateOperators(stateValue, allowedOps, name);
|
|
507
|
+
}
|
|
508
|
+
injectComplexConditions(q, entry.value, name, stateValue);
|
|
509
|
+
}
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
// Find all queries that contain this unqualified column name
|
|
514
|
+
const queries = finder.find(query, name);
|
|
515
|
+
if (queries.length === 0) {
|
|
516
|
+
// Ignore non-existent columns if option is enabled
|
|
517
|
+
if (this.options.ignoreNonExistentColumns) {
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
throw new Error(`Column '${name}' not found in query`);
|
|
521
|
+
}
|
|
522
|
+
for (const q of queries) {
|
|
523
|
+
const allColumns = this.getAllAvailableColumns(q, collector);
|
|
524
|
+
const tableMapping = this.buildTableMapping(q);
|
|
525
|
+
// Find all columns with this name
|
|
526
|
+
const matchingColumns = allColumns.filter(item => normalize(item.name) === normalize(name));
|
|
527
|
+
for (const entry of matchingColumns) {
|
|
528
|
+
// Check if this column has already been processed by a qualified parameter
|
|
529
|
+
let skipColumn = false;
|
|
530
|
+
// Get the table name for this column
|
|
531
|
+
if (entry.value && typeof entry.value.getNamespace === 'function') {
|
|
532
|
+
const namespace = entry.value.getNamespace();
|
|
533
|
+
if (namespace) {
|
|
534
|
+
const realTableName = tableMapping.aliasToRealTable.get(namespace.toLowerCase());
|
|
535
|
+
if (realTableName) {
|
|
536
|
+
const qualifiedKey = `${realTableName.toLowerCase()}.${name.toLowerCase()}`;
|
|
537
|
+
if (processedQualifiedColumns.has(qualifiedKey)) {
|
|
538
|
+
skipColumn = true;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
// Skip if this column was already processed by a qualified parameter
|
|
544
|
+
if (skipColumn) {
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
const columnRef = entry.value;
|
|
548
|
+
// if object, validate its keys
|
|
549
|
+
if (this.isValidatableObject(stateValue)) {
|
|
550
|
+
validateOperators(stateValue, allowedOps, name);
|
|
551
|
+
}
|
|
552
|
+
// Handle explicit column mapping
|
|
553
|
+
let targetColumn = columnRef;
|
|
554
|
+
if (this.hasColumnMapping(stateValue)) {
|
|
555
|
+
const explicitColumnName = stateValue.column;
|
|
556
|
+
if (explicitColumnName) {
|
|
557
|
+
const explicitEntry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
|
|
558
|
+
if (explicitEntry) {
|
|
559
|
+
targetColumn = explicitEntry.value;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
// Use the original parameter name for unqualified columns
|
|
564
|
+
if (this.isSimpleValue(stateValue)) {
|
|
565
|
+
injectSimpleCondition(q, targetColumn, name, stateValue);
|
|
566
|
+
}
|
|
567
|
+
else {
|
|
568
|
+
injectComplexConditions(q, targetColumn, name, stateValue);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Processes regular column conditions (non-logical, non-explicit)
|
|
575
|
+
*/
|
|
576
|
+
processRegularColumnCondition(name, stateValue, query, finder, collector, normalize, allowedOps, injectSimpleCondition, injectComplexConditions, validateOperators) {
|
|
577
|
+
// Check if this is a qualified column name (table.column)
|
|
578
|
+
let searchColumnName = name;
|
|
579
|
+
let targetTableName = undefined;
|
|
580
|
+
if (this.isQualifiedColumnName(name)) {
|
|
581
|
+
const parsed = this.parseQualifiedColumnName(name);
|
|
582
|
+
if (parsed) {
|
|
583
|
+
searchColumnName = parsed.column;
|
|
584
|
+
targetTableName = parsed.table;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
const queries = finder.find(query, searchColumnName);
|
|
588
|
+
if (queries.length === 0) {
|
|
589
|
+
// Ignore non-existent columns if option is enabled
|
|
590
|
+
if (this.options.ignoreNonExistentColumns) {
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
throw new Error(`Column '${searchColumnName}' not found in query`);
|
|
594
|
+
}
|
|
595
|
+
for (const q of queries) {
|
|
596
|
+
const allColumns = this.getAllAvailableColumns(q, collector);
|
|
597
|
+
// For qualified names, find the column with the specific table name
|
|
598
|
+
let entry;
|
|
599
|
+
if (targetTableName) {
|
|
600
|
+
// Build table mapping for enhanced qualified name resolution
|
|
601
|
+
const tableMapping = this.buildTableMapping(q);
|
|
602
|
+
// Look for column with specific real table name only (no alias matching)
|
|
603
|
+
entry = allColumns.find(item => {
|
|
604
|
+
const normalizedColumnName = normalize(item.name) === normalize(searchColumnName);
|
|
605
|
+
if (!normalizedColumnName)
|
|
606
|
+
return false;
|
|
607
|
+
// Check if the column has the target table name
|
|
608
|
+
if (item.value && typeof item.value.getNamespace === 'function') {
|
|
609
|
+
const namespace = item.value.getNamespace();
|
|
610
|
+
if (namespace) {
|
|
611
|
+
const normalizedNamespace = normalize(namespace);
|
|
612
|
+
const normalizedTargetTable = normalize(targetTableName);
|
|
613
|
+
// Only check if targetTableName is a real table name that maps to this alias
|
|
614
|
+
const realTableName = tableMapping.aliasToRealTable.get(normalizedNamespace);
|
|
615
|
+
if (realTableName && normalize(realTableName) === normalizedTargetTable) {
|
|
616
|
+
return true;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
return false;
|
|
621
|
+
});
|
|
622
|
+
if (!entry) {
|
|
623
|
+
// If qualified name not found, try to be more lenient for backward compatibility
|
|
624
|
+
if (this.options.ignoreNonExistentColumns) {
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
627
|
+
// Check if the table exists at all
|
|
628
|
+
const tableMapping = this.buildTableMapping(q);
|
|
629
|
+
const hasRealTable = Array.from(tableMapping.realTableToAlias.keys()).some(realTable => normalize(realTable) === normalize(targetTableName));
|
|
630
|
+
const hasAliasTable = Array.from(tableMapping.aliasToRealTable.keys()).some(alias => normalize(alias) === normalize(targetTableName));
|
|
631
|
+
if (!hasRealTable && !hasAliasTable) {
|
|
632
|
+
// Table doesn't exist at all
|
|
633
|
+
throw new Error(`Column '${name}' (qualified as ${name}) not found in query`);
|
|
634
|
+
}
|
|
635
|
+
else if (hasAliasTable && !hasRealTable) {
|
|
636
|
+
// It's an alias, not a real table name
|
|
637
|
+
throw new Error(`Column '${name}' not found. Only real table names are allowed in qualified column references (e.g., 'users.name'), not aliases (e.g., 'u.name').`);
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
// Real table exists but column doesn't
|
|
641
|
+
throw new Error(`Column '${name}' (qualified as ${name}) not found in query`);
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
else {
|
|
646
|
+
// Unqualified name - find any matching column
|
|
647
|
+
entry = allColumns.find(item => normalize(item.name) === normalize(searchColumnName));
|
|
648
|
+
if (!entry) {
|
|
649
|
+
throw new Error(`Column '${searchColumnName}' not found in query`);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
const columnRef = entry.value;
|
|
653
|
+
// if object, validate its keys
|
|
654
|
+
if (this.isValidatableObject(stateValue)) {
|
|
655
|
+
validateOperators(stateValue, allowedOps, name);
|
|
656
|
+
}
|
|
657
|
+
// Handle explicit column mapping
|
|
658
|
+
let targetColumn = columnRef;
|
|
659
|
+
if (this.hasColumnMapping(stateValue)) {
|
|
660
|
+
const explicitColumnName = stateValue.column;
|
|
661
|
+
if (explicitColumnName) {
|
|
662
|
+
const explicitEntry = allColumns.find(item => normalize(item.name) === normalize(explicitColumnName));
|
|
663
|
+
if (explicitEntry) {
|
|
664
|
+
targetColumn = explicitEntry.value;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
// Use sanitized parameter name (replace dots with underscores)
|
|
669
|
+
// This ensures qualified names like 'users.name' become 'users_name' as parameter names
|
|
670
|
+
const parameterName = this.sanitizeParameterName(name);
|
|
671
|
+
if (this.isSimpleValue(stateValue)) {
|
|
672
|
+
injectSimpleCondition(q, targetColumn, parameterName, stateValue);
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
injectComplexConditions(q, targetColumn, parameterName, stateValue);
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
/**
|
|
680
|
+
* Finds target query for logical conditions (AND/OR)
|
|
681
|
+
*/
|
|
682
|
+
findTargetQueryForLogicalCondition(finder, query, baseName, conditions) {
|
|
683
|
+
const referencedColumns = conditions
|
|
684
|
+
.map(cond => cond.column || baseName)
|
|
685
|
+
.filter((col, index, arr) => arr.indexOf(col) === index); // unique columns
|
|
686
|
+
for (const colName of referencedColumns) {
|
|
687
|
+
const queries = finder.find(query, colName);
|
|
688
|
+
if (queries.length > 0) {
|
|
689
|
+
return queries[0];
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
const conditionType = conditions === conditions.or ? 'OR' : 'AND';
|
|
693
|
+
throw new Error(`None of the ${conditionType} condition columns [${referencedColumns.join(', ')}] found in query`);
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Collects all available columns from a query including CTE columns
|
|
697
|
+
*/
|
|
698
|
+
getAllAvailableColumns(query, collector) {
|
|
699
|
+
const columns = collector.collect(query);
|
|
700
|
+
const cteColumns = this.collectCTEColumns(query);
|
|
701
|
+
return [...columns, ...cteColumns];
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* Collects column names and references from CTE definitions
|
|
705
|
+
*/
|
|
706
|
+
collectCTEColumns(query) {
|
|
707
|
+
const cteColumns = [];
|
|
708
|
+
if (query.withClause) {
|
|
709
|
+
for (const cte of query.withClause.tables) {
|
|
710
|
+
try {
|
|
711
|
+
const columns = this.collectColumnsFromSelectQuery(cte.query);
|
|
712
|
+
cteColumns.push(...columns);
|
|
713
|
+
}
|
|
714
|
+
catch (error) {
|
|
715
|
+
// Log error but continue processing other CTEs
|
|
716
|
+
console.warn(`Failed to collect columns from CTE '${cte.getSourceAliasName()}':`, error);
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
return cteColumns;
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Recursively collects columns from any SelectQuery type
|
|
724
|
+
*/
|
|
725
|
+
collectColumnsFromSelectQuery(query) {
|
|
726
|
+
if (query instanceof SelectQuery_1.SimpleSelectQuery) {
|
|
727
|
+
const collector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeWildCard
|
|
728
|
+
SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use FullName to preserve JOIN table columns
|
|
729
|
+
{ upstream: true } // Enable upstream collection for qualified name resolution
|
|
730
|
+
);
|
|
731
|
+
return collector.collect(query);
|
|
732
|
+
}
|
|
733
|
+
else if (query instanceof BinarySelectQuery_1.BinarySelectQuery) {
|
|
734
|
+
// For UNION/INTERSECT/EXCEPT, columns from left side are representative
|
|
735
|
+
// since both sides must have matching column structure
|
|
736
|
+
return this.collectColumnsFromSelectQuery(query.left);
|
|
737
|
+
}
|
|
738
|
+
return [];
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* Builds a mapping between table aliases and real table names for enhanced qualified name resolution
|
|
742
|
+
*/
|
|
743
|
+
buildTableMapping(query) {
|
|
744
|
+
const aliasToRealTable = new Map();
|
|
745
|
+
const realTableToAlias = new Map();
|
|
746
|
+
try {
|
|
747
|
+
// Process FROM clause
|
|
748
|
+
if (query.fromClause) {
|
|
749
|
+
this.processSourceForMapping(query.fromClause.source, aliasToRealTable, realTableToAlias);
|
|
750
|
+
// Process JOIN clauses
|
|
751
|
+
if (query.fromClause.joins) {
|
|
752
|
+
for (const join of query.fromClause.joins) {
|
|
753
|
+
this.processSourceForMapping(join.source, aliasToRealTable, realTableToAlias);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
// Process CTE definitions
|
|
758
|
+
if (query.withClause) {
|
|
759
|
+
for (const cte of query.withClause.tables) {
|
|
760
|
+
const cteAlias = cte.getSourceAliasName();
|
|
761
|
+
if (cteAlias) {
|
|
762
|
+
// For CTEs, the "real table name" is the CTE name itself
|
|
763
|
+
aliasToRealTable.set(cteAlias.toLowerCase(), cteAlias);
|
|
764
|
+
realTableToAlias.set(cteAlias.toLowerCase(), cteAlias);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
catch (error) {
|
|
770
|
+
// Log warning but continue with empty mapping for safety
|
|
771
|
+
console.warn('Failed to build table mapping:', error);
|
|
772
|
+
}
|
|
773
|
+
return { aliasToRealTable, realTableToAlias };
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Helper method to process a single SourceExpression for table mapping
|
|
777
|
+
*/
|
|
778
|
+
processSourceForMapping(source, aliasToRealTable, realTableToAlias) {
|
|
779
|
+
var _a, _b;
|
|
780
|
+
try {
|
|
781
|
+
if (source.datasource instanceof Clause_1.TableSource) {
|
|
782
|
+
const realTableName = source.datasource.getSourceName();
|
|
783
|
+
const aliasName = ((_b = (_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.name) || realTableName;
|
|
784
|
+
if (realTableName && aliasName) {
|
|
785
|
+
// Store mappings in lowercase for case-insensitive lookup
|
|
786
|
+
aliasToRealTable.set(aliasName.toLowerCase(), realTableName);
|
|
787
|
+
realTableToAlias.set(realTableName.toLowerCase(), aliasName);
|
|
788
|
+
// Also store direct mapping if alias equals real table name
|
|
789
|
+
if (aliasName === realTableName) {
|
|
790
|
+
aliasToRealTable.set(realTableName.toLowerCase(), realTableName);
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
catch (error) {
|
|
796
|
+
// Log warning but continue processing other sources
|
|
797
|
+
console.warn('Failed to process source for mapping:', error);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
exports.SqlParamInjector = SqlParamInjector;
|
|
802
|
+
//# sourceMappingURL=SqlParamInjector.js.map
|