typeorm 0.3.0-rc.8 → 0.3.1-dev.941b584
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/README.md +175 -119
- package/browser/cache/DbQueryResultCache.d.ts +6 -4
- package/browser/cache/DbQueryResultCache.js +180 -187
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCache.js +1 -1
- package/browser/cache/QueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCacheFactory.d.ts +3 -3
- package/browser/cache/QueryResultCacheFactory.js +19 -15
- package/browser/cache/QueryResultCacheFactory.js.map +1 -1
- package/browser/cache/QueryResultCacheOptions.js +1 -1
- package/browser/cache/QueryResultCacheOptions.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.d.ts +3 -3
- package/browser/cache/RedisQueryResultCache.js +104 -127
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/common/DeepPartial.d.ts +3 -3
- package/browser/common/DeepPartial.js +1 -1
- package/browser/common/DeepPartial.js.map +1 -1
- package/browser/common/EntityTarget.d.ts +9 -0
- package/browser/common/EntityTarget.js +3 -0
- package/browser/common/EntityTarget.js.map +1 -0
- package/browser/common/MixedList.d.ts +8 -0
- package/browser/common/MixedList.js +3 -0
- package/browser/common/MixedList.js.map +1 -0
- package/browser/common/NonNever.d.ts +6 -0
- package/browser/common/NonNever.js +3 -0
- package/browser/common/NonNever.js.map +1 -0
- package/browser/common/ObjectLiteral.js +1 -1
- package/browser/common/ObjectLiteral.js.map +1 -1
- package/browser/common/ObjectType.js +1 -1
- package/browser/common/ObjectType.js.map +1 -1
- package/browser/common/RelationType.d.ts +14 -0
- package/browser/common/RelationType.js +3 -0
- package/browser/common/RelationType.js.map +1 -0
- package/browser/connection/BaseConnectionOptions.d.ts +4 -144
- package/browser/connection/BaseConnectionOptions.js +1 -1
- package/browser/connection/BaseConnectionOptions.js.map +1 -1
- package/browser/connection/Connection.d.ts +4 -219
- package/browser/connection/Connection.js +5 -532
- package/browser/connection/Connection.js.map +1 -1
- package/browser/connection/ConnectionManager.d.ts +11 -5
- package/browser/connection/ConnectionManager.js +26 -26
- package/browser/connection/ConnectionManager.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +6 -6
- package/browser/connection/ConnectionMetadataBuilder.js +37 -31
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptions.d.ts +4 -14
- package/browser/connection/ConnectionOptions.js +1 -1
- package/browser/connection/ConnectionOptions.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +8 -8
- package/browser/connection/ConnectionOptionsReader.js +145 -169
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +68 -49
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +46 -42
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +14 -11
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/browser/container.d.ts +12 -0
- package/browser/container.js +19 -11
- package/browser/container.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.d.ts +179 -0
- package/browser/data-source/BaseDataSourceOptions.js +3 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -0
- package/browser/data-source/DataSource.d.ts +246 -0
- package/browser/data-source/DataSource.js +448 -0
- package/browser/data-source/DataSource.js.map +1 -0
- package/browser/data-source/DataSourceOptions.d.ts +21 -0
- package/browser/data-source/DataSourceOptions.js +3 -0
- package/browser/data-source/DataSourceOptions.js.map +1 -0
- package/browser/data-source/index.d.ts +2 -0
- package/browser/data-source/index.js +4 -0
- package/browser/data-source/index.js.map +1 -0
- package/browser/decorator/Check.d.ts +2 -2
- package/browser/decorator/Check.js +9 -6
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/EntityRepository.d.ts +3 -1
- package/browser/decorator/EntityRepository.js +3 -1
- package/browser/decorator/EntityRepository.js.map +1 -1
- package/browser/decorator/Exclusion.d.ts +2 -2
- package/browser/decorator/Exclusion.js +9 -6
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/Generated.d.ts +1 -1
- package/browser/decorator/Generated.js +3 -4
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.d.ts +10 -10
- package/browser/decorator/Index.js +28 -8
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.d.ts +7 -6
- package/browser/decorator/Unique.js +36 -7
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +13 -13
- package/browser/decorator/columns/Column.js +24 -12
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.d.ts +2 -2
- package/browser/decorator/columns/CreateDateColumn.js +2 -2
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.d.ts +6 -0
- package/browser/decorator/columns/DeleteDateColumn.js +17 -0
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -0
- package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -2
- package/browser/decorator/columns/ObjectIdColumn.js +2 -2
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +11 -3
- package/browser/decorator/columns/PrimaryColumn.js +9 -5
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +9 -8
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -2
- package/browser/decorator/columns/UpdateDateColumn.js +2 -2
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.d.ts +2 -2
- package/browser/decorator/columns/VersionColumn.js +2 -2
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.d.ts +2 -1
- package/browser/decorator/columns/ViewColumn.js +3 -3
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.d.ts +1 -1
- package/browser/decorator/entity/ChildEntity.js +3 -3
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.d.ts +3 -3
- package/browser/decorator/entity/Entity.js +7 -4
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.d.ts +2 -2
- package/browser/decorator/entity/TableInheritance.js +6 -2
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
- package/browser/decorator/entity-view/ViewEntity.js +10 -4
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
- package/browser/decorator/listeners/AfterInsert.js +2 -2
- package/browser/decorator/listeners/AfterInsert.js.map +1 -1
- package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
- package/browser/decorator/listeners/AfterLoad.js +2 -2
- package/browser/decorator/listeners/AfterLoad.js.map +1 -1
- package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
- package/browser/decorator/listeners/AfterRecover.js +16 -0
- package/browser/decorator/listeners/AfterRecover.js.map +1 -0
- package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
- package/browser/decorator/listeners/AfterRemove.js +2 -2
- package/browser/decorator/listeners/AfterRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
- package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
- package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
- package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
- package/browser/decorator/listeners/AfterUpdate.js +2 -2
- package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
- package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
- package/browser/decorator/listeners/BeforeInsert.js +2 -2
- package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
- package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
- package/browser/decorator/listeners/BeforeRecover.js +16 -0
- package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
- package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
- package/browser/decorator/listeners/BeforeRemove.js +2 -2
- package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
- package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
- package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
- package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
- package/browser/decorator/listeners/BeforeUpdate.js +2 -2
- package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
- package/browser/decorator/listeners/EventSubscriber.js +2 -2
- package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
- package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
- package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.js +1 -1
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +5 -1
- package/browser/decorator/options/ColumnOptions.js +1 -1
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.js +1 -1
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.d.ts +5 -0
- package/browser/decorator/options/IndexOptions.js +1 -1
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/decorator/options/JoinColumnOptions.js +1 -1
- package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.js +1 -1
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +12 -2
- package/browser/decorator/options/RelationOptions.js +1 -1
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/browser/decorator/options/TransactionOptions.js +1 -1
- package/browser/decorator/options/TransactionOptions.js.map +1 -1
- package/browser/decorator/options/UniqueOptions.d.ts +10 -0
- package/browser/decorator/options/UniqueOptions.js +3 -0
- package/browser/decorator/options/UniqueOptions.js.map +1 -0
- package/browser/decorator/options/ValueTransformer.js +1 -1
- package/browser/decorator/options/ValueTransformer.js.map +1 -1
- package/browser/decorator/options/ViewColumnOptions.d.ts +15 -0
- package/browser/decorator/options/ViewColumnOptions.js +3 -0
- package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
- package/browser/decorator/options/ViewEntityOptions.d.ts +7 -2
- package/browser/decorator/options/ViewEntityOptions.js +1 -1
- package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.d.ts +4 -4
- package/browser/decorator/relations/JoinColumn.js +6 -4
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.d.ts +4 -4
- package/browser/decorator/relations/JoinTable.js +13 -4
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.d.ts +4 -3
- package/browser/decorator/relations/ManyToMany.js +12 -8
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +10 -9
- package/browser/decorator/relations/ManyToOne.js +17 -13
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +6 -4
- package/browser/decorator/relations/OneToMany.js +13 -9
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.d.ts +4 -3
- package/browser/decorator/relations/OneToOne.js +12 -8
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationCount.d.ts +2 -2
- package/browser/decorator/relations/RelationCount.js +2 -2
- package/browser/decorator/relations/RelationCount.js.map +1 -1
- package/browser/decorator/relations/RelationId.d.ts +2 -2
- package/browser/decorator/relations/RelationId.js +2 -2
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +2 -1
- package/browser/decorator/tree/Tree.js +4 -3
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +2 -2
- package/browser/decorator/tree/TreeChildren.js +11 -6
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
- package/browser/decorator/tree/TreeLevelColumn.js +2 -2
- package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +4 -1
- package/browser/decorator/tree/TreeParent.js +13 -6
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.d.ts +39 -9
- package/browser/driver/Driver.js +1 -1
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.d.ts +2 -2
- package/browser/driver/DriverFactory.js +40 -13
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +39 -10
- package/browser/driver/DriverUtils.js +179 -55
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/Query.d.ts +1 -0
- package/browser/driver/Query.js +4 -5
- package/browser/driver/Query.js.map +1 -1
- package/browser/driver/SqlInMemory.js +3 -5
- package/browser/driver/SqlInMemory.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
- package/browser/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
- package/browser/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
- package/browser/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +322 -211
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
- package/{driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +27 -18
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1677 -0
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +3 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +99 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +149 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +124 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.js +3 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
- package/browser/driver/capacitor/CapacitorDriver.d.ts +27 -0
- package/browser/driver/capacitor/CapacitorDriver.js +79 -0
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js +94 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +49 -8
- package/browser/driver/cockroachdb/CockroachDriver.js +321 -263
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +22 -18
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +1576 -2026
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
- package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
- package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +5 -4
- package/browser/driver/cordova/CordovaDriver.js +33 -49
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.d.ts +27 -1
- package/browser/driver/cordova/CordovaQueryRunner.js +100 -53
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoConnectionOptions.d.ts +6 -2
- package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
- package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/browser/driver/expo/ExpoDriver.d.ts +4 -7
- package/browser/driver/expo/ExpoDriver.js +32 -53
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.d.ts +9 -1
- package/browser/driver/expo/ExpoQueryRunner.js +123 -94
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
- package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +36 -12
- package/browser/driver/mongodb/MongoDriver.js +145 -99
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +27 -8
- package/browser/driver/mongodb/MongoQueryRunner.js +330 -748
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +12 -11
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
- package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
- package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +48 -11
- package/browser/driver/mysql/MysqlDriver.js +440 -271
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +25 -15
- package/browser/driver/mysql/MysqlQueryRunner.js +1552 -1751
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
- package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -4
- package/browser/driver/nativescript/NativescriptDriver.js +36 -43
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js +54 -39
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.d.ts +11 -2
- package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +31 -7
- package/browser/driver/oracle/OracleDriver.js +328 -234
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +23 -9
- package/browser/driver/oracle/OracleQueryRunner.js +1346 -1670
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
- package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +81 -19
- package/browser/driver/postgres/PostgresDriver.js +618 -439
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +48 -26
- package/browser/driver/postgres/PostgresQueryRunner.js +2128 -2286
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
- package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -3
- package/browser/driver/react-native/ReactNativeDriver.js +31 -42
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js +62 -53
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
- package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -0
- package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/sap/SapConnectionOptions.d.ts +59 -0
- package/browser/driver/sap/SapConnectionOptions.js +3 -0
- package/browser/driver/sap/SapConnectionOptions.js.map +1 -0
- package/browser/driver/sap/SapDriver.d.ts +214 -0
- package/browser/driver/sap/SapDriver.js +641 -0
- package/browser/driver/sap/SapDriver.js.map +1 -0
- package/browser/driver/sap/SapQueryRunner.d.ts +342 -0
- package/browser/driver/sap/SapQueryRunner.js +1987 -0
- package/browser/driver/sap/SapQueryRunner.js.map +1 -0
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
- package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.d.ts +18 -4
- package/browser/driver/sqlite/SqliteDriver.js +104 -83
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +83 -68
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +254 -139
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +25 -5
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1022 -1441
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
- package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.d.ts +4 -3
- package/browser/driver/sqljs/SqljsDriver.js +153 -227
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
- package/browser/driver/sqljs/SqljsQueryRunner.js +84 -61
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js +4 -9
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +43 -9
- package/browser/driver/sqlserver/SqlServerDriver.js +355 -253
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +19 -28
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +1810 -2309
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
- package/browser/driver/types/ColumnTypes.d.ts +5 -5
- package/browser/driver/types/ColumnTypes.js +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/DataTypeDefaults.js +1 -1
- package/browser/driver/types/DataTypeDefaults.js.map +1 -1
- package/browser/driver/types/DatabaseType.d.ts +1 -1
- package/browser/driver/types/DatabaseType.js +1 -1
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/driver/types/IsolationLevel.js +1 -1
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/types/MappedColumnTypes.d.ts +12 -0
- package/browser/driver/types/MappedColumnTypes.js +1 -1
- package/browser/driver/types/MappedColumnTypes.js.map +1 -1
- package/browser/driver/types/MetadataTableType.d.ts +5 -0
- package/browser/driver/types/MetadataTableType.js +8 -0
- package/browser/driver/types/MetadataTableType.js.map +1 -0
- package/browser/driver/types/ReplicationMode.d.ts +1 -0
- package/browser/driver/types/ReplicationMode.js +3 -0
- package/browser/driver/types/ReplicationMode.js.map +1 -0
- package/browser/driver/types/UpsertType.d.ts +1 -0
- package/browser/driver/types/UpsertType.js +3 -0
- package/browser/driver/types/UpsertType.js.map +1 -0
- package/browser/entity-manager/EntityManager.d.ts +143 -286
- package/browser/entity-manager/EntityManager.js +531 -439
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
- package/browser/entity-manager/EntityManagerFactory.js +6 -12
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +101 -64
- package/browser/entity-manager/MongoEntityManager.js +499 -467
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.d.ts +3 -2
- package/browser/entity-manager/SqljsEntityManager.js +14 -36
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchema.d.ts +1 -0
- package/browser/entity-schema/EntitySchema.js +4 -5
- package/browser/entity-schema/EntitySchema.js.map +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +4 -0
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.js +14 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
- package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
- package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +22 -10
- package/browser/entity-schema/EntitySchemaOptions.js +2 -6
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
- package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js +228 -183
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
- package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.d.ts +2 -2
- package/browser/error/AlreadyHasActiveConnectionError.js +6 -13
- package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
- package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -13
- package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
- package/browser/error/CannotConnectAlreadyConnectedError.js +5 -12
- package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/browser/error/CannotCreateEntityIdMapError.d.ts +2 -2
- package/browser/error/CannotCreateEntityIdMapError.js +7 -13
- package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/browser/error/CannotDetermineEntityError.d.ts +2 -2
- package/browser/error/CannotDetermineEntityError.js +6 -12
- package/browser/error/CannotDetermineEntityError.js.map +1 -1
- package/browser/error/CannotExecuteNotConnectedError.d.ts +2 -2
- package/browser/error/CannotExecuteNotConnectedError.js +5 -12
- package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
- package/browser/error/CannotGetEntityManagerNotConnectedError.js +5 -12
- package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
- package/browser/error/CannotReflectMethodParameterTypeError.js +7 -14
- package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/browser/error/CircularRelationsError.d.ts +2 -2
- package/browser/error/CircularRelationsError.js +6 -12
- package/browser/error/CircularRelationsError.js.map +1 -1
- package/browser/error/ColumnTypeUndefinedError.d.ts +2 -2
- package/browser/error/ColumnTypeUndefinedError.js +8 -15
- package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
- package/browser/error/ConnectionIsNotSetError.d.ts +2 -2
- package/browser/error/ConnectionIsNotSetError.js +5 -12
- package/browser/error/ConnectionIsNotSetError.js.map +1 -1
- package/browser/error/ConnectionNotFoundError.d.ts +2 -2
- package/browser/error/ConnectionNotFoundError.js +5 -12
- package/browser/error/ConnectionNotFoundError.js.map +1 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +8 -13
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +8 -13
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/browser/error/CustomRepositoryNotFoundError.d.ts +2 -2
- package/browser/error/CustomRepositoryNotFoundError.js +8 -13
- package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/browser/error/DataTypeNotSupportedError.d.ts +2 -2
- package/browser/error/DataTypeNotSupportedError.js +7 -13
- package/browser/error/DataTypeNotSupportedError.js.map +1 -1
- package/browser/error/DriverOptionNotSetError.d.ts +2 -2
- package/browser/error/DriverOptionNotSetError.js +6 -12
- package/browser/error/DriverOptionNotSetError.js.map +1 -1
- package/browser/error/DriverPackageNotInstalledError.d.ts +2 -2
- package/browser/error/DriverPackageNotInstalledError.js +6 -12
- package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
- package/browser/error/EntityMetadataNotFoundError.d.ts +5 -6
- package/browser/error/EntityMetadataNotFoundError.js +17 -20
- package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
- package/browser/error/EntityNotFoundError.d.ts +5 -5
- package/browser/error/EntityNotFoundError.js +21 -22
- package/browser/error/EntityNotFoundError.js.map +1 -1
- package/browser/error/EntityPropertyNotFoundError.d.ts +8 -0
- package/browser/error/EntityPropertyNotFoundError.js +13 -0
- package/browser/error/EntityPropertyNotFoundError.js.map +1 -0
- package/browser/error/FindRelationsNotFoundError.d.ts +7 -0
- package/browser/error/FindRelationsNotFoundError.js +19 -0
- package/browser/error/FindRelationsNotFoundError.js.map +1 -0
- package/browser/error/InitializedRelationError.d.ts +2 -1
- package/browser/error/InitializedRelationError.js +7 -13
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/error/InsertValuesMissingError.d.ts +2 -2
- package/browser/error/InsertValuesMissingError.js +6 -12
- package/browser/error/InsertValuesMissingError.js.map +1 -1
- package/browser/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
- package/browser/error/LimitOnUpdateNotSupportedError.js +6 -13
- package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/browser/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
- package/browser/error/LockNotSupportedOnGivenDriverError.js +5 -12
- package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/browser/error/MetadataAlreadyExistsError.d.ts +2 -4
- package/browser/error/MetadataAlreadyExistsError.js +11 -16
- package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +9 -15
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/browser/error/MissingDeleteDateColumnError.d.ts +5 -0
- package/browser/error/MissingDeleteDateColumnError.js +8 -0
- package/browser/error/MissingDeleteDateColumnError.js.map +1 -0
- package/browser/error/MissingDriverError.d.ts +3 -3
- package/browser/error/MissingDriverError.js +6 -12
- package/browser/error/MissingDriverError.js.map +1 -1
- package/browser/error/MissingJoinColumnError.d.ts +2 -4
- package/browser/error/MissingJoinColumnError.js +12 -18
- package/browser/error/MissingJoinColumnError.js.map +1 -1
- package/browser/error/MissingJoinTableError.d.ts +2 -4
- package/browser/error/MissingJoinTableError.js +12 -18
- package/browser/error/MissingJoinTableError.js.map +1 -1
- package/browser/error/MissingPrimaryColumnError.d.ts +2 -4
- package/browser/error/MissingPrimaryColumnError.js +6 -15
- package/browser/error/MissingPrimaryColumnError.js.map +1 -1
- package/browser/error/MustBeEntityError.d.ts +2 -2
- package/browser/error/MustBeEntityError.js +5 -12
- package/browser/error/MustBeEntityError.js.map +1 -1
- package/browser/error/NamingStrategyNotFoundError.d.ts +2 -2
- package/browser/error/NamingStrategyNotFoundError.js +11 -14
- package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
- package/browser/error/NestedSetMultipleRootError.d.ts +4 -0
- package/browser/error/NestedSetMultipleRootError.js +8 -0
- package/browser/error/NestedSetMultipleRootError.js.map +1 -0
- package/browser/error/NoConnectionForRepositoryError.d.ts +2 -2
- package/browser/error/NoConnectionForRepositoryError.js +6 -13
- package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
- package/browser/error/NoConnectionOptionError.d.ts +2 -1
- package/browser/error/NoConnectionOptionError.js +6 -11
- package/browser/error/NoConnectionOptionError.js.map +1 -1
- package/browser/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
- package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -14
- package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
- package/browser/error/NoVersionOrUpdateDateColumnError.js +5 -12
- package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/browser/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
- package/browser/error/OffsetWithoutLimitNotSupportedError.js +8 -13
- package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/browser/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
- package/browser/error/OptimisticLockCanNotBeUsedError.js +5 -12
- package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.d.ts +2 -2
- package/browser/error/OptimisticLockVersionMismatchError.js +5 -12
- package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/browser/error/PersistedEntityNotFoundError.d.ts +2 -2
- package/browser/error/PersistedEntityNotFoundError.js +5 -12
- package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
- package/browser/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
- package/browser/error/PessimisticLockTransactionRequiredError.js +5 -12
- package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
- package/browser/error/PrimaryColumnCannotBeNullableError.js +6 -13
- package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/browser/error/QueryFailedError.d.ts +6 -2
- package/browser/error/QueryFailedError.js +18 -14
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
- package/browser/error/QueryRunnerAlreadyReleasedError.js +5 -14
- package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +6 -12
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/browser/error/RepositoryNotFoundError.d.ts +4 -4
- package/browser/error/RepositoryNotFoundError.js +16 -16
- package/browser/error/RepositoryNotFoundError.js.map +1 -1
- package/browser/error/RepositoryNotTreeError.d.ts +4 -4
- package/browser/error/RepositoryNotTreeError.js +18 -19
- package/browser/error/RepositoryNotTreeError.js.map +1 -1
- package/browser/error/ReturningStatementNotSupportedError.d.ts +2 -2
- package/browser/error/ReturningStatementNotSupportedError.js +5 -12
- package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
- package/browser/error/SubjectRemovedAndUpdatedError.js +6 -13
- package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/browser/error/SubjectWithoutIdentifierError.d.ts +2 -2
- package/browser/error/SubjectWithoutIdentifierError.js +5 -13
- package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/browser/error/TransactionAlreadyStartedError.d.ts +2 -2
- package/browser/error/TransactionAlreadyStartedError.js +5 -12
- package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
- package/browser/error/TransactionNotStartedError.d.ts +2 -2
- package/browser/error/TransactionNotStartedError.js +5 -12
- package/browser/error/TransactionNotStartedError.js.map +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.d.ts +2 -2
- package/browser/error/TreeRepositoryNotSupportedError.js +5 -12
- package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/browser/error/TypeORMError.d.ts +4 -0
- package/browser/error/TypeORMError.js +19 -0
- package/browser/error/TypeORMError.js.map +1 -0
- package/browser/error/UpdateValuesMissingError.d.ts +2 -5
- package/browser/error/UpdateValuesMissingError.js +5 -15
- package/browser/error/UpdateValuesMissingError.js.map +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinColumnIsNotAllowedError.js +6 -15
- package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -16
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -16
- package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -16
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/index.d.ts +62 -0
- package/browser/error/index.js +64 -0
- package/browser/error/index.js.map +1 -0
- package/browser/find-options/EqualOperator.d.ts +5 -0
- package/browser/find-options/EqualOperator.js +9 -0
- package/browser/find-options/EqualOperator.js.map +1 -0
- package/browser/find-options/FindManyOptions.d.ts +14 -0
- package/browser/find-options/FindManyOptions.js +3 -0
- package/browser/find-options/FindManyOptions.js.map +1 -0
- package/browser/find-options/FindOneOptions.d.ts +86 -0
- package/browser/find-options/FindOneOptions.js +3 -0
- package/browser/find-options/FindOneOptions.js.map +1 -0
- package/browser/find-options/FindOperator.d.ts +31 -8
- package/browser/find-options/FindOperator.js +64 -97
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsOrder.d.ts +19 -0
- package/browser/find-options/FindOptionsOrder.js +3 -0
- package/browser/find-options/FindOptionsOrder.js.map +1 -0
- package/browser/find-options/FindOptionsRelations.d.ts +19 -0
- package/browser/find-options/FindOptionsRelations.js +3 -0
- package/browser/find-options/FindOptionsRelations.js.map +1 -0
- package/browser/find-options/FindOptionsSelect.d.ts +19 -0
- package/browser/find-options/FindOptionsSelect.js +3 -0
- package/browser/find-options/FindOptionsSelect.js.map +1 -0
- package/browser/find-options/FindOptionsUtils.d.ts +180 -6
- package/browser/find-options/FindOptionsUtils.js +299 -94
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.d.ts +14 -0
- package/browser/find-options/FindOptionsWhere.js +3 -0
- package/browser/find-options/FindOptionsWhere.js.map +1 -0
- package/browser/find-options/FindTreeOptions.d.ts +13 -0
- package/browser/find-options/FindTreeOptions.js +3 -0
- package/browser/find-options/FindTreeOptions.js.map +1 -0
- package/browser/find-options/JoinOptions.d.ts +76 -0
- package/browser/find-options/JoinOptions.js +3 -0
- package/browser/find-options/JoinOptions.js.map +1 -0
- package/browser/find-options/OrderByCondition.js +1 -1
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
- package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -0
- package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
- package/browser/find-options/operator/Any.d.ts +1 -1
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/Between.d.ts +1 -1
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.d.ts +7 -2
- package/browser/find-options/operator/Equal.js +7 -3
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +1 -1
- package/browser/find-options/operator/ILike.js +1 -1
- package/browser/find-options/operator/ILike.js.map +1 -1
- package/browser/find-options/operator/In.d.ts +1 -1
- package/browser/find-options/operator/In.js.map +1 -1
- package/browser/find-options/operator/IsNull.js.map +1 -1
- package/browser/find-options/operator/LessThan.js.map +1 -1
- package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +1 -1
- package/browser/find-options/operator/Like.js +1 -1
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/find-options/operator/MoreThan.js.map +1 -1
- package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Not.d.ts +1 -1
- package/browser/find-options/operator/Not.js +1 -1
- package/browser/find-options/operator/Not.js.map +1 -1
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.d.ts +117 -0
- package/browser/globals.js +166 -0
- package/browser/globals.js.map +1 -0
- package/browser/index.d.ts +45 -114
- package/browser/index.js +57 -191
- package/browser/index.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
- package/browser/logger/AdvancedConsoleLogger.js +55 -33
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.d.ts +1 -2
- package/browser/logger/DebugLogger.js +24 -26
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.d.ts +3 -1
- package/browser/logger/FileLogger.js +65 -40
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/logger/LoggerFactory.js +6 -9
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.d.ts +9 -0
- package/browser/logger/LoggerOptions.js +1 -1
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
- package/browser/logger/SimpleConsoleLogger.js +55 -33
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.js +8 -8
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +16 -7
- package/browser/metadata/ColumnMetadata.js +240 -126
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.d.ts +12 -5
- package/browser/metadata/EmbeddedMetadata.js +77 -51
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.js +21 -15
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +65 -22
- package/browser/metadata/EntityMetadata.js +250 -160
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.js +8 -8
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.js +8 -10
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +7 -2
- package/browser/metadata/IndexMetadata.js +44 -34
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationCountMetadata.js +11 -10
- package/browser/metadata/RelationCountMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.js +21 -19
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +28 -5
- package/browser/metadata/RelationMetadata.js +160 -79
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.d.ts +7 -2
- package/browser/metadata/UniqueMetadata.js +40 -32
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/browser/metadata/types/ClosureTreeOptions.js +3 -0
- package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/browser/metadata/types/DeferrableType.js +1 -1
- package/browser/metadata/types/DeferrableType.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.d.ts +12 -8
- package/browser/metadata/types/EventListenerTypes.js +13 -13
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata/types/OnDeleteType.js +1 -1
- package/browser/metadata/types/OnDeleteType.js.map +1 -1
- package/browser/metadata/types/OnUpdateType.js +1 -1
- package/browser/metadata/types/OnUpdateType.js.map +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -1
- package/browser/metadata/types/RelationTypeInFunction.js +1 -1
- package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypes.js +1 -1
- package/browser/metadata/types/RelationTypes.js.map +1 -1
- package/browser/metadata/types/TableTypes.d.ts +1 -1
- package/browser/metadata/types/TableTypes.js +1 -1
- package/browser/metadata/types/TableTypes.js.map +1 -1
- package/browser/metadata/types/TreeTypes.js +1 -1
- package/browser/metadata/types/TreeTypes.js.map +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -2
- package/browser/metadata-args/IndexMetadataArgs.js +1 -1
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js +145 -95
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TableMetadataArgs.d.ts +9 -5
- package/browser/metadata-args/TableMetadataArgs.js +1 -1
- package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/browser/metadata-args/TreeMetadataArgs.js +1 -1
- package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.d.ts +7 -2
- package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
- package/browser/metadata-args/types/ColumnMode.js +1 -1
- package/browser/metadata-args/types/ColumnMode.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +47 -30
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/EntityMetadataBuilder.js +396 -267
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +78 -68
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +144 -92
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.js +12 -16
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +69 -50
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/Migration.js +3 -5
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +6 -4
- package/browser/migration/MigrationExecutor.js +379 -535
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.js +1 -1
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
- package/browser/naming-strategy/DefaultNamingStrategy.js +90 -80
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +17 -1
- package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.d.ts +4 -4
- package/browser/persistence/EntityPersistExecutor.js +126 -151
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.d.ts +27 -3
- package/browser/persistence/Subject.js +103 -67
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangeMap.js +1 -1
- package/browser/persistence/SubjectChangeMap.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.js +74 -52
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js +97 -114
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +19 -2
- package/browser/persistence/SubjectExecutor.js +584 -419
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopoligicalSorter.js +63 -59
- package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +53 -28
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +64 -59
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +60 -43
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +32 -29
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
- package/browser/persistence/tree/ClosureSubjectExecutor.js +213 -89
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +89 -48
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +243 -62
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js +52 -0
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js +20 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
- package/browser/platform/BrowserDisabledDriversDummy.d.ts +38 -2
- package/browser/platform/BrowserDisabledDriversDummy.js +54 -50
- package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
- package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
- package/browser/platform/BrowserFileLoggerDummy.js +47 -0
- package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
- package/browser/platform/BrowserPlatformTools.d.ts +74 -0
- package/browser/platform/BrowserPlatformTools.js +141 -0
- package/browser/platform/BrowserPlatformTools.js.map +1 -0
- package/browser/platform/PlatformTools.d.ts +16 -21
- package/browser/platform/PlatformTools.js +174 -117
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.d.ts +4 -3
- package/browser/query-builder/Alias.js +18 -31
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.d.ts +4 -3
- package/browser/query-builder/Brackets.js +4 -5
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +13 -11
- package/browser/query-builder/DeleteQueryBuilder.js +109 -166
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
- package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
- package/browser/query-builder/InsertQueryBuilder.d.ts +15 -5
- package/browser/query-builder/InsertQueryBuilder.js +453 -293
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.d.ts +12 -12
- package/browser/query-builder/JoinAttribute.js +140 -189
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/JoinOptions.js +1 -1
- package/browser/query-builder/JoinOptions.js.map +1 -1
- package/browser/query-builder/NotBrackets.d.ts +8 -0
- package/browser/query-builder/NotBrackets.js +13 -0
- package/browser/query-builder/NotBrackets.js.map +1 -0
- package/browser/query-builder/QueryBuilder.d.ts +55 -32
- package/browser/query-builder/QueryBuilder.js +698 -375
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.d.ts +0 -1
- package/browser/query-builder/QueryBuilderUtils.js +5 -16
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +51 -29
- package/browser/query-builder/QueryExpressionMap.js +92 -85
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
- package/browser/query-builder/QueryPartialEntity.js +1 -1
- package/browser/query-builder/QueryPartialEntity.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.d.ts +10 -12
- package/browser/query-builder/RelationIdLoader.js +306 -185
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.d.ts +6 -3
- package/browser/query-builder/RelationLoader.js +181 -146
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.d.ts +2 -1
- package/browser/query-builder/RelationQueryBuilder.js +81 -112
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.js +119 -84
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.js +128 -128
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
- package/browser/query-builder/ReturningResultsEntityUpdator.js +135 -155
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQuery.js +1 -1
- package/browser/query-builder/SelectQuery.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +65 -50
- package/browser/query-builder/SelectQueryBuilder.js +1642 -1291
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js +363 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
- package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -8
- package/browser/query-builder/UpdateQueryBuilder.js +276 -299
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.d.ts +16 -0
- package/browser/query-builder/WhereClause.js +3 -0
- package/browser/query-builder/WhereClause.js.map +1 -0
- package/browser/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
- package/browser/query-builder/WhereExpressionBuilder.js +3 -0
- package/browser/query-builder/WhereExpressionBuilder.js.map +1 -0
- package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/browser/query-builder/relation-count/RelationCountAttribute.js +66 -96
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
- package/browser/query-builder/relation-count/RelationCountLoader.js +150 -101
- package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +15 -18
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/browser/query-builder/relation-id/RelationIdAttribute.js +67 -101
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
- package/browser/query-builder/relation-id/RelationIdLoader.js +255 -148
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +15 -18
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/result/DeleteResult.d.ts +3 -1
- package/browser/query-builder/result/DeleteResult.js +7 -5
- package/browser/query-builder/result/DeleteResult.js.map +1 -1
- package/browser/query-builder/result/InsertResult.d.ts +2 -0
- package/browser/query-builder/result/InsertResult.js +8 -5
- package/browser/query-builder/result/InsertResult.js.map +1 -1
- package/browser/query-builder/result/UpdateResult.d.ts +2 -0
- package/browser/query-builder/result/UpdateResult.js +9 -5
- package/browser/query-builder/result/UpdateResult.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js +48 -35
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +74 -101
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +25 -27
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +228 -159
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +49 -12
- package/browser/query-runner/BaseQueryRunner.js +240 -247
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryLock.d.ts +4 -0
- package/browser/query-runner/QueryLock.js +24 -0
- package/browser/query-runner/QueryLock.js.map +1 -0
- package/browser/query-runner/QueryResult.d.ts +17 -0
- package/browser/query-runner/QueryResult.js +13 -0
- package/browser/query-runner/QueryResult.js.map +1 -0
- package/browser/query-runner/QueryRunner.d.ts +37 -8
- package/browser/query-runner/QueryRunner.js +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/AbstractRepository.d.ts +5 -5
- package/browser/repository/AbstractRepository.js +47 -54
- package/browser/repository/AbstractRepository.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +69 -81
- package/browser/repository/BaseEntity.js +169 -131
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/EntityId.js +1 -1
- package/browser/repository/EntityId.js.map +1 -1
- package/browser/repository/FindTreesOptions.d.ts +9 -0
- package/browser/repository/FindTreesOptions.js +3 -0
- package/browser/repository/FindTreesOptions.js.map +1 -0
- package/browser/repository/MongoRepository.d.ts +55 -9
- package/browser/repository/MongoRepository.js +330 -1
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/RemoveOptions.js +1 -1
- package/browser/repository/RemoveOptions.js.map +1 -1
- package/browser/repository/Repository.d.ts +133 -96
- package/browser/repository/Repository.js +288 -1
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/SaveOptions.d.ts +1 -1
- package/browser/repository/SaveOptions.js +1 -1
- package/browser/repository/SaveOptions.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +14 -9
- package/browser/repository/TreeRepository.js +263 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +10 -0
- package/browser/repository/UpsertOptions.js +3 -0
- package/browser/repository/UpsertOptions.js.map +1 -0
- package/browser/schema-builder/MongoSchemaBuilder.d.ts +3 -3
- package/browser/schema-builder/MongoSchemaBuilder.js +28 -42
- package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
- package/browser/schema-builder/RdbmsSchemaBuilder.js +693 -1057
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/SchemaBuilder.js +1 -1
- package/browser/schema-builder/SchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +6 -2
- package/browser/schema-builder/options/TableColumnOptions.js +1 -1
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.d.ts +6 -1
- package/browser/schema-builder/options/TableIndexOptions.js +1 -1
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/options/TableOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableOptions.js +1 -1
- package/browser/schema-builder/options/TableOptions.js.map +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
- package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/browser/schema-builder/options/ViewOptions.d.ts +10 -2
- package/browser/schema-builder/options/ViewOptions.js +1 -1
- package/browser/schema-builder/options/ViewOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +13 -3
- package/browser/schema-builder/table/Table.js +109 -97
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/schema-builder/table/TableCheck.d.ts +1 -0
- package/browser/schema-builder/table/TableCheck.js +10 -12
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +7 -2
- package/browser/schema-builder/table/TableColumn.js +10 -9
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
- package/browser/schema-builder/table/TableExclusion.js +9 -10
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.d.ts +11 -1
- package/browser/schema-builder/table/TableForeignKey.js +16 -12
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +6 -0
- package/browser/schema-builder/table/TableIndex.js +15 -14
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.d.ts +6 -0
- package/browser/schema-builder/table/TableUnique.js +13 -12
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/TableUtils.js +10 -11
- package/browser/schema-builder/util/TableUtils.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
- package/browser/schema-builder/util/ViewUtils.js +23 -0
- package/browser/schema-builder/util/ViewUtils.js.map +1 -0
- package/browser/schema-builder/view/View.d.ts +12 -5
- package/browser/schema-builder/view/View.js +16 -11
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +87 -2
- package/browser/subscriber/Broadcaster.js +412 -119
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/BroadcasterResult.d.ts +4 -0
- package/browser/subscriber/BroadcasterResult.js +12 -5
- package/browser/subscriber/BroadcasterResult.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +45 -0
- package/browser/subscriber/EntitySubscriberInterface.js +1 -1
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/InsertEvent.d.ts +7 -7
- package/browser/subscriber/event/InsertEvent.js +1 -1
- package/browser/subscriber/event/InsertEvent.js.map +1 -1
- package/browser/subscriber/event/LoadEvent.d.ts +2 -2
- package/browser/subscriber/event/LoadEvent.js +1 -1
- package/browser/subscriber/event/LoadEvent.js.map +1 -1
- package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
- package/browser/subscriber/event/RecoverEvent.js +3 -0
- package/browser/subscriber/event/RecoverEvent.js.map +1 -0
- package/browser/subscriber/event/RemoveEvent.d.ts +7 -7
- package/browser/subscriber/event/RemoveEvent.js +1 -1
- package/browser/subscriber/event/RemoveEvent.js.map +1 -1
- package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
- package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
- package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/subscriber/event/UpdateEvent.d.ts +5 -4
- package/browser/subscriber/event/UpdateEvent.js +1 -1
- package/browser/subscriber/event/UpdateEvent.js.map +1 -1
- package/browser/util/ApplyValueTransformers.js +13 -29
- package/browser/util/ApplyValueTransformers.js.map +1 -1
- package/browser/util/DateUtils.d.ts +2 -2
- package/browser/util/DateUtils.js +110 -83
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.js +50 -50
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/browser/util/DirectoryExportedClassesLoader.js +32 -25
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ImportUtils.d.ts +1 -0
- package/browser/util/ImportUtils.js +74 -0
- package/browser/util/ImportUtils.js.map +1 -0
- package/browser/util/InstanceChecker.d.ts +61 -0
- package/browser/util/InstanceChecker.js +103 -0
- package/browser/util/InstanceChecker.js.map +1 -0
- package/browser/util/ObjectUtils.d.ts +17 -6
- package/browser/util/ObjectUtils.js +26 -36
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +16 -8
- package/browser/util/OrmUtils.js +198 -98
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.d.ts +10 -0
- package/browser/util/PathUtils.js +28 -0
- package/browser/util/PathUtils.js.map +1 -0
- package/browser/util/RandomGenerator.d.ts +0 -4
- package/browser/util/RandomGenerator.js +61 -52
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/StringUtils.d.ts +13 -3
- package/browser/util/StringUtils.js +42 -19
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.d.ts +23 -0
- package/browser/util/TreeRepositoryUtils.js +56 -0
- package/browser/util/TreeRepositoryUtils.js.map +1 -0
- package/browser/util/VersionUtils.js +11 -16
- package/browser/util/VersionUtils.js.map +1 -1
- package/cache/DbQueryResultCache.d.ts +6 -4
- package/cache/DbQueryResultCache.js +182 -187
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/QueryResultCache.js.map +1 -1
- package/cache/QueryResultCacheFactory.d.ts +3 -3
- package/cache/QueryResultCacheFactory.js +22 -16
- package/cache/QueryResultCacheFactory.js.map +1 -1
- package/cache/QueryResultCacheOptions.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +3 -3
- package/cache/RedisQueryResultCache.js +106 -127
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli.js +18 -23
- package/cli.js.map +1 -1
- package/commands/CacheClearCommand.d.ts +1 -3
- package/commands/CacheClearCommand.js +42 -77
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.d.ts +7 -1
- package/commands/CommandUtils.js +63 -42
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +0 -9
- package/commands/EntityCreateCommand.js +38 -84
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.d.ts +12 -9
- package/commands/InitCommand.js +463 -233
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +6 -7
- package/commands/MigrationCreateCommand.js +72 -83
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +20 -5
- package/commands/MigrationGenerateCommand.js +187 -142
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.d.ts +1 -4
- package/commands/MigrationRevertCommand.js +55 -91
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.d.ts +1 -4
- package/commands/MigrationRunCommand.js +57 -94
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.d.ts +2 -4
- package/commands/MigrationShowCommand.js +38 -74
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +3 -3
- package/commands/QueryCommand.js +58 -86
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.d.ts +2 -4
- package/commands/SchemaDropCommand.js +39 -72
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaLogCommand.d.ts +1 -3
- package/commands/SchemaLogCommand.js +62 -81
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.d.ts +1 -3
- package/commands/SchemaSyncCommand.js +37 -70
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +0 -9
- package/commands/SubscriberCreateCommand.js +38 -78
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js +39 -46
- package/commands/VersionCommand.js.map +1 -1
- package/common/DeepPartial.d.ts +3 -3
- package/common/DeepPartial.js.map +1 -1
- package/common/EntityTarget.d.ts +9 -0
- package/{query-builder/WhereExpression.js → common/EntityTarget.js} +1 -1
- package/common/EntityTarget.js.map +1 -0
- package/common/MixedList.d.ts +8 -0
- package/{find-options/FindOptions.js → common/MixedList.js} +1 -1
- package/common/MixedList.js.map +1 -0
- package/common/NonNever.d.ts +6 -0
- package/{entity-factory/EntityFactoryInterface.js → common/NonNever.js} +1 -1
- package/common/NonNever.js.map +1 -0
- package/common/ObjectLiteral.js.map +1 -1
- package/common/ObjectType.js.map +1 -1
- package/common/RelationType.d.ts +14 -0
- package/{driver/aurora-data-api/AuroraDataApiConnectionOptions.js → common/RelationType.js} +1 -1
- package/common/RelationType.js.map +1 -0
- package/connection/BaseConnectionOptions.d.ts +4 -144
- package/connection/BaseConnectionOptions.js.map +1 -1
- package/connection/Connection.d.ts +4 -219
- package/connection/Connection.js +6 -531
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionManager.d.ts +11 -5
- package/connection/ConnectionManager.js +29 -27
- package/connection/ConnectionManager.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +6 -6
- package/connection/ConnectionMetadataBuilder.js +44 -36
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptions.d.ts +4 -14
- package/connection/ConnectionOptions.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +8 -8
- package/connection/ConnectionOptionsReader.js +151 -172
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
- package/connection/options-reader/ConnectionOptionsEnvReader.js +71 -50
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
- package/connection/options-reader/ConnectionOptionsXmlReader.js +48 -42
- package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
- package/connection/options-reader/ConnectionOptionsYmlReader.js +17 -11
- package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/container.d.ts +12 -0
- package/container.js +20 -11
- package/container.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +179 -0
- package/data-source/BaseDataSourceOptions.js +4 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -0
- package/data-source/DataSource.d.ts +246 -0
- package/data-source/DataSource.js +452 -0
- package/data-source/DataSource.js.map +1 -0
- package/data-source/DataSourceOptions.d.ts +21 -0
- package/data-source/DataSourceOptions.js +4 -0
- package/data-source/DataSourceOptions.js.map +1 -0
- package/data-source/index.d.ts +2 -0
- package/data-source/index.js +7 -0
- package/data-source/index.js.map +1 -0
- package/decorator/Check.d.ts +2 -2
- package/decorator/Check.js +11 -7
- package/decorator/Check.js.map +1 -1
- package/decorator/EntityRepository.d.ts +3 -1
- package/decorator/EntityRepository.js +5 -2
- package/decorator/EntityRepository.js.map +1 -1
- package/decorator/Exclusion.d.ts +2 -2
- package/decorator/Exclusion.js +11 -7
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/Generated.d.ts +1 -1
- package/decorator/Generated.js +5 -5
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.d.ts +10 -10
- package/decorator/Index.js +30 -9
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.d.ts +7 -6
- package/decorator/Unique.js +38 -8
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.d.ts +13 -13
- package/decorator/columns/Column.js +29 -16
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.d.ts +2 -2
- package/decorator/columns/CreateDateColumn.js +4 -3
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.d.ts +6 -0
- package/decorator/columns/DeleteDateColumn.js +21 -0
- package/decorator/columns/DeleteDateColumn.js.map +1 -0
- package/decorator/columns/ObjectIdColumn.d.ts +2 -2
- package/decorator/columns/ObjectIdColumn.js +4 -3
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +11 -3
- package/decorator/columns/PrimaryColumn.js +14 -9
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
- package/decorator/columns/PrimaryGeneratedColumn.js +12 -10
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.d.ts +2 -2
- package/decorator/columns/UpdateDateColumn.js +4 -3
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.d.ts +2 -2
- package/decorator/columns/VersionColumn.js +4 -3
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.d.ts +2 -1
- package/decorator/columns/ViewColumn.js +5 -4
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.d.ts +1 -1
- package/decorator/entity/ChildEntity.js +6 -5
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.d.ts +3 -3
- package/decorator/entity/Entity.js +9 -5
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.d.ts +2 -2
- package/decorator/entity/TableInheritance.js +8 -3
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.d.ts +2 -2
- package/decorator/entity-view/ViewEntity.js +12 -5
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/listeners/AfterInsert.d.ts +1 -1
- package/decorator/listeners/AfterInsert.js +5 -4
- package/decorator/listeners/AfterInsert.js.map +1 -1
- package/decorator/listeners/AfterLoad.d.ts +1 -1
- package/decorator/listeners/AfterLoad.js +5 -4
- package/decorator/listeners/AfterLoad.js.map +1 -1
- package/decorator/listeners/AfterRecover.d.ts +4 -0
- package/decorator/listeners/AfterRecover.js +20 -0
- package/decorator/listeners/AfterRecover.js.map +1 -0
- package/decorator/listeners/AfterRemove.d.ts +1 -1
- package/decorator/listeners/AfterRemove.js +5 -4
- package/decorator/listeners/AfterRemove.js.map +1 -1
- package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
- package/decorator/listeners/AfterSoftRemove.js +20 -0
- package/decorator/listeners/AfterSoftRemove.js.map +1 -0
- package/decorator/listeners/AfterUpdate.d.ts +1 -1
- package/decorator/listeners/AfterUpdate.js +5 -4
- package/decorator/listeners/AfterUpdate.js.map +1 -1
- package/decorator/listeners/BeforeInsert.d.ts +1 -1
- package/decorator/listeners/BeforeInsert.js +5 -4
- package/decorator/listeners/BeforeInsert.js.map +1 -1
- package/decorator/listeners/BeforeRecover.d.ts +4 -0
- package/decorator/listeners/BeforeRecover.js +20 -0
- package/decorator/listeners/BeforeRecover.js.map +1 -0
- package/decorator/listeners/BeforeRemove.d.ts +1 -1
- package/decorator/listeners/BeforeRemove.js +5 -4
- package/decorator/listeners/BeforeRemove.js.map +1 -1
- package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
- package/decorator/listeners/BeforeSoftRemove.js +20 -0
- package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
- package/decorator/listeners/BeforeUpdate.d.ts +1 -1
- package/decorator/listeners/BeforeUpdate.js +5 -4
- package/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/decorator/listeners/EventSubscriber.d.ts +1 -1
- package/decorator/listeners/EventSubscriber.js +4 -3
- package/decorator/listeners/EventSubscriber.js.map +1 -1
- package/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
- package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +5 -1
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/decorator/options/EntityOptions.js.map +1 -1
- package/decorator/options/IndexOptions.d.ts +5 -0
- package/decorator/options/IndexOptions.js.map +1 -1
- package/decorator/options/JoinColumnOptions.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +12 -2
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/decorator/options/TransactionOptions.js.map +1 -1
- package/decorator/options/UniqueOptions.d.ts +10 -0
- package/decorator/options/UniqueOptions.js +4 -0
- package/decorator/options/UniqueOptions.js.map +1 -0
- package/decorator/options/ValueTransformer.js.map +1 -1
- package/decorator/options/ViewColumnOptions.d.ts +15 -0
- package/decorator/options/ViewColumnOptions.js +4 -0
- package/decorator/options/ViewColumnOptions.js.map +1 -0
- package/decorator/options/ViewEntityOptions.d.ts +7 -2
- package/decorator/options/ViewEntityOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.d.ts +4 -4
- package/decorator/relations/JoinColumn.js +8 -5
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.d.ts +4 -4
- package/decorator/relations/JoinTable.js +15 -5
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.d.ts +4 -3
- package/decorator/relations/ManyToMany.js +14 -9
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +10 -9
- package/decorator/relations/ManyToOne.js +19 -14
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +6 -4
- package/decorator/relations/OneToMany.js +15 -10
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.d.ts +4 -3
- package/decorator/relations/OneToOne.js +14 -9
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationCount.d.ts +2 -2
- package/decorator/relations/RelationCount.js +4 -3
- package/decorator/relations/RelationCount.js.map +1 -1
- package/decorator/relations/RelationId.d.ts +2 -2
- package/decorator/relations/RelationId.js +4 -3
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.d.ts +2 -1
- package/decorator/tree/Tree.js +6 -4
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +2 -2
- package/decorator/tree/TreeChildren.js +13 -7
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeLevelColumn.d.ts +1 -1
- package/decorator/tree/TreeLevelColumn.js +4 -3
- package/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +4 -1
- package/decorator/tree/TreeParent.js +15 -7
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.d.ts +39 -9
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.d.ts +2 -2
- package/driver/DriverFactory.js +54 -25
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.d.ts +39 -10
- package/driver/DriverUtils.js +180 -54
- package/driver/DriverUtils.js.map +1 -1
- package/driver/Query.d.ts +1 -0
- package/driver/Query.js +5 -4
- package/driver/Query.js.map +1 -1
- package/driver/SqlInMemory.js +4 -4
- package/driver/SqlInMemory.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
- package/driver/aurora-mysql/AuroraMysqlConnection.js +19 -0
- package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
- package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +4 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +4 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
- package/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
- package/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +330 -217
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
- package/{browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +28 -18
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1681 -0
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +4 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +139 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js +154 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +128 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
- package/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
- package/driver/capacitor/CapacitorConnectionOptions.js +4 -0
- package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
- package/driver/capacitor/CapacitorDriver.d.ts +27 -0
- package/driver/capacitor/CapacitorDriver.js +83 -0
- package/driver/capacitor/CapacitorDriver.js.map +1 -0
- package/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
- package/driver/capacitor/CapacitorQueryRunner.js +98 -0
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
- package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +49 -8
- package/driver/cockroachdb/CockroachDriver.js +331 -271
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +21 -18
- package/driver/cockroachdb/CockroachQueryRunner.js +1592 -2040
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
- package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +5 -4
- package/driver/cordova/CordovaDriver.js +38 -52
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.d.ts +27 -1
- package/driver/cordova/CordovaQueryRunner.js +105 -56
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoConnectionOptions.d.ts +6 -2
- package/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/driver/expo/ExpoDriver.d.ts +4 -7
- package/driver/expo/ExpoDriver.js +36 -55
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.d.ts +9 -1
- package/driver/expo/ExpoQueryRunner.js +129 -98
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +36 -12
- package/driver/mongodb/MongoDriver.js +153 -105
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +26 -8
- package/driver/mongodb/MongoQueryRunner.js +332 -748
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/typings.d.ts +12 -11
- package/driver/mongodb/typings.js +1 -1
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
- package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +48 -11
- package/driver/mysql/MysqlDriver.js +450 -279
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +24 -15
- package/driver/mysql/MysqlQueryRunner.js +1567 -1764
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
- package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.d.ts +5 -4
- package/driver/nativescript/NativescriptDriver.js +41 -46
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
- package/driver/nativescript/NativescriptQueryRunner.js +59 -42
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
- package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/driver/oracle/OracleConnectionOptions.d.ts +11 -2
- package/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +31 -7
- package/driver/oracle/OracleDriver.js +338 -242
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +22 -9
- package/driver/oracle/OracleQueryRunner.js +1361 -1683
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +81 -19
- package/driver/postgres/PostgresDriver.js +624 -443
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +47 -26
- package/driver/postgres/PostgresQueryRunner.js +2144 -2300
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
- package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.d.ts +4 -3
- package/driver/react-native/ReactNativeDriver.js +36 -45
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
- package/driver/react-native/ReactNativeQueryRunner.js +67 -56
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
- package/driver/sap/SapConnectionCredentialsOptions.js +4 -0
- package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
- package/driver/sap/SapConnectionOptions.d.ts +59 -0
- package/driver/sap/SapConnectionOptions.js +4 -0
- package/driver/sap/SapConnectionOptions.js.map +1 -0
- package/driver/sap/SapDriver.d.ts +214 -0
- package/driver/sap/SapDriver.js +645 -0
- package/driver/sap/SapDriver.js.map +1 -0
- package/driver/sap/SapQueryRunner.d.ts +342 -0
- package/driver/sap/SapQueryRunner.js +1991 -0
- package/driver/sap/SapQueryRunner.js.map +1 -0
- package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.d.ts +18 -4
- package/driver/sqlite/SqliteDriver.js +111 -87
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
- package/driver/sqlite/SqliteQueryRunner.js +88 -71
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +259 -142
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +24 -5
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1034 -1451
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
- package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/driver/sqljs/SqljsDriver.d.ts +4 -3
- package/driver/sqljs/SqljsDriver.js +160 -232
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
- package/driver/sqljs/SqljsQueryRunner.js +89 -64
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/driver/sqlserver/MssqlParameter.js +5 -8
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +43 -9
- package/driver/sqlserver/SqlServerDriver.js +366 -262
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +18 -28
- package/driver/sqlserver/SqlServerQueryRunner.js +1825 -2322
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
- package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js → sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js} +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
- package/driver/types/ColumnTypes.d.ts +5 -5
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/DataTypeDefaults.js.map +1 -1
- package/driver/types/DatabaseType.d.ts +1 -1
- package/driver/types/DatabaseType.js.map +1 -1
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/types/MappedColumnTypes.d.ts +12 -0
- package/driver/types/MappedColumnTypes.js.map +1 -1
- package/driver/types/MetadataTableType.d.ts +5 -0
- package/driver/types/MetadataTableType.js +11 -0
- package/driver/types/MetadataTableType.js.map +1 -0
- package/driver/types/ReplicationMode.d.ts +1 -0
- package/driver/types/ReplicationMode.js +4 -0
- package/driver/types/ReplicationMode.js.map +1 -0
- package/driver/types/UpsertType.d.ts +1 -0
- package/driver/types/UpsertType.js +4 -0
- package/driver/types/UpsertType.js.map +1 -0
- package/entity-manager/EntityManager.d.ts +143 -286
- package/entity-manager/EntityManager.js +541 -447
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.d.ts +2 -2
- package/entity-manager/EntityManagerFactory.js +10 -14
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +101 -64
- package/entity-manager/MongoEntityManager.js +507 -473
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.d.ts +3 -2
- package/entity-manager/SqljsEntityManager.js +16 -36
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchema.d.ts +1 -0
- package/entity-schema/EntitySchema.js +5 -4
- package/entity-schema/EntitySchema.js.map +1 -1
- package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
- package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
- package/entity-schema/EntitySchemaEmbeddedError.js +18 -0
- package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
- package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +22 -10
- package/entity-schema/EntitySchemaOptions.js +3 -5
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
- package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/entity-schema/EntitySchemaTransformer.js +230 -183
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
- package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.d.ts +2 -2
- package/error/AlreadyHasActiveConnectionError.js +7 -12
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
- package/error/CannotAttachTreeChildrenEntityError.js +8 -12
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
- package/error/CannotConnectAlreadyConnectedError.js +6 -11
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.d.ts +2 -2
- package/error/CannotCreateEntityIdMapError.js +8 -12
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.d.ts +2 -2
- package/error/CannotDetermineEntityError.js +7 -11
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.d.ts +2 -2
- package/error/CannotExecuteNotConnectedError.js +6 -11
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
- package/error/CannotGetEntityManagerNotConnectedError.js +6 -11
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
- package/error/CannotReflectMethodParameterTypeError.js +8 -13
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.d.ts +2 -2
- package/error/CircularRelationsError.js +7 -11
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.d.ts +2 -2
- package/error/ColumnTypeUndefinedError.js +9 -14
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.d.ts +2 -2
- package/error/ConnectionIsNotSetError.js +6 -11
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.d.ts +2 -2
- package/error/ConnectionNotFoundError.js +6 -11
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
- package/error/CustomRepositoryCannotInheritRepositoryError.js +9 -12
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
- package/error/CustomRepositoryDoesNotHaveEntityError.js +9 -12
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/error/CustomRepositoryNotFoundError.d.ts +2 -2
- package/error/CustomRepositoryNotFoundError.js +9 -12
- package/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.d.ts +2 -2
- package/error/DataTypeNotSupportedError.js +8 -12
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.d.ts +2 -2
- package/error/DriverOptionNotSetError.js +7 -11
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.d.ts +2 -2
- package/error/DriverPackageNotInstalledError.js +7 -11
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityMetadataNotFoundError.d.ts +5 -6
- package/error/EntityMetadataNotFoundError.js +18 -19
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.d.ts +5 -5
- package/error/EntityNotFoundError.js +22 -21
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/EntityPropertyNotFoundError.d.ts +8 -0
- package/error/EntityPropertyNotFoundError.js +17 -0
- package/error/EntityPropertyNotFoundError.js.map +1 -0
- package/error/FindRelationsNotFoundError.d.ts +7 -0
- package/error/FindRelationsNotFoundError.js +23 -0
- package/error/FindRelationsNotFoundError.js.map +1 -0
- package/error/InitializedRelationError.d.ts +2 -1
- package/error/InitializedRelationError.js +8 -12
- package/error/InitializedRelationError.js.map +1 -1
- package/error/InsertValuesMissingError.d.ts +2 -2
- package/error/InsertValuesMissingError.js +7 -11
- package/error/InsertValuesMissingError.js.map +1 -1
- package/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
- package/error/LimitOnUpdateNotSupportedError.js +7 -12
- package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
- package/error/LockNotSupportedOnGivenDriverError.js +6 -11
- package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/error/MetadataAlreadyExistsError.d.ts +2 -4
- package/error/MetadataAlreadyExistsError.js +12 -15
- package/error/MetadataAlreadyExistsError.js.map +1 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
- package/error/MetadataWithSuchNameAlreadyExistsError.js +10 -14
- package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.d.ts +5 -0
- package/error/MissingDeleteDateColumnError.js +12 -0
- package/error/MissingDeleteDateColumnError.js.map +1 -0
- package/error/MissingDriverError.d.ts +3 -3
- package/error/MissingDriverError.js +7 -11
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.d.ts +2 -4
- package/error/MissingJoinColumnError.js +13 -17
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.d.ts +2 -4
- package/error/MissingJoinTableError.js +13 -17
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.d.ts +2 -4
- package/error/MissingPrimaryColumnError.js +7 -14
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.d.ts +2 -2
- package/error/MustBeEntityError.js +6 -11
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NamingStrategyNotFoundError.d.ts +2 -2
- package/error/NamingStrategyNotFoundError.js +12 -13
- package/error/NamingStrategyNotFoundError.js.map +1 -1
- package/error/NestedSetMultipleRootError.d.ts +4 -0
- package/error/NestedSetMultipleRootError.js +12 -0
- package/error/NestedSetMultipleRootError.js.map +1 -0
- package/error/NoConnectionForRepositoryError.d.ts +2 -2
- package/error/NoConnectionForRepositoryError.js +7 -12
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.d.ts +2 -1
- package/error/NoConnectionOptionError.js +7 -10
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
- package/error/NoNeedToReleaseEntityManagerError.js +8 -13
- package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
- package/error/NoVersionOrUpdateDateColumnError.js +6 -11
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
- package/error/OffsetWithoutLimitNotSupportedError.js +9 -12
- package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
- package/error/OptimisticLockCanNotBeUsedError.js +6 -11
- package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.d.ts +2 -2
- package/error/OptimisticLockVersionMismatchError.js +6 -11
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PersistedEntityNotFoundError.d.ts +2 -2
- package/error/PersistedEntityNotFoundError.js +6 -11
- package/error/PersistedEntityNotFoundError.js.map +1 -1
- package/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
- package/error/PessimisticLockTransactionRequiredError.js +6 -11
- package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
- package/error/PrimaryColumnCannotBeNullableError.js +7 -12
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/QueryFailedError.d.ts +6 -2
- package/error/QueryFailedError.js +20 -14
- package/error/QueryFailedError.js.map +1 -1
- package/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
- package/error/QueryRunnerAlreadyReleasedError.js +6 -13
- package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
- package/error/QueryRunnerProviderAlreadyReleasedError.js +7 -11
- package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/error/RepositoryNotFoundError.d.ts +4 -4
- package/error/RepositoryNotFoundError.js +17 -15
- package/error/RepositoryNotFoundError.js.map +1 -1
- package/error/RepositoryNotTreeError.d.ts +4 -4
- package/error/RepositoryNotTreeError.js +19 -18
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/ReturningStatementNotSupportedError.d.ts +2 -2
- package/error/ReturningStatementNotSupportedError.js +6 -11
- package/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
- package/error/SubjectRemovedAndUpdatedError.js +7 -12
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.d.ts +2 -2
- package/error/SubjectWithoutIdentifierError.js +6 -12
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TransactionAlreadyStartedError.d.ts +2 -2
- package/error/TransactionAlreadyStartedError.js +6 -11
- package/error/TransactionAlreadyStartedError.js.map +1 -1
- package/error/TransactionNotStartedError.d.ts +2 -2
- package/error/TransactionNotStartedError.js +6 -11
- package/error/TransactionNotStartedError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.d.ts +2 -2
- package/error/TreeRepositoryNotSupportedError.js +6 -11
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/TypeORMError.d.ts +4 -0
- package/error/TypeORMError.js +23 -0
- package/error/TypeORMError.js.map +1 -0
- package/error/UpdateValuesMissingError.d.ts +2 -5
- package/error/UpdateValuesMissingError.js +6 -14
- package/error/UpdateValuesMissingError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
- package/error/UsingJoinColumnIsNotAllowedError.js +7 -14
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +8 -15
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
- package/error/UsingJoinTableIsNotAllowedError.js +8 -15
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +8 -15
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/index.d.ts +62 -0
- package/error/index.js +67 -0
- package/error/index.js.map +1 -0
- package/find-options/EqualOperator.d.ts +5 -0
- package/find-options/EqualOperator.js +13 -0
- package/find-options/EqualOperator.js.map +1 -0
- package/find-options/FindManyOptions.d.ts +14 -0
- package/find-options/FindManyOptions.js +4 -0
- package/find-options/FindManyOptions.js.map +1 -0
- package/find-options/FindOneOptions.d.ts +86 -0
- package/find-options/FindOneOptions.js +4 -0
- package/find-options/FindOneOptions.js.map +1 -0
- package/find-options/FindOperator.d.ts +31 -8
- package/find-options/FindOperator.js +65 -96
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsOrder.d.ts +19 -0
- package/find-options/FindOptionsOrder.js +4 -0
- package/find-options/FindOptionsOrder.js.map +1 -0
- package/find-options/FindOptionsRelations.d.ts +19 -0
- package/find-options/FindOptionsRelations.js +4 -0
- package/find-options/FindOptionsRelations.js.map +1 -0
- package/find-options/FindOptionsSelect.d.ts +19 -0
- package/find-options/FindOptionsSelect.js +4 -0
- package/find-options/FindOptionsSelect.js.map +1 -0
- package/find-options/FindOptionsUtils.d.ts +180 -6
- package/find-options/FindOptionsUtils.js +301 -95
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/FindOptionsWhere.d.ts +14 -0
- package/find-options/FindOptionsWhere.js +4 -0
- package/find-options/FindOptionsWhere.js.map +1 -0
- package/find-options/FindTreeOptions.d.ts +13 -0
- package/find-options/FindTreeOptions.js +4 -0
- package/find-options/FindTreeOptions.js.map +1 -0
- package/find-options/JoinOptions.d.ts +76 -0
- package/find-options/JoinOptions.js +4 -0
- package/find-options/JoinOptions.js.map +1 -0
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
- package/find-options/mongodb/MongoFindManyOptions.js +4 -0
- package/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
- package/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
- package/find-options/mongodb/MongoFindOneOptions.js +4 -0
- package/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
- package/find-options/operator/Any.d.ts +1 -1
- package/find-options/operator/Any.js +2 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/Between.d.ts +1 -1
- package/find-options/operator/Between.js +2 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.d.ts +7 -2
- package/find-options/operator/Equal.js +8 -3
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +1 -1
- package/find-options/operator/ILike.js +3 -2
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.d.ts +1 -1
- package/find-options/operator/In.js +2 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.js +2 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/LessThan.js +2 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.js +2 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.d.ts +1 -1
- package/find-options/operator/Like.js +3 -2
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.js +2 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.js +2 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.d.ts +1 -1
- package/find-options/operator/Not.js +3 -2
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +7 -7
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.d.ts +117 -0
- package/globals.js +183 -0
- package/globals.js.map +1 -0
- package/index.d.ts +45 -114
- package/index.js +86 -230
- package/index.js.map +1 -1
- package/index.mjs +366 -0
- package/logger/AdvancedConsoleLogger.d.ts +2 -1
- package/logger/AdvancedConsoleLogger.js +57 -33
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.d.ts +1 -2
- package/logger/DebugLogger.js +27 -26
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.d.ts +3 -1
- package/logger/FileLogger.js +68 -40
- package/logger/FileLogger.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/logger/LoggerFactory.js +11 -12
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.d.ts +9 -0
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.d.ts +2 -1
- package/logger/SimpleConsoleLogger.js +56 -32
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.js +9 -7
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +16 -7
- package/metadata/ColumnMetadata.js +243 -127
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.d.ts +12 -5
- package/metadata/EmbeddedMetadata.js +78 -50
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.js +22 -14
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +65 -22
- package/metadata/EntityMetadata.js +255 -163
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.js +9 -7
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.js +9 -9
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +7 -2
- package/metadata/IndexMetadata.js +45 -33
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationCountMetadata.js +12 -9
- package/metadata/RelationCountMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.js +22 -18
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +28 -5
- package/metadata/RelationMetadata.js +162 -79
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.d.ts +7 -2
- package/metadata/UniqueMetadata.js +41 -31
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/metadata/types/ClosureTreeOptions.js +4 -0
- package/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/metadata/types/DeferrableType.js.map +1 -1
- package/metadata/types/EventListenerTypes.d.ts +12 -8
- package/metadata/types/EventListenerTypes.js +14 -12
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata/types/OnDeleteType.js.map +1 -1
- package/metadata/types/OnUpdateType.js.map +1 -1
- package/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypeInFunction.d.ts +2 -1
- package/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypes.js.map +1 -1
- package/metadata/types/TableTypes.d.ts +1 -1
- package/metadata/types/TableTypes.js.map +1 -1
- package/metadata/types/TreeTypes.js.map +1 -1
- package/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
- package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
- package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/metadata-args/IndexMetadataArgs.d.ts +7 -2
- package/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/metadata-args/MetadataArgsStorage.js +147 -95
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/metadata-args/TableMetadataArgs.d.ts +9 -5
- package/metadata-args/TableMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/metadata-args/UniqueMetadataArgs.d.ts +7 -2
- package/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/metadata-args/types/ColumnMode.d.ts +1 -1
- package/metadata-args/types/ColumnMode.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +52 -33
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/EntityMetadataBuilder.js +412 -281
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +85 -73
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/JunctionEntityMetadataBuilder.js +149 -95
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.js +13 -15
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
- package/metadata-builder/RelationJoinColumnBuilder.js +73 -52
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/Migration.js +4 -4
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +6 -4
- package/migration/MigrationExecutor.js +383 -537
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
- package/naming-strategy/DefaultNamingStrategy.js +96 -84
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +17 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -151
- package/persistence/EntityPersistExecutor.d.ts +4 -4
- package/persistence/EntityPersistExecutor.js +137 -160
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.d.ts +27 -3
- package/persistence/Subject.js +105 -67
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangeMap.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.js +77 -53
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js +98 -113
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.d.ts +19 -2
- package/persistence/SubjectExecutor.js +594 -427
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopoligicalSorter.js +64 -58
- package/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js +55 -28
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +67 -60
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.js +64 -45
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +35 -30
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
- package/persistence/tree/ClosureSubjectExecutor.js +215 -89
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
- package/persistence/tree/MaterializedPathSubjectExecutor.js +90 -47
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
- package/persistence/tree/NestedSetSubjectExecutor.js +245 -62
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.d.ts +8 -1
- package/platform/PlatformTools.js +123 -118
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.d.ts +4 -3
- package/query-builder/Alias.js +20 -31
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.d.ts +4 -3
- package/query-builder/Brackets.js +5 -4
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +13 -11
- package/query-builder/DeleteQueryBuilder.js +113 -168
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
- package/query-builder/InsertOrUpdateOptions.js +4 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -0
- package/query-builder/InsertQueryBuilder.d.ts +15 -5
- package/query-builder/InsertQueryBuilder.js +460 -298
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.d.ts +12 -12
- package/query-builder/JoinAttribute.js +143 -190
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/JoinOptions.js.map +1 -1
- package/query-builder/NotBrackets.d.ts +8 -0
- package/query-builder/NotBrackets.js +17 -0
- package/query-builder/NotBrackets.js.map +1 -0
- package/query-builder/QueryBuilder.d.ts +55 -32
- package/query-builder/QueryBuilder.js +703 -378
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderUtils.d.ts +0 -1
- package/query-builder/QueryBuilderUtils.js +6 -15
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +51 -29
- package/query-builder/QueryExpressionMap.js +97 -88
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/QueryPartialEntity.d.ts +1 -1
- package/query-builder/QueryPartialEntity.js.map +1 -1
- package/query-builder/RelationIdLoader.d.ts +10 -12
- package/query-builder/RelationIdLoader.js +307 -184
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.d.ts +6 -3
- package/query-builder/RelationLoader.js +182 -145
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.d.ts +2 -1
- package/query-builder/RelationQueryBuilder.js +85 -114
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.js +120 -83
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.js +129 -127
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
- package/query-builder/ReturningResultsEntityUpdator.js +136 -154
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQuery.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +64 -50
- package/query-builder/SelectQueryBuilder.js +1661 -1308
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
- package/query-builder/SoftDeleteQueryBuilder.js +367 -0
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
- package/query-builder/UpdateQueryBuilder.d.ts +11 -8
- package/query-builder/UpdateQueryBuilder.js +283 -304
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.d.ts +16 -0
- package/query-builder/WhereClause.js +4 -0
- package/query-builder/WhereClause.js.map +1 -0
- package/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
- package/query-builder/WhereExpressionBuilder.js +4 -0
- package/query-builder/WhereExpressionBuilder.js.map +1 -0
- package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/query-builder/relation-count/RelationCountAttribute.js +69 -97
- package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
- package/query-builder/relation-count/RelationCountLoader.js +151 -100
- package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +17 -18
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/query-builder/relation-id/RelationIdAttribute.js +70 -102
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
- package/query-builder/relation-id/RelationIdLoader.js +257 -148
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +17 -18
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/result/DeleteResult.d.ts +3 -1
- package/query-builder/result/DeleteResult.js +8 -4
- package/query-builder/result/DeleteResult.js.map +1 -1
- package/query-builder/result/InsertResult.d.ts +2 -0
- package/query-builder/result/InsertResult.js +9 -4
- package/query-builder/result/InsertResult.js.map +1 -1
- package/query-builder/result/UpdateResult.d.ts +2 -0
- package/query-builder/result/UpdateResult.js +10 -4
- package/query-builder/result/UpdateResult.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
- package/query-builder/transformer/DocumentToEntityTransformer.js +49 -34
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +75 -100
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +26 -26
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +231 -160
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +49 -12
- package/query-runner/BaseQueryRunner.js +243 -248
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryLock.d.ts +4 -0
- package/query-runner/QueryLock.js +28 -0
- package/query-runner/QueryLock.js.map +1 -0
- package/query-runner/QueryResult.d.ts +17 -0
- package/query-runner/QueryResult.js +17 -0
- package/query-runner/QueryResult.js.map +1 -0
- package/query-runner/QueryRunner.d.ts +36 -8
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/AbstractRepository.d.ts +5 -5
- package/repository/AbstractRepository.js +50 -55
- package/repository/AbstractRepository.js.map +1 -1
- package/repository/BaseEntity.d.ts +69 -81
- package/repository/BaseEntity.js +171 -131
- package/repository/BaseEntity.js.map +1 -1
- package/repository/EntityId.js.map +1 -1
- package/repository/FindTreesOptions.d.ts +9 -0
- package/repository/FindTreesOptions.js +4 -0
- package/repository/FindTreesOptions.js.map +1 -0
- package/repository/MongoRepository.d.ts +55 -9
- package/repository/MongoRepository.js +332 -0
- package/repository/MongoRepository.js.map +1 -1
- package/repository/RemoveOptions.js.map +1 -1
- package/repository/Repository.d.ts +133 -96
- package/repository/Repository.js +290 -0
- package/repository/Repository.js.map +1 -1
- package/repository/SaveOptions.d.ts +1 -1
- package/repository/SaveOptions.js.map +1 -1
- package/repository/TreeRepository.d.ts +14 -9
- package/repository/TreeRepository.js +265 -0
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +10 -0
- package/repository/UpsertOptions.js +4 -0
- package/repository/UpsertOptions.js.map +1 -0
- package/schema-builder/MongoSchemaBuilder.d.ts +3 -3
- package/schema-builder/MongoSchemaBuilder.js +30 -42
- package/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
- package/schema-builder/RdbmsSchemaBuilder.js +703 -1065
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/SchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +6 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.d.ts +6 -1
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/options/TableOptions.d.ts +8 -0
- package/schema-builder/options/TableOptions.js.map +1 -1
- package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
- package/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/schema-builder/options/ViewOptions.d.ts +10 -2
- package/schema-builder/options/ViewOptions.js.map +1 -1
- package/schema-builder/table/Table.d.ts +13 -3
- package/schema-builder/table/Table.js +117 -103
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.d.ts +1 -0
- package/schema-builder/table/TableCheck.js +11 -11
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +7 -2
- package/schema-builder/table/TableColumn.js +11 -8
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.d.ts +1 -0
- package/schema-builder/table/TableExclusion.js +10 -9
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.d.ts +11 -1
- package/schema-builder/table/TableForeignKey.js +17 -11
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +6 -0
- package/schema-builder/table/TableIndex.js +16 -13
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.d.ts +6 -0
- package/schema-builder/table/TableUnique.js +14 -11
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/TableUtils.js +11 -10
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/schema-builder/util/ViewUtils.d.ts +7 -0
- package/schema-builder/util/ViewUtils.js +27 -0
- package/schema-builder/util/ViewUtils.js.map +1 -0
- package/schema-builder/view/View.d.ts +12 -5
- package/schema-builder/view/View.js +17 -10
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +87 -2
- package/subscriber/Broadcaster.js +413 -118
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/BroadcasterResult.d.ts +4 -0
- package/subscriber/BroadcasterResult.js +13 -4
- package/subscriber/BroadcasterResult.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +45 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/InsertEvent.d.ts +7 -7
- package/subscriber/event/InsertEvent.js.map +1 -1
- package/subscriber/event/LoadEvent.d.ts +2 -2
- package/subscriber/event/LoadEvent.js.map +1 -1
- package/subscriber/event/RecoverEvent.d.ts +6 -0
- package/subscriber/event/RecoverEvent.js +4 -0
- package/subscriber/event/RecoverEvent.js.map +1 -0
- package/subscriber/event/RemoveEvent.d.ts +7 -7
- package/subscriber/event/RemoveEvent.js.map +1 -1
- package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
- package/subscriber/event/SoftRemoveEvent.js +4 -0
- package/subscriber/event/SoftRemoveEvent.js.map +1 -0
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/subscriber/event/UpdateEvent.d.ts +5 -4
- package/subscriber/event/UpdateEvent.js.map +1 -1
- package/typeorm-class-transformer-shim.js +41 -7
- package/typeorm-model-shim.js +166 -111
- package/util/ApplyValueTransformers.js +14 -28
- package/util/ApplyValueTransformers.js.map +1 -1
- package/util/DateUtils.d.ts +2 -2
- package/util/DateUtils.js +111 -82
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.js +51 -49
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/util/DirectoryExportedClassesLoader.js +35 -26
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ImportUtils.d.ts +1 -0
- package/util/ImportUtils.js +79 -0
- package/util/ImportUtils.js.map +1 -0
- package/util/InstanceChecker.d.ts +61 -0
- package/util/InstanceChecker.js +107 -0
- package/util/InstanceChecker.js.map +1 -0
- package/util/ObjectUtils.d.ts +17 -6
- package/util/ObjectUtils.js +27 -35
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +16 -8
- package/util/OrmUtils.js +199 -97
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.d.ts +10 -0
- package/util/PathUtils.js +34 -0
- package/util/PathUtils.js.map +1 -0
- package/util/RandomGenerator.d.ts +0 -4
- package/util/RandomGenerator.js +62 -51
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.d.ts +13 -3
- package/util/StringUtils.js +45 -19
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.d.ts +23 -0
- package/util/TreeRepositoryUtils.js +60 -0
- package/util/TreeRepositoryUtils.js.map +1 -0
- package/util/VersionUtils.js +12 -15
- package/util/VersionUtils.js.map +1 -1
- package/browser/decorator/transaction/Transaction.d.ts +0 -16
- package/browser/decorator/transaction/Transaction.js +0 -85
- package/browser/decorator/transaction/Transaction.js.map +0 -1
- package/browser/decorator/transaction/TransactionManager.d.ts +0 -4
- package/browser/decorator/transaction/TransactionManager.js +0 -15
- package/browser/decorator/transaction/TransactionManager.js.map +0 -1
- package/browser/decorator/transaction/TransactionRepository.d.ts +0 -6
- package/browser/decorator/transaction/TransactionRepository.js +0 -28
- package/browser/decorator/transaction/TransactionRepository.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +0 -21
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +0 -3
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +0 -3
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2015
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
- package/browser/entity-factory/DefaultEntityFactory.d.ts +0 -7
- package/browser/entity-factory/DefaultEntityFactory.js +0 -16
- package/browser/entity-factory/DefaultEntityFactory.js.map +0 -1
- package/browser/entity-factory/EntityFactoryInterface.d.ts +0 -11
- package/browser/entity-factory/EntityFactoryInterface.js +0 -3
- package/browser/entity-factory/EntityFactoryInterface.js.map +0 -1
- package/browser/entity-factory/OldEntityFactory.d.ts +0 -7
- package/browser/entity-factory/OldEntityFactory.js +0 -14
- package/browser/entity-factory/OldEntityFactory.js.map +0 -1
- package/browser/error/EntityColumnNotFound.d.ts +0 -7
- package/browser/error/EntityColumnNotFound.js +0 -18
- package/browser/error/EntityColumnNotFound.js.map +0 -1
- package/browser/error/FindCriteriaNotFoundError.d.ts +0 -7
- package/browser/error/FindCriteriaNotFoundError.js +0 -17
- package/browser/error/FindCriteriaNotFoundError.js.map +0 -1
- package/browser/find-options/FindOptions.d.ts +0 -171
- package/browser/find-options/FindOptions.js +0 -3
- package/browser/find-options/FindOptions.js.map +0 -1
- package/browser/find-options/operator/If.d.ts +0 -8
- package/browser/find-options/operator/If.js +0 -21
- package/browser/find-options/operator/If.js.map +0 -1
- package/browser/find-options/operator/Switch.d.ts +0 -16
- package/browser/find-options/operator/Switch.js +0 -17
- package/browser/find-options/operator/Switch.js.map +0 -1
- package/browser/observer/ObserverExecutor.d.ts +0 -18
- package/browser/observer/ObserverExecutor.js +0 -404
- package/browser/observer/ObserverExecutor.js.map +0 -1
- package/browser/observer/QueryObserver.d.ts +0 -28
- package/browser/observer/QueryObserver.js +0 -120
- package/browser/observer/QueryObserver.js.map +0 -1
- package/browser/query-builder/WhereExpression.js +0 -3
- package/browser/query-builder/WhereExpression.js.map +0 -1
- package/browser/repository/LiteralMongoRepository.d.ts +0 -11
- package/browser/repository/LiteralMongoRepository.js +0 -138
- package/browser/repository/LiteralMongoRepository.js.map +0 -1
- package/browser/repository/LiteralRepository.d.ts +0 -12
- package/browser/repository/LiteralRepository.js +0 -201
- package/browser/repository/LiteralRepository.js.map +0 -1
- package/browser/repository/LiteralTreeRepository.d.ts +0 -9
- package/browser/repository/LiteralTreeRepository.js +0 -224
- package/browser/repository/LiteralTreeRepository.js.map +0 -1
- package/browser/repository/RepositoryFactory.d.ts +0 -13
- package/browser/repository/RepositoryFactory.js +0 -50
- package/browser/repository/RepositoryFactory.js.map +0 -1
- package/browser/util/PromiseUtils.d.ts +0 -24
- package/browser/util/PromiseUtils.js +0 -62
- package/browser/util/PromiseUtils.js.map +0 -1
- package/decorator/transaction/Transaction.d.ts +0 -16
- package/decorator/transaction/Transaction.js +0 -88
- package/decorator/transaction/Transaction.js.map +0 -1
- package/decorator/transaction/TransactionManager.d.ts +0 -4
- package/decorator/transaction/TransactionManager.js +0 -18
- package/decorator/transaction/TransactionManager.js.map +0 -1
- package/decorator/transaction/TransactionRepository.d.ts +0 -6
- package/decorator/transaction/TransactionRepository.js +0 -31
- package/decorator/transaction/TransactionRepository.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
- package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -23
- package/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
- package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2017
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
- package/entity-factory/DefaultEntityFactory.d.ts +0 -7
- package/entity-factory/DefaultEntityFactory.js +0 -18
- package/entity-factory/DefaultEntityFactory.js.map +0 -1
- package/entity-factory/EntityFactoryInterface.d.ts +0 -11
- package/entity-factory/EntityFactoryInterface.js.map +0 -1
- package/entity-factory/OldEntityFactory.d.ts +0 -7
- package/entity-factory/OldEntityFactory.js +0 -16
- package/entity-factory/OldEntityFactory.js.map +0 -1
- package/error/EntityColumnNotFound.d.ts +0 -7
- package/error/EntityColumnNotFound.js +0 -20
- package/error/EntityColumnNotFound.js.map +0 -1
- package/error/FindCriteriaNotFoundError.d.ts +0 -7
- package/error/FindCriteriaNotFoundError.js +0 -19
- package/error/FindCriteriaNotFoundError.js.map +0 -1
- package/find-options/FindOptions.d.ts +0 -171
- package/find-options/FindOptions.js.map +0 -1
- package/find-options/operator/If.d.ts +0 -8
- package/find-options/operator/If.js +0 -24
- package/find-options/operator/If.js.map +0 -1
- package/find-options/operator/Switch.d.ts +0 -16
- package/find-options/operator/Switch.js +0 -20
- package/find-options/operator/Switch.js.map +0 -1
- package/observer/ObserverExecutor.d.ts +0 -18
- package/observer/ObserverExecutor.js +0 -406
- package/observer/ObserverExecutor.js.map +0 -1
- package/observer/QueryObserver.d.ts +0 -28
- package/observer/QueryObserver.js +0 -122
- package/observer/QueryObserver.js.map +0 -1
- package/query-builder/WhereExpression.js.map +0 -1
- package/repository/LiteralMongoRepository.d.ts +0 -11
- package/repository/LiteralMongoRepository.js +0 -141
- package/repository/LiteralMongoRepository.js.map +0 -1
- package/repository/LiteralRepository.d.ts +0 -12
- package/repository/LiteralRepository.js +0 -204
- package/repository/LiteralRepository.js.map +0 -1
- package/repository/LiteralTreeRepository.d.ts +0 -9
- package/repository/LiteralTreeRepository.js +0 -227
- package/repository/LiteralTreeRepository.js.map +0 -1
- package/repository/RepositoryFactory.d.ts +0 -13
- package/repository/RepositoryFactory.js +0 -52
- package/repository/RepositoryFactory.js.map +0 -1
- package/util/PromiseUtils.d.ts +0 -24
- package/util/PromiseUtils.js +0 -64
- package/util/PromiseUtils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/persistence/SubjectExecutor.ts"],"names":[],"mappings":"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","file":"SubjectExecutor.js","sourcesContent":["import {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {Subject} from \"./Subject\";\nimport {PromiseUtils} from \"../util/PromiseUtils\";\nimport {SubjectTopoligicalSorter} from \"./SubjectTopoligicalSorter\";\nimport {SubjectChangedColumnsComputer} from \"./SubjectChangedColumnsComputer\";\nimport {SubjectWithoutIdentifierError} from \"../error/SubjectWithoutIdentifierError\";\nimport {SubjectRemovedAndUpdatedError} from \"../error/SubjectRemovedAndUpdatedError\";\nimport {MongoQueryRunner} from \"../driver/mongodb/MongoQueryRunner\";\nimport {MongoEntityManager} from \"../entity-manager/MongoEntityManager\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {SaveOptions} from \"../repository/SaveOptions\";\nimport {RemoveOptions} from \"../repository/RemoveOptions\";\nimport {BroadcasterResult} from \"../subscriber/BroadcasterResult\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport {NestedSetSubjectExecutor} from \"./tree/NestedSetSubjectExecutor\";\nimport {ClosureSubjectExecutor} from \"./tree/ClosureSubjectExecutor\";\nimport {MaterializedPathSubjectExecutor} from \"./tree/MaterializedPathSubjectExecutor\";\nimport {OrmUtils} from \"../util/OrmUtils\";\n\n/**\n * Executes all database operations (inserts, updated, deletes) that must be executed\n * with given persistence subjects.\n */\nexport class SubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Indicates if executor has any operations to execute (e.g. has insert / update / delete operations to be executed).\n */\n hasExecutableOperations: boolean = false;\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * QueryRunner used to execute all queries with a given subjects.\n */\n protected queryRunner: QueryRunner;\n\n /**\n * Persistence options.\n */\n protected options?: SaveOptions & RemoveOptions;\n\n /**\n * All subjects that needs to be operated.\n */\n protected allSubjects: Subject[];\n\n /**\n * Subjects that must be inserted.\n */\n protected insertSubjects: Subject[] = [];\n\n /**\n * Subjects that must be updated.\n */\n protected updateSubjects: Subject[] = [];\n\n /**\n * Subjects that must be removed.\n */\n protected removeSubjects: Subject[] = [];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(queryRunner: QueryRunner, subjects: Subject[], options?: SaveOptions & RemoveOptions) {\n this.queryRunner = queryRunner;\n this.allSubjects = subjects;\n this.options = options;\n this.validate();\n this.recompute();\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes all operations over given array of subjects.\n * Executes queries using given query runner.\n */\n async execute(): Promise<void> {\n // console.time(\"SubjectExecutor.execute\");\n\n // broadcast \"before\" events before we start insert / update / remove operations\n let broadcasterResult: BroadcasterResult | undefined = undefined;\n if (!this.options || this.options.listeners !== false) {\n // console.time(\".broadcastBeforeEventsForAll\");\n broadcasterResult = this.broadcastBeforeEventsForAll();\n if (broadcasterResult.promises.length > 0) await Promise.all(broadcasterResult.promises);\n // console.timeEnd(\".broadcastBeforeEventsForAll\");\n }\n\n // since event listeners and subscribers can call save methods and/or trigger entity changes we need to recompute operational subjects\n // recompute only in the case if any listener or subscriber was really executed\n if (broadcasterResult && broadcasterResult.count > 0) {\n // console.time(\".recompute\");\n this.insertSubjects.forEach(subject => subject.recompute());\n this.updateSubjects.forEach(subject => subject.recompute());\n this.removeSubjects.forEach(subject => subject.recompute());\n this.recompute();\n // console.timeEnd(\".recompute\");\n }\n\n // make sure our insert subjects are sorted (using topological sorting) to make cascade inserts work properly\n\n // console.timeEnd(\"prepare\");\n\n // execute all insert operations\n // console.time(\".insertion\");\n this.insertSubjects = new SubjectTopoligicalSorter(this.insertSubjects).sort(\"insert\");\n await this.executeInsertOperations();\n // console.timeEnd(\".insertion\");\n\n // recompute update operations since insertion can create updation operations for the\n // properties it wasn't able to handle on its own (referenced columns)\n this.updateSubjects = this.allSubjects.filter(subject => subject.mustBeUpdated);\n\n // execute update operations\n // console.time(\".updation\");\n await this.executeUpdateOperations();\n // console.timeEnd(\".updation\");\n\n // make sure our remove subjects are sorted (using topological sorting) when multiple entities are passed for the removal\n // console.time(\".SubjectTopoligicalSorter\");\n this.removeSubjects = new SubjectTopoligicalSorter(this.removeSubjects).sort(\"delete\");\n // console.timeEnd(\".SubjectTopoligicalSorter\");\n // console.time(\".removal\");\n await this.executeRemoveOperations();\n // console.timeEnd(\".removal\");\n\n // update all special columns in persisted entities, like inserted id or remove ids from the removed entities\n // console.time(\".updateSpecialColumnsInPersistedEntities\");\n await this.updateSpecialColumnsInPersistedEntities();\n // console.timeEnd(\".updateSpecialColumnsInPersistedEntities\");\n\n // finally broadcast \"after\" events after we finish insert / update / remove operations\n if (!this.options || this.options.listeners !== false) {\n // console.time(\".broadcastAfterEventsForAll\");\n broadcasterResult = this.broadcastAfterEventsForAll();\n if (broadcasterResult.promises.length > 0) await Promise.all(broadcasterResult.promises);\n // console.timeEnd(\".broadcastAfterEventsForAll\");\n }\n // console.timeEnd(\"SubjectExecutor.execute\");\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Validates all given subjects.\n */\n protected validate() {\n this.allSubjects.forEach(subject => {\n if (subject.mustBeUpdated && subject.mustBeRemoved)\n throw new SubjectRemovedAndUpdatedError(subject);\n });\n }\n\n /**\n * Performs entity re-computations - finds changed columns, re-builds insert/update/remove subjects.\n */\n protected recompute(): void {\n new SubjectChangedColumnsComputer().compute(this.allSubjects);\n this.insertSubjects = this.allSubjects.filter(subject => subject.mustBeInserted);\n this.updateSubjects = this.allSubjects.filter(subject => subject.mustBeUpdated);\n this.removeSubjects = this.allSubjects.filter(subject => subject.mustBeRemoved);\n this.hasExecutableOperations = this.insertSubjects.length > 0 || this.updateSubjects.length > 0 || this.removeSubjects.length > 0;\n }\n\n /**\n * Broadcasts \"BEFORE_INSERT\", \"BEFORE_UPDATE\", \"BEFORE_REMOVE\" events for all given subjects.\n */\n protected broadcastBeforeEventsForAll(): BroadcasterResult {\n const result = new BroadcasterResult();\n if (this.insertSubjects.length)\n this.insertSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastBeforeInsertEvent(result, subject.metadata, subject.entity!));\n if (this.updateSubjects.length)\n this.updateSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(result, subject.metadata, subject.entity!, subject.databaseEntity, subject.diffColumns, subject.diffRelations));\n if (this.removeSubjects.length)\n this.removeSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastBeforeRemoveEvent(result, subject.metadata, subject.entity!, subject.databaseEntity));\n return result;\n }\n\n /**\n * Broadcasts \"AFTER_INSERT\", \"AFTER_UPDATE\", \"AFTER_REMOVE\" events for all given subjects.\n * Returns void if there wasn't any listener or subscriber executed.\n * Note: this method has a performance-optimized code organization.\n */\n protected broadcastAfterEventsForAll(): BroadcasterResult {\n const result = new BroadcasterResult();\n if (this.insertSubjects.length)\n this.insertSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastAfterInsertEvent(result, subject.metadata, subject.entity!));\n if (this.updateSubjects.length)\n this.updateSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastAfterUpdateEvent(result, subject.metadata, subject.entity!, subject.databaseEntity, subject.diffColumns, subject.diffRelations));\n if (this.removeSubjects.length)\n this.removeSubjects.forEach(subject => this.queryRunner.broadcaster.broadcastAfterRemoveEvent(result, subject.metadata, subject.entity!, subject.databaseEntity));\n return result;\n }\n\n /**\n * Executes insert operations.\n */\n protected async executeInsertOperations(): Promise<void> {\n // group insertion subjects to make bulk insertions\n const [groupedInsertSubjects, groupedInsertSubjectKeys] = this.groupBulkSubjects(this.insertSubjects, \"insert\");\n\n // then we run insertion in the sequential order which is important since we have an ordered subjects\n await PromiseUtils.runInSequence(groupedInsertSubjectKeys, async groupName => {\n const subjects = groupedInsertSubjects[groupName];\n\n // we must separately insert entities which does not have any values to insert\n // because its not possible to insert multiple entities with only default values in bulk\n const bulkInsertMaps: ObjectLiteral[] = [];\n const bulkInsertSubjects: Subject[] = [];\n const singleInsertSubjects: Subject[] = [];\n if (this.queryRunner.connection.driver instanceof MongoDriver) {\n subjects.forEach(subject => {\n if (subject.metadata.createDateColumn && subject.entity) {\n subject.entity[subject.metadata.createDateColumn.databaseName] = new Date();\n }\n\n if (subject.metadata.updateDateColumn && subject.entity) {\n subject.entity[subject.metadata.updateDateColumn.databaseName] = new Date();\n }\n\n subject.createValueSetAndPopChangeMap();\n\n bulkInsertSubjects.push(subject);\n bulkInsertMaps.push(subject.entity!);\n });\n } else if (this.queryRunner.connection.driver instanceof OracleDriver) {\n subjects.forEach(subject => {\n singleInsertSubjects.push(subject);\n });\n } else {\n subjects.forEach(subject => {\n\n // we do not insert in bulk in following cases:\n // - when there is no values in insert (only defaults are inserted), since we cannot use DEFAULT VALUES expression for multiple inserted rows\n // - when entity is a tree table, since tree tables require extra operation per each inserted row\n // - when oracle is used, since oracle's bulk insertion is very bad\n if (subject.changeMaps.length === 0 ||\n subject.metadata.treeType ||\n this.queryRunner.connection.driver instanceof OracleDriver) {\n singleInsertSubjects.push(subject);\n\n } else {\n bulkInsertSubjects.push(subject);\n bulkInsertMaps.push(subject.createValueSetAndPopChangeMap());\n }\n });\n }\n\n // for mongodb we have a bit different insertion logic\n if (this.queryRunner instanceof MongoQueryRunner) {\n const manager = this.queryRunner.manager as MongoEntityManager;\n const insertResult = await manager.insert(subjects[0].metadata.target, bulkInsertMaps);\n subjects.forEach((subject, index) => {\n subject.identifier = insertResult.identifiers[index];\n subject.generatedMap = insertResult.generatedMaps[index];\n subject.insertedValueSet = bulkInsertMaps[index];\n });\n\n } else {\n\n // here we execute our insertion query\n // we need to enable entity updation because we DO need to have updated insertedMap\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n if (bulkInsertMaps.length > 0) {\n const insertResult = await this.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subjects[0].metadata.target)\n .values(bulkInsertMaps)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false)\n .callObservers(false)\n .execute();\n\n bulkInsertSubjects.forEach((subject, index) => {\n subject.identifier = insertResult.identifiers[index];\n subject.generatedMap = insertResult.generatedMaps[index];\n subject.insertedValueSet = bulkInsertMaps[index];\n });\n }\n\n // insert subjects which must be inserted in separate requests (all default values)\n if (singleInsertSubjects.length > 0) {\n await PromiseUtils.runInSequence(singleInsertSubjects, async subject => {\n subject.insertedValueSet = subject.createValueSetAndPopChangeMap(); // important to have because query builder sets inserted values into it\n\n // for nested set we execute additional queries\n if (subject.metadata.treeType === \"nested-set\")\n await new NestedSetSubjectExecutor(this.queryRunner).insert(subject);\n\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.target)\n .values(subject.insertedValueSet)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false)\n .callObservers(false)\n .execute()\n .then(insertResult => {\n subject.identifier = insertResult.identifiers[0];\n subject.generatedMap = insertResult.generatedMaps[0];\n });\n\n // for tree tables we execute additional queries\n if (subject.metadata.treeType === \"closure-table\") {\n await new ClosureSubjectExecutor(this.queryRunner).insert(subject);\n\n } else if (subject.metadata.treeType === \"materialized-path\") {\n await new MaterializedPathSubjectExecutor(this.queryRunner).insert(subject);\n }\n });\n }\n }\n\n subjects.forEach(subject => {\n if (subject.generatedMap) {\n subject.metadata.columns.forEach(column => {\n const value = column.getEntityValue(subject.generatedMap!);\n if (value !== undefined && value !== null) {\n const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(subject.generatedMap!, preparedValue);\n }\n });\n }\n });\n });\n }\n\n /**\n * Updates all given subjects in the database.\n */\n protected async executeUpdateOperations(): Promise<void> {\n await Promise.all(this.updateSubjects.map(async subject => {\n\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject);\n\n // for mongodb we have a bit different updation logic\n if (this.queryRunner instanceof MongoQueryRunner) {\n const partialEntity = OrmUtils.mergeDeep({}, subject.entity!);\n if (subject.metadata.objectIdColumn && subject.metadata.objectIdColumn.propertyName) {\n delete partialEntity[subject.metadata.objectIdColumn.propertyName];\n }\n\n if (subject.metadata.createDateColumn && subject.metadata.createDateColumn.propertyName) {\n delete partialEntity[subject.metadata.createDateColumn.propertyName];\n }\n\n if (subject.metadata.updateDateColumn && subject.metadata.updateDateColumn.propertyName) {\n partialEntity[subject.metadata.updateDateColumn.propertyName] = new Date();\n }\n\n const manager = this.queryRunner.manager as MongoEntityManager;\n\n await manager.update(subject.metadata.target, subject.identifier, partialEntity);\n\n } else {\n\n const updateMap: ObjectLiteral = subject.createValueSetAndPopChangeMap();\n\n // here we execute our updation query\n // we need to enable entity updation because we update a subject identifier\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n const updateQueryBuilder = this.queryRunner\n .manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set(updateMap)\n .updateEntity(this.options && this.options.reload === false ? false : true)\n .callListeners(false)\n .callObservers(false);\n\n if (subject.entity) {\n updateQueryBuilder.whereEntity(subject.identifier);\n\n } else { // in this case identifier is just conditions object to update by\n updateQueryBuilder.where(subject.identifier);\n }\n\n const updateResult = await updateQueryBuilder.execute();\n subject.generatedMap = updateResult.generatedMaps[0];\n if (subject.generatedMap) {\n subject.metadata.columns.forEach(column => {\n const value = column.getEntityValue(subject.generatedMap!);\n if (value !== undefined && value !== null) {\n const preparedValue = this.queryRunner.connection.driver.prepareHydratedValue(value, column);\n column.setEntityValue(subject.generatedMap!, preparedValue);\n }\n });\n }\n\n // experiments, remove probably, need to implement tree tables children removal\n // if (subject.updatedRelationMaps.length > 0) {\n // await Promise.all(subject.updatedRelationMaps.map(async updatedRelation => {\n // if (!updatedRelation.relation.isTreeParent) return;\n // if (!updatedRelation.value !== null) return;\n //\n // if (subject.metadata.treeType === \"closure-table\") {\n // await new ClosureSubjectExecutor(this.queryRunner).deleteChildrenOf(subject);\n // }\n // }));\n // }\n }\n }));\n }\n\n /**\n * Removes all given subjects from the database.\n *\n * todo: we need to apply topological sort here as well\n */\n protected async executeRemoveOperations(): Promise<void> {\n // group insertion subjects to make bulk insertions\n const [groupedRemoveSubjects, groupedRemoveSubjectKeys] = this.groupBulkSubjects(this.removeSubjects, \"delete\");\n\n await PromiseUtils.runInSequence(groupedRemoveSubjectKeys, async groupName => {\n const subjects = groupedRemoveSubjects[groupName];\n const deleteMaps = subjects.map(subject => {\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject);\n\n return subject.identifier;\n });\n\n // for mongodb we have a bit different updation logic\n if (this.queryRunner instanceof MongoQueryRunner) {\n const manager = this.queryRunner.manager as MongoEntityManager;\n await manager.delete(subjects[0].metadata.target, deleteMaps);\n\n } else {\n\n // here we execute our deletion query\n // we don't need to specify entities and set update entity to true since the only thing query builder\n // will do for use is a primary keys deletion which is handled by us later once persistence is finished\n // also, we disable listeners because we call them on our own in persistence layer\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(subjects[0].metadata.target)\n .where(deleteMaps)\n .callListeners(false)\n .callObservers(false)\n .execute();\n }\n });\n }\n\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n protected updateSpecialColumnsInPersistedEntities(): void {\n\n // update inserted entity properties\n if (this.insertSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.insertSubjects);\n\n // update updated entity properties\n if (this.updateSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(this.updateSubjects);\n\n // remove ids from the entities that were removed\n if (this.removeSubjects.length) {\n this.removeSubjects.forEach(subject => {\n if (!subject.entity) return;\n\n subject.metadata.primaryColumns.forEach(primaryColumn => {\n primaryColumn.setEntityValue(subject.entity!, undefined);\n });\n });\n }\n\n // other post-persist updations\n this.allSubjects.forEach(subject => {\n if (!subject.entity) return;\n\n subject.metadata.relationIds.forEach(relationId => {\n relationId.setValue(subject.entity!);\n });\n\n // mongo _id remove\n if (this.queryRunner instanceof MongoQueryRunner) {\n if (subject.metadata.objectIdColumn\n && subject.metadata.objectIdColumn.databaseName\n && subject.metadata.objectIdColumn.databaseName !== subject.metadata.objectIdColumn.propertyName\n ) {\n delete subject.entity[subject.metadata.objectIdColumn.databaseName];\n }\n }\n });\n }\n\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n protected updateSpecialColumnsInInsertedAndUpdatedEntities(subjects: Subject[]): void {\n subjects.forEach(subject => {\n if (!subject.entity) return;\n\n // set values to \"null\" for nullable columns that did not have values\n subject.metadata.columns.forEach(column => {\n\n // if table inheritance is used make sure this column is not child's column\n if (subject.metadata.childEntityMetadatas.length > 0 && subject.metadata.childEntityMetadatas.map(metadata => metadata.target).indexOf(column.target) !== -1)\n return;\n\n // entities does not have virtual columns\n if (column.isVirtual)\n return;\n\n // update nullable columns\n if (column.isNullable) {\n const columnValue = column.getEntityValue(subject.entity!);\n if (columnValue === undefined)\n column.setEntityValue(subject.entity!, null);\n }\n\n // update relational columns\n if (subject.updatedRelationMaps.length > 0) {\n subject.updatedRelationMaps.forEach(updatedRelationMap => {\n updatedRelationMap.relation.joinColumns.forEach(column => {\n if (column.isVirtual === true)\n return;\n\n column.setEntityValue(subject.entity!, updatedRelationMap.value instanceof Object ? column.referencedColumn!.getEntityValue(updatedRelationMap.value) : updatedRelationMap.value);\n });\n });\n }\n });\n\n // merge into entity all generated values returned by a database\n if (subject.generatedMap)\n this.queryRunner.manager.merge(subject.metadata.target as any, subject.entity, subject.generatedMap);\n });\n }\n\n /**\n * Groups subjects by metadata names (by tables) to make bulk insertions and deletions possible.\n * However there are some limitations with bulk insertions of data into tables with generated (increment) columns\n * in some drivers. Some drivers like mysql and sqlite does not support returning multiple generated columns\n * after insertion and can only return a single generated column value, that's why its not possible to do bulk insertion,\n * because it breaks insertion result's generatedMap and leads to problems when this subject is used in other subjects saves.\n * That's why we only support bulking in junction tables for those drivers.\n *\n * Other drivers like postgres and sql server support RETURNING / OUTPUT statement which allows to return generated\n * id for each inserted row, that's why bulk insertion is not limited to junction tables in there.\n */\n protected groupBulkSubjects(subjects: Subject[], type: \"insert\" | \"delete\"): [{ [key: string]: Subject[] }, string[]] {\n const group: { [key: string]: Subject[] } = {};\n const keys: string[] = [];\n const groupingAllowed = type === \"delete\" || this.queryRunner.connection.driver.isReturningSqlSupported();\n\n subjects.forEach((subject, index) => {\n const key = groupingAllowed || subject.metadata.isJunction ? subject.metadata.name : subject.metadata.name + \"_\" + index;\n if (!group[key]) {\n group[key] = [subject];\n keys.push(key);\n } else {\n group[key].push(subject);\n }\n });\n\n return [group, keys];\n }\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../src/persistence/SubjectExecutor.ts"],"names":[],"mappings":"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","file":"SubjectExecutor.js","sourcesContent":["import { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { Subject } from \"./Subject\"\nimport { SubjectTopoligicalSorter } from \"./SubjectTopoligicalSorter\"\nimport { SubjectChangedColumnsComputer } from \"./SubjectChangedColumnsComputer\"\nimport { SubjectWithoutIdentifierError } from \"../error/SubjectWithoutIdentifierError\"\nimport { SubjectRemovedAndUpdatedError } from \"../error/SubjectRemovedAndUpdatedError\"\nimport { MongoEntityManager } from \"../entity-manager/MongoEntityManager\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { SaveOptions } from \"../repository/SaveOptions\"\nimport { RemoveOptions } from \"../repository/RemoveOptions\"\nimport { BroadcasterResult } from \"../subscriber/BroadcasterResult\"\nimport { NestedSetSubjectExecutor } from \"./tree/NestedSetSubjectExecutor\"\nimport { ClosureSubjectExecutor } from \"./tree/ClosureSubjectExecutor\"\nimport { MaterializedPathSubjectExecutor } from \"./tree/MaterializedPathSubjectExecutor\"\nimport { OrmUtils } from \"../util/OrmUtils\"\nimport { UpdateResult } from \"../query-builder/result/UpdateResult\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Executes all database operations (inserts, updated, deletes) that must be executed\n * with given persistence subjects.\n */\nexport class SubjectExecutor {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Indicates if executor has any operations to execute (e.g. has insert / update / delete operations to be executed).\n */\n hasExecutableOperations: boolean = false\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * QueryRunner used to execute all queries with a given subjects.\n */\n protected queryRunner: QueryRunner\n\n /**\n * Persistence options.\n */\n protected options?: SaveOptions & RemoveOptions\n\n /**\n * All subjects that needs to be operated.\n */\n protected allSubjects: Subject[]\n\n /**\n * Subjects that must be inserted.\n */\n protected insertSubjects: Subject[] = []\n\n /**\n * Subjects that must be updated.\n */\n protected updateSubjects: Subject[] = []\n\n /**\n * Subjects that must be removed.\n */\n protected removeSubjects: Subject[] = []\n\n /**\n * Subjects that must be soft-removed.\n */\n protected softRemoveSubjects: Subject[] = []\n\n /**\n * Subjects that must be recovered.\n */\n protected recoverSubjects: Subject[] = []\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n queryRunner: QueryRunner,\n subjects: Subject[],\n options?: SaveOptions & RemoveOptions,\n ) {\n this.queryRunner = queryRunner\n this.allSubjects = subjects\n this.options = options\n this.validate()\n this.recompute()\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes all operations over given array of subjects.\n * Executes queries using given query runner.\n */\n async execute(): Promise<void> {\n // console.time(\"SubjectExecutor.execute\");\n\n // broadcast \"before\" events before we start insert / update / remove operations\n let broadcasterResult: BroadcasterResult | undefined = undefined\n if (!this.options || this.options.listeners !== false) {\n // console.time(\".broadcastBeforeEventsForAll\");\n broadcasterResult = this.broadcastBeforeEventsForAll()\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n // console.timeEnd(\".broadcastBeforeEventsForAll\");\n }\n\n // since event listeners and subscribers can call save methods and/or trigger entity changes we need to recompute operational subjects\n // recompute only in the case if any listener or subscriber was really executed\n if (broadcasterResult && broadcasterResult.count > 0) {\n // console.time(\".recompute\");\n this.insertSubjects.forEach((subject) => subject.recompute())\n this.updateSubjects.forEach((subject) => subject.recompute())\n this.removeSubjects.forEach((subject) => subject.recompute())\n this.softRemoveSubjects.forEach((subject) => subject.recompute())\n this.recoverSubjects.forEach((subject) => subject.recompute())\n this.recompute()\n // console.timeEnd(\".recompute\");\n }\n\n // make sure our insert subjects are sorted (using topological sorting) to make cascade inserts work properly\n\n // console.timeEnd(\"prepare\");\n\n // execute all insert operations\n // console.time(\".insertion\");\n this.insertSubjects = new SubjectTopoligicalSorter(\n this.insertSubjects,\n ).sort(\"insert\")\n await this.executeInsertOperations()\n // console.timeEnd(\".insertion\");\n\n // recompute update operations since insertion can create updation operations for the\n // properties it wasn't able to handle on its own (referenced columns)\n this.updateSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeUpdated,\n )\n\n // execute update operations\n // console.time(\".updation\");\n await this.executeUpdateOperations()\n // console.timeEnd(\".updation\");\n\n // make sure our remove subjects are sorted (using topological sorting) when multiple entities are passed for the removal\n // console.time(\".removal\");\n this.removeSubjects = new SubjectTopoligicalSorter(\n this.removeSubjects,\n ).sort(\"delete\")\n await this.executeRemoveOperations()\n // console.timeEnd(\".removal\");\n\n // recompute soft-remove operations\n this.softRemoveSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeSoftRemoved,\n )\n\n // execute soft-remove operations\n await this.executeSoftRemoveOperations()\n\n // recompute recover operations\n this.recoverSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeRecovered,\n )\n\n // execute recover operations\n await this.executeRecoverOperations()\n\n // update all special columns in persisted entities, like inserted id or remove ids from the removed entities\n // console.time(\".updateSpecialColumnsInPersistedEntities\");\n await this.updateSpecialColumnsInPersistedEntities()\n // console.timeEnd(\".updateSpecialColumnsInPersistedEntities\");\n\n // finally broadcast \"after\" events after we finish insert / update / remove operations\n if (!this.options || this.options.listeners !== false) {\n // console.time(\".broadcastAfterEventsForAll\");\n broadcasterResult = this.broadcastAfterEventsForAll()\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n // console.timeEnd(\".broadcastAfterEventsForAll\");\n }\n // console.timeEnd(\"SubjectExecutor.execute\");\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Validates all given subjects.\n */\n protected validate() {\n this.allSubjects.forEach((subject) => {\n if (subject.mustBeUpdated && subject.mustBeRemoved)\n throw new SubjectRemovedAndUpdatedError(subject)\n })\n }\n\n /**\n * Performs entity re-computations - finds changed columns, re-builds insert/update/remove subjects.\n */\n protected recompute(): void {\n new SubjectChangedColumnsComputer().compute(this.allSubjects)\n this.insertSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeInserted,\n )\n this.updateSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeUpdated,\n )\n this.removeSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeRemoved,\n )\n this.softRemoveSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeSoftRemoved,\n )\n this.recoverSubjects = this.allSubjects.filter(\n (subject) => subject.mustBeRecovered,\n )\n this.hasExecutableOperations =\n this.insertSubjects.length > 0 ||\n this.updateSubjects.length > 0 ||\n this.removeSubjects.length > 0 ||\n this.softRemoveSubjects.length > 0 ||\n this.recoverSubjects.length > 0\n }\n\n /**\n * Broadcasts \"BEFORE_INSERT\", \"BEFORE_UPDATE\", \"BEFORE_REMOVE\", \"BEFORE_SOFT_REMOVE\", \"BEFORE_RECOVER\" events for all given subjects.\n */\n protected broadcastBeforeEventsForAll(): BroadcasterResult {\n const result = new BroadcasterResult()\n if (this.insertSubjects.length)\n this.insertSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastBeforeInsertEvent(\n result,\n subject.metadata,\n subject.entity!,\n ),\n )\n if (this.updateSubjects.length)\n this.updateSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastBeforeUpdateEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n subject.diffColumns,\n subject.diffRelations,\n ),\n )\n if (this.removeSubjects.length)\n this.removeSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastBeforeRemoveEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n if (this.softRemoveSubjects.length)\n this.softRemoveSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastBeforeSoftRemoveEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n if (this.recoverSubjects.length)\n this.recoverSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastBeforeRecoverEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n return result\n }\n\n /**\n * Broadcasts \"AFTER_INSERT\", \"AFTER_UPDATE\", \"AFTER_REMOVE\", \"AFTER_SOFT_REMOVE\", \"AFTER_RECOVER\" events for all given subjects.\n * Returns void if there wasn't any listener or subscriber executed.\n * Note: this method has a performance-optimized code organization.\n */\n protected broadcastAfterEventsForAll(): BroadcasterResult {\n const result = new BroadcasterResult()\n if (this.insertSubjects.length)\n this.insertSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastAfterInsertEvent(\n result,\n subject.metadata,\n subject.entity!,\n ),\n )\n if (this.updateSubjects.length)\n this.updateSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastAfterUpdateEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n subject.diffColumns,\n subject.diffRelations,\n ),\n )\n if (this.removeSubjects.length)\n this.removeSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastAfterRemoveEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n if (this.softRemoveSubjects.length)\n this.softRemoveSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastAfterSoftRemoveEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n if (this.recoverSubjects.length)\n this.recoverSubjects.forEach((subject) =>\n this.queryRunner.broadcaster.broadcastAfterRecoverEvent(\n result,\n subject.metadata,\n subject.entity!,\n subject.databaseEntity,\n ),\n )\n return result\n }\n\n /**\n * Executes insert operations.\n */\n protected async executeInsertOperations(): Promise<void> {\n // group insertion subjects to make bulk insertions\n const [groupedInsertSubjects, groupedInsertSubjectKeys] =\n this.groupBulkSubjects(this.insertSubjects, \"insert\")\n\n // then we run insertion in the sequential order which is important since we have an ordered subjects\n for (const groupName of groupedInsertSubjectKeys) {\n const subjects = groupedInsertSubjects[groupName]\n\n // we must separately insert entities which does not have any values to insert\n // because its not possible to insert multiple entities with only default values in bulk\n const bulkInsertMaps: ObjectLiteral[] = []\n const bulkInsertSubjects: Subject[] = []\n const singleInsertSubjects: Subject[] = []\n if (this.queryRunner.connection.driver.options.type === \"mongodb\") {\n subjects.forEach((subject) => {\n if (subject.metadata.createDateColumn && subject.entity) {\n subject.entity[\n subject.metadata.createDateColumn.databaseName\n ] = new Date()\n }\n\n if (subject.metadata.updateDateColumn && subject.entity) {\n subject.entity[\n subject.metadata.updateDateColumn.databaseName\n ] = new Date()\n }\n\n subject.createValueSetAndPopChangeMap()\n\n bulkInsertSubjects.push(subject)\n bulkInsertMaps.push(subject.entity!)\n })\n } else if (\n this.queryRunner.connection.driver.options.type === \"oracle\"\n ) {\n subjects.forEach((subject) => {\n singleInsertSubjects.push(subject)\n })\n } else {\n subjects.forEach((subject) => {\n // we do not insert in bulk in following cases:\n // - when there is no values in insert (only defaults are inserted), since we cannot use DEFAULT VALUES expression for multiple inserted rows\n // - when entity is a tree table, since tree tables require extra operation per each inserted row\n // - when oracle is used, since oracle's bulk insertion is very bad\n if (\n subject.changeMaps.length === 0 ||\n subject.metadata.treeType ||\n this.queryRunner.connection.driver.options.type ===\n \"oracle\" ||\n this.queryRunner.connection.driver.options.type ===\n \"sap\"\n ) {\n singleInsertSubjects.push(subject)\n } else {\n bulkInsertSubjects.push(subject)\n bulkInsertMaps.push(\n subject.createValueSetAndPopChangeMap(),\n )\n }\n })\n }\n\n // for mongodb we have a bit different insertion logic\n if (\n InstanceChecker.isMongoEntityManager(this.queryRunner.manager)\n ) {\n const insertResult = await this.queryRunner.manager.insert(\n subjects[0].metadata.target,\n bulkInsertMaps,\n )\n subjects.forEach((subject, index) => {\n subject.identifier = insertResult.identifiers[index]\n subject.generatedMap = insertResult.generatedMaps[index]\n subject.insertedValueSet = bulkInsertMaps[index]\n })\n } else {\n // here we execute our insertion query\n // we need to enable entity updation because we DO need to have updated insertedMap\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n if (bulkInsertMaps.length > 0) {\n const insertResult = await this.queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(subjects[0].metadata.target)\n .values(bulkInsertMaps)\n .updateEntity(\n this.options && this.options.reload === false\n ? false\n : true,\n )\n .callListeners(false)\n .execute()\n\n bulkInsertSubjects.forEach((subject, index) => {\n subject.identifier = insertResult.identifiers[index]\n subject.generatedMap = insertResult.generatedMaps[index]\n subject.insertedValueSet = bulkInsertMaps[index]\n })\n }\n\n // insert subjects which must be inserted in separate requests (all default values)\n if (singleInsertSubjects.length > 0) {\n for (const subject of singleInsertSubjects) {\n subject.insertedValueSet =\n subject.createValueSetAndPopChangeMap() // important to have because query builder sets inserted values into it\n\n // for nested set we execute additional queries\n if (subject.metadata.treeType === \"nested-set\")\n await new NestedSetSubjectExecutor(\n this.queryRunner,\n ).insert(subject)\n\n await this.queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.target)\n .values(subject.insertedValueSet)\n .updateEntity(\n this.options && this.options.reload === false\n ? false\n : true,\n )\n .callListeners(false)\n .execute()\n .then((insertResult) => {\n subject.identifier = insertResult.identifiers[0]\n subject.generatedMap =\n insertResult.generatedMaps[0]\n })\n\n // for tree tables we execute additional queries\n if (subject.metadata.treeType === \"closure-table\") {\n await new ClosureSubjectExecutor(\n this.queryRunner,\n ).insert(subject)\n } else if (\n subject.metadata.treeType === \"materialized-path\"\n ) {\n await new MaterializedPathSubjectExecutor(\n this.queryRunner,\n ).insert(subject)\n }\n }\n }\n }\n\n subjects.forEach((subject) => {\n if (subject.generatedMap) {\n subject.metadata.columns.forEach((column) => {\n const value = column.getEntityValue(\n subject.generatedMap!,\n )\n if (value !== undefined && value !== null) {\n const preparedValue =\n this.queryRunner.connection.driver.prepareHydratedValue(\n value,\n column,\n )\n column.setEntityValue(\n subject.generatedMap!,\n preparedValue,\n )\n }\n })\n }\n })\n }\n }\n\n /**\n * Updates all given subjects in the database.\n */\n protected async executeUpdateOperations(): Promise<void> {\n const updateSubject = async (subject: Subject) => {\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject)\n\n // for mongodb we have a bit different updation logic\n if (\n InstanceChecker.isMongoEntityManager(this.queryRunner.manager)\n ) {\n const partialEntity = this.cloneMongoSubjectEntity(subject)\n if (\n subject.metadata.objectIdColumn &&\n subject.metadata.objectIdColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.objectIdColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.createDateColumn &&\n subject.metadata.createDateColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.createDateColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.updateDateColumn &&\n subject.metadata.updateDateColumn.propertyName\n ) {\n partialEntity[\n subject.metadata.updateDateColumn.propertyName\n ] = new Date()\n }\n\n const manager = this.queryRunner.manager as MongoEntityManager\n\n await manager.update(\n subject.metadata.target,\n subject.identifier,\n partialEntity,\n )\n } else {\n const updateMap: ObjectLiteral =\n subject.createValueSetAndPopChangeMap()\n\n // for tree tables we execute additional queries\n switch (subject.metadata.treeType) {\n case \"nested-set\":\n await new NestedSetSubjectExecutor(\n this.queryRunner,\n ).update(subject)\n break\n\n case \"closure-table\":\n await new ClosureSubjectExecutor(\n this.queryRunner,\n ).update(subject)\n break\n\n case \"materialized-path\":\n await new MaterializedPathSubjectExecutor(\n this.queryRunner,\n ).update(subject)\n break\n }\n\n // here we execute our updation query\n // we need to enable entity updation because we update a subject identifier\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n const updateQueryBuilder = this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set(updateMap)\n .updateEntity(\n this.options && this.options.reload === false\n ? false\n : true,\n )\n .callListeners(false)\n\n if (subject.entity) {\n updateQueryBuilder.whereEntity(subject.identifier)\n } else {\n // in this case identifier is just conditions object to update by\n updateQueryBuilder.where(subject.identifier)\n }\n\n const updateResult = await updateQueryBuilder.execute()\n let updateGeneratedMap = updateResult.generatedMaps[0]\n if (updateGeneratedMap) {\n subject.metadata.columns.forEach((column) => {\n const value = column.getEntityValue(updateGeneratedMap!)\n if (value !== undefined && value !== null) {\n const preparedValue =\n this.queryRunner.connection.driver.prepareHydratedValue(\n value,\n column,\n )\n column.setEntityValue(\n updateGeneratedMap!,\n preparedValue,\n )\n }\n })\n if (!subject.generatedMap) {\n subject.generatedMap = {}\n }\n Object.assign(subject.generatedMap, updateGeneratedMap)\n }\n }\n }\n\n // Nested sets need to be updated one by one\n // Split array in two, one with nested set subjects and the other with the remaining subjects\n const nestedSetSubjects: Subject[] = []\n const remainingSubjects: Subject[] = []\n\n for (const subject of this.updateSubjects) {\n if (subject.metadata.treeType === \"nested-set\") {\n nestedSetSubjects.push(subject)\n } else {\n remainingSubjects.push(subject)\n }\n }\n\n // Run nested set updates one by one\n const nestedSetPromise = new Promise<void>(async (ok, fail) => {\n for (const subject of nestedSetSubjects) {\n try {\n await updateSubject(subject)\n } catch (error) {\n fail(error)\n }\n }\n ok()\n })\n\n // Run all remaning subjects in parallel\n await Promise.all([\n ...remainingSubjects.map(updateSubject),\n nestedSetPromise,\n ])\n }\n\n /**\n * Removes all given subjects from the database.\n *\n * todo: we need to apply topological sort here as well\n */\n protected async executeRemoveOperations(): Promise<void> {\n // group insertion subjects to make bulk insertions\n const [groupedRemoveSubjects, groupedRemoveSubjectKeys] =\n this.groupBulkSubjects(this.removeSubjects, \"delete\")\n\n for (const groupName of groupedRemoveSubjectKeys) {\n const subjects = groupedRemoveSubjects[groupName]\n const deleteMaps = subjects.map((subject) => {\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject)\n\n return subject.identifier\n })\n\n // for mongodb we have a bit different updation logic\n if (\n InstanceChecker.isMongoEntityManager(this.queryRunner.manager)\n ) {\n const manager = this.queryRunner.manager as MongoEntityManager\n await manager.delete(subjects[0].metadata.target, deleteMaps)\n } else {\n // for tree tables we execute additional queries\n switch (subjects[0].metadata.treeType) {\n case \"nested-set\":\n await new NestedSetSubjectExecutor(\n this.queryRunner,\n ).remove(subjects)\n break\n\n case \"closure-table\":\n await new ClosureSubjectExecutor(\n this.queryRunner,\n ).remove(subjects)\n break\n }\n\n // here we execute our deletion query\n // we don't need to specify entities and set update entity to true since the only thing query builder\n // will do for use is a primary keys deletion which is handled by us later once persistence is finished\n // also, we disable listeners because we call them on our own in persistence layer\n await this.queryRunner.manager\n .createQueryBuilder()\n .delete()\n .from(subjects[0].metadata.target)\n .where(deleteMaps)\n .callListeners(false)\n .execute()\n }\n }\n }\n\n private cloneMongoSubjectEntity(subject: Subject): ObjectLiteral {\n const target: ObjectLiteral = {}\n\n if (subject.entity) {\n for (const column of subject.metadata.columns) {\n OrmUtils.mergeDeep(\n target,\n column.getEntityValueMap(subject.entity),\n )\n }\n }\n\n return target\n }\n\n /**\n * Soft-removes all given subjects in the database.\n */\n protected async executeSoftRemoveOperations(): Promise<void> {\n await Promise.all(\n this.softRemoveSubjects.map(async (subject) => {\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject)\n\n let updateResult: UpdateResult\n\n // for mongodb we have a bit different updation logic\n if (\n InstanceChecker.isMongoEntityManager(\n this.queryRunner.manager,\n )\n ) {\n const partialEntity = this.cloneMongoSubjectEntity(subject)\n if (\n subject.metadata.objectIdColumn &&\n subject.metadata.objectIdColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.objectIdColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.createDateColumn &&\n subject.metadata.createDateColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.createDateColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.updateDateColumn &&\n subject.metadata.updateDateColumn.propertyName\n ) {\n partialEntity[\n subject.metadata.updateDateColumn.propertyName\n ] = new Date()\n }\n\n if (\n subject.metadata.deleteDateColumn &&\n subject.metadata.deleteDateColumn.propertyName\n ) {\n partialEntity[\n subject.metadata.deleteDateColumn.propertyName\n ] = new Date()\n }\n\n const manager = this.queryRunner\n .manager as MongoEntityManager\n\n updateResult = await manager.update(\n subject.metadata.target,\n subject.identifier,\n partialEntity,\n )\n } else {\n // here we execute our soft-deletion query\n // we need to enable entity soft-deletion because we update a subject identifier\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n const softDeleteQueryBuilder = this.queryRunner.manager\n .createQueryBuilder()\n .softDelete()\n .from(subject.metadata.target)\n .updateEntity(\n this.options && this.options.reload === false\n ? false\n : true,\n )\n .callListeners(false)\n\n if (subject.entity) {\n softDeleteQueryBuilder.whereEntity(subject.identifier)\n } else {\n // in this case identifier is just conditions object to update by\n softDeleteQueryBuilder.where(subject.identifier)\n }\n\n updateResult = await softDeleteQueryBuilder.execute()\n }\n\n subject.generatedMap = updateResult.generatedMaps[0]\n if (subject.generatedMap) {\n subject.metadata.columns.forEach((column) => {\n const value = column.getEntityValue(\n subject.generatedMap!,\n )\n if (value !== undefined && value !== null) {\n const preparedValue =\n this.queryRunner.connection.driver.prepareHydratedValue(\n value,\n column,\n )\n column.setEntityValue(\n subject.generatedMap!,\n preparedValue,\n )\n }\n })\n }\n\n // experiments, remove probably, need to implement tree tables children removal\n // if (subject.updatedRelationMaps.length > 0) {\n // await Promise.all(subject.updatedRelationMaps.map(async updatedRelation => {\n // if (!updatedRelation.relation.isTreeParent) return;\n // if (!updatedRelation.value !== null) return;\n //\n // if (subject.metadata.treeType === \"closure-table\") {\n // await new ClosureSubjectExecutor(this.queryRunner).deleteChildrenOf(subject);\n // }\n // }));\n // }\n }),\n )\n }\n\n /**\n * Recovers all given subjects in the database.\n */\n protected async executeRecoverOperations(): Promise<void> {\n await Promise.all(\n this.recoverSubjects.map(async (subject) => {\n if (!subject.identifier)\n throw new SubjectWithoutIdentifierError(subject)\n\n let updateResult: UpdateResult\n\n // for mongodb we have a bit different updation logic\n if (\n InstanceChecker.isMongoEntityManager(\n this.queryRunner.manager,\n )\n ) {\n const partialEntity = this.cloneMongoSubjectEntity(subject)\n if (\n subject.metadata.objectIdColumn &&\n subject.metadata.objectIdColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.objectIdColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.createDateColumn &&\n subject.metadata.createDateColumn.propertyName\n ) {\n delete partialEntity[\n subject.metadata.createDateColumn.propertyName\n ]\n }\n\n if (\n subject.metadata.updateDateColumn &&\n subject.metadata.updateDateColumn.propertyName\n ) {\n partialEntity[\n subject.metadata.updateDateColumn.propertyName\n ] = new Date()\n }\n\n if (\n subject.metadata.deleteDateColumn &&\n subject.metadata.deleteDateColumn.propertyName\n ) {\n partialEntity[\n subject.metadata.deleteDateColumn.propertyName\n ] = null\n }\n\n const manager = this.queryRunner\n .manager as MongoEntityManager\n\n updateResult = await manager.update(\n subject.metadata.target,\n subject.identifier,\n partialEntity,\n )\n } else {\n // here we execute our restory query\n // we need to enable entity restory because we update a subject identifier\n // which is not same object as our entity that's why we don't need to worry about our entity to get dirty\n // also, we disable listeners because we call them on our own in persistence layer\n const softDeleteQueryBuilder = this.queryRunner.manager\n .createQueryBuilder()\n .restore()\n .from(subject.metadata.target)\n .updateEntity(\n this.options && this.options.reload === false\n ? false\n : true,\n )\n .callListeners(false)\n\n if (subject.entity) {\n softDeleteQueryBuilder.whereEntity(subject.identifier)\n } else {\n // in this case identifier is just conditions object to update by\n softDeleteQueryBuilder.where(subject.identifier)\n }\n\n updateResult = await softDeleteQueryBuilder.execute()\n }\n\n subject.generatedMap = updateResult.generatedMaps[0]\n if (subject.generatedMap) {\n subject.metadata.columns.forEach((column) => {\n const value = column.getEntityValue(\n subject.generatedMap!,\n )\n if (value !== undefined && value !== null) {\n const preparedValue =\n this.queryRunner.connection.driver.prepareHydratedValue(\n value,\n column,\n )\n column.setEntityValue(\n subject.generatedMap!,\n preparedValue,\n )\n }\n })\n }\n\n // experiments, remove probably, need to implement tree tables children removal\n // if (subject.updatedRelationMaps.length > 0) {\n // await Promise.all(subject.updatedRelationMaps.map(async updatedRelation => {\n // if (!updatedRelation.relation.isTreeParent) return;\n // if (!updatedRelation.value !== null) return;\n //\n // if (subject.metadata.treeType === \"closure-table\") {\n // await new ClosureSubjectExecutor(this.queryRunner).deleteChildrenOf(subject);\n // }\n // }));\n // }\n }),\n )\n }\n\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n protected updateSpecialColumnsInPersistedEntities(): void {\n // update inserted entity properties\n if (this.insertSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(\n this.insertSubjects,\n )\n\n // update updated entity properties\n if (this.updateSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(\n this.updateSubjects,\n )\n\n // update soft-removed entity properties\n if (this.softRemoveSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(\n this.softRemoveSubjects,\n )\n\n // update recovered entity properties\n if (this.recoverSubjects.length)\n this.updateSpecialColumnsInInsertedAndUpdatedEntities(\n this.recoverSubjects,\n )\n\n // remove ids from the entities that were removed\n if (this.removeSubjects.length) {\n this.removeSubjects.forEach((subject) => {\n if (!subject.entity) return\n\n subject.metadata.primaryColumns.forEach((primaryColumn) => {\n primaryColumn.setEntityValue(subject.entity!, undefined)\n })\n })\n }\n\n // other post-persist updations\n this.allSubjects.forEach((subject) => {\n if (!subject.entity) return\n\n subject.metadata.relationIds.forEach((relationId) => {\n relationId.setValue(subject.entity!)\n })\n\n // mongo _id remove\n if (\n InstanceChecker.isMongoEntityManager(this.queryRunner.manager)\n ) {\n if (\n subject.metadata.objectIdColumn &&\n subject.metadata.objectIdColumn.databaseName &&\n subject.metadata.objectIdColumn.databaseName !==\n subject.metadata.objectIdColumn.propertyName\n ) {\n delete subject.entity[\n subject.metadata.objectIdColumn.databaseName\n ]\n }\n }\n })\n }\n\n /**\n * Updates all special columns of the saving entities (create date, update date, version, etc.).\n * Also updates nullable columns and columns with default values.\n */\n protected updateSpecialColumnsInInsertedAndUpdatedEntities(\n subjects: Subject[],\n ): void {\n subjects.forEach((subject) => {\n if (!subject.entity) return\n\n // set values to \"null\" for nullable columns that did not have values\n subject.metadata.columns.forEach((column) => {\n // if table inheritance is used make sure this column is not child's column\n if (\n subject.metadata.childEntityMetadatas.length > 0 &&\n subject.metadata.childEntityMetadatas\n .map((metadata) => metadata.target)\n .indexOf(column.target) !== -1\n )\n return\n\n // entities does not have virtual columns\n if (column.isVirtual) return\n\n // update nullable columns\n if (column.isNullable) {\n const columnValue = column.getEntityValue(subject.entity!)\n if (columnValue === undefined)\n column.setEntityValue(subject.entity!, null)\n }\n\n // update relational columns\n if (subject.updatedRelationMaps.length > 0) {\n subject.updatedRelationMaps.forEach(\n (updatedRelationMap) => {\n updatedRelationMap.relation.joinColumns.forEach(\n (column) => {\n if (column.isVirtual === true) return\n\n column.setEntityValue(\n subject.entity!,\n ObjectUtils.isObject(\n updatedRelationMap.value,\n )\n ? column.referencedColumn!.getEntityValue(\n updatedRelationMap.value,\n )\n : updatedRelationMap.value,\n )\n },\n )\n },\n )\n }\n })\n\n // merge into entity all generated values returned by a database\n if (subject.generatedMap)\n this.queryRunner.manager.merge(\n subject.metadata.target as any,\n subject.entity,\n subject.generatedMap,\n )\n })\n }\n\n /**\n * Groups subjects by metadata names (by tables) to make bulk insertions and deletions possible.\n * However there are some limitations with bulk insertions of data into tables with generated (increment) columns\n * in some drivers. Some drivers like mysql and sqlite does not support returning multiple generated columns\n * after insertion and can only return a single generated column value, that's why its not possible to do bulk insertion,\n * because it breaks insertion result's generatedMap and leads to problems when this subject is used in other subjects saves.\n * That's why we only support bulking in junction tables for those drivers.\n *\n * Other drivers like postgres and sql server support RETURNING / OUTPUT statement which allows to return generated\n * id for each inserted row, that's why bulk insertion is not limited to junction tables in there.\n */\n protected groupBulkSubjects(\n subjects: Subject[],\n type: \"insert\" | \"delete\",\n ): [{ [key: string]: Subject[] }, string[]] {\n const group: { [key: string]: Subject[] } = {}\n const keys: string[] = []\n const hasReturningDependColumns = subjects.some((subject) => {\n return subject.metadata.getInsertionReturningColumns().length > 0\n })\n const groupingAllowed =\n type === \"delete\" ||\n this.queryRunner.connection.driver.isReturningSqlSupported(\n \"insert\",\n ) ||\n hasReturningDependColumns === false\n\n subjects.forEach((subject, index) => {\n const key =\n groupingAllowed || subject.metadata.isJunction\n ? subject.metadata.name\n : subject.metadata.name + \"_\" + index\n if (!group[key]) {\n group[key] = [subject]\n keys.push(key)\n } else {\n group[key].push(subject)\n }\n })\n\n return [group, keys]\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.SubjectTopoligicalSorter = void 0;
|
|
4
|
+
const error_1 = require("../error");
|
|
4
5
|
/**
|
|
5
6
|
* Orders insert or remove subjects in proper order (using topological sorting)
|
|
6
7
|
* to make sure insert or remove operations are executed in a proper order.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
class SubjectTopoligicalSorter {
|
|
9
10
|
// -------------------------------------------------------------------------
|
|
10
11
|
// Constructor
|
|
11
12
|
// -------------------------------------------------------------------------
|
|
12
|
-
|
|
13
|
-
this.subjects =
|
|
13
|
+
constructor(subjects) {
|
|
14
|
+
this.subjects = [...subjects]; // copy subjects to prevent changing of sent array
|
|
14
15
|
this.metadatas = this.getUniqueMetadatas(this.subjects);
|
|
15
16
|
}
|
|
16
17
|
// -------------------------------------------------------------------------
|
|
@@ -19,109 +20,114 @@ var SubjectTopoligicalSorter = /** @class */ (function () {
|
|
|
19
20
|
/**
|
|
20
21
|
* Sorts (orders) subjects in their topological order.
|
|
21
22
|
*/
|
|
22
|
-
|
|
23
|
-
var _this = this;
|
|
23
|
+
sort(direction) {
|
|
24
24
|
// if there are no metadatas it probably mean there is no subjects... we don't have to do anything here
|
|
25
25
|
if (!this.metadatas.length)
|
|
26
26
|
return this.subjects;
|
|
27
|
-
|
|
27
|
+
const sortedSubjects = [];
|
|
28
28
|
// first if we sort for deletion all junction subjects
|
|
29
29
|
// junction subjects are subjects without entity and database entity set
|
|
30
30
|
if (direction === "delete") {
|
|
31
|
-
|
|
32
|
-
sortedSubjects.push
|
|
31
|
+
const junctionSubjects = this.subjects.filter((subject) => !subject.entity && !subject.databaseEntity);
|
|
32
|
+
sortedSubjects.push(...junctionSubjects);
|
|
33
33
|
this.removeAlreadySorted(junctionSubjects);
|
|
34
34
|
}
|
|
35
35
|
// next we always insert entities with non-nullable relations, sort them first
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const nonNullableDependencies = this.getNonNullableDependencies();
|
|
37
|
+
let sortedNonNullableEntityTargets = this.toposort(nonNullableDependencies);
|
|
38
38
|
if (direction === "insert")
|
|
39
|
-
sortedNonNullableEntityTargets =
|
|
39
|
+
sortedNonNullableEntityTargets =
|
|
40
|
+
sortedNonNullableEntityTargets.reverse();
|
|
40
41
|
// so we have a sorted entity targets
|
|
41
42
|
// go thought each of them and find all subjects with sorted entity target
|
|
42
43
|
// add those sorted targets and remove them from original array of targets
|
|
43
|
-
sortedNonNullableEntityTargets.forEach(
|
|
44
|
-
|
|
45
|
-
sortedSubjects.push
|
|
46
|
-
|
|
44
|
+
sortedNonNullableEntityTargets.forEach((sortedEntityTarget) => {
|
|
45
|
+
const entityTargetSubjects = this.subjects.filter((subject) => subject.metadata.targetName === sortedEntityTarget);
|
|
46
|
+
sortedSubjects.push(...entityTargetSubjects);
|
|
47
|
+
this.removeAlreadySorted(entityTargetSubjects);
|
|
47
48
|
});
|
|
48
49
|
// next sort all other entities
|
|
49
50
|
// same process as in above but with other entities
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
const otherDependencies = this.getDependencies();
|
|
52
|
+
let sortedOtherEntityTargets = this.toposort(otherDependencies);
|
|
52
53
|
if (direction === "insert")
|
|
53
54
|
sortedOtherEntityTargets = sortedOtherEntityTargets.reverse();
|
|
54
|
-
sortedOtherEntityTargets.forEach(
|
|
55
|
-
|
|
56
|
-
sortedSubjects.push
|
|
57
|
-
|
|
55
|
+
sortedOtherEntityTargets.forEach((sortedEntityTarget) => {
|
|
56
|
+
const entityTargetSubjects = this.subjects.filter((subject) => subject.metadata.targetName === sortedEntityTarget);
|
|
57
|
+
sortedSubjects.push(...entityTargetSubjects);
|
|
58
|
+
this.removeAlreadySorted(entityTargetSubjects);
|
|
58
59
|
});
|
|
59
60
|
// if we have something left in the subjects add them as well
|
|
60
|
-
sortedSubjects.push
|
|
61
|
+
sortedSubjects.push(...this.subjects);
|
|
61
62
|
return sortedSubjects;
|
|
62
|
-
}
|
|
63
|
+
}
|
|
63
64
|
// -------------------------------------------------------------------------
|
|
64
65
|
// Protected Methods
|
|
65
66
|
// -------------------------------------------------------------------------
|
|
66
67
|
/**
|
|
67
68
|
* Removes already sorted subjects from this.subjects list of subjects.
|
|
68
69
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
_this.subjects.splice(_this.subjects.indexOf(subject), 1);
|
|
70
|
+
removeAlreadySorted(subjects) {
|
|
71
|
+
subjects.forEach((subject) => {
|
|
72
|
+
this.subjects.splice(this.subjects.indexOf(subject), 1);
|
|
73
73
|
});
|
|
74
|
-
}
|
|
74
|
+
}
|
|
75
75
|
/**
|
|
76
76
|
* Extracts all unique metadatas from the given subjects.
|
|
77
77
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
subjects.forEach(
|
|
78
|
+
getUniqueMetadatas(subjects) {
|
|
79
|
+
const metadatas = [];
|
|
80
|
+
subjects.forEach((subject) => {
|
|
81
81
|
if (metadatas.indexOf(subject.metadata) === -1)
|
|
82
82
|
metadatas.push(subject.metadata);
|
|
83
83
|
});
|
|
84
84
|
return metadatas;
|
|
85
|
-
}
|
|
85
|
+
}
|
|
86
86
|
/**
|
|
87
87
|
* Gets dependency tree for all entity metadatas with non-nullable relations.
|
|
88
88
|
* We need to execute insertions first for entities which non-nullable relations.
|
|
89
89
|
*/
|
|
90
|
-
|
|
91
|
-
return this.metadatas.reduce(
|
|
92
|
-
metadata.relationsWithJoinColumns.forEach(
|
|
90
|
+
getNonNullableDependencies() {
|
|
91
|
+
return this.metadatas.reduce((dependencies, metadata) => {
|
|
92
|
+
metadata.relationsWithJoinColumns.forEach((relation) => {
|
|
93
93
|
if (relation.isNullable)
|
|
94
94
|
return;
|
|
95
|
-
dependencies.push([
|
|
95
|
+
dependencies.push([
|
|
96
|
+
metadata.targetName,
|
|
97
|
+
relation.inverseEntityMetadata.targetName,
|
|
98
|
+
]);
|
|
96
99
|
});
|
|
97
100
|
return dependencies;
|
|
98
101
|
}, []);
|
|
99
|
-
}
|
|
102
|
+
}
|
|
100
103
|
/**
|
|
101
104
|
* Gets dependency tree for all entity metadatas with non-nullable relations.
|
|
102
105
|
* We need to execute insertions first for entities which non-nullable relations.
|
|
103
106
|
*/
|
|
104
|
-
|
|
105
|
-
return this.metadatas.reduce(
|
|
106
|
-
metadata.relationsWithJoinColumns.forEach(
|
|
107
|
+
getDependencies() {
|
|
108
|
+
return this.metadatas.reduce((dependencies, metadata) => {
|
|
109
|
+
metadata.relationsWithJoinColumns.forEach((relation) => {
|
|
107
110
|
// if relation is self-referenced we skip it
|
|
108
111
|
if (relation.inverseEntityMetadata === metadata)
|
|
109
112
|
return;
|
|
110
|
-
dependencies.push([
|
|
113
|
+
dependencies.push([
|
|
114
|
+
metadata.targetName,
|
|
115
|
+
relation.inverseEntityMetadata.targetName,
|
|
116
|
+
]);
|
|
111
117
|
});
|
|
112
118
|
return dependencies;
|
|
113
119
|
}, []);
|
|
114
|
-
}
|
|
120
|
+
}
|
|
115
121
|
/**
|
|
116
122
|
* Sorts given graph using topological sorting algorithm.
|
|
117
123
|
*
|
|
118
124
|
* Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.
|
|
119
125
|
*/
|
|
120
|
-
|
|
126
|
+
toposort(edges) {
|
|
121
127
|
function uniqueNodes(arr) {
|
|
122
|
-
|
|
123
|
-
for (
|
|
124
|
-
|
|
128
|
+
let res = [];
|
|
129
|
+
for (let i = 0, len = arr.length; i < len; i++) {
|
|
130
|
+
let edge = arr[i];
|
|
125
131
|
if (res.indexOf(edge[0]) < 0)
|
|
126
132
|
res.push(edge[0]);
|
|
127
133
|
if (res.indexOf(edge[1]) < 0)
|
|
@@ -129,39 +135,39 @@ var SubjectTopoligicalSorter = /** @class */ (function () {
|
|
|
129
135
|
}
|
|
130
136
|
return res;
|
|
131
137
|
}
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
const nodes = uniqueNodes(edges);
|
|
139
|
+
let cursor = nodes.length, sorted = new Array(cursor), visited = {}, i = cursor;
|
|
134
140
|
while (i--) {
|
|
135
141
|
if (!visited[i])
|
|
136
142
|
visit(nodes[i], i, []);
|
|
137
143
|
}
|
|
138
144
|
function visit(node, i, predecessors) {
|
|
139
145
|
if (predecessors.indexOf(node) >= 0) {
|
|
140
|
-
throw new
|
|
146
|
+
throw new error_1.TypeORMError("Cyclic dependency: " + JSON.stringify(node)); // todo: better error
|
|
141
147
|
}
|
|
142
148
|
if (!~nodes.indexOf(node)) {
|
|
143
|
-
throw new
|
|
149
|
+
throw new error_1.TypeORMError("Found unknown node. Make sure to provided all involved nodes. Unknown node: " +
|
|
150
|
+
JSON.stringify(node));
|
|
144
151
|
}
|
|
145
152
|
if (visited[i])
|
|
146
153
|
return;
|
|
147
154
|
visited[i] = true;
|
|
148
155
|
// outgoing edges
|
|
149
|
-
|
|
156
|
+
let outgoing = edges.filter(function (edge) {
|
|
150
157
|
return edge[0] === node;
|
|
151
158
|
});
|
|
152
|
-
if (i = outgoing.length) {
|
|
153
|
-
|
|
159
|
+
if ((i = outgoing.length)) {
|
|
160
|
+
let preds = predecessors.concat(node);
|
|
154
161
|
do {
|
|
155
|
-
|
|
162
|
+
let child = outgoing[--i][1];
|
|
156
163
|
visit(child, nodes.indexOf(child), preds);
|
|
157
164
|
} while (i);
|
|
158
165
|
}
|
|
159
166
|
sorted[--cursor] = node;
|
|
160
167
|
}
|
|
161
168
|
return sorted;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
}());
|
|
169
|
+
}
|
|
170
|
+
}
|
|
165
171
|
exports.SubjectTopoligicalSorter = SubjectTopoligicalSorter;
|
|
166
172
|
|
|
167
173
|
//# sourceMappingURL=SubjectTopoligicalSorter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/persistence/SubjectTopoligicalSorter.ts"],"names":[],"mappings":"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","file":"SubjectTopoligicalSorter.js","sourcesContent":["import {Subject} from \"./Subject\";\nimport {EntityMetadata} from \"../metadata/EntityMetadata\";\n\n/**\n * Orders insert or remove subjects in proper order (using topological sorting)\n * to make sure insert or remove operations are executed in a proper order.\n */\nexport class SubjectTopoligicalSorter {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Insert subjects needs to be sorted.\n */\n subjects: Subject[];\n\n /**\n * Unique list of entity metadatas of this subject.\n */\n metadatas: EntityMetadata[];\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(subjects: Subject[]) {\n this.subjects = [...subjects]; // copy subjects to prevent changing of sent array\n this.metadatas = this.getUniqueMetadatas(this.subjects);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Sorts (orders) subjects in their topological order.\n */\n sort(direction: \"insert\"|\"delete\"): Subject[] {\n\n // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here\n if (!this.metadatas.length)\n return this.subjects;\n\n const sortedSubjects: Subject[] = [];\n\n // first if we sort for deletion all junction subjects\n // junction subjects are subjects without entity and database entity set\n if (direction === \"delete\") {\n const junctionSubjects = this.subjects.filter(subject => !subject.entity && !subject.databaseEntity);\n sortedSubjects.push(...junctionSubjects);\n this.removeAlreadySorted(junctionSubjects);\n }\n\n // next we always insert entities with non-nullable relations, sort them first\n const nonNullableDependencies = this.getNonNullableDependencies();\n let sortedNonNullableEntityTargets = this.toposort(nonNullableDependencies);\n if (direction === \"insert\")\n sortedNonNullableEntityTargets = sortedNonNullableEntityTargets.reverse();\n\n // so we have a sorted entity targets\n // go thought each of them and find all subjects with sorted entity target\n // add those sorted targets and remove them from original array of targets\n sortedNonNullableEntityTargets.forEach(sortedEntityTarget => {\n const entityTargetSubjects = this.subjects.filter(subject => subject.metadata.targetName === sortedEntityTarget);\n sortedSubjects.push(...entityTargetSubjects);\n this.removeAlreadySorted(entityTargetSubjects);\n });\n\n // next sort all other entities\n // same process as in above but with other entities\n const otherDependencies: string[][] = this.getDependencies();\n let sortedOtherEntityTargets = this.toposort(otherDependencies);\n if (direction === \"insert\")\n sortedOtherEntityTargets = sortedOtherEntityTargets.reverse();\n\n sortedOtherEntityTargets.forEach(sortedEntityTarget => {\n const entityTargetSubjects = this.subjects.filter(subject => subject.metadata.targetName === sortedEntityTarget);\n sortedSubjects.push(...entityTargetSubjects);\n this.removeAlreadySorted(entityTargetSubjects);\n });\n\n // if we have something left in the subjects add them as well\n sortedSubjects.push(...this.subjects);\n return sortedSubjects;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes already sorted subjects from this.subjects list of subjects.\n */\n protected removeAlreadySorted(subjects: Subject[]) {\n subjects.forEach(subject => {\n this.subjects.splice(this.subjects.indexOf(subject), 1);\n });\n }\n\n /**\n * Extracts all unique metadatas from the given subjects.\n */\n protected getUniqueMetadatas(subjects: Subject[]) {\n const metadatas: EntityMetadata[] = [];\n subjects.forEach(subject => {\n if (metadatas.indexOf(subject.metadata) === -1)\n metadatas.push(subject.metadata);\n });\n return metadatas;\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getNonNullableDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach(relation => {\n if (relation.isNullable)\n return;\n\n dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]);\n });\n return dependencies;\n }, [] as string[][]);\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach(relation => {\n\n // if relation is self-referenced we skip it\n if (relation.inverseEntityMetadata === metadata)\n return;\n\n dependencies.push([metadata.targetName, relation.inverseEntityMetadata.targetName]);\n });\n return dependencies;\n }, [] as string[][]);\n }\n\n /**\n * Sorts given graph using topological sorting algorithm.\n *\n * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.\n */\n protected toposort(edges: any[][]) {\n\n function uniqueNodes(arr: any[]) {\n let res = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n let edge: any = arr[i];\n if (res.indexOf(edge[0]) < 0) res.push(edge[0]);\n if (res.indexOf(edge[1]) < 0) res.push(edge[1]);\n }\n return res;\n }\n\n const nodes = uniqueNodes(edges);\n let cursor = nodes.length\n , sorted = new Array(cursor)\n , visited: any = {}\n , i = cursor;\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, []);\n }\n\n function visit(node: any, i: number, predecessors: any[]) {\n if (predecessors.indexOf(node) >= 0) {\n throw new Error(\"Cyclic dependency: \" + JSON.stringify(node)); // todo: better error\n }\n\n if (!~nodes.indexOf(node)) {\n throw new Error(\"Found unknown node. Make sure to provided all involved nodes. Unknown node: \" + JSON.stringify(node));\n }\n\n if (visited[i]) return;\n visited[i] = true;\n\n // outgoing edges\n let outgoing = edges.filter(function(edge) {\n return edge[0] === node;\n });\n if (i = outgoing.length) {\n let preds = predecessors.concat(node);\n do {\n let child = outgoing[--i][1];\n visit(child, nodes.indexOf(child), preds);\n } while (i);\n }\n\n sorted[--cursor] = node;\n }\n\n return sorted;\n }\n\n}"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../src/persistence/SubjectTopoligicalSorter.ts"],"names":[],"mappings":"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","file":"SubjectTopoligicalSorter.js","sourcesContent":["import { Subject } from \"./Subject\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { TypeORMError } from \"../error\"\n\n/**\n * Orders insert or remove subjects in proper order (using topological sorting)\n * to make sure insert or remove operations are executed in a proper order.\n */\nexport class SubjectTopoligicalSorter {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Insert subjects needs to be sorted.\n */\n subjects: Subject[]\n\n /**\n * Unique list of entity metadatas of this subject.\n */\n metadatas: EntityMetadata[]\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(subjects: Subject[]) {\n this.subjects = [...subjects] // copy subjects to prevent changing of sent array\n this.metadatas = this.getUniqueMetadatas(this.subjects)\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Sorts (orders) subjects in their topological order.\n */\n sort(direction: \"insert\" | \"delete\"): Subject[] {\n // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here\n if (!this.metadatas.length) return this.subjects\n\n const sortedSubjects: Subject[] = []\n\n // first if we sort for deletion all junction subjects\n // junction subjects are subjects without entity and database entity set\n if (direction === \"delete\") {\n const junctionSubjects = this.subjects.filter(\n (subject) => !subject.entity && !subject.databaseEntity,\n )\n sortedSubjects.push(...junctionSubjects)\n this.removeAlreadySorted(junctionSubjects)\n }\n\n // next we always insert entities with non-nullable relations, sort them first\n const nonNullableDependencies = this.getNonNullableDependencies()\n let sortedNonNullableEntityTargets = this.toposort(\n nonNullableDependencies,\n )\n if (direction === \"insert\")\n sortedNonNullableEntityTargets =\n sortedNonNullableEntityTargets.reverse()\n\n // so we have a sorted entity targets\n // go thought each of them and find all subjects with sorted entity target\n // add those sorted targets and remove them from original array of targets\n sortedNonNullableEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) => subject.metadata.targetName === sortedEntityTarget,\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // next sort all other entities\n // same process as in above but with other entities\n const otherDependencies: string[][] = this.getDependencies()\n let sortedOtherEntityTargets = this.toposort(otherDependencies)\n if (direction === \"insert\")\n sortedOtherEntityTargets = sortedOtherEntityTargets.reverse()\n\n sortedOtherEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) => subject.metadata.targetName === sortedEntityTarget,\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // if we have something left in the subjects add them as well\n sortedSubjects.push(...this.subjects)\n return sortedSubjects\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes already sorted subjects from this.subjects list of subjects.\n */\n protected removeAlreadySorted(subjects: Subject[]) {\n subjects.forEach((subject) => {\n this.subjects.splice(this.subjects.indexOf(subject), 1)\n })\n }\n\n /**\n * Extracts all unique metadatas from the given subjects.\n */\n protected getUniqueMetadatas(subjects: Subject[]) {\n const metadatas: EntityMetadata[] = []\n subjects.forEach((subject) => {\n if (metadatas.indexOf(subject.metadata) === -1)\n metadatas.push(subject.metadata)\n })\n return metadatas\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getNonNullableDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n if (relation.isNullable) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n // if relation is self-referenced we skip it\n if (relation.inverseEntityMetadata === metadata) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Sorts given graph using topological sorting algorithm.\n *\n * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.\n */\n protected toposort(edges: any[][]) {\n function uniqueNodes(arr: any[]) {\n let res = []\n for (let i = 0, len = arr.length; i < len; i++) {\n let edge: any = arr[i]\n if (res.indexOf(edge[0]) < 0) res.push(edge[0])\n if (res.indexOf(edge[1]) < 0) res.push(edge[1])\n }\n return res\n }\n\n const nodes = uniqueNodes(edges)\n let cursor = nodes.length,\n sorted = new Array(cursor),\n visited: any = {},\n i = cursor\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, [])\n }\n\n function visit(node: any, i: number, predecessors: any[]) {\n if (predecessors.indexOf(node) >= 0) {\n throw new TypeORMError(\n \"Cyclic dependency: \" + JSON.stringify(node),\n ) // todo: better error\n }\n\n if (!~nodes.indexOf(node)) {\n throw new TypeORMError(\n \"Found unknown node. Make sure to provided all involved nodes. Unknown node: \" +\n JSON.stringify(node),\n )\n }\n\n if (visited[i]) return\n visited[i] = true\n\n // outgoing edges\n let outgoing = edges.filter(function (edge) {\n return edge[0] === node\n })\n if ((i = outgoing.length)) {\n let preds = predecessors.concat(node)\n do {\n let child = outgoing[--i][1]\n visit(child, nodes.indexOf(child), preds)\n } while (i)\n }\n\n sorted[--cursor] = node\n }\n\n return sorted\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -10,7 +10,7 @@ export declare class CascadesSubjectBuilder {
|
|
|
10
10
|
/**
|
|
11
11
|
* Builds a cascade subjects tree and pushes them in into the given array of subjects.
|
|
12
12
|
*/
|
|
13
|
-
build(subject: Subject): void;
|
|
13
|
+
build(subject: Subject, operationType: "save" | "remove" | "soft-remove" | "recover"): void;
|
|
14
14
|
/**
|
|
15
15
|
* Finds subject where entity like given subject's entity.
|
|
16
16
|
* Comparision made by entity id.
|