rawsql-ts 0.12.0 → 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 +11 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +16 -16
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/index.d.ts +12 -0
- package/dist/esm/src/index.js +11 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/Clause.d.ts +7 -3
- package/dist/esm/src/models/Clause.js +17 -4
- package/dist/esm/src/models/Clause.js.map +1 -1
- package/dist/esm/src/models/DDLStatements.d.ts +14 -2
- package/dist/esm/src/models/DDLStatements.js +12 -0
- package/dist/esm/src/models/DDLStatements.js.map +1 -1
- package/dist/esm/src/models/InsertQuery.d.ts +1 -4
- package/dist/esm/src/models/InsertQuery.js +3 -5
- package/dist/esm/src/models/InsertQuery.js.map +1 -1
- package/dist/esm/src/models/SqlPrintToken.d.ts +1 -0
- package/dist/esm/src/models/SqlPrintToken.js +1 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/src/models/TableDefinitionModel.d.ts +39 -0
- package/dist/esm/src/models/TableDefinitionModel.js +77 -0
- package/dist/esm/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/esm/src/models/ValuesQuery.d.ts +2 -0
- package/dist/esm/src/models/ValuesQuery.js +1 -0
- package/dist/esm/src/models/ValuesQuery.js.map +1 -1
- package/dist/esm/src/parsers/AlterTableParser.js +1 -1
- package/dist/esm/src/parsers/AlterTableParser.js.map +1 -1
- package/dist/esm/src/parsers/InsertQueryParser.js +4 -1
- package/dist/esm/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/ReturningClauseParser.js +33 -47
- package/dist/esm/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlParser.d.ts +0 -1
- package/dist/esm/src/parsers/SqlParser.js +44 -58
- package/dist/esm/src/parsers/SqlParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +23 -5
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js +7 -0
- package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- 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.d.ts +13 -0
- package/dist/esm/src/transformers/DDLGeneralizer.js +98 -0
- package/dist/esm/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/esm/src/transformers/DDLToFixtureConverter.d.ts +19 -0
- package/dist/esm/src/transformers/DDLToFixtureConverter.js +202 -0
- package/dist/esm/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/esm/src/transformers/DeleteResultSelectConverter.d.ts +53 -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/FixtureCteBuilder.d.ts +60 -0
- package/dist/esm/src/transformers/FixtureCteBuilder.js +147 -0
- package/dist/esm/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js +5 -2
- package/dist/esm/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -1
- 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/MergeResultSelectConverter.d.ts +38 -0
- package/dist/esm/src/transformers/MergeResultSelectConverter.js +306 -0
- package/dist/esm/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/QueryBuilder.d.ts +11 -0
- package/dist/esm/src/transformers/QueryBuilder.js +19 -3
- package/dist/esm/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/SelectResultSelectConverter.d.ts +10 -0
- package/dist/esm/src/transformers/SelectResultSelectConverter.js +32 -0
- package/dist/esm/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/SimulatedSelectConverter.d.ts +23 -0
- package/dist/esm/src/transformers/SimulatedSelectConverter.js +61 -0
- package/dist/esm/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.d.ts +51 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js +340 -0
- package/dist/esm/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/esm/src/utils/SelectQueryWithClauseHelper.d.ts +12 -0
- package/dist/esm/src/utils/SelectQueryWithClauseHelper.js +43 -0
- package/dist/esm/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/esm/src/utils/ValueComponentRewriter.d.ts +3 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js +180 -0
- package/dist/esm/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/formatters/OriginalFormatRestorer.js +139 -0
- package/dist/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +17 -17
- package/dist/index.min.js.map +3 -3
- package/dist/models/BinarySelectQuery.js +198 -0
- package/dist/models/BinarySelectQuery.js.map +1 -0
- package/dist/models/CTEError.js +37 -0
- package/dist/models/CTEError.js.map +1 -0
- package/dist/models/Clause.js +535 -0
- package/dist/models/Clause.js.map +1 -0
- package/dist/models/CreateTableQuery.js +135 -0
- package/dist/models/CreateTableQuery.js.map +1 -0
- package/dist/models/DDLStatements.js +275 -0
- package/dist/models/DDLStatements.js.map +1 -0
- package/dist/models/DeleteQuery.js +20 -0
- package/dist/models/DeleteQuery.js.map +1 -0
- package/dist/models/FormattingLexeme.js +3 -0
- package/dist/models/FormattingLexeme.js.map +1 -0
- package/dist/models/HintClause.js +41 -0
- package/dist/models/HintClause.js.map +1 -0
- package/dist/models/InsertQuery.js +23 -0
- package/dist/models/InsertQuery.js.map +1 -0
- package/dist/models/KeywordTrie.js +54 -0
- package/dist/models/KeywordTrie.js.map +1 -0
- package/dist/models/Lexeme.js +22 -0
- package/dist/models/Lexeme.js.map +1 -0
- package/dist/models/MergeQuery.js +104 -0
- package/dist/models/MergeQuery.js.map +1 -0
- package/dist/models/SelectQuery.js +22 -0
- package/dist/models/SelectQuery.js.map +1 -0
- package/dist/models/SimpleSelectQuery.js +648 -0
- package/dist/models/SimpleSelectQuery.js.map +1 -0
- package/dist/models/SqlComponent.js +73 -0
- package/dist/models/SqlComponent.js.map +1 -0
- package/dist/models/SqlPrintToken.js +143 -0
- package/dist/models/SqlPrintToken.js.map +1 -0
- package/dist/models/TableDefinitionModel.js +86 -0
- package/dist/models/TableDefinitionModel.js.map +1 -0
- package/dist/models/UpdateQuery.js +29 -0
- package/dist/models/UpdateQuery.js.map +1 -0
- package/dist/models/ValueComponent.js +380 -0
- package/dist/models/ValueComponent.js.map +1 -0
- package/dist/models/ValuesQuery.js +62 -0
- package/dist/models/ValuesQuery.js.map +1 -0
- package/dist/parsers/AlterTableParser.js +490 -0
- package/dist/parsers/AlterTableParser.js.map +1 -0
- package/dist/parsers/AnalyzeStatementParser.js +94 -0
- package/dist/parsers/AnalyzeStatementParser.js.map +1 -0
- package/dist/parsers/CommandExpressionParser.js +213 -0
- package/dist/parsers/CommandExpressionParser.js.map +1 -0
- package/dist/parsers/CommonTableParser.js +177 -0
- package/dist/parsers/CommonTableParser.js.map +1 -0
- package/dist/parsers/CreateIndexParser.js +241 -0
- package/dist/parsers/CreateIndexParser.js.map +1 -0
- package/dist/parsers/CreateTableParser.js +738 -0
- package/dist/parsers/CreateTableParser.js.map +1 -0
- package/dist/parsers/DeleteClauseParser.js +37 -0
- package/dist/parsers/DeleteClauseParser.js.map +1 -0
- package/dist/parsers/DeleteQueryParser.js +77 -0
- package/dist/parsers/DeleteQueryParser.js.map +1 -0
- package/dist/parsers/DropConstraintParser.js +51 -0
- package/dist/parsers/DropConstraintParser.js.map +1 -0
- package/dist/parsers/DropIndexParser.js +73 -0
- package/dist/parsers/DropIndexParser.js.map +1 -0
- package/dist/parsers/DropTableParser.js +63 -0
- package/dist/parsers/DropTableParser.js.map +1 -0
- package/dist/parsers/ExplainStatementParser.js +189 -0
- package/dist/parsers/ExplainStatementParser.js.map +1 -0
- package/dist/parsers/FetchClauseParser.js +89 -0
- package/dist/parsers/FetchClauseParser.js.map +1 -0
- package/dist/parsers/ForClauseParser.js +58 -0
- package/dist/parsers/ForClauseParser.js.map +1 -0
- package/dist/parsers/FromClauseParser.js +54 -0
- package/dist/parsers/FromClauseParser.js.map +1 -0
- package/dist/parsers/FullNameParser.js +110 -0
- package/dist/parsers/FullNameParser.js.map +1 -0
- package/dist/parsers/FunctionExpressionParser.js +524 -0
- package/dist/parsers/FunctionExpressionParser.js.map +1 -0
- package/dist/parsers/GroupByParser.js +58 -0
- package/dist/parsers/GroupByParser.js.map +1 -0
- package/dist/parsers/HavingParser.js +36 -0
- package/dist/parsers/HavingParser.js.map +1 -0
- package/dist/parsers/IdentifierDecorator.js +17 -0
- package/dist/parsers/IdentifierDecorator.js.map +1 -0
- package/dist/parsers/IdentifierParser.js +15 -0
- package/dist/parsers/IdentifierParser.js.map +1 -0
- package/dist/parsers/InsertQueryParser.js +162 -0
- package/dist/parsers/InsertQueryParser.js.map +1 -0
- package/dist/parsers/JoinClauseParser.js +117 -0
- package/dist/parsers/JoinClauseParser.js.map +1 -0
- package/dist/parsers/JoinOnClauseParser.js +21 -0
- package/dist/parsers/JoinOnClauseParser.js.map +1 -0
- package/dist/parsers/JoinUsingClauseParser.js +23 -0
- package/dist/parsers/JoinUsingClauseParser.js.map +1 -0
- package/dist/parsers/KeywordParser.js +99 -0
- package/dist/parsers/KeywordParser.js.map +1 -0
- package/dist/parsers/LimitClauseParser.js +38 -0
- package/dist/parsers/LimitClauseParser.js.map +1 -0
- package/dist/parsers/LiteralParser.js +48 -0
- package/dist/parsers/LiteralParser.js.map +1 -0
- package/dist/parsers/MergeQueryParser.js +483 -0
- package/dist/parsers/MergeQueryParser.js.map +1 -0
- package/dist/parsers/OffsetClauseParser.js +42 -0
- package/dist/parsers/OffsetClauseParser.js.map +1 -0
- package/dist/parsers/OrderByClauseParser.js +108 -0
- package/dist/parsers/OrderByClauseParser.js.map +1 -0
- package/dist/parsers/OverExpressionParser.js +44 -0
- package/dist/parsers/OverExpressionParser.js.map +1 -0
- package/dist/parsers/ParameterDecorator.js +40 -0
- package/dist/parsers/ParameterDecorator.js.map +1 -0
- package/dist/parsers/ParameterExpressionParser.js +24 -0
- package/dist/parsers/ParameterExpressionParser.js.map +1 -0
- package/dist/parsers/ParenExpressionParser.js +109 -0
- package/dist/parsers/ParenExpressionParser.js.map +1 -0
- package/dist/parsers/ParseError.js +25 -0
- package/dist/parsers/ParseError.js.map +1 -0
- package/dist/parsers/PartitionByParser.js +53 -0
- package/dist/parsers/PartitionByParser.js.map +1 -0
- package/dist/parsers/ReturningClauseParser.js +64 -0
- package/dist/parsers/ReturningClauseParser.js.map +1 -0
- package/dist/parsers/SelectClauseParser.js +244 -0
- package/dist/parsers/SelectClauseParser.js.map +1 -0
- package/dist/parsers/SelectQueryParser.js +564 -0
- package/dist/parsers/SelectQueryParser.js.map +1 -0
- package/dist/parsers/SequenceParser.js +245 -0
- package/dist/parsers/SequenceParser.js.map +1 -0
- package/dist/parsers/SetClauseParser.js +125 -0
- package/dist/parsers/SetClauseParser.js.map +1 -0
- package/dist/parsers/SourceAliasExpressionParser.js +60 -0
- package/dist/parsers/SourceAliasExpressionParser.js.map +1 -0
- package/dist/parsers/SourceExpressionParser.js +69 -0
- package/dist/parsers/SourceExpressionParser.js.map +1 -0
- package/dist/parsers/SourceParser.js +144 -0
- package/dist/parsers/SourceParser.js.map +1 -0
- package/dist/parsers/SqlParser.js +431 -0
- package/dist/parsers/SqlParser.js.map +1 -0
- package/dist/parsers/SqlPrintTokenParser.js +3289 -0
- package/dist/parsers/SqlPrintTokenParser.js.map +1 -0
- package/dist/parsers/SqlTokenizer.js +553 -0
- package/dist/parsers/SqlTokenizer.js.map +1 -0
- package/dist/parsers/StringSpecifierExpressionParser.js +22 -0
- package/dist/parsers/StringSpecifierExpressionParser.js.map +1 -0
- package/dist/parsers/UnaryExpressionParser.js +39 -0
- package/dist/parsers/UnaryExpressionParser.js.map +1 -0
- package/dist/parsers/UpdateClauseParser.js +21 -0
- package/dist/parsers/UpdateClauseParser.js.map +1 -0
- package/dist/parsers/UpdateQueryParser.js +98 -0
- package/dist/parsers/UpdateQueryParser.js.map +1 -0
- package/dist/parsers/UsingClauseParser.js +33 -0
- package/dist/parsers/UsingClauseParser.js.map +1 -0
- package/dist/parsers/ValueParser.js +562 -0
- package/dist/parsers/ValueParser.js.map +1 -0
- package/dist/parsers/ValuesQueryParser.js +112 -0
- package/dist/parsers/ValuesQueryParser.js.map +1 -0
- package/dist/parsers/WhereClauseParser.js +51 -0
- package/dist/parsers/WhereClauseParser.js.map +1 -0
- package/dist/parsers/WindowClauseParser.js +57 -0
- package/dist/parsers/WindowClauseParser.js.map +1 -0
- package/dist/parsers/WindowExpressionParser.js +163 -0
- package/dist/parsers/WindowExpressionParser.js.map +1 -0
- package/dist/parsers/WithClauseParser.js +165 -0
- package/dist/parsers/WithClauseParser.js.map +1 -0
- package/dist/parsers/utils/LexemeCommentUtils.js +29 -0
- package/dist/parsers/utils/LexemeCommentUtils.js.map +1 -0
- package/dist/reporting/models/DataFlowEdge.js +58 -0
- package/dist/reporting/models/DataFlowEdge.js.map +1 -0
- package/dist/reporting/models/DataFlowGraph.js +138 -0
- package/dist/reporting/models/DataFlowGraph.js.map +1 -0
- package/dist/reporting/models/DataFlowNode.js +148 -0
- package/dist/reporting/models/DataFlowNode.js.map +1 -0
- package/dist/reporting/services/CTEHandler.js +58 -0
- package/dist/reporting/services/CTEHandler.js.map +1 -0
- package/dist/reporting/services/DataSourceHandler.js +95 -0
- package/dist/reporting/services/DataSourceHandler.js.map +1 -0
- package/dist/reporting/services/JoinHandler.js +84 -0
- package/dist/reporting/services/JoinHandler.js.map +1 -0
- package/dist/reporting/services/ProcessHandler.js +26 -0
- package/dist/reporting/services/ProcessHandler.js.map +1 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.js +13 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Clause.d.ts +7 -3
- package/dist/src/models/Clause.js +16 -3
- package/dist/src/models/Clause.js.map +1 -1
- package/dist/src/models/DDLStatements.d.ts +97 -2
- package/dist/src/models/DDLStatements.js +14 -1
- package/dist/src/models/DDLStatements.js.map +1 -1
- package/dist/src/models/InsertQuery.d.ts +1 -4
- package/dist/src/models/InsertQuery.js +3 -5
- package/dist/src/models/InsertQuery.js.map +1 -1
- package/dist/src/models/SqlPrintToken.d.ts +6 -0
- package/dist/src/models/SqlPrintToken.js +1 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -1
- package/dist/src/models/TableDefinitionModel.d.ts +41 -0
- package/dist/src/models/TableDefinitionModel.js +85 -0
- package/dist/src/models/TableDefinitionModel.js.map +1 -0
- package/dist/src/models/ValueComponent.d.ts +2 -1
- package/dist/src/models/ValuesQuery.d.ts +2 -0
- package/dist/src/models/ValuesQuery.js +1 -0
- package/dist/src/models/ValuesQuery.js.map +1 -1
- package/dist/src/parsers/AlterTableParser.d.ts +1 -0
- package/dist/src/parsers/AlterTableParser.js +26 -5
- package/dist/src/parsers/AlterTableParser.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.d.ts +1 -0
- package/dist/src/parsers/InsertQueryParser.js +4 -1
- package/dist/src/parsers/InsertQueryParser.js.map +1 -1
- package/dist/src/parsers/ReturningClauseParser.js +33 -47
- package/dist/src/parsers/ReturningClauseParser.js.map +1 -1
- package/dist/src/parsers/SequenceParser.d.ts +16 -0
- package/dist/src/parsers/SqlParser.d.ts +4 -3
- package/dist/src/parsers/SqlParser.js +44 -63
- package/dist/src/parsers/SqlParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +9 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +22 -4
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +1 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js +7 -0
- package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
- package/dist/src/transformers/DDLDiffGenerator.d.ts +18 -0
- package/dist/src/transformers/DDLDiffGenerator.js +313 -0
- package/dist/src/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/src/transformers/DDLGeneralizer.d.ts +13 -0
- package/dist/src/transformers/DDLGeneralizer.js +119 -0
- package/dist/src/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/src/transformers/DDLToFixtureConverter.d.ts +19 -0
- package/dist/src/transformers/DDLToFixtureConverter.js +206 -0
- package/dist/src/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/src/transformers/DeleteResultSelectConverter.d.ts +53 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js +398 -0
- package/dist/src/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/FixtureCteBuilder.d.ts +60 -0
- package/dist/src/transformers/FixtureCteBuilder.js +151 -0
- package/dist/src/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js +5 -2
- package/dist/src/transformers/InsertQuerySelectValuesConverter.js.map +1 -1
- package/dist/src/transformers/InsertResultSelectConverter.d.ts +67 -0
- package/dist/src/transformers/InsertResultSelectConverter.js +499 -0
- package/dist/src/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/MergeResultSelectConverter.d.ts +38 -0
- package/dist/src/transformers/MergeResultSelectConverter.js +310 -0
- package/dist/src/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/QueryBuilder.d.ts +11 -0
- package/dist/src/transformers/QueryBuilder.js +19 -3
- package/dist/src/transformers/QueryBuilder.js.map +1 -1
- package/dist/src/transformers/SelectResultSelectConverter.d.ts +10 -0
- package/dist/src/transformers/SelectResultSelectConverter.js +36 -0
- package/dist/src/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/src/transformers/SimulatedSelectConverter.d.ts +23 -0
- package/dist/src/transformers/SimulatedSelectConverter.js +65 -0
- package/dist/src/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/src/transformers/UpdateResultSelectConverter.d.ts +51 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js +344 -0
- package/dist/src/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/src/types/GenericFixture.d.ts +17 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.d.ts +12 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js +47 -0
- package/dist/src/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/src/utils/TableNameUtils.d.ts +10 -0
- package/dist/src/utils/ValueComponentRewriter.d.ts +3 -0
- package/dist/src/utils/ValueComponentRewriter.js +183 -0
- package/dist/src/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/tokenReaders/BaseTokenReader.js +86 -0
- package/dist/tokenReaders/BaseTokenReader.js.map +1 -0
- package/dist/tokenReaders/CommandTokenReader.js +221 -0
- package/dist/tokenReaders/CommandTokenReader.js.map +1 -0
- package/dist/tokenReaders/EscapedIdentifierTokenReader.js +99 -0
- package/dist/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
- package/dist/tokenReaders/FunctionTokenReader.js +47 -0
- package/dist/tokenReaders/FunctionTokenReader.js.map +1 -0
- package/dist/tokenReaders/IdentifierTokenReader.js +34 -0
- package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -0
- package/dist/tokenReaders/LiteralTokenReader.js +329 -0
- package/dist/tokenReaders/LiteralTokenReader.js.map +1 -0
- package/dist/tokenReaders/OperatorTokenReader.js +152 -0
- package/dist/tokenReaders/OperatorTokenReader.js.map +1 -0
- package/dist/tokenReaders/ParameterTokenReader.js +190 -0
- package/dist/tokenReaders/ParameterTokenReader.js.map +1 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.js +31 -0
- package/dist/tokenReaders/StringSpecifierTokenReader.js.map +1 -0
- package/dist/tokenReaders/SymbolTokenReader.js +35 -0
- package/dist/tokenReaders/SymbolTokenReader.js.map +1 -0
- package/dist/tokenReaders/TokenReaderManager.js +110 -0
- package/dist/tokenReaders/TokenReaderManager.js.map +1 -0
- package/dist/tokenReaders/TypeTokenReader.js +69 -0
- package/dist/tokenReaders/TypeTokenReader.js.map +1 -0
- package/dist/transformers/AliasRenamer.js +600 -0
- package/dist/transformers/AliasRenamer.js.map +1 -0
- package/dist/transformers/CTEBuilder.js +188 -0
- package/dist/transformers/CTEBuilder.js.map +1 -0
- package/dist/transformers/CTECollector.js +409 -0
- package/dist/transformers/CTECollector.js.map +1 -0
- package/dist/transformers/CTEComposer.js +302 -0
- package/dist/transformers/CTEComposer.js.map +1 -0
- package/dist/transformers/CTEDependencyAnalyzer.js +285 -0
- package/dist/transformers/CTEDependencyAnalyzer.js.map +1 -0
- package/dist/transformers/CTEDependencyTracer.js +253 -0
- package/dist/transformers/CTEDependencyTracer.js.map +1 -0
- package/dist/transformers/CTEDisabler.js +355 -0
- package/dist/transformers/CTEDisabler.js.map +1 -0
- package/dist/transformers/CTEInjector.js +83 -0
- package/dist/transformers/CTEInjector.js.map +1 -0
- package/dist/transformers/CTENormalizer.js +46 -0
- package/dist/transformers/CTENormalizer.js.map +1 -0
- package/dist/transformers/CTEQueryDecomposer.js +589 -0
- package/dist/transformers/CTEQueryDecomposer.js.map +1 -0
- package/dist/transformers/CTERenamer.js +486 -0
- package/dist/transformers/CTERenamer.js.map +1 -0
- package/dist/transformers/CTETableReferenceCollector.js +358 -0
- package/dist/transformers/CTETableReferenceCollector.js.map +1 -0
- package/dist/transformers/ColumnReferenceCollector.js +478 -0
- package/dist/transformers/ColumnReferenceCollector.js.map +1 -0
- package/dist/transformers/DDLDiffGenerator.js +313 -0
- package/dist/transformers/DDLDiffGenerator.js.map +1 -0
- package/dist/transformers/DDLGeneralizer.js +119 -0
- package/dist/transformers/DDLGeneralizer.js.map +1 -0
- package/dist/transformers/DDLToFixtureConverter.js +206 -0
- package/dist/transformers/DDLToFixtureConverter.js.map +1 -0
- package/dist/transformers/DeleteResultSelectConverter.js +414 -0
- package/dist/transformers/DeleteResultSelectConverter.js.map +1 -0
- package/dist/transformers/DynamicQueryBuilder.js +164 -0
- package/dist/transformers/DynamicQueryBuilder.js.map +1 -0
- package/dist/transformers/EnhancedJsonMapping.js +223 -0
- package/dist/transformers/EnhancedJsonMapping.js.map +1 -0
- package/dist/transformers/FilterableItemCollector.js +259 -0
- package/dist/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/transformers/FixtureCteBuilder.js +151 -0
- package/dist/transformers/FixtureCteBuilder.js.map +1 -0
- package/dist/transformers/FormatOptionResolver.js +67 -0
- package/dist/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/transformers/Formatter.js +38 -0
- package/dist/transformers/Formatter.js.map +1 -0
- package/dist/transformers/InsertQuerySelectValuesConverter.js +125 -0
- package/dist/transformers/InsertQuerySelectValuesConverter.js.map +1 -0
- package/dist/transformers/InsertResultSelectConverter.js +589 -0
- package/dist/transformers/InsertResultSelectConverter.js.map +1 -0
- package/dist/transformers/JoinAggregationDecomposer.js +497 -0
- package/dist/transformers/JoinAggregationDecomposer.js.map +1 -0
- package/dist/transformers/JsonMappingConverter.js +392 -0
- package/dist/transformers/JsonMappingConverter.js.map +1 -0
- package/dist/transformers/JsonMappingUnifier.js +216 -0
- package/dist/transformers/JsonMappingUnifier.js.map +1 -0
- package/dist/transformers/LinePrinter.js +148 -0
- package/dist/transformers/LinePrinter.js.map +1 -0
- package/dist/transformers/MergeResultSelectConverter.js +310 -0
- package/dist/transformers/MergeResultSelectConverter.js.map +1 -0
- package/dist/transformers/ModelDrivenJsonMapping.js +122 -0
- package/dist/transformers/ModelDrivenJsonMapping.js.map +1 -0
- package/dist/transformers/OnelineFormattingHelper.js +99 -0
- package/dist/transformers/OnelineFormattingHelper.js.map +1 -0
- package/dist/transformers/ParameterCollector.js +37 -0
- package/dist/transformers/ParameterCollector.js.map +1 -0
- package/dist/transformers/PostgresArrayEntityCteBuilder.js +458 -0
- package/dist/transformers/PostgresArrayEntityCteBuilder.js.map +1 -0
- package/dist/transformers/PostgresJsonQueryBuilder.js +245 -0
- package/dist/transformers/PostgresJsonQueryBuilder.js.map +1 -0
- package/dist/transformers/PostgresObjectEntityCteBuilder.js +347 -0
- package/dist/transformers/PostgresObjectEntityCteBuilder.js.map +1 -0
- package/dist/transformers/QueryBuilder.js +649 -0
- package/dist/transformers/QueryBuilder.js.map +1 -0
- package/dist/transformers/QueryFlowDiagramGenerator.js +157 -0
- package/dist/transformers/QueryFlowDiagramGenerator.js.map +1 -0
- package/dist/transformers/SchemaCollector.js +523 -0
- package/dist/transformers/SchemaCollector.js.map +1 -0
- package/dist/transformers/SelectResultSelectConverter.js +36 -0
- package/dist/transformers/SelectResultSelectConverter.js.map +1 -0
- package/dist/transformers/SelectValueCollector.js +244 -0
- package/dist/transformers/SelectValueCollector.js.map +1 -0
- package/dist/transformers/SelectableColumnCollector.js +674 -0
- package/dist/transformers/SelectableColumnCollector.js.map +1 -0
- package/dist/transformers/SimulatedSelectConverter.js +65 -0
- package/dist/transformers/SimulatedSelectConverter.js.map +1 -0
- package/dist/transformers/SmartRenamer.js +422 -0
- package/dist/transformers/SmartRenamer.js.map +1 -0
- package/dist/transformers/SqlFormatter.js +77 -0
- package/dist/transformers/SqlFormatter.js.map +1 -0
- package/dist/transformers/SqlIdentifierRenamer.js +504 -0
- package/dist/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/transformers/SqlOutputToken.js +13 -0
- package/dist/transformers/SqlOutputToken.js.map +1 -0
- package/dist/transformers/SqlPaginationInjector.js +108 -0
- package/dist/transformers/SqlPaginationInjector.js.map +1 -0
- package/dist/transformers/SqlParamInjector.js +802 -0
- package/dist/transformers/SqlParamInjector.js.map +1 -0
- package/dist/transformers/SqlParameterBinder.js +70 -0
- package/dist/transformers/SqlParameterBinder.js.map +1 -0
- package/dist/transformers/SqlPrinter.js +1478 -0
- package/dist/transformers/SqlPrinter.js.map +1 -0
- package/dist/transformers/SqlSortInjector.js +153 -0
- package/dist/transformers/SqlSortInjector.js.map +1 -0
- package/dist/transformers/TableColumnResolver.js +3 -0
- package/dist/transformers/TableColumnResolver.js.map +1 -0
- package/dist/transformers/TableSourceCollector.js +439 -0
- package/dist/transformers/TableSourceCollector.js.map +1 -0
- package/dist/transformers/TypeTransformationPostProcessor.js +363 -0
- package/dist/transformers/TypeTransformationPostProcessor.js.map +1 -0
- package/dist/transformers/UpdateResultSelectConverter.js +359 -0
- package/dist/transformers/UpdateResultSelectConverter.js.map +1 -0
- package/dist/transformers/UpstreamSelectQueryFinder.js +184 -0
- package/dist/transformers/UpstreamSelectQueryFinder.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/Formatting.js +3 -0
- package/dist/types/Formatting.js.map +1 -0
- package/dist/types/GenericFixture.js +3 -0
- package/dist/types/GenericFixture.js.map +1 -0
- package/dist/utils/CTERegionDetector.js +464 -0
- package/dist/utils/CTERegionDetector.js.map +1 -0
- package/dist/utils/CommentEditor.js +345 -0
- package/dist/utils/CommentEditor.js.map +1 -0
- package/dist/utils/CommentUtils.js +69 -0
- package/dist/utils/CommentUtils.js.map +1 -0
- package/dist/utils/CursorContextAnalyzer.js +338 -0
- package/dist/utils/CursorContextAnalyzer.js.map +1 -0
- package/dist/utils/IntelliSenseApi.js +292 -0
- package/dist/utils/IntelliSenseApi.js.map +1 -0
- package/dist/utils/JsonSchemaValidator.js +215 -0
- package/dist/utils/JsonSchemaValidator.js.map +1 -0
- package/dist/utils/KeywordCache.js +206 -0
- package/dist/utils/KeywordCache.js.map +1 -0
- package/dist/utils/LexemeCursor.js +314 -0
- package/dist/utils/LexemeCursor.js.map +1 -0
- package/dist/utils/MultiQuerySplitter.js +292 -0
- package/dist/utils/MultiQuerySplitter.js.map +1 -0
- package/dist/utils/OperatorPrecedence.js +107 -0
- package/dist/utils/OperatorPrecedence.js.map +1 -0
- package/dist/utils/ParameterDetector.js +53 -0
- package/dist/utils/ParameterDetector.js.map +1 -0
- package/dist/utils/ParameterHelper.js +31 -0
- package/dist/utils/ParameterHelper.js.map +1 -0
- package/dist/utils/ParameterRemover.js +783 -0
- package/dist/utils/ParameterRemover.js.map +1 -0
- package/dist/utils/ParserStringUtils.js +31 -0
- package/dist/utils/ParserStringUtils.js.map +1 -0
- package/dist/utils/PositionAwareParser.js +363 -0
- package/dist/utils/PositionAwareParser.js.map +1 -0
- package/dist/utils/SchemaManager.js +217 -0
- package/dist/utils/SchemaManager.js.map +1 -0
- package/dist/utils/ScopeResolver.js +272 -0
- package/dist/utils/ScopeResolver.js.map +1 -0
- package/dist/utils/SelectQueryWithClauseHelper.js +47 -0
- package/dist/utils/SelectQueryWithClauseHelper.js.map +1 -0
- package/dist/utils/SqlSchemaValidator.js +55 -0
- package/dist/utils/SqlSchemaValidator.js.map +1 -0
- package/dist/utils/TableNameUtils.js +35 -0
- package/dist/utils/TableNameUtils.js.map +1 -0
- package/dist/utils/TextPositionUtils.js +128 -0
- package/dist/utils/TextPositionUtils.js.map +1 -0
- package/dist/utils/ValueComponentRewriter.js +187 -0
- package/dist/utils/ValueComponentRewriter.js.map +1 -0
- package/dist/utils/charLookupTable.js +73 -0
- package/dist/utils/charLookupTable.js.map +1 -0
- package/dist/utils/stringUtils.js +230 -0
- package/dist/utils/stringUtils.js.map +1 -0
- package/package.json +62 -62
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Enhanced JSON mapping structure that extends the base JsonMapping interface
|
|
4
|
+
* with additional metadata and type safety features.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.convertColumnsToLegacy = convertColumnsToLegacy;
|
|
8
|
+
exports.convertToLegacyJsonMapping = convertToLegacyJsonMapping;
|
|
9
|
+
exports.toLegacyMapping = toLegacyMapping;
|
|
10
|
+
exports.extractTypeProtection = extractTypeProtection;
|
|
11
|
+
/**
|
|
12
|
+
* Converts enhanced column configurations to simple string mappings for legacy compatibility.
|
|
13
|
+
*
|
|
14
|
+
* This function transforms complex column configurations (with type info, nullable flags, etc.)
|
|
15
|
+
* into simple string mappings that can be used with PostgresJsonQueryBuilder.
|
|
16
|
+
*
|
|
17
|
+
* **Supported Input Formats:**
|
|
18
|
+
* - Simple strings: `"user_name"` → `"user_name"`
|
|
19
|
+
* - Column config: `{ column: "u.name", type: "string" }` → `"u.name"`
|
|
20
|
+
* - From config: `{ from: "user_name", nullable: true }` → `"user_name"`
|
|
21
|
+
*
|
|
22
|
+
* @param columns - Record of field names to column configurations
|
|
23
|
+
* @returns Record of field names to column source strings
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const enhanced = {
|
|
28
|
+
* id: { column: "u.user_id", type: "number" },
|
|
29
|
+
* name: { from: "user_name", type: "string" },
|
|
30
|
+
* email: "email_address"
|
|
31
|
+
* };
|
|
32
|
+
*
|
|
33
|
+
* const legacy = convertColumnsToLegacy(enhanced);
|
|
34
|
+
* // Result: { id: "u.user_id", name: "user_name", email: "email_address" }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
function convertColumnsToLegacy(columns) {
|
|
38
|
+
const result = {};
|
|
39
|
+
for (const [key, config] of Object.entries(columns)) {
|
|
40
|
+
if (typeof config === 'string') {
|
|
41
|
+
result[key] = config;
|
|
42
|
+
}
|
|
43
|
+
else if (config && typeof config === 'object') {
|
|
44
|
+
if ('column' in config) {
|
|
45
|
+
result[key] = config.column;
|
|
46
|
+
}
|
|
47
|
+
else if ('from' in config) {
|
|
48
|
+
result[key] = config.from;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
result[key] = key; // fallback
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
result[key] = key; // fallback
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Converts any unified JSON mapping format to legacy JsonMapping format.
|
|
62
|
+
*
|
|
63
|
+
* This universal converter handles Enhanced, Unified, and Legacy formats, providing
|
|
64
|
+
* a single interface for converting complex mapping configurations to the simple
|
|
65
|
+
* format expected by PostgresJsonQueryBuilder.
|
|
66
|
+
*
|
|
67
|
+
* **Supported Input Formats:**
|
|
68
|
+
* - **Enhanced**: With metadata, type protection, and advanced column configs
|
|
69
|
+
* - **Unified**: Standard format with rootName and rootEntity
|
|
70
|
+
* - **Legacy**: Already compatible format (returned as-is)
|
|
71
|
+
*
|
|
72
|
+
* **Features:**
|
|
73
|
+
* - Automatic format detection
|
|
74
|
+
* - Column configuration simplification
|
|
75
|
+
* - Nested entity handling
|
|
76
|
+
* - Type protection extraction
|
|
77
|
+
*
|
|
78
|
+
* @param input - JSON mapping in any supported format
|
|
79
|
+
* @returns Legacy JsonMapping compatible with PostgresJsonQueryBuilder
|
|
80
|
+
*
|
|
81
|
+
* @throws {Error} When input is null, undefined, or malformed
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* // Enhanced format input
|
|
86
|
+
* const enhanced = {
|
|
87
|
+
* rootName: "User",
|
|
88
|
+
* rootEntity: {
|
|
89
|
+
* columns: {
|
|
90
|
+
* id: { column: "u.user_id", type: "number" },
|
|
91
|
+
* name: { column: "u.user_name", type: "string" }
|
|
92
|
+
* }
|
|
93
|
+
* },
|
|
94
|
+
* metadata: { version: "2.0" }
|
|
95
|
+
* };
|
|
96
|
+
*
|
|
97
|
+
* const legacy = convertToLegacyJsonMapping(enhanced);
|
|
98
|
+
* // Result: Compatible with PostgresJsonQueryBuilder
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @see {@link convertColumnsToLegacy} For column-specific conversion
|
|
102
|
+
* @see {@link extractTypeProtection} For type safety features
|
|
103
|
+
*/
|
|
104
|
+
function convertToLegacyJsonMapping(input) {
|
|
105
|
+
if (!input) {
|
|
106
|
+
throw new Error('Input mapping is required');
|
|
107
|
+
}
|
|
108
|
+
// If it's already in legacy format, return as-is
|
|
109
|
+
if (input.rootName && input.rootEntity &&
|
|
110
|
+
typeof input.rootEntity.columns === 'object' &&
|
|
111
|
+
!input.typeInfo && !input.typeProtection && !input.metadata) {
|
|
112
|
+
// Check if columns are already in string format
|
|
113
|
+
const allColumnsAreStrings = Object.values(input.rootEntity.columns).every(col => typeof col === 'string');
|
|
114
|
+
if (allColumnsAreStrings) {
|
|
115
|
+
return input;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Enhanced format conversion
|
|
119
|
+
if (input.rootName && input.rootEntity) {
|
|
120
|
+
return {
|
|
121
|
+
rootName: input.rootName,
|
|
122
|
+
rootEntity: {
|
|
123
|
+
id: input.rootEntity.id || 'root',
|
|
124
|
+
name: input.rootEntity.name || input.rootName,
|
|
125
|
+
columns: convertColumnsToLegacy(input.rootEntity.columns || {})
|
|
126
|
+
},
|
|
127
|
+
nestedEntities: (input.nestedEntities || []).map((entity) => ({
|
|
128
|
+
id: entity.id,
|
|
129
|
+
name: entity.name,
|
|
130
|
+
parentId: entity.parentId,
|
|
131
|
+
propertyName: entity.propertyName,
|
|
132
|
+
relationshipType: entity.relationshipType,
|
|
133
|
+
columns: convertColumnsToLegacy(entity.columns || {})
|
|
134
|
+
})),
|
|
135
|
+
resultFormat: input.resultFormat,
|
|
136
|
+
emptyResult: input.emptyResult
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
throw new Error('Unsupported mapping format');
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Converts enhanced mapping to legacy format for backward compatibility.
|
|
143
|
+
*/
|
|
144
|
+
function toLegacyMapping(enhanced) {
|
|
145
|
+
return {
|
|
146
|
+
rootName: enhanced.rootName,
|
|
147
|
+
rootEntity: {
|
|
148
|
+
id: enhanced.rootEntity.id,
|
|
149
|
+
name: enhanced.rootEntity.name,
|
|
150
|
+
columns: convertColumnsToLegacy(enhanced.rootEntity.columns)
|
|
151
|
+
},
|
|
152
|
+
nestedEntities: enhanced.nestedEntities.map(entity => ({
|
|
153
|
+
id: entity.id,
|
|
154
|
+
name: entity.name,
|
|
155
|
+
parentId: entity.parentId,
|
|
156
|
+
propertyName: entity.propertyName,
|
|
157
|
+
relationshipType: entity.relationshipType,
|
|
158
|
+
columns: convertColumnsToLegacy(entity.columns)
|
|
159
|
+
})),
|
|
160
|
+
resultFormat: enhanced.resultFormat,
|
|
161
|
+
emptyResult: enhanced.emptyResult
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extracts type protection configuration from enhanced mapping.
|
|
166
|
+
*/
|
|
167
|
+
function extractTypeProtection(enhanced) {
|
|
168
|
+
const protectedStringFields = [];
|
|
169
|
+
const dateFields = [];
|
|
170
|
+
const numberFields = [];
|
|
171
|
+
// Use existing type protection if available
|
|
172
|
+
if (enhanced.typeProtection) {
|
|
173
|
+
return {
|
|
174
|
+
protectedStringFields: enhanced.typeProtection.protectedStringFields || [],
|
|
175
|
+
dateFields: enhanced.typeProtection.dateFields,
|
|
176
|
+
numberFields: enhanced.typeProtection.numberFields,
|
|
177
|
+
customTransforms: enhanced.typeProtection.customTransforms
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Process root entity
|
|
181
|
+
for (const [key, config] of Object.entries(enhanced.rootEntity.columns)) {
|
|
182
|
+
if (typeof config === 'object' && config.type) {
|
|
183
|
+
const columnName = config.column;
|
|
184
|
+
switch (config.type) {
|
|
185
|
+
case 'string':
|
|
186
|
+
protectedStringFields.push(columnName);
|
|
187
|
+
break;
|
|
188
|
+
case 'date':
|
|
189
|
+
dateFields.push(columnName);
|
|
190
|
+
break;
|
|
191
|
+
case 'number':
|
|
192
|
+
numberFields.push(columnName);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Process nested entities
|
|
198
|
+
for (const entity of enhanced.nestedEntities) {
|
|
199
|
+
for (const [key, config] of Object.entries(entity.columns)) {
|
|
200
|
+
if (typeof config === 'object' && config.type) {
|
|
201
|
+
const columnName = config.column;
|
|
202
|
+
switch (config.type) {
|
|
203
|
+
case 'string':
|
|
204
|
+
protectedStringFields.push(columnName);
|
|
205
|
+
break;
|
|
206
|
+
case 'date':
|
|
207
|
+
dateFields.push(columnName);
|
|
208
|
+
break;
|
|
209
|
+
case 'number':
|
|
210
|
+
numberFields.push(columnName);
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
protectedStringFields,
|
|
218
|
+
dateFields: dateFields.length > 0 ? dateFields : undefined,
|
|
219
|
+
numberFields: numberFields.length > 0 ? numberFields : undefined,
|
|
220
|
+
customTransforms: undefined
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=EnhancedJsonMapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnhancedJsonMapping.js","sourceRoot":"","sources":["../../src/transformers/EnhancedJsonMapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilterableItemCollector = exports.FilterableItem = void 0;
|
|
4
|
+
const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
|
|
5
|
+
const SchemaCollector_1 = require("./SchemaCollector");
|
|
6
|
+
const ParameterDetector_1 = require("../utils/ParameterDetector");
|
|
7
|
+
const SelectableColumnCollector_1 = require("./SelectableColumnCollector");
|
|
8
|
+
/**
|
|
9
|
+
* Represents a filterable item that can be used in DynamicQueryBuilder
|
|
10
|
+
* Can be either a table column or a SQL parameter
|
|
11
|
+
*/
|
|
12
|
+
class FilterableItem {
|
|
13
|
+
constructor(name, type, tableName) {
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.type = type;
|
|
16
|
+
this.tableName = tableName;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.FilterableItem = FilterableItem;
|
|
20
|
+
/**
|
|
21
|
+
* Collects filterable items (columns and parameters) from SQL queries
|
|
22
|
+
* for use in DynamicQueryBuilder filtering functionality.
|
|
23
|
+
*
|
|
24
|
+
* This class combines:
|
|
25
|
+
* - Table columns (from SelectableColumnCollector with FullName duplicate detection)
|
|
26
|
+
* - SQL parameters (from ParameterDetector)
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - FullName mode preserves columns with same names from different tables (u.id vs p.id)
|
|
30
|
+
* - Upstream collection (default) provides comprehensive column discovery for maximum filtering
|
|
31
|
+
* - Qualified mode option for table.column naming in complex JOINs
|
|
32
|
+
*
|
|
33
|
+
* This allows DynamicQueryBuilder to filter on both actual table columns
|
|
34
|
+
* and fixed parameters defined in the SQL with full JOIN table support.
|
|
35
|
+
*/
|
|
36
|
+
class FilterableItemCollector {
|
|
37
|
+
/**
|
|
38
|
+
* Creates a new FilterableItemCollector
|
|
39
|
+
* @param tableColumnResolver Optional resolver for wildcard column expansion
|
|
40
|
+
* @param options Optional configuration options
|
|
41
|
+
* - qualified: If true, return table.column names; if false, return column names only
|
|
42
|
+
* - upstream: If true (default), collect all available columns from upstream sources for maximum filtering capability
|
|
43
|
+
*/
|
|
44
|
+
constructor(tableColumnResolver, options) {
|
|
45
|
+
this.tableColumnResolver = tableColumnResolver;
|
|
46
|
+
this.options = { qualified: false, upstream: true, ...options };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Collects all filterable items (columns and parameters) from a SQL query
|
|
50
|
+
* @param query The parsed SQL query to analyze
|
|
51
|
+
* @returns Array of FilterableItem objects representing columns and parameters
|
|
52
|
+
*/
|
|
53
|
+
collect(query) {
|
|
54
|
+
const items = [];
|
|
55
|
+
// 1. Collect table columns using SchemaCollector
|
|
56
|
+
const columnItems = this.collectColumns(query);
|
|
57
|
+
items.push(...columnItems);
|
|
58
|
+
// 2. Collect SQL parameters using ParameterDetector
|
|
59
|
+
const parameterItems = this.collectParameters(query);
|
|
60
|
+
items.push(...parameterItems);
|
|
61
|
+
// 3. Remove duplicates (same name and type)
|
|
62
|
+
return this.removeDuplicates(items);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Collects table columns using both SelectableColumnCollector and SchemaCollector
|
|
66
|
+
*/
|
|
67
|
+
collectColumns(query) {
|
|
68
|
+
const items = [];
|
|
69
|
+
// First, collect columns using SelectableColumnCollector (includes WHERE clause columns)
|
|
70
|
+
try {
|
|
71
|
+
const columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, false, // includeUsingColumns
|
|
72
|
+
SelectableColumnCollector_1.DuplicateDetectionMode.FullName, // Use full names to preserve duplicates
|
|
73
|
+
{ upstream: this.options.upstream } // Enable upstream collection based on options
|
|
74
|
+
);
|
|
75
|
+
const columns = columnCollector.collect(query);
|
|
76
|
+
// Convert column information to FilterableItem objects
|
|
77
|
+
for (const column of columns) {
|
|
78
|
+
let tableName = undefined;
|
|
79
|
+
let realTableName = undefined;
|
|
80
|
+
// Primary: Extract table name from column reference namespace using getNamespace()
|
|
81
|
+
if (column.value && typeof column.value.getNamespace === 'function') {
|
|
82
|
+
const namespace = column.value.getNamespace();
|
|
83
|
+
if (namespace && namespace.trim() !== '') {
|
|
84
|
+
tableName = namespace;
|
|
85
|
+
// Get real table name if using qualified mode
|
|
86
|
+
if (this.options.qualified) {
|
|
87
|
+
realTableName = this.getRealTableName(query, namespace);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Fallback: Try to infer from query structure for simple queries
|
|
92
|
+
if (!tableName) {
|
|
93
|
+
tableName = this.inferTableNameFromQuery(query);
|
|
94
|
+
if (tableName && this.options.qualified) {
|
|
95
|
+
realTableName = tableName; // For simple queries, table name is already real
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Generate column name based on qualified option
|
|
99
|
+
let columnName = column.name;
|
|
100
|
+
if (this.options.qualified && (realTableName || tableName)) {
|
|
101
|
+
const nameToUse = realTableName || tableName;
|
|
102
|
+
columnName = `${nameToUse}.${column.name}`;
|
|
103
|
+
}
|
|
104
|
+
items.push(new FilterableItem(columnName, 'column', tableName));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
// If SelectableColumnCollector fails, fall back to SchemaCollector only
|
|
109
|
+
console.warn('Failed to collect columns with SelectableColumnCollector, using fallback:', error);
|
|
110
|
+
try {
|
|
111
|
+
const schemaCollector = new SchemaCollector_1.SchemaCollector(this.tableColumnResolver, true);
|
|
112
|
+
const schemas = schemaCollector.collect(query);
|
|
113
|
+
for (const schema of schemas) {
|
|
114
|
+
for (const columnName of schema.columns) {
|
|
115
|
+
// Generate column name based on qualified option
|
|
116
|
+
let finalColumnName = columnName;
|
|
117
|
+
if (this.options.qualified) {
|
|
118
|
+
// For SchemaCollector, schema.name should already be the real table name
|
|
119
|
+
finalColumnName = `${schema.name}.${columnName}`;
|
|
120
|
+
}
|
|
121
|
+
items.push(new FilterableItem(finalColumnName, 'column', schema.name));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (fallbackError) {
|
|
126
|
+
console.warn('Failed to collect columns with both approaches:', error, fallbackError);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return items;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Attempts to infer table name from query structure for simple cases
|
|
133
|
+
*/
|
|
134
|
+
inferTableNameFromQuery(query) {
|
|
135
|
+
// For simple queries with single table, try to extract table name
|
|
136
|
+
if (query instanceof SimpleSelectQuery_1.SimpleSelectQuery && query.fromClause && query.fromClause.source) {
|
|
137
|
+
const datasource = query.fromClause.source.datasource;
|
|
138
|
+
if (datasource && typeof datasource.table === 'object') {
|
|
139
|
+
const table = datasource.table;
|
|
140
|
+
if (table && typeof table.name === 'string') {
|
|
141
|
+
return table.name;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Attempts to resolve real table name from alias/namespace
|
|
149
|
+
*/
|
|
150
|
+
getRealTableName(query, aliasOrName) {
|
|
151
|
+
var _a, _b;
|
|
152
|
+
try {
|
|
153
|
+
// Handle CTEs by converting to simple query first
|
|
154
|
+
const simpleQuery = query.type === 'WITH' ? query.toSimpleQuery() : query;
|
|
155
|
+
if (simpleQuery instanceof SimpleSelectQuery_1.SimpleSelectQuery && simpleQuery.fromClause) {
|
|
156
|
+
// Check main datasource
|
|
157
|
+
if ((_a = simpleQuery.fromClause.source) === null || _a === void 0 ? void 0 : _a.datasource) {
|
|
158
|
+
const mainSource = simpleQuery.fromClause.source;
|
|
159
|
+
const realName = this.extractRealTableName(mainSource, aliasOrName);
|
|
160
|
+
if (realName)
|
|
161
|
+
return realName;
|
|
162
|
+
}
|
|
163
|
+
// Check JOIN clauses
|
|
164
|
+
const fromClause = simpleQuery.fromClause;
|
|
165
|
+
if (fromClause.joinClauses && Array.isArray(fromClause.joinClauses)) {
|
|
166
|
+
for (const joinClause of fromClause.joinClauses) {
|
|
167
|
+
if ((_b = joinClause.source) === null || _b === void 0 ? void 0 : _b.datasource) {
|
|
168
|
+
const realName = this.extractRealTableName(joinClause.source, aliasOrName);
|
|
169
|
+
if (realName)
|
|
170
|
+
return realName;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.warn('Error resolving real table name:', error);
|
|
178
|
+
}
|
|
179
|
+
// If we can't resolve, return the original name
|
|
180
|
+
return aliasOrName;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Extracts real table name from a datasource
|
|
184
|
+
*/
|
|
185
|
+
extractRealTableName(source, aliasOrName) {
|
|
186
|
+
var _a, _b, _c;
|
|
187
|
+
try {
|
|
188
|
+
const datasource = source.datasource;
|
|
189
|
+
if (!datasource)
|
|
190
|
+
return undefined;
|
|
191
|
+
// Get alias from multiple possible locations
|
|
192
|
+
const alias = source.alias || ((_b = (_a = source.aliasExpression) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.name);
|
|
193
|
+
const realTableName = (_c = datasource.table) === null || _c === void 0 ? void 0 : _c.name;
|
|
194
|
+
if (alias === aliasOrName && realTableName) {
|
|
195
|
+
return realTableName;
|
|
196
|
+
}
|
|
197
|
+
// If no alias but names match, it's a direct table reference
|
|
198
|
+
if (!alias && realTableName === aliasOrName) {
|
|
199
|
+
return realTableName;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Ignore errors in extraction
|
|
204
|
+
}
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Collects SQL parameters from the query using ParameterDetector
|
|
209
|
+
*/
|
|
210
|
+
collectParameters(query) {
|
|
211
|
+
const items = [];
|
|
212
|
+
try {
|
|
213
|
+
// Use existing ParameterDetector to extract parameter names from AST
|
|
214
|
+
const parameterNames = ParameterDetector_1.ParameterDetector.extractParameterNames(query);
|
|
215
|
+
// Convert parameter names to FilterableItem objects
|
|
216
|
+
for (const paramName of parameterNames) {
|
|
217
|
+
items.push(new FilterableItem(paramName, 'parameter'));
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
// If parameter extraction fails, continue with empty parameter list
|
|
222
|
+
console.warn('Failed to collect parameters:', error);
|
|
223
|
+
}
|
|
224
|
+
return items;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Removes duplicate items with the same name, type, and table name
|
|
228
|
+
* This preserves columns with the same name from different tables
|
|
229
|
+
*/
|
|
230
|
+
removeDuplicates(items) {
|
|
231
|
+
const seen = new Set();
|
|
232
|
+
const result = [];
|
|
233
|
+
for (const item of items) {
|
|
234
|
+
// Include table name in the key to preserve columns from different tables
|
|
235
|
+
const key = `${item.type}:${item.name}:${item.tableName || 'none'}`;
|
|
236
|
+
if (!seen.has(key)) {
|
|
237
|
+
seen.add(key);
|
|
238
|
+
result.push(item);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return result.sort((a, b) => {
|
|
242
|
+
// Sort by type first (columns before parameters), then by table name, then by name
|
|
243
|
+
if (a.type !== b.type) {
|
|
244
|
+
return a.type === 'column' ? -1 : 1;
|
|
245
|
+
}
|
|
246
|
+
// For columns, sort by table name first, then column name
|
|
247
|
+
if (a.type === 'column') {
|
|
248
|
+
const tableA = a.tableName || '';
|
|
249
|
+
const tableB = b.tableName || '';
|
|
250
|
+
if (tableA !== tableB) {
|
|
251
|
+
return tableA.localeCompare(tableB);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return a.name.localeCompare(b.name);
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.FilterableItemCollector = FilterableItemCollector;
|
|
259
|
+
//# sourceMappingURL=FilterableItemCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterableItemCollector.js","sourceRoot":"","sources":["../../src/transformers/FilterableItemCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FixtureCteBuilder = void 0;
|
|
4
|
+
const Clause_1 = require("../models/Clause");
|
|
5
|
+
const SelectQuery_1 = require("../models/SelectQuery");
|
|
6
|
+
const ValueComponent_1 = require("../models/ValueComponent");
|
|
7
|
+
const DDLToFixtureConverter_1 = require("./DDLToFixtureConverter");
|
|
8
|
+
class FixtureCteBuilder {
|
|
9
|
+
/**
|
|
10
|
+
* Creates fixture definitions from a SQL string containing DDL (CREATE TABLE) and INSERT statements.
|
|
11
|
+
*
|
|
12
|
+
* @param sql The SQL string containing DDL and INSERTs.
|
|
13
|
+
* @returns An array of FixtureTableDefinition objects.
|
|
14
|
+
*/
|
|
15
|
+
static fromSQL(sql) {
|
|
16
|
+
const fixtureJson = DDLToFixtureConverter_1.DDLToFixtureConverter.convert(sql);
|
|
17
|
+
return this.fromJSON(fixtureJson);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Converts JSON fixture definitions to FixtureTableDefinition format.
|
|
21
|
+
* Accepts an object where keys are table names and values contain columns and rows.
|
|
22
|
+
*
|
|
23
|
+
* @param jsonDefinitions Object with table definitions
|
|
24
|
+
* @returns Array of FixtureTableDefinition
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const json = {
|
|
29
|
+
* users: {
|
|
30
|
+
* columns: [
|
|
31
|
+
* { name: 'id', type: 'integer' },
|
|
32
|
+
* { name: 'name', type: 'text' }
|
|
33
|
+
* ],
|
|
34
|
+
* rows: [
|
|
35
|
+
* { id: 1, name: 'Alice' },
|
|
36
|
+
* { id: 2, name: 'Bob' }
|
|
37
|
+
* ]
|
|
38
|
+
* }
|
|
39
|
+
* };
|
|
40
|
+
* const fixtures = FixtureCteBuilder.fromJSON(json);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
static fromJSON(jsonDefinitions) {
|
|
44
|
+
const fixtures = [];
|
|
45
|
+
for (const [tableName, def] of Object.entries(jsonDefinitions)) {
|
|
46
|
+
if (def && Array.isArray(def.columns)) {
|
|
47
|
+
const columns = def.columns.map(c => ({
|
|
48
|
+
name: c.name,
|
|
49
|
+
typeName: c.type,
|
|
50
|
+
defaultValue: c.default
|
|
51
|
+
}));
|
|
52
|
+
let rows = [];
|
|
53
|
+
if (Array.isArray(def.rows)) {
|
|
54
|
+
// Convert array of objects to array of arrays based on column order
|
|
55
|
+
rows = def.rows.map(rowObj => {
|
|
56
|
+
return columns.map(col => {
|
|
57
|
+
return rowObj[col.name] !== undefined ? rowObj[col.name] : null;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
fixtures.push({
|
|
62
|
+
tableName,
|
|
63
|
+
columns,
|
|
64
|
+
rows
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return fixtures;
|
|
69
|
+
}
|
|
70
|
+
/** Builds CommonTable representations for the provided fixtures. */
|
|
71
|
+
static buildFixtures(fixtures) {
|
|
72
|
+
return fixtures.map((fixture) => this.buildFixture(fixture));
|
|
73
|
+
}
|
|
74
|
+
static buildFixture(fixture) {
|
|
75
|
+
const query = this.buildSelectQuery(fixture);
|
|
76
|
+
// Wrap the query into a CommonTable for later WITH clause injection.
|
|
77
|
+
return new Clause_1.CommonTable(query, fixture.tableName, null);
|
|
78
|
+
}
|
|
79
|
+
static buildSelectQuery(fixture) {
|
|
80
|
+
const columnCount = fixture.columns.length;
|
|
81
|
+
// Always produce at least one row even when the fixture carries zero entries.
|
|
82
|
+
const rows = fixture.rows.length > 0 ? fixture.rows : [new Array(columnCount).fill(null)];
|
|
83
|
+
const selectQueries = rows.map((row) => this.buildSelectRow(fixture.columns, row));
|
|
84
|
+
if (selectQueries.length === 0) {
|
|
85
|
+
throw new Error('No rows to build SELECT query');
|
|
86
|
+
}
|
|
87
|
+
let result = selectQueries[0];
|
|
88
|
+
// Build UNION ALL chain for multiple rows
|
|
89
|
+
for (let i = 1; i < selectQueries.length; i++) {
|
|
90
|
+
// Both SimpleSelectQuery and BinarySelectQuery have toUnionAll/unionAll methods
|
|
91
|
+
if (result instanceof SelectQuery_1.SimpleSelectQuery) {
|
|
92
|
+
result = result.toUnionAll(selectQueries[i]);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// BinarySelectQuery has unionAll method
|
|
96
|
+
result = result.unionAll(selectQueries[i]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Handle empty fixture case: add WHERE 1 = 0 to make it return no rows
|
|
100
|
+
if (fixture.rows.length === 0 && result instanceof SelectQuery_1.SimpleSelectQuery) {
|
|
101
|
+
const falseCondition = new ValueComponent_1.BinaryExpression(new ValueComponent_1.LiteralValue(1), '=', new ValueComponent_1.LiteralValue(0));
|
|
102
|
+
result.whereClause = new Clause_1.WhereClause(falseCondition);
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
static buildSelectRow(columns, row) {
|
|
107
|
+
// Build select items that respect optional type annotations.
|
|
108
|
+
const items = columns.map((column, index) => {
|
|
109
|
+
const value = index < row.length ? row[index] : null;
|
|
110
|
+
const literalValue = this.createLiteralValue(value);
|
|
111
|
+
let expression = literalValue;
|
|
112
|
+
if (column.typeName) {
|
|
113
|
+
const typeValue = new ValueComponent_1.TypeValue(null, new ValueComponent_1.RawString(column.typeName));
|
|
114
|
+
expression = new ValueComponent_1.CastExpression(literalValue, typeValue);
|
|
115
|
+
}
|
|
116
|
+
return new Clause_1.SelectItem(expression, column.name);
|
|
117
|
+
});
|
|
118
|
+
const selectClause = new Clause_1.SelectClause(items);
|
|
119
|
+
return new SelectQuery_1.SimpleSelectQuery({ selectClause });
|
|
120
|
+
}
|
|
121
|
+
static createLiteralValue(value) {
|
|
122
|
+
if (value === null || value === undefined) {
|
|
123
|
+
return new ValueComponent_1.LiteralValue(null);
|
|
124
|
+
}
|
|
125
|
+
if (typeof value === 'number') {
|
|
126
|
+
return new ValueComponent_1.LiteralValue(Number.isFinite(value) ? value : null);
|
|
127
|
+
}
|
|
128
|
+
if (typeof value === 'boolean') {
|
|
129
|
+
// Preserve boolean literals so the printer emits TRUE/FALSE instead of quoted strings
|
|
130
|
+
return new ValueComponent_1.LiteralValue(value);
|
|
131
|
+
}
|
|
132
|
+
if (typeof value === 'bigint') {
|
|
133
|
+
// Convert bigint to string to preserve precision
|
|
134
|
+
// LiteralValue accepts string|number|boolean|null, and when isStringLiteral is false,
|
|
135
|
+
// the printer will output it as-is without quotes
|
|
136
|
+
return new ValueComponent_1.LiteralValue(value.toString());
|
|
137
|
+
}
|
|
138
|
+
if (typeof Buffer !== 'undefined' && value instanceof Buffer) {
|
|
139
|
+
// For Buffer, we'll create a hex string literal
|
|
140
|
+
return new ValueComponent_1.LiteralValue(`X'${value.toString('hex')}'`);
|
|
141
|
+
}
|
|
142
|
+
if (typeof value === 'string') {
|
|
143
|
+
// Store the raw string value WITHOUT quotes or escaping
|
|
144
|
+
// The SqlPrinter will handle escaping when printing
|
|
145
|
+
return new ValueComponent_1.LiteralValue(value, undefined, true);
|
|
146
|
+
}
|
|
147
|
+
return new ValueComponent_1.LiteralValue(String(value), undefined, true);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.FixtureCteBuilder = FixtureCteBuilder;
|
|
151
|
+
//# sourceMappingURL=FixtureCteBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FixtureCteBuilder.js","sourceRoot":"","sources":["../../src/transformers/FixtureCteBuilder.ts"],"names":[],"mappings":"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"}
|