typeorm 0.2.45-dev.f3cfdd2 → 0.2.45
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/browser/cache/DbQueryResultCache.js +6 -6
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.js +2 -2
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/connection/Connection.js +2 -2
- package/browser/connection/Connection.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.js +2 -2
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +10 -10
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +157 -157
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +3 -3
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -4
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/browser/driver/capacitor/CapacitorDriver.js +1 -1
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.js +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +6 -6
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +153 -153
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +3 -3
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.js +4 -4
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +11 -11
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +163 -163
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +10 -10
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +124 -124
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +18 -18
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +229 -229
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.js +9 -9
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +126 -126
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js +4 -4
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +3 -3
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +61 -61
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.js +3 -3
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.js +11 -11
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +203 -203
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/entity-manager/EntityManager.js +4 -4
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.js +1 -1
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedError.js +2 -2
- package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.js +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.js +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.js +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/browser/error/CannotCreateEntityIdMapError.js +1 -1
- package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/browser/error/CannotDetermineEntityError.js +1 -1
- package/browser/error/CannotDetermineEntityError.js.map +1 -1
- package/browser/error/CannotExecuteNotConnectedError.js +1 -1
- package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.js +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.js +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/browser/error/CircularRelationsError.js +1 -1
- package/browser/error/CircularRelationsError.js.map +1 -1
- package/browser/error/ColumnTypeUndefinedError.js +1 -1
- package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
- package/browser/error/ConnectionIsNotSetError.js +1 -1
- package/browser/error/ConnectionIsNotSetError.js.map +1 -1
- package/browser/error/ConnectionNotFoundError.js +1 -1
- package/browser/error/ConnectionNotFoundError.js.map +1 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/browser/error/CustomRepositoryNotFoundError.js +1 -1
- package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/browser/error/DataTypeNotSupportedError.js +1 -1
- package/browser/error/DataTypeNotSupportedError.js.map +1 -1
- package/browser/error/DriverOptionNotSetError.js +1 -1
- package/browser/error/DriverOptionNotSetError.js.map +1 -1
- package/browser/error/DriverPackageNotInstalledError.js +2 -2
- package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
- package/browser/error/EntityColumnNotFound.js +1 -1
- package/browser/error/EntityColumnNotFound.js.map +1 -1
- package/browser/error/EntityMetadataNotFoundError.js +1 -1
- package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
- package/browser/error/EntityNotFoundError.js +2 -2
- package/browser/error/EntityNotFoundError.js.map +1 -1
- package/browser/error/FindRelationsNotFoundError.js +2 -2
- package/browser/error/FindRelationsNotFoundError.js.map +1 -1
- package/browser/error/InitializedRelationError.js +1 -1
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/error/MissingDeleteDateColumnError.js +1 -1
- package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
- package/browser/error/MissingDriverError.js +2 -2
- package/browser/error/MissingDriverError.js.map +1 -1
- package/browser/error/MissingJoinColumnError.js +3 -3
- package/browser/error/MissingJoinColumnError.js.map +1 -1
- package/browser/error/MissingJoinTableError.js +3 -3
- package/browser/error/MissingJoinTableError.js.map +1 -1
- package/browser/error/MissingPrimaryColumnError.js +1 -1
- package/browser/error/MissingPrimaryColumnError.js.map +1 -1
- package/browser/error/MustBeEntityError.js +1 -1
- package/browser/error/MustBeEntityError.js.map +1 -1
- package/browser/error/NamingStrategyNotFoundError.js +2 -2
- package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
- package/browser/error/NoConnectionForRepositoryError.js +1 -1
- package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
- package/browser/error/NoConnectionOptionError.js +2 -2
- package/browser/error/NoConnectionOptionError.js.map +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.js +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.js +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.js +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/browser/error/RepositoryNotFoundError.js +2 -2
- package/browser/error/RepositoryNotFoundError.js.map +1 -1
- package/browser/error/RepositoryNotTreeError.js +1 -1
- package/browser/error/RepositoryNotTreeError.js.map +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.js +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/browser/error/SubjectWithoutIdentifierError.js +1 -1
- package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.js +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.js +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
- package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +6 -6
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/logger/FileLogger.js +3 -3
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.js +1 -1
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.js +1 -1
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationCountMetadata.js +1 -1
- package/browser/metadata/RelationCountMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.js +1 -1
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.js +1 -1
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +9 -9
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +16 -16
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.js +11 -11
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.js +17 -17
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +2 -2
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +44 -44
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/BrowserPlatformTools.js +9 -9
- package/browser/platform/BrowserPlatformTools.js.map +1 -1
- package/browser/platform/PlatformTools.js +1 -1
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.js +1 -1
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js +3 -3
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +22 -22
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.js +1 -1
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js +39 -39
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.js +2 -2
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/RelationLoader.js +7 -7
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.js +3 -3
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.js +4 -4
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.js +1 -1
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +23 -23
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.js +4 -4
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +8 -8
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountAttribute.js +1 -1
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.js +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.js +4 -4
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.js +7 -7
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/repository/TreeRepository.js +7 -7
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js +19 -19
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/subscriber/Broadcaster.js +1 -1
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/util/DateUtils.js +1 -1
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.js +7 -7
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.js +2 -2
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/PathUtils.js +1 -1
- package/browser/util/PathUtils.js.map +1 -1
- package/cache/DbQueryResultCache.js +6 -6
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/RedisQueryResultCache.js +2 -2
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli.js +0 -0
- package/commands/CommandUtils.js +1 -1
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +3 -3
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +6 -6
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.js +3 -3
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +8 -8
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/SchemaLogCommand.js +1 -1
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +2 -2
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/connection/Connection.js +2 -2
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionOptionsReader.js +2 -2
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.js +10 -10
- package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +157 -157
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +3 -3
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js +4 -4
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/capacitor/CapacitorDriver.js +1 -1
- package/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/driver/capacitor/CapacitorQueryRunner.js +1 -1
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +6 -6
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +153 -153
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.js +1 -1
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +3 -3
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoDriver.js +4 -4
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +11 -11
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +163 -163
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.js +1 -1
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.js +10 -10
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +124 -124
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +18 -18
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +229 -229
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.js +1 -1
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.js +9 -9
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +126 -126
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +4 -4
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +3 -3
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +61 -61
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsDriver.js +3 -3
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.js +11 -11
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +203 -203
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/entity-manager/EntityManager.js +4 -4
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/MongoEntityManager.js +1 -1
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedError.js +2 -2
- package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.js +1 -1
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.js +1 -1
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.js +1 -1
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.js +1 -1
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.js +1 -1
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.js +1 -1
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.js +1 -1
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.js +1 -1
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.js +1 -1
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.js +1 -1
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.js +1 -1
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/error/CustomRepositoryNotFoundError.js +1 -1
- package/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.js +1 -1
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.js +1 -1
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.js +2 -2
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityColumnNotFound.js +1 -1
- package/error/EntityColumnNotFound.js.map +1 -1
- package/error/EntityMetadataNotFoundError.js +1 -1
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.js +2 -2
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/FindRelationsNotFoundError.js +2 -2
- package/error/FindRelationsNotFoundError.js.map +1 -1
- package/error/InitializedRelationError.js +1 -1
- package/error/InitializedRelationError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.js +1 -1
- package/error/MissingDeleteDateColumnError.js.map +1 -1
- package/error/MissingDriverError.js +2 -2
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.js +3 -3
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.js +3 -3
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.js +1 -1
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.js +1 -1
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NamingStrategyNotFoundError.js +2 -2
- package/error/NamingStrategyNotFoundError.js.map +1 -1
- package/error/NoConnectionForRepositoryError.js +1 -1
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.js +2 -2
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.js +1 -1
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.js +1 -1
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.js +1 -1
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/RepositoryNotFoundError.js +2 -2
- package/error/RepositoryNotFoundError.js.map +1 -1
- package/error/RepositoryNotTreeError.js +1 -1
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.js +1 -1
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.js +1 -1
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.js +1 -1
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.js +2 -2
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/find-options/FindOptionsUtils.js +6 -6
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/logger/FileLogger.js +3 -3
- package/logger/FileLogger.js.map +1 -1
- package/metadata/EmbeddedMetadata.js +1 -1
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/IndexMetadata.js +1 -1
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationCountMetadata.js +1 -1
- package/metadata/RelationCountMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.js +1 -1
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.js +1 -1
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +1 -1
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +9 -9
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.js +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.js +16 -16
- package/migration/MigrationExecutor.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.js +11 -11
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/package.json +260 -1
- package/persistence/tree/ClosureSubjectExecutor.js +17 -17
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -2
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.js +44 -44
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.js +1 -1
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.js +1 -1
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js +3 -3
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +22 -22
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.js +1 -1
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/QueryBuilder.js +39 -39
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.js +2 -2
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/RelationLoader.js +7 -7
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.js +3 -3
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.js +4 -4
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.js +1 -1
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +23 -23
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js +4 -4
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +8 -8
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/relation-count/RelationCountAttribute.js +1 -1
- package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.js +1 -1
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.js +4 -4
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-runner/BaseQueryRunner.js +7 -7
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/repository/TreeRepository.js +7 -7
- package/repository/TreeRepository.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.js +19 -19
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/subscriber/Broadcaster.js +1 -1
- package/subscriber/Broadcaster.js.map +1 -1
- package/util/DateUtils.js +1 -1
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.js +7 -7
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.js +2 -2
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/PathUtils.js +1 -1
- package/util/PathUtils.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/persistence/tree/NestedSetSubjectExecutor.ts"],"names":[],"mappings":"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","file":"NestedSetSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {NestedSetMultipleRootError} from \"../../error/NestedSetMultipleRootError\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\n\nclass NestedSetIds {\n left: number;\n right: number;\n}\n\n/**\n * Executes subject operations for nested set tree entities.\n */\nexport class NestedSetSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentNsRight: number|undefined = undefined;\n if (parentId) {\n parentNsRight = await this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.nestedSetRightColumn!.propertyPath, \"right\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(result => {\n const value: any = result ? result[\"right\"] : undefined;\n // CockroachDB returns numeric types as string\n return typeof value === \"string\" ? parseInt(value) : value;\n });\n }\n\n if (parentNsRight !== undefined) {\n await this.queryRunner.query(`UPDATE ${tableName} SET ` +\n `${leftColumnName} = CASE WHEN ${leftColumnName} > ${parentNsRight} THEN ${leftColumnName} + 2 ELSE ${leftColumnName} END,` +\n `${rightColumnName} = ${rightColumnName} + 2 ` +\n `WHERE ${rightColumnName} >= ${parentNsRight}`);\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(parentNsRight),\n subject.metadata.nestedSetRightColumn!.createValueMap(parentNsRight + 1),\n );\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(1),\n subject.metadata.nestedSetRightColumn!.createValueMap(2),\n );\n }\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && parent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(parent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n // Exit if the parent or the entity where never set\n if (entity === undefined || parent === undefined) {\n return;\n }\n\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, parentId)) {\n return;\n }\n\n if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n const entityId = subject.metadata.getEntityIdMap(entity);\n\n let entityNs: NestedSetIds | undefined = undefined;\n if (entityId) {\n entityNs = (await this.getNestedSetIds(subject.metadata, entityId))[0];\n }\n\n let parentNs: NestedSetIds | undefined = undefined;\n if (parentId) {\n parentNs = (await this.getNestedSetIds(subject.metadata, parentId))[0];\n }\n\n if (entityNs !== undefined && parentNs !== undefined) {\n const isMovingUp = parentNs.left > entityNs.left;\n const treeSize = entityNs.right - entityNs.left + 1;\n\n let entitySize: number;\n if (isMovingUp) {\n entitySize = parentNs.left - entityNs.right;\n } else {\n entitySize = parentNs.right - entityNs.left;\n }\n\n // Moved entity logic\n const updateLeftSide =\n `WHEN ${leftColumnName} >= ${entityNs.left} AND ` +\n `${leftColumnName} < ${entityNs.right} ` +\n `THEN ${leftColumnName} + ${entitySize} `;\n\n const updateRightSide =\n `WHEN ${rightColumnName} > ${entityNs.left} AND ` +\n `${rightColumnName} <= ${entityNs.right} ` +\n `THEN ${rightColumnName} + ${entitySize} `;\n\n // Update the surrounding entities\n if (isMovingUp) {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entityNs.right} AND ` +\n `${leftColumnName} <= ${parentNs.left} ` +\n `THEN ${leftColumnName} - ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entityNs.right} AND ` +\n `${rightColumnName} < ${parentNs.left} ` +\n `THEN ${rightColumnName} - ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n } else {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} < ${entityNs.left} AND ` +\n `${leftColumnName} > ${parentNs.right} ` +\n `THEN ${leftColumnName} + ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} < ${entityNs.left} AND ` +\n `${rightColumnName} >= ${parentNs.right} ` +\n `THEN ${rightColumnName} + ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const metadata = subjects[0].metadata;\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(metadata.tablePath);\n const leftColumnName = escape(metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(metadata.nestedSetRightColumn!.databaseName);\n\n let entitiesIds: ObjectLiteral[] = [];\n for (const subject of subjects) {\n const entityId = metadata.getEntityIdMap(subject.entity);\n\n if (entityId) {\n entitiesIds.push(entityId);\n }\n }\n\n let entitiesNs = await this.getNestedSetIds(metadata, entitiesIds);\n\n for (const entity of entitiesNs) {\n const treeSize = entity.right - entity.left + 1;\n\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entity.left} THEN ${leftColumnName} - ${treeSize} ` +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entity.right} THEN ${rightColumnName} - ${treeSize} ` +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n\n /**\n * Get the nested set ids for a given entity\n */\n protected getNestedSetIds(metadata: EntityMetadata, ids: ObjectLiteral | ObjectLiteral[]): Promise<NestedSetIds[]> {\n const select = {\n left: `${metadata.targetName}.${metadata.nestedSetLeftColumn!.propertyPath}`,\n right: `${metadata.targetName}.${metadata.nestedSetRightColumn!.propertyPath}`\n };\n\n const queryBuilder = this.queryRunner.manager.createQueryBuilder();\n\n Object.entries(select).forEach(([key, value]) => {\n queryBuilder.addSelect(value, key);\n });\n\n return queryBuilder\n .from(metadata.target, metadata.targetName)\n .whereInIds(ids)\n .orderBy(select.right, \"DESC\")\n .getRawMany()\n .then(results => {\n const data: NestedSetIds[] = [];\n\n for (const result of results) {\n const entry: any = {};\n for (const key of Object.keys(select)) {\n const value = result ? result[key] : undefined;\n\n // CockroachDB returns numeric types as string\n entry[key] = typeof value === \"string\" ? parseInt(value) : value;\n }\n data.push(entry);\n }\n\n return data;\n });\n }\n\n private async isUniqueRootEntity(subject: Subject, parent: any): Promise<boolean> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const parameters: any[] = [];\n const whereCondition = subject.metadata.treeParentRelation!.joinColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parameter = column.getEntityValue(parent);\n\n if (parameter == null) {\n return `${columnName} IS NULL`;\n }\n\n parameters.push(parameter);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.databaseName, parameters.length - 1);\n return `${columnName} = ${parameterName}`;\n }).join(\" AND \");\n\n const countAlias = \"count\";\n const result = await this.queryRunner.query(\n `SELECT COUNT(1) AS ${escape(countAlias)} FROM ${tableName} WHERE ${whereCondition}`,\n parameters,\n true\n );\n\n return parseInt(result.records[0][countAlias]) === 0;\n }\n\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n protected getTableName(tablePath: string): string {\n return tablePath.split(\".\")\n .map(i => {\n // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string\n return i === \"\" ? i : this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n }\n}\n"],"sourceRoot":"../.."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/persistence/tree/NestedSetSubjectExecutor.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAC;AAIlF;IAAA;IAGA,CAAC;IAAD,mBAAC;AAAD,CAHA,AAGC,IAAA;AAED;;GAEG;AACH;IAEI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,kCAAsB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAC9C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,yCAAM,GAAZ,UAAa,OAAgB;;;;;;;wBACnB,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC1D,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAoB,CAAC,YAAY,CAAC,CAAC;wBAC5E,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,YAAY,CAAC,CAAC;wBAEhF,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;wBACtH,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAErD,aAAa,GAAqB,SAAS,CAAC;6BAC5C,QAAQ,EAAR,wBAAQ;wBACQ,qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO;iCACzC,kBAAkB,EAAE;iCACpB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC;iCACxG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;iCAC1D,UAAU,CAAC,QAAQ,CAAC;iCACpB,SAAS,EAAE;iCACX,IAAI,CAAC,UAAA,MAAM;gCACR,IAAM,KAAK,GAAQ,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gCACxD,8CAA8C;gCAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC/D,CAAC,CAAC,EAAA;;wBAVN,aAAa,GAAG,SAUV,CAAC;;;6BAGP,CAAA,aAAa,KAAK,SAAS,CAAA,EAA3B,wBAA2B;wBAC3B,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAU,SAAS,UAAO;gCACnD,UAAG,cAAc,0BAAgB,cAAc,gBAAM,aAAa,mBAAS,cAAc,uBAAa,cAAc,UAAO;gCAC3H,UAAG,eAAe,gBAAM,eAAe,UAAO;gCAC9C,gBAAS,eAAe,iBAAO,aAAa,CAAE,CAAC,EAAA;;wBAHnD,SAGmD,CAAC;wBAEpD,QAAQ,CAAC,SAAS,CACd,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,QAAQ,CAAC,mBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,EACnE,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,CAAC,CAC3E,CAAC;;4BAEmB,qBAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAA7D,YAAY,GAAG,SAA8C;wBAEnE,iEAAiE;wBACjE,IAAI,CAAC,YAAY;4BACb,MAAM,IAAI,0BAA0B,EAAE,CAAC;wBAE3C,QAAQ,CAAC,SAAS,CACd,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,QAAQ,CAAC,mBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,EACvD,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAC3D,CAAC;;;;;;KAET;IAED;;OAEG;IACG,yCAAM,GAAZ,UAAa,OAAgB;;;;;;;wBACrB,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;wBAEtC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;wBACpC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,sCAAsC;4BACzD,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,KAAU;gCACnF,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC,KAAK,CAAC,UAAC,EAAY;wCAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oCAAM,OAAA,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK;gCAApB,CAAoB,CAAC,CAAC;4BAC7F,CAAC,CAAC,CAAC;wBAEP,mDAAmD;wBACnD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;4BAC9C,sBAAO;yBACV;wBAGK,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;wBACzE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACzD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAEzD,+CAA+C;wBAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;4BAC5C,sBAAO;yBACV;6BAEG,MAAM,EAAN,wBAAM;wBACA,WAAS,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC1D,cAAc,GAAG,QAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAoB,CAAC,YAAY,CAAC,CAAC;wBAC5E,eAAe,GAAG,QAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,YAAY,CAAC,CAAC;wBAE9E,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAErD,QAAQ,GAA6B,SAAS,CAAC;6BAC/C,QAAQ,EAAR,wBAAQ;wBACI,qBAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;;wBAAlE,QAAQ,GAAG,CAAC,SAAsD,CAAC,CAAC,CAAC,CAAC,CAAC;;;wBAGvE,QAAQ,GAA6B,SAAS,CAAC;6BAC/C,QAAQ,EAAR,wBAAQ;wBACI,qBAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;;wBAAlE,QAAQ,GAAG,CAAC,SAAsD,CAAC,CAAC,CAAC,CAAC,CAAC;;;6BAGvE,CAAA,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAA,EAAhD,wBAAgD;wBAC1C,UAAU,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAC3C,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;wBAEhD,UAAU,SAAQ,CAAC;wBACvB,IAAI,UAAU,EAAE;4BACZ,UAAU,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;yBAC/C;6BAAM;4BACH,UAAU,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;yBAC/C;wBAGK,cAAc,GAChB,eAAQ,cAAc,iBAAO,QAAQ,CAAC,IAAI,UAAO;4BAC7C,UAAG,cAAc,gBAAM,QAAQ,CAAC,KAAK,MAAG;4BAC5C,eAAQ,cAAc,gBAAM,UAAU,MAAG,CAAC;wBAExC,eAAe,GACjB,eAAQ,eAAe,gBAAM,QAAQ,CAAC,IAAI,UAAO;4BAC7C,UAAG,eAAe,iBAAO,QAAQ,CAAC,KAAK,MAAG;4BAC9C,eAAQ,eAAe,gBAAM,UAAU,MAAG,CAAC;6BAG3C,UAAU,EAAV,wBAAU;wBACV,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAU,SAAS,MAAG;gCAC/C,cAAO,cAAc,aAAU;gCAC3B,eAAQ,cAAc,gBAAM,QAAQ,CAAC,KAAK,UAAO;gCAC7C,UAAG,cAAc,iBAAO,QAAQ,CAAC,IAAI,MAAG;gCAC5C,eAAQ,cAAc,gBAAM,QAAQ,MAAG;gCACvC,cAAc;gCACd,eAAQ,cAAc,MAAG;gCAC7B,OAAO;gCACP,UAAG,eAAe,aAAU;gCACxB,eAAQ,eAAe,gBAAM,QAAQ,CAAC,KAAK,UAAO;gCAC9C,UAAG,eAAe,gBAAM,QAAQ,CAAC,IAAI,MAAG;gCAC5C,eAAQ,eAAe,gBAAM,QAAQ,MAAG;gCACxC,eAAe;gCACf,eAAQ,eAAe,MAAG;gCAC9B,KAAK,CAAC,EAAA;;wBAdV,SAcU,CAAC;;4BAEX,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAU,SAAS,MAAG;4BAC/C,cAAO,cAAc,aAAU;4BAC3B,eAAQ,cAAc,gBAAM,QAAQ,CAAC,IAAI,UAAO;4BAC5C,UAAG,cAAc,gBAAM,QAAQ,CAAC,KAAK,MAAG;4BAC5C,eAAQ,cAAc,gBAAM,QAAQ,MAAG;4BACvC,cAAc;4BACd,eAAQ,cAAc,MAAG;4BAC7B,OAAO;4BACP,UAAG,eAAe,aAAU;4BACxB,eAAQ,eAAe,gBAAM,QAAQ,CAAC,IAAI,UAAO;4BAC7C,UAAG,eAAe,iBAAO,QAAQ,CAAC,KAAK,MAAG;4BAC9C,eAAQ,eAAe,gBAAM,QAAQ,MAAG;4BACxC,eAAe;4BACf,eAAQ,eAAe,MAAG;4BAC9B,KAAK,CAAC,EAAA;;wBAdV,SAcU,CAAC;;;4BAIE,qBAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAA7D,YAAY,GAAG,SAA8C;wBAEnE,iEAAiE;wBACjE,IAAI,CAAC,YAAY;4BACb,MAAM,IAAI,0BAA0B,EAAE,CAAC;;;;;;KAElD;IAED;;MAEE;IACI,yCAAM,GAAZ,UAAa,QAA2B;;;;;;;;wBACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;4BACxB,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAEpB,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAEhC,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAClD,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAoB,CAAC,YAAY,CAAC,CAAC;wBACpE,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAqB,CAAC,YAAY,CAAC,CAAC;wBAExE,WAAW,GAAoB,EAAE,CAAC;;4BACtC,KAAsB,aAAA,SAAA,QAAQ,CAAA,0FAAE;gCAArB,OAAO;gCACR,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gCAEzD,IAAI,QAAQ,EAAE;oCACV,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC9B;6BACJ;;;;;;;;;wBAEgB,qBAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAA;;wBAA9D,UAAU,GAAG,SAAiD;;;;wBAE7C,eAAA,SAAA,UAAU,CAAA;;;;wBAApB,MAAM;wBACP,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;wBAEhD,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAU,SAAS,MAAG;gCAC/C,cAAO,cAAc,aAAU;gCAC3B,eAAQ,cAAc,gBAAM,MAAM,CAAC,IAAI,mBAAS,cAAc,gBAAM,QAAQ,MAAG;gCAC/E,eAAQ,cAAc,MAAG;gCAC7B,OAAO;gCACP,UAAG,eAAe,aAAU;gCACxB,eAAQ,eAAe,gBAAM,MAAM,CAAC,KAAK,mBAAS,eAAe,gBAAM,QAAQ,MAAG;gCAClF,eAAQ,eAAe,MAAG;gCAC9B,KAAK,CAAC,EAAA;;wBARV,SAQU,CAAC;;;;;;;;;;;;;;;;;;;;KAElB;IAED;;OAEG;IACO,kDAAe,GAAzB,UAA0B,QAAwB,EAAE,GAAoC;QACpF,IAAM,MAAM,GAAG;YACX,IAAI,EAAE,UAAG,QAAQ,CAAC,UAAU,cAAI,QAAQ,CAAC,mBAAoB,CAAC,YAAY,CAAE;YAC5E,KAAK,EAAE,UAAG,QAAQ,CAAC,UAAU,cAAI,QAAQ,CAAC,oBAAqB,CAAC,YAAY,CAAE;SACjF,CAAC;QAEF,IAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAEnE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACvC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY;aACd,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;aAC1C,UAAU,CAAC,GAAG,CAAC;aACf,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;aAC7B,UAAU,EAAE;aACZ,IAAI,CAAC,UAAA,OAAO;;YACT,IAAM,IAAI,GAAmB,EAAE,CAAC;;gBAEhC,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE;oBAAzB,IAAM,MAAM,oBAAA;oBACb,IAAM,KAAK,GAAQ,EAAE,CAAC;;wBACtB,KAAkB,IAAA,oBAAA,SAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAA,gBAAA,4BAAE;4BAAlC,IAAM,GAAG,WAAA;4BACV,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BAE/C,8CAA8C;4BAC9C,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;yBACpE;;;;;;;;;oBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACpB;;;;;;;;;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACX,CAAC;IAEa,qDAAkB,GAAhC,UAAiC,OAAgB,EAAE,MAAW;;;;;;;wBACpD,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC1D,UAAU,GAAU,EAAE,CAAC;wBACvB,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC9E,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAEhD,IAAI,SAAS,IAAI,IAAI,EAAE;gCACnB,OAAO,UAAG,UAAU,aAAU,CAAC;6BAClC;4BAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACjI,OAAO,UAAG,UAAU,gBAAM,aAAa,CAAE,CAAC;wBAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAEX,UAAU,GAAG,OAAO,CAAC;wBACZ,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CACvC,6BAAsB,MAAM,CAAC,UAAU,CAAC,mBAAS,SAAS,oBAAU,cAAc,CAAE,EACpF,UAAU,EACV,IAAI,CACP,EAAA;;wBAJK,MAAM,GAAG,SAId;wBAED,sBAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAC;;;;KACxD;IAED;;;OAGG;IACO,+CAAY,GAAtB,UAAuB,SAAiB;QAAxC,iBAMC;QALG,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;aACtB,GAAG,CAAC,UAAA,CAAC;YACF,sMAAsM;YACtM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACL,+BAAC;AAAD,CAzSA,AAySC,IAAA","file":"NestedSetSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {NestedSetMultipleRootError} from \"../../error/NestedSetMultipleRootError\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\n\nclass NestedSetIds {\n left: number;\n right: number;\n}\n\n/**\n * Executes subject operations for nested set tree entities.\n */\nexport class NestedSetSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentNsRight: number|undefined = undefined;\n if (parentId) {\n parentNsRight = await this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.nestedSetRightColumn!.propertyPath, \"right\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(result => {\n const value: any = result ? result[\"right\"] : undefined;\n // CockroachDB returns numeric types as string\n return typeof value === \"string\" ? parseInt(value) : value;\n });\n }\n\n if (parentNsRight !== undefined) {\n await this.queryRunner.query(`UPDATE ${tableName} SET ` +\n `${leftColumnName} = CASE WHEN ${leftColumnName} > ${parentNsRight} THEN ${leftColumnName} + 2 ELSE ${leftColumnName} END,` +\n `${rightColumnName} = ${rightColumnName} + 2 ` +\n `WHERE ${rightColumnName} >= ${parentNsRight}`);\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(parentNsRight),\n subject.metadata.nestedSetRightColumn!.createValueMap(parentNsRight + 1),\n );\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(1),\n subject.metadata.nestedSetRightColumn!.createValueMap(2),\n );\n }\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && parent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(parent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n // Exit if the parent or the entity where never set\n if (entity === undefined || parent === undefined) {\n return;\n }\n\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, parentId)) {\n return;\n }\n\n if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n const entityId = subject.metadata.getEntityIdMap(entity);\n\n let entityNs: NestedSetIds | undefined = undefined;\n if (entityId) {\n entityNs = (await this.getNestedSetIds(subject.metadata, entityId))[0];\n }\n\n let parentNs: NestedSetIds | undefined = undefined;\n if (parentId) {\n parentNs = (await this.getNestedSetIds(subject.metadata, parentId))[0];\n }\n\n if (entityNs !== undefined && parentNs !== undefined) {\n const isMovingUp = parentNs.left > entityNs.left;\n const treeSize = entityNs.right - entityNs.left + 1;\n\n let entitySize: number;\n if (isMovingUp) {\n entitySize = parentNs.left - entityNs.right;\n } else {\n entitySize = parentNs.right - entityNs.left;\n }\n\n // Moved entity logic\n const updateLeftSide =\n `WHEN ${leftColumnName} >= ${entityNs.left} AND ` +\n `${leftColumnName} < ${entityNs.right} ` +\n `THEN ${leftColumnName} + ${entitySize} `;\n\n const updateRightSide =\n `WHEN ${rightColumnName} > ${entityNs.left} AND ` +\n `${rightColumnName} <= ${entityNs.right} ` +\n `THEN ${rightColumnName} + ${entitySize} `;\n\n // Update the surrounding entities\n if (isMovingUp) {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entityNs.right} AND ` +\n `${leftColumnName} <= ${parentNs.left} ` +\n `THEN ${leftColumnName} - ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entityNs.right} AND ` +\n `${rightColumnName} < ${parentNs.left} ` +\n `THEN ${rightColumnName} - ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n } else {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} < ${entityNs.left} AND ` +\n `${leftColumnName} > ${parentNs.right} ` +\n `THEN ${leftColumnName} + ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} < ${entityNs.left} AND ` +\n `${rightColumnName} >= ${parentNs.right} ` +\n `THEN ${rightColumnName} + ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const metadata = subjects[0].metadata;\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(metadata.tablePath);\n const leftColumnName = escape(metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(metadata.nestedSetRightColumn!.databaseName);\n\n let entitiesIds: ObjectLiteral[] = [];\n for (const subject of subjects) {\n const entityId = metadata.getEntityIdMap(subject.entity);\n\n if (entityId) {\n entitiesIds.push(entityId);\n }\n }\n\n let entitiesNs = await this.getNestedSetIds(metadata, entitiesIds);\n\n for (const entity of entitiesNs) {\n const treeSize = entity.right - entity.left + 1;\n\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entity.left} THEN ${leftColumnName} - ${treeSize} ` +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entity.right} THEN ${rightColumnName} - ${treeSize} ` +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n\n /**\n * Get the nested set ids for a given entity\n */\n protected getNestedSetIds(metadata: EntityMetadata, ids: ObjectLiteral | ObjectLiteral[]): Promise<NestedSetIds[]> {\n const select = {\n left: `${metadata.targetName}.${metadata.nestedSetLeftColumn!.propertyPath}`,\n right: `${metadata.targetName}.${metadata.nestedSetRightColumn!.propertyPath}`\n };\n\n const queryBuilder = this.queryRunner.manager.createQueryBuilder();\n\n Object.entries(select).forEach(([key, value]) => {\n queryBuilder.addSelect(value, key);\n });\n\n return queryBuilder\n .from(metadata.target, metadata.targetName)\n .whereInIds(ids)\n .orderBy(select.right, \"DESC\")\n .getRawMany()\n .then(results => {\n const data: NestedSetIds[] = [];\n\n for (const result of results) {\n const entry: any = {};\n for (const key of Object.keys(select)) {\n const value = result ? result[key] : undefined;\n\n // CockroachDB returns numeric types as string\n entry[key] = typeof value === \"string\" ? parseInt(value) : value;\n }\n data.push(entry);\n }\n\n return data;\n });\n }\n\n private async isUniqueRootEntity(subject: Subject, parent: any): Promise<boolean> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const parameters: any[] = [];\n const whereCondition = subject.metadata.treeParentRelation!.joinColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parameter = column.getEntityValue(parent);\n\n if (parameter == null) {\n return `${columnName} IS NULL`;\n }\n\n parameters.push(parameter);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.databaseName, parameters.length - 1);\n return `${columnName} = ${parameterName}`;\n }).join(\" AND \");\n\n const countAlias = \"count\";\n const result = await this.queryRunner.query(\n `SELECT COUNT(1) AS ${escape(countAlias)} FROM ${tableName} WHERE ${whereCondition}`,\n parameters,\n true\n );\n\n return parseInt(result.records[0][countAlias]) === 0;\n }\n\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n protected getTableName(tablePath: string): string {\n return tablePath.split(\".\")\n .map(i => {\n // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string\n return i === \"\" ? i : this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n }\n}\n"],"sourceRoot":"../.."}
|
|
@@ -26,7 +26,7 @@ var PlatformTools = /** @class */ (function () {
|
|
|
26
26
|
*/
|
|
27
27
|
PlatformTools.load = function (name) {
|
|
28
28
|
if (this.type === "browser")
|
|
29
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: require(\""
|
|
29
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: require(\"".concat(name, "\")."));
|
|
30
30
|
return "";
|
|
31
31
|
};
|
|
32
32
|
/**
|
|
@@ -34,7 +34,7 @@ var PlatformTools = /** @class */ (function () {
|
|
|
34
34
|
*/
|
|
35
35
|
PlatformTools.pathNormalize = function (pathStr) {
|
|
36
36
|
if (this.type === "browser")
|
|
37
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.normalize(\""
|
|
37
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.normalize(\"".concat(pathStr, "\")."));
|
|
38
38
|
return "";
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
@@ -42,7 +42,7 @@ var PlatformTools = /** @class */ (function () {
|
|
|
42
42
|
*/
|
|
43
43
|
PlatformTools.pathExtname = function (pathStr) {
|
|
44
44
|
if (this.type === "browser")
|
|
45
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.extname(\""
|
|
45
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.extname(\"".concat(pathStr, "\")."));
|
|
46
46
|
return "";
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
@@ -50,7 +50,7 @@ var PlatformTools = /** @class */ (function () {
|
|
|
50
50
|
*/
|
|
51
51
|
PlatformTools.pathResolve = function (pathStr) {
|
|
52
52
|
if (this.type === "browser")
|
|
53
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.resolve(\""
|
|
53
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: path.resolve(\"".concat(pathStr, "\")."));
|
|
54
54
|
return "";
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
@@ -58,12 +58,12 @@ var PlatformTools = /** @class */ (function () {
|
|
|
58
58
|
*/
|
|
59
59
|
PlatformTools.fileExist = function (pathStr) {
|
|
60
60
|
if (this.type === "browser")
|
|
61
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.existsSync(\""
|
|
61
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.existsSync(\"".concat(pathStr, "\")."));
|
|
62
62
|
return false;
|
|
63
63
|
};
|
|
64
64
|
PlatformTools.dotenv = function (pathStr) {
|
|
65
65
|
if (this.type === "browser")
|
|
66
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: dotenv.config({ path: \""
|
|
66
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: dotenv.config({ path: \"".concat(pathStr, "\" })."));
|
|
67
67
|
};
|
|
68
68
|
/**
|
|
69
69
|
* Gets environment variable.
|
|
@@ -75,16 +75,16 @@ var PlatformTools = /** @class */ (function () {
|
|
|
75
75
|
};
|
|
76
76
|
PlatformTools.readFileSync = function (filename) {
|
|
77
77
|
if (this.type === "browser")
|
|
78
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.readFileSync(\""
|
|
78
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.readFileSync(\"".concat(filename, "\")."));
|
|
79
79
|
return null;
|
|
80
80
|
};
|
|
81
81
|
PlatformTools.appendFileSync = function (filename, data) {
|
|
82
82
|
if (this.type === "browser")
|
|
83
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.appendFileSync(\""
|
|
83
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.appendFileSync(\"".concat(filename, "\")."));
|
|
84
84
|
};
|
|
85
85
|
PlatformTools.writeFile = function (path, data) {
|
|
86
86
|
if (this.type === "browser")
|
|
87
|
-
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.writeFile(\""
|
|
87
|
+
throw new Error("This option/function is not supported in the browser environment. Failed operation: fs.writeFile(\"".concat(path, "\")."));
|
|
88
88
|
return Promise.reject(null);
|
|
89
89
|
};
|
|
90
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/platform/BrowserPlatformTools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH;IAAA;IAyIA,CAAC;IAlIG;;OAEG;IACI,+BAAiB,GAAxB;QACI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,OAAO,MAAM,CAAA;SAChB;aAAM;YACH,uCAAuC;YACvC,OAAO,MAAM,CAAA;SAChB;IACL,CAAC;IAED;;;OAGG;IACI,kBAAI,GAAX,UAAY,IAAY;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"sources":["../browser/src/platform/BrowserPlatformTools.ts"],"names":[],"mappings":"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","file":"BrowserPlatformTools.js","sourcesContent":["/**\n * Browser's implementation of the platform-specific tools.\n *\n * This file gonna replace PlatformTools for browser environment.\n * For node.js environment this class is not getting packaged.\n * Don't use methods of this class in the code, use PlatformTools methods instead.\n */\nexport class PlatformTools {\n\n /**\n * Type of the currently running platform.\n */\n static type: \"browser\"|\"node\" = \"browser\";\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n if (typeof window !== \"undefined\") {\n return window\n } else {\n // NativeScript uses global, not window\n return global\n }\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: require(\"${name}\").`);\n\n return \"\";\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: path.normalize(\"${pathStr}\").`);\n\n return \"\";\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string): string {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: path.extname(\"${pathStr}\").`);\n\n return \"\";\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: path.resolve(\"${pathStr}\").`);\n\n return \"\";\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: fs.existsSync(\"${pathStr}\").`);\n\n return false;\n }\n\n static dotenv(pathStr: string): void {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: dotenv.config({ path: \"${pathStr}\" }).`);\n }\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n // if (this.type === \"browser\")\n // throw new Error(`This option/function is not supported in the browser environment. Failed operation: process.env[\"${name}\"].`);\n return undefined;\n }\n\n static readFileSync(filename: string): any {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: fs.readFileSync(\"${filename}\").`);\n return null;\n }\n\n static appendFileSync(filename: string, data: any) {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: fs.appendFileSync(\"${filename}\").`);\n }\n\n static writeFile(path: string, data: any): Promise<void> {\n if (this.type === \"browser\")\n throw new Error(`This option/function is not supported in the browser environment. Failed operation: fs.writeFile(\"${path}\").`);\n return Promise.reject(null);\n }\n\n /**\n * Highlights sql string to be print in the console.\n */\n static highlightSql(sql: string) {\n return sql;\n }\n\n /**\n * Highlights json string to be print in the console.\n */\n static highlightJson(json: string) {\n return json;\n }\n\n /**\n * Logging functions needed by AdvancedConsoleLogger (but here without chalk)\n */\n static logInfo(prefix: string, info: any) {\n console.info(prefix + \" \", info);\n }\n\n static logError(prefix: string, error: any) {\n console.error(prefix + \" \", error);\n }\n\n static logWarn(prefix: string, warning: any) {\n console.warn(prefix + \" \", warning);\n }\n\n static log(message: string) {\n console.log(message);\n }\n\n static warn(message: string) {\n return message;\n }\n}\n\n/**\n * These classes are needed for stream operations or\n * in the mongodb driver. Both aren't supported in the browser.\n */\nexport class EventEmitter {}\n\nexport class Readable {}\n\nexport class Writable {}\n\nexport interface ReadStream {}\n\n/**\n * This loads a polyfill to enable Buffers in the browser.\n */\ninterface Window {\n Buffer: any;\n}\n\ndeclare var window: Window;\nif (typeof window !== \"undefined\") {\n window.Buffer = require(\"buffer/\").Buffer;\n}\n// NativeScript uses global, not window\nif (typeof global !== \"undefined\") {\n global.Buffer = require(\"buffer/\").Buffer;\n}\n"],"sourceRoot":".."}
|
|
@@ -106,7 +106,7 @@ var PlatformTools = /** @class */ (function () {
|
|
|
106
106
|
// and is an Invalid Package. To make it explicit that this is NOT the intended use case for
|
|
107
107
|
// PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw
|
|
108
108
|
// an error.
|
|
109
|
-
throw new TypeError("Invalid Package for PlatformTools.load: "
|
|
109
|
+
throw new TypeError("Invalid Package for PlatformTools.load: ".concat(name));
|
|
110
110
|
};
|
|
111
111
|
/**
|
|
112
112
|
* Normalizes given path. Does "path.normalize".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/platform/PlatformTools.ts"],"names":[],"mappings":"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","file":"PlatformTools.js","sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport dotenv from \"dotenv\";\nimport chalk from \"chalk\";\nimport {highlight, Theme} from \"cli-highlight\";\n\nexport {ReadStream} from \"fs\";\nexport {EventEmitter} from \"events\";\nexport {Readable, Writable} from \"stream\";\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformTools {\n\n /**\n * Type of the currently running platform.\n */\n static type: \"browser\"|\"node\" = \"node\";\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n\n // switch case to explicit require statements for webpack compatibility.\n\n switch (name) {\n\n /**\n * mongodb\n */\n case \"mongodb\":\n return require(\"mongodb\");\n\n /**\n * hana\n */\n case \"@sap/hana-client\":\n return require(\"@sap/hana-client\");\n\n case \"hdb-pool\":\n return require(\"hdb-pool\");\n\n /**\n * mysql\n */\n case \"mysql\":\n return require(\"mysql\");\n\n case \"mysql2\":\n return require(\"mysql2\");\n\n /**\n * oracle\n */\n case \"oracledb\":\n return require(\"oracledb\");\n\n /**\n * postgres\n */\n case \"pg\":\n return require(\"pg\");\n\n case \"pg-native\":\n return require(\"pg-native\");\n\n case \"pg-query-stream\":\n return require(\"pg-query-stream\");\n\n case \"typeorm-aurora-data-api-driver\":\n return require(\"typeorm-aurora-data-api-driver\");\n\n /**\n * redis\n */\n case \"redis\":\n return require(\"redis\");\n\n case \"ioredis\":\n return require(\"ioredis\");\n\n /**\n * better-sqlite3\n */\n case \"better-sqlite3\":\n return require(\"better-sqlite3\");\n\n /**\n * sqlite\n */\n case \"sqlite3\":\n return require(\"sqlite3\");\n\n /**\n * sql.js\n */\n case \"sql.js\":\n return require(\"sql.js\");\n\n /**\n * sqlserver\n */\n case \"mssql\":\n return require(\"mssql\");\n\n /**\n * react-native-sqlite\n */\n case \"react-native-sqlite-storage\":\n return require(\"react-native-sqlite-storage\");\n }\n\n } catch (err) {\n return require(path.resolve(process.cwd() + \"/node_modules/\" + name));\n }\n\n // If nothing above matched and we get here, the package was not listed within PlatformTools\n // and is an Invalid Package. To make it explicit that this is NOT the intended use case for\n // PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw\n // an error.\n throw new TypeError(`Invalid Package for PlatformTools.load: ${name}`);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string): string {\n return path.extname(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n return path.resolve(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static appendFileSync(filename: string, data: any): void {\n fs.appendFileSync(filename, data);\n }\n\n static async writeFile(path: string, data: any): Promise<void> {\n return new Promise<void>((ok, fail) => {\n fs.writeFile(path, data, (err) => {\n if (err) fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads a dotenv file into the environment variables.\n *\n * @param path The file to load as a dotenv configuration\n */\n static dotenv(pathStr: string): void {\n dotenv.config({ path: pathStr });\n }\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n /**\n * Highlights sql string to be print in the console.\n */\n static highlightSql(sql: string) {\n const theme: Theme = {\n \"keyword\": chalk.blueBright,\n \"literal\": chalk.blueBright,\n \"string\": chalk.white,\n \"type\": chalk.magentaBright,\n \"built_in\": chalk.magentaBright,\n \"comment\": chalk.gray,\n };\n return highlight(sql, { theme: theme, language: \"sql\" });\n }\n\n /**\n * Highlights json string to be print in the console.\n */\n static highlightJson(json: string) {\n return highlight(json, { language: \"json\" });\n }\n\n /**\n * Logging functions needed by AdvancedConsoleLogger\n */\n static logInfo(prefix: string, info: any) {\n console.log(chalk.gray.underline(prefix), info);\n }\n\n static logError(prefix: string, error: any) {\n console.log(chalk.underline.red(prefix), error);\n }\n\n static logWarn(prefix: string, warning: any) {\n console.log(chalk.underline.yellow(prefix), warning);\n }\n\n static log(message: string) {\n console.log(chalk.underline(message));\n }\n\n static warn(message: string) {\n return chalk.yellow(message);\n }\n\n static logCmdErr(prefix: string, err?: any) {\n console.log(chalk.black.bgRed(prefix));\n if (err) console.error(err);\n }\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/platform/PlatformTools.ts"],"names":[],"mappings":"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","file":"PlatformTools.js","sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport dotenv from \"dotenv\";\nimport chalk from \"chalk\";\nimport {highlight, Theme} from \"cli-highlight\";\n\nexport {ReadStream} from \"fs\";\nexport {EventEmitter} from \"events\";\nexport {Readable, Writable} from \"stream\";\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformTools {\n\n /**\n * Type of the currently running platform.\n */\n static type: \"browser\"|\"node\" = \"node\";\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n\n // switch case to explicit require statements for webpack compatibility.\n\n switch (name) {\n\n /**\n * mongodb\n */\n case \"mongodb\":\n return require(\"mongodb\");\n\n /**\n * hana\n */\n case \"@sap/hana-client\":\n return require(\"@sap/hana-client\");\n\n case \"hdb-pool\":\n return require(\"hdb-pool\");\n\n /**\n * mysql\n */\n case \"mysql\":\n return require(\"mysql\");\n\n case \"mysql2\":\n return require(\"mysql2\");\n\n /**\n * oracle\n */\n case \"oracledb\":\n return require(\"oracledb\");\n\n /**\n * postgres\n */\n case \"pg\":\n return require(\"pg\");\n\n case \"pg-native\":\n return require(\"pg-native\");\n\n case \"pg-query-stream\":\n return require(\"pg-query-stream\");\n\n case \"typeorm-aurora-data-api-driver\":\n return require(\"typeorm-aurora-data-api-driver\");\n\n /**\n * redis\n */\n case \"redis\":\n return require(\"redis\");\n\n case \"ioredis\":\n return require(\"ioredis\");\n\n /**\n * better-sqlite3\n */\n case \"better-sqlite3\":\n return require(\"better-sqlite3\");\n\n /**\n * sqlite\n */\n case \"sqlite3\":\n return require(\"sqlite3\");\n\n /**\n * sql.js\n */\n case \"sql.js\":\n return require(\"sql.js\");\n\n /**\n * sqlserver\n */\n case \"mssql\":\n return require(\"mssql\");\n\n /**\n * react-native-sqlite\n */\n case \"react-native-sqlite-storage\":\n return require(\"react-native-sqlite-storage\");\n }\n\n } catch (err) {\n return require(path.resolve(process.cwd() + \"/node_modules/\" + name));\n }\n\n // If nothing above matched and we get here, the package was not listed within PlatformTools\n // and is an Invalid Package. To make it explicit that this is NOT the intended use case for\n // PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw\n // an error.\n throw new TypeError(`Invalid Package for PlatformTools.load: ${name}`);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string): string {\n return path.extname(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n return path.resolve(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static appendFileSync(filename: string, data: any): void {\n fs.appendFileSync(filename, data);\n }\n\n static async writeFile(path: string, data: any): Promise<void> {\n return new Promise<void>((ok, fail) => {\n fs.writeFile(path, data, (err) => {\n if (err) fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads a dotenv file into the environment variables.\n *\n * @param path The file to load as a dotenv configuration\n */\n static dotenv(pathStr: string): void {\n dotenv.config({ path: pathStr });\n }\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n /**\n * Highlights sql string to be print in the console.\n */\n static highlightSql(sql: string) {\n const theme: Theme = {\n \"keyword\": chalk.blueBright,\n \"literal\": chalk.blueBright,\n \"string\": chalk.white,\n \"type\": chalk.magentaBright,\n \"built_in\": chalk.magentaBright,\n \"comment\": chalk.gray,\n };\n return highlight(sql, { theme: theme, language: \"sql\" });\n }\n\n /**\n * Highlights json string to be print in the console.\n */\n static highlightJson(json: string) {\n return highlight(json, { language: \"json\" });\n }\n\n /**\n * Logging functions needed by AdvancedConsoleLogger\n */\n static logInfo(prefix: string, info: any) {\n console.log(chalk.gray.underline(prefix), info);\n }\n\n static logError(prefix: string, error: any) {\n console.log(chalk.underline.red(prefix), error);\n }\n\n static logWarn(prefix: string, warning: any) {\n console.log(chalk.underline.yellow(prefix), warning);\n }\n\n static log(message: string) {\n console.log(chalk.underline(message));\n }\n\n static warn(message: string) {\n return chalk.yellow(message);\n }\n\n static logCmdErr(prefix: string, err?: any) {\n console.log(chalk.black.bgRed(prefix));\n if (err) console.error(err);\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -23,7 +23,7 @@ var Alias = /** @class */ (function () {
|
|
|
23
23
|
Object.defineProperty(Alias.prototype, "metadata", {
|
|
24
24
|
get: function () {
|
|
25
25
|
if (!this._metadata)
|
|
26
|
-
throw new TypeORMError("Cannot get entity metadata for the given alias \""
|
|
26
|
+
throw new TypeORMError("Cannot get entity metadata for the given alias \"".concat(this.name, "\""));
|
|
27
27
|
return this._metadata;
|
|
28
28
|
},
|
|
29
29
|
set: function (metadata) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/Alias.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;GACG;AACH;IAiBI,eAAY,KAAa;QACrB,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAID,sBAAI,yBAAM;aAAV;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChC,CAAC;;;OAAA;IAED,sBAAI,8BAAW;aAAf;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,2BAAQ;aAIZ;YACI,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,MAAM,IAAI,YAAY,CAAC,
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/Alias.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;GACG;AACH;IAiBI,eAAY,KAAa;QACrB,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAID,sBAAI,yBAAM;aAAV;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChC,CAAC;;;OAAA;IAED,sBAAI,8BAAW;aAAf;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,2BAAQ;aAIZ;YACI,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,MAAM,IAAI,YAAY,CAAC,2DAAmD,IAAI,CAAC,IAAI,OAAG,CAAC,CAAC;YAE5F,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aATD,UAAa,QAAwB;YACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC9B,CAAC;;;OAAA;IASL,YAAC;AAAD,CA1CA,AA0CC,IAAA","file":"Alias.js","sourcesContent":["import {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {ObjectUtils} from \"../util/ObjectUtils\";\nimport { TypeORMError } from \"../error\";\n\n/**\n */\nexport class Alias {\n\n type: \"from\"|\"select\"|\"join\"|\"other\"; // todo: make something with \"other\"\n\n name: string;\n\n /**\n * Table on which this alias is applied.\n * Used only for aliases which select custom tables.\n */\n tablePath?: string;\n\n /**\n * If this alias is for sub query.\n */\n subQuery?: string;\n\n constructor(alias?: Alias) {\n ObjectUtils.assign(this, alias || {});\n }\n\n private _metadata?: EntityMetadata;\n\n get target(): Function|string {\n return this.metadata.target;\n }\n\n get hasMetadata(): boolean {\n return !!this._metadata;\n }\n\n set metadata(metadata: EntityMetadata) {\n this._metadata = metadata;\n }\n\n get metadata(): EntityMetadata {\n if (!this._metadata)\n throw new TypeORMError(`Cannot get entity metadata for the given alias \"${this.name}\"`);\n\n return this._metadata;\n }\n\n}\n"],"sourceRoot":".."}
|
|
@@ -193,12 +193,12 @@ var DeleteQueryBuilder = /** @class */ (function (_super) {
|
|
|
193
193
|
var whereExpression = this.createWhereExpression();
|
|
194
194
|
var returningExpression = this.createReturningExpression("delete");
|
|
195
195
|
if (returningExpression === "") {
|
|
196
|
-
return "DELETE FROM "
|
|
196
|
+
return "DELETE FROM ".concat(tableName).concat(whereExpression);
|
|
197
197
|
}
|
|
198
198
|
if (this.connection.driver instanceof SqlServerDriver) {
|
|
199
|
-
return "DELETE FROM "
|
|
199
|
+
return "DELETE FROM ".concat(tableName, " OUTPUT ").concat(returningExpression).concat(whereExpression);
|
|
200
200
|
}
|
|
201
|
-
return "DELETE FROM "
|
|
201
|
+
return "DELETE FROM ".concat(tableName).concat(whereExpression, " RETURNING ").concat(returningExpression);
|
|
202
202
|
};
|
|
203
203
|
return DeleteQueryBuilder;
|
|
204
204
|
}(QueryBuilder));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {WhereExpressionBuilder} from \"./WhereExpressionBuilder\";\nimport {Brackets} from \"./Brackets\";\nimport {DeleteResult} from \"./result/DeleteResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity> extends QueryBuilder<Entity> implements WhereExpressionBuilder {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connectionOrQueryBuilder: Connection|QueryBuilder<any>, queryRunner?: QueryRunner) {\n super(connectionOrQueryBuilder as any, queryRunner);\n this.expressionMap.aliasNamePrefixingEnabled = false;\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment();\n sql += this.createDeleteExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters();\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // call before deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"BeforeRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true);\n const deleteResult = DeleteResult.from(queryResult);\n\n // call after deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"AfterRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // close transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n return deleteResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T>(entityTarget: EntityTarget<T>, aliasName?: string): DeleteQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return (this as any) as DeleteQueryBuilder<T>;\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any|any[]): this {\n return this.where(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any|any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any|any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids));\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError();\n }\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const whereExpression = this.createWhereExpression();\n const returningExpression = this.createReturningExpression(\"delete\");\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`;\n }\n if (this.connection.driver instanceof SqlServerDriver) {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`;\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`;\n }\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {WhereExpressionBuilder} from \"./WhereExpressionBuilder\";\nimport {Brackets} from \"./Brackets\";\nimport {DeleteResult} from \"./result/DeleteResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity> extends QueryBuilder<Entity> implements WhereExpressionBuilder {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connectionOrQueryBuilder: Connection|QueryBuilder<any>, queryRunner?: QueryRunner) {\n super(connectionOrQueryBuilder as any, queryRunner);\n this.expressionMap.aliasNamePrefixingEnabled = false;\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment();\n sql += this.createDeleteExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters();\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // call before deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"BeforeRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true);\n const deleteResult = DeleteResult.from(queryResult);\n\n // call after deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"AfterRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // close transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n return deleteResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T>(entityTarget: EntityTarget<T>, aliasName?: string): DeleteQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return (this as any) as DeleteQueryBuilder<T>;\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any|any[]): this {\n return this.where(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any|any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any|any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids));\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError();\n }\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const whereExpression = this.createWhereExpression();\n const returningExpression = this.createReturningExpression(\"delete\");\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`;\n }\n if (this.connection.driver instanceof SqlServerDriver) {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`;\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`;\n }\n\n}\n"],"sourceRoot":".."}
|
|
@@ -266,12 +266,12 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
266
266
|
var columnsExpression = this.createColumnNamesExpression();
|
|
267
267
|
var query = "INSERT ";
|
|
268
268
|
if (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver) {
|
|
269
|
-
query += ""
|
|
269
|
+
query += "".concat(this.expressionMap.onIgnore ? " IGNORE " : "");
|
|
270
270
|
}
|
|
271
|
-
query += "INTO "
|
|
271
|
+
query += "INTO ".concat(tableName);
|
|
272
272
|
// add columns expression
|
|
273
273
|
if (columnsExpression) {
|
|
274
|
-
query += "("
|
|
274
|
+
query += "(".concat(columnsExpression, ")");
|
|
275
275
|
}
|
|
276
276
|
else {
|
|
277
277
|
if (!valuesExpression && (this.connection.driver instanceof MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver)) // special syntax for mysql DEFAULT VALUES insertion
|
|
@@ -279,15 +279,15 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
279
279
|
}
|
|
280
280
|
// add OUTPUT expression
|
|
281
281
|
if (returningExpression && this.connection.driver instanceof SqlServerDriver) {
|
|
282
|
-
query += " OUTPUT "
|
|
282
|
+
query += " OUTPUT ".concat(returningExpression);
|
|
283
283
|
}
|
|
284
284
|
// add VALUES expression
|
|
285
285
|
if (valuesExpression) {
|
|
286
286
|
if (this.connection.driver instanceof OracleDriver && this.getValueSets().length > 1) {
|
|
287
|
-
query += " "
|
|
287
|
+
query += " ".concat(valuesExpression);
|
|
288
288
|
}
|
|
289
289
|
else {
|
|
290
|
-
query += " VALUES "
|
|
290
|
+
query += " VALUES ".concat(valuesExpression);
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
else {
|
|
@@ -303,30 +303,30 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
303
303
|
query += " ON CONFLICT DO NOTHING ";
|
|
304
304
|
}
|
|
305
305
|
else if (this.expressionMap.onConflict) {
|
|
306
|
-
query += " ON CONFLICT "
|
|
306
|
+
query += " ON CONFLICT ".concat(this.expressionMap.onConflict, " ");
|
|
307
307
|
}
|
|
308
308
|
else if (this.expressionMap.onUpdate) {
|
|
309
309
|
var _a = this.expressionMap.onUpdate, overwrite = _a.overwrite, columns = _a.columns, conflict = _a.conflict, skipUpdateIfNoValuesChanged = _a.skipUpdateIfNoValuesChanged;
|
|
310
310
|
var conflictTarget = "ON CONFLICT";
|
|
311
311
|
if (Array.isArray(conflict)) {
|
|
312
|
-
conflictTarget += " ( "
|
|
312
|
+
conflictTarget += " ( ".concat(conflict.map(function (column) { return _this.escape(column); }).join(", "), " )");
|
|
313
313
|
}
|
|
314
314
|
else if (conflict) {
|
|
315
|
-
conflictTarget += " ON CONSTRAINT "
|
|
315
|
+
conflictTarget += " ON CONSTRAINT ".concat(this.escape(conflict));
|
|
316
316
|
}
|
|
317
317
|
if (Array.isArray(overwrite)) {
|
|
318
|
-
query += " "
|
|
319
|
-
query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map(function (column) { return _this.escape(column)
|
|
318
|
+
query += " ".concat(conflictTarget, " DO UPDATE SET ");
|
|
319
|
+
query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map(function (column) { return "".concat(_this.escape(column), " = EXCLUDED.").concat(_this.escape(column)); }).join(", ");
|
|
320
320
|
query += " ";
|
|
321
321
|
}
|
|
322
322
|
else if (columns) {
|
|
323
|
-
query += " "
|
|
324
|
-
query += columns.map(function (column) { return _this.escape(column)
|
|
323
|
+
query += " ".concat(conflictTarget, " DO UPDATE SET ");
|
|
324
|
+
query += columns.map(function (column) { return "".concat(_this.escape(column), " = :").concat(column); }).join(", ");
|
|
325
325
|
query += " ";
|
|
326
326
|
}
|
|
327
327
|
if (Array.isArray(overwrite) && skipUpdateIfNoValuesChanged && this.connection.driver instanceof PostgresDriver) {
|
|
328
328
|
query += " WHERE (";
|
|
329
|
-
query += overwrite.map(function (column) { return tableName
|
|
329
|
+
query += overwrite.map(function (column) { return "".concat(tableName, ".").concat(_this.escape(column), " IS DISTINCT FROM EXCLUDED.").concat(_this.escape(column)); }).join(" OR ");
|
|
330
330
|
query += ") ";
|
|
331
331
|
}
|
|
332
332
|
}
|
|
@@ -336,12 +336,12 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
336
336
|
var _b = this.expressionMap.onUpdate, overwrite = _b.overwrite, columns = _b.columns;
|
|
337
337
|
if (Array.isArray(overwrite)) {
|
|
338
338
|
query += " ON DUPLICATE KEY UPDATE ";
|
|
339
|
-
query += overwrite.map(function (column) { return _this.escape(column)
|
|
339
|
+
query += overwrite.map(function (column) { return "".concat(_this.escape(column), " = VALUES(").concat(_this.escape(column), ")"); }).join(", ");
|
|
340
340
|
query += " ";
|
|
341
341
|
}
|
|
342
342
|
else if (Array.isArray(columns)) {
|
|
343
343
|
query += " ON DUPLICATE KEY UPDATE ";
|
|
344
|
-
query += columns.map(function (column) { return _this.escape(column)
|
|
344
|
+
query += columns.map(function (column) { return "".concat(_this.escape(column), " = :").concat(column); }).join(", ");
|
|
345
345
|
query += " ";
|
|
346
346
|
}
|
|
347
347
|
}
|
|
@@ -357,7 +357,7 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
357
357
|
this.connection.driver instanceof OracleDriver ||
|
|
358
358
|
this.connection.driver instanceof CockroachDriver ||
|
|
359
359
|
this.connection.driver instanceof MysqlDriver)) {
|
|
360
|
-
query += " RETURNING "
|
|
360
|
+
query += " RETURNING ".concat(returningExpression);
|
|
361
361
|
}
|
|
362
362
|
// Inserting a specific value for an auto-increment primary key in mssql requires enabling IDENTITY_INSERT
|
|
363
363
|
// IDENTITY_INSERT can only be enabled for tables where there is an IDENTITY column and only if there is a value to be inserted (i.e. supplying DEFAULT is prohibited if IDENTITY_INSERT is enabled)
|
|
@@ -366,7 +366,7 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
366
366
|
&& this.expressionMap.mainAlias.metadata.columns
|
|
367
367
|
.filter(function (column) { return _this.expressionMap.insertColumns.length > 0 ? _this.expressionMap.insertColumns.indexOf(column.propertyPath) !== -1 : column.isInsert; })
|
|
368
368
|
.some(function (column) { return _this.isOverridingAutoIncrementBehavior(column); })) {
|
|
369
|
-
query = "SET IDENTITY_INSERT "
|
|
369
|
+
query = "SET IDENTITY_INSERT ".concat(tableName, " ON; ").concat(query, "; SET IDENTITY_INSERT ").concat(tableName, " OFF");
|
|
370
370
|
}
|
|
371
371
|
return query;
|
|
372
372
|
};
|
|
@@ -514,18 +514,18 @@ var InsertQueryBuilder = /** @class */ (function (_super) {
|
|
|
514
514
|
var useLegacy = _this.connection.driver.options.legacySpatialSupport;
|
|
515
515
|
var geomFromText = useLegacy ? "GeomFromText" : "ST_GeomFromText";
|
|
516
516
|
if (column.srid != null) {
|
|
517
|
-
expression_1 += geomFromText
|
|
517
|
+
expression_1 += "".concat(geomFromText, "(").concat(paramName, ", ").concat(column.srid, ")");
|
|
518
518
|
}
|
|
519
519
|
else {
|
|
520
|
-
expression_1 += geomFromText
|
|
520
|
+
expression_1 += "".concat(geomFromText, "(").concat(paramName, ")");
|
|
521
521
|
}
|
|
522
522
|
}
|
|
523
523
|
else if (_this.connection.driver instanceof PostgresDriver && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
|
|
524
524
|
if (column.srid != null) {
|
|
525
|
-
expression_1 += "ST_SetSRID(ST_GeomFromGeoJSON("
|
|
525
|
+
expression_1 += "ST_SetSRID(ST_GeomFromGeoJSON(".concat(paramName, "), ").concat(column.srid, ")::").concat(column.type);
|
|
526
526
|
}
|
|
527
527
|
else {
|
|
528
|
-
expression_1 += "ST_GeomFromGeoJSON("
|
|
528
|
+
expression_1 += "ST_GeomFromGeoJSON(".concat(paramName, ")::").concat(column.type);
|
|
529
529
|
}
|
|
530
530
|
}
|
|
531
531
|
else if (_this.connection.driver instanceof SqlServerDriver && _this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
|