@entity-access/entity-access 1.0.7 → 1.0.8
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/.github/workflows/npm-publish.yml +2 -10
- package/dist/TestRunner.d.ts +2 -0
- package/dist/TestRunner.d.ts.map +1 -0
- package/dist/TestRunner.js +2 -0
- package/dist/TestRunner.js.map +1 -0
- package/dist/common/EntityAccessError.d.ts +5 -0
- package/dist/common/EntityAccessError.d.ts.map +1 -0
- package/dist/common/EntityAccessError.js +9 -0
- package/dist/common/EntityAccessError.js.map +1 -0
- package/dist/common/IDisposable.d.ts +13 -0
- package/dist/common/IDisposable.d.ts.map +1 -0
- package/dist/common/IDisposable.js +9 -0
- package/dist/common/IDisposable.js.map +1 -0
- package/dist/common/ImmutableObject.d.ts +5 -0
- package/dist/common/ImmutableObject.d.ts.map +1 -0
- package/dist/common/ImmutableObject.js +49 -0
- package/dist/common/ImmutableObject.js.map +1 -0
- package/dist/common/Logger.d.ts +18 -0
- package/dist/common/Logger.d.ts.map +1 -0
- package/dist/common/Logger.js +60 -0
- package/dist/common/Logger.js.map +1 -0
- package/dist/common/TypeInfo.d.ts +4 -0
- package/dist/common/TypeInfo.d.ts.map +1 -0
- package/dist/common/TypeInfo.js +4 -0
- package/dist/common/TypeInfo.js.map +1 -0
- package/dist/common/cache/InstanceCache.d.ts +2 -0
- package/dist/common/cache/InstanceCache.d.ts.map +1 -0
- package/dist/common/cache/InstanceCache.js +13 -0
- package/dist/common/cache/InstanceCache.js.map +1 -0
- package/dist/common/cache/TimedCache.d.ts +10 -0
- package/dist/common/cache/TimedCache.d.ts.map +1 -0
- package/dist/common/cache/TimedCache.js +67 -0
- package/dist/common/cache/TimedCache.js.map +1 -0
- package/dist/common/symbols/symbols.d.ts +3 -0
- package/dist/common/symbols/symbols.d.ts.map +1 -0
- package/dist/common/symbols/symbols.js +3 -0
- package/dist/common/symbols/symbols.js.map +1 -0
- package/dist/common/usingAsync.d.ts +13 -0
- package/dist/common/usingAsync.d.ts.map +1 -0
- package/dist/common/usingAsync.js +44 -0
- package/dist/common/usingAsync.js.map +1 -0
- package/dist/compiler/ISqlHelpers.d.ts +10 -0
- package/dist/compiler/ISqlHelpers.d.ts.map +1 -0
- package/dist/compiler/ISqlHelpers.js +17 -0
- package/dist/compiler/ISqlHelpers.js.map +1 -0
- package/dist/compiler/QueryCompiler.d.ts +36 -0
- package/dist/compiler/QueryCompiler.d.ts.map +1 -0
- package/dist/compiler/QueryCompiler.js +65 -0
- package/dist/compiler/QueryCompiler.js.map +1 -0
- package/dist/compiler/postgres/PostgreSqlMethodTransformer.d.ts +4 -0
- package/dist/compiler/postgres/PostgreSqlMethodTransformer.d.ts.map +1 -0
- package/dist/compiler/postgres/PostgreSqlMethodTransformer.js +103 -0
- package/dist/compiler/postgres/PostgreSqlMethodTransformer.js.map +1 -0
- package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.d.ts +4 -0
- package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.d.ts.map +1 -0
- package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js +103 -0
- package/dist/compiler/sql-server/SqlServerSqlMethodTransformer.js.map +1 -0
- package/dist/decorators/Column.d.ts +4 -0
- package/dist/decorators/Column.d.ts.map +1 -0
- package/dist/decorators/Column.js +39 -0
- package/dist/decorators/Column.js.map +1 -0
- package/dist/decorators/ForeignKey.d.ts +9 -0
- package/dist/decorators/ForeignKey.d.ts.map +1 -0
- package/dist/decorators/ForeignKey.js +18 -0
- package/dist/decorators/ForeignKey.js.map +1 -0
- package/dist/decorators/IClassOf.d.ts +3 -0
- package/dist/decorators/IClassOf.d.ts.map +1 -0
- package/dist/decorators/IClassOf.js +2 -0
- package/dist/decorators/IClassOf.js.map +1 -0
- package/dist/decorators/IColumn.d.ts +49 -0
- package/dist/decorators/IColumn.d.ts.map +1 -0
- package/dist/decorators/IColumn.js +2 -0
- package/dist/decorators/IColumn.js.map +1 -0
- package/dist/decorators/ISqlType.d.ts +58 -0
- package/dist/decorators/ISqlType.d.ts.map +1 -0
- package/dist/decorators/ISqlType.js +2 -0
- package/dist/decorators/ISqlType.js.map +1 -0
- package/dist/decorators/SchemaRegistry.d.ts +6 -0
- package/dist/decorators/SchemaRegistry.d.ts.map +1 -0
- package/dist/decorators/SchemaRegistry.js +15 -0
- package/dist/decorators/SchemaRegistry.js.map +1 -0
- package/dist/decorators/Table.d.ts +6 -0
- package/dist/decorators/Table.d.ts.map +1 -0
- package/dist/decorators/Table.js +11 -0
- package/dist/decorators/Table.js.map +1 -0
- package/dist/decorators/parser/NameParser.d.ts +4 -0
- package/dist/decorators/parser/NameParser.d.ts.map +1 -0
- package/dist/decorators/parser/NameParser.js +14 -0
- package/dist/decorators/parser/NameParser.js.map +1 -0
- package/dist/di/di.d.ts +41 -0
- package/dist/di/di.d.ts.map +1 -0
- package/dist/di/di.js +174 -0
- package/dist/di/di.js.map +1 -0
- package/dist/drivers/base/BaseDriver.d.ts +60 -0
- package/dist/drivers/base/BaseDriver.d.ts.map +1 -0
- package/dist/drivers/base/BaseDriver.js +97 -0
- package/dist/drivers/base/BaseDriver.js.map +1 -0
- package/dist/drivers/postgres/PostgreSqlDriver.d.ts +35 -0
- package/dist/drivers/postgres/PostgreSqlDriver.d.ts.map +1 -0
- package/dist/drivers/postgres/PostgreSqlDriver.js +152 -0
- package/dist/drivers/postgres/PostgreSqlDriver.js.map +1 -0
- package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts +10 -0
- package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts.map +1 -0
- package/dist/drivers/sql-server/ExpressionToSqlServer.js +87 -0
- package/dist/drivers/sql-server/ExpressionToSqlServer.js.map +1 -0
- package/dist/drivers/sql-server/SqlServerDriver.d.ts +21 -0
- package/dist/drivers/sql-server/SqlServerDriver.d.ts.map +1 -0
- package/dist/drivers/sql-server/SqlServerDriver.js +179 -0
- package/dist/drivers/sql-server/SqlServerDriver.js.map +1 -0
- package/dist/drivers/sql-server/SqlServerLiteral.d.ts +5 -0
- package/dist/drivers/sql-server/SqlServerLiteral.d.ts.map +1 -0
- package/dist/drivers/sql-server/SqlServerLiteral.js +10 -0
- package/dist/drivers/sql-server/SqlServerLiteral.js.map +1 -0
- package/dist/drivers/sql-server/SqlServerQueryCompiler.d.ts +5 -0
- package/dist/drivers/sql-server/SqlServerQueryCompiler.d.ts.map +1 -0
- package/dist/drivers/sql-server/SqlServerQueryCompiler.js +17 -0
- package/dist/drivers/sql-server/SqlServerQueryCompiler.js.map +1 -0
- package/dist/entity-query/EntityType.d.ts +56 -0
- package/dist/entity-query/EntityType.d.ts.map +1 -0
- package/dist/entity-query/EntityType.js +145 -0
- package/dist/entity-query/EntityType.js.map +1 -0
- package/dist/migrations/Migrations.d.ts +7 -0
- package/dist/migrations/Migrations.d.ts.map +1 -0
- package/dist/migrations/Migrations.js +10 -0
- package/dist/migrations/Migrations.js.map +1 -0
- package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts +12 -0
- package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts.map +1 -0
- package/dist/migrations/postgres/PostgresAutomaticMigrations.js +68 -0
- package/dist/migrations/postgres/PostgresAutomaticMigrations.js.map +1 -0
- package/dist/migrations/postgres/PostgresMigrations.d.ts +7 -0
- package/dist/migrations/postgres/PostgresMigrations.d.ts.map +1 -0
- package/dist/migrations/postgres/PostgresMigrations.js +53 -0
- package/dist/migrations/postgres/PostgresMigrations.js.map +1 -0
- package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts +12 -0
- package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts.map +1 -0
- package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js +74 -0
- package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js.map +1 -0
- package/dist/migrations/sql-server/SqlServerMigrations.d.ts +7 -0
- package/dist/migrations/sql-server/SqlServerMigrations.d.ts.map +1 -0
- package/dist/migrations/sql-server/SqlServerMigrations.js +57 -0
- package/dist/migrations/sql-server/SqlServerMigrations.js.map +1 -0
- package/dist/model/EntityContext.d.ts +28 -0
- package/dist/model/EntityContext.d.ts.map +1 -0
- package/dist/model/EntityContext.js +181 -0
- package/dist/model/EntityContext.js.map +1 -0
- package/dist/model/EntityModel.d.ts +10 -0
- package/dist/model/EntityModel.d.ts.map +1 -0
- package/dist/model/EntityModel.js +19 -0
- package/dist/model/EntityModel.js.map +1 -0
- package/dist/model/EntityQuery.d.ts +37 -0
- package/dist/model/EntityQuery.d.ts.map +1 -0
- package/dist/model/EntityQuery.js +183 -0
- package/dist/model/EntityQuery.js.map +1 -0
- package/dist/model/EntitySource.d.ts +27 -0
- package/dist/model/EntitySource.d.ts.map +1 -0
- package/dist/model/EntitySource.js +74 -0
- package/dist/model/EntitySource.js.map +1 -0
- package/dist/model/IFilterWithParameter.d.ts +32 -0
- package/dist/model/IFilterWithParameter.d.ts.map +1 -0
- package/dist/model/IFilterWithParameter.js +2 -0
- package/dist/model/IFilterWithParameter.js.map +1 -0
- package/dist/model/SourceExpression.d.ts +23 -0
- package/dist/model/SourceExpression.d.ts.map +1 -0
- package/dist/model/SourceExpression.js +109 -0
- package/dist/model/SourceExpression.js.map +1 -0
- package/dist/model/changes/ChangeEntry.d.ts +32 -0
- package/dist/model/changes/ChangeEntry.d.ts.map +1 -0
- package/dist/model/changes/ChangeEntry.js +136 -0
- package/dist/model/changes/ChangeEntry.js.map +1 -0
- package/dist/model/changes/ChangeSet.d.ts +23 -0
- package/dist/model/changes/ChangeSet.d.ts.map +1 -0
- package/dist/model/changes/ChangeSet.js +79 -0
- package/dist/model/changes/ChangeSet.js.map +1 -0
- package/dist/model/events/ContextEvents.d.ts +8 -0
- package/dist/model/events/ContextEvents.d.ts.map +1 -0
- package/dist/model/events/ContextEvents.js +18 -0
- package/dist/model/events/ContextEvents.js.map +1 -0
- package/dist/model/events/EntityEvents.d.ts +34 -0
- package/dist/model/events/EntityEvents.d.ts.map +1 -0
- package/dist/model/events/EntityEvents.js +67 -0
- package/dist/model/events/EntityEvents.js.map +1 -0
- package/dist/model/identity/IdentityService.d.ts +7 -0
- package/dist/model/identity/IdentityService.d.ts.map +1 -0
- package/dist/model/identity/IdentityService.js +25 -0
- package/dist/model/identity/IdentityService.js.map +1 -0
- package/dist/model/identity/RelationMapper.d.ts +11 -0
- package/dist/model/identity/RelationMapper.d.ts.map +1 -0
- package/dist/model/identity/RelationMapper.js +61 -0
- package/dist/model/identity/RelationMapper.js.map +1 -0
- package/dist/model/symbols.d.ts +2 -0
- package/dist/model/symbols.d.ts.map +1 -0
- package/dist/model/symbols.js +2 -0
- package/dist/model/symbols.js.map +1 -0
- package/dist/model/verification/VerificationSession.d.ts +20 -0
- package/dist/model/verification/VerificationSession.d.ts.map +1 -0
- package/dist/model/verification/VerificationSession.js +145 -0
- package/dist/model/verification/VerificationSession.js.map +1 -0
- package/dist/query/Query.d.ts +29 -0
- package/dist/query/Query.d.ts.map +1 -0
- package/dist/query/Query.js +132 -0
- package/dist/query/Query.js.map +1 -0
- package/dist/query/ast/DebugStringVisitor.d.ts +36 -0
- package/dist/query/ast/DebugStringVisitor.d.ts.map +1 -0
- package/dist/query/ast/DebugStringVisitor.js +143 -0
- package/dist/query/ast/DebugStringVisitor.js.map +1 -0
- package/dist/query/ast/ExpressionToSql.d.ts +58 -0
- package/dist/query/ast/ExpressionToSql.d.ts.map +1 -0
- package/dist/query/ast/ExpressionToSql.js +410 -0
- package/dist/query/ast/ExpressionToSql.js.map +1 -0
- package/dist/query/ast/Expressions.d.ts +212 -0
- package/dist/query/ast/Expressions.d.ts.map +1 -0
- package/dist/query/ast/Expressions.js +289 -0
- package/dist/query/ast/Expressions.js.map +1 -0
- package/dist/query/ast/IStringTransformer.d.ts +17 -0
- package/dist/query/ast/IStringTransformer.d.ts.map +1 -0
- package/dist/query/ast/IStringTransformer.js +79 -0
- package/dist/query/ast/IStringTransformer.js.map +1 -0
- package/dist/query/ast/ParameterScope.d.ts +25 -0
- package/dist/query/ast/ParameterScope.d.ts.map +1 -0
- package/dist/query/ast/ParameterScope.js +71 -0
- package/dist/query/ast/ParameterScope.js.map +1 -0
- package/dist/query/ast/ReplaceParameter.d.ts +5 -0
- package/dist/query/ast/ReplaceParameter.d.ts.map +1 -0
- package/dist/query/ast/ReplaceParameter.js +37 -0
- package/dist/query/ast/ReplaceParameter.js.map +1 -0
- package/dist/query/ast/SqlLiteral.d.ts +4 -0
- package/dist/query/ast/SqlLiteral.d.ts.map +1 -0
- package/dist/query/ast/SqlLiteral.js +24 -0
- package/dist/query/ast/SqlLiteral.js.map +1 -0
- package/dist/query/ast/Types.d.ts +2 -0
- package/dist/query/ast/Types.d.ts.map +1 -0
- package/dist/query/ast/Types.js +2 -0
- package/dist/query/ast/Types.js.map +1 -0
- package/dist/query/ast/Visitor.d.ts +35 -0
- package/dist/query/ast/Visitor.d.ts.map +1 -0
- package/dist/query/ast/Visitor.js +161 -0
- package/dist/query/ast/Visitor.js.map +1 -0
- package/dist/query/expander/QueryExpander.d.ts +11 -0
- package/dist/query/expander/QueryExpander.d.ts.map +1 -0
- package/dist/query/expander/QueryExpander.js +103 -0
- package/dist/query/expander/QueryExpander.js.map +1 -0
- package/dist/query/parser/ArrowToExpression.d.ts +35 -0
- package/dist/query/parser/ArrowToExpression.d.ts.map +1 -0
- package/dist/query/parser/ArrowToExpression.js +237 -0
- package/dist/query/parser/ArrowToExpression.js.map +1 -0
- package/dist/query/parser/BabelVisitor.d.ts +23 -0
- package/dist/query/parser/BabelVisitor.d.ts.map +1 -0
- package/dist/query/parser/BabelVisitor.js +53 -0
- package/dist/query/parser/BabelVisitor.js.map +1 -0
- package/dist/query/parser/NotSupportedError.d.ts +4 -0
- package/dist/query/parser/NotSupportedError.d.ts.map +1 -0
- package/dist/query/parser/NotSupportedError.js +6 -0
- package/dist/query/parser/NotSupportedError.js.map +1 -0
- package/dist/query/parser/Restructure.d.ts +11 -0
- package/dist/query/parser/Restructure.d.ts.map +1 -0
- package/dist/query/parser/Restructure.js +54 -0
- package/dist/query/parser/Restructure.js.map +1 -0
- package/dist/query/parser/TransformVisitor.d.ts +23 -0
- package/dist/query/parser/TransformVisitor.d.ts.map +1 -0
- package/dist/query/parser/TransformVisitor.js +70 -0
- package/dist/query/parser/TransformVisitor.js.map +1 -0
- package/dist/sql/ISql.d.ts +37 -0
- package/dist/sql/ISql.d.ts.map +1 -0
- package/dist/sql/ISql.js +2 -0
- package/dist/sql/ISql.js.map +1 -0
- package/dist/sql/Sql.d.ts +4 -0
- package/dist/sql/Sql.d.ts.map +1 -0
- package/dist/sql/Sql.js +3 -0
- package/dist/sql/Sql.js.map +1 -0
- package/dist/tests/TestConfig.d.ts +6 -0
- package/dist/tests/TestConfig.d.ts.map +1 -0
- package/dist/tests/TestConfig.js +5 -0
- package/dist/tests/TestConfig.js.map +1 -0
- package/dist/tests/db-tests/tests/select-items.d.ts +3 -0
- package/dist/tests/db-tests/tests/select-items.d.ts.map +1 -0
- package/dist/tests/db-tests/tests/select-items.js +30 -0
- package/dist/tests/db-tests/tests/select-items.js.map +1 -0
- package/dist/tests/db-tests/tests/update-items.d.ts +3 -0
- package/dist/tests/db-tests/tests/update-items.d.ts.map +1 -0
- package/dist/tests/db-tests/tests/update-items.js +11 -0
- package/dist/tests/db-tests/tests/update-items.js.map +1 -0
- package/dist/tests/drivers/postgres/connection-test.d.ts +3 -0
- package/dist/tests/drivers/postgres/connection-test.d.ts.map +1 -0
- package/dist/tests/drivers/postgres/connection-test.js +20 -0
- package/dist/tests/drivers/postgres/connection-test.js.map +1 -0
- package/dist/tests/drivers/sql-server/sql-server-test.d.ts +2 -0
- package/dist/tests/drivers/sql-server/sql-server-test.d.ts.map +1 -0
- package/dist/tests/drivers/sql-server/sql-server-test.js +6 -0
- package/dist/tests/drivers/sql-server/sql-server-test.js.map +1 -0
- package/dist/tests/expressions/left-joins/child-joins.d.ts +2 -0
- package/dist/tests/expressions/left-joins/child-joins.d.ts.map +1 -0
- package/dist/tests/expressions/left-joins/child-joins.js +77 -0
- package/dist/tests/expressions/left-joins/child-joins.js.map +1 -0
- package/dist/tests/expressions/sanitize/sanitize-test.d.ts +2 -0
- package/dist/tests/expressions/sanitize/sanitize-test.d.ts.map +1 -0
- package/dist/tests/expressions/sanitize/sanitize-test.js +8 -0
- package/dist/tests/expressions/sanitize/sanitize-test.js.map +1 -0
- package/dist/tests/expressions/select/select.d.ts +2 -0
- package/dist/tests/expressions/select/select.d.ts.map +1 -0
- package/dist/tests/expressions/select/select.js +11 -0
- package/dist/tests/expressions/select/select.js.map +1 -0
- package/dist/tests/expressions/simple/parse-arrow.d.ts +2 -0
- package/dist/tests/expressions/simple/parse-arrow.d.ts.map +1 -0
- package/dist/tests/expressions/simple/parse-arrow.js +30 -0
- package/dist/tests/expressions/simple/parse-arrow.js.map +1 -0
- package/dist/tests/expressions/trimInternal.d.ts +3 -0
- package/dist/tests/expressions/trimInternal.d.ts.map +1 -0
- package/dist/tests/expressions/trimInternal.js +22 -0
- package/dist/tests/expressions/trimInternal.js.map +1 -0
- package/dist/tests/model/ShoppingContext.d.ts +67 -0
- package/dist/tests/model/ShoppingContext.d.ts.map +1 -0
- package/dist/tests/model/ShoppingContext.js +264 -0
- package/dist/tests/model/ShoppingContext.js.map +1 -0
- package/dist/tests/model/createContext.d.ts +5 -0
- package/dist/tests/model/createContext.d.ts.map +1 -0
- package/dist/tests/model/createContext.js +307 -0
- package/dist/tests/model/createContext.js.map +1 -0
- package/dist/tests/query/combine.d.ts +2 -0
- package/dist/tests/query/combine.d.ts.map +1 -0
- package/dist/tests/query/combine.js +20 -0
- package/dist/tests/query/combine.js.map +1 -0
- package/dist/tests/security/ShoppingContextEvents.d.ts +5 -0
- package/dist/tests/security/ShoppingContextEvents.d.ts.map +1 -0
- package/dist/tests/security/ShoppingContextEvents.js +17 -0
- package/dist/tests/security/ShoppingContextEvents.js.map +1 -0
- package/dist/tests/security/events/OrderEvents.d.ts +17 -0
- package/dist/tests/security/events/OrderEvents.d.ts.map +1 -0
- package/dist/tests/security/events/OrderEvents.js +72 -0
- package/dist/tests/security/events/OrderEvents.js.map +1 -0
- package/dist/tests/security/events/ProductEvents.d.ts +20 -0
- package/dist/tests/security/events/ProductEvents.d.ts.map +1 -0
- package/dist/tests/security/events/ProductEvents.js +83 -0
- package/dist/tests/security/events/ProductEvents.js.map +1 -0
- package/dist/tests/security/events/UserEvents.d.ts +10 -0
- package/dist/tests/security/events/UserEvents.d.ts.map +1 -0
- package/dist/tests/security/events/UserEvents.js +35 -0
- package/dist/tests/security/events/UserEvents.js.map +1 -0
- package/dist/tests/security/events/UserInfo.d.ts +5 -0
- package/dist/tests/security/events/UserInfo.d.ts.map +1 -0
- package/dist/tests/security/events/UserInfo.js +15 -0
- package/dist/tests/security/events/UserInfo.js.map +1 -0
- package/dist/tests/security/tests/include-items.d.ts +3 -0
- package/dist/tests/security/tests/include-items.d.ts.map +1 -0
- package/dist/tests/security/tests/include-items.js +14 -0
- package/dist/tests/security/tests/include-items.js.map +1 -0
- package/dist/tests/security/tests/place-order.d.ts +3 -0
- package/dist/tests/security/tests/place-order.d.ts.map +1 -0
- package/dist/tests/security/tests/place-order.js +86 -0
- package/dist/tests/security/tests/place-order.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import EntityAccessError from "../../common/EntityAccessError.js";
|
|
2
|
+
import Logger from "../../common/Logger.js";
|
|
3
|
+
import { TypeInfo } from "../../common/TypeInfo.js";
|
|
4
|
+
import { ServiceProvider } from "../../di/di.js";
|
|
5
|
+
import { ConditionalExpression, ExistsExpression, Expression, Identifier, ParameterExpression, QuotedLiteral, SelectStatement, ValuesStatement } from "../../query/ast/Expressions.js";
|
|
6
|
+
import { ForeignKeyFilter } from "../events/EntityEvents.js";
|
|
7
|
+
export default class VerificationSession {
|
|
8
|
+
context;
|
|
9
|
+
select;
|
|
10
|
+
field;
|
|
11
|
+
constructor(context) {
|
|
12
|
+
this.context = context;
|
|
13
|
+
this.select = SelectStatement.create({});
|
|
14
|
+
}
|
|
15
|
+
queueVerification(change, events) {
|
|
16
|
+
const { type, entity } = change;
|
|
17
|
+
if (change.status !== "inserted") {
|
|
18
|
+
// verify access to the entity
|
|
19
|
+
const keys = [];
|
|
20
|
+
for (const iterator of type.keys) {
|
|
21
|
+
const key = entity[iterator.name];
|
|
22
|
+
if (key === void 0) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
keys.push([iterator.columnName, key]);
|
|
26
|
+
}
|
|
27
|
+
if (keys.length === type.keys.length) {
|
|
28
|
+
this.queueEntityKey(change, keys, events);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (change.status === "deleted") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// for modified or inserted
|
|
35
|
+
// we need to verify access to each foreign key
|
|
36
|
+
for (const relation of type.relations) {
|
|
37
|
+
if (relation.isInverseRelation) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const fk = relation.fkColumn;
|
|
41
|
+
if (!fk) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const fkValue = entity[fk.name];
|
|
45
|
+
if (fkValue === void 0) {
|
|
46
|
+
// not set... ignore..
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
this.queueEntityForeignKey(change, relation, fkValue);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
queueEntityForeignKey(change, relation, value) {
|
|
53
|
+
const relatedModel = relation.relatedEntity;
|
|
54
|
+
const type = relation.relatedEntity.typeClass;
|
|
55
|
+
const events = this.context.eventsFor(change.type.typeClass);
|
|
56
|
+
const relatedEvents = this.context.eventsFor(relation.relatedEntity.typeClass);
|
|
57
|
+
const context = this.context;
|
|
58
|
+
const fk = new ForeignKeyFilter({
|
|
59
|
+
context,
|
|
60
|
+
events: relatedEvents,
|
|
61
|
+
type: relatedModel,
|
|
62
|
+
name: relation.name,
|
|
63
|
+
fkName: relation.fkColumn.name
|
|
64
|
+
});
|
|
65
|
+
let query = events.onForeignKeyFilter(fk);
|
|
66
|
+
if (query === void 0) {
|
|
67
|
+
query = fk.modify();
|
|
68
|
+
}
|
|
69
|
+
if (query === null) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const eq = query;
|
|
73
|
+
const compare = Expression.equal(Expression.member(eq.selectStatement.as, relatedModel.keys[0].columnName), Expression.constant(value));
|
|
74
|
+
const typeName = TypeInfo.nameOfType(type);
|
|
75
|
+
this.addError(query, compare, `Unable to access entity ${typeName} through foreign key ${TypeInfo.nameOfType(change.type)}.${relation.name}.\n`);
|
|
76
|
+
}
|
|
77
|
+
queueEntityKey(change, keys, events) {
|
|
78
|
+
const type = change.type.typeClass;
|
|
79
|
+
let query = this.context.query(type);
|
|
80
|
+
query = change.status === "modified" ? events.modify(query) : events.delete(query);
|
|
81
|
+
if (!query) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
let compare;
|
|
85
|
+
const eq = query;
|
|
86
|
+
for (const [key, value] of keys) {
|
|
87
|
+
const test = Expression.equal(Expression.member(eq.selectStatement.as, Expression.quotedLiteral(key)), Expression.constant(value));
|
|
88
|
+
compare = compare
|
|
89
|
+
? Expression.logicalAnd(compare, test)
|
|
90
|
+
: test;
|
|
91
|
+
}
|
|
92
|
+
const typeName = TypeInfo.nameOfType(type);
|
|
93
|
+
this.addError(query, compare, `Unable to access entity ${typeName}.\n`);
|
|
94
|
+
}
|
|
95
|
+
async verifyAsync() {
|
|
96
|
+
if (!this.field?.length) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this.select.fields = [
|
|
100
|
+
Expression.as(Expression.templateLiteral(this.field), "error")
|
|
101
|
+
];
|
|
102
|
+
this.select.as = ParameterExpression.create({ name: "x" });
|
|
103
|
+
const source = ValuesStatement.create({
|
|
104
|
+
values: [
|
|
105
|
+
[Identifier.create({ value: "1" })]
|
|
106
|
+
],
|
|
107
|
+
as: QuotedLiteral.create({ literal: "a" }),
|
|
108
|
+
fields: [QuotedLiteral.create({ literal: "a" })]
|
|
109
|
+
});
|
|
110
|
+
this.select.source = source;
|
|
111
|
+
const compiler = this.context.driver.compiler;
|
|
112
|
+
const query = compiler.compileExpression(null, this.select);
|
|
113
|
+
const logger = ServiceProvider.resolve(this.context, Logger);
|
|
114
|
+
const session = logger.newSession();
|
|
115
|
+
try {
|
|
116
|
+
const { rows: [{ error }] } = await this.context.driver.executeQuery(query);
|
|
117
|
+
if (error) {
|
|
118
|
+
session.error(`Failed executing ${query.text}\n[${query.values.join(",")}]\n${error?.stack ?? error}`);
|
|
119
|
+
EntityAccessError.throw(error);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
session.dispose();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
addError(query, compare, error) {
|
|
127
|
+
const select = { ...query.selectStatement };
|
|
128
|
+
select.fields = [
|
|
129
|
+
Expression.identifier("1")
|
|
130
|
+
];
|
|
131
|
+
const where = select.where
|
|
132
|
+
? Expression.logicalAnd(select.where, compare)
|
|
133
|
+
: compare;
|
|
134
|
+
select.where = where;
|
|
135
|
+
const text = ConditionalExpression.create({
|
|
136
|
+
test: ExistsExpression.create({
|
|
137
|
+
target: select
|
|
138
|
+
}),
|
|
139
|
+
consequent: Expression.constant(""),
|
|
140
|
+
alternate: Expression.constant(error),
|
|
141
|
+
});
|
|
142
|
+
(this.field ??= []).push(text);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=VerificationSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerificationSession.js","sourceRoot":"","sources":["../../../src/model/verification/VerificationSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const queryItem: unique symbol;
|
|
2
|
+
export declare class QueryPart {
|
|
3
|
+
static from(a: Partial<QueryPart>): QueryPart;
|
|
4
|
+
name: string;
|
|
5
|
+
literal: boolean;
|
|
6
|
+
quoted: boolean;
|
|
7
|
+
value: any;
|
|
8
|
+
toString(): string;
|
|
9
|
+
}
|
|
10
|
+
export type IQuery = string | QueryPart;
|
|
11
|
+
export declare class Query {
|
|
12
|
+
readonly parts: IQuery[];
|
|
13
|
+
static empty: Query;
|
|
14
|
+
static literal: (name: any) => QueryPart;
|
|
15
|
+
static quotedLiteral: (...names: string[]) => QueryPart[];
|
|
16
|
+
static join(queries: Query[], separator?: string): Query;
|
|
17
|
+
static create(t: TemplateStringsArray, ...a: any[]): Query;
|
|
18
|
+
constructor(parts?: IQuery[]);
|
|
19
|
+
append(t: TemplateStringsArray, ...a: []): Query;
|
|
20
|
+
appendLiteral(text: any): Query;
|
|
21
|
+
appendQuotedLiteral(text: any): Query;
|
|
22
|
+
appendParameter(value: any, name?: any): Query;
|
|
23
|
+
toString(): string;
|
|
24
|
+
toQuery(naming?: (name: string, index: number) => string, quote?: (name: string) => string): {
|
|
25
|
+
text: string;
|
|
26
|
+
values: any[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/query/Query.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAAsB,CAAC;AAE7C,qBAAa,SAAS;WAEJ,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAKjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IAEX,QAAQ;CAOlB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAExC,qBAAa,KAAK;aAiFc,KAAK,EAAE,MAAM,EAAE;IA/E3C,OAAc,KAAK,QAAiB;IAEpC,OAAc,OAAO,iBAAW,SAAS,CAA4C;IAErF,OAAc,aAAa,aAAe,MAAM,EAAG,KAAG,SAAS,EAAE,CAA+E;WAElI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,GAAE,MAAa;WAW/C,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAI,CAAC,EAAE,GAAG,EAAE;gBA8D9B,KAAK,GAAE,MAAM,EAAO;IAIhD,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAI,CAAC,EAAE,EAAE;IAIzC,aAAa,CAAC,IAAI,KAAA;IAIlB,mBAAmB,CAAC,IAAI,KAAA;IAIxB,eAAe,CAAC,KAAK,KAAA,EAAE,IAAI,CAAC,KAAA;IAK5B,QAAQ;IAIR,OAAO,CACH,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAA6B,EACtE,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuC;;;;CAwBvE"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export const queryItem = Symbol("queryItem");
|
|
2
|
+
export class QueryPart {
|
|
3
|
+
static from(a) {
|
|
4
|
+
Object.setPrototypeOf(a, QueryPart.prototype);
|
|
5
|
+
return a;
|
|
6
|
+
}
|
|
7
|
+
name;
|
|
8
|
+
literal;
|
|
9
|
+
quoted;
|
|
10
|
+
value;
|
|
11
|
+
toString() {
|
|
12
|
+
if (this.quoted) {
|
|
13
|
+
return JSON.stringify(this.name);
|
|
14
|
+
}
|
|
15
|
+
return this.name;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class Query {
|
|
19
|
+
parts;
|
|
20
|
+
static empty = new Query([]);
|
|
21
|
+
static literal = (name) => QueryPart.from({ name, literal: true });
|
|
22
|
+
static quotedLiteral = (...names) => names.map((name) => QueryPart.from({ name, literal: true, quoted: true }));
|
|
23
|
+
static join(queries, separator = ", ") {
|
|
24
|
+
const r = [];
|
|
25
|
+
for (const iterator of queries) {
|
|
26
|
+
if (r.length > 0) {
|
|
27
|
+
r.push(separator);
|
|
28
|
+
}
|
|
29
|
+
r.push(...iterator.parts);
|
|
30
|
+
}
|
|
31
|
+
return new Query(r);
|
|
32
|
+
}
|
|
33
|
+
static create(t, ...a) {
|
|
34
|
+
const r = [];
|
|
35
|
+
let pi = 0;
|
|
36
|
+
for (let index = 0; index < t.length; index++) {
|
|
37
|
+
const element = t[index];
|
|
38
|
+
r.push(element);
|
|
39
|
+
let name;
|
|
40
|
+
if (index < a.length) {
|
|
41
|
+
const value = a[index];
|
|
42
|
+
if (value === void 0) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
for (const iterator of value) {
|
|
47
|
+
if (iterator instanceof QueryPart) {
|
|
48
|
+
if (iterator.literal) {
|
|
49
|
+
r.push(iterator);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
name = "@p" + pi++;
|
|
54
|
+
r.push(QueryPart.from({ name, value }));
|
|
55
|
+
}
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (value !== null && typeof value === "object") {
|
|
59
|
+
if (value instanceof QueryPart) {
|
|
60
|
+
if (value.literal) {
|
|
61
|
+
r.push(value);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (value instanceof Query) {
|
|
66
|
+
for (const iterator of value.parts) {
|
|
67
|
+
if (typeof iterator === "string") {
|
|
68
|
+
r.push(iterator);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (iterator instanceof QueryPart) {
|
|
72
|
+
if (iterator.literal) {
|
|
73
|
+
r.push(iterator);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
name = "@p" + pi++;
|
|
78
|
+
r.push(QueryPart.from({ name, value }));
|
|
79
|
+
}
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
name = "@p" + pi++;
|
|
84
|
+
r.push(QueryPart.from({ name, value }));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return new Query(r);
|
|
88
|
+
}
|
|
89
|
+
constructor(parts = []) {
|
|
90
|
+
this.parts = parts;
|
|
91
|
+
}
|
|
92
|
+
append(t, ...a) {
|
|
93
|
+
return new Query(this.parts.concat(...Query.create(t, ...a).parts));
|
|
94
|
+
}
|
|
95
|
+
appendLiteral(text) {
|
|
96
|
+
return new Query(this.parts.concat([Query.literal(text)]));
|
|
97
|
+
}
|
|
98
|
+
appendQuotedLiteral(text) {
|
|
99
|
+
return new Query(this.parts.concat(Query.quotedLiteral(text)));
|
|
100
|
+
}
|
|
101
|
+
appendParameter(value, name) {
|
|
102
|
+
name ??= "@p" + Date.now();
|
|
103
|
+
return new Query(this.parts.concat(QueryPart.from({ name, value })));
|
|
104
|
+
}
|
|
105
|
+
toString() {
|
|
106
|
+
return this.parts.join("");
|
|
107
|
+
}
|
|
108
|
+
toQuery(naming = (name, i) => `$${i}`, quote = (name) => JSON.stringify(name)) {
|
|
109
|
+
let text = "";
|
|
110
|
+
const values = [];
|
|
111
|
+
for (const iterator of this.parts) {
|
|
112
|
+
if (typeof iterator === "string") {
|
|
113
|
+
text += iterator;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (iterator instanceof QueryPart) {
|
|
117
|
+
if (iterator.literal) {
|
|
118
|
+
if (iterator.quoted) {
|
|
119
|
+
text += quote(iterator.name);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
text += iterator.name;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
text += naming(iterator.name, values.length + 1);
|
|
126
|
+
values.push(iterator.value);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { text, values };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=Query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../../src/query/Query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ArrowFunctionExpression, BigIntLiteral, BinaryExpression, BooleanLiteral, CallExpression, CoalesceExpression, ConditionalExpression, Constant, DeleteStatement, ExistsExpression, Expression, ExpressionAs, Identifier, InsertStatement, JoinExpression, MemberExpression, NewObjectExpression, NullExpression, NumberLiteral, OrderByExpression, ParameterExpression, QuotedLiteral, ReturnUpdated, SelectStatement, StringLiteral, TableLiteral, TemplateElement, TemplateLiteral, UpdateStatement, ValuesStatement } from "./Expressions.js";
|
|
2
|
+
import Visitor from "./Visitor.js";
|
|
3
|
+
export default class DebugStringVisitor extends Visitor<string> {
|
|
4
|
+
static expressionToString(e: Expression): string;
|
|
5
|
+
visitArrowFunctionExpression(e: ArrowFunctionExpression): string;
|
|
6
|
+
visitBigIntLiteral(e: BigIntLiteral): string;
|
|
7
|
+
visitBinaryExpression(e: BinaryExpression): string;
|
|
8
|
+
visitBooleanLiteral(e: BooleanLiteral): string;
|
|
9
|
+
visitCallExpression(e: CallExpression): string;
|
|
10
|
+
visitCoalesceExpression(e: CoalesceExpression): string;
|
|
11
|
+
visitConditionalExpression(e: ConditionalExpression): string;
|
|
12
|
+
visitConstant(e: Constant): string;
|
|
13
|
+
visitExpressionAs(e: ExpressionAs): string;
|
|
14
|
+
visitIdentifier(e: Identifier): string;
|
|
15
|
+
visitMemberExpression(e: MemberExpression): string;
|
|
16
|
+
visitTableLiteral(e: TableLiteral): string;
|
|
17
|
+
visitNewObjectExpression(e: NewObjectExpression): string;
|
|
18
|
+
visitNullExpression(e: NullExpression): string;
|
|
19
|
+
visitNumberLiteral(e: NumberLiteral): string;
|
|
20
|
+
visitParameterExpression(e: ParameterExpression): string;
|
|
21
|
+
visitQuotedLiteral(e: QuotedLiteral): string;
|
|
22
|
+
visitStringLiteral(e: StringLiteral): string;
|
|
23
|
+
visitTemplateElement(e: TemplateElement): string;
|
|
24
|
+
visitTemplateLiteral(e: TemplateLiteral): string;
|
|
25
|
+
visitDeleteStatement(e: DeleteStatement): string;
|
|
26
|
+
visitExistsExpression(e: ExistsExpression): string;
|
|
27
|
+
visitInsertStatement(e: InsertStatement): string;
|
|
28
|
+
visitJoinExpression(e: JoinExpression): string;
|
|
29
|
+
visitOrderByExpression(e: OrderByExpression): string;
|
|
30
|
+
visitReturnUpdated(e: ReturnUpdated): string;
|
|
31
|
+
visitValuesStatement(e: ValuesStatement): string;
|
|
32
|
+
visitSelectStatement(e: SelectStatement): string;
|
|
33
|
+
visitUpdateStatement(e: UpdateStatement): string;
|
|
34
|
+
private visitArray;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=DebugStringVisitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DebugStringVisitor.d.ts","sourceRoot":"","sources":["../../../src/query/ast/DebugStringVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzhB,OAAO,OAAO,MAAM,cAAc,CAAC;AAInC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO,CAAC,MAAM,CAAC;IAE3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU;IAKvC,4BAA4B,CAAC,CAAC,EAAE,uBAAuB;IAIvD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAUlD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,uBAAuB,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAUtD,0BAA0B,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM;IAI5D,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM;IAIlC,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM;IAI1C,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM;IAItC,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAIlD,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM;IAO1C,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIxD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,wBAAwB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIxD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAqBhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAOhD,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAIlD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM;IAI9C,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAIpD,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM;IAI5C,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAKhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAWhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAIhD,OAAO,CAAC,UAAU;CAGrB"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import Visitor from "./Visitor.js";
|
|
2
|
+
const isBinary = (type) => /^(BinaryExpression|CoalesceExpression)$/.test(type);
|
|
3
|
+
export default class DebugStringVisitor extends Visitor {
|
|
4
|
+
static expressionToString(e) {
|
|
5
|
+
const dsv = new DebugStringVisitor();
|
|
6
|
+
return dsv.visit(e);
|
|
7
|
+
}
|
|
8
|
+
visitArrowFunctionExpression(e) {
|
|
9
|
+
return `(${this.visitArray(e.params)}) => ${this.visit(e.body)}`;
|
|
10
|
+
}
|
|
11
|
+
visitBigIntLiteral(e) {
|
|
12
|
+
return e.value.toString() + "n";
|
|
13
|
+
}
|
|
14
|
+
visitBinaryExpression(e) {
|
|
15
|
+
const left = isBinary(e.left.type)
|
|
16
|
+
? `(${this.visit(e.left)})`
|
|
17
|
+
: this.visit(e.left);
|
|
18
|
+
const right = isBinary(e.right.type)
|
|
19
|
+
? `(${this.visit(e.right)})`
|
|
20
|
+
: this.visit(e.right);
|
|
21
|
+
return `${left} ${e.operator} ${right}`;
|
|
22
|
+
}
|
|
23
|
+
visitBooleanLiteral(e) {
|
|
24
|
+
return String(e.value);
|
|
25
|
+
}
|
|
26
|
+
visitCallExpression(e) {
|
|
27
|
+
return `${this.visit(e.callee)}(${this.visitArray(e.arguments)})`;
|
|
28
|
+
}
|
|
29
|
+
visitCoalesceExpression(e) {
|
|
30
|
+
const left = isBinary(e.left.type)
|
|
31
|
+
? `(${this.visit(e.left)})`
|
|
32
|
+
: this.visit(e.left);
|
|
33
|
+
const right = isBinary(e.right.type)
|
|
34
|
+
? `(${this.visit(e.right)})`
|
|
35
|
+
: this.visit(e.right);
|
|
36
|
+
return `${left} ?? ${right}`;
|
|
37
|
+
}
|
|
38
|
+
visitConditionalExpression(e) {
|
|
39
|
+
return `${this.visit(e.test)} ? ${this.visit(e.consequent)} : ${this.visit(e.alternate)}`;
|
|
40
|
+
}
|
|
41
|
+
visitConstant(e) {
|
|
42
|
+
return `"Constant:${e.value}"`;
|
|
43
|
+
}
|
|
44
|
+
visitExpressionAs(e) {
|
|
45
|
+
return `${this.visit(e.expression)} as ${this.visit(e.alias)}`;
|
|
46
|
+
}
|
|
47
|
+
visitIdentifier(e) {
|
|
48
|
+
return e.value;
|
|
49
|
+
}
|
|
50
|
+
visitMemberExpression(e) {
|
|
51
|
+
return `${this.visit(e.target)}.${this.visit(e.property)}`;
|
|
52
|
+
}
|
|
53
|
+
visitTableLiteral(e) {
|
|
54
|
+
if (!e.schema) {
|
|
55
|
+
return this.visit(e.name);
|
|
56
|
+
}
|
|
57
|
+
return `${this.visit(e.schema)}.${this.visit(e.name)}`;
|
|
58
|
+
}
|
|
59
|
+
visitNewObjectExpression(e) {
|
|
60
|
+
return `({${this.visitArray(e.properties)}})`;
|
|
61
|
+
}
|
|
62
|
+
visitNullExpression(e) {
|
|
63
|
+
return "null";
|
|
64
|
+
}
|
|
65
|
+
visitNumberLiteral(e) {
|
|
66
|
+
return e.value.toString();
|
|
67
|
+
}
|
|
68
|
+
visitParameterExpression(e) {
|
|
69
|
+
return e.name;
|
|
70
|
+
}
|
|
71
|
+
visitQuotedLiteral(e) {
|
|
72
|
+
return `"${e.literal}"`;
|
|
73
|
+
}
|
|
74
|
+
visitStringLiteral(e) {
|
|
75
|
+
return `'${e.value}'`;
|
|
76
|
+
}
|
|
77
|
+
visitTemplateElement(e) {
|
|
78
|
+
return `${e.value.cooked}`;
|
|
79
|
+
}
|
|
80
|
+
visitTemplateLiteral(e) {
|
|
81
|
+
const items = [];
|
|
82
|
+
if (e.quasis?.length) {
|
|
83
|
+
for (let i = 0; i < e.quasis.length; i++) {
|
|
84
|
+
items.push(this.visit(e.quasis[i]));
|
|
85
|
+
if (i < e.value.length) {
|
|
86
|
+
items.push("${" + this.visit(e.value[i]) + "}");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
for (const iterator of e.value) {
|
|
92
|
+
if (iterator.type === "StringLiteral") {
|
|
93
|
+
items.push(iterator.value);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
items.push("${" + this.visit(iterator) + "}");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return "`" + items.join("") + "`";
|
|
100
|
+
}
|
|
101
|
+
visitDeleteStatement(e) {
|
|
102
|
+
if (e.where) {
|
|
103
|
+
return `DELETE FROM ${this.visit(e.table)} WHERE ${this.visit(e.where)}`;
|
|
104
|
+
}
|
|
105
|
+
return `DELETE FROM ${this.visit(e.table)}`;
|
|
106
|
+
}
|
|
107
|
+
visitExistsExpression(e) {
|
|
108
|
+
return `EXISTS (${this.visit(e.target)})`;
|
|
109
|
+
}
|
|
110
|
+
visitInsertStatement(e) {
|
|
111
|
+
return `INSERT INTO ${this.visit(e.table)} ${e.values} ${this.visit(e.returnValues)}`;
|
|
112
|
+
}
|
|
113
|
+
visitJoinExpression(e) {
|
|
114
|
+
return `\n${e.joinType} JOIN ${this.visit(e.source)}\n\t\tON ${this.visit(e.where)}\n`;
|
|
115
|
+
}
|
|
116
|
+
visitOrderByExpression(e) {
|
|
117
|
+
return `${e.target} ${e.descending ? "DESC" : "ASC"}`;
|
|
118
|
+
}
|
|
119
|
+
visitReturnUpdated(e) {
|
|
120
|
+
return `\nRETURNING ${this.visitArray(e.fields)}`;
|
|
121
|
+
}
|
|
122
|
+
visitValuesStatement(e) {
|
|
123
|
+
const rows = e.values.map((x) => `(${this.visit(x[0])})`).join(",\n\t");
|
|
124
|
+
return `(VALUES ${rows}) as ${this.visit(e.as)})`;
|
|
125
|
+
}
|
|
126
|
+
visitSelectStatement(e) {
|
|
127
|
+
const select = `SELECT\n\t${this.visitArray(e.fields, ",\n\t")}\n\tFROM ${this.visit(e.source)}`;
|
|
128
|
+
const as = e.as ? this.visit(e.as) : "";
|
|
129
|
+
const joins = e.joins?.length > 0 ? this.visitArray(e.joins, "\n\t") : "";
|
|
130
|
+
const where = e.where ? `\n\tWHERE ${this.visit(e.where)}` : "";
|
|
131
|
+
const orderBy = e.orderBy ? `\n\tORDER BY ${this.visitArray(e.orderBy, "\n\t\tTHEN BY")}` : "";
|
|
132
|
+
const limit = e.limit > 0 ? `\n\tLIMIT ${e.limit}` : "";
|
|
133
|
+
const offset = e.offset > 0 ? `\n\OFFSET ${e.offset}` : "";
|
|
134
|
+
return `${select}${as}${joins}${where}${orderBy}${limit}${offset}`;
|
|
135
|
+
}
|
|
136
|
+
visitUpdateStatement(e) {
|
|
137
|
+
return "UPDATE";
|
|
138
|
+
}
|
|
139
|
+
visitArray(e, separator = ", ") {
|
|
140
|
+
return e.map((x) => this.visit(x)).join(separator);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=DebugStringVisitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DebugStringVisitor.js","sourceRoot":"","sources":["../../../src/query/ast/DebugStringVisitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import QueryCompiler from "../../compiler/QueryCompiler.js";
|
|
2
|
+
import EntityType from "../../entity-query/EntityType.js";
|
|
3
|
+
import EntityQuery from "../../model/EntityQuery.js";
|
|
4
|
+
import { BigIntLiteral, BinaryExpression, BooleanLiteral, CallExpression, CoalesceExpression, ConditionalExpression, Constant, DeleteStatement, ExistsExpression, Expression, ExpressionAs, Identifier, InsertStatement, JoinExpression, MemberExpression, NewObjectExpression, NullExpression, NumberLiteral, OrderByExpression, ParameterExpression, QuotedLiteral, ReturnUpdated, SelectStatement, StringLiteral, TableLiteral, TemplateLiteral, UpdateStatement, ValuesStatement } from "./Expressions.js";
|
|
5
|
+
import { ITextQuery } from "./IStringTransformer.js";
|
|
6
|
+
import ParameterScope from "./ParameterScope.js";
|
|
7
|
+
import Visitor from "./Visitor.js";
|
|
8
|
+
export interface IMappingModel {
|
|
9
|
+
parameter: ParameterExpression;
|
|
10
|
+
model?: EntityType;
|
|
11
|
+
selectStatement?: SelectStatement;
|
|
12
|
+
name: string;
|
|
13
|
+
}
|
|
14
|
+
export default class ExpressionToSql extends Visitor<ITextQuery> {
|
|
15
|
+
private source;
|
|
16
|
+
root: ParameterExpression;
|
|
17
|
+
target: ParameterExpression;
|
|
18
|
+
private compiler;
|
|
19
|
+
protected readonly scope: ParameterScope;
|
|
20
|
+
constructor(source: EntityQuery, root: ParameterExpression, target: ParameterExpression, compiler: QueryCompiler);
|
|
21
|
+
visitArray(e: Expression[], sep?: string): ITextQuery;
|
|
22
|
+
visitValuesStatement(e: ValuesStatement): ITextQuery;
|
|
23
|
+
visitTableLiteral(e: TableLiteral): ITextQuery;
|
|
24
|
+
visitSelectStatement(e: SelectStatement): ITextQuery;
|
|
25
|
+
prepareStatement(e: SelectStatement): void;
|
|
26
|
+
visitQuotedLiteral(e: QuotedLiteral): ITextQuery;
|
|
27
|
+
visitExpressionAs(e: ExpressionAs): ITextQuery;
|
|
28
|
+
visitConstant({ value }: Constant): ITextQuery;
|
|
29
|
+
visitBigIntLiteral({ value }: BigIntLiteral): ITextQuery;
|
|
30
|
+
visitNumberLiteral({ value }: NumberLiteral): ITextQuery;
|
|
31
|
+
visitStringLiteral({ value }: StringLiteral): ITextQuery;
|
|
32
|
+
visitBooleanLiteral({ value }: BooleanLiteral): ITextQuery;
|
|
33
|
+
visitTemplateLiteral(e: TemplateLiteral): ITextQuery;
|
|
34
|
+
visitCallExpression(e: CallExpression): ITextQuery;
|
|
35
|
+
visitIdentifier(e: Identifier): ITextQuery;
|
|
36
|
+
visitParameterExpression(pe: ParameterExpression): ITextQuery;
|
|
37
|
+
visitMemberExpression(me: MemberExpression): ITextQuery;
|
|
38
|
+
visitNullExpression(e: NullExpression): ITextQuery;
|
|
39
|
+
visitBinaryExpression(e: BinaryExpression): ITextQuery;
|
|
40
|
+
visitConditionalExpression(e: ConditionalExpression): ITextQuery;
|
|
41
|
+
visitCoalesceExpression(e: CoalesceExpression): ITextQuery;
|
|
42
|
+
visitReturnUpdated(e: ReturnUpdated): ITextQuery;
|
|
43
|
+
visitInsertStatement(e: InsertStatement): ITextQuery;
|
|
44
|
+
visitUpdateStatement(e: UpdateStatement): ITextQuery;
|
|
45
|
+
visitNewObjectExpression(e: NewObjectExpression): ITextQuery;
|
|
46
|
+
visitDeleteStatement(e: DeleteStatement): ITextQuery;
|
|
47
|
+
visitJoinExpression(e: JoinExpression): ITextQuery;
|
|
48
|
+
visitOrderByExpression(e: OrderByExpression): ITextQuery;
|
|
49
|
+
visitExistsExpression(e: ExistsExpression): ITextQuery;
|
|
50
|
+
/**
|
|
51
|
+
* This will also create and replace joins if query is provided.
|
|
52
|
+
* @param x MemberExpression
|
|
53
|
+
* @returns Property Chain
|
|
54
|
+
*/
|
|
55
|
+
private getPropertyChain;
|
|
56
|
+
private flatten;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=ExpressionToSql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpressionToSql.d.ts","sourceRoot":"","sources":["../../../src/query/ast/ExpressionToSql.ts"],"names":[],"mappings":"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"}
|