typeorm 0.3.29-dev.cc07c90 → 1.0.0-beta.1
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 +67 -74
- package/browser/cache/DbQueryResultCache.d.ts +17 -6
- package/browser/cache/DbQueryResultCache.js +46 -32
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCache.d.ts +2 -2
- package/browser/cache/QueryResultCache.js +3 -3
- package/browser/cache/QueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCacheFactory.d.ts +4 -4
- package/browser/cache/QueryResultCacheFactory.js +17 -14
- package/browser/cache/QueryResultCacheFactory.js.map +1 -1
- package/browser/cache/QueryResultCacheOptions.js +3 -3
- package/browser/cache/QueryResultCacheOptions.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.d.ts +18 -19
- package/browser/cache/RedisQueryResultCache.js +54 -130
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-commonjs.js +4 -3
- package/browser/cli-ts-node-commonjs.js.map +1 -1
- package/browser/cli-ts-node-esm.js +5 -4
- package/browser/cli-ts-node-esm.js.map +1 -1
- package/browser/common/DeepPartial.js +3 -3
- package/browser/common/DeepPartial.js.map +1 -1
- package/browser/common/EntityTarget.d.ts +2 -2
- package/browser/common/EntityTarget.js +3 -3
- package/browser/common/EntityTarget.js.map +1 -1
- package/browser/common/MixedList.js +3 -3
- package/browser/common/MixedList.js.map +1 -1
- package/browser/common/NonNever.d.ts +1 -1
- package/browser/common/NonNever.js +3 -3
- package/browser/common/NonNever.js.map +1 -1
- package/browser/common/ObjectLiteral.js +3 -3
- package/browser/common/ObjectLiteral.js.map +1 -1
- package/browser/common/ObjectType.js +3 -3
- package/browser/common/ObjectType.js.map +1 -1
- package/browser/common/PickKeysByType.js +3 -3
- package/browser/common/PickKeysByType.js.map +1 -1
- package/browser/common/PrimitiveCriteria.js +3 -3
- package/browser/common/PrimitiveCriteria.js.map +1 -1
- package/browser/common/RelationType.d.ts +5 -5
- package/browser/common/RelationType.js +3 -3
- package/browser/common/RelationType.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +10 -7
- package/browser/connection/ConnectionMetadataBuilder.js +32 -27
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +3 -11
- package/browser/connection/ConnectionOptionsReader.js +43 -71
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.d.ts +13 -20
- package/browser/data-source/BaseDataSourceOptions.js +3 -3
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/data-source/DataSource.d.ts +50 -61
- package/browser/data-source/DataSource.js +107 -114
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/data-source/DataSourceOptions.d.ts +18 -19
- package/browser/data-source/DataSourceOptions.js +3 -3
- package/browser/data-source/DataSourceOptions.js.map +1 -1
- package/browser/data-source/index.d.ts +1 -1
- package/browser/data-source/index.js +5 -4
- package/browser/data-source/index.js.map +1 -1
- package/browser/decorator/Check.d.ts +3 -0
- package/browser/decorator/Check.js +11 -7
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/Exclusion.d.ts +8 -2
- package/browser/decorator/Exclusion.js +17 -9
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/ForeignKey.d.ts +11 -2
- package/browser/decorator/ForeignKey.js +14 -8
- package/browser/decorator/ForeignKey.js.map +1 -1
- package/browser/decorator/Generated.d.ts +1 -0
- package/browser/decorator/Generated.js +8 -5
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.d.ts +17 -1
- package/browser/decorator/Index.js +14 -8
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.d.ts +11 -1
- package/browser/decorator/Unique.js +13 -8
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +31 -10
- package/browser/decorator/columns/Column.js +14 -10
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.d.ts +2 -1
- package/browser/decorator/columns/CreateDateColumn.js +8 -5
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.d.ts +2 -1
- package/browser/decorator/columns/DeleteDateColumn.js +8 -5
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -1
- package/browser/decorator/columns/ObjectIdColumn.js +8 -5
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +5 -2
- package/browser/decorator/columns/PrimaryColumn.js +14 -10
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +10 -3
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +13 -9
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -1
- package/browser/decorator/columns/UpdateDateColumn.js +8 -5
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.d.ts +2 -1
- package/browser/decorator/columns/VersionColumn.js +8 -5
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.d.ts +2 -1
- package/browser/decorator/columns/ViewColumn.js +8 -5
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/columns/VirtualColumn.d.ts +5 -2
- package/browser/decorator/columns/VirtualColumn.js +11 -7
- package/browser/decorator/columns/VirtualColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.d.ts +1 -0
- package/browser/decorator/entity/ChildEntity.js +9 -6
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.d.ts +4 -1
- package/browser/decorator/entity/Entity.js +11 -7
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.d.ts +4 -1
- package/browser/decorator/entity/TableInheritance.js +10 -5
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.d.ts +4 -1
- package/browser/decorator/entity-view/ViewEntity.js +11 -7
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/listeners/AfterInsert.js +9 -7
- package/browser/decorator/listeners/AfterInsert.js.map +1 -1
- package/browser/decorator/listeners/AfterLoad.js +9 -7
- package/browser/decorator/listeners/AfterLoad.js.map +1 -1
- package/browser/decorator/listeners/AfterRecover.js +9 -7
- package/browser/decorator/listeners/AfterRecover.js.map +1 -1
- package/browser/decorator/listeners/AfterRemove.js +9 -7
- package/browser/decorator/listeners/AfterRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterSoftRemove.js +9 -7
- package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterUpdate.js +9 -7
- package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
- package/browser/decorator/listeners/BeforeInsert.js +9 -7
- package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
- package/browser/decorator/listeners/BeforeRecover.js +9 -7
- package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
- package/browser/decorator/listeners/BeforeRemove.js +9 -7
- package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeSoftRemove.js +9 -7
- package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeUpdate.js +9 -7
- package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/browser/decorator/listeners/EventSubscriber.js +7 -5
- package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
- package/browser/decorator/options/ColumnCommonOptions.d.ts +2 -2
- package/browser/decorator/options/ColumnCommonOptions.js +3 -3
- package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.js +3 -3
- package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js +3 -3
- package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js +3 -3
- package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.d.ts +0 -16
- package/browser/decorator/options/ColumnNumericOptions.js +3 -3
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +8 -33
- package/browser/decorator/options/ColumnOptions.js +3 -3
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnUnsignedOptions.d.ts +1 -20
- package/browser/decorator/options/ColumnUnsignedOptions.js +3 -3
- package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js +3 -3
- package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.d.ts +1 -1
- package/browser/decorator/options/EntityOptions.js +3 -3
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/ExclusionOptions.d.ts +10 -0
- package/{connection/ConnectionOptions.js → browser/decorator/options/ExclusionOptions.js} +1 -2
- package/browser/decorator/options/ExclusionOptions.js.map +1 -0
- package/browser/decorator/options/ForeignKeyOptions.d.ts +3 -3
- package/browser/decorator/options/ForeignKeyOptions.js +3 -3
- package/browser/decorator/options/ForeignKeyOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.d.ts +7 -0
- package/browser/decorator/options/IndexOptions.js +3 -3
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/decorator/options/JoinColumnOptions.js +3 -3
- package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +3 -3
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.d.ts +1 -1
- package/browser/decorator/options/JoinTableOptions.js +3 -3
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -3
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -9
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +3 -3
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +3 -3
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +3 -3
- package/browser/decorator/options/RelationOptions.js +3 -3
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/SpatialColumnOptions.d.ts +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js +3 -3
- package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/browser/decorator/options/TransactionOptions.d.ts +1 -1
- package/browser/decorator/options/TransactionOptions.js +3 -3
- package/browser/decorator/options/TransactionOptions.js.map +1 -1
- package/browser/decorator/options/UniqueOptions.d.ts +1 -1
- package/browser/decorator/options/UniqueOptions.js +3 -3
- package/browser/decorator/options/UniqueOptions.js.map +1 -1
- package/browser/decorator/options/ValueTransformer.js +3 -3
- package/browser/decorator/options/ValueTransformer.js.map +1 -1
- package/browser/decorator/options/ViewColumnOptions.d.ts +1 -1
- package/browser/decorator/options/ViewColumnOptions.js +3 -3
- package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
- package/browser/decorator/options/ViewEntityOptions.d.ts +3 -2
- package/browser/decorator/options/ViewEntityOptions.js +3 -3
- package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
- package/browser/decorator/options/VirtualColumnOptions.d.ts +3 -3
- package/browser/decorator/options/VirtualColumnOptions.js +3 -3
- package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.d.ts +3 -1
- package/browser/decorator/relations/JoinColumn.js +8 -5
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.d.ts +4 -2
- package/browser/decorator/relations/JoinTable.js +8 -5
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.d.ts +7 -2
- package/browser/decorator/relations/ManyToMany.js +12 -7
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +7 -2
- package/browser/decorator/relations/ManyToOne.js +12 -7
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +5 -2
- package/browser/decorator/relations/OneToMany.js +10 -5
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.d.ts +7 -2
- package/browser/decorator/relations/OneToOne.js +12 -7
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationId.d.ts +4 -2
- package/browser/decorator/relations/RelationId.js +10 -6
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +6 -4
- package/browser/decorator/tree/Tree.js +11 -7
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +2 -0
- package/browser/decorator/tree/TreeChildren.js +9 -5
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeLevelColumn.js +7 -5
- package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +3 -1
- package/browser/decorator/tree/TreeParent.js +9 -5
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.d.ts +32 -21
- package/browser/driver/Driver.js +3 -3
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.d.ts +5 -3
- package/browser/driver/DriverFactory.js +61 -60
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +13 -11
- package/browser/driver/DriverUtils.js +28 -30
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/Query.js +6 -3
- package/browser/driver/Query.js.map +1 -1
- package/browser/driver/SqlInMemory.d.ts +1 -1
- package/browser/driver/SqlInMemory.js +6 -3
- package/browser/driver/SqlInMemory.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +0 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -3
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/{driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts → browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts} +4 -5
- package/{driver/cockroachdb/CockroachConnectionOptions.js → browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js} +1 -2
- package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +66 -28
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +113 -97
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +168 -32
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +404 -290
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/{driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts → browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.d.ts} +2 -2
- package/browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js +3 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +15 -13
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +30 -20
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +11 -9
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +23 -14
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/{driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts → browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts} +5 -3
- package/{driver/aurora-mysql/AuroraMysqlConnectionOptions.js → browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js} +1 -2
- package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +13 -12
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +35 -27
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +4 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +35 -24
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/browser/driver/capacitor/{CapacitorConnectionOptions.d.ts → CapacitorDataSourceOptions.d.ts} +2 -2
- package/{driver/cordova/CordovaConnectionOptions.js → browser/driver/capacitor/CapacitorDataSourceOptions.js} +1 -2
- package/browser/driver/capacitor/CapacitorDataSourceOptions.js.map +1 -0
- package/browser/driver/capacitor/CapacitorDriver.d.ts +7 -6
- package/browser/driver/capacitor/CapacitorDriver.js +14 -10
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +6 -2
- package/browser/driver/capacitor/CapacitorQueryRunner.js +23 -16
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +3 -3
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/{driver/cockroachdb/CockroachConnectionOptions.d.ts → browser/driver/cockroachdb/CockroachDataSourceOptions.d.ts} +4 -4
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.js +3 -0
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -0
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +79 -27
- package/browser/driver/cockroachdb/CockroachDriver.js +168 -88
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +203 -31
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +582 -368
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/{CordovaConnectionOptions.d.ts → CordovaDataSourceOptions.d.ts} +2 -2
- package/{driver/mongodb/MongoConnectionOptions.js → browser/driver/cordova/CordovaDataSourceOptions.js} +1 -2
- package/browser/driver/cordova/CordovaDataSourceOptions.js.map +1 -0
- package/browser/driver/cordova/CordovaDriver.d.ts +7 -6
- package/browser/driver/cordova/CordovaDriver.js +14 -12
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.d.ts +7 -35
- package/browser/driver/cordova/CordovaQueryRunner.js +31 -55
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/{ExpoConnectionOptions.d.ts → ExpoDataSourceOptions.d.ts} +2 -2
- package/{driver/sap/SapConnectionOptions.js → browser/driver/expo/ExpoDataSourceOptions.js} +1 -2
- package/browser/driver/expo/ExpoDataSourceOptions.js.map +1 -0
- package/browser/driver/expo/ExpoDriver.d.ts +6 -5
- package/browser/driver/expo/ExpoDriver.js +18 -8
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.d.ts +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +21 -18
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/{driver/mongodb/MongoConnectionOptions.d.ts → browser/driver/mongodb/MongoDataSourceOptions.d.ts} +7 -69
- package/{driver/expo/ExpoConnectionOptions.js → browser/driver/mongodb/MongoDataSourceOptions.js} +1 -2
- package/browser/driver/mongodb/MongoDataSourceOptions.js.map +1 -0
- package/browser/driver/mongodb/MongoDriver.d.ts +51 -23
- package/browser/driver/mongodb/MongoDriver.js +70 -58
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +239 -83
- package/browser/driver/mongodb/MongoQueryRunner.js +303 -133
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/bson.typings.d.ts +604 -97
- package/browser/driver/mongodb/bson.typings.js +4 -3
- package/browser/driver/mongodb/bson.typings.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +3577 -1025
- package/browser/driver/mongodb/typings.js +24 -24
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +0 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +3 -3
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/{driver/mysql/MysqlConnectionOptions.d.ts → browser/driver/mysql/MysqlDataSourceOptions.d.ts} +6 -13
- package/browser/driver/mysql/MysqlDataSourceOptions.js +3 -0
- package/browser/driver/mysql/MysqlDataSourceOptions.js.map +1 -0
- package/browser/driver/mysql/MysqlDriver.d.ts +69 -37
- package/browser/driver/mysql/MysqlDriver.js +141 -251
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +167 -33
- package/browser/driver/mysql/MysqlQueryRunner.js +448 -325
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/{driver/nativescript/NativescriptConnectionOptions.d.ts → browser/driver/nativescript/NativescriptDataSourceOptions.d.ts} +2 -2
- package/browser/driver/nativescript/NativescriptDataSourceOptions.js +3 -0
- package/browser/driver/nativescript/NativescriptDataSourceOptions.js.map +1 -0
- package/browser/driver/nativescript/NativescriptDriver.d.ts +9 -8
- package/browser/driver/nativescript/NativescriptDriver.js +16 -13
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +7 -2
- package/browser/driver/nativescript/NativescriptQueryRunner.js +22 -14
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +3 -3
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/{driver/oracle/OracleConnectionOptions.d.ts → browser/driver/oracle/OracleDataSourceOptions.d.ts} +3 -3
- package/{connection/BaseConnectionOptions.js → browser/driver/oracle/OracleDataSourceOptions.js} +1 -2
- package/browser/driver/oracle/OracleDataSourceOptions.js.map +1 -0
- package/browser/driver/oracle/OracleDriver.d.ts +65 -28
- package/browser/driver/oracle/OracleDriver.js +96 -55
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +176 -29
- package/browser/driver/oracle/OracleQueryRunner.js +442 -267
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +3 -3
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/{driver/postgres/PostgresConnectionOptions.d.ts → browser/driver/postgres/PostgresDataSourceOptions.d.ts} +8 -5
- package/browser/driver/postgres/PostgresDataSourceOptions.js +3 -0
- package/browser/driver/postgres/PostgresDataSourceOptions.js.map +1 -0
- package/browser/driver/postgres/PostgresDriver.d.ts +85 -28
- package/browser/driver/postgres/PostgresDriver.js +244 -80
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +225 -34
- package/browser/driver/postgres/PostgresQueryRunner.js +729 -447
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/{driver/react-native/ReactNativeConnectionOptions.d.ts → browser/driver/react-native/ReactNativeDataSourceOptions.d.ts} +6 -2
- package/{driver/capacitor/CapacitorConnectionOptions.js → browser/driver/react-native/ReactNativeDataSourceOptions.js} +1 -2
- package/browser/driver/react-native/ReactNativeDataSourceOptions.js.map +1 -0
- package/browser/driver/react-native/ReactNativeDriver.d.ts +64 -24
- package/browser/driver/react-native/ReactNativeDriver.js +92 -50
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +7 -2
- package/browser/driver/react-native/ReactNativeQueryRunner.js +26 -18
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -3
- package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sap/{SapConnectionOptions.d.ts → SapDataSourceOptions.d.ts} +10 -37
- package/browser/driver/sap/SapDataSourceOptions.js +3 -0
- package/browser/driver/sap/SapDataSourceOptions.js.map +1 -0
- package/browser/driver/sap/SapDriver.d.ts +54 -17
- package/browser/driver/sap/SapDriver.js +97 -70
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +179 -31
- package/browser/driver/sap/SapQueryRunner.js +488 -286
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -3
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
- package/{driver/spanner/SpannerConnectionOptions.d.ts → browser/driver/spanner/SpannerDataSourceOptions.d.ts} +4 -4
- package/browser/driver/spanner/SpannerDataSourceOptions.js +3 -0
- package/browser/driver/spanner/SpannerDataSourceOptions.js.map +1 -0
- package/browser/driver/spanner/SpannerDriver.d.ts +61 -23
- package/browser/driver/spanner/SpannerDriver.js +82 -42
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +170 -28
- package/browser/driver/spanner/SpannerQueryRunner.js +373 -201
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +74 -23
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +162 -53
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +164 -30
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +357 -193
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/{driver/sqljs/SqljsConnectionOptions.d.ts → browser/driver/sqljs/SqljsDataSourceOptions.d.ts} +2 -2
- package/browser/driver/sqljs/SqljsDataSourceOptions.js +3 -0
- package/browser/driver/sqljs/SqljsDataSourceOptions.js.map +1 -0
- package/browser/driver/sqljs/SqljsDriver.d.ts +15 -8
- package/browser/driver/sqljs/SqljsDriver.js +44 -34
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.d.ts +4 -1
- package/browser/driver/sqljs/SqljsQueryRunner.js +24 -18
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +0 -1
- package/browser/driver/sqlserver/MssqlParameter.js +6 -4
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -15
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +3 -3
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sqlserver/{SqlServerConnectionOptions.d.ts → SqlServerDataSourceOptions.d.ts} +4 -4
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.js +3 -0
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -0
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +70 -28
- package/browser/driver/sqlserver/SqlServerDriver.js +115 -79
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +190 -30
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +576 -350
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -3
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -3
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +1 -1
- package/browser/driver/types/ColumnTypes.js +3 -3
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/CteCapabilities.js +3 -3
- package/browser/driver/types/CteCapabilities.js.map +1 -1
- package/browser/driver/types/DataTypeDefaults.d.ts +0 -1
- package/browser/driver/types/DataTypeDefaults.js +3 -3
- package/browser/driver/types/DataTypeDefaults.js.map +1 -1
- package/browser/driver/types/DatabaseType.d.ts +1 -1
- package/browser/driver/types/DatabaseType.js +3 -3
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/driver/types/GeoJsonTypes.js +3 -3
- package/browser/driver/types/GeoJsonTypes.js.map +1 -1
- package/browser/driver/types/IsolationLevel.js +3 -3
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/types/MappedColumnTypes.d.ts +1 -1
- package/browser/driver/types/MappedColumnTypes.js +3 -3
- package/browser/driver/types/MappedColumnTypes.js.map +1 -1
- package/browser/driver/types/MetadataTableType.js +6 -4
- package/browser/driver/types/MetadataTableType.js.map +1 -1
- package/browser/driver/types/ReplicationMode.js +3 -3
- package/browser/driver/types/ReplicationMode.js.map +1 -1
- package/browser/driver/types/ReturningType.d.ts +1 -0
- package/{find-options/JoinOptions.js → browser/driver/types/ReturningType.js} +1 -2
- package/browser/driver/types/ReturningType.js.map +1 -0
- package/browser/driver/types/UpsertType.js +3 -3
- package/browser/driver/types/UpsertType.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +111 -57
- package/browser/entity-manager/EntityManager.js +245 -203
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.d.ts +6 -3
- package/browser/entity-manager/EntityManagerFactory.js +18 -12
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +156 -30
- package/browser/entity-manager/MongoEntityManager.js +289 -112
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.d.ts +5 -3
- package/browser/entity-manager/SqljsEntityManager.js +12 -7
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchema.d.ts +1 -1
- package/browser/entity-schema/EntitySchema.js +6 -3
- package/browser/entity-schema/EntitySchema.js.map +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +2 -2
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +6 -26
- package/browser/entity-schema/EntitySchemaColumnOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +6 -3
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedError.js +7 -4
- package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/browser/entity-schema/EntitySchemaExclusionOptions.d.ts +5 -0
- package/browser/entity-schema/EntitySchemaExclusionOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +2 -2
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaInheritanceOptions.d.ts +1 -1
- package/browser/entity-schema/EntitySchemaInheritanceOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +16 -14
- package/browser/entity-schema/EntitySchemaOptions.js +6 -3
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
- package/browser/entity-schema/EntitySchemaRelationIdOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
- package/browser/entity-schema/EntitySchemaRelationOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.d.ts +2 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +12 -10
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.js +3 -3
- package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.js +7 -4
- package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -4
- package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.d.ts +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.js +9 -6
- package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/browser/error/CannotCreateEntityIdMapError.d.ts +1 -1
- package/browser/error/CannotCreateEntityIdMapError.js +7 -4
- package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/browser/error/CannotDetermineEntityError.js +7 -4
- package/browser/error/CannotDetermineEntityError.js.map +1 -1
- package/browser/error/CannotExecuteNotConnectedError.d.ts +1 -1
- package/browser/error/CannotExecuteNotConnectedError.js +9 -6
- package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.js +7 -4
- package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.js +7 -4
- package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/browser/error/CircularRelationsError.js +7 -4
- package/browser/error/CircularRelationsError.js.map +1 -1
- package/browser/error/ColumnTypeUndefinedError.js +7 -4
- package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
- package/browser/error/ConnectionIsNotSetError.js +7 -4
- package/browser/error/ConnectionIsNotSetError.js.map +1 -1
- package/browser/error/ConnectionNotFoundError.js +7 -4
- package/browser/error/ConnectionNotFoundError.js.map +1 -1
- package/browser/error/DataTypeNotSupportedError.d.ts +3 -3
- package/browser/error/DataTypeNotSupportedError.js +7 -4
- package/browser/error/DataTypeNotSupportedError.js.map +1 -1
- package/browser/error/DriverOptionNotSetError.js +7 -4
- package/browser/error/DriverOptionNotSetError.js.map +1 -1
- package/browser/error/DriverPackageNotInstalledError.js +7 -4
- package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
- package/browser/error/EntityMetadataNotFoundError.d.ts +1 -1
- package/browser/error/EntityMetadataNotFoundError.js +11 -8
- package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
- package/browser/error/EntityNotFoundError.d.ts +1 -1
- package/browser/error/EntityNotFoundError.js +11 -8
- package/browser/error/EntityNotFoundError.js.map +1 -1
- package/browser/error/EntityPropertyNotFoundError.d.ts +1 -1
- package/browser/error/EntityPropertyNotFoundError.js +7 -4
- package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
- package/browser/error/FindRelationsNotFoundError.js +7 -4
- package/browser/error/FindRelationsNotFoundError.js.map +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.js +7 -4
- package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
- package/browser/error/InitializedRelationError.d.ts +1 -2
- package/browser/error/InitializedRelationError.js +7 -5
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/error/InsertValuesMissingError.js +7 -4
- package/browser/error/InsertValuesMissingError.js.map +1 -1
- package/browser/error/LimitOnUpdateNotSupportedError.js +7 -4
- package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/browser/error/LockNotSupportedOnGivenDriverError.js +7 -4
- package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/browser/error/MetadataAlreadyExistsError.js +7 -4
- package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +7 -4
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/browser/error/MissingDeleteDateColumnError.d.ts +1 -1
- package/browser/error/MissingDeleteDateColumnError.js +7 -4
- package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
- package/browser/error/MissingDriverError.js +7 -4
- package/browser/error/MissingDriverError.js.map +1 -1
- package/browser/error/MissingJoinColumnError.d.ts +2 -2
- package/browser/error/MissingJoinColumnError.js +7 -4
- package/browser/error/MissingJoinColumnError.js.map +1 -1
- package/browser/error/MissingJoinTableError.d.ts +2 -2
- package/browser/error/MissingJoinTableError.js +7 -4
- package/browser/error/MissingJoinTableError.js.map +1 -1
- package/browser/error/MissingPrimaryColumnError.d.ts +1 -1
- package/browser/error/MissingPrimaryColumnError.js +7 -4
- package/browser/error/MissingPrimaryColumnError.js.map +1 -1
- package/browser/error/MustBeEntityError.js +7 -4
- package/browser/error/MustBeEntityError.js.map +1 -1
- package/browser/error/NestedSetMultipleRootError.js +7 -4
- package/browser/error/NestedSetMultipleRootError.js.map +1 -1
- package/browser/error/NoConnectionForRepositoryError.d.ts +1 -1
- package/browser/error/NoConnectionForRepositoryError.js +10 -7
- package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
- package/browser/error/NoConnectionOptionError.js +7 -4
- package/browser/error/NoConnectionOptionError.js.map +1 -1
- package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -4
- package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.js +7 -4
- package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/browser/error/OffsetWithoutLimitNotSupportedError.js +7 -4
- package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/browser/error/OptimisticLockCanNotBeUsedError.js +7 -4
- package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.js +7 -4
- package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/browser/error/PersistedEntityNotFoundError.js +7 -4
- package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
- package/browser/error/PessimisticLockTransactionRequiredError.js +7 -4
- package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.js +7 -4
- package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/browser/error/QueryFailedError.js +9 -6
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/error/QueryRunnerAlreadyReleasedError.js +7 -4
- package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +7 -4
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/browser/error/RepositoryNotTreeError.d.ts +1 -1
- package/browser/error/RepositoryNotTreeError.js +11 -8
- package/browser/error/RepositoryNotTreeError.js.map +1 -1
- package/browser/error/ReturningStatementNotSupportedError.js +7 -4
- package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.js +7 -4
- package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/browser/error/SubjectWithoutIdentifierError.d.ts +1 -1
- package/browser/error/SubjectWithoutIdentifierError.js +7 -4
- package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/browser/error/TransactionAlreadyStartedError.js +7 -4
- package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
- package/browser/error/TransactionNotStartedError.js +7 -4
- package/browser/error/TransactionNotStartedError.js.map +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.d.ts +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.js +7 -4
- package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/browser/error/TypeORMError.js +6 -3
- package/browser/error/TypeORMError.js.map +1 -1
- package/browser/error/UpdateValuesMissingError.js +7 -4
- package/browser/error/UpdateValuesMissingError.js.map +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
- package/browser/error/UsingJoinColumnIsNotAllowedError.js +7 -4
- package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -4
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
- package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -4
- package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -4
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/index.d.ts +0 -3
- package/browser/error/index.js +62 -63
- package/browser/error/index.js.map +1 -1
- package/browser/find-options/EqualOperator.js +7 -4
- package/browser/find-options/EqualOperator.js.map +1 -1
- package/browser/find-options/FindManyOptions.d.ts +1 -1
- package/browser/find-options/FindManyOptions.js +3 -3
- package/browser/find-options/FindManyOptions.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +7 -14
- package/browser/find-options/FindOneOptions.js +3 -3
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.d.ts +3 -3
- package/browser/find-options/FindOperator.js +16 -13
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.js +3 -3
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsOrder.d.ts +2 -2
- package/browser/find-options/FindOptionsOrder.js +3 -3
- package/browser/find-options/FindOptionsOrder.js.map +1 -1
- package/browser/find-options/FindOptionsRelations.d.ts +2 -9
- package/browser/find-options/FindOptionsRelations.js +3 -3
- package/browser/find-options/FindOptionsRelations.js.map +1 -1
- package/browser/find-options/FindOptionsSelect.d.ts +2 -9
- package/browser/find-options/FindOptionsSelect.js +3 -3
- package/browser/find-options/FindOptionsSelect.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +46 -11
- package/browser/find-options/FindOptionsUtils.js +114 -28
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.d.ts +4 -4
- package/browser/find-options/FindOptionsWhere.js +3 -3
- package/browser/find-options/FindOptionsWhere.js.map +1 -1
- package/browser/find-options/FindTreeOptions.js +3 -3
- package/browser/find-options/FindTreeOptions.js.map +1 -1
- package/browser/find-options/OrderByCondition.d.ts +0 -2
- package/browser/find-options/OrderByCondition.js +3 -3
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
- package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -3
- package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
- package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -3
- package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
- package/browser/find-options/operator/And.d.ts +4 -0
- package/browser/find-options/operator/And.js +11 -5
- package/browser/find-options/operator/And.js.map +1 -1
- package/browser/find-options/operator/Any.d.ts +1 -0
- package/browser/find-options/operator/Any.js +8 -5
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/ArrayContainedBy.d.ts +1 -0
- package/browser/find-options/operator/ArrayContainedBy.js +8 -5
- package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/browser/find-options/operator/ArrayContains.d.ts +1 -0
- package/browser/find-options/operator/ArrayContains.js +8 -5
- package/browser/find-options/operator/ArrayContains.js.map +1 -1
- package/browser/find-options/operator/ArrayOverlap.d.ts +1 -0
- package/browser/find-options/operator/ArrayOverlap.js +8 -5
- package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
- package/browser/find-options/operator/Between.d.ts +2 -0
- package/browser/find-options/operator/Between.js +9 -5
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.d.ts +2 -1
- package/browser/find-options/operator/Equal.js +8 -5
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +1 -0
- package/browser/find-options/operator/ILike.js +8 -5
- package/browser/find-options/operator/ILike.js.map +1 -1
- package/browser/find-options/operator/In.d.ts +1 -0
- package/browser/find-options/operator/In.js +8 -5
- package/browser/find-options/operator/In.js.map +1 -1
- package/browser/find-options/operator/IsNull.js +7 -5
- package/browser/find-options/operator/IsNull.js.map +1 -1
- package/browser/find-options/operator/JsonContains.d.ts +1 -0
- package/browser/find-options/operator/JsonContains.js +8 -5
- package/browser/find-options/operator/JsonContains.js.map +1 -1
- package/browser/find-options/operator/LessThan.d.ts +1 -0
- package/browser/find-options/operator/LessThan.js +8 -5
- package/browser/find-options/operator/LessThan.js.map +1 -1
- package/browser/find-options/operator/LessThanOrEqual.d.ts +1 -0
- package/browser/find-options/operator/LessThanOrEqual.js +8 -5
- package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +1 -0
- package/browser/find-options/operator/Like.js +8 -5
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/find-options/operator/MoreThan.d.ts +1 -0
- package/browser/find-options/operator/MoreThan.js +8 -5
- package/browser/find-options/operator/MoreThan.js.map +1 -1
- package/browser/find-options/operator/MoreThanOrEqual.d.ts +1 -0
- package/browser/find-options/operator/MoreThanOrEqual.js +8 -5
- package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Not.d.ts +1 -0
- package/browser/find-options/operator/Not.js +8 -5
- package/browser/find-options/operator/Not.js.map +1 -1
- package/browser/find-options/operator/Or.d.ts +4 -0
- package/browser/find-options/operator/Or.js +11 -5
- package/browser/find-options/operator/Or.js.map +1 -1
- package/browser/find-options/operator/Raw.d.ts +5 -1
- package/browser/find-options/operator/Raw.js +8 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.d.ts +2 -114
- package/browser/globals.js +17 -163
- package/browser/globals.js.map +1 -1
- package/browser/index.d.ts +62 -69
- package/browser/index.js +141 -161
- package/browser/index.js.map +1 -1
- package/browser/logger/AbstractLogger.d.ts +26 -3
- package/browser/logger/AbstractLogger.js +32 -6
- package/browser/logger/AbstractLogger.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +5 -2
- package/browser/logger/AdvancedConsoleLogger.js +18 -12
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.d.ts +6 -2
- package/browser/logger/DebugLogger.js +21 -14
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.d.ts +7 -3
- package/browser/logger/FileLogger.js +17 -9
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/FormattedConsoleLogger.d.ts +5 -2
- package/browser/logger/FormattedConsoleLogger.js +18 -12
- package/browser/logger/FormattedConsoleLogger.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js +3 -3
- package/browser/logger/Logger.js.map +1 -1
- package/browser/logger/LoggerFactory.d.ts +4 -2
- package/browser/logger/LoggerFactory.js +21 -16
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.d.ts +1 -1
- package/browser/logger/LoggerOptions.js +3 -3
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.d.ts +5 -2
- package/browser/logger/SimpleConsoleLogger.js +10 -4
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.d.ts +4 -3
- package/browser/metadata/CheckMetadata.js +7 -3
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +24 -23
- package/browser/metadata/ColumnMetadata.js +85 -74
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.d.ts +14 -22
- package/browser/metadata/EmbeddedMetadata.js +11 -18
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.d.ts +9 -5
- package/browser/metadata/EntityListenerMetadata.js +10 -3
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +60 -35
- package/browser/metadata/EntityMetadata.js +71 -57
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.d.ts +9 -3
- package/browser/metadata/ExclusionMetadata.js +8 -3
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.d.ts +7 -6
- package/browser/metadata/ForeignKeyMetadata.js +7 -3
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +13 -5
- package/browser/metadata/IndexMetadata.js +27 -10
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.d.ts +6 -5
- package/browser/metadata/RelationIdMetadata.js +9 -5
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +27 -16
- package/browser/metadata/RelationMetadata.js +29 -15
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.d.ts +7 -6
- package/browser/metadata/UniqueMetadata.js +19 -9
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata/types/ClosureTreeOptions.d.ts +1 -1
- package/browser/metadata/types/ClosureTreeOptions.js +3 -3
- package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
- package/browser/metadata/types/DeferrableType.js +3 -3
- package/browser/metadata/types/DeferrableType.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.js +17 -14
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata/types/OnDeleteType.js +3 -3
- package/browser/metadata/types/OnDeleteType.js.map +1 -1
- package/browser/metadata/types/OnUpdateType.js +3 -3
- package/browser/metadata/types/OnUpdateType.js.map +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js +3 -3
- package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypeInFunction.d.ts +1 -1
- package/browser/metadata/types/RelationTypeInFunction.js +3 -3
- package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypes.js +3 -3
- package/browser/metadata/types/RelationTypes.js.map +1 -1
- package/browser/metadata/types/TableTypes.js +3 -3
- package/browser/metadata/types/TableTypes.js.map +1 -1
- package/browser/metadata/types/TreeTypes.js +3 -3
- package/browser/metadata/types/TreeTypes.js.map +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js +3 -3
- package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/ColumnMetadataArgs.js +3 -3
- package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +3 -3
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.js +3 -3
- package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js +3 -3
- package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js +3 -3
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.d.ts +5 -0
- package/browser/metadata-args/ExclusionMetadataArgs.js +3 -3
- package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +5 -5
- package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -3
- package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js +3 -3
- package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -0
- package/browser/metadata-args/IndexMetadataArgs.js +3 -3
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js +3 -3
- package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js +3 -3
- package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js +3 -3
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.d.ts +29 -27
- package/browser/metadata-args/MetadataArgsStorage.js +16 -10
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js +3 -3
- package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js +3 -3
- package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationMetadataArgs.d.ts +4 -4
- package/browser/metadata-args/RelationMetadataArgs.js +3 -3
- package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TableMetadataArgs.d.ts +5 -4
- package/browser/metadata-args/TableMetadataArgs.js +3 -3
- package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js +3 -3
- package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +3 -3
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TreeMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/TreeMetadataArgs.js +3 -3
- package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.js +3 -3
- package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/types/ColumnMode.js +3 -3
- package/browser/metadata-args/types/ColumnMode.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +4 -3
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +27 -28
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +16 -6
- package/browser/metadata-builder/EntityMetadataBuilder.js +119 -126
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.d.ts +9 -2
- package/browser/metadata-builder/EntityMetadataValidator.js +42 -37
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +11 -5
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +53 -52
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.d.ts +5 -0
- package/browser/metadata-builder/MetadataUtils.js +11 -3
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +24 -12
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +46 -34
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/Migration.d.ts +1 -1
- package/browser/migration/Migration.js +6 -3
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +16 -9
- package/browser/migration/MigrationExecutor.js +95 -79
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.d.ts +1 -1
- package/browser/migration/MigrationInterface.js +3 -3
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +5 -5
- package/browser/naming-strategy/DefaultNamingStrategy.js +24 -21
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/LegacyOracleNamingStrategy.d.ts +1 -1
- package/browser/naming-strategy/LegacyOracleNamingStrategy.js +12 -9
- package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +3 -5
- package/browser/naming-strategy/NamingStrategyInterface.js +3 -3
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.d.ts +7 -7
- package/browser/persistence/EntityPersistExecutor.js +32 -29
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.d.ts +5 -5
- package/browser/persistence/Subject.js +13 -9
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangeMap.d.ts +3 -3
- package/browser/persistence/SubjectChangeMap.js +3 -3
- package/browser/persistence/SubjectChangeMap.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.d.ts +5 -1
- package/browser/persistence/SubjectChangedColumnsComputer.js +48 -36
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +3 -2
- package/browser/persistence/SubjectDatabaseEntityLoader.js +15 -8
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +7 -4
- package/browser/persistence/SubjectExecutor.js +63 -49
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopologicalSorter.d.ts +6 -2
- package/browser/persistence/SubjectTopologicalSorter.js +23 -6
- package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +5 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +14 -7
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +16 -6
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +29 -16
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +14 -7
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +26 -16
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +14 -7
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +24 -14
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +6 -2
- package/browser/persistence/tree/ClosureSubjectExecutor.js +24 -17
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +4 -2
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +17 -11
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +10 -4
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +25 -16
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +0 -11
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js +10 -22
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
- package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +0 -4
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js +5 -9
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
- package/browser/platform/BrowserDisabledDriversDummy.d.ts +0 -6
- package/browser/platform/BrowserDisabledDriversDummy.js +30 -21
- package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
- package/browser/platform/BrowserFileLoggerDummy.js +8 -4
- package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
- package/browser/platform/BrowserPlatformTools.d.ts +7 -5
- package/browser/platform/BrowserPlatformTools.js +16 -33
- package/browser/platform/BrowserPlatformTools.js.map +1 -1
- package/browser/platform/PlatformTools.d.ts +12 -11
- package/browser/platform/PlatformTools.js +62 -65
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.d.ts +1 -1
- package/browser/query-builder/Alias.js +10 -7
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.d.ts +2 -1
- package/browser/query-builder/Brackets.js +7 -3
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +17 -6
- package/browser/query-builder/DeleteQueryBuilder.js +29 -13
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -3
- package/browser/query-builder/InsertOrUpdateOptions.js +3 -3
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +34 -29
- package/browser/query-builder/InsertQueryBuilder.js +320 -187
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.d.ts +7 -7
- package/browser/query-builder/JoinAttribute.js +25 -33
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/JoinOptions.js +3 -3
- package/browser/query-builder/JoinOptions.js.map +1 -1
- package/browser/query-builder/NotBrackets.js +7 -4
- package/browser/query-builder/NotBrackets.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +51 -33
- package/browser/query-builder/QueryBuilder.js +120 -127
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderCte.js +3 -3
- package/browser/query-builder/QueryBuilderCte.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/browser/query-builder/QueryBuilderUtils.js +7 -3
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +29 -30
- package/browser/query-builder/QueryExpressionMap.js +36 -39
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
- package/browser/query-builder/QueryPartialEntity.js +3 -3
- package/browser/query-builder/QueryPartialEntity.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.d.ts +39 -11
- package/browser/query-builder/RelationIdLoader.js +106 -65
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.d.ts +49 -14
- package/browser/query-builder/RelationLoader.js +86 -28
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.d.ts +7 -11
- package/browser/query-builder/RelationQueryBuilder.js +33 -34
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.d.ts +3 -2
- package/browser/query-builder/RelationRemover.js +12 -8
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.d.ts +3 -2
- package/browser/query-builder/RelationUpdater.js +17 -13
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningOption.d.ts +4 -0
- package/browser/query-builder/ReturningOption.js +3 -0
- package/browser/query-builder/ReturningOption.js.map +1 -0
- package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +10 -6
- package/browser/query-builder/ReturningResultsEntityUpdator.js +21 -14
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQuery.js +3 -3
- package/browser/query-builder/SelectQuery.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +71 -33
- package/browser/query-builder/SelectQueryBuilder.js +418 -338
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js +3 -3
- package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +24 -7
- package/browser/query-builder/SoftDeleteQueryBuilder.js +61 -31
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.d.ts +23 -7
- package/browser/query-builder/UpdateQueryBuilder.js +75 -49
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.js +3 -3
- package/browser/query-builder/WhereClause.js.map +1 -1
- package/browser/query-builder/WhereExpressionBuilder.d.ts +2 -7
- package/browser/query-builder/WhereExpressionBuilder.js +3 -3
- package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/browser/query-builder/index.d.ts +3 -0
- package/browser/query-builder/index.js +21 -16
- package/browser/query-builder/index.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
- package/browser/query-builder/relation-id/RelationIdAttribute.js +17 -14
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js +3 -3
- package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.d.ts +6 -6
- package/browser/query-builder/relation-id/RelationIdLoader.js +22 -19
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +8 -5
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/result/DeleteResult.d.ts +1 -1
- package/browser/query-builder/result/DeleteResult.js +6 -3
- package/browser/query-builder/result/DeleteResult.js.map +1 -1
- package/browser/query-builder/result/InsertResult.d.ts +2 -2
- package/browser/query-builder/result/InsertResult.js +6 -3
- package/browser/query-builder/result/InsertResult.js.map +1 -1
- package/browser/query-builder/result/UpdateResult.d.ts +2 -2
- package/browser/query-builder/result/UpdateResult.js +6 -3
- package/browser/query-builder/result/UpdateResult.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +3 -3
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js +7 -74
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +22 -8
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +6 -2
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +13 -6
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +22 -11
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +57 -59
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +79 -16
- package/browser/query-runner/BaseQueryRunner.js +120 -54
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryLock.js +9 -4
- package/browser/query-runner/QueryLock.js.map +1 -1
- package/browser/query-runner/QueryResult.js +6 -3
- package/browser/query-runner/QueryResult.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +52 -56
- package/browser/query-runner/QueryRunner.js +3 -3
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +64 -44
- package/browser/repository/BaseEntity.js +61 -34
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/EntityId.d.ts +1 -1
- package/browser/repository/EntityId.js +3 -3
- package/browser/repository/EntityId.js.map +1 -1
- package/browser/repository/FindTreesOptions.js +3 -3
- package/browser/repository/FindTreesOptions.js.map +1 -1
- package/browser/repository/MongoRepository.d.ts +79 -29
- package/browser/repository/MongoRepository.js +80 -31
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/RemoveOptions.js +3 -3
- package/browser/repository/RemoveOptions.js.map +1 -1
- package/browser/repository/Repository.d.ts +75 -52
- package/browser/repository/Repository.js +76 -50
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/SaveOptions.js +3 -3
- package/browser/repository/SaveOptions.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +21 -4
- package/browser/repository/TreeRepository.js +48 -28
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpdateOptions.d.ts +11 -0
- package/browser/repository/UpdateOptions.js +3 -0
- package/browser/repository/UpdateOptions.js.map +1 -0
- package/browser/repository/UpsertOptions.d.ts +8 -2
- package/browser/repository/UpsertOptions.js +3 -3
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/MongoSchemaBuilder.d.ts +4 -4
- package/browser/schema-builder/MongoSchemaBuilder.js +12 -9
- package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +29 -9
- package/browser/schema-builder/RdbmsSchemaBuilder.js +202 -180
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/SchemaBuilder.d.ts +1 -1
- package/browser/schema-builder/SchemaBuilder.js +3 -3
- package/browser/schema-builder/SchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js +3 -3
- package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +0 -10
- package/browser/schema-builder/options/TableColumnOptions.js +3 -3
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.d.ts +5 -0
- package/browser/schema-builder/options/TableExclusionOptions.js +3 -3
- package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js +3 -3
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.d.ts +7 -0
- package/browser/schema-builder/options/TableIndexOptions.js +3 -3
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexTypes.d.ts +1 -0
- package/browser/schema-builder/options/TableIndexTypes.js +3 -0
- package/browser/schema-builder/options/TableIndexTypes.js.map +1 -0
- package/browser/schema-builder/options/TableOptions.d.ts +6 -6
- package/browser/schema-builder/options/TableOptions.js +3 -3
- package/browser/schema-builder/options/TableOptions.js.map +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.js +3 -3
- package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/browser/schema-builder/options/ViewOptions.d.ts +3 -2
- package/browser/schema-builder/options/ViewOptions.js +3 -3
- package/browser/schema-builder/options/ViewOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +23 -3
- package/browser/schema-builder/table/Table.js +44 -21
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/schema-builder/table/TableCheck.d.ts +3 -2
- package/browser/schema-builder/table/TableCheck.js +7 -3
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +1 -11
- package/browser/schema-builder/table/TableColumn.js +7 -13
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableExclusion.d.ts +8 -2
- package/browser/schema-builder/table/TableExclusion.js +10 -3
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.d.ts +5 -3
- package/browser/schema-builder/table/TableForeignKey.js +8 -3
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +10 -2
- package/browser/schema-builder/table/TableIndex.js +10 -3
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.d.ts +3 -2
- package/browser/schema-builder/table/TableUnique.js +7 -3
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/TableUtils.d.ts +3 -3
- package/browser/schema-builder/util/TableUtils.js +6 -5
- package/browser/schema-builder/util/TableUtils.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.d.ts +3 -1
- package/browser/schema-builder/util/ViewUtils.js +8 -3
- package/browser/schema-builder/util/ViewUtils.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +11 -3
- package/browser/schema-builder/view/View.js +10 -3
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +76 -10
- package/browser/subscriber/Broadcaster.js +157 -71
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/BroadcasterResult.js +6 -3
- package/browser/subscriber/BroadcasterResult.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +12 -12
- package/browser/subscriber/EntitySubscriberInterface.js +3 -3
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/BaseEvent.d.ts +27 -0
- package/browser/subscriber/event/BaseEvent.js +3 -0
- package/browser/subscriber/event/BaseEvent.js.map +1 -0
- package/browser/subscriber/event/InsertEvent.d.ts +4 -20
- package/browser/subscriber/event/InsertEvent.js +3 -3
- package/browser/subscriber/event/InsertEvent.js.map +1 -1
- package/browser/subscriber/event/LoadEvent.d.ts +3 -19
- package/browser/subscriber/event/LoadEvent.js +3 -3
- package/browser/subscriber/event/LoadEvent.js.map +1 -1
- package/browser/subscriber/event/QueryEvent.d.ts +4 -20
- package/browser/subscriber/event/QueryEvent.js +3 -3
- package/browser/subscriber/event/QueryEvent.js.map +1 -1
- package/browser/subscriber/event/RecoverEvent.d.ts +1 -1
- package/browser/subscriber/event/RecoverEvent.js +3 -3
- package/browser/subscriber/event/RecoverEvent.js.map +1 -1
- package/browser/subscriber/event/RemoveEvent.d.ts +3 -19
- package/browser/subscriber/event/RemoveEvent.js +3 -3
- package/browser/subscriber/event/RemoveEvent.js.map +1 -1
- package/browser/subscriber/event/SoftRemoveEvent.d.ts +1 -1
- package/browser/subscriber/event/SoftRemoveEvent.js +3 -3
- package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +2 -18
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -3
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +2 -18
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -3
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionStartEvent.d.ts +2 -18
- package/browser/subscriber/event/TransactionStartEvent.js +3 -3
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
- package/browser/subscriber/event/UpdateEvent.d.ts +6 -22
- package/browser/subscriber/event/UpdateEvent.js +3 -3
- package/browser/subscriber/event/UpdateEvent.js.map +1 -1
- package/browser/util/ApplyValueTransformers.d.ts +1 -1
- package/browser/util/ApplyValueTransformers.js +11 -3
- package/browser/util/ApplyValueTransformers.js.map +1 -1
- package/browser/util/DateUtils.d.ts +36 -1
- package/browser/util/DateUtils.js +63 -11
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.d.ts +16 -0
- package/browser/util/DepGraph.js +30 -12
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +4 -5
- package/browser/util/DirectoryExportedClassesLoader.js +23 -24
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ImportUtils.d.ts +4 -0
- package/browser/util/ImportUtils.js +28 -12
- package/browser/util/ImportUtils.js.map +1 -1
- package/browser/util/InstanceChecker.d.ts +2 -2
- package/browser/util/InstanceChecker.js +6 -3
- package/browser/util/InstanceChecker.js.map +1 -1
- package/browser/util/ObjectUtils.d.ts +4 -1
- package/browser/util/ObjectUtils.js +9 -3
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +43 -4
- package/browser/util/OrmUtils.js +119 -20
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.d.ts +6 -0
- package/browser/util/PathUtils.js +17 -7
- package/browser/util/PathUtils.js.map +1 -1
- package/browser/util/RandomGenerator.d.ts +9 -0
- package/browser/util/RandomGenerator.js +107 -69
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/SqlTagUtils.d.ts +8 -1
- package/browser/util/SqlTagUtils.js +15 -5
- package/browser/util/SqlTagUtils.js.map +1 -1
- package/browser/util/StringUtils.d.ts +13 -8
- package/browser/util/StringUtils.js +50 -22
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.d.ts +3 -3
- package/browser/util/TreeRepositoryUtils.js +8 -5
- package/browser/util/TreeRepositoryUtils.js.map +1 -1
- package/browser/util/Uint8ArrayUtils.d.ts +3 -0
- package/browser/util/Uint8ArrayUtils.js +45 -0
- package/browser/util/Uint8ArrayUtils.js.map +1 -0
- package/browser/util/VersionUtils.js +10 -3
- package/browser/util/VersionUtils.js.map +1 -1
- package/browser/util/escapeRegExp.js +6 -3
- package/browser/util/escapeRegExp.js.map +1 -1
- package/cache/DbQueryResultCache.d.ts +17 -6
- package/cache/DbQueryResultCache.js +31 -21
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/QueryResultCache.d.ts +2 -2
- package/cache/QueryResultCache.js +1 -2
- package/cache/QueryResultCache.js.map +1 -1
- package/cache/QueryResultCacheFactory.d.ts +4 -4
- package/cache/QueryResultCacheFactory.js +8 -9
- package/cache/QueryResultCacheFactory.js.map +1 -1
- package/cache/QueryResultCacheOptions.js +1 -2
- package/cache/QueryResultCacheOptions.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +18 -19
- package/cache/RedisQueryResultCache.js +43 -123
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli-ts-node-commonjs.js +1 -2
- package/cli-ts-node-commonjs.js.map +1 -1
- package/cli-ts-node-esm.js +1 -2
- package/cli-ts-node-esm.js.map +1 -1
- package/cli.js +19 -19
- package/cli.js.map +1 -1
- package/commands/CacheClearCommand.d.ts +1 -1
- package/commands/CacheClearCommand.js +1 -2
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.d.ts +7 -1
- package/commands/CommandUtils.js +10 -4
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +2 -1
- package/commands/EntityCreateCommand.js +2 -2
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.d.ts +19 -2
- package/commands/InitCommand.js +115 -85
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +6 -1
- package/commands/MigrationCreateCommand.js +6 -2
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +12 -1
- package/commands/MigrationGenerateCommand.js +13 -3
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.d.ts +1 -1
- package/commands/MigrationRevertCommand.js +1 -2
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.d.ts +1 -1
- package/commands/MigrationRunCommand.js +5 -6
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.d.ts +1 -1
- package/commands/MigrationShowCommand.js +1 -2
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +1 -1
- package/commands/QueryCommand.js +1 -2
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.d.ts +1 -1
- package/commands/SchemaDropCommand.js +1 -2
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaLogCommand.d.ts +1 -1
- package/commands/SchemaLogCommand.js +1 -2
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.d.ts +1 -1
- package/commands/SchemaSyncCommand.js +1 -2
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +2 -1
- package/commands/SubscriberCreateCommand.js +2 -2
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.d.ts +1 -1
- package/commands/VersionCommand.js +1 -2
- package/commands/VersionCommand.js.map +1 -1
- package/common/DeepPartial.js +1 -2
- package/common/DeepPartial.js.map +1 -1
- package/common/EntityTarget.d.ts +2 -2
- package/common/EntityTarget.js +1 -2
- package/common/EntityTarget.js.map +1 -1
- package/common/MixedList.js +1 -2
- package/common/MixedList.js.map +1 -1
- package/common/NonNever.d.ts +1 -1
- package/common/NonNever.js +1 -2
- package/common/NonNever.js.map +1 -1
- package/common/ObjectLiteral.js +1 -2
- package/common/ObjectLiteral.js.map +1 -1
- package/common/ObjectType.js +1 -2
- package/common/ObjectType.js.map +1 -1
- package/common/PickKeysByType.js +1 -2
- package/common/PickKeysByType.js.map +1 -1
- package/common/PrimitiveCriteria.js +1 -2
- package/common/PrimitiveCriteria.js.map +1 -1
- package/common/RelationType.d.ts +5 -5
- package/common/RelationType.js +1 -2
- package/common/RelationType.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +10 -7
- package/connection/ConnectionMetadataBuilder.js +13 -12
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +3 -11
- package/connection/ConnectionOptionsReader.js +26 -59
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +13 -20
- package/data-source/BaseDataSourceOptions.js +1 -2
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/data-source/DataSource.d.ts +50 -61
- package/data-source/DataSource.js +38 -49
- package/data-source/DataSource.js.map +1 -1
- package/data-source/DataSourceOptions.d.ts +18 -19
- package/data-source/DataSourceOptions.js +1 -2
- package/data-source/DataSourceOptions.js.map +1 -1
- package/data-source/index.d.ts +1 -1
- package/data-source/index.js +1 -3
- package/data-source/index.js.map +1 -1
- package/decorator/Check.d.ts +3 -0
- package/decorator/Check.js +3 -2
- package/decorator/Check.js.map +1 -1
- package/decorator/Exclusion.d.ts +8 -2
- package/decorator/Exclusion.js +10 -5
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/ForeignKey.d.ts +11 -2
- package/decorator/ForeignKey.js +5 -2
- package/decorator/ForeignKey.js.map +1 -1
- package/decorator/Generated.d.ts +1 -0
- package/decorator/Generated.js +2 -2
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.d.ts +17 -1
- package/decorator/Index.js +5 -2
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.d.ts +11 -1
- package/decorator/Unique.js +4 -2
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.d.ts +31 -10
- package/decorator/columns/Column.js +3 -2
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.d.ts +2 -1
- package/decorator/columns/CreateDateColumn.js +2 -2
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.d.ts +2 -1
- package/decorator/columns/DeleteDateColumn.js +2 -2
- package/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/decorator/columns/ObjectIdColumn.d.ts +2 -1
- package/decorator/columns/ObjectIdColumn.js +2 -2
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +5 -2
- package/decorator/columns/PrimaryColumn.js +3 -2
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +10 -3
- package/decorator/columns/PrimaryGeneratedColumn.js +3 -2
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.d.ts +2 -1
- package/decorator/columns/UpdateDateColumn.js +2 -2
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.d.ts +2 -1
- package/decorator/columns/VersionColumn.js +2 -2
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.d.ts +2 -1
- package/decorator/columns/ViewColumn.js +2 -2
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/columns/VirtualColumn.d.ts +5 -2
- package/decorator/columns/VirtualColumn.js +3 -2
- package/decorator/columns/VirtualColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.d.ts +1 -0
- package/decorator/entity/ChildEntity.js +2 -2
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.d.ts +4 -1
- package/decorator/entity/Entity.js +3 -2
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.d.ts +4 -1
- package/decorator/entity/TableInheritance.js +4 -2
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.d.ts +4 -1
- package/decorator/entity-view/ViewEntity.js +3 -2
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/listeners/AfterInsert.js +1 -2
- package/decorator/listeners/AfterInsert.js.map +1 -1
- package/decorator/listeners/AfterLoad.js +1 -2
- package/decorator/listeners/AfterLoad.js.map +1 -1
- package/decorator/listeners/AfterRecover.js +1 -2
- package/decorator/listeners/AfterRecover.js.map +1 -1
- package/decorator/listeners/AfterRemove.js +1 -2
- package/decorator/listeners/AfterRemove.js.map +1 -1
- package/decorator/listeners/AfterSoftRemove.js +1 -2
- package/decorator/listeners/AfterSoftRemove.js.map +1 -1
- package/decorator/listeners/AfterUpdate.js +1 -2
- package/decorator/listeners/AfterUpdate.js.map +1 -1
- package/decorator/listeners/BeforeInsert.js +1 -2
- package/decorator/listeners/BeforeInsert.js.map +1 -1
- package/decorator/listeners/BeforeRecover.js +1 -2
- package/decorator/listeners/BeforeRecover.js.map +1 -1
- package/decorator/listeners/BeforeRemove.js +1 -2
- package/decorator/listeners/BeforeRemove.js.map +1 -1
- package/decorator/listeners/BeforeSoftRemove.js +1 -2
- package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
- package/decorator/listeners/BeforeUpdate.js +1 -2
- package/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/decorator/listeners/EventSubscriber.js +1 -2
- package/decorator/listeners/EventSubscriber.js.map +1 -1
- package/decorator/options/ColumnCommonOptions.d.ts +2 -2
- package/decorator/options/ColumnCommonOptions.js +1 -2
- package/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/decorator/options/ColumnEmbeddedOptions.js +1 -2
- package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/decorator/options/ColumnEnumOptions.js +1 -2
- package/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/decorator/options/ColumnHstoreOptions.js +1 -2
- package/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/decorator/options/ColumnNumericOptions.d.ts +0 -16
- package/decorator/options/ColumnNumericOptions.js +1 -2
- package/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +8 -33
- package/decorator/options/ColumnOptions.js +1 -2
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/ColumnUnsignedOptions.d.ts +1 -20
- package/decorator/options/ColumnUnsignedOptions.js +1 -2
- package/decorator/options/ColumnUnsignedOptions.js.map +1 -1
- package/decorator/options/ColumnWithLengthOptions.js +1 -2
- package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/decorator/options/EntityOptions.d.ts +1 -1
- package/decorator/options/EntityOptions.js +1 -2
- package/decorator/options/EntityOptions.js.map +1 -1
- package/decorator/options/ExclusionOptions.d.ts +10 -0
- package/decorator/options/ExclusionOptions.js +3 -0
- package/decorator/options/ExclusionOptions.js.map +1 -0
- package/decorator/options/ForeignKeyOptions.d.ts +3 -3
- package/decorator/options/ForeignKeyOptions.js +1 -2
- package/decorator/options/ForeignKeyOptions.js.map +1 -1
- package/decorator/options/IndexOptions.d.ts +7 -0
- package/decorator/options/IndexOptions.js +1 -2
- package/decorator/options/IndexOptions.js.map +1 -1
- package/decorator/options/JoinColumnOptions.js +1 -2
- package/decorator/options/JoinColumnOptions.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.js +1 -2
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.d.ts +1 -1
- package/decorator/options/JoinTableOptions.js +1 -2
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +1 -2
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -9
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -2
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -2
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +3 -3
- package/decorator/options/RelationOptions.js +1 -2
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/options/SpatialColumnOptions.d.ts +1 -1
- package/decorator/options/SpatialColumnOptions.js +1 -2
- package/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/decorator/options/TransactionOptions.d.ts +1 -1
- package/decorator/options/TransactionOptions.js +1 -2
- package/decorator/options/TransactionOptions.js.map +1 -1
- package/decorator/options/UniqueOptions.d.ts +1 -1
- package/decorator/options/UniqueOptions.js +1 -2
- package/decorator/options/UniqueOptions.js.map +1 -1
- package/decorator/options/ValueTransformer.js +1 -2
- package/decorator/options/ValueTransformer.js.map +1 -1
- package/decorator/options/ViewColumnOptions.d.ts +1 -1
- package/decorator/options/ViewColumnOptions.js +1 -2
- package/decorator/options/ViewColumnOptions.js.map +1 -1
- package/decorator/options/ViewEntityOptions.d.ts +3 -2
- package/decorator/options/ViewEntityOptions.js +1 -2
- package/decorator/options/ViewEntityOptions.js.map +1 -1
- package/decorator/options/VirtualColumnOptions.d.ts +3 -3
- package/decorator/options/VirtualColumnOptions.js +1 -2
- package/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.d.ts +3 -1
- package/decorator/relations/JoinColumn.js +2 -2
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.d.ts +4 -2
- package/decorator/relations/JoinTable.js +2 -2
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.d.ts +7 -2
- package/decorator/relations/ManyToMany.js +4 -2
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +7 -2
- package/decorator/relations/ManyToOne.js +4 -2
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +5 -2
- package/decorator/relations/OneToMany.js +4 -2
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.d.ts +7 -2
- package/decorator/relations/OneToOne.js +4 -2
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationId.d.ts +4 -2
- package/decorator/relations/RelationId.js +4 -3
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.d.ts +6 -4
- package/decorator/tree/Tree.js +5 -4
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +2 -0
- package/decorator/tree/TreeChildren.js +3 -2
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeLevelColumn.js +1 -2
- package/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +3 -1
- package/decorator/tree/TreeParent.js +3 -2
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.d.ts +32 -21
- package/driver/Driver.js +1 -2
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.d.ts +5 -3
- package/driver/DriverFactory.js +48 -51
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.d.ts +13 -11
- package/driver/DriverUtils.js +18 -24
- package/driver/DriverUtils.js.map +1 -1
- package/driver/Query.js +1 -2
- package/driver/Query.js.map +1 -1
- package/driver/SqlInMemory.d.ts +1 -1
- package/driver/SqlInMemory.js +1 -2
- package/driver/SqlInMemory.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +0 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +1 -2
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts → driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts} +4 -5
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js +3 -0
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -0
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +66 -28
- package/driver/aurora-mysql/AuroraMysqlDriver.js +76 -64
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +168 -32
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +245 -135
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/{browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts → driver/aurora-postgres/AuroraPostgresDataSourceOptions.d.ts} +2 -2
- package/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js +3 -0
- package/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +15 -13
- package/driver/aurora-postgres/AuroraPostgresDriver.js +17 -11
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +11 -9
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +7 -2
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/{browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts → driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts} +5 -3
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js +3 -0
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +13 -12
- package/driver/better-sqlite3/BetterSqlite3Driver.js +19 -16
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +4 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +23 -16
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/capacitor/{CapacitorConnectionOptions.d.ts → CapacitorDataSourceOptions.d.ts} +2 -2
- package/driver/capacitor/CapacitorDataSourceOptions.js +3 -0
- package/driver/capacitor/CapacitorDataSourceOptions.js.map +1 -0
- package/driver/capacitor/CapacitorDriver.d.ts +7 -6
- package/driver/capacitor/CapacitorDriver.js +5 -5
- package/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/driver/capacitor/CapacitorQueryRunner.d.ts +6 -2
- package/driver/capacitor/CapacitorQueryRunner.js +11 -8
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -2
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/cockroachdb/CockroachConnectionOptions.d.ts → driver/cockroachdb/CockroachDataSourceOptions.d.ts} +4 -4
- package/driver/cockroachdb/CockroachDataSourceOptions.js +3 -0
- package/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -0
- package/driver/cockroachdb/CockroachDriver.d.ts +79 -27
- package/driver/cockroachdb/CockroachDriver.js +121 -45
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +203 -31
- package/driver/cockroachdb/CockroachQueryRunner.js +370 -160
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/{CordovaConnectionOptions.d.ts → CordovaDataSourceOptions.d.ts} +2 -2
- package/driver/cordova/CordovaDataSourceOptions.js +3 -0
- package/driver/cordova/CordovaDataSourceOptions.js.map +1 -0
- package/driver/cordova/CordovaDriver.d.ts +7 -6
- package/driver/cordova/CordovaDriver.js +5 -7
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.d.ts +7 -35
- package/driver/cordova/CordovaQueryRunner.js +11 -39
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/{ExpoConnectionOptions.d.ts → ExpoDataSourceOptions.d.ts} +2 -2
- package/driver/expo/ExpoDataSourceOptions.js +3 -0
- package/driver/expo/ExpoDataSourceOptions.js.map +1 -0
- package/driver/expo/ExpoDriver.d.ts +6 -5
- package/driver/expo/ExpoDriver.js +10 -4
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.d.ts +1 -1
- package/driver/expo/ExpoQueryRunner.js +5 -6
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/{browser/driver/mongodb/MongoConnectionOptions.d.ts → driver/mongodb/MongoDataSourceOptions.d.ts} +7 -69
- package/driver/mongodb/MongoDataSourceOptions.js +3 -0
- package/driver/mongodb/MongoDataSourceOptions.js.map +1 -0
- package/driver/mongodb/MongoDriver.d.ts +51 -23
- package/driver/mongodb/MongoDriver.js +41 -33
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +239 -83
- package/driver/mongodb/MongoQueryRunner.js +234 -68
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/bson.typings.d.ts +604 -97
- package/driver/mongodb/bson.typings.js +2 -2
- package/driver/mongodb/bson.typings.js.map +1 -1
- package/driver/mongodb/typings.d.ts +3577 -1025
- package/driver/mongodb/typings.js +3 -3
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +0 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -2
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/mysql/MysqlConnectionOptions.d.ts → driver/mysql/MysqlDataSourceOptions.d.ts} +6 -13
- package/driver/mysql/MysqlDataSourceOptions.js +3 -0
- package/driver/mysql/MysqlDataSourceOptions.js.map +1 -0
- package/driver/mysql/MysqlDriver.d.ts +69 -37
- package/driver/mysql/MysqlDriver.js +91 -205
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +167 -33
- package/driver/mysql/MysqlQueryRunner.js +265 -146
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/{browser/driver/nativescript/NativescriptConnectionOptions.d.ts → driver/nativescript/NativescriptDataSourceOptions.d.ts} +2 -2
- package/driver/nativescript/NativescriptDataSourceOptions.js +3 -0
- package/driver/nativescript/NativescriptDataSourceOptions.js.map +1 -0
- package/driver/nativescript/NativescriptDriver.d.ts +9 -8
- package/driver/nativescript/NativescriptDriver.js +7 -8
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.d.ts +7 -2
- package/driver/nativescript/NativescriptQueryRunner.js +8 -4
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionCredentialsOptions.js +1 -2
- package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/oracle/OracleConnectionOptions.d.ts → driver/oracle/OracleDataSourceOptions.d.ts} +3 -3
- package/driver/oracle/OracleDataSourceOptions.js +3 -0
- package/driver/oracle/OracleDataSourceOptions.js.map +1 -0
- package/driver/oracle/OracleDriver.d.ts +65 -28
- package/driver/oracle/OracleDriver.js +60 -23
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +176 -29
- package/driver/oracle/OracleQueryRunner.js +271 -100
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -2
- package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/postgres/PostgresConnectionOptions.d.ts → driver/postgres/PostgresDataSourceOptions.d.ts} +8 -5
- package/driver/postgres/PostgresDataSourceOptions.js +3 -0
- package/driver/postgres/PostgresDataSourceOptions.js.map +1 -0
- package/driver/postgres/PostgresDriver.d.ts +85 -28
- package/driver/postgres/PostgresDriver.js +201 -41
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +225 -34
- package/driver/postgres/PostgresQueryRunner.js +497 -219
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/{browser/driver/react-native/ReactNativeConnectionOptions.d.ts → driver/react-native/ReactNativeDataSourceOptions.d.ts} +6 -2
- package/driver/react-native/ReactNativeDataSourceOptions.js +3 -0
- package/driver/react-native/ReactNativeDataSourceOptions.js.map +1 -0
- package/driver/react-native/ReactNativeDriver.d.ts +64 -24
- package/driver/react-native/ReactNativeDriver.js +60 -22
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.d.ts +7 -2
- package/driver/react-native/ReactNativeQueryRunner.js +10 -6
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapConnectionCredentialsOptions.js +1 -2
- package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
- package/driver/sap/{SapConnectionOptions.d.ts → SapDataSourceOptions.d.ts} +10 -37
- package/driver/sap/SapDataSourceOptions.js +3 -0
- package/driver/sap/SapDataSourceOptions.js.map +1 -0
- package/driver/sap/SapDriver.d.ts +54 -17
- package/driver/sap/SapDriver.js +48 -25
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +179 -31
- package/driver/sap/SapQueryRunner.js +316 -118
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerConnectionCredentialsOptions.js +1 -2
- package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
- package/{browser/driver/spanner/SpannerConnectionOptions.d.ts → driver/spanner/SpannerDataSourceOptions.d.ts} +4 -4
- package/driver/spanner/SpannerDataSourceOptions.js +3 -0
- package/driver/spanner/SpannerDataSourceOptions.js.map +1 -0
- package/driver/spanner/SpannerDriver.d.ts +61 -23
- package/driver/spanner/SpannerDriver.js +57 -21
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.d.ts +170 -28
- package/driver/spanner/SpannerQueryRunner.js +243 -75
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +74 -23
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +131 -26
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +164 -30
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +242 -82
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/{browser/driver/sqljs/SqljsConnectionOptions.d.ts → driver/sqljs/SqljsDataSourceOptions.d.ts} +2 -2
- package/driver/sqljs/SqljsDataSourceOptions.js +3 -0
- package/driver/sqljs/SqljsDataSourceOptions.js.map +1 -0
- package/driver/sqljs/SqljsDriver.d.ts +15 -8
- package/driver/sqljs/SqljsDriver.js +17 -11
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.d.ts +4 -1
- package/driver/sqljs/SqljsQueryRunner.js +8 -6
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +0 -1
- package/driver/sqlserver/MssqlParameter.js +1 -3
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -15
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -2
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/driver/sqlserver/{SqlServerConnectionOptions.d.ts → SqlServerDataSourceOptions.d.ts} +4 -4
- package/driver/sqlserver/SqlServerDataSourceOptions.js +3 -0
- package/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -0
- package/driver/sqlserver/SqlServerDriver.d.ts +70 -28
- package/driver/sqlserver/SqlServerDriver.js +66 -34
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +190 -30
- package/driver/sqlserver/SqlServerQueryRunner.js +377 -155
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +1 -2
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
- package/driver/sqlserver/authentication/DefaultAuthentication.js +1 -2
- package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/NtlmAuthentication.js +1 -2
- package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +1 -1
- package/driver/types/ColumnTypes.js +1 -2
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/CteCapabilities.js +1 -2
- package/driver/types/CteCapabilities.js.map +1 -1
- package/driver/types/DataTypeDefaults.d.ts +0 -1
- package/driver/types/DataTypeDefaults.js +1 -2
- package/driver/types/DataTypeDefaults.js.map +1 -1
- package/driver/types/DatabaseType.d.ts +1 -1
- package/driver/types/DatabaseType.js +1 -2
- package/driver/types/DatabaseType.js.map +1 -1
- package/driver/types/GeoJsonTypes.js +1 -2
- package/driver/types/GeoJsonTypes.js.map +1 -1
- package/driver/types/IsolationLevel.js +1 -2
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/types/MappedColumnTypes.d.ts +1 -1
- package/driver/types/MappedColumnTypes.js +1 -2
- package/driver/types/MappedColumnTypes.js.map +1 -1
- package/driver/types/MetadataTableType.js +1 -2
- package/driver/types/MetadataTableType.js.map +1 -1
- package/driver/types/ReplicationMode.js +1 -2
- package/driver/types/ReplicationMode.js.map +1 -1
- package/driver/types/ReturningType.d.ts +1 -0
- package/driver/types/ReturningType.js +3 -0
- package/driver/types/ReturningType.js.map +1 -0
- package/driver/types/UpsertType.js +1 -2
- package/driver/types/UpsertType.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +111 -57
- package/entity-manager/EntityManager.js +191 -153
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.d.ts +6 -3
- package/entity-manager/EntityManagerFactory.js +10 -8
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +156 -30
- package/entity-manager/MongoEntityManager.js +262 -89
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.d.ts +5 -3
- package/entity-manager/SqljsEntityManager.js +6 -5
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchema.d.ts +1 -1
- package/entity-schema/EntitySchema.js +1 -2
- package/entity-schema/EntitySchema.js.map +1 -1
- package/entity-schema/EntitySchemaCheckOptions.js +1 -2
- package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +2 -2
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +1 -2
- package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +6 -26
- package/entity-schema/EntitySchemaColumnOptions.js +1 -2
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +1 -2
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedError.js +1 -2
- package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/entity-schema/EntitySchemaExclusionOptions.d.ts +5 -0
- package/entity-schema/EntitySchemaExclusionOptions.js +1 -2
- package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +2 -2
- package/entity-schema/EntitySchemaForeignKeyOptions.js +1 -2
- package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.js +1 -2
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaInheritanceOptions.d.ts +1 -1
- package/entity-schema/EntitySchemaInheritanceOptions.js +1 -2
- package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +16 -14
- package/entity-schema/EntitySchemaOptions.js +1 -2
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
- package/entity-schema/EntitySchemaRelationIdOptions.js +1 -2
- package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
- package/entity-schema/EntitySchemaRelationOptions.js +1 -2
- package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.d.ts +2 -1
- package/entity-schema/EntitySchemaTransformer.js +3 -5
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
- package/entity-schema/EntitySchemaUniqueOptions.js +1 -2
- package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.js +1 -2
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.js +1 -2
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.d.ts +1 -1
- package/error/CannotConnectAlreadyConnectedError.js +3 -4
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.d.ts +1 -1
- package/error/CannotCreateEntityIdMapError.js +1 -2
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.js +1 -2
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.d.ts +1 -1
- package/error/CannotExecuteNotConnectedError.js +3 -4
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.js +1 -2
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.js +1 -2
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.js +1 -2
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.js +1 -2
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.js +1 -2
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.js +1 -2
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.d.ts +3 -3
- package/error/DataTypeNotSupportedError.js +1 -2
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.js +1 -2
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.js +1 -2
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityMetadataNotFoundError.d.ts +1 -1
- package/error/EntityMetadataNotFoundError.js +1 -2
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.d.ts +1 -1
- package/error/EntityNotFoundError.js +1 -2
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/EntityPropertyNotFoundError.d.ts +1 -1
- package/error/EntityPropertyNotFoundError.js +1 -2
- package/error/EntityPropertyNotFoundError.js.map +1 -1
- package/error/FindRelationsNotFoundError.js +1 -2
- package/error/FindRelationsNotFoundError.js.map +1 -1
- package/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
- package/error/ForbiddenTransactionModeOverrideError.js +1 -2
- package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
- package/error/InitializedRelationError.d.ts +1 -2
- package/error/InitializedRelationError.js +1 -3
- package/error/InitializedRelationError.js.map +1 -1
- package/error/InsertValuesMissingError.js +1 -2
- package/error/InsertValuesMissingError.js.map +1 -1
- package/error/LimitOnUpdateNotSupportedError.js +1 -2
- package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/error/LockNotSupportedOnGivenDriverError.js +1 -2
- package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/error/MetadataAlreadyExistsError.js +1 -2
- package/error/MetadataAlreadyExistsError.js.map +1 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -2
- package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.d.ts +1 -1
- package/error/MissingDeleteDateColumnError.js +1 -2
- package/error/MissingDeleteDateColumnError.js.map +1 -1
- package/error/MissingDriverError.js +1 -2
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.d.ts +2 -2
- package/error/MissingJoinColumnError.js +1 -2
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.d.ts +2 -2
- package/error/MissingJoinTableError.js +1 -2
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.d.ts +1 -1
- package/error/MissingPrimaryColumnError.js +1 -2
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.js +1 -2
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NestedSetMultipleRootError.js +1 -2
- package/error/NestedSetMultipleRootError.js.map +1 -1
- package/error/NoConnectionForRepositoryError.d.ts +1 -1
- package/error/NoConnectionForRepositoryError.js +4 -5
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.js +1 -2
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoNeedToReleaseEntityManagerError.js +1 -2
- package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.js +1 -2
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OffsetWithoutLimitNotSupportedError.js +1 -2
- package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/error/OptimisticLockCanNotBeUsedError.js +1 -2
- package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.js +1 -2
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PersistedEntityNotFoundError.js +1 -2
- package/error/PersistedEntityNotFoundError.js.map +1 -1
- package/error/PessimisticLockTransactionRequiredError.js +1 -2
- package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.js +1 -2
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/QueryFailedError.js +1 -2
- package/error/QueryFailedError.js.map +1 -1
- package/error/QueryRunnerAlreadyReleasedError.js +1 -2
- package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -2
- package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/error/RepositoryNotTreeError.d.ts +1 -1
- package/error/RepositoryNotTreeError.js +1 -2
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/ReturningStatementNotSupportedError.js +1 -2
- package/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
- package/error/SubjectRemovedAndUpdatedError.js +1 -2
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.d.ts +1 -1
- package/error/SubjectWithoutIdentifierError.js +1 -2
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TransactionAlreadyStartedError.js +1 -2
- package/error/TransactionAlreadyStartedError.js.map +1 -1
- package/error/TransactionNotStartedError.js +1 -2
- package/error/TransactionNotStartedError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.d.ts +1 -1
- package/error/TreeRepositoryNotSupportedError.js +1 -2
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/TypeORMError.js +1 -2
- package/error/TypeORMError.js.map +1 -1
- package/error/UpdateValuesMissingError.js +1 -2
- package/error/UpdateValuesMissingError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
- package/error/UsingJoinColumnIsNotAllowedError.js +1 -2
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -2
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
- package/error/UsingJoinTableIsNotAllowedError.js +1 -2
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -2
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/index.d.ts +0 -3
- package/error/index.js +1 -5
- package/error/index.js.map +1 -1
- package/find-options/EqualOperator.js +1 -2
- package/find-options/EqualOperator.js.map +1 -1
- package/find-options/FindManyOptions.d.ts +1 -1
- package/find-options/FindManyOptions.js +1 -2
- package/find-options/FindManyOptions.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +7 -14
- package/find-options/FindOneOptions.js +1 -2
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.d.ts +3 -3
- package/find-options/FindOperator.js +1 -2
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.js +1 -2
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsOrder.d.ts +2 -2
- package/find-options/FindOptionsOrder.js +1 -2
- package/find-options/FindOptionsOrder.js.map +1 -1
- package/find-options/FindOptionsRelations.d.ts +2 -9
- package/find-options/FindOptionsRelations.js +1 -2
- package/find-options/FindOptionsRelations.js.map +1 -1
- package/find-options/FindOptionsSelect.d.ts +2 -9
- package/find-options/FindOptionsSelect.js +1 -2
- package/find-options/FindOptionsSelect.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +46 -11
- package/find-options/FindOptionsUtils.js +104 -22
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/FindOptionsWhere.d.ts +4 -4
- package/find-options/FindOptionsWhere.js +1 -2
- package/find-options/FindOptionsWhere.js.map +1 -1
- package/find-options/FindTreeOptions.js +1 -2
- package/find-options/FindTreeOptions.js.map +1 -1
- package/find-options/OrderByCondition.d.ts +0 -2
- package/find-options/OrderByCondition.js +1 -2
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
- package/find-options/mongodb/MongoFindManyOptions.js +1 -2
- package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
- package/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
- package/find-options/mongodb/MongoFindOneOptions.js +1 -2
- package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
- package/find-options/operator/And.d.ts +4 -0
- package/find-options/operator/And.js +5 -2
- package/find-options/operator/And.js.map +1 -1
- package/find-options/operator/Any.d.ts +1 -0
- package/find-options/operator/Any.js +2 -2
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/ArrayContainedBy.d.ts +1 -0
- package/find-options/operator/ArrayContainedBy.js +2 -2
- package/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/find-options/operator/ArrayContains.d.ts +1 -0
- package/find-options/operator/ArrayContains.js +2 -2
- package/find-options/operator/ArrayContains.js.map +1 -1
- package/find-options/operator/ArrayOverlap.d.ts +1 -0
- package/find-options/operator/ArrayOverlap.js +2 -2
- package/find-options/operator/ArrayOverlap.js.map +1 -1
- package/find-options/operator/Between.d.ts +2 -0
- package/find-options/operator/Between.js +3 -2
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.d.ts +2 -1
- package/find-options/operator/Equal.js +2 -2
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +1 -0
- package/find-options/operator/ILike.js +2 -2
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.d.ts +1 -0
- package/find-options/operator/In.js +2 -2
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.js +1 -2
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/JsonContains.d.ts +1 -0
- package/find-options/operator/JsonContains.js +2 -2
- package/find-options/operator/JsonContains.js.map +1 -1
- package/find-options/operator/LessThan.d.ts +1 -0
- package/find-options/operator/LessThan.js +2 -2
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.d.ts +1 -0
- package/find-options/operator/LessThanOrEqual.js +2 -2
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.d.ts +1 -0
- package/find-options/operator/Like.js +2 -2
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.d.ts +1 -0
- package/find-options/operator/MoreThan.js +2 -2
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.d.ts +1 -0
- package/find-options/operator/MoreThanOrEqual.js +2 -2
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.d.ts +1 -0
- package/find-options/operator/Not.js +2 -2
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Or.d.ts +4 -0
- package/find-options/operator/Or.js +5 -2
- package/find-options/operator/Or.js.map +1 -1
- package/find-options/operator/Raw.d.ts +5 -1
- package/find-options/operator/Raw.js +1 -2
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.d.ts +2 -114
- package/globals.js +7 -169
- package/globals.js.map +1 -1
- package/index.d.ts +62 -69
- package/index.js +2 -52
- package/index.js.map +1 -1
- package/index.mjs +0 -80
- package/logger/AbstractLogger.d.ts +26 -3
- package/logger/AbstractLogger.js +25 -3
- package/logger/AbstractLogger.js.map +1 -1
- package/logger/AdvancedConsoleLogger.d.ts +5 -2
- package/logger/AdvancedConsoleLogger.js +4 -2
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.d.ts +6 -2
- package/logger/DebugLogger.js +5 -2
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.d.ts +7 -3
- package/logger/FileLogger.js +5 -2
- package/logger/FileLogger.js.map +1 -1
- package/logger/FormattedConsoleLogger.d.ts +5 -2
- package/logger/FormattedConsoleLogger.js +4 -2
- package/logger/FormattedConsoleLogger.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js +1 -2
- package/logger/Logger.js.map +1 -1
- package/logger/LoggerFactory.d.ts +4 -2
- package/logger/LoggerFactory.js +3 -2
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.d.ts +1 -1
- package/logger/LoggerOptions.js +1 -2
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.d.ts +5 -2
- package/logger/SimpleConsoleLogger.js +4 -2
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.d.ts +4 -3
- package/metadata/CheckMetadata.js +2 -2
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +24 -23
- package/metadata/ColumnMetadata.js +64 -57
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.d.ts +14 -22
- package/metadata/EmbeddedMetadata.js +4 -15
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.d.ts +9 -5
- package/metadata/EntityListenerMetadata.js +5 -2
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +60 -35
- package/metadata/EntityMetadata.js +52 -42
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.d.ts +9 -3
- package/metadata/ExclusionMetadata.js +3 -2
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.d.ts +7 -6
- package/metadata/ForeignKeyMetadata.js +2 -2
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +13 -5
- package/metadata/IndexMetadata.js +20 -7
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.d.ts +6 -5
- package/metadata/RelationIdMetadata.js +2 -2
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +27 -16
- package/metadata/RelationMetadata.js +12 -2
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.d.ts +7 -6
- package/metadata/UniqueMetadata.js +12 -6
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata/types/ClosureTreeOptions.d.ts +1 -1
- package/metadata/types/ClosureTreeOptions.js +1 -2
- package/metadata/types/ClosureTreeOptions.js.map +1 -1
- package/metadata/types/DeferrableType.js +1 -2
- package/metadata/types/DeferrableType.js.map +1 -1
- package/metadata/types/EventListenerTypes.js +12 -13
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata/types/OnDeleteType.js +1 -2
- package/metadata/types/OnDeleteType.js.map +1 -1
- package/metadata/types/OnUpdateType.js +1 -2
- package/metadata/types/OnUpdateType.js.map +1 -1
- package/metadata/types/PropertyTypeInFunction.js +1 -2
- package/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypeInFunction.d.ts +1 -1
- package/metadata/types/RelationTypeInFunction.js +1 -2
- package/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypes.js +1 -2
- package/metadata/types/RelationTypes.js.map +1 -1
- package/metadata/types/TableTypes.js +1 -2
- package/metadata/types/TableTypes.js.map +1 -1
- package/metadata/types/TreeTypes.js +1 -2
- package/metadata/types/TreeTypes.js.map +1 -1
- package/metadata-args/CheckMetadataArgs.js +1 -2
- package/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/metadata-args/ColumnMetadataArgs.d.ts +2 -2
- package/metadata-args/ColumnMetadataArgs.js +1 -2
- package/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/metadata-args/DiscriminatorValueMetadataArgs.js +1 -2
- package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/metadata-args/EmbeddedMetadataArgs.js +1 -2
- package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
- package/metadata-args/EntityListenerMetadataArgs.js +1 -2
- package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/metadata-args/EntitySubscriberMetadataArgs.js +1 -2
- package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/metadata-args/ExclusionMetadataArgs.d.ts +5 -0
- package/metadata-args/ExclusionMetadataArgs.js +1 -2
- package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/metadata-args/ForeignKeyMetadataArgs.d.ts +5 -5
- package/metadata-args/ForeignKeyMetadataArgs.js +1 -2
- package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -1
- package/metadata-args/GeneratedMetadataArgs.js +1 -2
- package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/metadata-args/IndexMetadataArgs.d.ts +7 -0
- package/metadata-args/IndexMetadataArgs.js +1 -2
- package/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
- package/metadata-args/InheritanceMetadataArgs.js +1 -2
- package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/metadata-args/JoinColumnMetadataArgs.js +1 -2
- package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
- package/metadata-args/JoinTableMetadataArgs.js +1 -2
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.d.ts +29 -27
- package/metadata-args/MetadataArgsStorage.js +9 -7
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-args/NamingStrategyMetadataArgs.js +1 -2
- package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
- package/metadata-args/RelationIdMetadataArgs.js +1 -2
- package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/metadata-args/RelationMetadataArgs.d.ts +4 -4
- package/metadata-args/RelationMetadataArgs.js +1 -2
- package/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/metadata-args/TableMetadataArgs.d.ts +5 -4
- package/metadata-args/TableMetadataArgs.js +1 -2
- package/metadata-args/TableMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionEntityMetadataArgs.d.ts +1 -1
- package/metadata-args/TransactionEntityMetadataArgs.js +1 -2
- package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.js +1 -2
- package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/TreeMetadataArgs.d.ts +2 -2
- package/metadata-args/TreeMetadataArgs.js +1 -2
- package/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/metadata-args/UniqueMetadataArgs.d.ts +1 -1
- package/metadata-args/UniqueMetadataArgs.js +1 -2
- package/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/metadata-args/types/ColumnMode.js +1 -2
- package/metadata-args/types/ColumnMode.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +4 -3
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +10 -15
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +16 -6
- package/metadata-builder/EntityMetadataBuilder.js +50 -61
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.d.ts +9 -2
- package/metadata-builder/EntityMetadataValidator.js +8 -7
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +11 -5
- package/metadata-builder/JunctionEntityMetadataBuilder.js +33 -36
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.d.ts +5 -0
- package/metadata-builder/MetadataUtils.js +6 -2
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +24 -12
- package/metadata-builder/RelationJoinColumnBuilder.js +30 -22
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/Migration.d.ts +1 -1
- package/migration/Migration.js +1 -2
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +16 -9
- package/migration/MigrationExecutor.js +76 -64
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.d.ts +1 -1
- package/migration/MigrationInterface.js +1 -2
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +5 -5
- package/naming-strategy/DefaultNamingStrategy.js +4 -5
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/LegacyOracleNamingStrategy.d.ts +1 -1
- package/naming-strategy/LegacyOracleNamingStrategy.js +1 -2
- package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +3 -5
- package/naming-strategy/NamingStrategyInterface.js +1 -2
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +181 -1
- package/persistence/EntityPersistExecutor.d.ts +7 -7
- package/persistence/EntityPersistExecutor.js +6 -7
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.d.ts +5 -5
- package/persistence/Subject.js +3 -3
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangeMap.d.ts +3 -3
- package/persistence/SubjectChangeMap.js +1 -2
- package/persistence/SubjectChangeMap.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.d.ts +5 -1
- package/persistence/SubjectChangedColumnsComputer.js +27 -19
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +3 -2
- package/persistence/SubjectDatabaseEntityLoader.js +8 -5
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.d.ts +7 -4
- package/persistence/SubjectExecutor.js +21 -11
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopologicalSorter.d.ts +6 -2
- package/persistence/SubjectTopologicalSorter.js +15 -2
- package/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +5 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js +5 -2
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +16 -6
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -6
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +14 -7
- package/persistence/subject-builder/OneToManySubjectBuilder.js +14 -8
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +14 -7
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +14 -8
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +6 -2
- package/persistence/tree/ClosureSubjectExecutor.js +14 -11
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +4 -2
- package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -3
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.d.ts +10 -4
- package/persistence/tree/NestedSetSubjectExecutor.js +13 -8
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.d.ts +12 -11
- package/platform/PlatformTools.js +17 -29
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.d.ts +1 -1
- package/query-builder/Alias.js +1 -2
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.d.ts +2 -1
- package/query-builder/Brackets.js +2 -2
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +17 -6
- package/query-builder/DeleteQueryBuilder.js +17 -5
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +3 -3
- package/query-builder/InsertOrUpdateOptions.js +1 -2
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +34 -29
- package/query-builder/InsertQueryBuilder.js +289 -160
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.d.ts +7 -7
- package/query-builder/JoinAttribute.js +9 -21
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/JoinOptions.js +1 -2
- package/query-builder/JoinOptions.js.map +1 -1
- package/query-builder/NotBrackets.js +1 -2
- package/query-builder/NotBrackets.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +51 -33
- package/query-builder/QueryBuilder.js +81 -92
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderCte.js +1 -2
- package/query-builder/QueryBuilderCte.js.map +1 -1
- package/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/query-builder/QueryBuilderUtils.js +2 -2
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +29 -30
- package/query-builder/QueryExpressionMap.js +22 -29
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/QueryPartialEntity.d.ts +1 -1
- package/query-builder/QueryPartialEntity.js +1 -2
- package/query-builder/QueryPartialEntity.js.map +1 -1
- package/query-builder/RelationIdLoader.d.ts +39 -11
- package/query-builder/RelationIdLoader.js +100 -63
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.d.ts +49 -14
- package/query-builder/RelationLoader.js +80 -26
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.d.ts +7 -11
- package/query-builder/RelationQueryBuilder.js +8 -13
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.d.ts +3 -2
- package/query-builder/RelationRemover.js +2 -2
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.d.ts +3 -2
- package/query-builder/RelationUpdater.js +4 -4
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningOption.d.ts +4 -0
- package/query-builder/ReturningOption.js +3 -0
- package/query-builder/ReturningOption.js.map +1 -0
- package/query-builder/ReturningResultsEntityUpdator.d.ts +10 -6
- package/query-builder/ReturningResultsEntityUpdator.js +13 -10
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQuery.js +1 -2
- package/query-builder/SelectQuery.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +71 -33
- package/query-builder/SelectQueryBuilder.js +337 -261
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilderOption.js +1 -2
- package/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.d.ts +24 -7
- package/query-builder/SoftDeleteQueryBuilder.js +35 -9
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.d.ts +23 -7
- package/query-builder/UpdateQueryBuilder.js +52 -30
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.js +1 -2
- package/query-builder/WhereClause.js.map +1 -1
- package/query-builder/WhereExpressionBuilder.d.ts +2 -7
- package/query-builder/WhereExpressionBuilder.js +1 -2
- package/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/query-builder/index.d.ts +3 -0
- package/query-builder/index.js +4 -2
- package/query-builder/index.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
- package/query-builder/relation-id/RelationIdAttribute.js +1 -2
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
- package/query-builder/relation-id/RelationIdLoadResult.js +1 -2
- package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.d.ts +6 -6
- package/query-builder/relation-id/RelationIdLoader.js +12 -13
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +1 -2
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/result/DeleteResult.d.ts +1 -1
- package/query-builder/result/DeleteResult.js +1 -2
- package/query-builder/result/DeleteResult.js.map +1 -1
- package/query-builder/result/InsertResult.d.ts +2 -2
- package/query-builder/result/InsertResult.js +1 -2
- package/query-builder/result/InsertResult.js.map +1 -1
- package/query-builder/result/UpdateResult.d.ts +2 -2
- package/query-builder/result/UpdateResult.js +1 -2
- package/query-builder/result/UpdateResult.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.d.ts +3 -3
- package/query-builder/transformer/DocumentToEntityTransformer.js +2 -73
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +17 -7
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +6 -2
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +5 -2
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +22 -11
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +47 -53
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +79 -16
- package/query-runner/BaseQueryRunner.js +96 -34
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryLock.js +4 -3
- package/query-runner/QueryLock.js.map +1 -1
- package/query-runner/QueryResult.js +1 -2
- package/query-runner/QueryResult.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +52 -56
- package/query-runner/QueryRunner.js +1 -2
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/BaseEntity.d.ts +64 -44
- package/repository/BaseEntity.js +54 -31
- package/repository/BaseEntity.js.map +1 -1
- package/repository/EntityId.d.ts +1 -1
- package/repository/EntityId.js +1 -2
- package/repository/EntityId.js.map +1 -1
- package/repository/FindTreesOptions.js +1 -2
- package/repository/FindTreesOptions.js.map +1 -1
- package/repository/MongoRepository.d.ts +79 -29
- package/repository/MongoRepository.js +71 -26
- package/repository/MongoRepository.js.map +1 -1
- package/repository/RemoveOptions.js +1 -2
- package/repository/RemoveOptions.js.map +1 -1
- package/repository/Repository.d.ts +75 -52
- package/repository/Repository.js +69 -47
- package/repository/Repository.js.map +1 -1
- package/repository/SaveOptions.js +1 -2
- package/repository/SaveOptions.js.map +1 -1
- package/repository/TreeRepository.d.ts +21 -4
- package/repository/TreeRepository.js +27 -11
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpdateOptions.d.ts +11 -0
- package/repository/UpdateOptions.js +3 -0
- package/repository/UpdateOptions.js.map +1 -0
- package/repository/UpsertOptions.d.ts +8 -2
- package/repository/UpsertOptions.js +1 -2
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/MongoSchemaBuilder.d.ts +4 -4
- package/schema-builder/MongoSchemaBuilder.js +5 -6
- package/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +29 -9
- package/schema-builder/RdbmsSchemaBuilder.js +176 -158
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/SchemaBuilder.d.ts +1 -1
- package/schema-builder/SchemaBuilder.js +1 -2
- package/schema-builder/SchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableCheckOptions.js +1 -2
- package/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +0 -10
- package/schema-builder/options/TableColumnOptions.js +1 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableExclusionOptions.d.ts +5 -0
- package/schema-builder/options/TableExclusionOptions.js +1 -2
- package/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.js +1 -2
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.d.ts +7 -0
- package/schema-builder/options/TableIndexOptions.js +1 -2
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/options/TableIndexTypes.d.ts +1 -0
- package/schema-builder/options/TableIndexTypes.js +3 -0
- package/schema-builder/options/TableIndexTypes.js.map +1 -0
- package/schema-builder/options/TableOptions.d.ts +6 -6
- package/schema-builder/options/TableOptions.js +1 -2
- package/schema-builder/options/TableOptions.js.map +1 -1
- package/schema-builder/options/TableUniqueOptions.js +1 -2
- package/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/schema-builder/options/ViewOptions.d.ts +3 -2
- package/schema-builder/options/ViewOptions.js +1 -2
- package/schema-builder/options/ViewOptions.js.map +1 -1
- package/schema-builder/table/Table.d.ts +23 -3
- package/schema-builder/table/Table.js +21 -2
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.d.ts +3 -2
- package/schema-builder/table/TableCheck.js +2 -2
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +1 -11
- package/schema-builder/table/TableColumn.js +2 -12
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.d.ts +8 -2
- package/schema-builder/table/TableExclusion.js +5 -2
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.d.ts +5 -3
- package/schema-builder/table/TableForeignKey.js +3 -2
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +10 -2
- package/schema-builder/table/TableIndex.js +5 -2
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.d.ts +3 -2
- package/schema-builder/table/TableUnique.js +2 -2
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/TableUtils.d.ts +3 -3
- package/schema-builder/util/TableUtils.js +1 -4
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/schema-builder/util/ViewUtils.d.ts +3 -1
- package/schema-builder/util/ViewUtils.js +3 -2
- package/schema-builder/util/ViewUtils.js.map +1 -1
- package/schema-builder/view/View.d.ts +11 -3
- package/schema-builder/view/View.js +5 -2
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +76 -10
- package/subscriber/Broadcaster.js +148 -66
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/BroadcasterResult.js +1 -2
- package/subscriber/BroadcasterResult.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +12 -12
- package/subscriber/EntitySubscriberInterface.js +1 -2
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/BaseEvent.d.ts +27 -0
- package/subscriber/event/BaseEvent.js +3 -0
- package/subscriber/event/BaseEvent.js.map +1 -0
- package/subscriber/event/InsertEvent.d.ts +4 -20
- package/subscriber/event/InsertEvent.js +1 -2
- package/subscriber/event/InsertEvent.js.map +1 -1
- package/subscriber/event/LoadEvent.d.ts +3 -19
- package/subscriber/event/LoadEvent.js +1 -2
- package/subscriber/event/LoadEvent.js.map +1 -1
- package/subscriber/event/QueryEvent.d.ts +4 -20
- package/subscriber/event/QueryEvent.js +1 -2
- package/subscriber/event/QueryEvent.js.map +1 -1
- package/subscriber/event/RecoverEvent.d.ts +1 -1
- package/subscriber/event/RecoverEvent.js +1 -2
- package/subscriber/event/RecoverEvent.js.map +1 -1
- package/subscriber/event/RemoveEvent.d.ts +3 -19
- package/subscriber/event/RemoveEvent.js +1 -2
- package/subscriber/event/RemoveEvent.js.map +1 -1
- package/subscriber/event/SoftRemoveEvent.d.ts +1 -1
- package/subscriber/event/SoftRemoveEvent.js +1 -2
- package/subscriber/event/SoftRemoveEvent.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.d.ts +2 -18
- package/subscriber/event/TransactionCommitEvent.js +1 -2
- package/subscriber/event/TransactionCommitEvent.js.map +1 -1
- package/subscriber/event/TransactionRollbackEvent.d.ts +2 -18
- package/subscriber/event/TransactionRollbackEvent.js +1 -2
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
- package/subscriber/event/TransactionStartEvent.d.ts +2 -18
- package/subscriber/event/TransactionStartEvent.js +1 -2
- package/subscriber/event/TransactionStartEvent.js.map +1 -1
- package/subscriber/event/UpdateEvent.d.ts +6 -22
- package/subscriber/event/UpdateEvent.js +1 -2
- package/subscriber/event/UpdateEvent.js.map +1 -1
- package/typeorm-class-transformer-shim.js +0 -5
- package/typeorm-model-shim.js +0 -10
- package/util/ApplyValueTransformers.d.ts +1 -1
- package/util/ApplyValueTransformers.js +6 -2
- package/util/ApplyValueTransformers.js.map +1 -1
- package/util/DateUtils.d.ts +36 -1
- package/util/DateUtils.js +55 -8
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.d.ts +16 -0
- package/util/DepGraph.js +17 -3
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +4 -5
- package/util/DirectoryExportedClassesLoader.js +12 -18
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ImportUtils.d.ts +4 -0
- package/util/ImportUtils.js +14 -2
- package/util/ImportUtils.js.map +1 -1
- package/util/InstanceChecker.d.ts +2 -2
- package/util/InstanceChecker.js +1 -2
- package/util/InstanceChecker.js.map +1 -1
- package/util/ObjectUtils.d.ts +4 -1
- package/util/ObjectUtils.js +4 -2
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +43 -4
- package/util/OrmUtils.js +114 -19
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.d.ts +6 -0
- package/util/PathUtils.js +7 -2
- package/util/PathUtils.js.map +1 -1
- package/util/RandomGenerator.d.ts +9 -0
- package/util/RandomGenerator.js +102 -68
- package/util/RandomGenerator.js.map +1 -1
- package/util/SqlTagUtils.d.ts +8 -1
- package/util/SqlTagUtils.js +8 -2
- package/util/SqlTagUtils.js.map +1 -1
- package/util/StringUtils.d.ts +13 -8
- package/util/StringUtils.js +36 -17
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.d.ts +3 -3
- package/util/TreeRepositoryUtils.js +3 -4
- package/util/TreeRepositoryUtils.js.map +1 -1
- package/util/Uint8ArrayUtils.d.ts +3 -0
- package/util/Uint8ArrayUtils.js +45 -0
- package/util/Uint8ArrayUtils.js.map +1 -0
- package/util/VersionUtils.js +5 -2
- package/util/VersionUtils.js.map +1 -1
- package/util/escapeRegExp.js +1 -2
- package/util/escapeRegExp.js.map +1 -1
- package/browser/connection/BaseConnectionOptions.d.ts +0 -7
- package/browser/connection/BaseConnectionOptions.js +0 -3
- package/browser/connection/BaseConnectionOptions.js.map +0 -1
- package/browser/connection/Connection.d.ts +0 -10
- package/browser/connection/Connection.js +0 -12
- package/browser/connection/Connection.js.map +0 -1
- package/browser/connection/ConnectionManager.d.ts +0 -33
- package/browser/connection/ConnectionManager.js +0 -62
- package/browser/connection/ConnectionManager.js.map +0 -1
- package/browser/connection/ConnectionOptions.d.ts +0 -9
- package/browser/connection/ConnectionOptions.js +0 -3
- package/browser/connection/ConnectionOptions.js.map +0 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +0 -30
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +0 -107
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +0 -1
- package/browser/container.d.ts +0 -39
- package/browser/container.js +0 -56
- package/browser/container.js.map +0 -1
- package/browser/decorator/EntityRepository.d.ts +0 -9
- package/browser/decorator/EntityRepository.js +0 -18
- package/browser/decorator/EntityRepository.js.map +0 -1
- package/browser/decorator/relations/RelationCount.d.ts +0 -8
- package/browser/decorator/relations/RelationCount.js +0 -20
- package/browser/decorator/relations/RelationCount.js.map +0 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +0 -13
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +0 -15
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +0 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +0 -3
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +0 -1
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +0 -3
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +0 -1
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +0 -3
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +0 -1
- package/browser/driver/capacitor/CapacitorConnectionOptions.js +0 -3
- package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +0 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js +0 -3
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +0 -1
- package/browser/driver/cordova/CordovaConnectionOptions.js +0 -3
- package/browser/driver/cordova/CordovaConnectionOptions.js.map +0 -1
- package/browser/driver/expo/ExpoConnectionOptions.js +0 -3
- package/browser/driver/expo/ExpoConnectionOptions.js.map +0 -1
- package/browser/driver/expo/ExpoDriverFactory.d.ts +0 -9
- package/browser/driver/expo/ExpoDriverFactory.js +0 -18
- package/browser/driver/expo/ExpoDriverFactory.js.map +0 -1
- package/browser/driver/expo/legacy/ExpoLegacyDriver.d.ts +0 -21
- package/browser/driver/expo/legacy/ExpoLegacyDriver.js +0 -71
- package/browser/driver/expo/legacy/ExpoLegacyDriver.js.map +0 -1
- package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +0 -57
- package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +0 -165
- package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +0 -1
- package/browser/driver/mongodb/MongoConnectionOptions.js +0 -3
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +0 -1
- package/browser/driver/mysql/MysqlConnectionOptions.js +0 -3
- package/browser/driver/mysql/MysqlConnectionOptions.js.map +0 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.js +0 -3
- package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +0 -1
- package/browser/driver/oracle/OracleConnectionOptions.js +0 -3
- package/browser/driver/oracle/OracleConnectionOptions.js.map +0 -1
- package/browser/driver/postgres/PostgresConnectionOptions.js +0 -3
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +0 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.js +0 -3
- package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +0 -1
- package/browser/driver/sap/SapConnectionOptions.js +0 -3
- package/browser/driver/sap/SapConnectionOptions.js.map +0 -1
- package/browser/driver/spanner/SpannerConnectionOptions.js +0 -3
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +0 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +0 -55
- package/browser/driver/sqlite/SqliteConnectionOptions.js +0 -3
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +0 -1
- package/browser/driver/sqlite/SqliteDriver.d.ts +0 -59
- package/browser/driver/sqlite/SqliteDriver.js +0 -169
- package/browser/driver/sqlite/SqliteDriver.js.map +0 -1
- package/browser/driver/sqlite/SqliteQueryRunner.d.ts +0 -27
- package/browser/driver/sqlite/SqliteQueryRunner.js +0 -120
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +0 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.js +0 -3
- package/browser/driver/sqljs/SqljsConnectionOptions.js.map +0 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js +0 -3
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +0 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +0 -7
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +0 -14
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +0 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +0 -7
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +0 -14
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +0 -1
- package/browser/error/CustomRepositoryNotFoundError.d.ts +0 -7
- package/browser/error/CustomRepositoryNotFoundError.js +0 -14
- package/browser/error/CustomRepositoryNotFoundError.js.map +0 -1
- package/browser/find-options/JoinOptions.d.ts +0 -76
- package/browser/find-options/JoinOptions.js +0 -3
- package/browser/find-options/JoinOptions.js.map +0 -1
- package/browser/metadata/RelationCountMetadata.d.ts +0 -46
- package/browser/metadata/RelationCountMetadata.js +0 -35
- package/browser/metadata/RelationCountMetadata.js.map +0 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +0 -14
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js +0 -3
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +0 -1
- package/browser/metadata-args/RelationCountMetadataArgs.d.ts +0 -26
- package/browser/metadata-args/RelationCountMetadataArgs.js +0 -3
- package/browser/metadata-args/RelationCountMetadataArgs.js.map +0 -1
- package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +0 -53
- package/browser/query-builder/relation-count/RelationCountAttribute.js +0 -76
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +0 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.d.ts +0 -8
- package/browser/query-builder/relation-count/RelationCountLoadResult.js +0 -3
- package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +0 -1
- package/browser/query-builder/relation-count/RelationCountLoader.d.ts +0 -11
- package/browser/query-builder/relation-count/RelationCountLoader.js +0 -164
- package/browser/query-builder/relation-count/RelationCountLoader.js.map +0 -1
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +0 -7
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -51
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +0 -1
- package/browser/repository/AbstractRepository.d.ts +0 -51
- package/browser/repository/AbstractRepository.js +0 -88
- package/browser/repository/AbstractRepository.js.map +0 -1
- package/connection/BaseConnectionOptions.d.ts +0 -7
- package/connection/BaseConnectionOptions.js.map +0 -1
- package/connection/Connection.d.ts +0 -10
- package/connection/Connection.js +0 -16
- package/connection/Connection.js.map +0 -1
- package/connection/ConnectionManager.d.ts +0 -33
- package/connection/ConnectionManager.js +0 -66
- package/connection/ConnectionManager.js.map +0 -1
- package/connection/ConnectionOptions.d.ts +0 -9
- package/connection/ConnectionOptions.js.map +0 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +0 -30
- package/connection/options-reader/ConnectionOptionsEnvReader.js +0 -111
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +0 -1
- package/container.d.ts +0 -39
- package/container.js +0 -60
- package/container.js.map +0 -1
- package/decorator/EntityRepository.d.ts +0 -9
- package/decorator/EntityRepository.js +0 -21
- package/decorator/EntityRepository.js.map +0 -1
- package/decorator/relations/RelationCount.d.ts +0 -8
- package/decorator/relations/RelationCount.js +0 -23
- package/decorator/relations/RelationCount.js.map +0 -1
- package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +0 -13
- package/driver/aurora-mysql/AuroraMysqlConnection.js +0 -19
- package/driver/aurora-mysql/AuroraMysqlConnection.js.map +0 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +0 -1
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +0 -4
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +0 -1
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +0 -4
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +0 -1
- package/driver/capacitor/CapacitorConnectionOptions.js.map +0 -1
- package/driver/cockroachdb/CockroachConnectionOptions.js.map +0 -1
- package/driver/cordova/CordovaConnectionOptions.js.map +0 -1
- package/driver/expo/ExpoConnectionOptions.js.map +0 -1
- package/driver/expo/ExpoDriverFactory.d.ts +0 -9
- package/driver/expo/ExpoDriverFactory.js +0 -22
- package/driver/expo/ExpoDriverFactory.js.map +0 -1
- package/driver/expo/legacy/ExpoLegacyDriver.d.ts +0 -21
- package/driver/expo/legacy/ExpoLegacyDriver.js +0 -75
- package/driver/expo/legacy/ExpoLegacyDriver.js.map +0 -1
- package/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +0 -57
- package/driver/expo/legacy/ExpoLegacyQueryRunner.js +0 -169
- package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +0 -1
- package/driver/mongodb/MongoConnectionOptions.js.map +0 -1
- package/driver/mysql/MysqlConnectionOptions.js +0 -4
- package/driver/mysql/MysqlConnectionOptions.js.map +0 -1
- package/driver/nativescript/NativescriptConnectionOptions.js +0 -4
- package/driver/nativescript/NativescriptConnectionOptions.js.map +0 -1
- package/driver/oracle/OracleConnectionOptions.js +0 -4
- package/driver/oracle/OracleConnectionOptions.js.map +0 -1
- package/driver/postgres/PostgresConnectionOptions.js +0 -4
- package/driver/postgres/PostgresConnectionOptions.js.map +0 -1
- package/driver/react-native/ReactNativeConnectionOptions.js +0 -4
- package/driver/react-native/ReactNativeConnectionOptions.js.map +0 -1
- package/driver/sap/SapConnectionOptions.js.map +0 -1
- package/driver/spanner/SpannerConnectionOptions.js +0 -4
- package/driver/spanner/SpannerConnectionOptions.js.map +0 -1
- package/driver/sqlite/SqliteConnectionOptions.d.ts +0 -55
- package/driver/sqlite/SqliteConnectionOptions.js +0 -4
- package/driver/sqlite/SqliteConnectionOptions.js.map +0 -1
- package/driver/sqlite/SqliteDriver.d.ts +0 -59
- package/driver/sqlite/SqliteDriver.js +0 -174
- package/driver/sqlite/SqliteDriver.js.map +0 -1
- package/driver/sqlite/SqliteQueryRunner.d.ts +0 -27
- package/driver/sqlite/SqliteQueryRunner.js +0 -124
- package/driver/sqlite/SqliteQueryRunner.js.map +0 -1
- package/driver/sqljs/SqljsConnectionOptions.js +0 -4
- package/driver/sqljs/SqljsConnectionOptions.js.map +0 -1
- package/driver/sqlserver/SqlServerConnectionOptions.js +0 -4
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +0 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +0 -7
- package/error/CustomRepositoryCannotInheritRepositoryError.js +0 -18
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +0 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +0 -7
- package/error/CustomRepositoryDoesNotHaveEntityError.js +0 -18
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +0 -1
- package/error/CustomRepositoryNotFoundError.d.ts +0 -7
- package/error/CustomRepositoryNotFoundError.js +0 -18
- package/error/CustomRepositoryNotFoundError.js.map +0 -1
- package/find-options/JoinOptions.d.ts +0 -76
- package/find-options/JoinOptions.js.map +0 -1
- package/metadata/RelationCountMetadata.d.ts +0 -46
- package/metadata/RelationCountMetadata.js +0 -39
- package/metadata/RelationCountMetadata.js.map +0 -1
- package/metadata-args/EntityRepositoryMetadataArgs.d.ts +0 -14
- package/metadata-args/EntityRepositoryMetadataArgs.js +0 -4
- package/metadata-args/EntityRepositoryMetadataArgs.js.map +0 -1
- package/metadata-args/RelationCountMetadataArgs.d.ts +0 -26
- package/metadata-args/RelationCountMetadataArgs.js +0 -4
- package/metadata-args/RelationCountMetadataArgs.js.map +0 -1
- package/query-builder/relation-count/RelationCountAttribute.d.ts +0 -53
- package/query-builder/relation-count/RelationCountAttribute.js +0 -80
- package/query-builder/relation-count/RelationCountAttribute.js.map +0 -1
- package/query-builder/relation-count/RelationCountLoadResult.d.ts +0 -8
- package/query-builder/relation-count/RelationCountLoadResult.js +0 -4
- package/query-builder/relation-count/RelationCountLoadResult.js.map +0 -1
- package/query-builder/relation-count/RelationCountLoader.d.ts +0 -11
- package/query-builder/relation-count/RelationCountLoader.js +0 -168
- package/query-builder/relation-count/RelationCountLoader.js.map +0 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +0 -7
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -55
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +0 -1
- package/repository/AbstractRepository.d.ts +0 -51
- package/repository/AbstractRepository.js +0 -92
- package/repository/AbstractRepository.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/driver/spanner/SpannerQueryRunner.ts"],"names":[],"mappings":"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","file":"SpannerQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { TypeORMError } from \"../../error\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { TransactionNotStartedError } from \"../../error/TransactionNotStartedError\"\nimport { ReadStream } from \"../../platform/PlatformTools\"\nimport { BaseQueryRunner } from \"../../query-runner/BaseQueryRunner\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { TableIndexOptions } from \"../../schema-builder/options/TableIndexOptions\"\nimport { Table } from \"../../schema-builder/table/Table\"\nimport { TableCheck } from \"../../schema-builder/table/TableCheck\"\nimport { TableColumn } from \"../../schema-builder/table/TableColumn\"\nimport { TableExclusion } from \"../../schema-builder/table/TableExclusion\"\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\"\nimport { TableIndex } from \"../../schema-builder/table/TableIndex\"\nimport { TableUnique } from \"../../schema-builder/table/TableUnique\"\nimport { View } from \"../../schema-builder/view/View\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport { Query } from \"../Query\"\nimport { ColumnType } from \"../types/ColumnTypes\"\nimport { IsolationLevel } from \"../types/IsolationLevel\"\nimport { MetadataTableType } from \"../types/MetadataTableType\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { SpannerDriver } from \"./SpannerDriver\"\n\n/**\n * Runs queries on a single postgres database connection.\n */\nexport class SpannerQueryRunner extends BaseQueryRunner implements QueryRunner {\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database driver used by connection.\n */\n driver: SpannerDriver\n\n /**\n * Real database connection from a connection pool used to perform queries.\n */\n protected session?: any\n\n /**\n * Transaction currently executed by this session.\n */\n protected sessionTransaction?: any\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SpannerDriver, mode: ReplicationMode) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.mode = mode\n this.broadcaster = new Broadcaster(this)\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n async connect(): Promise<any> {\n if (this.session) {\n return Promise.resolve(this.session)\n }\n\n const [session] = await this.driver.instanceDatabase.createSession({})\n this.session = session\n this.sessionTransaction = await session.transaction()\n return this.session\n }\n\n /**\n * Releases used database connection.\n * You cannot use query runner methods once its released.\n */\n async release(): Promise<void> {\n this.isReleased = true\n if (this.session) {\n await this.session.delete()\n }\n this.session = undefined\n return Promise.resolve()\n }\n\n /**\n * Starts transaction.\n */\n async startTransaction(isolationLevel?: IsolationLevel): Promise<void> {\n this.isTransactionActive = true\n try {\n await this.broadcaster.broadcast(\"BeforeTransactionStart\")\n } catch (err) {\n this.isTransactionActive = false\n throw err\n }\n\n await this.connect()\n await this.sessionTransaction.begin()\n this.connection.logger.logQuery(\"START TRANSACTION\")\n\n await this.broadcaster.broadcast(\"AfterTransactionStart\")\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive || !this.sessionTransaction)\n throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionCommit\")\n\n await this.sessionTransaction.commit()\n this.connection.logger.logQuery(\"COMMIT\")\n this.isTransactionActive = false\n\n await this.broadcaster.broadcast(\"AfterTransactionCommit\")\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive || !this.sessionTransaction)\n throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionRollback\")\n\n await this.sessionTransaction.rollback()\n this.connection.logger.logQuery(\"ROLLBACK\")\n this.isTransactionActive = false\n\n await this.broadcaster.broadcast(\"AfterTransactionRollback\")\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(\n query: string,\n parameters?: any[],\n useStructuredResult: boolean = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n await this.connect()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n await this.broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n try {\n const queryStartTime = Date.now()\n let rawResult:\n | [\n any[],\n {\n queryPlan: null\n queryStats: null\n rowCountExact: string\n rowCount: string\n },\n { rowType: { fields: [] }; transaction: null },\n ]\n | undefined = undefined\n const isSelect = query.startsWith(\"SELECT\")\n const executor =\n isSelect && !this.isTransactionActive\n ? this.driver.instanceDatabase\n : this.sessionTransaction\n\n if (!this.isTransactionActive && !isSelect) {\n await this.sessionTransaction.begin()\n }\n\n try {\n rawResult = await executor.run({\n sql: query,\n params: parameters\n ? parameters.reduce((params, value, index) => {\n params[\"param\" + index] = value\n return params\n }, {} as ObjectLiteral)\n : undefined,\n json: true,\n })\n if (!this.isTransactionActive && !isSelect) {\n await this.sessionTransaction.commit()\n }\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (!this.isTransactionActive && !isSelect)\n await this.sessionTransaction.rollback()\n } catch (rollbackError) {}\n throw error\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n rawResult,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n const result = new QueryResult()\n\n result.raw = rawResult\n result.records = rawResult ? rawResult[0] : []\n if (rawResult && rawResult[1] && rawResult[1].rowCountExact) {\n result.affected = parseInt(rawResult[1].rowCountExact)\n }\n\n if (!useStructuredResult) {\n return result.records\n }\n\n return result\n } catch (err) {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n throw new QueryFailedError(query, parameters, err)\n } finally {\n await broadcasterResult.wait()\n }\n }\n\n /**\n * Update database schema.\n * Used for creating/altering/dropping tables, columns, indexes, etc.\n *\n * DDL changing queries should be executed by `updateSchema()` method.\n */\n async updateDDL(query: string, parameters?: any[]): Promise<void> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n try {\n const queryStartTime = Date.now()\n const [operation] = await this.driver.instanceDatabase.updateSchema(\n query,\n )\n await operation.promise()\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n } catch (err) {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n /**\n * Returns raw data stream.\n */\n async stream(\n query: string,\n parameters?: any[],\n onEnd?: Function,\n onError?: Function,\n ): Promise<ReadStream> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n try {\n this.driver.connection.logger.logQuery(query, parameters, this)\n const request = {\n sql: query,\n params: parameters\n ? parameters.reduce((params, value, index) => {\n params[\"param\" + index] = value\n return params\n }, {} as ObjectLiteral)\n : undefined,\n json: true,\n }\n const stream = this.driver.instanceDatabase.runStream(request)\n\n if (onEnd) {\n stream.on(\"end\", onEnd)\n }\n\n if (onError) {\n stream.on(\"error\", onError)\n }\n\n return stream\n } catch (err) {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n /**\n * Returns all available database names including system databases.\n */\n async getDatabases(): Promise<string[]> {\n return Promise.resolve([])\n }\n\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n */\n async getSchemas(database?: string): Promise<string[]> {\n return Promise.resolve([])\n }\n\n /**\n * Checks if database with the given name exist.\n */\n async hasDatabase(database: string): Promise<boolean> {\n throw new TypeORMError(\n `Check database queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Loads currently using database\n */\n async getCurrentDatabase(): Promise<string> {\n throw new TypeORMError(\n `Check database queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Checks if schema with the given name exist.\n */\n async hasSchema(schema: string): Promise<boolean> {\n const result = await this.query(\n `SELECT * FROM \"information_schema\".\"schemata\" WHERE \"schema_name\" = '${schema}'`,\n )\n return result.length ? true : false\n }\n\n /**\n * Loads currently using database schema\n */\n async getCurrentSchema(): Promise<string> {\n throw new TypeORMError(\n `Check schema queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Checks if table with the given name exist in the database.\n */\n async hasTable(tableOrName: Table | string): Promise<boolean> {\n const tableName =\n tableOrName instanceof Table ? tableOrName.name : tableOrName\n const sql =\n `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE' ` +\n `AND \\`TABLE_NAME\\` = '${tableName}'`\n const result = await this.query(sql)\n return result.length ? true : false\n }\n\n /**\n * Checks if column with the given name exist in the given table.\n */\n async hasColumn(\n tableOrName: Table | string,\n columnName: string,\n ): Promise<boolean> {\n const tableName =\n tableOrName instanceof Table ? tableOrName.name : tableOrName\n const sql =\n `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`COLUMNS\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' ` +\n `AND \\`TABLE_NAME\\` = '${tableName}' AND \\`COLUMN_NAME\\` = '${columnName}'`\n const result = await this.query(sql)\n return result.length ? true : false\n }\n\n /**\n * Creates a new database.\n * Note: Spanner does not support database creation inside a transaction block.\n */\n async createDatabase(\n database: string,\n ifNotExist?: boolean,\n ): Promise<void> {\n if (ifNotExist) {\n const databaseAlreadyExists = await this.hasDatabase(database)\n\n if (databaseAlreadyExists) return Promise.resolve()\n }\n\n const up = `CREATE DATABASE \"${database}\"`\n const down = `DROP DATABASE \"${database}\"`\n await this.executeQueries(new Query(up), new Query(down))\n }\n\n /**\n * Drops database.\n * Note: Spanner does not support database dropping inside a transaction block.\n */\n async dropDatabase(database: string, ifExist?: boolean): Promise<void> {\n const up = ifExist\n ? `DROP DATABASE IF EXISTS \"${database}\"`\n : `DROP DATABASE \"${database}\"`\n const down = `CREATE DATABASE \"${database}\"`\n await this.executeQueries(new Query(up), new Query(down))\n }\n\n /**\n * Creates a new table schema.\n */\n async createSchema(\n schemaPath: string,\n ifNotExist?: boolean,\n ): Promise<void> {\n return Promise.resolve()\n }\n\n /**\n * Drops table schema.\n */\n async dropSchema(\n schemaPath: string,\n ifExist?: boolean,\n isCascade?: boolean,\n ): Promise<void> {\n return Promise.resolve()\n }\n\n /**\n * Creates a new table.\n */\n async createTable(\n table: Table,\n ifNotExist: boolean = false,\n createForeignKeys: boolean = true,\n createIndices: boolean = true,\n ): Promise<void> {\n if (ifNotExist) {\n const isTableExist = await this.hasTable(table)\n if (isTableExist) return Promise.resolve()\n }\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n upQueries.push(this.createTableSql(table, createForeignKeys))\n downQueries.push(this.dropTableSql(table))\n\n // if createForeignKeys is true, we must drop created foreign keys in down query.\n // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.\n if (createForeignKeys)\n table.foreignKeys.forEach((foreignKey) =>\n downQueries.push(this.dropForeignKeySql(table, foreignKey)),\n )\n\n if (createIndices) {\n table.indices.forEach((index) => {\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = this.connection.namingStrategy.indexName(\n table,\n index.columnNames,\n index.where,\n )\n upQueries.push(this.createIndexSql(table, index))\n downQueries.push(this.dropIndexSql(table, index))\n })\n }\n\n // if table has column with generated type, we must add the expression to the metadata table\n const generatedColumns = table.columns.filter(\n (column) => column.generatedType && column.asExpression,\n )\n\n for (const column of generatedColumns) {\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n upQueries.push(insertQuery)\n downQueries.push(deleteQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Drops the table.\n */\n async dropTable(\n target: Table | string,\n ifExist?: boolean,\n dropForeignKeys: boolean = true,\n dropIndices: boolean = true,\n ): Promise<void> {\n // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need\n // to perform drop queries for foreign keys and indices.\n if (ifExist) {\n const isTableExist = await this.hasTable(target)\n if (!isTableExist) return Promise.resolve()\n }\n\n // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.\n const createForeignKeys: boolean = dropForeignKeys\n const tablePath = this.getTablePath(target)\n const table = await this.getCachedTable(tablePath)\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n if (dropIndices) {\n table.indices.forEach((index) => {\n upQueries.push(this.dropIndexSql(table, index))\n downQueries.push(this.createIndexSql(table, index))\n })\n }\n\n if (dropForeignKeys)\n table.foreignKeys.forEach((foreignKey) =>\n upQueries.push(this.dropForeignKeySql(table, foreignKey)),\n )\n\n upQueries.push(this.dropTableSql(table))\n downQueries.push(this.createTableSql(table, createForeignKeys))\n\n // if table had columns with generated type, we must remove the expression from the metadata table\n const generatedColumns = table.columns.filter(\n (column) => column.generatedType && column.asExpression,\n )\n\n for (const column of generatedColumns) {\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n upQueries.push(deleteQuery)\n downQueries.push(insertQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Creates a new view.\n */\n async createView(view: View): Promise<void> {\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n upQueries.push(this.createViewSql(view))\n upQueries.push(await this.insertViewDefinitionSql(view))\n downQueries.push(this.dropViewSql(view))\n downQueries.push(await this.deleteViewDefinitionSql(view))\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Drops the view.\n */\n async dropView(target: View | string): Promise<void> {\n const viewName = target instanceof View ? target.name : target\n const view = await this.getCachedView(viewName)\n\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n upQueries.push(await this.deleteViewDefinitionSql(view))\n upQueries.push(this.dropViewSql(view))\n downQueries.push(await this.insertViewDefinitionSql(view))\n downQueries.push(this.createViewSql(view))\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Renames the given table.\n */\n async renameTable(\n oldTableOrName: Table | string,\n newTableName: string,\n ): Promise<void> {\n throw new TypeORMError(\n `Rename table queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Creates a new column from the column in the table.\n */\n async addColumn(\n tableOrName: Table | string,\n column: TableColumn,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ADD ${this.buildCreateColumnSql(column)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP COLUMN ${this.driver.escape(column.name)}`,\n ),\n )\n\n // create column index\n const columnIndex = clonedTable.indices.find(\n (index) =>\n index.columnNames.length === 1 &&\n index.columnNames[0] === column.name,\n )\n if (columnIndex) {\n upQueries.push(this.createIndexSql(table, columnIndex))\n downQueries.push(this.dropIndexSql(table, columnIndex))\n } else if (column.isUnique) {\n const uniqueIndex = new TableIndex({\n name: this.connection.namingStrategy.indexName(table, [\n column.name,\n ]),\n columnNames: [column.name],\n isUnique: true,\n })\n clonedTable.indices.push(uniqueIndex)\n clonedTable.uniques.push(\n new TableUnique({\n name: uniqueIndex.name,\n columnNames: uniqueIndex.columnNames,\n }),\n )\n\n upQueries.push(this.createIndexSql(table, uniqueIndex))\n downQueries.push(this.dropIndexSql(table, uniqueIndex))\n }\n\n if (column.generatedType && column.asExpression) {\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n upQueries.push(insertQuery)\n downQueries.push(deleteQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n\n clonedTable.addColumn(column)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Creates a new columns from the column in the table.\n */\n async addColumns(\n tableOrName: Table | string,\n columns: TableColumn[],\n ): Promise<void> {\n for (const column of columns) {\n await this.addColumn(tableOrName, column)\n }\n }\n\n /**\n * Renames column in the given table.\n */\n async renameColumn(\n tableOrName: Table | string,\n oldTableColumnOrName: TableColumn | string,\n newTableColumnOrName: TableColumn | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const oldColumn =\n oldTableColumnOrName instanceof TableColumn\n ? oldTableColumnOrName\n : table.columns.find((c) => c.name === oldTableColumnOrName)\n if (!oldColumn)\n throw new TypeORMError(\n `Column \"${oldTableColumnOrName}\" was not found in the \"${table.name}\" table.`,\n )\n\n let newColumn\n if (newTableColumnOrName instanceof TableColumn) {\n newColumn = newTableColumnOrName\n } else {\n newColumn = oldColumn.clone()\n newColumn.name = newTableColumnOrName\n }\n\n return this.changeColumn(table, oldColumn, newColumn)\n }\n\n /**\n * Changes a column in the table.\n */\n async changeColumn(\n tableOrName: Table | string,\n oldTableColumnOrName: TableColumn | string,\n newColumn: TableColumn,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n let clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n const oldColumn =\n oldTableColumnOrName instanceof TableColumn\n ? oldTableColumnOrName\n : table.columns.find(\n (column) => column.name === oldTableColumnOrName,\n )\n if (!oldColumn)\n throw new TypeORMError(\n `Column \"${oldTableColumnOrName}\" was not found in the \"${table.name}\" table.`,\n )\n\n if (\n oldColumn.name !== newColumn.name ||\n oldColumn.type !== newColumn.type ||\n oldColumn.length !== newColumn.length ||\n oldColumn.isArray !== newColumn.isArray ||\n oldColumn.generatedType !== newColumn.generatedType ||\n oldColumn.asExpression !== newColumn.asExpression\n ) {\n // To avoid data conversion, we just recreate column\n await this.dropColumn(table, oldColumn)\n await this.addColumn(table, newColumn)\n\n // update cloned table\n clonedTable = table.clone()\n } else {\n if (\n newColumn.precision !== oldColumn.precision ||\n newColumn.scale !== oldColumn.scale\n ) {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(table)} ALTER COLUMN \"${\n newColumn.name\n }\" TYPE ${this.driver.createFullType(newColumn)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(table)} ALTER COLUMN \"${\n newColumn.name\n }\" TYPE ${this.driver.createFullType(oldColumn)}`,\n ),\n )\n }\n\n if (oldColumn.isNullable !== newColumn.isNullable) {\n if (newColumn.isNullable) {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" DROP NOT NULL`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" SET NOT NULL`,\n ),\n )\n } else {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" SET NOT NULL`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" DROP NOT NULL`,\n ),\n )\n }\n }\n\n if (newColumn.isUnique !== oldColumn.isUnique) {\n if (newColumn.isUnique === true) {\n const uniqueIndex = new TableIndex({\n name: this.connection.namingStrategy.indexName(table, [\n newColumn.name,\n ]),\n columnNames: [newColumn.name],\n isUnique: true,\n })\n clonedTable.indices.push(uniqueIndex)\n clonedTable.uniques.push(\n new TableUnique({\n name: uniqueIndex.name,\n columnNames: uniqueIndex.columnNames,\n }),\n )\n\n upQueries.push(this.createIndexSql(table, uniqueIndex))\n downQueries.push(this.dropIndexSql(table, uniqueIndex))\n } else {\n const uniqueIndex = clonedTable.indices.find((index) => {\n return (\n index.columnNames.length === 1 &&\n index.isUnique === true &&\n !!index.columnNames.find(\n (columnName) => columnName === newColumn.name,\n )\n )\n })\n clonedTable.indices.splice(\n clonedTable.indices.indexOf(uniqueIndex!),\n 1,\n )\n\n const tableUnique = clonedTable.uniques.find(\n (unique) => unique.name === uniqueIndex!.name,\n )\n clonedTable.uniques.splice(\n clonedTable.uniques.indexOf(tableUnique!),\n 1,\n )\n\n upQueries.push(this.dropIndexSql(table, uniqueIndex!))\n downQueries.push(this.createIndexSql(table, uniqueIndex!))\n }\n }\n }\n\n await this.executeQueries(upQueries, downQueries)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Changes a column in the table.\n */\n async changeColumns(\n tableOrName: Table | string,\n changedColumns: { newColumn: TableColumn; oldColumn: TableColumn }[],\n ): Promise<void> {\n for (const { oldColumn, newColumn } of changedColumns) {\n await this.changeColumn(tableOrName, oldColumn, newColumn)\n }\n }\n\n /**\n * Drops column in the table.\n */\n async dropColumn(\n tableOrName: Table | string,\n columnOrName: TableColumn | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const column =\n columnOrName instanceof TableColumn\n ? columnOrName\n : table.findColumnByName(columnOrName)\n if (!column)\n throw new TypeORMError(\n `Column \"${columnOrName}\" was not found in table \"${table.name}\"`,\n )\n\n const clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n // drop column index\n const columnIndex = clonedTable.indices.find(\n (index) =>\n index.columnNames.length === 1 &&\n index.columnNames[0] === column.name,\n )\n if (columnIndex) {\n clonedTable.indices.splice(\n clonedTable.indices.indexOf(columnIndex),\n 1,\n )\n upQueries.push(this.dropIndexSql(table, columnIndex))\n downQueries.push(this.createIndexSql(table, columnIndex))\n }\n\n // drop column check\n const columnCheck = clonedTable.checks.find(\n (check) =>\n !!check.columnNames &&\n check.columnNames.length === 1 &&\n check.columnNames[0] === column.name,\n )\n if (columnCheck) {\n clonedTable.checks.splice(\n clonedTable.checks.indexOf(columnCheck),\n 1,\n )\n upQueries.push(this.dropCheckConstraintSql(table, columnCheck))\n downQueries.push(this.createCheckConstraintSql(table, columnCheck))\n }\n\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP COLUMN ${this.driver.escape(column.name)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ADD ${this.buildCreateColumnSql(column)}`,\n ),\n )\n\n if (column.generatedType && column.asExpression) {\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n upQueries.push(deleteQuery)\n downQueries.push(insertQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n\n clonedTable.removeColumn(column)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Drops the columns in the table.\n */\n async dropColumns(\n tableOrName: Table | string,\n columns: TableColumn[] | string[],\n ): Promise<void> {\n for (const column of [...columns]) {\n await this.dropColumn(tableOrName, column)\n }\n }\n\n /**\n * Creates a new primary key.\n *\n * Not supported in Spanner.\n * @see https://cloud.google.com/spanner/docs/schema-and-data-model#notes_about_key_columns\n */\n async createPrimaryKey(\n tableOrName: Table | string,\n columnNames: string[],\n ): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Updates composite primary keys.\n */\n async updatePrimaryKeys(\n tableOrName: Table | string,\n columns: TableColumn[],\n ): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Creates a new primary key.\n *\n * Not supported in Spanner.\n * @see https://cloud.google.com/spanner/docs/schema-and-data-model#notes_about_key_columns\n */\n async dropPrimaryKey(tableOrName: Table | string): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Creates new unique constraint.\n */\n async createUniqueConstraint(\n tableOrName: Table | string,\n uniqueConstraint: TableUnique,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Creates new unique constraints.\n */\n async createUniqueConstraints(\n tableOrName: Table | string,\n uniqueConstraints: TableUnique[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Drops unique constraint.\n */\n async dropUniqueConstraint(\n tableOrName: Table | string,\n uniqueOrName: TableUnique | string,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Drops unique constraints.\n */\n async dropUniqueConstraints(\n tableOrName: Table | string,\n uniqueConstraints: TableUnique[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Creates a new check constraint.\n */\n async createCheckConstraint(\n tableOrName: Table | string,\n checkConstraint: TableCheck,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new check constraint may be passed without name. In this case we generate unique name manually.\n if (!checkConstraint.name)\n checkConstraint.name =\n this.connection.namingStrategy.checkConstraintName(\n table,\n checkConstraint.expression!,\n )\n\n const up = this.createCheckConstraintSql(table, checkConstraint)\n const down = this.dropCheckConstraintSql(table, checkConstraint)\n await this.executeQueries(up, down)\n table.addCheckConstraint(checkConstraint)\n }\n\n /**\n * Creates new check constraints.\n */\n async createCheckConstraints(\n tableOrName: Table | string,\n checkConstraints: TableCheck[],\n ): Promise<void> {\n const promises = checkConstraints.map((checkConstraint) =>\n this.createCheckConstraint(tableOrName, checkConstraint),\n )\n await Promise.all(promises)\n }\n\n /**\n * Drops check constraint.\n */\n async dropCheckConstraint(\n tableOrName: Table | string,\n checkOrName: TableCheck | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const checkConstraint =\n checkOrName instanceof TableCheck\n ? checkOrName\n : table.checks.find((c) => c.name === checkOrName)\n if (!checkConstraint)\n throw new TypeORMError(\n `Supplied check constraint was not found in table ${table.name}`,\n )\n\n const up = this.dropCheckConstraintSql(table, checkConstraint)\n const down = this.createCheckConstraintSql(table, checkConstraint)\n await this.executeQueries(up, down)\n table.removeCheckConstraint(checkConstraint)\n }\n\n /**\n * Drops check constraints.\n */\n async dropCheckConstraints(\n tableOrName: Table | string,\n checkConstraints: TableCheck[],\n ): Promise<void> {\n const promises = checkConstraints.map((checkConstraint) =>\n this.dropCheckConstraint(tableOrName, checkConstraint),\n )\n await Promise.all(promises)\n }\n\n /**\n * Creates new exclusion constraint.\n */\n async createExclusionConstraint(\n tableOrName: Table | string,\n exclusionConstraint: TableExclusion,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Creates new exclusion constraints.\n */\n async createExclusionConstraints(\n tableOrName: Table | string,\n exclusionConstraints: TableExclusion[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Drops exclusion constraint.\n */\n async dropExclusionConstraint(\n tableOrName: Table | string,\n exclusionOrName: TableExclusion | string,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Drops exclusion constraints.\n */\n async dropExclusionConstraints(\n tableOrName: Table | string,\n exclusionConstraints: TableExclusion[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Creates a new foreign key.\n */\n async createForeignKey(\n tableOrName: Table | string,\n foreignKey: TableForeignKey,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new FK may be passed without name. In this case we generate FK name manually.\n if (!foreignKey.name)\n foreignKey.name = this.connection.namingStrategy.foreignKeyName(\n table,\n foreignKey.columnNames,\n this.getTablePath(foreignKey),\n foreignKey.referencedColumnNames,\n )\n\n const up = this.createForeignKeySql(table, foreignKey)\n const down = this.dropForeignKeySql(table, foreignKey)\n await this.executeQueries(up, down)\n table.addForeignKey(foreignKey)\n }\n\n /**\n * Creates a new foreign keys.\n */\n async createForeignKeys(\n tableOrName: Table | string,\n foreignKeys: TableForeignKey[],\n ): Promise<void> {\n for (const foreignKey of foreignKeys) {\n await this.createForeignKey(tableOrName, foreignKey)\n }\n }\n\n /**\n * Drops a foreign key from the table.\n */\n async dropForeignKey(\n tableOrName: Table | string,\n foreignKeyOrName: TableForeignKey | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const foreignKey =\n foreignKeyOrName instanceof TableForeignKey\n ? foreignKeyOrName\n : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName)\n if (!foreignKey)\n throw new TypeORMError(\n `Supplied foreign key was not found in table ${table.name}`,\n )\n\n const up = this.dropForeignKeySql(table, foreignKey)\n const down = this.createForeignKeySql(table, foreignKey)\n await this.executeQueries(up, down)\n table.removeForeignKey(foreignKey)\n }\n\n /**\n * Drops a foreign keys from the table.\n */\n async dropForeignKeys(\n tableOrName: Table | string,\n foreignKeys: TableForeignKey[],\n ): Promise<void> {\n for (const foreignKey of [...foreignKeys]) {\n await this.dropForeignKey(tableOrName, foreignKey)\n }\n }\n\n /**\n * Creates a new index.\n */\n async createIndex(\n tableOrName: Table | string,\n index: TableIndex,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name) index.name = this.generateIndexName(table, index)\n\n const up = this.createIndexSql(table, index)\n const down = this.dropIndexSql(table, index)\n await this.executeQueries(up, down)\n table.addIndex(index)\n }\n\n /**\n * Creates a new indices\n */\n async createIndices(\n tableOrName: Table | string,\n indices: TableIndex[],\n ): Promise<void> {\n for (const index of indices) {\n await this.createIndex(tableOrName, index)\n }\n }\n\n /**\n * Drops an index from the table.\n */\n async dropIndex(\n tableOrName: Table | string,\n indexOrName: TableIndex | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const index =\n indexOrName instanceof TableIndex\n ? indexOrName\n : table.indices.find((i) => i.name === indexOrName)\n if (!index)\n throw new TypeORMError(\n `Supplied index ${indexOrName} was not found in table ${table.name}`,\n )\n\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name) index.name = this.generateIndexName(table, index)\n\n const up = this.dropIndexSql(table, index)\n const down = this.createIndexSql(table, index)\n await this.executeQueries(up, down)\n table.removeIndex(index)\n }\n\n /**\n * Drops an indices from the table.\n */\n async dropIndices(\n tableOrName: Table | string,\n indices: TableIndex[],\n ): Promise<void> {\n for (const index of [...indices]) {\n await this.dropIndex(tableOrName, index)\n }\n }\n\n /**\n * Clears all table contents.\n * Spanner does not support TRUNCATE TABLE statement, so we use DELETE FROM.\n */\n async clearTable(tableName: string): Promise<void> {\n await this.query(`DELETE FROM ${this.escapePath(tableName)} WHERE true`)\n }\n\n /**\n * Removes all tables from the currently connected database.\n */\n async clearDatabase(): Promise<void> {\n // drop index queries\n const selectIndexDropsQuery =\n `SELECT concat('DROP INDEX \\`', INDEX_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`INDEXES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`INDEX_TYPE\\` = 'INDEX' AND \\`SPANNER_IS_MANAGED\\` = false`\n const dropIndexQueries: ObjectLiteral[] = await this.query(\n selectIndexDropsQuery,\n )\n\n // drop foreign key queries\n const selectFKDropsQuery =\n `SELECT concat('ALTER TABLE \\`', TABLE_NAME, '\\`', ' DROP CONSTRAINT \\`', CONSTRAINT_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`CONSTRAINT_TYPE\\` = 'FOREIGN KEY'`\n const dropFKQueries: ObjectLiteral[] = await this.query(\n selectFKDropsQuery,\n )\n\n // drop view queries\n // const selectViewDropsQuery = `SELECT concat('DROP VIEW \\`', TABLE_NAME, '\\`') AS \\`query\\` FROM \\`INFORMATION_SCHEMA\\`.\\`VIEWS\\``\n // const dropViewQueries: ObjectLiteral[] = await this.query(\n // selectViewDropsQuery,\n // )\n\n // drop table queries\n const dropTablesQuery =\n `SELECT concat('DROP TABLE \\`', TABLE_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE'`\n const dropTableQueries: ObjectLiteral[] = await this.query(\n dropTablesQuery,\n )\n\n if (\n !dropIndexQueries.length &&\n !dropFKQueries.length &&\n // !dropViewQueries.length &&\n !dropTableQueries.length\n )\n return\n\n const isAnotherTransactionActive = this.isTransactionActive\n if (!isAnotherTransactionActive) await this.startTransaction()\n try {\n for (const query of dropIndexQueries) {\n await this.updateDDL(query[\"query\"])\n }\n for (const query of dropFKQueries) {\n await this.updateDDL(query[\"query\"])\n }\n\n // for (let query of dropViewQueries) {\n // await this.updateDDL(query[\"query\"])\n // }\n\n for (const query of dropTableQueries) {\n await this.updateDDL(query[\"query\"])\n }\n\n await this.commitTransaction()\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (!isAnotherTransactionActive)\n await this.rollbackTransaction()\n } catch (rollbackError) {}\n throw error\n }\n }\n\n // -------------------------------------------------------------------------\n // Override Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes up sql queries.\n */\n async executeMemoryUpSql(): Promise<void> {\n for (const { query, parameters } of this.sqlInMemory.upQueries) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n /**\n * Executes down sql queries.\n */\n async executeMemoryDownSql(): Promise<void> {\n for (const {\n query,\n parameters,\n } of this.sqlInMemory.downQueries.reverse()) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected async loadViews(viewNames?: string[]): Promise<View[]> {\n // const hasTable = await this.hasTable(this.getTypeormMetadataTableName())\n // if (!hasTable) {\n // return []\n // }\n //\n // if (!viewNames) {\n // viewNames = []\n // }\n //\n // const escapedViewNames = viewNames\n // .map((viewName) => `'${viewName}'`)\n // .join(\", \")\n //\n // const query =\n // `SELECT \\`T\\`.*, \\`V\\`.\\`VIEW_DEFINITION\\` FROM ${this.escapePath(\n // this.getTypeormMetadataTableName(),\n // )} \\`T\\` ` +\n // `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`VIEWS\\` \\`V\\` ON \\`V\\`.\\`TABLE_NAME\\` = \\`T\\`.\\`NAME\\` ` +\n // `WHERE \\`T\\`.\\`TYPE\\` = '${MetadataTableType.VIEW}' ${\n // viewNames.length\n // ? ` AND \\`T\\`.\\`NAME\\` IN (${escapedViewNames})`\n // : \"\"\n // }`\n // const dbViews = await this.query(query)\n // return dbViews.map((dbView: any) => {\n // const view = new View()\n // view.database = dbView[\"NAME\"]\n // view.name = this.driver.buildTableName(dbView[\"NAME\"])\n // view.expression = dbView[\"NAME\"]\n // return view\n // })\n\n return Promise.resolve([])\n }\n\n /**\n * Loads all tables (with given names) from the database and creates a Table from them.\n */\n protected async loadTables(tableNames?: string[]): Promise<Table[]> {\n if (tableNames && tableNames.length === 0) {\n return []\n }\n\n const dbTables: { TABLE_NAME: string }[] = []\n\n if (!tableNames || !tableNames.length) {\n // Since we don't have any of this data we have to do a scan\n const tablesSql =\n `SELECT \\`TABLE_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE'`\n dbTables.push(...(await this.query(tablesSql)))\n } else {\n const tablesSql =\n `SELECT \\`TABLE_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE' ` +\n `AND \\`TABLE_NAME\\` IN (${tableNames\n .map((tableName) => `'${tableName}'`)\n .join(\", \")})`\n\n dbTables.push(...(await this.query(tablesSql)))\n }\n\n // if tables were not found in the db, no need to proceed\n if (!dbTables.length) return []\n\n const loadedTableNames = dbTables\n .map((dbTable) => `'${dbTable.TABLE_NAME}'`)\n .join(\", \")\n\n const columnsSql = `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`COLUMNS\\` WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const primaryKeySql =\n `SELECT \\`KCU\\`.\\`TABLE_NAME\\`, \\`KCU\\`.\\`COLUMN_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`KEY_COLUMN_USAGE\\` \\`KCU\\` ON \\`KCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'PRIMARY KEY' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const indicesSql =\n `SELECT \\`I\\`.\\`TABLE_NAME\\`, \\`I\\`.\\`INDEX_NAME\\`, \\`I\\`.\\`IS_UNIQUE\\`, \\`I\\`.\\`IS_NULL_FILTERED\\`, \\`IC\\`.\\`COLUMN_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`INDEXES\\` \\`I\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`INDEX_COLUMNS\\` \\`IC\\` ON \\`IC\\`.\\`INDEX_NAME\\` = \\`I\\`.\\`INDEX_NAME\\` ` +\n `AND \\`IC\\`.\\`TABLE_NAME\\` = \\`I\\`.\\`TABLE_NAME\\` ` +\n `WHERE \\`I\\`.\\`TABLE_CATALOG\\` = '' AND \\`I\\`.\\`TABLE_SCHEMA\\` = '' AND \\`I\\`.\\`TABLE_NAME\\` IN (${loadedTableNames}) ` +\n `AND \\`I\\`.\\`INDEX_TYPE\\` = 'INDEX' AND \\`I\\`.\\`SPANNER_IS_MANAGED\\` = false`\n\n const checksSql =\n `SELECT \\`TC\\`.\\`TABLE_NAME\\`, \\`TC\\`.\\`CONSTRAINT_NAME\\`, \\`CC\\`.\\`CHECK_CLAUSE\\`, \\`CCU\\`.\\`COLUMN_NAME\\`` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_COLUMN_USAGE\\` \\`CCU\\` ON \\`CCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CHECK_CONSTRAINTS\\` \\`CC\\` ON \\`CC\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'CHECK' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames}) AND \\`TC\\`.\\`CONSTRAINT_NAME\\` NOT LIKE 'CK_IS_NOT_NULL%'`\n\n const foreignKeysSql =\n `SELECT \\`TC\\`.\\`TABLE_NAME\\`, \\`TC\\`.\\`CONSTRAINT_NAME\\`, \\`KCU\\`.\\`COLUMN_NAME\\`, ` +\n `\\`CTU\\`.\\`TABLE_NAME\\` AS \\`REFERENCED_TABLE_NAME\\`, \\`CCU\\`.\\`COLUMN_NAME\\` AS \\`REFERENCED_COLUMN_NAME\\`, ` +\n `\\`RC\\`.\\`UPDATE_RULE\\`, \\`RC\\`.\\`DELETE_RULE\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`KEY_COLUMN_USAGE\\` \\`KCU\\` ON \\`KCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_TABLE_USAGE\\` \\`CTU\\` ON \\`CTU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`REFERENTIAL_CONSTRAINTS\\` \\`RC\\` ON \\`RC\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_COLUMN_USAGE\\` \\`CCU\\` ON \\`CCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'FOREIGN KEY' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const [\n dbColumns,\n dbPrimaryKeys,\n dbIndices,\n dbChecks,\n dbForeignKeys,\n ]: ObjectLiteral[][] = await Promise.all([\n this.query(columnsSql),\n this.query(primaryKeySql),\n this.query(indicesSql),\n this.query(checksSql),\n this.query(foreignKeysSql),\n ])\n\n // create tables for loaded tables\n return Promise.all(\n dbTables.map(async (dbTable) => {\n const table = new Table()\n\n table.name = this.driver.buildTableName(dbTable[\"TABLE_NAME\"])\n\n // create columns from the loaded columns\n table.columns = await Promise.all(\n dbColumns\n .filter(\n (dbColumn) =>\n dbColumn[\"TABLE_NAME\"] ===\n dbTable[\"TABLE_NAME\"],\n )\n .map(async (dbColumn) => {\n const columnUniqueIndices = dbIndices.filter(\n (dbIndex) => {\n return (\n dbIndex[\"TABLE_NAME\"] ===\n dbTable[\"TABLE_NAME\"] &&\n dbIndex[\"COLUMN_NAME\"] ===\n dbColumn[\"COLUMN_NAME\"] &&\n dbIndex[\"IS_UNIQUE\"] === true\n )\n },\n )\n\n const tableMetadata =\n this.connection.entityMetadatas.find(\n (metadata) =>\n this.getTablePath(table) ===\n this.getTablePath(metadata),\n )\n const hasIgnoredIndex =\n columnUniqueIndices.length > 0 &&\n tableMetadata &&\n tableMetadata.indices.some((index) => {\n return columnUniqueIndices.some(\n (uniqueIndex) => {\n return (\n index.name ===\n uniqueIndex[\"INDEX_NAME\"] &&\n index.synchronize === false\n )\n },\n )\n })\n\n const isConstraintComposite =\n columnUniqueIndices.every((uniqueIndex) => {\n return dbIndices.some(\n (dbIndex) =>\n dbIndex[\"INDEX_NAME\"] ===\n uniqueIndex[\"INDEX_NAME\"] &&\n dbIndex[\"COLUMN_NAME\"] !==\n dbColumn[\"COLUMN_NAME\"],\n )\n })\n\n const tableColumn = new TableColumn()\n tableColumn.name = dbColumn[\"COLUMN_NAME\"]\n\n let fullType =\n dbColumn[\"SPANNER_TYPE\"].toLowerCase()\n if (fullType.indexOf(\"array\") !== -1) {\n tableColumn.isArray = true\n fullType = fullType.substring(\n fullType.indexOf(\"<\") + 1,\n fullType.indexOf(\">\"),\n )\n }\n\n if (fullType.indexOf(\"(\") !== -1) {\n tableColumn.type = fullType.substring(\n 0,\n fullType.indexOf(\"(\"),\n )\n } else {\n tableColumn.type = fullType\n }\n\n if (\n this.driver.withLengthColumnTypes.indexOf(\n tableColumn.type as ColumnType,\n ) !== -1\n ) {\n tableColumn.length = fullType.substring(\n fullType.indexOf(\"(\") + 1,\n fullType.indexOf(\")\"),\n )\n }\n\n if (dbColumn[\"IS_GENERATED\"] === \"ALWAYS\") {\n tableColumn.asExpression =\n dbColumn[\"GENERATION_EXPRESSION\"]\n tableColumn.generatedType = \"STORED\"\n\n // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.\n const asExpressionQuery =\n this.selectTypeormMetadataSql({\n table: dbTable[\"TABLE_NAME\"],\n type: MetadataTableType.GENERATED_COLUMN,\n name: tableColumn.name,\n })\n\n const results = await this.query(\n asExpressionQuery.query,\n asExpressionQuery.parameters,\n )\n\n if (results[0] && results[0].value) {\n tableColumn.asExpression = results[0].value\n } else {\n tableColumn.asExpression = \"\"\n }\n }\n\n tableColumn.isUnique =\n columnUniqueIndices.length > 0 &&\n !hasIgnoredIndex &&\n !isConstraintComposite\n tableColumn.isNullable =\n dbColumn[\"IS_NULLABLE\"] === \"YES\"\n tableColumn.isPrimary = dbPrimaryKeys.some(\n (dbPrimaryKey) => {\n return (\n dbPrimaryKey[\"TABLE_NAME\"] ===\n dbColumn[\"TABLE_NAME\"] &&\n dbPrimaryKey[\"COLUMN_NAME\"] ===\n dbColumn[\"COLUMN_NAME\"]\n )\n },\n )\n\n return tableColumn\n }),\n )\n\n const tableForeignKeys = dbForeignKeys.filter(\n (dbForeignKey) => {\n return (\n dbForeignKey[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"]\n )\n },\n )\n\n table.foreignKeys = OrmUtils.uniq(\n tableForeignKeys,\n (dbForeignKey) => dbForeignKey[\"CONSTRAINT_NAME\"],\n ).map((dbForeignKey) => {\n const foreignKeys = tableForeignKeys.filter(\n (dbFk) =>\n dbFk[\"CONSTRAINT_NAME\"] ===\n dbForeignKey[\"CONSTRAINT_NAME\"],\n )\n return new TableForeignKey({\n name: dbForeignKey[\"CONSTRAINT_NAME\"],\n columnNames: OrmUtils.uniq(\n foreignKeys.map((dbFk) => dbFk[\"COLUMN_NAME\"]),\n ),\n referencedDatabase:\n dbForeignKey[\"REFERENCED_TABLE_SCHEMA\"],\n referencedTableName:\n dbForeignKey[\"REFERENCED_TABLE_NAME\"],\n referencedColumnNames: OrmUtils.uniq(\n foreignKeys.map(\n (dbFk) => dbFk[\"REFERENCED_COLUMN_NAME\"],\n ),\n ),\n onDelete: dbForeignKey[\"DELETE_RULE\"],\n onUpdate: dbForeignKey[\"UPDATE_RULE\"],\n })\n })\n\n const tableIndices = dbIndices.filter(\n (dbIndex) =>\n dbIndex[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"],\n )\n\n table.indices = OrmUtils.uniq(\n tableIndices,\n (dbIndex) => dbIndex[\"INDEX_NAME\"],\n ).map((constraint) => {\n const indices = tableIndices.filter((index) => {\n return index[\"INDEX_NAME\"] === constraint[\"INDEX_NAME\"]\n })\n\n return new TableIndex(<TableIndexOptions>{\n table: table,\n name: constraint[\"INDEX_NAME\"],\n columnNames: indices.map((i) => i[\"COLUMN_NAME\"]),\n isUnique: constraint[\"IS_UNIQUE\"],\n isNullFiltered: constraint[\"IS_NULL_FILTERED\"],\n })\n })\n\n const tableChecks = dbChecks.filter(\n (dbCheck) =>\n dbCheck[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"],\n )\n\n table.checks = OrmUtils.uniq(\n tableChecks,\n (dbIndex) => dbIndex[\"CONSTRAINT_NAME\"],\n ).map((constraint) => {\n const checks = tableChecks.filter(\n (dbC) =>\n dbC[\"CONSTRAINT_NAME\"] ===\n constraint[\"CONSTRAINT_NAME\"],\n )\n return new TableCheck({\n name: constraint[\"CONSTRAINT_NAME\"],\n columnNames: checks.map((c) => c[\"COLUMN_NAME\"]),\n expression: constraint[\"CHECK_CLAUSE\"],\n })\n })\n\n return table\n }),\n )\n }\n\n /**\n * Builds create table sql.\n */\n protected createTableSql(table: Table, createForeignKeys?: boolean): Query {\n const columnDefinitions = table.columns\n .map((column) => this.buildCreateColumnSql(column))\n .join(\", \")\n let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`\n\n // we create unique indexes instead of unique constraints, because Spanner does not have unique constraints.\n // if we mark column as Unique, it means that we create UNIQUE INDEX.\n table.columns\n .filter((column) => column.isUnique)\n .forEach((column) => {\n const isUniqueIndexExist = table.indices.some((index) => {\n return (\n index.columnNames.length === 1 &&\n !!index.isUnique &&\n index.columnNames.indexOf(column.name) !== -1\n )\n })\n const isUniqueConstraintExist = table.uniques.some((unique) => {\n return (\n unique.columnNames.length === 1 &&\n unique.columnNames.indexOf(column.name) !== -1\n )\n })\n if (!isUniqueIndexExist && !isUniqueConstraintExist)\n table.indices.push(\n new TableIndex({\n name: this.connection.namingStrategy.uniqueConstraintName(\n table,\n [column.name],\n ),\n columnNames: [column.name],\n isUnique: true,\n }),\n )\n })\n\n // as Spanner does not have unique constraints, we must create table indices from table uniques and mark them as unique.\n if (table.uniques.length > 0) {\n table.uniques.forEach((unique) => {\n const uniqueExist = table.indices.some(\n (index) => index.name === unique.name,\n )\n if (!uniqueExist) {\n table.indices.push(\n new TableIndex({\n name: unique.name,\n columnNames: unique.columnNames,\n isUnique: true,\n }),\n )\n }\n })\n }\n\n if (table.checks.length > 0) {\n const checksSql = table.checks\n .map((check) => {\n const checkName = check.name\n ? check.name\n : this.connection.namingStrategy.checkConstraintName(\n table,\n check.expression!,\n )\n return `CONSTRAINT \\`${checkName}\\` CHECK (${check.expression})`\n })\n .join(\", \")\n\n sql += `, ${checksSql}`\n }\n\n if (table.foreignKeys.length > 0 && createForeignKeys) {\n const foreignKeysSql = table.foreignKeys\n .map((fk) => {\n const columnNames = fk.columnNames\n .map((columnName) => `\\`${columnName}\\``)\n .join(\", \")\n if (!fk.name)\n fk.name = this.connection.namingStrategy.foreignKeyName(\n table,\n fk.columnNames,\n this.getTablePath(fk),\n fk.referencedColumnNames,\n )\n const referencedColumnNames = fk.referencedColumnNames\n .map((columnName) => `\\`${columnName}\\``)\n .join(\", \")\n\n return `CONSTRAINT \\`${\n fk.name\n }\\` FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(\n this.getTablePath(fk),\n )} (${referencedColumnNames})`\n })\n .join(\", \")\n\n sql += `, ${foreignKeysSql}`\n }\n\n sql += `)`\n\n const primaryColumns = table.columns.filter(\n (column) => column.isPrimary,\n )\n if (primaryColumns.length > 0) {\n const columnNames = primaryColumns\n .map((column) => this.driver.escape(column.name))\n .join(\", \")\n sql += ` PRIMARY KEY (${columnNames})`\n }\n\n return new Query(sql)\n }\n\n /**\n * Builds drop table sql.\n */\n protected dropTableSql(tableOrPath: Table | string): Query {\n return new Query(`DROP TABLE ${this.escapePath(tableOrPath)}`)\n }\n\n protected createViewSql(view: View): Query {\n const materializedClause = view.materialized ? \"MATERIALIZED \" : \"\"\n const viewName = this.escapePath(view)\n\n const expression =\n typeof view.expression === \"string\"\n ? view.expression\n : view.expression(this.connection).getQuery()\n return new Query(\n `CREATE ${materializedClause}VIEW ${viewName} SQL SECURITY INVOKER AS ${expression}`,\n )\n }\n\n protected async insertViewDefinitionSql(view: View): Promise<Query> {\n const { schema, tableName: name } = this.driver.parseTableName(view)\n\n const type = view.materialized\n ? MetadataTableType.MATERIALIZED_VIEW\n : MetadataTableType.VIEW\n const expression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n return this.insertTypeormMetadataSql({\n type,\n schema,\n name,\n value: expression,\n })\n }\n\n /**\n * Builds drop view sql.\n */\n protected dropViewSql(view: View): Query {\n const materializedClause = view.materialized ? \"MATERIALIZED \" : \"\"\n return new Query(\n `DROP ${materializedClause}VIEW ${this.escapePath(view)}`,\n )\n }\n\n /**\n * Builds remove view sql.\n */\n protected async deleteViewDefinitionSql(view: View): Promise<Query> {\n const { schema, tableName: name } = this.driver.parseTableName(view)\n\n const type = view.materialized\n ? MetadataTableType.MATERIALIZED_VIEW\n : MetadataTableType.VIEW\n return this.deleteTypeormMetadataSql({ type, schema, name })\n }\n\n /**\n * Builds create index sql.\n */\n protected createIndexSql(table: Table, index: TableIndex): Query {\n const columns = index.columnNames\n .map((columnName) => this.driver.escape(columnName))\n .join(\", \")\n let indexType = \"\"\n if (index.isUnique) indexType += \"UNIQUE \"\n if (index.isNullFiltered) indexType += \"NULL_FILTERED \"\n\n return new Query(\n `CREATE ${indexType}INDEX \\`${index.name}\\` ON ${this.escapePath(\n table,\n )} (${columns})`,\n )\n }\n\n /**\n * Builds drop index sql.\n */\n protected dropIndexSql(\n table: Table,\n indexOrName: TableIndex | string,\n ): Query {\n const indexName =\n indexOrName instanceof TableIndex ? indexOrName.name : indexOrName\n return new Query(`DROP INDEX \\`${indexName}\\``)\n }\n\n /**\n * Builds create check constraint sql.\n */\n protected createCheckConstraintSql(\n table: Table,\n checkConstraint: TableCheck,\n ): Query {\n return new Query(\n `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \\`${\n checkConstraint.name\n }\\` CHECK (${checkConstraint.expression})`,\n )\n }\n\n /**\n * Builds drop check constraint sql.\n */\n protected dropCheckConstraintSql(\n table: Table,\n checkOrName: TableCheck | string,\n ): Query {\n const checkName =\n checkOrName instanceof TableCheck ? checkOrName.name : checkOrName\n return new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP CONSTRAINT \\`${checkName}\\``,\n )\n }\n\n /**\n * Builds create foreign key sql.\n */\n protected createForeignKeySql(\n table: Table,\n foreignKey: TableForeignKey,\n ): Query {\n const columnNames = foreignKey.columnNames\n .map((column) => this.driver.escape(column))\n .join(\", \")\n const referencedColumnNames = foreignKey.referencedColumnNames\n .map((column) => this.driver.escape(column))\n .join(\",\")\n const sql =\n `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \\`${\n foreignKey.name\n }\\` FOREIGN KEY (${columnNames}) ` +\n `REFERENCES ${this.escapePath(\n this.getTablePath(foreignKey),\n )} (${referencedColumnNames})`\n\n return new Query(sql)\n }\n\n /**\n * Builds drop foreign key sql.\n */\n protected dropForeignKeySql(\n table: Table,\n foreignKeyOrName: TableForeignKey | string,\n ): Query {\n const foreignKeyName =\n foreignKeyOrName instanceof TableForeignKey\n ? foreignKeyOrName.name\n : foreignKeyOrName\n return new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP CONSTRAINT \\`${foreignKeyName}\\``,\n )\n }\n\n /**\n * Escapes given table or view path.\n */\n protected escapePath(target: Table | View | string): string {\n const { tableName } = this.driver.parseTableName(target)\n return `\\`${tableName}\\``\n }\n\n /**\n * Builds a part of query to create/change a column.\n */\n protected buildCreateColumnSql(column: TableColumn) {\n let c = `${this.driver.escape(\n column.name,\n )} ${this.connection.driver.createFullType(column)}`\n\n // Spanner supports only STORED generated column type\n if (column.generatedType === \"STORED\" && column.asExpression) {\n c += ` AS (${column.asExpression}) STORED`\n } else {\n if (!column.isNullable) c += \" NOT NULL\"\n }\n\n return c\n }\n\n /**\n * Executes sql used special for schema build.\n */\n protected async executeQueries(\n upQueries: Query | Query[],\n downQueries: Query | Query[],\n ): Promise<void> {\n if (upQueries instanceof Query) upQueries = [upQueries]\n if (downQueries instanceof Query) downQueries = [downQueries]\n\n this.sqlInMemory.upQueries.push(...upQueries)\n this.sqlInMemory.downQueries.push(...downQueries)\n\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return Promise.resolve() as Promise<any>\n\n for (const { query, parameters } of upQueries) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n protected isDMLQuery(query: string): boolean {\n return (\n query.startsWith(\"INSERT\") ||\n query.startsWith(\"UPDATE\") ||\n query.startsWith(\"DELETE\")\n )\n }\n\n /**\n * Change table comment.\n */\n changeTableComment(\n tableOrName: Table | string,\n comment?: string,\n ): Promise<void> {\n throw new TypeORMError(\n `spanner driver does not support change table comment.`,\n )\n }\n}\n"],"sourceRoot":"../.."}
|
|
1
|
+
{"version":3,"file":"SpannerQueryRunner.js","sourceRoot":"","sources":["../../../../src/driver/spanner/SpannerQueryRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { TypeORMError } from \"../../error\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { TransactionNotStartedError } from \"../../error/TransactionNotStartedError\"\nimport type { ReadStream } from \"../../platform/PlatformTools\"\nimport { BaseQueryRunner } from \"../../query-runner/BaseQueryRunner\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport type { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport type { TableIndexOptions } from \"../../schema-builder/options/TableIndexOptions\"\nimport { Table } from \"../../schema-builder/table/Table\"\nimport { TableCheck } from \"../../schema-builder/table/TableCheck\"\nimport { TableColumn } from \"../../schema-builder/table/TableColumn\"\nimport type { TableExclusion } from \"../../schema-builder/table/TableExclusion\"\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\"\nimport { TableIndex } from \"../../schema-builder/table/TableIndex\"\nimport { TableUnique } from \"../../schema-builder/table/TableUnique\"\nimport { View } from \"../../schema-builder/view/View\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport { Query } from \"../Query\"\nimport type { ColumnType } from \"../types/ColumnTypes\"\nimport type { IsolationLevel } from \"../types/IsolationLevel\"\nimport { MetadataTableType } from \"../types/MetadataTableType\"\nimport type { ReplicationMode } from \"../types/ReplicationMode\"\nimport type { SpannerDriver } from \"./SpannerDriver\"\n\n/**\n * Runs queries on a single postgres database connection.\n */\nexport class SpannerQueryRunner extends BaseQueryRunner implements QueryRunner {\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database driver used by connection.\n */\n driver: SpannerDriver\n\n /**\n * Real database connection from a connection pool used to perform queries.\n */\n protected session?: any\n\n /**\n * Transaction currently executed by this session.\n */\n protected sessionTransaction?: any\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SpannerDriver, mode: ReplicationMode) {\n super()\n this.driver = driver\n this.dataSource = driver.dataSource\n this.mode = mode\n this.broadcaster = new Broadcaster(this)\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n async connect(): Promise<any> {\n if (this.session) {\n return Promise.resolve(this.session)\n }\n\n const [session] = await this.driver.instanceDatabase.createSession({})\n this.session = session\n this.sessionTransaction = await session.transaction()\n return this.session\n }\n\n /**\n * Releases used database connection.\n * You cannot use query runner methods once its released.\n */\n async release(): Promise<void> {\n this.isReleased = true\n if (this.session) {\n await this.session.delete()\n }\n this.session = undefined\n return Promise.resolve()\n }\n\n /**\n * Starts transaction.\n * @param isolationLevel\n */\n async startTransaction(isolationLevel?: IsolationLevel): Promise<void> {\n this.isTransactionActive = true\n try {\n await this.broadcaster.broadcast(\"BeforeTransactionStart\")\n } catch (err) {\n this.isTransactionActive = false\n throw err\n }\n\n await this.connect()\n await this.sessionTransaction.begin()\n this.dataSource.logger.logQuery(\"START TRANSACTION\")\n\n await this.broadcaster.broadcast(\"AfterTransactionStart\")\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive || !this.sessionTransaction)\n throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionCommit\")\n\n await this.sessionTransaction.commit()\n this.dataSource.logger.logQuery(\"COMMIT\")\n this.isTransactionActive = false\n\n await this.broadcaster.broadcast(\"AfterTransactionCommit\")\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive || !this.sessionTransaction)\n throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionRollback\")\n\n await this.sessionTransaction.rollback()\n this.dataSource.logger.logQuery(\"ROLLBACK\")\n this.isTransactionActive = false\n\n await this.broadcaster.broadcast(\"AfterTransactionRollback\")\n }\n\n /**\n * Executes a given SQL query.\n * @param query\n * @param parameters\n * @param useStructuredResult\n */\n async query(\n query: string,\n parameters?: any[],\n useStructuredResult: boolean = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n await this.connect()\n\n this.driver.dataSource.logger.logQuery(query, parameters, this)\n await this.broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n try {\n const queryStartTime = Date.now()\n let rawResult:\n | [\n any[],\n {\n queryPlan: null\n queryStats: null\n rowCountExact: string\n rowCount: string\n },\n { rowType: { fields: [] }; transaction: null },\n ]\n | undefined = undefined\n const isSelect = query.startsWith(\"SELECT\")\n const executor =\n isSelect && !this.isTransactionActive\n ? this.driver.instanceDatabase\n : this.sessionTransaction\n\n if (!this.isTransactionActive && !isSelect) {\n await this.sessionTransaction.begin()\n }\n\n try {\n rawResult = await executor.run({\n sql: query,\n params: parameters\n ? parameters.reduce((params, value, index) => {\n params[\"param\" + index] = value\n return params\n }, {} as ObjectLiteral)\n : undefined,\n json: true,\n })\n if (!this.isTransactionActive && !isSelect) {\n await this.sessionTransaction.commit()\n }\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (!this.isTransactionActive && !isSelect)\n await this.sessionTransaction.rollback()\n } catch (rollbackError) {}\n throw error\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n rawResult,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.dataSource.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n const result = new QueryResult()\n\n result.raw = rawResult\n result.records = rawResult ? rawResult[0] : []\n if (rawResult && rawResult[1] && rawResult[1].rowCountExact) {\n result.affected = parseInt(rawResult[1].rowCountExact)\n }\n\n if (!useStructuredResult) {\n return result.records\n }\n\n return result\n } catch (err) {\n this.driver.dataSource.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n throw new QueryFailedError(query, parameters, err)\n } finally {\n await broadcasterResult.wait()\n }\n }\n\n /**\n * Update database schema.\n * Used for creating/altering/dropping tables, columns, indexes, etc.\n *\n * DDL changing queries should be executed by `updateSchema()` method.\n * @param query\n * @param parameters\n */\n async updateDDL(query: string, parameters?: any[]): Promise<void> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n this.driver.dataSource.logger.logQuery(query, parameters, this)\n try {\n const queryStartTime = Date.now()\n const [operation] =\n await this.driver.instanceDatabase.updateSchema(query)\n await operation.promise()\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.dataSource.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n } catch (err) {\n this.driver.dataSource.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n /**\n * Returns raw data stream.\n * @param query\n * @param parameters\n * @param onEnd\n * @param onError\n */\n async stream(\n query: string,\n parameters?: any[],\n onEnd?: Function,\n onError?: Function,\n ): Promise<ReadStream> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n try {\n this.driver.dataSource.logger.logQuery(query, parameters, this)\n const request = {\n sql: query,\n params: parameters\n ? parameters.reduce((params, value, index) => {\n params[\"param\" + index] = value\n return params\n }, {} as ObjectLiteral)\n : undefined,\n json: true,\n }\n const stream = this.driver.instanceDatabase.runStream(request)\n\n if (onEnd) {\n stream.on(\"end\", onEnd)\n }\n\n if (onError) {\n stream.on(\"error\", onError)\n }\n\n return stream\n } catch (err) {\n this.driver.dataSource.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n /**\n * Returns all available database names including system databases.\n */\n async getDatabases(): Promise<string[]> {\n return Promise.resolve([])\n }\n\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n * @param database\n */\n async getSchemas(database?: string): Promise<string[]> {\n return Promise.resolve([])\n }\n\n /**\n * Checks if database with the given name exist.\n * @param database\n */\n async hasDatabase(database: string): Promise<boolean> {\n throw new TypeORMError(\n `Check database queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Loads currently using database\n */\n async getCurrentDatabase(): Promise<string> {\n throw new TypeORMError(\n `Check database queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Checks if schema with the given name exist.\n * @param schema\n */\n async hasSchema(schema: string): Promise<boolean> {\n const result = await this.query(\n `SELECT * FROM \"information_schema\".\"schemata\" WHERE \"schema_name\" = @param0`,\n [schema],\n )\n return result.length ? true : false\n }\n\n /**\n * Loads currently using database schema\n */\n async getCurrentSchema(): Promise<string> {\n throw new TypeORMError(\n `Check schema queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Checks if table with the given name exist in the database.\n * @param tableOrName\n */\n async hasTable(tableOrName: Table | string): Promise<boolean> {\n const tableName =\n tableOrName instanceof Table ? tableOrName.name : tableOrName\n const sql =\n `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE' ` +\n `AND \\`TABLE_NAME\\` = @param0`\n const result = await this.query(sql, [tableName])\n return result.length ? true : false\n }\n\n /**\n * Checks if column with the given name exist in the given table.\n * @param tableOrName\n * @param columnName\n */\n async hasColumn(\n tableOrName: Table | string,\n columnName: string,\n ): Promise<boolean> {\n const tableName =\n tableOrName instanceof Table ? tableOrName.name : tableOrName\n const sql =\n `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`COLUMNS\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' ` +\n `AND \\`TABLE_NAME\\` = @param0 AND \\`COLUMN_NAME\\` = @param1`\n const result = await this.query(sql, [tableName, columnName])\n return result.length ? true : false\n }\n\n /**\n * Creates a new database.\n * Note: Spanner does not support database creation inside a transaction block.\n * @param database\n * @param ifNotExists\n */\n async createDatabase(\n database: string,\n ifNotExists?: boolean,\n ): Promise<void> {\n if (ifNotExists) {\n const databaseAlreadyExists = await this.hasDatabase(database)\n\n if (databaseAlreadyExists) return Promise.resolve()\n }\n\n const escaped = this.driver.escape(database)\n const up = `CREATE DATABASE ${escaped}`\n const down = `DROP DATABASE ${escaped}`\n await this.executeQueries(new Query(up), new Query(down))\n }\n\n /**\n * Drops database.\n * Note: Spanner does not support database dropping inside a transaction block.\n * @param database\n * @param ifExists\n */\n async dropDatabase(database: string, ifExists?: boolean): Promise<void> {\n if (ifExists) {\n const databaseExists = await this.hasDatabase(database)\n if (!databaseExists) return\n }\n\n const escaped = this.driver.escape(database)\n const up = `DROP DATABASE ${escaped}`\n const down = `CREATE DATABASE ${escaped}`\n await this.executeQueries(new Query(up), new Query(down))\n }\n\n /**\n * Creates a new table schema.\n * @param schemaPath\n * @param ifNotExists\n */\n async createSchema(\n schemaPath: string,\n ifNotExists?: boolean,\n ): Promise<void> {\n return Promise.resolve()\n }\n\n /**\n * Drops table schema.\n * @param schemaPath\n * @param ifExists\n * @param isCascade\n */\n async dropSchema(\n schemaPath: string,\n ifExists?: boolean,\n isCascade?: boolean,\n ): Promise<void> {\n return Promise.resolve()\n }\n\n /**\n * Creates a new table.\n * @param table\n * @param ifNotExists\n * @param createForeignKeys\n * @param createIndices\n */\n async createTable(\n table: Table,\n ifNotExists: boolean = false,\n createForeignKeys: boolean = true,\n createIndices: boolean = true,\n ): Promise<void> {\n if (ifNotExists) {\n const isTableExist = await this.hasTable(table)\n if (isTableExist) return Promise.resolve()\n }\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n upQueries.push(this.createTableSql(table, createForeignKeys))\n downQueries.push(this.dropTableSql(table))\n\n // if createForeignKeys is true, we must drop created foreign keys in down query.\n // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.\n if (createForeignKeys)\n table.foreignKeys.forEach((foreignKey) =>\n downQueries.push(this.dropForeignKeySql(table, foreignKey)),\n )\n\n if (createIndices) {\n table.indices.forEach((index) => {\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name)\n index.name = this.dataSource.namingStrategy.indexName(\n table,\n index.columnNames,\n index.where,\n )\n upQueries.push(this.createIndexSql(table, index))\n downQueries.push(this.dropIndexSql(table, index))\n })\n }\n\n // if table has column with generated type, we must add the expression to the metadata table\n const generatedColumns = table.columns.filter(\n (column) => column.generatedType && column.asExpression,\n )\n\n for (const column of generatedColumns) {\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n upQueries.push(insertQuery)\n downQueries.push(deleteQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Drops the table.\n * @param target\n * @param ifExists\n * @param dropForeignKeys\n * @param dropIndices\n */\n async dropTable(\n target: Table | string,\n ifExists?: boolean,\n dropForeignKeys: boolean = true,\n dropIndices: boolean = true,\n ): Promise<void> {\n // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need\n // to perform drop queries for foreign keys and indices.\n if (ifExists) {\n const isTableExist = await this.hasTable(target)\n if (!isTableExist) return Promise.resolve()\n }\n\n // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.\n const createForeignKeys: boolean = dropForeignKeys\n const tablePath = this.getTablePath(target)\n const table = await this.getCachedTable(tablePath)\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n if (dropIndices) {\n table.indices.forEach((index) => {\n upQueries.push(this.dropIndexSql(table, index))\n downQueries.push(this.createIndexSql(table, index))\n })\n }\n\n if (dropForeignKeys)\n table.foreignKeys.forEach((foreignKey) =>\n upQueries.push(this.dropForeignKeySql(table, foreignKey)),\n )\n\n upQueries.push(this.dropTableSql(table))\n downQueries.push(this.createTableSql(table, createForeignKeys))\n\n // if table had columns with generated type, we must remove the expression from the metadata table\n const generatedColumns = table.columns.filter(\n (column) => column.generatedType && column.asExpression,\n )\n\n for (const column of generatedColumns) {\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n upQueries.push(deleteQuery)\n downQueries.push(insertQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Creates a new view.\n * @param view\n */\n async createView(view: View): Promise<void> {\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n upQueries.push(this.createViewSql(view))\n upQueries.push(await this.insertViewDefinitionSql(view))\n downQueries.push(this.dropViewSql(view))\n downQueries.push(await this.deleteViewDefinitionSql(view))\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Drops the view.\n * @param target\n * @param ifExists\n */\n async dropView(target: View | string, ifExists?: boolean): Promise<void> {\n const viewName = target instanceof View ? target.name : target\n\n if (ifExists) {\n const foundViews = await this.loadViews([viewName])\n if (foundViews.length === 0) return\n }\n\n const view = await this.getCachedView(viewName)\n\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n upQueries.push(await this.deleteViewDefinitionSql(view))\n upQueries.push(this.dropViewSql(view))\n downQueries.push(await this.insertViewDefinitionSql(view))\n downQueries.push(this.createViewSql(view))\n await this.executeQueries(upQueries, downQueries)\n }\n\n /**\n * Renames the given table.\n * @param oldTableOrName\n * @param newTableName\n */\n async renameTable(\n oldTableOrName: Table | string,\n newTableName: string,\n ): Promise<void> {\n throw new TypeORMError(\n `Rename table queries are not supported by Spanner driver.`,\n )\n }\n\n /**\n * Creates a new column from the column in the table.\n * @param tableOrName\n * @param column\n */\n async addColumn(\n tableOrName: Table | string,\n column: TableColumn,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ADD ${this.buildCreateColumnSql(column)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP COLUMN ${this.driver.escape(column.name)}`,\n ),\n )\n\n // create column index\n const columnIndex = clonedTable.indices.find(\n (index) =>\n index.columnNames.length === 1 &&\n index.columnNames[0] === column.name,\n )\n if (columnIndex) {\n upQueries.push(this.createIndexSql(table, columnIndex))\n downQueries.push(this.dropIndexSql(table, columnIndex))\n } else if (column.isUnique) {\n const uniqueIndex = new TableIndex({\n name: this.dataSource.namingStrategy.indexName(table, [\n column.name,\n ]),\n columnNames: [column.name],\n isUnique: true,\n })\n clonedTable.indices.push(uniqueIndex)\n clonedTable.uniques.push(\n new TableUnique({\n name: uniqueIndex.name,\n columnNames: uniqueIndex.columnNames,\n }),\n )\n\n upQueries.push(this.createIndexSql(table, uniqueIndex))\n downQueries.push(this.dropIndexSql(table, uniqueIndex))\n }\n\n if (column.generatedType && column.asExpression) {\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n\n upQueries.push(insertQuery)\n downQueries.push(deleteQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n\n clonedTable.addColumn(column)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Creates a new columns from the column in the table.\n * @param tableOrName\n * @param columns\n */\n async addColumns(\n tableOrName: Table | string,\n columns: TableColumn[],\n ): Promise<void> {\n for (const column of columns) {\n await this.addColumn(tableOrName, column)\n }\n }\n\n /**\n * Renames column in the given table.\n * @param tableOrName\n * @param oldTableColumnOrName\n * @param newTableColumnOrName\n */\n async renameColumn(\n tableOrName: Table | string,\n oldTableColumnOrName: TableColumn | string,\n newTableColumnOrName: TableColumn | string,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const oldColumn =\n oldTableColumnOrName instanceof TableColumn\n ? oldTableColumnOrName\n : table.columns.find((c) => c.name === oldTableColumnOrName)\n if (!oldColumn)\n throw new TypeORMError(\n `Column \"${oldTableColumnOrName}\" was not found in the \"${table.name}\" table.`,\n )\n\n let newColumn\n if (newTableColumnOrName instanceof TableColumn) {\n newColumn = newTableColumnOrName\n } else {\n newColumn = oldColumn.clone()\n newColumn.name = newTableColumnOrName\n }\n\n return this.changeColumn(table, oldColumn, newColumn)\n }\n\n /**\n * Changes a column in the table.\n * @param tableOrName\n * @param oldTableColumnOrName\n * @param newColumn\n */\n async changeColumn(\n tableOrName: Table | string,\n oldTableColumnOrName: TableColumn | string,\n newColumn: TableColumn,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n let clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n const oldColumn =\n oldTableColumnOrName instanceof TableColumn\n ? oldTableColumnOrName\n : table.columns.find(\n (column) => column.name === oldTableColumnOrName,\n )\n if (!oldColumn)\n throw new TypeORMError(\n `Column \"${oldTableColumnOrName}\" was not found in the \"${table.name}\" table.`,\n )\n\n if (\n oldColumn.name !== newColumn.name ||\n oldColumn.type !== newColumn.type ||\n oldColumn.length !== newColumn.length ||\n oldColumn.isArray !== newColumn.isArray ||\n oldColumn.generatedType !== newColumn.generatedType ||\n oldColumn.asExpression !== newColumn.asExpression\n ) {\n // To avoid data conversion, we just recreate column\n await this.dropColumn(table, oldColumn)\n await this.addColumn(table, newColumn)\n\n // update cloned table\n clonedTable = table.clone()\n } else {\n if (\n newColumn.precision !== oldColumn.precision ||\n newColumn.scale !== oldColumn.scale\n ) {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(table)} ALTER COLUMN \"${\n newColumn.name\n }\" TYPE ${this.driver.createFullType(newColumn)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(table)} ALTER COLUMN \"${\n newColumn.name\n }\" TYPE ${this.driver.createFullType(oldColumn)}`,\n ),\n )\n }\n\n if (oldColumn.isNullable !== newColumn.isNullable) {\n if (newColumn.isNullable) {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" DROP NOT NULL`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" SET NOT NULL`,\n ),\n )\n } else {\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" SET NOT NULL`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ALTER COLUMN \"${oldColumn.name}\" DROP NOT NULL`,\n ),\n )\n }\n }\n\n if (newColumn.isUnique !== oldColumn.isUnique) {\n if (newColumn.isUnique === true) {\n const uniqueIndex = new TableIndex({\n name: this.dataSource.namingStrategy.indexName(table, [\n newColumn.name,\n ]),\n columnNames: [newColumn.name],\n isUnique: true,\n })\n clonedTable.indices.push(uniqueIndex)\n clonedTable.uniques.push(\n new TableUnique({\n name: uniqueIndex.name,\n columnNames: uniqueIndex.columnNames,\n }),\n )\n\n upQueries.push(this.createIndexSql(table, uniqueIndex))\n downQueries.push(this.dropIndexSql(table, uniqueIndex))\n } else {\n const uniqueIndex = clonedTable.indices.find((index) => {\n return (\n index.columnNames.length === 1 &&\n index.isUnique === true &&\n !!index.columnNames.find(\n (columnName) => columnName === newColumn.name,\n )\n )\n })\n clonedTable.indices.splice(\n clonedTable.indices.indexOf(uniqueIndex!),\n 1,\n )\n\n const tableUnique = clonedTable.uniques.find(\n (unique) => unique.name === uniqueIndex!.name,\n )\n clonedTable.uniques.splice(\n clonedTable.uniques.indexOf(tableUnique!),\n 1,\n )\n\n upQueries.push(this.dropIndexSql(table, uniqueIndex!))\n downQueries.push(this.createIndexSql(table, uniqueIndex!))\n }\n }\n }\n\n await this.executeQueries(upQueries, downQueries)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Changes a column in the table.\n * @param tableOrName\n * @param changedColumns\n */\n async changeColumns(\n tableOrName: Table | string,\n changedColumns: { newColumn: TableColumn; oldColumn: TableColumn }[],\n ): Promise<void> {\n for (const { oldColumn, newColumn } of changedColumns) {\n await this.changeColumn(tableOrName, oldColumn, newColumn)\n }\n }\n\n /**\n * Drops column in the table.\n * @param tableOrName\n * @param columnOrName\n * @param ifExists\n */\n async dropColumn(\n tableOrName: Table | string,\n columnOrName: TableColumn | string,\n ifExists?: boolean,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const column =\n columnOrName instanceof TableColumn\n ? columnOrName\n : table.findColumnByName(columnOrName)\n if (!column) {\n if (ifExists) return\n throw new TypeORMError(\n `Column \"${columnOrName}\" was not found in table \"${table.name}\"`,\n )\n }\n\n const clonedTable = table.clone()\n const upQueries: Query[] = []\n const downQueries: Query[] = []\n\n // drop column index\n const columnIndex = clonedTable.indices.find(\n (index) =>\n index.columnNames.length === 1 &&\n index.columnNames[0] === column.name,\n )\n if (columnIndex) {\n clonedTable.indices.splice(\n clonedTable.indices.indexOf(columnIndex),\n 1,\n )\n upQueries.push(this.dropIndexSql(table, columnIndex))\n downQueries.push(this.createIndexSql(table, columnIndex))\n }\n\n // drop column check\n const columnCheck = clonedTable.checks.find(\n (check) =>\n !!check.columnNames &&\n check.columnNames.length === 1 &&\n check.columnNames[0] === column.name,\n )\n if (columnCheck) {\n clonedTable.checks.splice(\n clonedTable.checks.indexOf(columnCheck),\n 1,\n )\n upQueries.push(this.dropCheckConstraintSql(table, columnCheck))\n downQueries.push(this.createCheckConstraintSql(table, columnCheck))\n }\n\n upQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP COLUMN ${this.driver.escape(column.name)}`,\n ),\n )\n downQueries.push(\n new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} ADD ${this.buildCreateColumnSql(column)}`,\n ),\n )\n\n if (column.generatedType && column.asExpression) {\n const deleteQuery = this.deleteTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n })\n const insertQuery = this.insertTypeormMetadataSql({\n table: table.name,\n type: MetadataTableType.GENERATED_COLUMN,\n name: column.name,\n value: column.asExpression,\n })\n\n upQueries.push(deleteQuery)\n downQueries.push(insertQuery)\n }\n\n await this.executeQueries(upQueries, downQueries)\n\n clonedTable.removeColumn(column)\n this.replaceCachedTable(table, clonedTable)\n }\n\n /**\n * Drops the columns in the table.\n * @param tableOrName\n * @param columns\n * @param ifExists\n */\n async dropColumns(\n tableOrName: Table | string,\n columns: TableColumn[] | string[],\n ifExists?: boolean,\n ): Promise<void> {\n for (const column of [...columns]) {\n await this.dropColumn(tableOrName, column, ifExists)\n }\n }\n\n /**\n * Creates a new primary key.\n *\n * Not supported in Spanner.\n * @param tableOrName\n * @param columnNames\n * @see https://cloud.google.com/spanner/docs/schema-and-data-model#notes_about_key_columns\n */\n async createPrimaryKey(\n tableOrName: Table | string,\n columnNames: string[],\n ): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Updates composite primary keys.\n * @param tableOrName\n * @param columns\n */\n async updatePrimaryKeys(\n tableOrName: Table | string,\n columns: TableColumn[],\n ): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Drops a primary key.\n *\n * Not supported in Spanner.\n * @param tableOrName\n * @param constraintName\n * @param ifExists\n * @see https://cloud.google.com/spanner/docs/schema-and-data-model#notes_about_key_columns\n */\n async dropPrimaryKey(\n tableOrName: Table | string,\n constraintName?: string,\n ifExists?: boolean,\n ): Promise<void> {\n throw new Error(\n \"The keys of a table can't change; you can't add a key column to an existing table or remove a key column from an existing table.\",\n )\n }\n\n /**\n * Creates new unique constraint.\n * @param tableOrName\n * @param uniqueConstraint\n */\n async createUniqueConstraint(\n tableOrName: Table | string,\n uniqueConstraint: TableUnique,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Creates new unique constraints.\n * @param tableOrName\n * @param uniqueConstraints\n */\n async createUniqueConstraints(\n tableOrName: Table | string,\n uniqueConstraints: TableUnique[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Drops unique constraint.\n * @param tableOrName\n * @param uniqueOrName\n * @param ifExists\n */\n async dropUniqueConstraint(\n tableOrName: Table | string,\n uniqueOrName: TableUnique | string,\n ifExists?: boolean,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Drops unique constraints.\n * @param tableOrName\n * @param uniqueConstraints\n * @param ifExists\n */\n async dropUniqueConstraints(\n tableOrName: Table | string,\n uniqueConstraints: TableUnique[],\n ifExists?: boolean,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support unique constraints. Use unique index instead.`,\n )\n }\n\n /**\n * Creates a new check constraint.\n * @param tableOrName\n * @param checkConstraint\n */\n async createCheckConstraint(\n tableOrName: Table | string,\n checkConstraint: TableCheck,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new check constraint may be passed without name. In this case we generate unique name manually.\n if (!checkConstraint.name)\n checkConstraint.name =\n this.dataSource.namingStrategy.checkConstraintName(\n table,\n checkConstraint.expression!,\n )\n\n const up = this.createCheckConstraintSql(table, checkConstraint)\n const down = this.dropCheckConstraintSql(table, checkConstraint)\n await this.executeQueries(up, down)\n table.addCheckConstraint(checkConstraint)\n }\n\n /**\n * Creates new check constraints.\n * @param tableOrName\n * @param checkConstraints\n */\n async createCheckConstraints(\n tableOrName: Table | string,\n checkConstraints: TableCheck[],\n ): Promise<void> {\n const promises = checkConstraints.map((checkConstraint) =>\n this.createCheckConstraint(tableOrName, checkConstraint),\n )\n await Promise.all(promises)\n }\n\n /**\n * Drops check constraint.\n * @param tableOrName\n * @param checkOrName\n * @param ifExists\n */\n async dropCheckConstraint(\n tableOrName: Table | string,\n checkOrName: TableCheck | string,\n ifExists?: boolean,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const checkConstraint =\n checkOrName instanceof TableCheck\n ? checkOrName\n : table.checks.find((c) => c.name === checkOrName)\n if (!checkConstraint) {\n if (ifExists) return\n throw new TypeORMError(\n `Supplied check constraint was not found in table ${table.name}`,\n )\n }\n\n const up = this.dropCheckConstraintSql(table, checkConstraint)\n const down = this.createCheckConstraintSql(table, checkConstraint)\n await this.executeQueries(up, down)\n table.removeCheckConstraint(checkConstraint)\n }\n\n /**\n * Drops check constraints.\n * @param tableOrName\n * @param checkConstraints\n * @param ifExists\n */\n async dropCheckConstraints(\n tableOrName: Table | string,\n checkConstraints: TableCheck[],\n ifExists?: boolean,\n ): Promise<void> {\n const promises = checkConstraints.map((checkConstraint) =>\n this.dropCheckConstraint(tableOrName, checkConstraint, ifExists),\n )\n await Promise.all(promises)\n }\n\n /**\n * Creates new exclusion constraint.\n * @param tableOrName\n * @param exclusionConstraint\n */\n async createExclusionConstraint(\n tableOrName: Table | string,\n exclusionConstraint: TableExclusion,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Creates new exclusion constraints.\n * @param tableOrName\n * @param exclusionConstraints\n */\n async createExclusionConstraints(\n tableOrName: Table | string,\n exclusionConstraints: TableExclusion[],\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Drops exclusion constraint.\n * @param tableOrName\n * @param exclusionOrName\n * @param ifExists\n */\n async dropExclusionConstraint(\n tableOrName: Table | string,\n exclusionOrName: TableExclusion | string,\n ifExists?: boolean,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Drops exclusion constraints.\n * @param tableOrName\n * @param exclusionConstraints\n * @param ifExists\n */\n async dropExclusionConstraints(\n tableOrName: Table | string,\n exclusionConstraints: TableExclusion[],\n ifExists?: boolean,\n ): Promise<void> {\n throw new TypeORMError(\n `Spanner does not support exclusion constraints.`,\n )\n }\n\n /**\n * Creates a new foreign key.\n * @param tableOrName\n * @param foreignKey\n */\n async createForeignKey(\n tableOrName: Table | string,\n foreignKey: TableForeignKey,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new FK may be passed without name. In this case we generate FK name manually.\n if (!foreignKey.name)\n foreignKey.name = this.dataSource.namingStrategy.foreignKeyName(\n table,\n foreignKey.columnNames,\n this.getTablePath(foreignKey),\n foreignKey.referencedColumnNames,\n )\n\n const up = this.createForeignKeySql(table, foreignKey)\n const down = this.dropForeignKeySql(table, foreignKey)\n await this.executeQueries(up, down)\n table.addForeignKey(foreignKey)\n }\n\n /**\n * Creates a new foreign keys.\n * @param tableOrName\n * @param foreignKeys\n */\n async createForeignKeys(\n tableOrName: Table | string,\n foreignKeys: TableForeignKey[],\n ): Promise<void> {\n for (const foreignKey of foreignKeys) {\n await this.createForeignKey(tableOrName, foreignKey)\n }\n }\n\n /**\n * Drops a foreign key from the table.\n * @param tableOrName\n * @param foreignKeyOrName\n * @param ifExists\n */\n async dropForeignKey(\n tableOrName: Table | string,\n foreignKeyOrName: TableForeignKey | string,\n ifExists?: boolean,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const foreignKey =\n foreignKeyOrName instanceof TableForeignKey\n ? foreignKeyOrName\n : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName)\n if (!foreignKey) {\n if (ifExists) return\n throw new TypeORMError(\n `Supplied foreign key was not found in table ${table.name}`,\n )\n }\n\n if (!foreignKey.name) {\n foreignKey.name = this.dataSource.namingStrategy.foreignKeyName(\n table,\n foreignKey.columnNames,\n this.getTablePath(foreignKey),\n foreignKey.referencedColumnNames,\n )\n }\n\n const up = this.dropForeignKeySql(table, foreignKey)\n const down = this.createForeignKeySql(table, foreignKey)\n await this.executeQueries(up, down)\n table.removeForeignKey(foreignKey)\n }\n\n /**\n * Drops a foreign keys from the table.\n * @param tableOrName\n * @param foreignKeys\n * @param ifExists\n */\n async dropForeignKeys(\n tableOrName: Table | string,\n foreignKeys: TableForeignKey[],\n ifExists?: boolean,\n ): Promise<void> {\n for (const foreignKey of [...foreignKeys]) {\n await this.dropForeignKey(tableOrName, foreignKey, ifExists)\n }\n }\n\n /**\n * Creates a new index.\n * @param tableOrName\n * @param index\n */\n async createIndex(\n tableOrName: Table | string,\n index: TableIndex,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name) index.name = this.generateIndexName(table, index)\n\n const up = this.createIndexSql(table, index)\n const down = this.dropIndexSql(table, index)\n await this.executeQueries(up, down)\n table.addIndex(index)\n }\n\n /**\n * Creates a new indices\n * @param tableOrName\n * @param indices\n */\n async createIndices(\n tableOrName: Table | string,\n indices: TableIndex[],\n ): Promise<void> {\n for (const index of indices) {\n await this.createIndex(tableOrName, index)\n }\n }\n\n /**\n * Drops an index from the table.\n * @param tableOrName\n * @param indexOrName\n * @param ifExists\n */\n async dropIndex(\n tableOrName: Table | string,\n indexOrName: TableIndex | string,\n ifExists?: boolean,\n ): Promise<void> {\n const table =\n tableOrName instanceof Table\n ? tableOrName\n : await this.getCachedTable(tableOrName)\n const index =\n indexOrName instanceof TableIndex\n ? indexOrName\n : table.indices.find((i) => i.name === indexOrName)\n if (!index) {\n if (ifExists) return\n throw new TypeORMError(\n `Supplied index ${indexOrName} was not found in table ${table.name}`,\n )\n }\n\n // new index may be passed without name. In this case we generate index name manually.\n if (!index.name) index.name = this.generateIndexName(table, index)\n\n const up = this.dropIndexSql(table, index)\n const down = this.createIndexSql(table, index)\n await this.executeQueries(up, down)\n table.removeIndex(index)\n }\n\n /**\n * Drops an indices from the table.\n * @param tableOrName\n * @param indices\n * @param ifExists\n */\n async dropIndices(\n tableOrName: Table | string,\n indices: TableIndex[],\n ifExists?: boolean,\n ): Promise<void> {\n for (const index of [...indices]) {\n await this.dropIndex(tableOrName, index, ifExists)\n }\n }\n\n /**\n * Clears all table contents.\n * Spanner does not support TRUNCATE TABLE statement, so we use DELETE FROM.\n * @param tableName\n * @param options\n * @param options.cascade\n */\n async clearTable(\n tableName: string,\n options?: { cascade?: boolean },\n ): Promise<void> {\n if (options?.cascade) {\n throw new TypeORMError(\n `Spanner does not support clearing table with cascade option`,\n )\n }\n await this.query(`DELETE FROM ${this.escapePath(tableName)} WHERE true`)\n }\n\n /**\n * Removes all tables from the currently connected database.\n */\n async clearDatabase(): Promise<void> {\n // drop index queries\n const selectIndexDropsQuery =\n `SELECT concat('DROP INDEX \\`', INDEX_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`INDEXES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`INDEX_TYPE\\` = 'INDEX' AND \\`SPANNER_IS_MANAGED\\` = false`\n const dropIndexQueries: ObjectLiteral[] = await this.query(\n selectIndexDropsQuery,\n )\n\n // drop foreign key queries\n const selectFKDropsQuery =\n `SELECT concat('ALTER TABLE \\`', TABLE_NAME, '\\`', ' DROP CONSTRAINT \\`', CONSTRAINT_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`CONSTRAINT_TYPE\\` = 'FOREIGN KEY'`\n const dropFKQueries: ObjectLiteral[] =\n await this.query(selectFKDropsQuery)\n\n // drop view queries\n // const selectViewDropsQuery = `SELECT concat('DROP VIEW \\`', TABLE_NAME, '\\`') AS \\`query\\` FROM \\`INFORMATION_SCHEMA\\`.\\`VIEWS\\``\n // const dropViewQueries: ObjectLiteral[] = await this.query(\n // selectViewDropsQuery,\n // )\n\n // drop table queries\n const dropTablesQuery =\n `SELECT concat('DROP TABLE \\`', TABLE_NAME, '\\`') AS \\`query\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE'`\n const dropTableQueries: ObjectLiteral[] =\n await this.query(dropTablesQuery)\n\n if (\n !dropIndexQueries.length &&\n !dropFKQueries.length &&\n // !dropViewQueries.length &&\n !dropTableQueries.length\n )\n return\n\n const isAnotherTransactionActive = this.isTransactionActive\n if (!isAnotherTransactionActive) await this.startTransaction()\n try {\n for (const query of dropIndexQueries) {\n await this.updateDDL(query[\"query\"])\n }\n for (const query of dropFKQueries) {\n await this.updateDDL(query[\"query\"])\n }\n\n // for (let query of dropViewQueries) {\n // await this.updateDDL(query[\"query\"])\n // }\n\n for (const query of dropTableQueries) {\n await this.updateDDL(query[\"query\"])\n }\n\n await this.commitTransaction()\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (!isAnotherTransactionActive)\n await this.rollbackTransaction()\n } catch (rollbackError) {}\n throw error\n }\n }\n\n // -------------------------------------------------------------------------\n // Override Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes up sql queries.\n */\n async executeMemoryUpSql(): Promise<void> {\n for (const { query, parameters } of this.sqlInMemory.upQueries) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n /**\n * Executes down sql queries.\n */\n async executeMemoryDownSql(): Promise<void> {\n for (const {\n query,\n parameters,\n } of this.sqlInMemory.downQueries.reverse()) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected async loadViews(viewNames?: string[]): Promise<View[]> {\n // const hasTable = await this.hasTable(this.getTypeormMetadataTableName())\n // if (!hasTable) {\n // return []\n // }\n //\n // if (!viewNames) {\n // viewNames = []\n // }\n //\n // const escapedViewNames = viewNames\n // .map((viewName) => `'${viewName}'`)\n // .join(\", \")\n //\n // const query =\n // `SELECT \\`T\\`.*, \\`V\\`.\\`VIEW_DEFINITION\\` FROM ${this.escapePath(\n // this.getTypeormMetadataTableName(),\n // )} \\`T\\` ` +\n // `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`VIEWS\\` \\`V\\` ON \\`V\\`.\\`TABLE_NAME\\` = \\`T\\`.\\`NAME\\` ` +\n // `WHERE \\`T\\`.\\`TYPE\\` = '${MetadataTableType.VIEW}' ${\n // viewNames.length\n // ? ` AND \\`T\\`.\\`NAME\\` IN (${escapedViewNames})`\n // : \"\"\n // }`\n // const dbViews = await this.query(query)\n // return dbViews.map((dbView: any) => {\n // const view = new View()\n // view.database = dbView[\"NAME\"]\n // view.name = this.driver.buildTableName(dbView[\"NAME\"])\n // view.expression = dbView[\"NAME\"]\n // return view\n // })\n\n return Promise.resolve([])\n }\n\n /**\n * Loads all tables (with given names) from the database and creates a Table from them.\n * @param tableNames\n */\n protected async loadTables(tableNames?: string[]): Promise<Table[]> {\n if (tableNames && tableNames.length === 0) {\n return []\n }\n\n const dbTables: { TABLE_NAME: string }[] = []\n\n if (!tableNames || !tableNames.length) {\n // Since we don't have any of this data we have to do a scan\n const tablesSql =\n `SELECT \\`TABLE_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE'`\n dbTables.push(...(await this.query(tablesSql)))\n } else {\n const placeholders = tableNames\n .map((_, i) => `@param${i}`)\n .join(\", \")\n const tablesSql =\n `SELECT \\`TABLE_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLES\\` ` +\n `WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_TYPE\\` = 'BASE TABLE' ` +\n `AND \\`TABLE_NAME\\` IN (${placeholders})`\n\n dbTables.push(...(await this.query(tablesSql, tableNames)))\n }\n\n // if tables were not found in the db, no need to proceed\n if (!dbTables.length) return []\n\n const loadedTableNames = dbTables\n .map((dbTable) => `'${dbTable.TABLE_NAME}'`)\n .join(\", \")\n\n const columnsSql = `SELECT * FROM \\`INFORMATION_SCHEMA\\`.\\`COLUMNS\\` WHERE \\`TABLE_CATALOG\\` = '' AND \\`TABLE_SCHEMA\\` = '' AND \\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const primaryKeySql =\n `SELECT \\`KCU\\`.\\`TABLE_NAME\\`, \\`KCU\\`.\\`COLUMN_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`KEY_COLUMN_USAGE\\` \\`KCU\\` ON \\`KCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'PRIMARY KEY' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const indicesSql =\n `SELECT \\`I\\`.\\`TABLE_NAME\\`, \\`I\\`.\\`INDEX_NAME\\`, \\`I\\`.\\`IS_UNIQUE\\`, \\`I\\`.\\`IS_NULL_FILTERED\\`, \\`IC\\`.\\`COLUMN_NAME\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`INDEXES\\` \\`I\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`INDEX_COLUMNS\\` \\`IC\\` ON \\`IC\\`.\\`INDEX_NAME\\` = \\`I\\`.\\`INDEX_NAME\\` ` +\n `AND \\`IC\\`.\\`TABLE_NAME\\` = \\`I\\`.\\`TABLE_NAME\\` ` +\n `WHERE \\`I\\`.\\`TABLE_CATALOG\\` = '' AND \\`I\\`.\\`TABLE_SCHEMA\\` = '' AND \\`I\\`.\\`TABLE_NAME\\` IN (${loadedTableNames}) ` +\n `AND \\`I\\`.\\`INDEX_TYPE\\` = 'INDEX' AND \\`I\\`.\\`SPANNER_IS_MANAGED\\` = false`\n\n const checksSql =\n `SELECT \\`TC\\`.\\`TABLE_NAME\\`, \\`TC\\`.\\`CONSTRAINT_NAME\\`, \\`CC\\`.\\`CHECK_CLAUSE\\`, \\`CCU\\`.\\`COLUMN_NAME\\`` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_COLUMN_USAGE\\` \\`CCU\\` ON \\`CCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CHECK_CONSTRAINTS\\` \\`CC\\` ON \\`CC\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'CHECK' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames}) AND \\`TC\\`.\\`CONSTRAINT_NAME\\` NOT LIKE 'CK_IS_NOT_NULL%'`\n\n const foreignKeysSql =\n `SELECT \\`TC\\`.\\`TABLE_NAME\\`, \\`TC\\`.\\`CONSTRAINT_NAME\\`, \\`KCU\\`.\\`COLUMN_NAME\\`, ` +\n `\\`CTU\\`.\\`TABLE_NAME\\` AS \\`REFERENCED_TABLE_NAME\\`, \\`CCU\\`.\\`COLUMN_NAME\\` AS \\`REFERENCED_COLUMN_NAME\\`, ` +\n `\\`RC\\`.\\`UPDATE_RULE\\`, \\`RC\\`.\\`DELETE_RULE\\` ` +\n `FROM \\`INFORMATION_SCHEMA\\`.\\`TABLE_CONSTRAINTS\\` \\`TC\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`KEY_COLUMN_USAGE\\` \\`KCU\\` ON \\`KCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_TABLE_USAGE\\` \\`CTU\\` ON \\`CTU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`REFERENTIAL_CONSTRAINTS\\` \\`RC\\` ON \\`RC\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `INNER JOIN \\`INFORMATION_SCHEMA\\`.\\`CONSTRAINT_COLUMN_USAGE\\` \\`CCU\\` ON \\`CCU\\`.\\`CONSTRAINT_NAME\\` = \\`TC\\`.\\`CONSTRAINT_NAME\\` ` +\n `WHERE \\`TC\\`.\\`TABLE_CATALOG\\` = '' AND \\`TC\\`.\\`TABLE_SCHEMA\\` = '' AND \\`TC\\`.\\`CONSTRAINT_TYPE\\` = 'FOREIGN KEY' ` +\n `AND \\`TC\\`.\\`TABLE_NAME\\` IN (${loadedTableNames})`\n\n const [\n dbColumns,\n dbPrimaryKeys,\n dbIndices,\n dbChecks,\n dbForeignKeys,\n ]: ObjectLiteral[][] = await Promise.all([\n this.query(columnsSql),\n this.query(primaryKeySql),\n this.query(indicesSql),\n this.query(checksSql),\n this.query(foreignKeysSql),\n ])\n\n // create tables for loaded tables\n return Promise.all(\n dbTables.map(async (dbTable) => {\n const table = new Table()\n\n table.name = this.driver.buildTableName(dbTable[\"TABLE_NAME\"])\n\n // create columns from the loaded columns\n table.columns = await Promise.all(\n dbColumns\n .filter(\n (dbColumn) =>\n dbColumn[\"TABLE_NAME\"] ===\n dbTable[\"TABLE_NAME\"],\n )\n .map(async (dbColumn) => {\n const columnUniqueIndices = dbIndices.filter(\n (dbIndex) => {\n return (\n dbIndex[\"TABLE_NAME\"] ===\n dbTable[\"TABLE_NAME\"] &&\n dbIndex[\"COLUMN_NAME\"] ===\n dbColumn[\"COLUMN_NAME\"] &&\n dbIndex[\"IS_UNIQUE\"] === true\n )\n },\n )\n\n const tableMetadata =\n this.dataSource.entityMetadatas.find(\n (metadata) =>\n this.getTablePath(table) ===\n this.getTablePath(metadata),\n )\n const hasIgnoredIndex =\n columnUniqueIndices.length > 0 &&\n tableMetadata &&\n tableMetadata.indices.some((index) => {\n return columnUniqueIndices.some(\n (uniqueIndex) => {\n return (\n index.name ===\n uniqueIndex[\"INDEX_NAME\"] &&\n index.synchronize === false\n )\n },\n )\n })\n\n const isConstraintComposite =\n columnUniqueIndices.every((uniqueIndex) => {\n return dbIndices.some(\n (dbIndex) =>\n dbIndex[\"INDEX_NAME\"] ===\n uniqueIndex[\"INDEX_NAME\"] &&\n dbIndex[\"COLUMN_NAME\"] !==\n dbColumn[\"COLUMN_NAME\"],\n )\n })\n\n const tableColumn = new TableColumn()\n tableColumn.name = dbColumn[\"COLUMN_NAME\"]\n\n let fullType =\n dbColumn[\"SPANNER_TYPE\"].toLowerCase()\n if (fullType.indexOf(\"array\") !== -1) {\n tableColumn.isArray = true\n fullType = fullType.substring(\n fullType.indexOf(\"<\") + 1,\n fullType.indexOf(\">\"),\n )\n }\n\n if (fullType.indexOf(\"(\") !== -1) {\n tableColumn.type = fullType.substring(\n 0,\n fullType.indexOf(\"(\"),\n )\n } else {\n tableColumn.type = fullType\n }\n\n if (\n this.driver.withLengthColumnTypes.indexOf(\n tableColumn.type as ColumnType,\n ) !== -1\n ) {\n tableColumn.length = fullType.substring(\n fullType.indexOf(\"(\") + 1,\n fullType.indexOf(\")\"),\n )\n }\n\n if (dbColumn[\"IS_GENERATED\"] === \"ALWAYS\") {\n tableColumn.asExpression =\n dbColumn[\"GENERATION_EXPRESSION\"]\n tableColumn.generatedType = \"STORED\"\n\n // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.\n const asExpressionQuery =\n this.selectTypeormMetadataSql({\n table: dbTable[\"TABLE_NAME\"],\n type: MetadataTableType.GENERATED_COLUMN,\n name: tableColumn.name,\n })\n\n const results = await this.query(\n asExpressionQuery.query,\n asExpressionQuery.parameters,\n )\n\n if (results[0] && results[0].value) {\n tableColumn.asExpression = results[0].value\n } else {\n tableColumn.asExpression = \"\"\n }\n }\n\n tableColumn.isUnique =\n columnUniqueIndices.length > 0 &&\n !hasIgnoredIndex &&\n !isConstraintComposite\n tableColumn.isNullable =\n dbColumn[\"IS_NULLABLE\"] === \"YES\"\n tableColumn.isPrimary = dbPrimaryKeys.some(\n (dbPrimaryKey) => {\n return (\n dbPrimaryKey[\"TABLE_NAME\"] ===\n dbColumn[\"TABLE_NAME\"] &&\n dbPrimaryKey[\"COLUMN_NAME\"] ===\n dbColumn[\"COLUMN_NAME\"]\n )\n },\n )\n\n return tableColumn\n }),\n )\n\n const tableForeignKeys = dbForeignKeys.filter(\n (dbForeignKey) => {\n return (\n dbForeignKey[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"]\n )\n },\n )\n\n table.foreignKeys = OrmUtils.uniq(\n tableForeignKeys,\n (dbForeignKey) => dbForeignKey[\"CONSTRAINT_NAME\"],\n ).map((dbForeignKey) => {\n const foreignKeys = tableForeignKeys.filter(\n (dbFk) =>\n dbFk[\"CONSTRAINT_NAME\"] ===\n dbForeignKey[\"CONSTRAINT_NAME\"],\n )\n return new TableForeignKey({\n name: dbForeignKey[\"CONSTRAINT_NAME\"],\n columnNames: OrmUtils.uniq(\n foreignKeys.map((dbFk) => dbFk[\"COLUMN_NAME\"]),\n ),\n referencedDatabase:\n dbForeignKey[\"REFERENCED_TABLE_SCHEMA\"],\n referencedTableName:\n dbForeignKey[\"REFERENCED_TABLE_NAME\"],\n referencedColumnNames: OrmUtils.uniq(\n foreignKeys.map(\n (dbFk) => dbFk[\"REFERENCED_COLUMN_NAME\"],\n ),\n ),\n onDelete: dbForeignKey[\"DELETE_RULE\"],\n onUpdate: dbForeignKey[\"UPDATE_RULE\"],\n })\n })\n\n const tableIndices = dbIndices.filter(\n (dbIndex) =>\n dbIndex[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"],\n )\n\n table.indices = OrmUtils.uniq(\n tableIndices,\n (dbIndex) => dbIndex[\"INDEX_NAME\"],\n ).map((constraint) => {\n const indices = tableIndices.filter((index) => {\n return index[\"INDEX_NAME\"] === constraint[\"INDEX_NAME\"]\n })\n\n return new TableIndex(<TableIndexOptions>{\n table: table,\n name: constraint[\"INDEX_NAME\"],\n columnNames: indices.map((i) => i[\"COLUMN_NAME\"]),\n isUnique: constraint[\"IS_UNIQUE\"],\n isNullFiltered: constraint[\"IS_NULL_FILTERED\"],\n })\n })\n\n const tableChecks = dbChecks.filter(\n (dbCheck) =>\n dbCheck[\"TABLE_NAME\"] === dbTable[\"TABLE_NAME\"],\n )\n\n table.checks = OrmUtils.uniq(\n tableChecks,\n (dbIndex) => dbIndex[\"CONSTRAINT_NAME\"],\n ).map((constraint) => {\n const checks = tableChecks.filter(\n (dbC) =>\n dbC[\"CONSTRAINT_NAME\"] ===\n constraint[\"CONSTRAINT_NAME\"],\n )\n return new TableCheck({\n name: constraint[\"CONSTRAINT_NAME\"],\n columnNames: checks.map((c) => c[\"COLUMN_NAME\"]),\n expression: constraint[\"CHECK_CLAUSE\"],\n })\n })\n\n return table\n }),\n )\n }\n\n /**\n * Builds create table sql.\n * @param table\n * @param createForeignKeys\n */\n protected createTableSql(table: Table, createForeignKeys?: boolean): Query {\n const columnDefinitions = table.columns\n .map((column) => this.buildCreateColumnSql(column))\n .join(\", \")\n let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`\n\n // we create unique indexes instead of unique constraints, because Spanner does not have unique constraints.\n // if we mark column as Unique, it means that we create UNIQUE INDEX.\n table.columns\n .filter((column) => column.isUnique)\n .forEach((column) => {\n const isUniqueIndexExist = table.indices.some((index) => {\n return (\n index.columnNames.length === 1 &&\n !!index.isUnique &&\n index.columnNames.indexOf(column.name) !== -1\n )\n })\n const isUniqueConstraintExist = table.uniques.some((unique) => {\n return (\n unique.columnNames.length === 1 &&\n unique.columnNames.indexOf(column.name) !== -1\n )\n })\n if (!isUniqueIndexExist && !isUniqueConstraintExist)\n table.indices.push(\n new TableIndex({\n name: this.dataSource.namingStrategy.uniqueConstraintName(\n table,\n [column.name],\n ),\n columnNames: [column.name],\n isUnique: true,\n }),\n )\n })\n\n // as Spanner does not have unique constraints, we must create table indices from table uniques and mark them as unique.\n if (table.uniques.length > 0) {\n table.uniques.forEach((unique) => {\n const uniqueExist = table.indices.some(\n (index) => index.name === unique.name,\n )\n if (!uniqueExist) {\n table.indices.push(\n new TableIndex({\n name: unique.name,\n columnNames: unique.columnNames,\n isUnique: true,\n }),\n )\n }\n })\n }\n\n if (table.checks.length > 0) {\n const checksSql = table.checks\n .map((check) => {\n const checkName = check.name\n ? check.name\n : this.dataSource.namingStrategy.checkConstraintName(\n table,\n check.expression!,\n )\n return `CONSTRAINT \\`${checkName}\\` CHECK (${check.expression})`\n })\n .join(\", \")\n\n sql += `, ${checksSql}`\n }\n\n if (table.foreignKeys.length > 0 && createForeignKeys) {\n const foreignKeysSql = table.foreignKeys\n .map((fk) => {\n const columnNames = fk.columnNames\n .map((columnName) => `\\`${columnName}\\``)\n .join(\", \")\n if (!fk.name)\n fk.name = this.dataSource.namingStrategy.foreignKeyName(\n table,\n fk.columnNames,\n this.getTablePath(fk),\n fk.referencedColumnNames,\n )\n const referencedColumnNames = fk.referencedColumnNames\n .map((columnName) => `\\`${columnName}\\``)\n .join(\", \")\n\n return `CONSTRAINT \\`${\n fk.name\n }\\` FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(\n this.getTablePath(fk),\n )} (${referencedColumnNames})`\n })\n .join(\", \")\n\n sql += `, ${foreignKeysSql}`\n }\n\n sql += `)`\n\n const primaryColumns = table.columns.filter(\n (column) => column.isPrimary,\n )\n if (primaryColumns.length > 0) {\n const columnNames = primaryColumns\n .map((column) => this.driver.escape(column.name))\n .join(\", \")\n sql += ` PRIMARY KEY (${columnNames})`\n }\n\n return new Query(sql)\n }\n\n /**\n * Builds drop table sql.\n * @param tableOrPath\n */\n protected dropTableSql(tableOrPath: Table | string): Query {\n return new Query(`DROP TABLE ${this.escapePath(tableOrPath)}`)\n }\n\n protected createViewSql(view: View): Query {\n const materializedClause = view.materialized ? \"MATERIALIZED \" : \"\"\n const viewName = this.escapePath(view)\n\n const expression =\n typeof view.expression === \"string\"\n ? view.expression\n : view.expression(this.dataSource).getQuery()\n return new Query(\n `CREATE ${materializedClause}VIEW ${viewName} SQL SECURITY INVOKER AS ${expression}`,\n )\n }\n\n protected async insertViewDefinitionSql(view: View): Promise<Query> {\n const { schema, tableName: name } = this.driver.parseTableName(view)\n\n const type = view.materialized\n ? MetadataTableType.MATERIALIZED_VIEW\n : MetadataTableType.VIEW\n const expression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.dataSource).getQuery()\n return this.insertTypeormMetadataSql({\n type,\n schema,\n name,\n value: expression,\n })\n }\n\n /**\n * Builds drop view sql.\n * @param view\n */\n protected dropViewSql(view: View): Query {\n const materializedClause = view.materialized ? \"MATERIALIZED \" : \"\"\n return new Query(\n `DROP ${materializedClause}VIEW ${this.escapePath(view)}`,\n )\n }\n\n /**\n * Builds remove view sql.\n * @param view\n */\n protected async deleteViewDefinitionSql(view: View): Promise<Query> {\n const { schema, tableName: name } = this.driver.parseTableName(view)\n\n const type = view.materialized\n ? MetadataTableType.MATERIALIZED_VIEW\n : MetadataTableType.VIEW\n return this.deleteTypeormMetadataSql({ type, schema, name })\n }\n\n /**\n * Builds create index sql.\n * @param table\n * @param index\n */\n protected createIndexSql(table: Table, index: TableIndex): Query {\n const columns = index.columnNames\n .map((columnName) => this.driver.escape(columnName))\n .join(\", \")\n let indexType = \"\"\n if (index.isUnique) indexType += \"UNIQUE \"\n if (index.isNullFiltered) indexType += \"NULL_FILTERED \"\n\n return new Query(\n `CREATE ${indexType}INDEX \\`${index.name}\\` ON ${this.escapePath(\n table,\n )} (${columns})`,\n )\n }\n\n /**\n * Builds drop index sql.\n * @param table\n * @param indexOrName\n */\n protected dropIndexSql(\n table: Table,\n indexOrName: TableIndex | string,\n ): Query {\n const indexName =\n indexOrName instanceof TableIndex ? indexOrName.name : indexOrName\n return new Query(`DROP INDEX \\`${indexName}\\``)\n }\n\n /**\n * Builds create check constraint sql.\n * @param table\n * @param checkConstraint\n */\n protected createCheckConstraintSql(\n table: Table,\n checkConstraint: TableCheck,\n ): Query {\n return new Query(\n `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \\`${\n checkConstraint.name\n }\\` CHECK (${checkConstraint.expression})`,\n )\n }\n\n /**\n * Builds drop check constraint sql.\n * @param table\n * @param checkOrName\n */\n protected dropCheckConstraintSql(\n table: Table,\n checkOrName: TableCheck | string,\n ): Query {\n const checkName =\n checkOrName instanceof TableCheck ? checkOrName.name : checkOrName\n return new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP CONSTRAINT \\`${checkName}\\``,\n )\n }\n\n /**\n * Builds create foreign key sql.\n * @param table\n * @param foreignKey\n */\n protected createForeignKeySql(\n table: Table,\n foreignKey: TableForeignKey,\n ): Query {\n const columnNames = foreignKey.columnNames\n .map((column) => this.driver.escape(column))\n .join(\", \")\n const referencedColumnNames = foreignKey.referencedColumnNames\n .map((column) => this.driver.escape(column))\n .join(\",\")\n const sql =\n `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \\`${\n foreignKey.name\n }\\` FOREIGN KEY (${columnNames}) ` +\n `REFERENCES ${this.escapePath(\n this.getTablePath(foreignKey),\n )} (${referencedColumnNames})`\n\n return new Query(sql)\n }\n\n /**\n * Builds drop foreign key sql.\n * @param table\n * @param foreignKeyOrName\n */\n protected dropForeignKeySql(\n table: Table,\n foreignKeyOrName: TableForeignKey | string,\n ): Query {\n const foreignKeyName =\n foreignKeyOrName instanceof TableForeignKey\n ? foreignKeyOrName.name\n : foreignKeyOrName\n return new Query(\n `ALTER TABLE ${this.escapePath(\n table,\n )} DROP CONSTRAINT \\`${foreignKeyName}\\``,\n )\n }\n\n /**\n * Escapes given table or view path.\n * @param target\n */\n protected escapePath(target: Table | View | string): string {\n const { tableName } = this.driver.parseTableName(target)\n return `\\`${tableName}\\``\n }\n\n /**\n * Builds a part of query to create/change a column.\n * @param column\n */\n protected buildCreateColumnSql(column: TableColumn) {\n let c = `${this.driver.escape(\n column.name,\n )} ${this.dataSource.driver.createFullType(column)}`\n\n // Spanner supports only STORED generated column type\n if (column.generatedType === \"STORED\" && column.asExpression) {\n c += ` AS (${column.asExpression}) STORED`\n } else {\n if (!column.isNullable) c += \" NOT NULL\"\n }\n\n return c\n }\n\n /**\n * Executes sql used special for schema build.\n * @param upQueries\n * @param downQueries\n */\n protected async executeQueries(\n upQueries: Query | Query[],\n downQueries: Query | Query[],\n ): Promise<void> {\n if (upQueries instanceof Query) upQueries = [upQueries]\n if (downQueries instanceof Query) downQueries = [downQueries]\n\n this.sqlInMemory.upQueries.push(...upQueries)\n this.sqlInMemory.downQueries.push(...downQueries)\n\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return Promise.resolve() as Promise<any>\n\n for (const { query, parameters } of upQueries) {\n if (this.isDMLQuery(query)) {\n await this.query(query, parameters)\n } else {\n await this.updateDDL(query, parameters)\n }\n }\n }\n\n protected isDMLQuery(query: string): boolean {\n return (\n query.startsWith(\"INSERT\") ||\n query.startsWith(\"UPDATE\") ||\n query.startsWith(\"DELETE\")\n )\n }\n\n /**\n * Change table comment.\n * @param tableOrName\n * @param comment\n */\n changeTableComment(\n tableOrName: Table | string,\n comment?: string,\n ): Promise<void> {\n throw new TypeORMError(\n `spanner driver does not support change table comment.`,\n )\n }\n}\n"]}
|