@lakutata/orm 3.0.0 → 3.1.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 +160 -76
- package/README.zh-CN.md +452 -0
- package/THIRD_PARTY_NOTICES.md +260 -4
- package/dist/cjs/components/Database.d.ts +31 -22
- package/dist/cjs/components/Database.js +14 -5
- package/dist/cjs/decorators/orm/AfterInsert.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterInsert.js +1 -1
- package/dist/cjs/decorators/orm/AfterLoad.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterLoad.js +1 -1
- package/dist/cjs/decorators/orm/AfterRecover.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterRecover.js +1 -1
- package/dist/cjs/decorators/orm/AfterRemove.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterRemove.js +1 -1
- package/dist/cjs/decorators/orm/AfterSoftRemove.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterSoftRemove.js +1 -1
- package/dist/cjs/decorators/orm/AfterUpdate.d.ts +1 -1
- package/dist/cjs/decorators/orm/AfterUpdate.js +1 -1
- package/dist/cjs/decorators/orm/BeforeInsert.d.ts +1 -1
- package/dist/cjs/decorators/orm/BeforeInsert.js +1 -1
- package/dist/cjs/decorators/orm/BeforeRecover.d.ts +1 -1
- package/dist/cjs/decorators/orm/BeforeRecover.js +1 -1
- package/dist/cjs/decorators/orm/BeforeRemove.d.ts +1 -1
- package/dist/cjs/decorators/orm/BeforeRemove.js +1 -1
- package/dist/cjs/decorators/orm/BeforeSoftRemove.d.ts +1 -1
- package/dist/cjs/decorators/orm/BeforeSoftRemove.js +1 -1
- package/dist/cjs/decorators/orm/BeforeUpdate.d.ts +1 -1
- package/dist/cjs/decorators/orm/BeforeUpdate.js +1 -1
- package/dist/cjs/decorators/orm/Check.d.ts +1 -1
- package/dist/cjs/decorators/orm/Check.js +1 -1
- package/dist/cjs/decorators/orm/ChildEntity.d.ts +1 -1
- package/dist/cjs/decorators/orm/ChildEntity.js +1 -1
- package/dist/cjs/decorators/orm/Column.d.ts +1 -1
- package/dist/cjs/decorators/orm/Column.js +1 -1
- package/dist/cjs/decorators/orm/CreateDateColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/CreateDateColumn.js +1 -1
- package/dist/cjs/decorators/orm/DeleteDateColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/DeleteDateColumn.js +1 -1
- package/dist/cjs/decorators/orm/Entity.d.ts +1 -1
- package/dist/cjs/decorators/orm/Entity.js +1 -1
- package/dist/cjs/decorators/orm/EventSubscriber.d.ts +1 -1
- package/dist/cjs/decorators/orm/EventSubscriber.js +1 -1
- package/dist/cjs/decorators/orm/Exclusion.d.ts +1 -1
- package/dist/cjs/decorators/orm/Exclusion.js +1 -1
- package/dist/cjs/decorators/orm/Generated.d.ts +1 -1
- package/dist/cjs/decorators/orm/Generated.js +1 -1
- package/dist/cjs/decorators/orm/Index.d.ts +1 -1
- package/dist/cjs/decorators/orm/Index.js +1 -1
- package/dist/cjs/decorators/orm/JoinColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/JoinColumn.js +1 -1
- package/dist/cjs/decorators/orm/JoinTable.d.ts +1 -1
- package/dist/cjs/decorators/orm/JoinTable.js +1 -1
- package/dist/cjs/decorators/orm/ManyToMany.d.ts +1 -1
- package/dist/cjs/decorators/orm/ManyToMany.js +1 -1
- package/dist/cjs/decorators/orm/ManyToOne.d.ts +1 -1
- package/dist/cjs/decorators/orm/ManyToOne.js +1 -1
- package/dist/cjs/decorators/orm/ObjectIdColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/ObjectIdColumn.js +1 -1
- package/dist/cjs/decorators/orm/OneToMany.d.ts +1 -1
- package/dist/cjs/decorators/orm/OneToMany.js +1 -1
- package/dist/cjs/decorators/orm/OneToOne.d.ts +1 -1
- package/dist/cjs/decorators/orm/OneToOne.js +1 -1
- package/dist/cjs/decorators/orm/PrimaryColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/PrimaryColumn.js +1 -1
- package/dist/cjs/decorators/orm/PrimaryGeneratedColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/PrimaryGeneratedColumn.js +1 -1
- package/dist/cjs/decorators/orm/RelationId.d.ts +1 -1
- package/dist/cjs/decorators/orm/RelationId.js +1 -1
- package/dist/cjs/decorators/orm/TableInheritance.d.ts +1 -1
- package/dist/cjs/decorators/orm/TableInheritance.js +1 -1
- package/dist/cjs/decorators/orm/Tree.d.ts +1 -1
- package/dist/cjs/decorators/orm/Tree.js +1 -1
- package/dist/cjs/decorators/orm/TreeChildren.d.ts +1 -1
- package/dist/cjs/decorators/orm/TreeChildren.js +1 -1
- package/dist/cjs/decorators/orm/TreeLevelColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/TreeLevelColumn.js +1 -1
- package/dist/cjs/decorators/orm/TreeParent.d.ts +1 -1
- package/dist/cjs/decorators/orm/TreeParent.js +1 -1
- package/dist/cjs/decorators/orm/Unique.d.ts +1 -1
- package/dist/cjs/decorators/orm/Unique.js +1 -1
- package/dist/cjs/decorators/orm/UpdateDateColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/UpdateDateColumn.js +1 -1
- package/dist/cjs/decorators/orm/VersionColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/VersionColumn.js +1 -1
- package/dist/cjs/decorators/orm/ViewColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/ViewColumn.js +1 -1
- package/dist/cjs/decorators/orm/ViewEntity.d.ts +1 -1
- package/dist/cjs/decorators/orm/ViewEntity.js +1 -1
- package/dist/cjs/decorators/orm/VirtualColumn.d.ts +1 -1
- package/dist/cjs/decorators/orm/VirtualColumn.js +1 -1
- package/dist/cjs/exports/ORM.d.ts +189 -192
- package/dist/cjs/exports/ORM.js +120 -121
- package/dist/cjs/lib/ConnectionOptions.d.ts +10 -0
- package/dist/cjs/lib/ConnectionOptions.js +17 -0
- package/dist/cjs/providers/Database.d.ts +33 -26
- package/dist/cjs/providers/Database.js +15 -8
- package/dist/cjs/providers/migration/ExecuteMigration.d.ts +5 -4
- package/dist/cjs/providers/migration/ExecuteMigration.js +9 -5
- package/dist/cjs/providers/migration/GenerateMigration.d.ts +35 -5
- package/dist/cjs/providers/migration/GenerateMigration.js +30 -10
- package/dist/cjs/types/LegacyConnectionOptions.d.ts +102 -0
- package/dist/cjs/types/LegacyConnectionOptions.js +2 -0
- package/dist/cjs/types/MigrationRunOptions.d.ts +4 -1
- package/dist/esm/components/Database.js +14 -5
- package/dist/esm/decorators/orm/AfterInsert.js +1 -1
- package/dist/esm/decorators/orm/AfterLoad.js +1 -1
- package/dist/esm/decorators/orm/AfterRecover.js +1 -1
- package/dist/esm/decorators/orm/AfterRemove.js +1 -1
- package/dist/esm/decorators/orm/AfterSoftRemove.js +1 -1
- package/dist/esm/decorators/orm/AfterUpdate.js +1 -1
- package/dist/esm/decorators/orm/BeforeInsert.js +1 -1
- package/dist/esm/decorators/orm/BeforeRecover.js +1 -1
- package/dist/esm/decorators/orm/BeforeRemove.js +1 -1
- package/dist/esm/decorators/orm/BeforeSoftRemove.js +1 -1
- package/dist/esm/decorators/orm/BeforeUpdate.js +1 -1
- package/dist/esm/decorators/orm/Check.js +1 -1
- package/dist/esm/decorators/orm/ChildEntity.js +1 -1
- package/dist/esm/decorators/orm/Column.js +1 -1
- package/dist/esm/decorators/orm/CreateDateColumn.js +1 -1
- package/dist/esm/decorators/orm/DeleteDateColumn.js +1 -1
- package/dist/esm/decorators/orm/Entity.js +1 -1
- package/dist/esm/decorators/orm/EventSubscriber.js +1 -1
- package/dist/esm/decorators/orm/Exclusion.js +1 -1
- package/dist/esm/decorators/orm/Generated.js +1 -1
- package/dist/esm/decorators/orm/Index.js +1 -1
- package/dist/esm/decorators/orm/JoinColumn.js +1 -1
- package/dist/esm/decorators/orm/JoinTable.js +1 -1
- package/dist/esm/decorators/orm/ManyToMany.js +1 -1
- package/dist/esm/decorators/orm/ManyToOne.js +1 -1
- package/dist/esm/decorators/orm/ObjectIdColumn.js +1 -1
- package/dist/esm/decorators/orm/OneToMany.js +1 -1
- package/dist/esm/decorators/orm/OneToOne.js +1 -1
- package/dist/esm/decorators/orm/PrimaryColumn.js +1 -1
- package/dist/esm/decorators/orm/PrimaryGeneratedColumn.js +1 -1
- package/dist/esm/decorators/orm/RelationId.js +1 -1
- package/dist/esm/decorators/orm/TableInheritance.js +1 -1
- package/dist/esm/decorators/orm/Tree.js +1 -1
- package/dist/esm/decorators/orm/TreeChildren.js +1 -1
- package/dist/esm/decorators/orm/TreeLevelColumn.js +1 -1
- package/dist/esm/decorators/orm/TreeParent.js +1 -1
- package/dist/esm/decorators/orm/Unique.js +1 -1
- package/dist/esm/decorators/orm/UpdateDateColumn.js +1 -1
- package/dist/esm/decorators/orm/VersionColumn.js +1 -1
- package/dist/esm/decorators/orm/ViewColumn.js +1 -1
- package/dist/esm/decorators/orm/ViewEntity.js +1 -1
- package/dist/esm/decorators/orm/VirtualColumn.js +1 -1
- package/dist/esm/exports/ORM.js +116 -119
- package/dist/esm/lib/ConnectionOptions.js +14 -0
- package/dist/esm/providers/Database.js +15 -8
- package/dist/esm/providers/migration/ExecuteMigration.js +9 -5
- package/dist/esm/providers/migration/GenerateMigration.js +30 -10
- package/dist/esm/types/LegacyConnectionOptions.js +1 -0
- package/dist/types/components/Database.d.ts +31 -22
- package/dist/types/decorators/orm/AfterInsert.d.ts +1 -1
- package/dist/types/decorators/orm/AfterLoad.d.ts +1 -1
- package/dist/types/decorators/orm/AfterRecover.d.ts +1 -1
- package/dist/types/decorators/orm/AfterRemove.d.ts +1 -1
- package/dist/types/decorators/orm/AfterSoftRemove.d.ts +1 -1
- package/dist/types/decorators/orm/AfterUpdate.d.ts +1 -1
- package/dist/types/decorators/orm/BeforeInsert.d.ts +1 -1
- package/dist/types/decorators/orm/BeforeRecover.d.ts +1 -1
- package/dist/types/decorators/orm/BeforeRemove.d.ts +1 -1
- package/dist/types/decorators/orm/BeforeSoftRemove.d.ts +1 -1
- package/dist/types/decorators/orm/BeforeUpdate.d.ts +1 -1
- package/dist/types/decorators/orm/Check.d.ts +1 -1
- package/dist/types/decorators/orm/ChildEntity.d.ts +1 -1
- package/dist/types/decorators/orm/Column.d.ts +1 -1
- package/dist/types/decorators/orm/CreateDateColumn.d.ts +1 -1
- package/dist/types/decorators/orm/DeleteDateColumn.d.ts +1 -1
- package/dist/types/decorators/orm/Entity.d.ts +1 -1
- package/dist/types/decorators/orm/EventSubscriber.d.ts +1 -1
- package/dist/types/decorators/orm/Exclusion.d.ts +1 -1
- package/dist/types/decorators/orm/Generated.d.ts +1 -1
- package/dist/types/decorators/orm/Index.d.ts +1 -1
- package/dist/types/decorators/orm/JoinColumn.d.ts +1 -1
- package/dist/types/decorators/orm/JoinTable.d.ts +1 -1
- package/dist/types/decorators/orm/ManyToMany.d.ts +1 -1
- package/dist/types/decorators/orm/ManyToOne.d.ts +1 -1
- package/dist/types/decorators/orm/ObjectIdColumn.d.ts +1 -1
- package/dist/types/decorators/orm/OneToMany.d.ts +1 -1
- package/dist/types/decorators/orm/OneToOne.d.ts +1 -1
- package/dist/types/decorators/orm/PrimaryColumn.d.ts +1 -1
- package/dist/types/decorators/orm/PrimaryGeneratedColumn.d.ts +1 -1
- package/dist/types/decorators/orm/RelationId.d.ts +1 -1
- package/dist/types/decorators/orm/TableInheritance.d.ts +1 -1
- package/dist/types/decorators/orm/Tree.d.ts +1 -1
- package/dist/types/decorators/orm/TreeChildren.d.ts +1 -1
- package/dist/types/decorators/orm/TreeLevelColumn.d.ts +1 -1
- package/dist/types/decorators/orm/TreeParent.d.ts +1 -1
- package/dist/types/decorators/orm/Unique.d.ts +1 -1
- package/dist/types/decorators/orm/UpdateDateColumn.d.ts +1 -1
- package/dist/types/decorators/orm/VersionColumn.d.ts +1 -1
- package/dist/types/decorators/orm/ViewColumn.d.ts +1 -1
- package/dist/types/decorators/orm/ViewEntity.d.ts +1 -1
- package/dist/types/decorators/orm/VirtualColumn.d.ts +1 -1
- package/dist/types/exports/ORM.d.ts +189 -192
- package/dist/types/lib/ConnectionOptions.d.ts +10 -0
- package/dist/types/providers/Database.d.ts +33 -26
- package/dist/types/providers/migration/ExecuteMigration.d.ts +5 -4
- package/dist/types/providers/migration/GenerateMigration.d.ts +35 -5
- package/dist/types/types/LegacyConnectionOptions.d.ts +102 -0
- package/dist/types/types/MigrationRunOptions.d.ts +4 -1
- package/dist/vendor/typeorm/cache/DbQueryResultCache.d.ts +70 -0
- package/dist/vendor/typeorm/cache/DbQueryResultCache.js +301 -0
- package/dist/vendor/typeorm/cache/DbQueryResultCache.js.map +1 -0
- package/dist/vendor/typeorm/cache/QueryResultCache.d.ts +41 -0
- package/dist/vendor/typeorm/cache/QueryResultCache.js +3 -0
- package/dist/vendor/typeorm/cache/QueryResultCache.js.map +1 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheFactory.d.ts +13 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheFactory.js +41 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheFactory.js.map +1 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheOptions.d.ts +26 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheOptions.js +3 -0
- package/dist/vendor/typeorm/cache/QueryResultCacheOptions.js.map +1 -0
- package/dist/vendor/typeorm/cache/RedisQueryResultCache.d.ts +84 -0
- package/dist/vendor/typeorm/cache/RedisQueryResultCache.js +185 -0
- package/dist/vendor/typeorm/cache/RedisQueryResultCache.js.map +1 -0
- package/dist/vendor/typeorm/commands/CommandUtils.d.ts +34 -0
- package/dist/vendor/typeorm/commands/CommandUtils.js +107 -0
- package/dist/vendor/typeorm/commands/CommandUtils.js.map +1 -0
- package/dist/vendor/typeorm/common/DeepPartial.d.ts +6 -0
- package/dist/vendor/typeorm/common/DeepPartial.js +3 -0
- package/dist/vendor/typeorm/common/DeepPartial.js.map +1 -0
- package/dist/vendor/typeorm/common/EntityTarget.d.ts +9 -0
- package/dist/vendor/typeorm/common/EntityTarget.js +3 -0
- package/dist/vendor/typeorm/common/EntityTarget.js.map +1 -0
- package/dist/vendor/typeorm/common/MixedList.d.ts +8 -0
- package/dist/vendor/typeorm/common/MixedList.js +3 -0
- package/dist/vendor/typeorm/common/MixedList.js.map +1 -0
- package/dist/vendor/typeorm/common/NonNever.d.ts +6 -0
- package/dist/vendor/typeorm/common/NonNever.js +3 -0
- package/dist/vendor/typeorm/common/NonNever.js.map +1 -0
- package/dist/vendor/typeorm/common/ObjectLiteral.d.ts +6 -0
- package/dist/vendor/typeorm/common/ObjectLiteral.js +3 -0
- package/dist/vendor/typeorm/common/ObjectLiteral.js.map +1 -0
- package/dist/vendor/typeorm/common/ObjectType.d.ts +6 -0
- package/dist/vendor/typeorm/common/ObjectType.js +3 -0
- package/dist/vendor/typeorm/common/ObjectType.js.map +1 -0
- package/dist/vendor/typeorm/common/PickKeysByType.d.ts +6 -0
- package/dist/vendor/typeorm/common/PickKeysByType.js +3 -0
- package/dist/vendor/typeorm/common/PickKeysByType.js.map +1 -0
- package/dist/vendor/typeorm/common/PrimitiveCriteria.d.ts +2 -0
- package/dist/vendor/typeorm/common/PrimitiveCriteria.js +3 -0
- package/dist/vendor/typeorm/common/PrimitiveCriteria.js.map +1 -0
- package/dist/vendor/typeorm/common/RelationType.d.ts +16 -0
- package/dist/vendor/typeorm/common/RelationType.js +3 -0
- package/dist/vendor/typeorm/common/RelationType.js.map +1 -0
- package/dist/vendor/typeorm/connection/ConnectionMetadataBuilder.d.ts +30 -0
- package/dist/vendor/typeorm/connection/ConnectionMetadataBuilder.js +78 -0
- package/dist/vendor/typeorm/connection/ConnectionMetadataBuilder.js.map +1 -0
- package/dist/vendor/typeorm/connection/ConnectionOptionsReader.d.ts +56 -0
- package/dist/vendor/typeorm/connection/ConnectionOptionsReader.js +165 -0
- package/dist/vendor/typeorm/connection/ConnectionOptionsReader.js.map +1 -0
- package/dist/vendor/typeorm/data-source/BaseDataSourceOptions.d.ts +180 -0
- package/dist/vendor/typeorm/data-source/BaseDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/data-source/BaseDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/data-source/DataSource.d.ts +277 -0
- package/dist/vendor/typeorm/data-source/DataSource.js +555 -0
- package/dist/vendor/typeorm/data-source/DataSource.js.map +1 -0
- package/dist/vendor/typeorm/data-source/DataSourceOptions.d.ts +22 -0
- package/dist/vendor/typeorm/data-source/DataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/data-source/DataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/data-source/index.d.ts +2 -0
- package/dist/vendor/typeorm/data-source/index.js +5 -0
- package/dist/vendor/typeorm/data-source/index.js.map +1 -0
- package/dist/vendor/typeorm/decorator/Check.d.ts +17 -0
- package/dist/vendor/typeorm/decorator/Check.js +29 -0
- package/dist/vendor/typeorm/decorator/Check.js.map +1 -0
- package/dist/vendor/typeorm/decorator/Exclusion.d.ts +20 -0
- package/dist/vendor/typeorm/decorator/Exclusion.js +33 -0
- package/dist/vendor/typeorm/decorator/Exclusion.js.map +1 -0
- package/dist/vendor/typeorm/decorator/ForeignKey.d.ts +34 -0
- package/dist/vendor/typeorm/decorator/ForeignKey.js +48 -0
- package/dist/vendor/typeorm/decorator/ForeignKey.js.map +1 -0
- package/dist/vendor/typeorm/decorator/Generated.d.ts +12 -0
- package/dist/vendor/typeorm/decorator/Generated.js +25 -0
- package/dist/vendor/typeorm/decorator/Generated.js.map +1 -0
- package/dist/vendor/typeorm/decorator/Index.d.ts +72 -0
- package/dist/vendor/typeorm/decorator/Index.js +59 -0
- package/dist/vendor/typeorm/decorator/Index.js.map +1 -0
- package/dist/vendor/typeorm/decorator/Unique.d.ts +35 -0
- package/dist/vendor/typeorm/decorator/Unique.js +52 -0
- package/dist/vendor/typeorm/decorator/Unique.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/Column.d.ts +106 -0
- package/dist/vendor/typeorm/decorator/columns/Column.js +79 -0
- package/dist/vendor/typeorm/decorator/columns/Column.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/CreateDateColumn.d.ts +9 -0
- package/dist/vendor/typeorm/decorator/columns/CreateDateColumn.js +22 -0
- package/dist/vendor/typeorm/decorator/columns/CreateDateColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/DeleteDateColumn.d.ts +8 -0
- package/dist/vendor/typeorm/decorator/columns/DeleteDateColumn.js +21 -0
- package/dist/vendor/typeorm/decorator/columns/DeleteDateColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/ObjectIdColumn.d.ts +8 -0
- package/dist/vendor/typeorm/decorator/columns/ObjectIdColumn.js +26 -0
- package/dist/vendor/typeorm/decorator/columns/ObjectIdColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryColumn.d.ts +26 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryColumn.js +64 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryGeneratedColumn.d.ts +35 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryGeneratedColumn.js +61 -0
- package/dist/vendor/typeorm/decorator/columns/PrimaryGeneratedColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/UpdateDateColumn.d.ts +8 -0
- package/dist/vendor/typeorm/decorator/columns/UpdateDateColumn.js +21 -0
- package/dist/vendor/typeorm/decorator/columns/UpdateDateColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/VersionColumn.d.ts +9 -0
- package/dist/vendor/typeorm/decorator/columns/VersionColumn.js +22 -0
- package/dist/vendor/typeorm/decorator/columns/VersionColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/ViewColumn.d.ts +7 -0
- package/dist/vendor/typeorm/decorator/columns/ViewColumn.js +20 -0
- package/dist/vendor/typeorm/decorator/columns/ViewColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/columns/VirtualColumn.d.ts +15 -0
- package/dist/vendor/typeorm/decorator/columns/VirtualColumn.js +51 -0
- package/dist/vendor/typeorm/decorator/columns/VirtualColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/entity/ChildEntity.d.ts +6 -0
- package/dist/vendor/typeorm/decorator/entity/ChildEntity.js +26 -0
- package/dist/vendor/typeorm/decorator/entity/ChildEntity.js.map +1 -0
- package/dist/vendor/typeorm/decorator/entity/Entity.d.ts +16 -0
- package/dist/vendor/typeorm/decorator/entity/Entity.js +33 -0
- package/dist/vendor/typeorm/decorator/entity/Entity.js.map +1 -0
- package/dist/vendor/typeorm/decorator/entity/TableInheritance.d.ts +12 -0
- package/dist/vendor/typeorm/decorator/entity/TableInheritance.js +25 -0
- package/dist/vendor/typeorm/decorator/entity/TableInheritance.js.map +1 -0
- package/dist/vendor/typeorm/decorator/entity-view/ViewEntity.d.ts +16 -0
- package/dist/vendor/typeorm/decorator/entity-view/ViewEntity.js +34 -0
- package/dist/vendor/typeorm/decorator/entity-view/ViewEntity.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterInsert.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterInsert.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterInsert.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterLoad.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterLoad.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterLoad.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRecover.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRecover.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRecover.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRemove.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRemove.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterRemove.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterSoftRemove.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterSoftRemove.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterSoftRemove.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterUpdate.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterUpdate.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/AfterUpdate.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeInsert.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeInsert.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeInsert.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRecover.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRecover.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRecover.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRemove.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRemove.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeRemove.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeSoftRemove.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeSoftRemove.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeUpdate.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeUpdate.js +18 -0
- package/dist/vendor/typeorm/decorator/listeners/BeforeUpdate.js.map +1 -0
- package/dist/vendor/typeorm/decorator/listeners/EventSubscriber.d.ts +5 -0
- package/dist/vendor/typeorm/decorator/listeners/EventSubscriber.js +16 -0
- package/dist/vendor/typeorm/decorator/listeners/EventSubscriber.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnCommonOptions.d.ts +57 -0
- package/dist/vendor/typeorm/decorator/options/ColumnCommonOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnCommonOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEmbeddedOptions.d.ts +16 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEmbeddedOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEmbeddedOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEnumOptions.d.ts +13 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEnumOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnEnumOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnHstoreOptions.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/options/ColumnHstoreOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnHstoreOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnNumericOptions.d.ts +15 -0
- package/dist/vendor/typeorm/decorator/options/ColumnNumericOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnNumericOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnOptions.d.ts +158 -0
- package/dist/vendor/typeorm/decorator/options/ColumnOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnUnsignedOptions.d.ts +9 -0
- package/dist/vendor/typeorm/decorator/options/ColumnUnsignedOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnUnsignedOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ColumnWithLengthOptions.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/options/ColumnWithLengthOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ColumnWithLengthOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/EntityOptions.d.ts +47 -0
- package/dist/vendor/typeorm/decorator/options/EntityOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/EntityOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ExclusionOptions.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/options/ExclusionOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ExclusionOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ForeignKeyOptions.d.ts +24 -0
- package/dist/vendor/typeorm/decorator/options/ForeignKeyOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ForeignKeyOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/IndexOptions.d.ts +64 -0
- package/dist/vendor/typeorm/decorator/options/IndexOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/IndexOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/JoinColumnOptions.d.ts +17 -0
- package/dist/vendor/typeorm/decorator/options/JoinColumnOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/JoinColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableMultipleColumnsOptions.d.ts +35 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableOptions.d.ts +35 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/JoinTableOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +26 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +26 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +17 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/RelationOptions.d.ts +66 -0
- package/dist/vendor/typeorm/decorator/options/RelationOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/RelationOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/SpatialColumnOptions.d.ts +17 -0
- package/dist/vendor/typeorm/decorator/options/SpatialColumnOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/SpatialColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/TransactionOptions.d.ts +5 -0
- package/dist/vendor/typeorm/decorator/options/TransactionOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/TransactionOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/UniqueOptions.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/options/UniqueOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/UniqueOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ValueTransformer.d.ts +13 -0
- package/dist/vendor/typeorm/decorator/options/ValueTransformer.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ValueTransformer.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ViewColumnOptions.d.ts +15 -0
- package/dist/vendor/typeorm/decorator/options/ViewColumnOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ViewColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/ViewEntityOptions.d.ts +40 -0
- package/dist/vendor/typeorm/decorator/options/ViewEntityOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/ViewEntityOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/options/VirtualColumnOptions.d.ts +33 -0
- package/dist/vendor/typeorm/decorator/options/VirtualColumnOptions.js +3 -0
- package/dist/vendor/typeorm/decorator/options/VirtualColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/JoinColumn.d.ts +23 -0
- package/dist/vendor/typeorm/decorator/relations/JoinColumn.js +28 -0
- package/dist/vendor/typeorm/decorator/relations/JoinColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/JoinTable.d.ts +21 -0
- package/dist/vendor/typeorm/decorator/relations/JoinTable.js +35 -0
- package/dist/vendor/typeorm/decorator/relations/JoinTable.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToMany.d.ts +21 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToMany.js +48 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToMany.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToOne.d.ts +21 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToOne.js +48 -0
- package/dist/vendor/typeorm/decorator/relations/ManyToOne.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/OneToMany.d.ts +12 -0
- package/dist/vendor/typeorm/decorator/relations/OneToMany.js +39 -0
- package/dist/vendor/typeorm/decorator/relations/OneToMany.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/OneToOne.d.ts +19 -0
- package/dist/vendor/typeorm/decorator/relations/OneToOne.js +47 -0
- package/dist/vendor/typeorm/decorator/relations/OneToOne.js.map +1 -0
- package/dist/vendor/typeorm/decorator/relations/RelationId.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/relations/RelationId.js +24 -0
- package/dist/vendor/typeorm/decorator/relations/RelationId.js.map +1 -0
- package/dist/vendor/typeorm/decorator/tree/Tree.d.ts +12 -0
- package/dist/vendor/typeorm/decorator/tree/Tree.js +23 -0
- package/dist/vendor/typeorm/decorator/tree/Tree.js.map +1 -0
- package/dist/vendor/typeorm/decorator/tree/TreeChildren.d.ts +10 -0
- package/dist/vendor/typeorm/decorator/tree/TreeChildren.js +35 -0
- package/dist/vendor/typeorm/decorator/tree/TreeChildren.js.map +1 -0
- package/dist/vendor/typeorm/decorator/tree/TreeLevelColumn.d.ts +4 -0
- package/dist/vendor/typeorm/decorator/tree/TreeLevelColumn.js +18 -0
- package/dist/vendor/typeorm/decorator/tree/TreeLevelColumn.js.map +1 -0
- package/dist/vendor/typeorm/decorator/tree/TreeParent.d.ts +11 -0
- package/dist/vendor/typeorm/decorator/tree/TreeParent.js +34 -0
- package/dist/vendor/typeorm/decorator/tree/TreeParent.js.map +1 -0
- package/dist/vendor/typeorm/driver/Driver.d.ts +241 -0
- package/dist/vendor/typeorm/driver/Driver.js +3 -0
- package/dist/vendor/typeorm/driver/Driver.js.map +1 -0
- package/dist/vendor/typeorm/driver/DriverFactory.d.ts +14 -0
- package/dist/vendor/typeorm/driver/DriverFactory.js +100 -0
- package/dist/vendor/typeorm/driver/DriverFactory.js.map +1 -0
- package/dist/vendor/typeorm/driver/DriverUtils.d.ts +71 -0
- package/dist/vendor/typeorm/driver/DriverUtils.js +233 -0
- package/dist/vendor/typeorm/driver/DriverUtils.js.map +1 -0
- package/dist/vendor/typeorm/driver/Query.d.ts +9 -0
- package/dist/vendor/typeorm/driver/Query.js +15 -0
- package/dist/vendor/typeorm/driver/Query.js.map +1 -0
- package/dist/vendor/typeorm/driver/SqlInMemory.d.ts +8 -0
- package/dist/vendor/typeorm/driver/SqlInMemory.js +14 -0
- package/dist/vendor/typeorm/driver/SqlInMemory.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +35 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +35 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDriver.d.ts +322 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js +880 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +532 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1875 -0
- package/dist/vendor/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDataSourceOptions.d.ts +35 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDriver.d.ts +85 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js +130 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +59 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js +180 -0
- package/dist/vendor/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +69 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3Driver.d.ts +63 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js +158 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +37 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js +144 -0
- package/dist/vendor/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDataSourceOptions.d.ts +31 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDriver.d.ts +29 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDriver.js +78 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorQueryRunner.d.ts +39 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorQueryRunner.js +107 -0
- package/dist/vendor/typeorm/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +34 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDataSourceOptions.d.ts +64 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDriver.d.ts +357 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDriver.js +1006 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachQueryRunner.d.ts +646 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachQueryRunner.js +2755 -0
- package/dist/vendor/typeorm/driver/cockroachdb/CockroachQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDataSourceOptions.d.ts +24 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDriver.d.ts +33 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDriver.js +84 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaQueryRunner.d.ts +54 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaQueryRunner.js +146 -0
- package/dist/vendor/typeorm/driver/cordova/CordovaQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDataSourceOptions.d.ts +21 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDriver.d.ts +15 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDriver.js +45 -0
- package/dist/vendor/typeorm/driver/expo/ExpoDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/expo/ExpoQueryRunner.d.ts +10 -0
- package/dist/vendor/typeorm/driver/expo/ExpoQueryRunner.js +67 -0
- package/dist/vendor/typeorm/driver/expo/ExpoQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedBTree.d.ts +167 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedBTree.js +541 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedBTree.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCache.d.ts +96 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCache.js +185 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCache.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedClient.d.ts +411 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedClient.js +1345 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedClient.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCollectionStore.d.ts +402 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCollectionStore.js +1017 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedCollectionStore.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedFile.d.ts +68 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedFile.js +126 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedFile.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeyEncoding.d.ts +88 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeyEncoding.js +306 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeyEncoding.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeydir.d.ts +124 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeydir.js +331 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedKeydir.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedLog.d.ts +80 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedLog.js +119 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedLog.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedObjectId.d.ts +19 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedObjectId.js +35 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedObjectId.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedPlanner.d.ts +100 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedPlanner.js +261 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedPlanner.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedStore.d.ts +185 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedStore.js +529 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedStore.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedValues.d.ts +58 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedValues.js +176 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedValues.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorker.d.ts +12 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorker.js +181 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorker.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerClient.d.ts +204 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerClient.js +564 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerClient.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerCode.d.ts +7 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerCode.js +4 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerProtocol.d.ts +117 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerProtocol.js +155 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/EmbeddedWorkerProtocol.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDataSourceOptions.d.ts +97 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDriver.d.ts +33 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDriver.js +67 -0
- package/dist/vendor/typeorm/driver/mongo-embedded/MongoEmbeddedDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDataSourceOptions.d.ts +205 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDriver.d.ts +281 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDriver.js +446 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoQueryRunner.d.ts +752 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoQueryRunner.js +951 -0
- package/dist/vendor/typeorm/driver/mongodb/MongoQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongodb/bson.typings.d.ts +1588 -0
- package/dist/vendor/typeorm/driver/mongodb/bson.typings.js +4 -0
- package/dist/vendor/typeorm/driver/mongodb/bson.typings.js.map +1 -0
- package/dist/vendor/typeorm/driver/mongodb/typings.d.ts +8064 -0
- package/dist/vendor/typeorm/driver/mongodb/typings.js +24 -0
- package/dist/vendor/typeorm/driver/mongodb/typings.js.map +1 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +44 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDataSourceOptions.d.ts +133 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDriver.d.ts +344 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDriver.js +1077 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlQueryRunner.d.ts +532 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlQueryRunner.js +2341 -0
- package/dist/vendor/typeorm/driver/mysql/MysqlQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDataSourceOptions.d.ts +45 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDriver.d.ts +46 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDriver.js +92 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptQueryRunner.d.ts +36 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptQueryRunner.js +101 -0
- package/dist/vendor/typeorm/driver/nativescript/NativescriptQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/oracle/OracleConnectionCredentialsOptions.d.ts +41 -0
- package/dist/vendor/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDataSourceOptions.d.ts +51 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDriver.d.ts +332 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDriver.js +939 -0
- package/dist/vendor/typeorm/driver/oracle/OracleDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/oracle/OracleQueryRunner.d.ts +550 -0
- package/dist/vendor/typeorm/driver/oracle/OracleQueryRunner.js +2135 -0
- package/dist/vendor/typeorm/driver/oracle/OracleQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +39 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDataSourceOptions.d.ts +89 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDriver.d.ts +391 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDriver.js +1494 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresQueryRunner.d.ts +691 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresQueryRunner.js +3119 -0
- package/dist/vendor/typeorm/driver/postgres/PostgresQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDataSourceOptions.d.ts +28 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDriver.d.ts +307 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDriver.js +805 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeQueryRunner.d.ts +36 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeQueryRunner.js +116 -0
- package/dist/vendor/typeorm/driver/react-native/ReactNativeQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
- package/dist/vendor/typeorm/driver/sap/SapConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/sap/SapDataSourceOptions.d.ts +59 -0
- package/dist/vendor/typeorm/driver/sap/SapDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/sap/SapDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/sap/SapDriver.d.ts +296 -0
- package/dist/vendor/typeorm/driver/sap/SapDriver.js +761 -0
- package/dist/vendor/typeorm/driver/sap/SapDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/sap/SapQueryRunner.d.ts +565 -0
- package/dist/vendor/typeorm/driver/sap/SapQueryRunner.js +2452 -0
- package/dist/vendor/typeorm/driver/sap/SapQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +30 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDataSourceOptions.d.ts +123 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDriver.d.ts +302 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDriver.js +673 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerQueryRunner.d.ts +574 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerQueryRunner.js +1761 -0
- package/dist/vendor/typeorm/driver/spanner/SpannerQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +319 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js +770 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +498 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1732 -0
- package/dist/vendor/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDataSourceOptions.d.ts +46 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDriver.d.ts +76 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDriver.js +264 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsQueryRunner.d.ts +40 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsQueryRunner.js +129 -0
- package/dist/vendor/typeorm/driver/sqljs/SqljsQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/MssqlParameter.d.ts +45 -0
- package/dist/vendor/typeorm/driver/sqlserver/MssqlParameter.js +22 -0
- package/dist/vendor/typeorm/driver/sqlserver/MssqlParameter.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +43 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDataSourceOptions.d.ts +266 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDataSourceOptions.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDriver.d.ts +359 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDriver.js +1056 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerDriver.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerQueryRunner.d.ts +588 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerQueryRunner.js +2767 -0
- package/dist/vendor/typeorm/driver/sqlserver/SqlServerQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
- package/dist/vendor/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/ColumnTypes.d.ts +25 -0
- package/dist/vendor/typeorm/driver/types/ColumnTypes.js +3 -0
- package/dist/vendor/typeorm/driver/types/ColumnTypes.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/CteCapabilities.d.ts +18 -0
- package/dist/vendor/typeorm/driver/types/CteCapabilities.js +3 -0
- package/dist/vendor/typeorm/driver/types/CteCapabilities.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/DataTypeDefaults.d.ts +7 -0
- package/dist/vendor/typeorm/driver/types/DataTypeDefaults.js +3 -0
- package/dist/vendor/typeorm/driver/types/DataTypeDefaults.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/DatabaseType.d.ts +4 -0
- package/dist/vendor/typeorm/driver/types/DatabaseType.js +3 -0
- package/dist/vendor/typeorm/driver/types/DatabaseType.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/GeoJsonTypes.d.ts +92 -0
- package/dist/vendor/typeorm/driver/types/GeoJsonTypes.js +3 -0
- package/dist/vendor/typeorm/driver/types/GeoJsonTypes.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/InvalidFindOptionsWhereBehavior.d.ts +15 -0
- package/dist/vendor/typeorm/driver/types/InvalidFindOptionsWhereBehavior.js +3 -0
- package/dist/vendor/typeorm/driver/types/InvalidFindOptionsWhereBehavior.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/IsolationLevel.d.ts +2 -0
- package/dist/vendor/typeorm/driver/types/IsolationLevel.js +11 -0
- package/dist/vendor/typeorm/driver/types/IsolationLevel.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/MappedColumnTypes.d.ts +112 -0
- package/dist/vendor/typeorm/driver/types/MappedColumnTypes.js +3 -0
- package/dist/vendor/typeorm/driver/types/MappedColumnTypes.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/MetadataTableType.d.ts +5 -0
- package/dist/vendor/typeorm/driver/types/MetadataTableType.js +10 -0
- package/dist/vendor/typeorm/driver/types/MetadataTableType.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/ReplicationMode.d.ts +1 -0
- package/dist/vendor/typeorm/driver/types/ReplicationMode.js +3 -0
- package/dist/vendor/typeorm/driver/types/ReplicationMode.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/ReturningType.d.ts +1 -0
- package/dist/vendor/typeorm/driver/types/ReturningType.js +3 -0
- package/dist/vendor/typeorm/driver/types/ReturningType.js.map +1 -0
- package/dist/vendor/typeorm/driver/types/UpsertType.d.ts +1 -0
- package/dist/vendor/typeorm/driver/types/UpsertType.js +3 -0
- package/dist/vendor/typeorm/driver/types/UpsertType.js.map +1 -0
- package/dist/vendor/typeorm/driver/validate-isolation-level.d.ts +9 -0
- package/dist/vendor/typeorm/driver/validate-isolation-level.js +23 -0
- package/dist/vendor/typeorm/driver/validate-isolation-level.js.map +1 -0
- package/dist/vendor/typeorm/entity-manager/EntityManager.d.ts +530 -0
- package/dist/vendor/typeorm/entity-manager/EntityManager.js +918 -0
- package/dist/vendor/typeorm/entity-manager/EntityManager.js.map +1 -0
- package/dist/vendor/typeorm/entity-manager/EntityManagerFactory.d.ts +16 -0
- package/dist/vendor/typeorm/entity-manager/EntityManagerFactory.js +27 -0
- package/dist/vendor/typeorm/entity-manager/EntityManagerFactory.js.map +1 -0
- package/dist/vendor/typeorm/entity-manager/MongoEntityManager.d.ts +441 -0
- package/dist/vendor/typeorm/entity-manager/MongoEntityManager.js +948 -0
- package/dist/vendor/typeorm/entity-manager/MongoEntityManager.js.map +1 -0
- package/dist/vendor/typeorm/entity-manager/SqljsEntityManager.d.ts +30 -0
- package/dist/vendor/typeorm/entity-manager/SqljsEntityManager.js +47 -0
- package/dist/vendor/typeorm/entity-manager/SqljsEntityManager.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchema.d.ts +9 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchema.js +14 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchema.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaCheckOptions.d.ts +10 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaCheckOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaCheckOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnOptions.d.ts +170 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js +7 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedError.js +17 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaExclusionOptions.d.ts +15 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaExclusionOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaExclusionOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaForeignKeyOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaIndexOptions.d.ts +53 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaIndexOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaIndexOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaInheritanceOptions.d.ts +11 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaInheritanceOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaOptions.d.ts +118 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaOptions.js +10 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationIdOptions.d.ts +15 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationIdOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationOptions.d.ts +95 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaRelationOptions.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaTransformer.d.ts +15 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaTransformer.js +342 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaTransformer.js.map +1 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaUniqueOptions.d.ts +17 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaUniqueOptions.js +3 -0
- package/dist/vendor/typeorm/entity-schema/EntitySchemaUniqueOptions.js.map +1 -0
- package/dist/vendor/typeorm/error/AlreadyHasActiveConnectionError.d.ts +7 -0
- package/dist/vendor/typeorm/error/AlreadyHasActiveConnectionError.js +15 -0
- package/dist/vendor/typeorm/error/AlreadyHasActiveConnectionError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotAttachTreeChildrenEntityError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CannotAttachTreeChildrenEntityError.js +15 -0
- package/dist/vendor/typeorm/error/CannotAttachTreeChildrenEntityError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotConnectAlreadyConnectedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CannotConnectAlreadyConnectedError.js +14 -0
- package/dist/vendor/typeorm/error/CannotConnectAlreadyConnectedError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotCreateEntityIdMapError.d.ts +9 -0
- package/dist/vendor/typeorm/error/CannotCreateEntityIdMapError.js +20 -0
- package/dist/vendor/typeorm/error/CannotCreateEntityIdMapError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotDetermineEntityError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CannotDetermineEntityError.js +15 -0
- package/dist/vendor/typeorm/error/CannotDetermineEntityError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotExecuteNotConnectedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CannotExecuteNotConnectedError.js +14 -0
- package/dist/vendor/typeorm/error/CannotExecuteNotConnectedError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotGetEntityManagerNotConnectedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CannotGetEntityManagerNotConnectedError.js +14 -0
- package/dist/vendor/typeorm/error/CannotGetEntityManagerNotConnectedError.js.map +1 -0
- package/dist/vendor/typeorm/error/CannotReflectMethodParameterTypeError.d.ts +8 -0
- package/dist/vendor/typeorm/error/CannotReflectMethodParameterTypeError.js +17 -0
- package/dist/vendor/typeorm/error/CannotReflectMethodParameterTypeError.js.map +1 -0
- package/dist/vendor/typeorm/error/CircularRelationsError.d.ts +7 -0
- package/dist/vendor/typeorm/error/CircularRelationsError.js +15 -0
- package/dist/vendor/typeorm/error/CircularRelationsError.js.map +1 -0
- package/dist/vendor/typeorm/error/ColumnTypeUndefinedError.d.ts +8 -0
- package/dist/vendor/typeorm/error/ColumnTypeUndefinedError.js +18 -0
- package/dist/vendor/typeorm/error/ColumnTypeUndefinedError.js.map +1 -0
- package/dist/vendor/typeorm/error/ConnectionIsNotSetError.d.ts +7 -0
- package/dist/vendor/typeorm/error/ConnectionIsNotSetError.js +14 -0
- package/dist/vendor/typeorm/error/ConnectionIsNotSetError.js.map +1 -0
- package/dist/vendor/typeorm/error/ConnectionNotFoundError.d.ts +7 -0
- package/dist/vendor/typeorm/error/ConnectionNotFoundError.js +14 -0
- package/dist/vendor/typeorm/error/ConnectionNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/DataTypeNotSupportedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/DataTypeNotSupportedError.js +13 -0
- package/dist/vendor/typeorm/error/DataTypeNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/DriverOptionNotSetError.d.ts +7 -0
- package/dist/vendor/typeorm/error/DriverOptionNotSetError.js +15 -0
- package/dist/vendor/typeorm/error/DriverOptionNotSetError.js.map +1 -0
- package/dist/vendor/typeorm/error/DriverPackageNotInstalledError.d.ts +7 -0
- package/dist/vendor/typeorm/error/DriverPackageNotInstalledError.js +14 -0
- package/dist/vendor/typeorm/error/DriverPackageNotInstalledError.js.map +1 -0
- package/dist/vendor/typeorm/error/EntityMetadataNotFoundError.d.ts +6 -0
- package/dist/vendor/typeorm/error/EntityMetadataNotFoundError.js +28 -0
- package/dist/vendor/typeorm/error/EntityMetadataNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/EntityNotFoundError.d.ts +12 -0
- package/dist/vendor/typeorm/error/EntityNotFoundError.js +41 -0
- package/dist/vendor/typeorm/error/EntityNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/EntityPropertyNotFoundError.d.ts +8 -0
- package/dist/vendor/typeorm/error/EntityPropertyNotFoundError.js +16 -0
- package/dist/vendor/typeorm/error/EntityPropertyNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/FindRelationsNotFoundError.d.ts +7 -0
- package/dist/vendor/typeorm/error/FindRelationsNotFoundError.js +22 -0
- package/dist/vendor/typeorm/error/FindRelationsNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/dist/vendor/typeorm/error/ForbiddenTransactionModeOverrideError.js +15 -0
- package/dist/vendor/typeorm/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/dist/vendor/typeorm/error/InitializedRelationError.d.ts +11 -0
- package/dist/vendor/typeorm/error/InitializedRelationError.js +19 -0
- package/dist/vendor/typeorm/error/InitializedRelationError.js.map +1 -0
- package/dist/vendor/typeorm/error/InsertValuesMissingError.d.ts +7 -0
- package/dist/vendor/typeorm/error/InsertValuesMissingError.js +15 -0
- package/dist/vendor/typeorm/error/InsertValuesMissingError.js.map +1 -0
- package/dist/vendor/typeorm/error/LimitOnUpdateNotSupportedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/LimitOnUpdateNotSupportedError.js +14 -0
- package/dist/vendor/typeorm/error/LimitOnUpdateNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/LockNotSupportedOnGivenDriverError.d.ts +7 -0
- package/dist/vendor/typeorm/error/LockNotSupportedOnGivenDriverError.js +14 -0
- package/dist/vendor/typeorm/error/LockNotSupportedOnGivenDriverError.js.map +1 -0
- package/dist/vendor/typeorm/error/MetadataAlreadyExistsError.d.ts +4 -0
- package/dist/vendor/typeorm/error/MetadataAlreadyExistsError.js +17 -0
- package/dist/vendor/typeorm/error/MetadataAlreadyExistsError.js.map +1 -0
- package/dist/vendor/typeorm/error/MetadataWithSuchNameAlreadyExistsError.d.ts +4 -0
- package/dist/vendor/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js +15 -0
- package/dist/vendor/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -0
- package/dist/vendor/typeorm/error/MissingDeleteDateColumnError.d.ts +5 -0
- package/dist/vendor/typeorm/error/MissingDeleteDateColumnError.js +11 -0
- package/dist/vendor/typeorm/error/MissingDeleteDateColumnError.js.map +1 -0
- package/dist/vendor/typeorm/error/MissingDriverError.d.ts +7 -0
- package/dist/vendor/typeorm/error/MissingDriverError.js +15 -0
- package/dist/vendor/typeorm/error/MissingDriverError.js.map +1 -0
- package/dist/vendor/typeorm/error/MissingJoinColumnError.d.ts +6 -0
- package/dist/vendor/typeorm/error/MissingJoinColumnError.js +22 -0
- package/dist/vendor/typeorm/error/MissingJoinColumnError.js.map +1 -0
- package/dist/vendor/typeorm/error/MissingJoinTableError.d.ts +6 -0
- package/dist/vendor/typeorm/error/MissingJoinTableError.js +22 -0
- package/dist/vendor/typeorm/error/MissingJoinTableError.js.map +1 -0
- package/dist/vendor/typeorm/error/MissingPrimaryColumnError.d.ts +5 -0
- package/dist/vendor/typeorm/error/MissingPrimaryColumnError.js +12 -0
- package/dist/vendor/typeorm/error/MissingPrimaryColumnError.js.map +1 -0
- package/dist/vendor/typeorm/error/MustBeEntityError.d.ts +7 -0
- package/dist/vendor/typeorm/error/MustBeEntityError.js +14 -0
- package/dist/vendor/typeorm/error/MustBeEntityError.js.map +1 -0
- package/dist/vendor/typeorm/error/NamedPlaceholdersNotSupportedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/NamedPlaceholdersNotSupportedError.js +14 -0
- package/dist/vendor/typeorm/error/NamedPlaceholdersNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/NestedSetMultipleRootError.d.ts +4 -0
- package/dist/vendor/typeorm/error/NestedSetMultipleRootError.js +11 -0
- package/dist/vendor/typeorm/error/NestedSetMultipleRootError.js.map +1 -0
- package/dist/vendor/typeorm/error/NoConnectionForRepositoryError.d.ts +7 -0
- package/dist/vendor/typeorm/error/NoConnectionForRepositoryError.js +15 -0
- package/dist/vendor/typeorm/error/NoConnectionForRepositoryError.js.map +1 -0
- package/dist/vendor/typeorm/error/NoConnectionOptionError.d.ts +7 -0
- package/dist/vendor/typeorm/error/NoConnectionOptionError.js +15 -0
- package/dist/vendor/typeorm/error/NoConnectionOptionError.js.map +1 -0
- package/dist/vendor/typeorm/error/NoNeedToReleaseEntityManagerError.d.ts +7 -0
- package/dist/vendor/typeorm/error/NoNeedToReleaseEntityManagerError.js +16 -0
- package/dist/vendor/typeorm/error/NoNeedToReleaseEntityManagerError.js.map +1 -0
- package/dist/vendor/typeorm/error/NoVersionOrUpdateDateColumnError.d.ts +7 -0
- package/dist/vendor/typeorm/error/NoVersionOrUpdateDateColumnError.js +14 -0
- package/dist/vendor/typeorm/error/NoVersionOrUpdateDateColumnError.js.map +1 -0
- package/dist/vendor/typeorm/error/OffsetWithoutLimitNotSupportedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/OffsetWithoutLimitNotSupportedError.js +16 -0
- package/dist/vendor/typeorm/error/OffsetWithoutLimitNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/OptimisticLockCanNotBeUsedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/OptimisticLockCanNotBeUsedError.js +14 -0
- package/dist/vendor/typeorm/error/OptimisticLockCanNotBeUsedError.js.map +1 -0
- package/dist/vendor/typeorm/error/OptimisticLockVersionMismatchError.d.ts +7 -0
- package/dist/vendor/typeorm/error/OptimisticLockVersionMismatchError.js +14 -0
- package/dist/vendor/typeorm/error/OptimisticLockVersionMismatchError.js.map +1 -0
- package/dist/vendor/typeorm/error/PersistedEntityNotFoundError.d.ts +7 -0
- package/dist/vendor/typeorm/error/PersistedEntityNotFoundError.js +14 -0
- package/dist/vendor/typeorm/error/PersistedEntityNotFoundError.js.map +1 -0
- package/dist/vendor/typeorm/error/PessimisticLockTransactionRequiredError.d.ts +7 -0
- package/dist/vendor/typeorm/error/PessimisticLockTransactionRequiredError.js +14 -0
- package/dist/vendor/typeorm/error/PessimisticLockTransactionRequiredError.js.map +1 -0
- package/dist/vendor/typeorm/error/PrimaryColumnCannotBeNullableError.d.ts +4 -0
- package/dist/vendor/typeorm/error/PrimaryColumnCannotBeNullableError.js +12 -0
- package/dist/vendor/typeorm/error/PrimaryColumnCannotBeNullableError.js.map +1 -0
- package/dist/vendor/typeorm/error/QueryFailedError.d.ts +11 -0
- package/dist/vendor/typeorm/error/QueryFailedError.js +29 -0
- package/dist/vendor/typeorm/error/QueryFailedError.js.map +1 -0
- package/dist/vendor/typeorm/error/QueryRunnerAlreadyReleasedError.d.ts +4 -0
- package/dist/vendor/typeorm/error/QueryRunnerAlreadyReleasedError.js +11 -0
- package/dist/vendor/typeorm/error/QueryRunnerAlreadyReleasedError.js.map +1 -0
- package/dist/vendor/typeorm/error/QueryRunnerProviderAlreadyReleasedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js +15 -0
- package/dist/vendor/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -0
- package/dist/vendor/typeorm/error/RepositoryNotTreeError.d.ts +8 -0
- package/dist/vendor/typeorm/error/RepositoryNotTreeError.js +31 -0
- package/dist/vendor/typeorm/error/RepositoryNotTreeError.js.map +1 -0
- package/dist/vendor/typeorm/error/ReturningStatementNotSupportedError.d.ts +8 -0
- package/dist/vendor/typeorm/error/ReturningStatementNotSupportedError.js +15 -0
- package/dist/vendor/typeorm/error/ReturningStatementNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/SubjectRemovedAndUpdatedError.d.ts +8 -0
- package/dist/vendor/typeorm/error/SubjectRemovedAndUpdatedError.js +15 -0
- package/dist/vendor/typeorm/error/SubjectRemovedAndUpdatedError.js.map +1 -0
- package/dist/vendor/typeorm/error/SubjectWithoutIdentifierError.d.ts +10 -0
- package/dist/vendor/typeorm/error/SubjectWithoutIdentifierError.js +16 -0
- package/dist/vendor/typeorm/error/SubjectWithoutIdentifierError.js.map +1 -0
- package/dist/vendor/typeorm/error/TransactionAlreadyStartedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/TransactionAlreadyStartedError.js +14 -0
- package/dist/vendor/typeorm/error/TransactionAlreadyStartedError.js.map +1 -0
- package/dist/vendor/typeorm/error/TransactionNotStartedError.d.ts +7 -0
- package/dist/vendor/typeorm/error/TransactionNotStartedError.js +14 -0
- package/dist/vendor/typeorm/error/TransactionNotStartedError.js.map +1 -0
- package/dist/vendor/typeorm/error/TreeRepositoryNotSupportedError.d.ts +5 -0
- package/dist/vendor/typeorm/error/TreeRepositoryNotSupportedError.js +11 -0
- package/dist/vendor/typeorm/error/TreeRepositoryNotSupportedError.js.map +1 -0
- package/dist/vendor/typeorm/error/TypeORMError.d.ts +4 -0
- package/dist/vendor/typeorm/error/TypeORMError.js +22 -0
- package/dist/vendor/typeorm/error/TypeORMError.js.map +1 -0
- package/dist/vendor/typeorm/error/UpdateValuesMissingError.d.ts +4 -0
- package/dist/vendor/typeorm/error/UpdateValuesMissingError.js +11 -0
- package/dist/vendor/typeorm/error/UpdateValuesMissingError.js.map +1 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnIsNotAllowedError.d.ts +6 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnIsNotAllowedError.js +12 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnIsNotAllowedError.js.map +1 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +6 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +13 -0
- package/dist/vendor/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -0
- package/dist/vendor/typeorm/error/UsingJoinTableIsNotAllowedError.d.ts +6 -0
- package/dist/vendor/typeorm/error/UsingJoinTableIsNotAllowedError.js +13 -0
- package/dist/vendor/typeorm/error/UsingJoinTableIsNotAllowedError.js.map +1 -0
- package/dist/vendor/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +6 -0
- package/dist/vendor/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js +13 -0
- package/dist/vendor/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -0
- package/dist/vendor/typeorm/error/index.d.ts +59 -0
- package/dist/vendor/typeorm/error/index.js +63 -0
- package/dist/vendor/typeorm/error/index.js.map +1 -0
- package/dist/vendor/typeorm/find-options/EqualOperator.d.ts +5 -0
- package/dist/vendor/typeorm/find-options/EqualOperator.js +12 -0
- package/dist/vendor/typeorm/find-options/EqualOperator.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindManyOptions.d.ts +14 -0
- package/dist/vendor/typeorm/find-options/FindManyOptions.js +3 -0
- package/dist/vendor/typeorm/find-options/FindManyOptions.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOneOptions.d.ts +80 -0
- package/dist/vendor/typeorm/find-options/FindOneOptions.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOneOptions.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOperator.d.ts +67 -0
- package/dist/vendor/typeorm/find-options/FindOperator.js +95 -0
- package/dist/vendor/typeorm/find-options/FindOperator.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOperatorType.d.ts +4 -0
- package/dist/vendor/typeorm/find-options/FindOperatorType.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOperatorType.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOptionsOrder.d.ts +18 -0
- package/dist/vendor/typeorm/find-options/FindOptionsOrder.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOptionsOrder.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOptionsRelations.d.ts +11 -0
- package/dist/vendor/typeorm/find-options/FindOptionsRelations.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOptionsRelations.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOptionsSelect.d.ts +11 -0
- package/dist/vendor/typeorm/find-options/FindOptionsSelect.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOptionsSelect.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOptionsUtils.d.ts +71 -0
- package/dist/vendor/typeorm/find-options/FindOptionsUtils.js +278 -0
- package/dist/vendor/typeorm/find-options/FindOptionsUtils.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindOptionsWhere.d.ts +17 -0
- package/dist/vendor/typeorm/find-options/FindOptionsWhere.js +3 -0
- package/dist/vendor/typeorm/find-options/FindOptionsWhere.js.map +1 -0
- package/dist/vendor/typeorm/find-options/FindTreeOptions.d.ts +13 -0
- package/dist/vendor/typeorm/find-options/FindTreeOptions.js +3 -0
- package/dist/vendor/typeorm/find-options/FindTreeOptions.js.map +1 -0
- package/dist/vendor/typeorm/find-options/OrderByCondition.d.ts +16 -0
- package/dist/vendor/typeorm/find-options/OrderByCondition.js +3 -0
- package/dist/vendor/typeorm/find-options/OrderByCondition.js.map +1 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindManyOptions.js +3 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindOneOptions.js +3 -0
- package/dist/vendor/typeorm/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/And.d.ts +6 -0
- package/dist/vendor/typeorm/find-options/operator/And.js +12 -0
- package/dist/vendor/typeorm/find-options/operator/And.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Any.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/Any.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/Any.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContainedBy.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContainedBy.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContainedBy.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContains.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContains.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayContains.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayOverlap.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayOverlap.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/ArrayOverlap.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Between.d.ts +11 -0
- package/dist/vendor/typeorm/find-options/operator/Between.js +17 -0
- package/dist/vendor/typeorm/find-options/operator/Between.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Equal.d.ts +15 -0
- package/dist/vendor/typeorm/find-options/operator/Equal.js +20 -0
- package/dist/vendor/typeorm/find-options/operator/Equal.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/ILike.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/ILike.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/ILike.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/In.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/In.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/In.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/IsNull.d.ts +9 -0
- package/dist/vendor/typeorm/find-options/operator/IsNull.js +15 -0
- package/dist/vendor/typeorm/find-options/operator/IsNull.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/JsonContains.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/JsonContains.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/JsonContains.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/LessThan.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/LessThan.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/LessThan.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/LessThanOrEqual.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/LessThanOrEqual.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/LessThanOrEqual.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Like.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/Like.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/Like.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThan.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThan.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThan.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThanOrEqual.d.ts +10 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThanOrEqual.js +16 -0
- package/dist/vendor/typeorm/find-options/operator/MoreThanOrEqual.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Not.d.ts +11 -0
- package/dist/vendor/typeorm/find-options/operator/Not.js +17 -0
- package/dist/vendor/typeorm/find-options/operator/Not.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Or.d.ts +6 -0
- package/dist/vendor/typeorm/find-options/operator/Or.js +12 -0
- package/dist/vendor/typeorm/find-options/operator/Or.js.map +1 -0
- package/dist/vendor/typeorm/find-options/operator/Raw.d.ts +31 -0
- package/dist/vendor/typeorm/find-options/operator/Raw.js +11 -0
- package/dist/vendor/typeorm/find-options/operator/Raw.js.map +1 -0
- package/dist/vendor/typeorm/globals.d.ts +6 -0
- package/dist/vendor/typeorm/globals.js +19 -0
- package/dist/vendor/typeorm/globals.js.map +1 -0
- package/dist/vendor/typeorm/index.d.ts +177 -0
- package/dist/vendor/typeorm/index.js +147 -0
- package/dist/vendor/typeorm/index.js.map +1 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/index.d.ts +2 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/index.js +8 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/index.js.map +1 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/legacy-oracle-naming-strategy.d.ts +16 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/legacy-oracle-naming-strategy.js +48 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/legacy-oracle-naming-strategy.js.map +1 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/naming-strategy-v03.d.ts +4 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/naming-strategy-v03.js +14 -0
- package/dist/vendor/typeorm/legacy-naming-strategies/naming-strategy-v03.js.map +1 -0
- package/dist/vendor/typeorm/logger/AbstractLogger.d.ts +82 -0
- package/dist/vendor/typeorm/logger/AbstractLogger.js +270 -0
- package/dist/vendor/typeorm/logger/AbstractLogger.js.map +1 -0
- package/dist/vendor/typeorm/logger/AdvancedConsoleLogger.d.ts +17 -0
- package/dist/vendor/typeorm/logger/AdvancedConsoleLogger.js +59 -0
- package/dist/vendor/typeorm/logger/AdvancedConsoleLogger.js.map +1 -0
- package/dist/vendor/typeorm/logger/DebugLogger.d.ts +26 -0
- package/dist/vendor/typeorm/logger/DebugLogger.js +85 -0
- package/dist/vendor/typeorm/logger/DebugLogger.js.map +1 -0
- package/dist/vendor/typeorm/logger/FileLogger.d.ts +35 -0
- package/dist/vendor/typeorm/logger/FileLogger.js +90 -0
- package/dist/vendor/typeorm/logger/FileLogger.js.map +1 -0
- package/dist/vendor/typeorm/logger/FormattedConsoleLogger.d.ts +17 -0
- package/dist/vendor/typeorm/logger/FormattedConsoleLogger.js +62 -0
- package/dist/vendor/typeorm/logger/FormattedConsoleLogger.js.map +1 -0
- package/dist/vendor/typeorm/logger/Logger.d.ts +64 -0
- package/dist/vendor/typeorm/logger/Logger.js +3 -0
- package/dist/vendor/typeorm/logger/Logger.js.map +1 -0
- package/dist/vendor/typeorm/logger/LoggerFactory.d.ts +14 -0
- package/dist/vendor/typeorm/logger/LoggerFactory.js +41 -0
- package/dist/vendor/typeorm/logger/LoggerFactory.js.map +1 -0
- package/dist/vendor/typeorm/logger/LoggerOptions.d.ts +5 -0
- package/dist/vendor/typeorm/logger/LoggerOptions.js +3 -0
- package/dist/vendor/typeorm/logger/LoggerOptions.js.map +1 -0
- package/dist/vendor/typeorm/logger/SimpleConsoleLogger.d.ts +17 -0
- package/dist/vendor/typeorm/logger/SimpleConsoleLogger.js +60 -0
- package/dist/vendor/typeorm/logger/SimpleConsoleLogger.js.map +1 -0
- package/dist/vendor/typeorm/metadata/CheckMetadata.d.ts +41 -0
- package/dist/vendor/typeorm/metadata/CheckMetadata.js +36 -0
- package/dist/vendor/typeorm/metadata/CheckMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/ColumnMetadata.d.ts +324 -0
- package/dist/vendor/typeorm/metadata/ColumnMetadata.js +624 -0
- package/dist/vendor/typeorm/metadata/ColumnMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/EmbeddedMetadata.d.ts +158 -0
- package/dist/vendor/typeorm/metadata/EmbeddedMetadata.js +214 -0
- package/dist/vendor/typeorm/metadata/EmbeddedMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/EntityListenerMetadata.d.ts +55 -0
- package/dist/vendor/typeorm/metadata/EntityListenerMetadata.js +83 -0
- package/dist/vendor/typeorm/metadata/EntityListenerMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/EntityMetadata.d.ts +619 -0
- package/dist/vendor/typeorm/metadata/EntityMetadata.js +722 -0
- package/dist/vendor/typeorm/metadata/EntityMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/ExclusionMetadata.d.ts +46 -0
- package/dist/vendor/typeorm/metadata/ExclusionMetadata.js +37 -0
- package/dist/vendor/typeorm/metadata/ExclusionMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/ForeignKeyMetadata.d.ts +79 -0
- package/dist/vendor/typeorm/metadata/ForeignKeyMetadata.js +58 -0
- package/dist/vendor/typeorm/metadata/ForeignKeyMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/IndexMetadata.d.ts +125 -0
- package/dist/vendor/typeorm/metadata/IndexMetadata.js +158 -0
- package/dist/vendor/typeorm/metadata/IndexMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/RelationIdMetadata.d.ts +55 -0
- package/dist/vendor/typeorm/metadata/RelationIdMetadata.js +63 -0
- package/dist/vendor/typeorm/metadata/RelationIdMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/RelationMetadata.d.ts +309 -0
- package/dist/vendor/typeorm/metadata/RelationMetadata.js +456 -0
- package/dist/vendor/typeorm/metadata/RelationMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/UniqueMetadata.d.ts +67 -0
- package/dist/vendor/typeorm/metadata/UniqueMetadata.js +108 -0
- package/dist/vendor/typeorm/metadata/UniqueMetadata.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/ClosureTreeOptions.d.ts +11 -0
- package/dist/vendor/typeorm/metadata/types/ClosureTreeOptions.js +3 -0
- package/dist/vendor/typeorm/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/DeferrableType.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/DeferrableType.js +3 -0
- package/dist/vendor/typeorm/metadata/types/DeferrableType.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/EventListenerTypes.d.ts +20 -0
- package/dist/vendor/typeorm/metadata/types/EventListenerTypes.js +21 -0
- package/dist/vendor/typeorm/metadata/types/EventListenerTypes.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/OnDeleteType.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/OnDeleteType.js +3 -0
- package/dist/vendor/typeorm/metadata/types/OnDeleteType.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/OnUpdateType.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/OnUpdateType.js +3 -0
- package/dist/vendor/typeorm/metadata/types/OnUpdateType.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/PropertyTypeInFunction.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/PropertyTypeInFunction.js +3 -0
- package/dist/vendor/typeorm/metadata/types/PropertyTypeInFunction.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypeInFunction.d.ts +5 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypeInFunction.js +3 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypeInFunction.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypes.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypes.js +3 -0
- package/dist/vendor/typeorm/metadata/types/RelationTypes.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/TableTypes.d.ts +4 -0
- package/dist/vendor/typeorm/metadata/types/TableTypes.js +3 -0
- package/dist/vendor/typeorm/metadata/types/TableTypes.js.map +1 -0
- package/dist/vendor/typeorm/metadata/types/TreeTypes.d.ts +5 -0
- package/dist/vendor/typeorm/metadata/types/TreeTypes.js +3 -0
- package/dist/vendor/typeorm/metadata/types/TreeTypes.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/CheckMetadataArgs.d.ts +17 -0
- package/dist/vendor/typeorm/metadata-args/CheckMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/CheckMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/ColumnMetadataArgs.d.ts +25 -0
- package/dist/vendor/typeorm/metadata-args/ColumnMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/ColumnMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/DiscriminatorValueMetadataArgs.d.ts +13 -0
- package/dist/vendor/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/EmbeddedMetadataArgs.d.ts +26 -0
- package/dist/vendor/typeorm/metadata-args/EmbeddedMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/EmbeddedMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/EntityListenerMetadataArgs.d.ts +18 -0
- package/dist/vendor/typeorm/metadata-args/EntityListenerMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/EntityListenerMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/EntitySubscriberMetadataArgs.d.ts +9 -0
- package/dist/vendor/typeorm/metadata-args/EntitySubscriberMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/ExclusionMetadataArgs.d.ts +22 -0
- package/dist/vendor/typeorm/metadata-args/ExclusionMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/ExclusionMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
- package/dist/vendor/typeorm/metadata-args/ForeignKeyMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/GeneratedMetadataArgs.d.ts +17 -0
- package/dist/vendor/typeorm/metadata-args/GeneratedMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/GeneratedMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/IndexMetadataArgs.d.ts +82 -0
- package/dist/vendor/typeorm/metadata-args/IndexMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/IndexMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/InheritanceMetadataArgs.d.ts +18 -0
- package/dist/vendor/typeorm/metadata-args/InheritanceMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/InheritanceMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/JoinColumnMetadataArgs.d.ts +26 -0
- package/dist/vendor/typeorm/metadata-args/JoinColumnMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/JoinColumnMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/JoinTableMetadataArgs.d.ts +43 -0
- package/dist/vendor/typeorm/metadata-args/JoinTableMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/JoinTableMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/MetadataArgsStorage.d.ts +118 -0
- package/dist/vendor/typeorm/metadata-args/MetadataArgsStorage.js +242 -0
- package/dist/vendor/typeorm/metadata-args/MetadataArgsStorage.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/NamingStrategyMetadataArgs.d.ts +13 -0
- package/dist/vendor/typeorm/metadata-args/NamingStrategyMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/NamingStrategyMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/RelationIdMetadataArgs.d.ts +26 -0
- package/dist/vendor/typeorm/metadata-args/RelationIdMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/RelationIdMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/RelationMetadataArgs.d.ts +55 -0
- package/dist/vendor/typeorm/metadata-args/RelationMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/RelationMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/TableMetadataArgs.d.ts +66 -0
- package/dist/vendor/typeorm/metadata-args/TableMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/TableMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/TransactionEntityMetadataArgs.d.ts +17 -0
- package/dist/vendor/typeorm/metadata-args/TransactionEntityMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/TransactionEntityMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/TransactionRepositoryMetadataArgs.d.ts +25 -0
- package/dist/vendor/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/TreeMetadataArgs.d.ts +19 -0
- package/dist/vendor/typeorm/metadata-args/TreeMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/TreeMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/UniqueMetadataArgs.d.ts +24 -0
- package/dist/vendor/typeorm/metadata-args/UniqueMetadataArgs.js +3 -0
- package/dist/vendor/typeorm/metadata-args/UniqueMetadataArgs.js.map +1 -0
- package/dist/vendor/typeorm/metadata-args/types/ColumnMode.d.ts +7 -0
- package/dist/vendor/typeorm/metadata-args/types/ColumnMode.js +3 -0
- package/dist/vendor/typeorm/metadata-args/types/ColumnMode.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +16 -0
- package/dist/vendor/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +154 -0
- package/dist/vendor/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataBuilder.d.ts +78 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataBuilder.js +835 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataBuilder.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataValidator.d.ts +34 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataValidator.js +220 -0
- package/dist/vendor/typeorm/metadata-builder/EntityMetadataValidator.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/JunctionEntityMetadataBuilder.d.ts +35 -0
- package/dist/vendor/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js +301 -0
- package/dist/vendor/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/MetadataUtils.d.ts +31 -0
- package/dist/vendor/typeorm/metadata-builder/MetadataUtils.js +51 -0
- package/dist/vendor/typeorm/metadata-builder/MetadataUtils.js.map +1 -0
- package/dist/vendor/typeorm/metadata-builder/RelationJoinColumnBuilder.d.ts +71 -0
- package/dist/vendor/typeorm/metadata-builder/RelationJoinColumnBuilder.js +216 -0
- package/dist/vendor/typeorm/metadata-builder/RelationJoinColumnBuilder.js.map +1 -0
- package/dist/vendor/typeorm/migration/Migration.d.ts +28 -0
- package/dist/vendor/typeorm/migration/Migration.js +20 -0
- package/dist/vendor/typeorm/migration/Migration.js.map +1 -0
- package/dist/vendor/typeorm/migration/MigrationExecutor.d.ts +115 -0
- package/dist/vendor/typeorm/migration/MigrationExecutor.js +558 -0
- package/dist/vendor/typeorm/migration/MigrationExecutor.js.map +1 -0
- package/dist/vendor/typeorm/migration/MigrationInterface.d.ts +25 -0
- package/dist/vendor/typeorm/migration/MigrationInterface.js +3 -0
- package/dist/vendor/typeorm/migration/MigrationInterface.js.map +1 -0
- package/dist/vendor/typeorm/naming-strategy/DefaultNamingStrategy.d.ts +32 -0
- package/dist/vendor/typeorm/naming-strategy/DefaultNamingStrategy.js +129 -0
- package/dist/vendor/typeorm/naming-strategy/DefaultNamingStrategy.js.map +1 -0
- package/dist/vendor/typeorm/naming-strategy/NamingStrategyInterface.d.ts +109 -0
- package/dist/vendor/typeorm/naming-strategy/NamingStrategyInterface.js +3 -0
- package/dist/vendor/typeorm/naming-strategy/NamingStrategyInterface.js.map +1 -0
- package/dist/vendor/typeorm/package.json +1 -0
- package/dist/vendor/typeorm/persistence/EntityPersistExecutor.d.ts +21 -0
- package/dist/vendor/typeorm/persistence/EntityPersistExecutor.js +179 -0
- package/dist/vendor/typeorm/persistence/EntityPersistExecutor.js.map +1 -0
- package/dist/vendor/typeorm/persistence/Subject.d.ts +155 -0
- package/dist/vendor/typeorm/persistence/Subject.js +237 -0
- package/dist/vendor/typeorm/persistence/Subject.js.map +1 -0
- package/dist/vendor/typeorm/persistence/SubjectChangeMap.d.ts +23 -0
- package/dist/vendor/typeorm/persistence/SubjectChangeMap.js +3 -0
- package/dist/vendor/typeorm/persistence/SubjectChangeMap.js.map +1 -0
- package/dist/vendor/typeorm/persistence/SubjectChangedColumnsComputer.d.ts +25 -0
- package/dist/vendor/typeorm/persistence/SubjectChangedColumnsComputer.js +231 -0
- package/dist/vendor/typeorm/persistence/SubjectChangedColumnsComputer.js.map +1 -0
- package/dist/vendor/typeorm/persistence/SubjectDatabaseEntityLoader.d.ts +29 -0
- package/dist/vendor/typeorm/persistence/SubjectDatabaseEntityLoader.js +150 -0
- package/dist/vendor/typeorm/persistence/SubjectDatabaseEntityLoader.js.map +1 -0
- package/dist/vendor/typeorm/persistence/SubjectExecutor.d.ts +123 -0
- package/dist/vendor/typeorm/persistence/SubjectExecutor.js +764 -0
- package/dist/vendor/typeorm/persistence/SubjectExecutor.js.map +1 -0
- package/dist/vendor/typeorm/persistence/SubjectTopologicalSorter.d.ts +53 -0
- package/dist/vendor/typeorm/persistence/SubjectTopologicalSorter.js +192 -0
- package/dist/vendor/typeorm/persistence/SubjectTopologicalSorter.js.map +1 -0
- package/dist/vendor/typeorm/persistence/subject-builder/CascadesSubjectBuilder.d.ts +25 -0
- package/dist/vendor/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js +136 -0
- package/dist/vendor/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -0
- package/dist/vendor/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +47 -0
- package/dist/vendor/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js +232 -0
- package/dist/vendor/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToManySubjectBuilder.d.ts +33 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js +193 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +33 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +160 -0
- package/dist/vendor/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -0
- package/dist/vendor/typeorm/persistence/tree/ClosureSubjectExecutor.d.ts +34 -0
- package/dist/vendor/typeorm/persistence/tree/ClosureSubjectExecutor.js +245 -0
- package/dist/vendor/typeorm/persistence/tree/ClosureSubjectExecutor.js.map +1 -0
- package/dist/vendor/typeorm/persistence/tree/MaterializedPathSubjectExecutor.d.ts +23 -0
- package/dist/vendor/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js +129 -0
- package/dist/vendor/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -0
- package/dist/vendor/typeorm/persistence/tree/NestedSetSubjectExecutor.d.ts +49 -0
- package/dist/vendor/typeorm/persistence/tree/NestedSetSubjectExecutor.js +281 -0
- package/dist/vendor/typeorm/persistence/tree/NestedSetSubjectExecutor.js.map +1 -0
- package/dist/vendor/typeorm/platform/DriverPackages.d.ts +10 -0
- package/dist/vendor/typeorm/platform/DriverPackages.js +54 -0
- package/dist/vendor/typeorm/platform/DriverPackages.js.map +1 -0
- package/dist/vendor/typeorm/platform/PlatformTools.d.ts +86 -0
- package/dist/vendor/typeorm/platform/PlatformTools.js +218 -0
- package/dist/vendor/typeorm/platform/PlatformTools.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/Alias.d.ts +22 -0
- package/dist/vendor/typeorm/query-builder/Alias.js +28 -0
- package/dist/vendor/typeorm/query-builder/Alias.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/Brackets.d.ts +18 -0
- package/dist/vendor/typeorm/query-builder/Brackets.js +20 -0
- package/dist/vendor/typeorm/query-builder/Brackets.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/DeleteQueryBuilder.d.ts +109 -0
- package/dist/vendor/typeorm/query-builder/DeleteQueryBuilder.js +221 -0
- package/dist/vendor/typeorm/query-builder/DeleteQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/InsertOrUpdateOptions.d.ts +18 -0
- package/dist/vendor/typeorm/query-builder/InsertOrUpdateOptions.js +3 -0
- package/dist/vendor/typeorm/query-builder/InsertOrUpdateOptions.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/InsertQueryBuilder.d.ts +148 -0
- package/dist/vendor/typeorm/query-builder/InsertQueryBuilder.js +1209 -0
- package/dist/vendor/typeorm/query-builder/InsertQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/JoinAttribute.d.ts +91 -0
- package/dist/vendor/typeorm/query-builder/JoinAttribute.js +163 -0
- package/dist/vendor/typeorm/query-builder/JoinAttribute.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/JoinOptions.d.ts +3 -0
- package/dist/vendor/typeorm/query-builder/JoinOptions.js +3 -0
- package/dist/vendor/typeorm/query-builder/JoinOptions.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/NotBrackets.d.ts +8 -0
- package/dist/vendor/typeorm/query-builder/NotBrackets.js +16 -0
- package/dist/vendor/typeorm/query-builder/NotBrackets.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilder.d.ts +327 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilder.js +1217 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderCte.d.ts +17 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderCte.js +3 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderCte.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderUtils.d.ts +12 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderUtils.js +33 -0
- package/dist/vendor/typeorm/query-builder/QueryBuilderUtils.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/QueryExpressionMap.d.ts +319 -0
- package/dist/vendor/typeorm/query-builder/QueryExpressionMap.js +325 -0
- package/dist/vendor/typeorm/query-builder/QueryExpressionMap.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/QueryPartialEntity.d.ts +15 -0
- package/dist/vendor/typeorm/query-builder/QueryPartialEntity.js +3 -0
- package/dist/vendor/typeorm/query-builder/QueryPartialEntity.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/RelationIdLoader.d.ts +71 -0
- package/dist/vendor/typeorm/query-builder/RelationIdLoader.js +516 -0
- package/dist/vendor/typeorm/query-builder/RelationIdLoader.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/RelationLoader.d.ts +103 -0
- package/dist/vendor/typeorm/query-builder/RelationLoader.js +342 -0
- package/dist/vendor/typeorm/query-builder/RelationLoader.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/RelationQueryBuilder.d.ts +70 -0
- package/dist/vendor/typeorm/query-builder/RelationQueryBuilder.js +155 -0
- package/dist/vendor/typeorm/query-builder/RelationQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/RelationRemover.d.ts +18 -0
- package/dist/vendor/typeorm/query-builder/RelationRemover.js +144 -0
- package/dist/vendor/typeorm/query-builder/RelationRemover.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/RelationUpdater.d.ts +18 -0
- package/dist/vendor/typeorm/query-builder/RelationUpdater.js +153 -0
- package/dist/vendor/typeorm/query-builder/RelationUpdater.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/ReturningOption.d.ts +4 -0
- package/dist/vendor/typeorm/query-builder/ReturningOption.js +3 -0
- package/dist/vendor/typeorm/query-builder/ReturningOption.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/ReturningResultsEntityUpdator.d.ts +36 -0
- package/dist/vendor/typeorm/query-builder/ReturningResultsEntityUpdator.js +181 -0
- package/dist/vendor/typeorm/query-builder/ReturningResultsEntityUpdator.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/SelectQuery.d.ts +5 -0
- package/dist/vendor/typeorm/query-builder/SelectQuery.js +3 -0
- package/dist/vendor/typeorm/query-builder/SelectQuery.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilder.d.ts +765 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilder.js +2803 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilderOption.d.ts +1 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilderOption.js +3 -0
- package/dist/vendor/typeorm/query-builder/SelectQueryBuilderOption.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/SoftDeleteQueryBuilder.d.ts +166 -0
- package/dist/vendor/typeorm/query-builder/SoftDeleteQueryBuilder.js +409 -0
- package/dist/vendor/typeorm/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/UpdateQueryBuilder.d.ts +170 -0
- package/dist/vendor/typeorm/query-builder/UpdateQueryBuilder.js +535 -0
- package/dist/vendor/typeorm/query-builder/UpdateQueryBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/WhereClause.d.ts +16 -0
- package/dist/vendor/typeorm/query-builder/WhereClause.js +3 -0
- package/dist/vendor/typeorm/query-builder/WhereClause.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/WhereExpressionBuilder.d.ts +121 -0
- package/dist/vendor/typeorm/query-builder/WhereExpressionBuilder.js +3 -0
- package/dist/vendor/typeorm/query-builder/WhereExpressionBuilder.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/index.d.ts +4 -0
- package/dist/vendor/typeorm/query-builder/index.js +22 -0
- package/dist/vendor/typeorm/query-builder/index.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdAttribute.d.ts +64 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdAttribute.js +87 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdAttribute.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoadResult.d.ts +5 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoadResult.js +3 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoadResult.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoader.d.ts +12 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoader.js +284 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdLoader.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +7 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +54 -0
- package/dist/vendor/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/result/DeleteResult.d.ts +16 -0
- package/dist/vendor/typeorm/query-builder/result/DeleteResult.js +16 -0
- package/dist/vendor/typeorm/query-builder/result/DeleteResult.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/result/InsertResult.d.ts +22 -0
- package/dist/vendor/typeorm/query-builder/result/InsertResult.js +27 -0
- package/dist/vendor/typeorm/query-builder/result/InsertResult.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/result/UpdateResult.d.ts +26 -0
- package/dist/vendor/typeorm/query-builder/result/UpdateResult.js +28 -0
- package/dist/vendor/typeorm/query-builder/result/UpdateResult.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/transformer/DocumentToEntityTransformer.d.ts +11 -0
- package/dist/vendor/typeorm/query-builder/transformer/DocumentToEntityTransformer.js +109 -0
- package/dist/vendor/typeorm/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +12 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +120 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +19 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js +96 -0
- package/dist/vendor/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -0
- package/dist/vendor/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +81 -0
- package/dist/vendor/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js +450 -0
- package/dist/vendor/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -0
- package/dist/vendor/typeorm/query-runner/BaseQueryRunner.d.ts +318 -0
- package/dist/vendor/typeorm/query-runner/BaseQueryRunner.js +543 -0
- package/dist/vendor/typeorm/query-runner/BaseQueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/query-runner/QueryLock.d.ts +4 -0
- package/dist/vendor/typeorm/query-runner/QueryLock.js +30 -0
- package/dist/vendor/typeorm/query-runner/QueryLock.js.map +1 -0
- package/dist/vendor/typeorm/query-runner/QueryResult.d.ts +17 -0
- package/dist/vendor/typeorm/query-runner/QueryResult.js +16 -0
- package/dist/vendor/typeorm/query-runner/QueryResult.js.map +1 -0
- package/dist/vendor/typeorm/query-runner/QueryRunner.d.ts +380 -0
- package/dist/vendor/typeorm/query-runner/QueryRunner.js +3 -0
- package/dist/vendor/typeorm/query-runner/QueryRunner.js.map +1 -0
- package/dist/vendor/typeorm/repository/BaseEntity.d.ts +387 -0
- package/dist/vendor/typeorm/repository/BaseEntity.js +387 -0
- package/dist/vendor/typeorm/repository/BaseEntity.js.map +1 -0
- package/dist/vendor/typeorm/repository/EntityId.d.ts +2 -0
- package/dist/vendor/typeorm/repository/EntityId.js +3 -0
- package/dist/vendor/typeorm/repository/EntityId.js.map +1 -0
- package/dist/vendor/typeorm/repository/FindTreesOptions.d.ts +9 -0
- package/dist/vendor/typeorm/repository/FindTreesOptions.js +3 -0
- package/dist/vendor/typeorm/repository/FindTreesOptions.js.map +1 -0
- package/dist/vendor/typeorm/repository/MongoRepository.d.ts +313 -0
- package/dist/vendor/typeorm/repository/MongoRepository.js +389 -0
- package/dist/vendor/typeorm/repository/MongoRepository.js.map +1 -0
- package/dist/vendor/typeorm/repository/RemoveOptions.d.ts +27 -0
- package/dist/vendor/typeorm/repository/RemoveOptions.js +3 -0
- package/dist/vendor/typeorm/repository/RemoveOptions.js.map +1 -0
- package/dist/vendor/typeorm/repository/Repository.d.ts +409 -0
- package/dist/vendor/typeorm/repository/Repository.js +442 -0
- package/dist/vendor/typeorm/repository/Repository.js.map +1 -0
- package/dist/vendor/typeorm/repository/SaveOptions.d.ts +35 -0
- package/dist/vendor/typeorm/repository/SaveOptions.js +3 -0
- package/dist/vendor/typeorm/repository/SaveOptions.js.map +1 -0
- package/dist/vendor/typeorm/repository/TreeRepository.d.ts +79 -0
- package/dist/vendor/typeorm/repository/TreeRepository.js +282 -0
- package/dist/vendor/typeorm/repository/TreeRepository.js.map +1 -0
- package/dist/vendor/typeorm/repository/UpdateOptions.d.ts +11 -0
- package/dist/vendor/typeorm/repository/UpdateOptions.js +3 -0
- package/dist/vendor/typeorm/repository/UpdateOptions.js.map +1 -0
- package/dist/vendor/typeorm/repository/UpsertOptions.d.ts +26 -0
- package/dist/vendor/typeorm/repository/UpsertOptions.js +3 -0
- package/dist/vendor/typeorm/repository/UpsertOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/MongoSchemaBuilder.d.ts +29 -0
- package/dist/vendor/typeorm/schema-builder/MongoSchemaBuilder.js +65 -0
- package/dist/vendor/typeorm/schema-builder/MongoSchemaBuilder.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/RdbmsSchemaBuilder.d.ts +174 -0
- package/dist/vendor/typeorm/schema-builder/RdbmsSchemaBuilder.js +944 -0
- package/dist/vendor/typeorm/schema-builder/RdbmsSchemaBuilder.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/SchemaBuilder.d.ts +14 -0
- package/dist/vendor/typeorm/schema-builder/SchemaBuilder.js +3 -0
- package/dist/vendor/typeorm/schema-builder/SchemaBuilder.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableCheckOptions.d.ts +17 -0
- package/dist/vendor/typeorm/schema-builder/options/TableCheckOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableCheckOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableColumnOptions.d.ts +112 -0
- package/dist/vendor/typeorm/schema-builder/options/TableColumnOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableColumnOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableExclusionOptions.d.ts +18 -0
- package/dist/vendor/typeorm/schema-builder/options/TableExclusionOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableExclusionOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableForeignKeyOptions.d.ts +44 -0
- package/dist/vendor/typeorm/schema-builder/options/TableForeignKeyOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableForeignKeyOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexOptions.d.ts +56 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexTypes.d.ts +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexTypes.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableIndexTypes.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableOptions.d.ts +65 -0
- package/dist/vendor/typeorm/schema-builder/options/TableOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/TableUniqueOptions.d.ts +18 -0
- package/dist/vendor/typeorm/schema-builder/options/TableUniqueOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/TableUniqueOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/options/ViewOptions.d.ts +27 -0
- package/dist/vendor/typeorm/schema-builder/options/ViewOptions.js +3 -0
- package/dist/vendor/typeorm/schema-builder/options/ViewOptions.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/Table.d.ts +183 -0
- package/dist/vendor/typeorm/schema-builder/table/Table.js +332 -0
- package/dist/vendor/typeorm/schema-builder/table/Table.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableCheck.d.ts +31 -0
- package/dist/vendor/typeorm/schema-builder/table/TableCheck.js +50 -0
- package/dist/vendor/typeorm/schema-builder/table/TableCheck.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableColumn.d.ts +116 -0
- package/dist/vendor/typeorm/schema-builder/table/TableColumn.js +107 -0
- package/dist/vendor/typeorm/schema-builder/table/TableColumn.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableExclusion.d.ts +32 -0
- package/dist/vendor/typeorm/schema-builder/table/TableExclusion.js +47 -0
- package/dist/vendor/typeorm/schema-builder/table/TableExclusion.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableForeignKey.d.ts +60 -0
- package/dist/vendor/typeorm/schema-builder/table/TableForeignKey.js +74 -0
- package/dist/vendor/typeorm/schema-builder/table/TableForeignKey.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableIndex.d.ts +70 -0
- package/dist/vendor/typeorm/schema-builder/table/TableIndex.js +72 -0
- package/dist/vendor/typeorm/schema-builder/table/TableIndex.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/table/TableUnique.d.ts +32 -0
- package/dist/vendor/typeorm/schema-builder/table/TableUnique.js +51 -0
- package/dist/vendor/typeorm/schema-builder/table/TableUnique.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/util/TableUtils.d.ts +6 -0
- package/dist/vendor/typeorm/schema-builder/util/TableUtils.js +38 -0
- package/dist/vendor/typeorm/schema-builder/util/TableUtils.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/util/ViewUtils.d.ts +10 -0
- package/dist/vendor/typeorm/schema-builder/util/ViewUtils.js +29 -0
- package/dist/vendor/typeorm/schema-builder/util/ViewUtils.js.map +1 -0
- package/dist/vendor/typeorm/schema-builder/view/View.d.ts +60 -0
- package/dist/vendor/typeorm/schema-builder/view/View.js +77 -0
- package/dist/vendor/typeorm/schema-builder/view/View.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/Broadcaster.d.ts +263 -0
- package/dist/vendor/typeorm/subscriber/Broadcaster.js +761 -0
- package/dist/vendor/typeorm/subscriber/Broadcaster.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/BroadcasterResult.d.ts +17 -0
- package/dist/vendor/typeorm/subscriber/BroadcasterResult.js +29 -0
- package/dist/vendor/typeorm/subscriber/BroadcasterResult.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/EntitySubscriberInterface.d.ts +101 -0
- package/dist/vendor/typeorm/subscriber/EntitySubscriberInterface.js +3 -0
- package/dist/vendor/typeorm/subscriber/EntitySubscriberInterface.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/BaseEvent.d.ts +28 -0
- package/dist/vendor/typeorm/subscriber/event/BaseEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/BaseEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/InsertEvent.d.ts +20 -0
- package/dist/vendor/typeorm/subscriber/event/InsertEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/InsertEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/LoadEvent.d.ts +15 -0
- package/dist/vendor/typeorm/subscriber/event/LoadEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/LoadEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/QueryEvent.d.ts +35 -0
- package/dist/vendor/typeorm/subscriber/event/QueryEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/QueryEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/RecoverEvent.d.ts +6 -0
- package/dist/vendor/typeorm/subscriber/event/RecoverEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/RecoverEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/RemoveEvent.d.ts +24 -0
- package/dist/vendor/typeorm/subscriber/event/RemoveEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/RemoveEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/SoftRemoveEvent.d.ts +6 -0
- package/dist/vendor/typeorm/subscriber/event/SoftRemoveEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/SoftRemoveEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionCommitEvent.d.ts +6 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionCommitEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionRollbackEvent.d.ts +6 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionStartEvent.d.ts +6 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionStartEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/dist/vendor/typeorm/subscriber/event/UpdateEvent.d.ts +34 -0
- package/dist/vendor/typeorm/subscriber/event/UpdateEvent.js +3 -0
- package/dist/vendor/typeorm/subscriber/event/UpdateEvent.js.map +1 -0
- package/dist/vendor/typeorm/util/ApplyValueTransformers.d.ts +5 -0
- package/dist/vendor/typeorm/util/ApplyValueTransformers.js +29 -0
- package/dist/vendor/typeorm/util/ApplyValueTransformers.js.map +1 -0
- package/dist/vendor/typeorm/util/DateUtils.d.ts +110 -0
- package/dist/vendor/typeorm/util/DateUtils.js +299 -0
- package/dist/vendor/typeorm/util/DateUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/DepGraph.d.ts +90 -0
- package/dist/vendor/typeorm/util/DepGraph.js +255 -0
- package/dist/vendor/typeorm/util/DepGraph.js.map +1 -0
- package/dist/vendor/typeorm/util/DirectoryExportedClassesLoader.d.ts +9 -0
- package/dist/vendor/typeorm/util/DirectoryExportedClassesLoader.js +60 -0
- package/dist/vendor/typeorm/util/DirectoryExportedClassesLoader.js.map +1 -0
- package/dist/vendor/typeorm/util/ImportUtils.d.ts +5 -0
- package/dist/vendor/typeorm/util/ImportUtils.js +107 -0
- package/dist/vendor/typeorm/util/ImportUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/InstanceChecker.d.ts +61 -0
- package/dist/vendor/typeorm/util/InstanceChecker.js +103 -0
- package/dist/vendor/typeorm/util/InstanceChecker.js.map +1 -0
- package/dist/vendor/typeorm/util/ObjectUtils.d.ts +54 -0
- package/dist/vendor/typeorm/util/ObjectUtils.js +55 -0
- package/dist/vendor/typeorm/util/ObjectUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/OrmUtils.d.ts +133 -0
- package/dist/vendor/typeorm/util/OrmUtils.js +572 -0
- package/dist/vendor/typeorm/util/OrmUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/PathUtils.d.ts +18 -0
- package/dist/vendor/typeorm/util/PathUtils.js +40 -0
- package/dist/vendor/typeorm/util/PathUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/RandomGenerator.d.ts +17 -0
- package/dist/vendor/typeorm/util/RandomGenerator.js +182 -0
- package/dist/vendor/typeorm/util/RandomGenerator.js.map +1 -0
- package/dist/vendor/typeorm/util/SqlTagUtils.d.ts +18 -0
- package/dist/vendor/typeorm/util/SqlTagUtils.js +49 -0
- package/dist/vendor/typeorm/util/SqlTagUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/StringUtils.d.ts +67 -0
- package/dist/vendor/typeorm/util/StringUtils.js +105 -0
- package/dist/vendor/typeorm/util/StringUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/TreeRepositoryUtils.d.ts +23 -0
- package/dist/vendor/typeorm/util/TreeRepositoryUtils.js +66 -0
- package/dist/vendor/typeorm/util/TreeRepositoryUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/Uint8ArrayUtils.d.ts +3 -0
- package/dist/vendor/typeorm/util/Uint8ArrayUtils.js +45 -0
- package/dist/vendor/typeorm/util/Uint8ArrayUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/VersionUtils.d.ts +3 -0
- package/dist/vendor/typeorm/util/VersionUtils.js +33 -0
- package/dist/vendor/typeorm/util/VersionUtils.js.map +1 -0
- package/dist/vendor/typeorm/util/escapeRegExp.d.ts +1 -0
- package/dist/vendor/typeorm/util/escapeRegExp.js +9 -0
- package/dist/vendor/typeorm/util/escapeRegExp.js.map +1 -0
- package/package.json +114 -8
|
@@ -0,0 +1,2803 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelectQueryBuilder = void 0;
|
|
4
|
+
const DriverUtils_1 = require("../driver/DriverUtils");
|
|
5
|
+
const error_1 = require("../error");
|
|
6
|
+
const EntityNotFoundError_1 = require("../error/EntityNotFoundError");
|
|
7
|
+
const EntityPropertyNotFoundError_1 = require("../error/EntityPropertyNotFoundError");
|
|
8
|
+
const LockNotSupportedOnGivenDriverError_1 = require("../error/LockNotSupportedOnGivenDriverError");
|
|
9
|
+
const NoVersionOrUpdateDateColumnError_1 = require("../error/NoVersionOrUpdateDateColumnError");
|
|
10
|
+
const OffsetWithoutLimitNotSupportedError_1 = require("../error/OffsetWithoutLimitNotSupportedError");
|
|
11
|
+
const OptimisticLockCanNotBeUsedError_1 = require("../error/OptimisticLockCanNotBeUsedError");
|
|
12
|
+
const OptimisticLockVersionMismatchError_1 = require("../error/OptimisticLockVersionMismatchError");
|
|
13
|
+
const PessimisticLockTransactionRequiredError_1 = require("../error/PessimisticLockTransactionRequiredError");
|
|
14
|
+
const FindOptionsUtils_1 = require("../find-options/FindOptionsUtils");
|
|
15
|
+
const ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
|
|
16
|
+
const InstanceChecker_1 = require("../util/InstanceChecker");
|
|
17
|
+
const ObjectUtils_1 = require("../util/ObjectUtils");
|
|
18
|
+
const OrmUtils_1 = require("../util/OrmUtils");
|
|
19
|
+
const JoinAttribute_1 = require("./JoinAttribute");
|
|
20
|
+
const QueryBuilder_1 = require("./QueryBuilder");
|
|
21
|
+
const RelationIdAttribute_1 = require("./relation-id/RelationIdAttribute");
|
|
22
|
+
const RelationIdLoader_1 = require("./relation-id/RelationIdLoader");
|
|
23
|
+
const RelationIdMetadataToAttributeTransformer_1 = require("./relation-id/RelationIdMetadataToAttributeTransformer");
|
|
24
|
+
const RelationIdLoader_2 = require("./RelationIdLoader");
|
|
25
|
+
const RawSqlResultsToEntityTransformer_1 = require("./transformer/RawSqlResultsToEntityTransformer");
|
|
26
|
+
/**
|
|
27
|
+
* Allows to build complex sql queries in a fashion way and execute those queries.
|
|
28
|
+
*/
|
|
29
|
+
class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this["@instanceof"] = Symbol.for("SelectQueryBuilder");
|
|
33
|
+
this.findOptions = {};
|
|
34
|
+
this.selects = [];
|
|
35
|
+
this.joins = [];
|
|
36
|
+
this.conditions = "";
|
|
37
|
+
this.orderBys = [];
|
|
38
|
+
this.relationMetadatas = [];
|
|
39
|
+
this.eagerLoadChain = new Set();
|
|
40
|
+
}
|
|
41
|
+
// -------------------------------------------------------------------------
|
|
42
|
+
// Public Implemented Methods
|
|
43
|
+
// -------------------------------------------------------------------------
|
|
44
|
+
/**
|
|
45
|
+
* Gets generated SQL query without parameters being replaced.
|
|
46
|
+
*/
|
|
47
|
+
getQuery() {
|
|
48
|
+
let sql = this.createComment();
|
|
49
|
+
sql += this.createCteExpression();
|
|
50
|
+
sql += this.createSelectExpression();
|
|
51
|
+
sql += this.createJoinExpression();
|
|
52
|
+
sql += this.createWhereExpression();
|
|
53
|
+
sql += this.createGroupByExpression();
|
|
54
|
+
sql += this.createHavingExpression();
|
|
55
|
+
sql += this.createOrderByExpression();
|
|
56
|
+
sql += this.createLimitOffsetExpression();
|
|
57
|
+
sql += this.createLockExpression();
|
|
58
|
+
sql = sql.trim();
|
|
59
|
+
if (this.expressionMap.subQuery)
|
|
60
|
+
sql = "(" + sql + ")";
|
|
61
|
+
return this.replacePropertyNamesForTheWholeQuery(sql);
|
|
62
|
+
}
|
|
63
|
+
// -------------------------------------------------------------------------
|
|
64
|
+
// Public Methods
|
|
65
|
+
// -------------------------------------------------------------------------
|
|
66
|
+
setFindOptions(findOptions) {
|
|
67
|
+
FindOptionsUtils_1.FindOptionsUtils.rejectJoinOption(findOptions);
|
|
68
|
+
FindOptionsUtils_1.FindOptionsUtils.rejectStringArraySelect(findOptions);
|
|
69
|
+
FindOptionsUtils_1.FindOptionsUtils.rejectStringArrayRelations(findOptions);
|
|
70
|
+
this.findOptions = findOptions;
|
|
71
|
+
this.applyFindOptions();
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Creates a subquery - query that can be used inside other queries.
|
|
76
|
+
*/
|
|
77
|
+
subQuery() {
|
|
78
|
+
const qb = this.createQueryBuilder();
|
|
79
|
+
qb.expressionMap.subQuery = true;
|
|
80
|
+
qb.parentQueryBuilder = this;
|
|
81
|
+
return qb;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates SELECT query and selects given data.
|
|
85
|
+
* Replaces all previous selections if they exist.
|
|
86
|
+
*
|
|
87
|
+
* @param selection
|
|
88
|
+
* @param selectionAliasName
|
|
89
|
+
*/
|
|
90
|
+
select(selection, selectionAliasName) {
|
|
91
|
+
this.expressionMap.queryType = "select";
|
|
92
|
+
if (Array.isArray(selection)) {
|
|
93
|
+
this.expressionMap.selects = selection.map((selection) => ({
|
|
94
|
+
selection: selection,
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
else if (typeof selection === "function") {
|
|
98
|
+
const subQueryBuilder = selection(this.subQuery());
|
|
99
|
+
this.setParameters(subQueryBuilder.getParameters());
|
|
100
|
+
this.expressionMap.selects.push({
|
|
101
|
+
selection: subQueryBuilder.getQuery(),
|
|
102
|
+
aliasName: selectionAliasName,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else if (selection) {
|
|
106
|
+
this.expressionMap.selects = [
|
|
107
|
+
{ selection: selection, aliasName: selectionAliasName },
|
|
108
|
+
];
|
|
109
|
+
}
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Adds new selection to the SELECT query.
|
|
114
|
+
*
|
|
115
|
+
* @param selection
|
|
116
|
+
* @param selectionAliasName
|
|
117
|
+
*/
|
|
118
|
+
addSelect(selection, selectionAliasName) {
|
|
119
|
+
if (!selection)
|
|
120
|
+
return this;
|
|
121
|
+
if (Array.isArray(selection)) {
|
|
122
|
+
this.expressionMap.selects = this.expressionMap.selects.concat(selection.map((selection) => ({ selection: selection })));
|
|
123
|
+
}
|
|
124
|
+
else if (typeof selection === "function") {
|
|
125
|
+
const subQueryBuilder = selection(this.subQuery());
|
|
126
|
+
this.setParameters(subQueryBuilder.getParameters());
|
|
127
|
+
this.expressionMap.selects.push({
|
|
128
|
+
selection: subQueryBuilder.getQuery(),
|
|
129
|
+
aliasName: selectionAliasName,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else if (selection) {
|
|
133
|
+
this.expressionMap.selects.push({
|
|
134
|
+
selection: selection,
|
|
135
|
+
aliasName: selectionAliasName,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Set max execution time.
|
|
142
|
+
*
|
|
143
|
+
* @param milliseconds
|
|
144
|
+
*/
|
|
145
|
+
maxExecutionTime(milliseconds) {
|
|
146
|
+
this.expressionMap.maxExecutionTime = milliseconds;
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Sets whether the selection is DISTINCT.
|
|
151
|
+
*
|
|
152
|
+
* @param distinct
|
|
153
|
+
*/
|
|
154
|
+
distinct(distinct = true) {
|
|
155
|
+
this.expressionMap.selectDistinct = distinct;
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Sets the distinct on clause for Postgres.
|
|
160
|
+
*
|
|
161
|
+
* @param distinctOn
|
|
162
|
+
*/
|
|
163
|
+
distinctOn(distinctOn) {
|
|
164
|
+
this.expressionMap.selectDistinctOn = distinctOn;
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
fromDummy() {
|
|
168
|
+
return this.from(this.dataSource.driver.dummyTableName ??
|
|
169
|
+
"(SELECT 1 AS dummy_column)", "dummy_table");
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
173
|
+
* Also sets a main string alias of the selection data.
|
|
174
|
+
* Removes all previously set from-s.
|
|
175
|
+
*
|
|
176
|
+
* @param entityTarget
|
|
177
|
+
* @param aliasName
|
|
178
|
+
*/
|
|
179
|
+
from(entityTarget, aliasName) {
|
|
180
|
+
const mainAlias = this.createFromAlias(entityTarget, aliasName);
|
|
181
|
+
this.expressionMap.setMainAlias(mainAlias);
|
|
182
|
+
return this;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
186
|
+
* Also sets a main string alias of the selection data.
|
|
187
|
+
*
|
|
188
|
+
* @param entityTarget
|
|
189
|
+
* @param aliasName
|
|
190
|
+
*/
|
|
191
|
+
addFrom(entityTarget, aliasName) {
|
|
192
|
+
const alias = this.createFromAlias(entityTarget, aliasName);
|
|
193
|
+
if (!this.expressionMap.mainAlias)
|
|
194
|
+
this.expressionMap.setMainAlias(alias);
|
|
195
|
+
return this;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* INNER JOINs (without selection).
|
|
199
|
+
* You also need to specify an alias of the joined data.
|
|
200
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
201
|
+
*
|
|
202
|
+
* @param entityOrProperty
|
|
203
|
+
* @param alias
|
|
204
|
+
* @param condition
|
|
205
|
+
* @param parameters
|
|
206
|
+
*/
|
|
207
|
+
innerJoin(entityOrProperty, alias, condition, parameters) {
|
|
208
|
+
this.join("INNER", entityOrProperty, alias, condition, parameters);
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* LEFT JOINs (without selection).
|
|
213
|
+
* You also need to specify an alias of the joined data.
|
|
214
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
215
|
+
*
|
|
216
|
+
* @param entityOrProperty
|
|
217
|
+
* @param alias
|
|
218
|
+
* @param condition
|
|
219
|
+
* @param parameters
|
|
220
|
+
*/
|
|
221
|
+
leftJoin(entityOrProperty, alias, condition, parameters) {
|
|
222
|
+
this.join("LEFT", entityOrProperty, alias, condition, parameters);
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* INNER JOINs and adds all selection properties to SELECT.
|
|
227
|
+
* You also need to specify an alias of the joined data.
|
|
228
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
229
|
+
*
|
|
230
|
+
* @param entityOrProperty
|
|
231
|
+
* @param alias
|
|
232
|
+
* @param condition
|
|
233
|
+
* @param parameters
|
|
234
|
+
*/
|
|
235
|
+
innerJoinAndSelect(entityOrProperty, alias, condition, parameters) {
|
|
236
|
+
this.addSelect(alias);
|
|
237
|
+
this.innerJoin(entityOrProperty, alias, condition, parameters);
|
|
238
|
+
return this;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* LEFT JOINs and adds all selection properties to SELECT.
|
|
242
|
+
* You also need to specify an alias of the joined data.
|
|
243
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
244
|
+
*
|
|
245
|
+
* @param entityOrProperty
|
|
246
|
+
* @param alias
|
|
247
|
+
* @param condition
|
|
248
|
+
* @param parameters
|
|
249
|
+
*/
|
|
250
|
+
leftJoinAndSelect(entityOrProperty, alias, condition, parameters) {
|
|
251
|
+
this.addSelect(alias);
|
|
252
|
+
this.leftJoin(entityOrProperty, alias, condition, parameters);
|
|
253
|
+
return this;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
257
|
+
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
258
|
+
* It will assume that there are multiple rows of selecting data, and mapped result will be an array.
|
|
259
|
+
* You also need to specify an alias of the joined data.
|
|
260
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
261
|
+
*
|
|
262
|
+
* @param mapToProperty
|
|
263
|
+
* @param entityOrProperty
|
|
264
|
+
* @param alias
|
|
265
|
+
* @param condition
|
|
266
|
+
* @param parameters
|
|
267
|
+
*/
|
|
268
|
+
innerJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
269
|
+
this.addSelect(alias);
|
|
270
|
+
this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, true);
|
|
271
|
+
return this;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
275
|
+
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
276
|
+
* It will assume that there is a single row of selecting data, and mapped result will be a single selected value.
|
|
277
|
+
* You also need to specify an alias of the joined data.
|
|
278
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
279
|
+
*
|
|
280
|
+
* @param mapToProperty
|
|
281
|
+
* @param entityOrProperty
|
|
282
|
+
* @param alias
|
|
283
|
+
* @param condition
|
|
284
|
+
* @param parameters
|
|
285
|
+
* @param mapAsEntity
|
|
286
|
+
*/
|
|
287
|
+
innerJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters, mapAsEntity) {
|
|
288
|
+
this.addSelect(alias);
|
|
289
|
+
this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, false, mapAsEntity);
|
|
290
|
+
return this;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
294
|
+
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
295
|
+
* It will assume that there are multiple rows of selecting data, and mapped result will be an array.
|
|
296
|
+
* You also need to specify an alias of the joined data.
|
|
297
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
298
|
+
*
|
|
299
|
+
* @param mapToProperty
|
|
300
|
+
* @param entityOrProperty
|
|
301
|
+
* @param alias
|
|
302
|
+
* @param condition
|
|
303
|
+
* @param parameters
|
|
304
|
+
*/
|
|
305
|
+
leftJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
306
|
+
this.addSelect(alias);
|
|
307
|
+
this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, true);
|
|
308
|
+
return this;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
312
|
+
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
313
|
+
* It will assume that there is a single row of selecting data, and mapped result will be a single selected value.
|
|
314
|
+
* You also need to specify an alias of the joined data.
|
|
315
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
316
|
+
*
|
|
317
|
+
* @param mapToProperty
|
|
318
|
+
* @param entityOrProperty
|
|
319
|
+
* @param alias
|
|
320
|
+
* @param condition
|
|
321
|
+
* @param parameters
|
|
322
|
+
* @param mapAsEntity
|
|
323
|
+
*/
|
|
324
|
+
leftJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters, mapAsEntity) {
|
|
325
|
+
this.addSelect(alias);
|
|
326
|
+
this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, false, mapAsEntity);
|
|
327
|
+
return this;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* LEFT JOINs relation id and maps it into some entity's property.
|
|
331
|
+
* Optionally, you can add condition and parameters used in condition.
|
|
332
|
+
*
|
|
333
|
+
* @param mapToProperty
|
|
334
|
+
* @param relationName
|
|
335
|
+
* @param aliasNameOrOptions
|
|
336
|
+
* @param queryBuilderFactory
|
|
337
|
+
*/
|
|
338
|
+
loadRelationIdAndMap(mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) {
|
|
339
|
+
const relationIdAttribute = new RelationIdAttribute_1.RelationIdAttribute(this.expressionMap);
|
|
340
|
+
relationIdAttribute.mapToProperty = mapToProperty;
|
|
341
|
+
relationIdAttribute.relationName = relationName;
|
|
342
|
+
if (typeof aliasNameOrOptions === "string")
|
|
343
|
+
relationIdAttribute.alias = aliasNameOrOptions;
|
|
344
|
+
if (typeof aliasNameOrOptions === "object" &&
|
|
345
|
+
aliasNameOrOptions.disableMixedMap)
|
|
346
|
+
relationIdAttribute.disableMixedMap = true;
|
|
347
|
+
relationIdAttribute.queryBuilderFactory = queryBuilderFactory;
|
|
348
|
+
this.expressionMap.relationIdAttributes.push(relationIdAttribute);
|
|
349
|
+
if (relationIdAttribute.relation.junctionEntityMetadata) {
|
|
350
|
+
this.expressionMap.createAlias({
|
|
351
|
+
type: "other",
|
|
352
|
+
name: relationIdAttribute.junctionAlias,
|
|
353
|
+
metadata: relationIdAttribute.relation.junctionEntityMetadata,
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
return this;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Loads all relation ids for all relations of the selected entity.
|
|
360
|
+
* All relation ids will be mapped to relation property themself.
|
|
361
|
+
* If array of strings is given then loads only relation ids of the given properties.
|
|
362
|
+
*
|
|
363
|
+
* @param options
|
|
364
|
+
* @param options.relations
|
|
365
|
+
* @param options.disableMixedMap
|
|
366
|
+
*/
|
|
367
|
+
loadAllRelationIds(options) {
|
|
368
|
+
// todo: add skip relations
|
|
369
|
+
this.expressionMap.mainAlias.metadata.relations.forEach((relation) => {
|
|
370
|
+
if (options?.relations?.indexOf(relation.propertyPath) === -1)
|
|
371
|
+
return;
|
|
372
|
+
this.loadRelationIdAndMap(this.expressionMap.mainAlias.name +
|
|
373
|
+
"." +
|
|
374
|
+
relation.propertyPath, this.expressionMap.mainAlias.name +
|
|
375
|
+
"." +
|
|
376
|
+
relation.propertyPath, options);
|
|
377
|
+
});
|
|
378
|
+
return this;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Sets WHERE condition in the query builder.
|
|
382
|
+
* If you had previously WHERE expression defined,
|
|
383
|
+
* calling this function will override previously set WHERE conditions.
|
|
384
|
+
* Additionally you can add parameters used in where expression.
|
|
385
|
+
*
|
|
386
|
+
* @param where
|
|
387
|
+
* @param parameters
|
|
388
|
+
*/
|
|
389
|
+
where(where, parameters) {
|
|
390
|
+
this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions
|
|
391
|
+
const condition = this.getWhereCondition(where);
|
|
392
|
+
if (condition) {
|
|
393
|
+
this.expressionMap.wheres = [
|
|
394
|
+
{ type: "simple", condition: condition },
|
|
395
|
+
];
|
|
396
|
+
}
|
|
397
|
+
if (parameters)
|
|
398
|
+
this.setParameters(parameters);
|
|
399
|
+
return this;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Adds new AND WHERE condition in the query builder.
|
|
403
|
+
* Additionally you can add parameters used in where expression.
|
|
404
|
+
*
|
|
405
|
+
* @param where
|
|
406
|
+
* @param parameters
|
|
407
|
+
*/
|
|
408
|
+
andWhere(where, parameters) {
|
|
409
|
+
this.expressionMap.wheres.push({
|
|
410
|
+
type: "and",
|
|
411
|
+
condition: this.getWhereCondition(where),
|
|
412
|
+
});
|
|
413
|
+
if (parameters)
|
|
414
|
+
this.setParameters(parameters);
|
|
415
|
+
return this;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Adds new OR WHERE condition in the query builder.
|
|
419
|
+
* Additionally you can add parameters used in where expression.
|
|
420
|
+
*
|
|
421
|
+
* @param where
|
|
422
|
+
* @param parameters
|
|
423
|
+
*/
|
|
424
|
+
orWhere(where, parameters) {
|
|
425
|
+
this.expressionMap.wheres.push({
|
|
426
|
+
type: "or",
|
|
427
|
+
condition: this.getWhereCondition(where),
|
|
428
|
+
});
|
|
429
|
+
if (parameters)
|
|
430
|
+
this.setParameters(parameters);
|
|
431
|
+
return this;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Sets a new where EXISTS clause
|
|
435
|
+
*
|
|
436
|
+
* @param subQuery
|
|
437
|
+
*/
|
|
438
|
+
whereExists(subQuery) {
|
|
439
|
+
return this.where(...this.getExistsCondition(subQuery));
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Adds a new AND where EXISTS clause
|
|
443
|
+
*
|
|
444
|
+
* @param subQuery
|
|
445
|
+
*/
|
|
446
|
+
andWhereExists(subQuery) {
|
|
447
|
+
return this.andWhere(...this.getExistsCondition(subQuery));
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Adds a new OR where EXISTS clause
|
|
451
|
+
*
|
|
452
|
+
* @param subQuery
|
|
453
|
+
*/
|
|
454
|
+
orWhereExists(subQuery) {
|
|
455
|
+
return this.orWhere(...this.getExistsCondition(subQuery));
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Adds new AND WHERE with conditions for the given ids.
|
|
459
|
+
*
|
|
460
|
+
* Ids are mixed.
|
|
461
|
+
* It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].
|
|
462
|
+
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
463
|
+
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
464
|
+
*
|
|
465
|
+
* @param ids
|
|
466
|
+
*/
|
|
467
|
+
whereInIds(ids) {
|
|
468
|
+
return this.where(this.getWhereInIdsCondition(ids));
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Adds new AND WHERE with conditions for the given ids.
|
|
472
|
+
*
|
|
473
|
+
* Ids are mixed.
|
|
474
|
+
* It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].
|
|
475
|
+
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
476
|
+
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
477
|
+
*
|
|
478
|
+
* @param ids
|
|
479
|
+
*/
|
|
480
|
+
andWhereInIds(ids) {
|
|
481
|
+
return this.andWhere(this.getWhereInIdsCondition(ids));
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Adds new OR WHERE with conditions for the given ids.
|
|
485
|
+
*
|
|
486
|
+
* Ids are mixed.
|
|
487
|
+
* It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].
|
|
488
|
+
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
489
|
+
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
490
|
+
*
|
|
491
|
+
* @param ids
|
|
492
|
+
*/
|
|
493
|
+
orWhereInIds(ids) {
|
|
494
|
+
return this.orWhere(this.getWhereInIdsCondition(ids));
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Sets HAVING condition in the query builder.
|
|
498
|
+
* If you had previously HAVING expression defined,
|
|
499
|
+
* calling this function will override previously set HAVING conditions.
|
|
500
|
+
* Additionally you can add parameters used in where expression.
|
|
501
|
+
*
|
|
502
|
+
* @param having
|
|
503
|
+
* @param parameters
|
|
504
|
+
*/
|
|
505
|
+
having(having, parameters) {
|
|
506
|
+
this.expressionMap.havings.push({ type: "simple", condition: having });
|
|
507
|
+
if (parameters)
|
|
508
|
+
this.setParameters(parameters);
|
|
509
|
+
return this;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Adds new AND HAVING condition in the query builder.
|
|
513
|
+
* Additionally you can add parameters used in where expression.
|
|
514
|
+
*
|
|
515
|
+
* @param having
|
|
516
|
+
* @param parameters
|
|
517
|
+
*/
|
|
518
|
+
andHaving(having, parameters) {
|
|
519
|
+
this.expressionMap.havings.push({ type: "and", condition: having });
|
|
520
|
+
if (parameters)
|
|
521
|
+
this.setParameters(parameters);
|
|
522
|
+
return this;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Adds new OR HAVING condition in the query builder.
|
|
526
|
+
* Additionally you can add parameters used in where expression.
|
|
527
|
+
*
|
|
528
|
+
* @param having
|
|
529
|
+
* @param parameters
|
|
530
|
+
*/
|
|
531
|
+
orHaving(having, parameters) {
|
|
532
|
+
this.expressionMap.havings.push({ type: "or", condition: having });
|
|
533
|
+
if (parameters)
|
|
534
|
+
this.setParameters(parameters);
|
|
535
|
+
return this;
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Sets GROUP BY condition in the query builder.
|
|
539
|
+
* If you had previously GROUP BY expression defined,
|
|
540
|
+
* calling this function will override previously set GROUP BY conditions.
|
|
541
|
+
*
|
|
542
|
+
* @param groupBy
|
|
543
|
+
*/
|
|
544
|
+
groupBy(groupBy) {
|
|
545
|
+
if (groupBy) {
|
|
546
|
+
this.expressionMap.groupBys = [groupBy];
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
this.expressionMap.groupBys = [];
|
|
550
|
+
}
|
|
551
|
+
return this;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Adds GROUP BY condition in the query builder.
|
|
555
|
+
*
|
|
556
|
+
* @param groupBy
|
|
557
|
+
*/
|
|
558
|
+
addGroupBy(groupBy) {
|
|
559
|
+
this.expressionMap.groupBys.push(groupBy);
|
|
560
|
+
return this;
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Enables time travelling for the current query (only supported by cockroach currently)
|
|
564
|
+
*
|
|
565
|
+
* @param timeTravelFn
|
|
566
|
+
*/
|
|
567
|
+
timeTravelQuery(timeTravelFn) {
|
|
568
|
+
if (this.dataSource.driver.options.type === "cockroachdb") {
|
|
569
|
+
if (timeTravelFn === undefined) {
|
|
570
|
+
this.expressionMap.timeTravel = "follower_read_timestamp()";
|
|
571
|
+
}
|
|
572
|
+
else {
|
|
573
|
+
this.expressionMap.timeTravel = timeTravelFn;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
return this;
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Sets ORDER BY condition in the query builder.
|
|
580
|
+
* If you had previously ORDER BY expression defined,
|
|
581
|
+
* calling this function will override previously set ORDER BY conditions.
|
|
582
|
+
*
|
|
583
|
+
* @param sort
|
|
584
|
+
* @param order
|
|
585
|
+
* @param nulls
|
|
586
|
+
*/
|
|
587
|
+
orderBy(sort, order = "ASC", nulls) {
|
|
588
|
+
if (!sort) {
|
|
589
|
+
this.expressionMap.orderBys = {};
|
|
590
|
+
return this;
|
|
591
|
+
}
|
|
592
|
+
if (typeof sort === "object") {
|
|
593
|
+
this.validateOrderByCondition(sort);
|
|
594
|
+
this.expressionMap.orderBys = sort;
|
|
595
|
+
return this;
|
|
596
|
+
}
|
|
597
|
+
const condition = nulls
|
|
598
|
+
? { [sort]: { order, nulls } }
|
|
599
|
+
: { [sort]: order };
|
|
600
|
+
this.validateOrderByCondition(condition);
|
|
601
|
+
this.expressionMap.orderBys = condition;
|
|
602
|
+
return this;
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* Adds ORDER BY condition in the query builder.
|
|
606
|
+
*
|
|
607
|
+
* @param sort
|
|
608
|
+
* @param order
|
|
609
|
+
* @param nulls
|
|
610
|
+
*/
|
|
611
|
+
addOrderBy(sort, order = "ASC", nulls) {
|
|
612
|
+
const condition = nulls
|
|
613
|
+
? { [sort]: { order, nulls } }
|
|
614
|
+
: { [sort]: order };
|
|
615
|
+
this.validateOrderByCondition(condition);
|
|
616
|
+
if (nulls) {
|
|
617
|
+
this.expressionMap.orderBys[sort] = { order, nulls };
|
|
618
|
+
}
|
|
619
|
+
else {
|
|
620
|
+
this.expressionMap.orderBys[sort] = order;
|
|
621
|
+
}
|
|
622
|
+
return this;
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Sets LIMIT - maximum number of rows to be selected.
|
|
626
|
+
* NOTE that it may not work as you expect if you are using joins.
|
|
627
|
+
* If you want to implement pagination, and you are having join in your query,
|
|
628
|
+
* then use the take method instead.
|
|
629
|
+
*
|
|
630
|
+
* @param limit
|
|
631
|
+
*/
|
|
632
|
+
limit(limit) {
|
|
633
|
+
this.expressionMap.limit = this.validateNumericInput("limit", limit);
|
|
634
|
+
return this;
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Sets OFFSET - selection offset.
|
|
638
|
+
* NOTE that it may not work as you expect if you are using joins.
|
|
639
|
+
* If you want to implement pagination, and you are having join in your query,
|
|
640
|
+
* then use the skip method instead.
|
|
641
|
+
*
|
|
642
|
+
* @param offset
|
|
643
|
+
*/
|
|
644
|
+
offset(offset) {
|
|
645
|
+
this.expressionMap.offset = this.validateNumericInput("offset", offset);
|
|
646
|
+
return this;
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Sets maximal number of entities to take.
|
|
650
|
+
*
|
|
651
|
+
* @param take
|
|
652
|
+
*/
|
|
653
|
+
take(take) {
|
|
654
|
+
this.expressionMap.take = this.validateNumericInput("take", take);
|
|
655
|
+
return this;
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* Sets number of entities to skip.
|
|
659
|
+
*
|
|
660
|
+
* @param skip
|
|
661
|
+
*/
|
|
662
|
+
skip(skip) {
|
|
663
|
+
this.expressionMap.skip = this.validateNumericInput("skip", skip);
|
|
664
|
+
return this;
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Set certain index(es) to be used by the query.
|
|
668
|
+
*
|
|
669
|
+
* @param indexes Name(s) of index(es) to be used.
|
|
670
|
+
*/
|
|
671
|
+
useIndex(indexes) {
|
|
672
|
+
this.expressionMap.useIndex = Array.isArray(indexes)
|
|
673
|
+
? indexes
|
|
674
|
+
: [indexes];
|
|
675
|
+
return this;
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* Sets locking mode.
|
|
679
|
+
*
|
|
680
|
+
* @param lockMode
|
|
681
|
+
* @param lockVersion
|
|
682
|
+
* @param lockTables
|
|
683
|
+
*/
|
|
684
|
+
setLock(lockMode, lockVersion, lockTables) {
|
|
685
|
+
this.expressionMap.lockMode = lockMode;
|
|
686
|
+
this.expressionMap.lockVersion = lockVersion;
|
|
687
|
+
this.expressionMap.lockTables = lockTables;
|
|
688
|
+
return this;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Sets lock handling by adding NO WAIT or SKIP LOCKED.
|
|
692
|
+
*
|
|
693
|
+
* @param onLocked
|
|
694
|
+
*/
|
|
695
|
+
setOnLocked(onLocked) {
|
|
696
|
+
this.expressionMap.onLocked = onLocked;
|
|
697
|
+
return this;
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* Disables the global condition of "non-deleted" for the entity with delete date columns.
|
|
701
|
+
*/
|
|
702
|
+
withDeleted() {
|
|
703
|
+
this.expressionMap.withDeleted = true;
|
|
704
|
+
return this;
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* Gets first raw result returned by execution of generated query builder sql.
|
|
708
|
+
*/
|
|
709
|
+
async getRawOne() {
|
|
710
|
+
return (await this.getRawMany())[0];
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Gets all raw results returned by execution of generated query builder sql.
|
|
714
|
+
*/
|
|
715
|
+
async getRawMany() {
|
|
716
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
717
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
718
|
+
this.expressionMap.queryEntity = false;
|
|
719
|
+
const queryRunner = this.obtainQueryRunner();
|
|
720
|
+
let transactionStartedByUs = false;
|
|
721
|
+
try {
|
|
722
|
+
// start transaction if it was enabled
|
|
723
|
+
if (this.expressionMap.useTransaction === true &&
|
|
724
|
+
queryRunner.isTransactionActive === false) {
|
|
725
|
+
await queryRunner.startTransaction();
|
|
726
|
+
transactionStartedByUs = true;
|
|
727
|
+
}
|
|
728
|
+
const results = await this.loadRawResults(queryRunner);
|
|
729
|
+
// close transaction if we started it
|
|
730
|
+
if (transactionStartedByUs) {
|
|
731
|
+
await queryRunner.commitTransaction();
|
|
732
|
+
}
|
|
733
|
+
return results;
|
|
734
|
+
}
|
|
735
|
+
catch (error) {
|
|
736
|
+
// rollback transaction if we started it
|
|
737
|
+
if (transactionStartedByUs) {
|
|
738
|
+
try {
|
|
739
|
+
await queryRunner.rollbackTransaction();
|
|
740
|
+
}
|
|
741
|
+
catch (rollbackError) { }
|
|
742
|
+
}
|
|
743
|
+
throw error;
|
|
744
|
+
}
|
|
745
|
+
finally {
|
|
746
|
+
if (queryRunner !== this.queryRunner) {
|
|
747
|
+
// means we created our own query runner
|
|
748
|
+
await queryRunner.release();
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
754
|
+
*/
|
|
755
|
+
async getRawAndEntities() {
|
|
756
|
+
const queryRunner = this.obtainQueryRunner();
|
|
757
|
+
let transactionStartedByUs = false;
|
|
758
|
+
try {
|
|
759
|
+
// start transaction if it was enabled
|
|
760
|
+
if (this.expressionMap.useTransaction === true &&
|
|
761
|
+
queryRunner.isTransactionActive === false) {
|
|
762
|
+
await queryRunner.startTransaction();
|
|
763
|
+
transactionStartedByUs = true;
|
|
764
|
+
}
|
|
765
|
+
this.expressionMap.queryEntity = true;
|
|
766
|
+
const results = await this.executeEntitiesAndRawResults(queryRunner);
|
|
767
|
+
// close transaction if we started it
|
|
768
|
+
if (transactionStartedByUs) {
|
|
769
|
+
await queryRunner.commitTransaction();
|
|
770
|
+
}
|
|
771
|
+
return results;
|
|
772
|
+
}
|
|
773
|
+
catch (error) {
|
|
774
|
+
// rollback transaction if we started it
|
|
775
|
+
if (transactionStartedByUs) {
|
|
776
|
+
try {
|
|
777
|
+
await queryRunner.rollbackTransaction();
|
|
778
|
+
}
|
|
779
|
+
catch (rollbackError) { }
|
|
780
|
+
}
|
|
781
|
+
throw error;
|
|
782
|
+
}
|
|
783
|
+
finally {
|
|
784
|
+
if (queryRunner !== this.queryRunner)
|
|
785
|
+
// means we created our own query runner
|
|
786
|
+
await queryRunner.release();
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
/**
|
|
790
|
+
* Gets single entity returned by execution of generated query builder sql.
|
|
791
|
+
*/
|
|
792
|
+
async getOne() {
|
|
793
|
+
const results = await this.getRawAndEntities();
|
|
794
|
+
const result = results.entities[0];
|
|
795
|
+
if (result &&
|
|
796
|
+
this.expressionMap.lockMode === "optimistic" &&
|
|
797
|
+
this.expressionMap.lockVersion) {
|
|
798
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
799
|
+
if (this.expressionMap.lockVersion instanceof Date) {
|
|
800
|
+
const actualVersion = metadata.updateDateColumn.getEntityValue(result); // what if columns arent set?
|
|
801
|
+
if (actualVersion.getTime() !==
|
|
802
|
+
this.expressionMap.lockVersion.getTime())
|
|
803
|
+
throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
|
|
804
|
+
}
|
|
805
|
+
else {
|
|
806
|
+
const actualVersion = metadata.versionColumn.getEntityValue(result); // what if columns arent set?
|
|
807
|
+
if (actualVersion !== this.expressionMap.lockVersion)
|
|
808
|
+
throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
if (result === undefined) {
|
|
812
|
+
return null;
|
|
813
|
+
}
|
|
814
|
+
return result;
|
|
815
|
+
}
|
|
816
|
+
/**
|
|
817
|
+
* Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
|
|
818
|
+
*/
|
|
819
|
+
async getOneOrFail() {
|
|
820
|
+
const entity = await this.getOne();
|
|
821
|
+
if (!entity) {
|
|
822
|
+
throw new EntityNotFoundError_1.EntityNotFoundError(this.expressionMap.mainAlias.target, this.expressionMap.parameters);
|
|
823
|
+
}
|
|
824
|
+
return entity;
|
|
825
|
+
}
|
|
826
|
+
/**
|
|
827
|
+
* Gets entities returned by execution of generated query builder sql.
|
|
828
|
+
*/
|
|
829
|
+
async getMany() {
|
|
830
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
831
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
832
|
+
const results = await this.getRawAndEntities();
|
|
833
|
+
return results.entities;
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* Gets count - number of entities selected by sql generated by this query builder.
|
|
837
|
+
* Count excludes all limitations set by offset, limit, skip, and take.
|
|
838
|
+
*/
|
|
839
|
+
async getCount() {
|
|
840
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
841
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
842
|
+
const queryRunner = this.obtainQueryRunner();
|
|
843
|
+
let transactionStartedByUs = false;
|
|
844
|
+
try {
|
|
845
|
+
// start transaction if it was enabled
|
|
846
|
+
if (this.expressionMap.useTransaction === true &&
|
|
847
|
+
queryRunner.isTransactionActive === false) {
|
|
848
|
+
await queryRunner.startTransaction();
|
|
849
|
+
transactionStartedByUs = true;
|
|
850
|
+
}
|
|
851
|
+
this.expressionMap.queryEntity = false;
|
|
852
|
+
const results = await this.executeCountQuery(queryRunner);
|
|
853
|
+
// close transaction if we started it
|
|
854
|
+
if (transactionStartedByUs) {
|
|
855
|
+
await queryRunner.commitTransaction();
|
|
856
|
+
}
|
|
857
|
+
return results;
|
|
858
|
+
}
|
|
859
|
+
catch (error) {
|
|
860
|
+
// rollback transaction if we started it
|
|
861
|
+
if (transactionStartedByUs) {
|
|
862
|
+
try {
|
|
863
|
+
await queryRunner.rollbackTransaction();
|
|
864
|
+
}
|
|
865
|
+
catch (rollbackError) { }
|
|
866
|
+
}
|
|
867
|
+
throw error;
|
|
868
|
+
}
|
|
869
|
+
finally {
|
|
870
|
+
if (queryRunner !== this.queryRunner)
|
|
871
|
+
// means we created our own query runner
|
|
872
|
+
await queryRunner.release();
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
/**
|
|
876
|
+
* Gets exists
|
|
877
|
+
* Returns whether any rows exists matching current query.
|
|
878
|
+
*/
|
|
879
|
+
async getExists() {
|
|
880
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
881
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
882
|
+
const queryRunner = this.obtainQueryRunner();
|
|
883
|
+
let transactionStartedByUs = false;
|
|
884
|
+
try {
|
|
885
|
+
// start transaction if it was enabled
|
|
886
|
+
if (this.expressionMap.useTransaction === true &&
|
|
887
|
+
queryRunner.isTransactionActive === false) {
|
|
888
|
+
await queryRunner.startTransaction();
|
|
889
|
+
transactionStartedByUs = true;
|
|
890
|
+
}
|
|
891
|
+
this.expressionMap.queryEntity = false;
|
|
892
|
+
const results = await this.executeExistsQuery(queryRunner);
|
|
893
|
+
// close transaction if we started it
|
|
894
|
+
if (transactionStartedByUs) {
|
|
895
|
+
await queryRunner.commitTransaction();
|
|
896
|
+
}
|
|
897
|
+
return results;
|
|
898
|
+
}
|
|
899
|
+
catch (error) {
|
|
900
|
+
// rollback transaction if we started it
|
|
901
|
+
if (transactionStartedByUs) {
|
|
902
|
+
try {
|
|
903
|
+
await queryRunner.rollbackTransaction();
|
|
904
|
+
}
|
|
905
|
+
catch (rollbackError) { }
|
|
906
|
+
}
|
|
907
|
+
throw error;
|
|
908
|
+
}
|
|
909
|
+
finally {
|
|
910
|
+
if (queryRunner !== this.queryRunner)
|
|
911
|
+
// means we created our own query runner
|
|
912
|
+
await queryRunner.release();
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
917
|
+
* This method is useful to build pagination.
|
|
918
|
+
*/
|
|
919
|
+
async getManyAndCount() {
|
|
920
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
921
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
922
|
+
const queryRunner = this.obtainQueryRunner();
|
|
923
|
+
let transactionStartedByUs = false;
|
|
924
|
+
try {
|
|
925
|
+
// start transaction if it was enabled
|
|
926
|
+
if (this.expressionMap.useTransaction === true &&
|
|
927
|
+
queryRunner.isTransactionActive === false) {
|
|
928
|
+
await queryRunner.startTransaction();
|
|
929
|
+
transactionStartedByUs = true;
|
|
930
|
+
}
|
|
931
|
+
this.expressionMap.queryEntity = true;
|
|
932
|
+
const entitiesAndRaw = await this.executeEntitiesAndRawResults(queryRunner);
|
|
933
|
+
this.expressionMap.queryEntity = false;
|
|
934
|
+
let count = this.lazyCount(entitiesAndRaw);
|
|
935
|
+
if (count === undefined) {
|
|
936
|
+
const cacheId = this.expressionMap.cacheId;
|
|
937
|
+
// Creates a new cacheId for the count query, or it will retrieve the above query results
|
|
938
|
+
// and count will return 0.
|
|
939
|
+
if (cacheId) {
|
|
940
|
+
this.expressionMap.cacheId = `${cacheId}-count`;
|
|
941
|
+
}
|
|
942
|
+
count = await this.executeCountQuery(queryRunner);
|
|
943
|
+
}
|
|
944
|
+
const results = [entitiesAndRaw.entities, count];
|
|
945
|
+
// close transaction if we started it
|
|
946
|
+
if (transactionStartedByUs) {
|
|
947
|
+
await queryRunner.commitTransaction();
|
|
948
|
+
}
|
|
949
|
+
return results;
|
|
950
|
+
}
|
|
951
|
+
catch (error) {
|
|
952
|
+
// rollback transaction if we started it
|
|
953
|
+
if (transactionStartedByUs) {
|
|
954
|
+
try {
|
|
955
|
+
await queryRunner.rollbackTransaction();
|
|
956
|
+
}
|
|
957
|
+
catch (rollbackError) { }
|
|
958
|
+
}
|
|
959
|
+
throw error;
|
|
960
|
+
}
|
|
961
|
+
finally {
|
|
962
|
+
if (queryRunner !== this.queryRunner)
|
|
963
|
+
// means we created our own query runner
|
|
964
|
+
await queryRunner.release();
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
lazyCount(entitiesAndRaw) {
|
|
968
|
+
const hasLimit = this.expressionMap.limit !== undefined &&
|
|
969
|
+
this.expressionMap.limit !== null;
|
|
970
|
+
if (this.expressionMap.joinAttributes.length > 0 && hasLimit) {
|
|
971
|
+
return undefined;
|
|
972
|
+
}
|
|
973
|
+
const hasTake = this.expressionMap.take !== undefined &&
|
|
974
|
+
this.expressionMap.take !== null;
|
|
975
|
+
// limit overrides take when no join is defined
|
|
976
|
+
const maxResults = hasLimit
|
|
977
|
+
? this.expressionMap.limit
|
|
978
|
+
: hasTake
|
|
979
|
+
? this.expressionMap.take
|
|
980
|
+
: undefined;
|
|
981
|
+
if (maxResults !== undefined &&
|
|
982
|
+
entitiesAndRaw.entities.length === maxResults) {
|
|
983
|
+
// stop here when the result set contains the max number of rows; we need to execute a full count
|
|
984
|
+
return undefined;
|
|
985
|
+
}
|
|
986
|
+
const hasSkip = this.expressionMap.skip !== undefined &&
|
|
987
|
+
this.expressionMap.skip !== null &&
|
|
988
|
+
this.expressionMap.skip > 0;
|
|
989
|
+
const hasOffset = this.expressionMap.offset !== undefined &&
|
|
990
|
+
this.expressionMap.offset !== null &&
|
|
991
|
+
this.expressionMap.offset > 0;
|
|
992
|
+
if (entitiesAndRaw.entities.length === 0 && (hasSkip || hasOffset)) {
|
|
993
|
+
// when skip or offset were used and no results found, we need to execute a full count
|
|
994
|
+
// (the given offset may have exceeded the actual number of rows)
|
|
995
|
+
return undefined;
|
|
996
|
+
}
|
|
997
|
+
// offset overrides skip when no join is defined
|
|
998
|
+
const previousResults = hasOffset
|
|
999
|
+
? this.expressionMap.offset
|
|
1000
|
+
: hasSkip
|
|
1001
|
+
? this.expressionMap.skip
|
|
1002
|
+
: 0;
|
|
1003
|
+
return entitiesAndRaw.entities.length + previousResults;
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Executes built SQL query and returns raw data stream.
|
|
1007
|
+
*/
|
|
1008
|
+
async stream() {
|
|
1009
|
+
this.expressionMap.queryEntity = false;
|
|
1010
|
+
const [sql, parameters] = this.getQueryAndParameters();
|
|
1011
|
+
const queryRunner = this.obtainQueryRunner();
|
|
1012
|
+
let transactionStartedByUs = false;
|
|
1013
|
+
try {
|
|
1014
|
+
// start transaction if it was enabled
|
|
1015
|
+
if (this.expressionMap.useTransaction === true &&
|
|
1016
|
+
queryRunner.isTransactionActive === false) {
|
|
1017
|
+
await queryRunner.startTransaction();
|
|
1018
|
+
transactionStartedByUs = true;
|
|
1019
|
+
}
|
|
1020
|
+
const releaseFn = () => {
|
|
1021
|
+
if (queryRunner !== this.queryRunner)
|
|
1022
|
+
// means we created our own query runner
|
|
1023
|
+
return queryRunner.release();
|
|
1024
|
+
return;
|
|
1025
|
+
};
|
|
1026
|
+
const results = queryRunner.stream(sql, parameters, releaseFn, releaseFn);
|
|
1027
|
+
// close transaction if we started it
|
|
1028
|
+
if (transactionStartedByUs) {
|
|
1029
|
+
await queryRunner.commitTransaction();
|
|
1030
|
+
}
|
|
1031
|
+
return results;
|
|
1032
|
+
}
|
|
1033
|
+
catch (error) {
|
|
1034
|
+
// rollback transaction if we started it
|
|
1035
|
+
if (transactionStartedByUs) {
|
|
1036
|
+
try {
|
|
1037
|
+
await queryRunner.rollbackTransaction();
|
|
1038
|
+
}
|
|
1039
|
+
catch (rollbackError) { }
|
|
1040
|
+
}
|
|
1041
|
+
throw error;
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
/**
|
|
1045
|
+
* Enables or disables query result caching.
|
|
1046
|
+
*
|
|
1047
|
+
* @param enabledOrMillisecondsOrId
|
|
1048
|
+
* @param maybeMilliseconds
|
|
1049
|
+
*/
|
|
1050
|
+
cache(enabledOrMillisecondsOrId, maybeMilliseconds) {
|
|
1051
|
+
if (typeof enabledOrMillisecondsOrId === "boolean") {
|
|
1052
|
+
this.expressionMap.cache = enabledOrMillisecondsOrId;
|
|
1053
|
+
}
|
|
1054
|
+
else if (typeof enabledOrMillisecondsOrId === "number") {
|
|
1055
|
+
this.expressionMap.cache = true;
|
|
1056
|
+
this.expressionMap.cacheDuration = enabledOrMillisecondsOrId;
|
|
1057
|
+
}
|
|
1058
|
+
else if (typeof enabledOrMillisecondsOrId === "string" ||
|
|
1059
|
+
typeof enabledOrMillisecondsOrId === "number") {
|
|
1060
|
+
this.expressionMap.cache = true;
|
|
1061
|
+
this.expressionMap.cacheId = enabledOrMillisecondsOrId;
|
|
1062
|
+
}
|
|
1063
|
+
if (maybeMilliseconds) {
|
|
1064
|
+
this.expressionMap.cacheDuration = maybeMilliseconds;
|
|
1065
|
+
}
|
|
1066
|
+
return this;
|
|
1067
|
+
}
|
|
1068
|
+
/**
|
|
1069
|
+
* Sets extra options that can be used to configure how query builder works.
|
|
1070
|
+
*
|
|
1071
|
+
* @param option
|
|
1072
|
+
*/
|
|
1073
|
+
setOption(option) {
|
|
1074
|
+
this.expressionMap.options.push(option);
|
|
1075
|
+
return this;
|
|
1076
|
+
}
|
|
1077
|
+
// -------------------------------------------------------------------------
|
|
1078
|
+
// Protected Methods
|
|
1079
|
+
// -------------------------------------------------------------------------
|
|
1080
|
+
join(direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany, mapAsEntity) {
|
|
1081
|
+
if (parameters) {
|
|
1082
|
+
this.setParameters(parameters);
|
|
1083
|
+
}
|
|
1084
|
+
const joinAttribute = new JoinAttribute_1.JoinAttribute(this.dataSource, this.expressionMap);
|
|
1085
|
+
joinAttribute.direction = direction;
|
|
1086
|
+
joinAttribute.mapAsEntity = mapAsEntity;
|
|
1087
|
+
joinAttribute.mapToProperty = mapToProperty;
|
|
1088
|
+
joinAttribute.isMappingMany = isMappingMany;
|
|
1089
|
+
joinAttribute.entityOrProperty = entityOrProperty; // relationName
|
|
1090
|
+
joinAttribute.condition = condition; // joinInverseSideCondition
|
|
1091
|
+
// joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + "_" + destinationTableAlias : destinationTableAlias + "_" + parentAlias;
|
|
1092
|
+
this.expressionMap.joinAttributes.push(joinAttribute);
|
|
1093
|
+
const isEntity = this.dataSource.hasMetadata(entityOrProperty);
|
|
1094
|
+
const isSubQuery = (!isEntity && typeof entityOrProperty === "function") ||
|
|
1095
|
+
(typeof entityOrProperty === "string" &&
|
|
1096
|
+
entityOrProperty.startsWith("(") &&
|
|
1097
|
+
entityOrProperty.endsWith(")"));
|
|
1098
|
+
let subQuery = "";
|
|
1099
|
+
if (isSubQuery) {
|
|
1100
|
+
if (typeof entityOrProperty === "string") {
|
|
1101
|
+
subQuery = entityOrProperty;
|
|
1102
|
+
}
|
|
1103
|
+
else {
|
|
1104
|
+
const subQueryBuilder = entityOrProperty(this.subQuery());
|
|
1105
|
+
this.setParameters(subQueryBuilder.getParameters());
|
|
1106
|
+
subQuery = subQueryBuilder.getQuery();
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
const joinAttributeMetadata = joinAttribute.metadata;
|
|
1110
|
+
if (joinAttributeMetadata) {
|
|
1111
|
+
if (joinAttributeMetadata.deleteDateColumn &&
|
|
1112
|
+
!this.expressionMap.withDeleted) {
|
|
1113
|
+
const conditionDeleteColumn = `${aliasName}.${joinAttributeMetadata.deleteDateColumn.propertyName} IS NULL`;
|
|
1114
|
+
joinAttribute.condition = joinAttribute.condition
|
|
1115
|
+
? ` ${joinAttribute.condition} AND ${conditionDeleteColumn}`
|
|
1116
|
+
: `${conditionDeleteColumn}`;
|
|
1117
|
+
}
|
|
1118
|
+
// todo: find and set metadata right there?
|
|
1119
|
+
joinAttribute.alias = this.expressionMap.createAlias({
|
|
1120
|
+
type: "join",
|
|
1121
|
+
name: aliasName,
|
|
1122
|
+
metadata: joinAttributeMetadata,
|
|
1123
|
+
subQuery: isSubQuery ? subQuery : undefined,
|
|
1124
|
+
});
|
|
1125
|
+
if (joinAttribute.relation?.junctionEntityMetadata) {
|
|
1126
|
+
this.expressionMap.createAlias({
|
|
1127
|
+
type: "join",
|
|
1128
|
+
name: joinAttribute.junctionAlias,
|
|
1129
|
+
metadata: joinAttribute.relation.junctionEntityMetadata,
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
else {
|
|
1134
|
+
joinAttribute.alias = this.expressionMap.createAlias({
|
|
1135
|
+
type: "join",
|
|
1136
|
+
name: aliasName,
|
|
1137
|
+
tablePath: isSubQuery === false
|
|
1138
|
+
? entityOrProperty
|
|
1139
|
+
: undefined,
|
|
1140
|
+
subQuery: isSubQuery === true ? subQuery : undefined,
|
|
1141
|
+
});
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
/**
|
|
1145
|
+
* Creates "SELECT FROM" part of SQL query.
|
|
1146
|
+
*/
|
|
1147
|
+
createSelectExpression() {
|
|
1148
|
+
if (!this.expressionMap.mainAlias)
|
|
1149
|
+
throw new error_1.TypeORMError("Cannot build query because main alias is not set (call qb#from method)");
|
|
1150
|
+
// todo throw exception if selects or from is missing
|
|
1151
|
+
const allSelects = [];
|
|
1152
|
+
const excludedSelects = [];
|
|
1153
|
+
if (this.expressionMap.mainAlias.hasMetadata) {
|
|
1154
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
1155
|
+
allSelects.push(...this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
|
|
1156
|
+
excludedSelects.push(...this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
|
|
1157
|
+
}
|
|
1158
|
+
// add selects from joins
|
|
1159
|
+
this.expressionMap.joinAttributes.forEach((join) => {
|
|
1160
|
+
if (join.metadata) {
|
|
1161
|
+
allSelects.push(...this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata));
|
|
1162
|
+
excludedSelects.push(...this.findEntityColumnSelects(join.alias.name, join.metadata));
|
|
1163
|
+
}
|
|
1164
|
+
else {
|
|
1165
|
+
const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === join.alias.name);
|
|
1166
|
+
if (hasMainAlias) {
|
|
1167
|
+
allSelects.push({
|
|
1168
|
+
selection: this.escape(join.alias.name) + ".*",
|
|
1169
|
+
});
|
|
1170
|
+
const excludedSelect = this.expressionMap.selects.find((select) => select.selection === join.alias.name);
|
|
1171
|
+
excludedSelects.push(excludedSelect);
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
});
|
|
1175
|
+
// add all other selects
|
|
1176
|
+
this.expressionMap.selects
|
|
1177
|
+
.filter((select) => excludedSelects.indexOf(select) === -1)
|
|
1178
|
+
.forEach((select) => allSelects.push({
|
|
1179
|
+
selection: select.selection,
|
|
1180
|
+
aliasName: select.aliasName,
|
|
1181
|
+
}));
|
|
1182
|
+
// if still selection is empty, then simply set it to all (*)
|
|
1183
|
+
if (allSelects.length === 0)
|
|
1184
|
+
allSelects.push({ selection: "*" });
|
|
1185
|
+
// Use certain index
|
|
1186
|
+
let useIndex = "";
|
|
1187
|
+
if (this.expressionMap.useIndex?.length) {
|
|
1188
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.dataSource.driver)) {
|
|
1189
|
+
useIndex = ` USE INDEX (${this.expressionMap.useIndex
|
|
1190
|
+
.map((i) => this.escape(i))
|
|
1191
|
+
.join(", ")})`;
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
// create a selection query
|
|
1195
|
+
const froms = this.expressionMap.aliases
|
|
1196
|
+
.filter((alias) => alias.type === "from" &&
|
|
1197
|
+
(alias.tablePath ?? alias.subQuery))
|
|
1198
|
+
.map((alias) => {
|
|
1199
|
+
if (alias.subQuery)
|
|
1200
|
+
return alias.subQuery + " " + this.escape(alias.name);
|
|
1201
|
+
return (this.getTableName(alias.tablePath) +
|
|
1202
|
+
" " +
|
|
1203
|
+
this.escape(alias.name));
|
|
1204
|
+
});
|
|
1205
|
+
const select = this.createSelectDistinctExpression();
|
|
1206
|
+
const selection = allSelects
|
|
1207
|
+
.map((select) => select.selection +
|
|
1208
|
+
(select.aliasName
|
|
1209
|
+
? " AS " + this.escape(select.aliasName)
|
|
1210
|
+
: ""))
|
|
1211
|
+
.join(", ");
|
|
1212
|
+
return (select +
|
|
1213
|
+
selection +
|
|
1214
|
+
" FROM " +
|
|
1215
|
+
froms.join(", ") +
|
|
1216
|
+
this.createTableLockExpression() +
|
|
1217
|
+
useIndex);
|
|
1218
|
+
}
|
|
1219
|
+
/**
|
|
1220
|
+
* Creates select | select distinct part of SQL query.
|
|
1221
|
+
*/
|
|
1222
|
+
createSelectDistinctExpression() {
|
|
1223
|
+
const { selectDistinct, selectDistinctOn, maxExecutionTime } = this.expressionMap;
|
|
1224
|
+
const { driver } = this.dataSource;
|
|
1225
|
+
let select = "SELECT ";
|
|
1226
|
+
if (maxExecutionTime > 0) {
|
|
1227
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
1228
|
+
select += `/*+ MAX_EXECUTION_TIME(${this.expressionMap.maxExecutionTime}) */ `;
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver) &&
|
|
1232
|
+
selectDistinctOn.length > 0) {
|
|
1233
|
+
const selectDistinctOnMap = selectDistinctOn.join(", ");
|
|
1234
|
+
select = `SELECT DISTINCT ON (${selectDistinctOnMap}) `;
|
|
1235
|
+
}
|
|
1236
|
+
else if (selectDistinct) {
|
|
1237
|
+
select = "SELECT DISTINCT ";
|
|
1238
|
+
}
|
|
1239
|
+
return select;
|
|
1240
|
+
}
|
|
1241
|
+
/**
|
|
1242
|
+
* Creates "JOIN" part of SQL query.
|
|
1243
|
+
*
|
|
1244
|
+
* @example
|
|
1245
|
+
* // select from owning side
|
|
1246
|
+
* qb.select("post")
|
|
1247
|
+
* .leftJoinAndSelect("post.category", "category")
|
|
1248
|
+
*
|
|
1249
|
+
* @example
|
|
1250
|
+
* // select from non-owning side
|
|
1251
|
+
* qb.select("category")
|
|
1252
|
+
* .leftJoinAndSelect("category.post", "post")
|
|
1253
|
+
*
|
|
1254
|
+
*/
|
|
1255
|
+
createJoinExpression() {
|
|
1256
|
+
// preprocess join attributes by nesting them when necessary
|
|
1257
|
+
const joinAttributeTrees = this.expressionMap.joinAttributes.reduce(({ trees, mappedTrees }, joinAttribute) => {
|
|
1258
|
+
const destinationTableAlias = joinAttribute.alias.name;
|
|
1259
|
+
const existingTree = joinAttribute.parentAlias
|
|
1260
|
+
? mappedTrees[joinAttribute.parentAlias]
|
|
1261
|
+
: undefined;
|
|
1262
|
+
const joinAttributeTree = {
|
|
1263
|
+
children: [],
|
|
1264
|
+
joinAttribute,
|
|
1265
|
+
};
|
|
1266
|
+
if (existingTree) {
|
|
1267
|
+
existingTree.children.push(joinAttributeTree);
|
|
1268
|
+
}
|
|
1269
|
+
else {
|
|
1270
|
+
trees.push(joinAttributeTree);
|
|
1271
|
+
}
|
|
1272
|
+
mappedTrees[destinationTableAlias] = joinAttributeTree;
|
|
1273
|
+
return { trees, mappedTrees };
|
|
1274
|
+
}, { trees: [], mappedTrees: {} });
|
|
1275
|
+
const joinStatements = joinAttributeTrees.trees.map((joinTree) => {
|
|
1276
|
+
return this.createJoinTreeRecursively(joinTree);
|
|
1277
|
+
});
|
|
1278
|
+
return joinStatements.join(" ");
|
|
1279
|
+
}
|
|
1280
|
+
createJoinTreeRecursively({ children, joinAttribute: joinAttr, }) {
|
|
1281
|
+
const relation = joinAttr.relation;
|
|
1282
|
+
const destinationTableName = joinAttr.tablePath;
|
|
1283
|
+
const destinationTableAlias = joinAttr.alias.name;
|
|
1284
|
+
let appendedCondition = joinAttr.condition
|
|
1285
|
+
? " AND (" + joinAttr.condition + ")"
|
|
1286
|
+
: "";
|
|
1287
|
+
const parentAlias = joinAttr.parentAlias;
|
|
1288
|
+
const childJoins = (children || [])
|
|
1289
|
+
.map((joinTreeChild) => {
|
|
1290
|
+
return this.createJoinTreeRecursively(joinTreeChild);
|
|
1291
|
+
})
|
|
1292
|
+
.join(" ");
|
|
1293
|
+
// nesting is only needed to stop an inner child join from filtering out the rows its outer parent
|
|
1294
|
+
// preserves. In every other combination the flat form is equivalent and leaves join order to the planner.
|
|
1295
|
+
const nestChildJoins = joinAttr.direction === "LEFT" &&
|
|
1296
|
+
(children || []).some((joinTreeChild) => joinTreeChild.joinAttribute.direction === "INNER");
|
|
1297
|
+
// if join was build without relation (e.g. without "post.category") then it means that we have direct
|
|
1298
|
+
// table to join, without junction table involved. This means we simply join direct table.
|
|
1299
|
+
if (!parentAlias || !relation) {
|
|
1300
|
+
const destinationJoin = joinAttr.alias.subQuery ??
|
|
1301
|
+
this.getTableName(destinationTableName);
|
|
1302
|
+
return this.buildJoinClause(joinAttr.direction, destinationJoin, destinationTableAlias, joinAttr.condition ?? "", childJoins, nestChildJoins);
|
|
1303
|
+
}
|
|
1304
|
+
// if real entity relation is involved
|
|
1305
|
+
if (relation.isManyToOne || relation.isOneToOneOwner) {
|
|
1306
|
+
// JOIN `category` `category` ON `category`.`id` = `post`.`categoryId`
|
|
1307
|
+
const condition = relation.joinColumns
|
|
1308
|
+
.map((joinColumn) => {
|
|
1309
|
+
return (destinationTableAlias +
|
|
1310
|
+
"." +
|
|
1311
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1312
|
+
"=" +
|
|
1313
|
+
parentAlias +
|
|
1314
|
+
"." +
|
|
1315
|
+
relation.propertyPath +
|
|
1316
|
+
"." +
|
|
1317
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1318
|
+
})
|
|
1319
|
+
.join(" AND ");
|
|
1320
|
+
return this.buildJoinClause(joinAttr.direction, this.getTableName(destinationTableName), destinationTableAlias, condition + appendedCondition, childJoins, nestChildJoins);
|
|
1321
|
+
}
|
|
1322
|
+
else if (relation.isOneToMany || relation.isOneToOneNotOwner) {
|
|
1323
|
+
// JOIN `post` `post` ON `post`.`categoryId` = `category`.`id`
|
|
1324
|
+
const condition = relation
|
|
1325
|
+
.inverseRelation.joinColumns.map((joinColumn) => {
|
|
1326
|
+
if (relation.inverseEntityMetadata.tableType ===
|
|
1327
|
+
"entity-child" &&
|
|
1328
|
+
relation.inverseEntityMetadata.discriminatorColumn) {
|
|
1329
|
+
appendedCondition +=
|
|
1330
|
+
" AND " +
|
|
1331
|
+
destinationTableAlias +
|
|
1332
|
+
"." +
|
|
1333
|
+
relation.inverseEntityMetadata.discriminatorColumn
|
|
1334
|
+
.databaseName +
|
|
1335
|
+
"='" +
|
|
1336
|
+
relation.inverseEntityMetadata.discriminatorValue +
|
|
1337
|
+
"'";
|
|
1338
|
+
}
|
|
1339
|
+
return (destinationTableAlias +
|
|
1340
|
+
"." +
|
|
1341
|
+
relation.inverseRelation.propertyPath +
|
|
1342
|
+
"." +
|
|
1343
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1344
|
+
"=" +
|
|
1345
|
+
parentAlias +
|
|
1346
|
+
"." +
|
|
1347
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1348
|
+
})
|
|
1349
|
+
.join(" AND ");
|
|
1350
|
+
if (!condition)
|
|
1351
|
+
throw new error_1.TypeORMError(`Relation ${relation.entityMetadata.name}.${relation.propertyName} does not have join columns.`);
|
|
1352
|
+
return this.buildJoinClause(joinAttr.direction, this.getTableName(destinationTableName), destinationTableAlias, condition + appendedCondition, childJoins, nestChildJoins);
|
|
1353
|
+
}
|
|
1354
|
+
else {
|
|
1355
|
+
// means many-to-many
|
|
1356
|
+
const junctionTableName = relation.junctionEntityMetadata.tablePath;
|
|
1357
|
+
const junctionAlias = joinAttr.junctionAlias;
|
|
1358
|
+
let junctionCondition = "", destinationCondition = "";
|
|
1359
|
+
if (relation.isOwning) {
|
|
1360
|
+
junctionCondition = relation.joinColumns
|
|
1361
|
+
.map((joinColumn) => {
|
|
1362
|
+
// `post_category`.`postId` = `post`.`id`
|
|
1363
|
+
return (junctionAlias +
|
|
1364
|
+
"." +
|
|
1365
|
+
joinColumn.propertyPath +
|
|
1366
|
+
"=" +
|
|
1367
|
+
parentAlias +
|
|
1368
|
+
"." +
|
|
1369
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1370
|
+
})
|
|
1371
|
+
.join(" AND ");
|
|
1372
|
+
destinationCondition = relation.inverseJoinColumns
|
|
1373
|
+
.map((joinColumn) => {
|
|
1374
|
+
// `category`.`id` = `post_category`.`categoryId`
|
|
1375
|
+
return (destinationTableAlias +
|
|
1376
|
+
"." +
|
|
1377
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1378
|
+
"=" +
|
|
1379
|
+
junctionAlias +
|
|
1380
|
+
"." +
|
|
1381
|
+
joinColumn.propertyPath);
|
|
1382
|
+
})
|
|
1383
|
+
.join(" AND ");
|
|
1384
|
+
}
|
|
1385
|
+
else {
|
|
1386
|
+
junctionCondition = relation
|
|
1387
|
+
.inverseRelation.inverseJoinColumns.map((joinColumn) => {
|
|
1388
|
+
// `post_category`.`categoryId` = `category`.`id`
|
|
1389
|
+
return (junctionAlias +
|
|
1390
|
+
"." +
|
|
1391
|
+
joinColumn.propertyPath +
|
|
1392
|
+
"=" +
|
|
1393
|
+
parentAlias +
|
|
1394
|
+
"." +
|
|
1395
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1396
|
+
})
|
|
1397
|
+
.join(" AND ");
|
|
1398
|
+
destinationCondition = relation
|
|
1399
|
+
.inverseRelation.joinColumns.map((joinColumn) => {
|
|
1400
|
+
// `post`.`id` = `post_category`.`postId`
|
|
1401
|
+
return (destinationTableAlias +
|
|
1402
|
+
"." +
|
|
1403
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1404
|
+
"=" +
|
|
1405
|
+
junctionAlias +
|
|
1406
|
+
"." +
|
|
1407
|
+
joinColumn.propertyPath);
|
|
1408
|
+
})
|
|
1409
|
+
.join(" AND ");
|
|
1410
|
+
}
|
|
1411
|
+
return (this.buildJoinClause(joinAttr.direction, this.getTableName(junctionTableName), junctionAlias, junctionCondition) +
|
|
1412
|
+
this.buildJoinClause(joinAttr.direction, this.getTableName(destinationTableName), destinationTableAlias, destinationCondition + appendedCondition, childJoins, nestChildJoins));
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
buildJoinClause(direction, tableName, alias, condition, childJoins = "", nestChildJoins = false) {
|
|
1416
|
+
const joinedTable = nestChildJoins
|
|
1417
|
+
? "(" + tableName + " " + this.escape(alias) + childJoins + ")"
|
|
1418
|
+
: tableName + " " + this.escape(alias);
|
|
1419
|
+
return (" " +
|
|
1420
|
+
direction +
|
|
1421
|
+
" JOIN " +
|
|
1422
|
+
joinedTable +
|
|
1423
|
+
this.createTableLockExpression() +
|
|
1424
|
+
(condition ? " ON " + condition : "") +
|
|
1425
|
+
(nestChildJoins ? "" : childJoins));
|
|
1426
|
+
}
|
|
1427
|
+
/**
|
|
1428
|
+
* Creates "GROUP BY" part of SQL query.
|
|
1429
|
+
*/
|
|
1430
|
+
createGroupByExpression() {
|
|
1431
|
+
if (!this.expressionMap.groupBys?.length)
|
|
1432
|
+
return "";
|
|
1433
|
+
return " GROUP BY " + this.expressionMap.groupBys.join(", ");
|
|
1434
|
+
}
|
|
1435
|
+
/**
|
|
1436
|
+
* Creates "ORDER BY" part of SQL query.
|
|
1437
|
+
*/
|
|
1438
|
+
createOrderByExpression() {
|
|
1439
|
+
const orderBys = this.expressionMap.allOrderBys;
|
|
1440
|
+
if (Object.keys(orderBys).length === 0)
|
|
1441
|
+
return "";
|
|
1442
|
+
return (" ORDER BY " +
|
|
1443
|
+
Object.keys(orderBys)
|
|
1444
|
+
.map((columnName) => {
|
|
1445
|
+
const orderValue = typeof orderBys[columnName] === "string"
|
|
1446
|
+
? orderBys[columnName]
|
|
1447
|
+
: orderBys[columnName].order +
|
|
1448
|
+
" " +
|
|
1449
|
+
orderBys[columnName].nulls;
|
|
1450
|
+
if (/[;'"\\]/.test(orderValue))
|
|
1451
|
+
throw new error_1.TypeORMError(`Unsafe order-by value "${orderValue}" for "${columnName}".`);
|
|
1452
|
+
const selectionByAlias = this.expressionMap.selects.find((s) => s.aliasName === columnName);
|
|
1453
|
+
if (selectionByAlias) {
|
|
1454
|
+
return this.escape(columnName) + " " + orderValue;
|
|
1455
|
+
}
|
|
1456
|
+
const selection = this.expressionMap.selects.find((s) => s.selection === columnName);
|
|
1457
|
+
if (selection &&
|
|
1458
|
+
!selection.aliasName &&
|
|
1459
|
+
columnName.indexOf(".") !== -1) {
|
|
1460
|
+
const criteriaParts = columnName.split(".");
|
|
1461
|
+
const aliasName = criteriaParts[0];
|
|
1462
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
1463
|
+
const alias = this.expressionMap.aliases.find((alias) => alias.name === aliasName);
|
|
1464
|
+
if (alias?.hasMetadata) {
|
|
1465
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
|
|
1466
|
+
if (column) {
|
|
1467
|
+
const orderAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, aliasName, column.databaseName);
|
|
1468
|
+
return (this.escape(orderAlias) + " " + orderValue);
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
return columnName + " " + orderValue;
|
|
1473
|
+
})
|
|
1474
|
+
.join(", "));
|
|
1475
|
+
}
|
|
1476
|
+
/**
|
|
1477
|
+
* Creates "LIMIT" and "OFFSET" parts of SQL query.
|
|
1478
|
+
*/
|
|
1479
|
+
createLimitOffsetExpression() {
|
|
1480
|
+
// in the case if nothing is joined in the query builder we don't need to make two requests to get paginated results
|
|
1481
|
+
// we can use regular limit / offset, that's why we add offset and limit construction here based on skip and take values
|
|
1482
|
+
let offset = this.expressionMap.offset, limit = this.expressionMap.limit;
|
|
1483
|
+
if (offset === undefined &&
|
|
1484
|
+
limit === undefined &&
|
|
1485
|
+
this.expressionMap.joinAttributes.length === 0) {
|
|
1486
|
+
offset = this.expressionMap.skip;
|
|
1487
|
+
limit = this.expressionMap.take;
|
|
1488
|
+
}
|
|
1489
|
+
// Helper functions to check if values are set (including 0)
|
|
1490
|
+
const hasLimit = limit !== undefined && limit !== null;
|
|
1491
|
+
const hasOffset = offset !== undefined && offset !== null;
|
|
1492
|
+
if (this.dataSource.driver.options.type === "mssql") {
|
|
1493
|
+
// Due to a limitation in SQL Server's parser implementation it does not support using
|
|
1494
|
+
// OFFSET or FETCH NEXT without an ORDER BY clause being provided. In cases where the
|
|
1495
|
+
// user does not request one we insert a dummy ORDER BY that does nothing and should
|
|
1496
|
+
// have no effect on the query planner or on the order of the results returned.
|
|
1497
|
+
// https://dba.stackexchange.com/a/193799
|
|
1498
|
+
let prefix = "";
|
|
1499
|
+
if ((hasLimit || hasOffset) &&
|
|
1500
|
+
Object.keys(this.expressionMap.allOrderBys).length <= 0) {
|
|
1501
|
+
prefix = " ORDER BY (SELECT NULL)";
|
|
1502
|
+
}
|
|
1503
|
+
if (hasLimit && hasOffset)
|
|
1504
|
+
return (prefix +
|
|
1505
|
+
" OFFSET " +
|
|
1506
|
+
offset +
|
|
1507
|
+
" ROWS FETCH NEXT " +
|
|
1508
|
+
limit +
|
|
1509
|
+
" ROWS ONLY");
|
|
1510
|
+
if (hasLimit)
|
|
1511
|
+
return (prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY");
|
|
1512
|
+
if (hasOffset)
|
|
1513
|
+
return prefix + " OFFSET " + offset + " ROWS";
|
|
1514
|
+
}
|
|
1515
|
+
else if (DriverUtils_1.DriverUtils.isMySQLFamily(this.dataSource.driver) ||
|
|
1516
|
+
this.dataSource.driver.options.type === "aurora-mysql" ||
|
|
1517
|
+
this.dataSource.driver.options.type === "sap" ||
|
|
1518
|
+
this.dataSource.driver.options.type === "spanner") {
|
|
1519
|
+
if (hasLimit && hasOffset)
|
|
1520
|
+
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1521
|
+
if (hasLimit)
|
|
1522
|
+
return " LIMIT " + limit;
|
|
1523
|
+
if (hasOffset)
|
|
1524
|
+
throw new OffsetWithoutLimitNotSupportedError_1.OffsetWithoutLimitNotSupportedError();
|
|
1525
|
+
}
|
|
1526
|
+
else if (DriverUtils_1.DriverUtils.isSQLiteFamily(this.dataSource.driver)) {
|
|
1527
|
+
if (hasLimit && hasOffset)
|
|
1528
|
+
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1529
|
+
if (hasLimit)
|
|
1530
|
+
return " LIMIT " + limit;
|
|
1531
|
+
if (hasOffset)
|
|
1532
|
+
return " LIMIT -1 OFFSET " + offset;
|
|
1533
|
+
}
|
|
1534
|
+
else if (this.dataSource.driver.options.type === "oracle") {
|
|
1535
|
+
if (hasLimit && hasOffset)
|
|
1536
|
+
return (" OFFSET " +
|
|
1537
|
+
offset +
|
|
1538
|
+
" ROWS FETCH NEXT " +
|
|
1539
|
+
limit +
|
|
1540
|
+
" ROWS ONLY");
|
|
1541
|
+
if (hasLimit)
|
|
1542
|
+
return " FETCH NEXT " + limit + " ROWS ONLY";
|
|
1543
|
+
if (hasOffset)
|
|
1544
|
+
return " OFFSET " + offset + " ROWS";
|
|
1545
|
+
}
|
|
1546
|
+
else {
|
|
1547
|
+
if (hasLimit && hasOffset)
|
|
1548
|
+
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1549
|
+
if (hasLimit)
|
|
1550
|
+
return " LIMIT " + limit;
|
|
1551
|
+
if (hasOffset)
|
|
1552
|
+
return " OFFSET " + offset;
|
|
1553
|
+
}
|
|
1554
|
+
return "";
|
|
1555
|
+
}
|
|
1556
|
+
/**
|
|
1557
|
+
* Creates "LOCK" part of SELECT Query after table Clause
|
|
1558
|
+
* ex.
|
|
1559
|
+
* SELECT 1
|
|
1560
|
+
* FROM USER U WITH (NOLOCK)
|
|
1561
|
+
* JOIN ORDER O WITH (NOLOCK)
|
|
1562
|
+
* ON U.ID=O.OrderID
|
|
1563
|
+
*/
|
|
1564
|
+
createTableLockExpression() {
|
|
1565
|
+
if (this.dataSource.driver.options.type === "mssql") {
|
|
1566
|
+
switch (this.expressionMap.lockMode) {
|
|
1567
|
+
case "pessimistic_read":
|
|
1568
|
+
return " WITH (HOLDLOCK, ROWLOCK)";
|
|
1569
|
+
case "pessimistic_write":
|
|
1570
|
+
return " WITH (UPDLOCK, ROWLOCK)";
|
|
1571
|
+
case "dirty_read":
|
|
1572
|
+
return " WITH (NOLOCK)";
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
return "";
|
|
1576
|
+
}
|
|
1577
|
+
/**
|
|
1578
|
+
* @returns "LOCK" part of SQL query
|
|
1579
|
+
*/
|
|
1580
|
+
createLockExpression() {
|
|
1581
|
+
const driver = this.dataSource.driver;
|
|
1582
|
+
let lockTablesClause = "";
|
|
1583
|
+
if (this.expressionMap.lockTables) {
|
|
1584
|
+
if (!DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1585
|
+
throw new error_1.TypeORMError("Lock tables not supported in selected driver");
|
|
1586
|
+
}
|
|
1587
|
+
if (this.expressionMap.lockTables.length < 1) {
|
|
1588
|
+
throw new error_1.TypeORMError("lockTables cannot be an empty array");
|
|
1589
|
+
}
|
|
1590
|
+
lockTablesClause = " OF " + this.expressionMap.lockTables.join(", ");
|
|
1591
|
+
}
|
|
1592
|
+
let onLockExpression = "";
|
|
1593
|
+
if (this.expressionMap.onLocked === "nowait") {
|
|
1594
|
+
onLockExpression = " NOWAIT";
|
|
1595
|
+
}
|
|
1596
|
+
else if (this.expressionMap.onLocked === "skip_locked") {
|
|
1597
|
+
if (driver.options.type === "sap") {
|
|
1598
|
+
onLockExpression = " IGNORE LOCKED";
|
|
1599
|
+
}
|
|
1600
|
+
else {
|
|
1601
|
+
onLockExpression = " SKIP LOCKED";
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
switch (this.expressionMap.lockMode) {
|
|
1605
|
+
case "pessimistic_read":
|
|
1606
|
+
if (driver.options.type === "mysql" ||
|
|
1607
|
+
driver.options.type === "aurora-mysql") {
|
|
1608
|
+
if (DriverUtils_1.DriverUtils.isReleaseVersionOrGreater(driver, "8.0.0")) {
|
|
1609
|
+
return (" FOR SHARE" + lockTablesClause + onLockExpression);
|
|
1610
|
+
}
|
|
1611
|
+
else {
|
|
1612
|
+
return " LOCK IN SHARE MODE";
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
else if (driver.options.type === "mariadb") {
|
|
1616
|
+
return " LOCK IN SHARE MODE";
|
|
1617
|
+
}
|
|
1618
|
+
else if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1619
|
+
return " FOR SHARE" + lockTablesClause + onLockExpression;
|
|
1620
|
+
}
|
|
1621
|
+
else if (driver.options.type === "sap") {
|
|
1622
|
+
return (" FOR SHARE LOCK" + lockTablesClause + onLockExpression);
|
|
1623
|
+
}
|
|
1624
|
+
else if (driver.options.type === "oracle") {
|
|
1625
|
+
return " FOR UPDATE";
|
|
1626
|
+
}
|
|
1627
|
+
else if (driver.options.type === "mssql") {
|
|
1628
|
+
return "";
|
|
1629
|
+
}
|
|
1630
|
+
else {
|
|
1631
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1632
|
+
}
|
|
1633
|
+
case "pessimistic_write":
|
|
1634
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(driver) ||
|
|
1635
|
+
driver.options.type === "aurora-mysql" ||
|
|
1636
|
+
driver.options.type === "oracle") {
|
|
1637
|
+
return " FOR UPDATE" + onLockExpression;
|
|
1638
|
+
}
|
|
1639
|
+
else if (DriverUtils_1.DriverUtils.isPostgresFamily(driver) ||
|
|
1640
|
+
driver.options.type === "sap") {
|
|
1641
|
+
return " FOR UPDATE" + lockTablesClause + onLockExpression;
|
|
1642
|
+
}
|
|
1643
|
+
else if (driver.options.type === "mssql") {
|
|
1644
|
+
return "";
|
|
1645
|
+
}
|
|
1646
|
+
else {
|
|
1647
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1648
|
+
}
|
|
1649
|
+
case "for_no_key_update":
|
|
1650
|
+
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1651
|
+
return (" FOR NO KEY UPDATE" +
|
|
1652
|
+
lockTablesClause +
|
|
1653
|
+
onLockExpression);
|
|
1654
|
+
}
|
|
1655
|
+
else {
|
|
1656
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1657
|
+
}
|
|
1658
|
+
case "for_key_share":
|
|
1659
|
+
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1660
|
+
return (" FOR KEY SHARE" + lockTablesClause + onLockExpression);
|
|
1661
|
+
}
|
|
1662
|
+
else {
|
|
1663
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1664
|
+
}
|
|
1665
|
+
default:
|
|
1666
|
+
return "";
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
/**
|
|
1670
|
+
* Creates "HAVING" part of SQL query.
|
|
1671
|
+
*/
|
|
1672
|
+
createHavingExpression() {
|
|
1673
|
+
if (!this.expressionMap.havings?.length)
|
|
1674
|
+
return "";
|
|
1675
|
+
const conditions = this.expressionMap.havings
|
|
1676
|
+
.map((having, index) => {
|
|
1677
|
+
switch (having.type) {
|
|
1678
|
+
case "and":
|
|
1679
|
+
return (index > 0 ? "AND " : "") + having.condition;
|
|
1680
|
+
case "or":
|
|
1681
|
+
return (index > 0 ? "OR " : "") + having.condition;
|
|
1682
|
+
default:
|
|
1683
|
+
return having.condition;
|
|
1684
|
+
}
|
|
1685
|
+
})
|
|
1686
|
+
.join(" ");
|
|
1687
|
+
if (!conditions.length)
|
|
1688
|
+
return "";
|
|
1689
|
+
return " HAVING " + conditions;
|
|
1690
|
+
}
|
|
1691
|
+
buildEscapedEntityColumnSelects(aliasName, metadata) {
|
|
1692
|
+
const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === aliasName);
|
|
1693
|
+
const columns = [];
|
|
1694
|
+
if (hasMainAlias) {
|
|
1695
|
+
columns.push(...metadata.columns.filter((column) => column.isSelect === true));
|
|
1696
|
+
}
|
|
1697
|
+
const columnsMap = new Map(metadata.columns.map((col) => [
|
|
1698
|
+
`${aliasName}.${col.propertyPath}`,
|
|
1699
|
+
col,
|
|
1700
|
+
]));
|
|
1701
|
+
columns.push(...this.expressionMap.selects
|
|
1702
|
+
.map((select) => columnsMap.get(select.selection))
|
|
1703
|
+
.filter((col) => !!col));
|
|
1704
|
+
// if user used partial selection and did not select some primary columns which are required to be selected
|
|
1705
|
+
// we select those primary columns and mark them as "virtual". Later virtual column values will be removed from final entity
|
|
1706
|
+
// to make entity contain exactly what user selected
|
|
1707
|
+
if (columns.length === 0)
|
|
1708
|
+
// however not in the case when nothing (even partial) was selected from this target (for example joins without selection)
|
|
1709
|
+
return [];
|
|
1710
|
+
const nonSelectedPrimaryColumns = this.expressionMap.queryEntity
|
|
1711
|
+
? metadata.primaryColumns.filter((primaryColumn) => columns.indexOf(primaryColumn) === -1)
|
|
1712
|
+
: [];
|
|
1713
|
+
const allColumns = [...columns, ...nonSelectedPrimaryColumns];
|
|
1714
|
+
const finalSelects = [];
|
|
1715
|
+
allColumns.forEach((column) => {
|
|
1716
|
+
const selectionPath = this.buildColumnSelectionExpression(aliasName, column);
|
|
1717
|
+
const selections = this.expressionMap.selects.filter((select) => select.selection === aliasName + "." + column.propertyPath);
|
|
1718
|
+
if (selections.length) {
|
|
1719
|
+
selections.forEach((selection) => {
|
|
1720
|
+
finalSelects.push({
|
|
1721
|
+
selection: selectionPath,
|
|
1722
|
+
aliasName: selection.aliasName ??
|
|
1723
|
+
DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, aliasName, column.databaseName),
|
|
1724
|
+
// todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
|
|
1725
|
+
virtual: selection.virtual,
|
|
1726
|
+
});
|
|
1727
|
+
});
|
|
1728
|
+
}
|
|
1729
|
+
else {
|
|
1730
|
+
finalSelects.push({
|
|
1731
|
+
selection: selectionPath,
|
|
1732
|
+
aliasName: DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, aliasName, column.databaseName),
|
|
1733
|
+
// todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
|
|
1734
|
+
virtual: hasMainAlias,
|
|
1735
|
+
});
|
|
1736
|
+
}
|
|
1737
|
+
});
|
|
1738
|
+
return finalSelects;
|
|
1739
|
+
}
|
|
1740
|
+
buildColumnSelectionExpression(aliasName, column, includeHydrationTransform = true) {
|
|
1741
|
+
const escapedAliasName = this.escape(aliasName);
|
|
1742
|
+
let selectionPath = escapedAliasName + "." + this.escape(column.databaseName);
|
|
1743
|
+
if (column.isVirtualProperty && column.query) {
|
|
1744
|
+
selectionPath = `(${column.query(escapedAliasName)})`;
|
|
1745
|
+
}
|
|
1746
|
+
if (DriverUtils_1.DriverUtils.isSQLiteFamily(this.dataSource.driver) &&
|
|
1747
|
+
includeHydrationTransform) {
|
|
1748
|
+
selectionPath = this.dataSource.driver.wrapWithJsonFunction(selectionPath, column, false);
|
|
1749
|
+
}
|
|
1750
|
+
if (this.dataSource.driver.spatialTypes.indexOf(column.type) !== -1) {
|
|
1751
|
+
if ((DriverUtils_1.DriverUtils.isMySQLFamily(this.dataSource.driver) ||
|
|
1752
|
+
this.dataSource.driver.options.type === "aurora-mysql") &&
|
|
1753
|
+
includeHydrationTransform) {
|
|
1754
|
+
const useLegacy = this.dataSource.driver.options.legacySpatialSupport;
|
|
1755
|
+
const asText = useLegacy ? "AsText" : "ST_AsText";
|
|
1756
|
+
selectionPath = `${asText}(${selectionPath})`;
|
|
1757
|
+
}
|
|
1758
|
+
if (DriverUtils_1.DriverUtils.isPostgresFamily(this.dataSource.driver) &&
|
|
1759
|
+
includeHydrationTransform)
|
|
1760
|
+
if (column.precision) {
|
|
1761
|
+
// cast to JSON to trigger parsing in the driver
|
|
1762
|
+
selectionPath = `ST_AsGeoJSON(${selectionPath}, ${column.precision})::json`;
|
|
1763
|
+
}
|
|
1764
|
+
else {
|
|
1765
|
+
selectionPath = `ST_AsGeoJSON(${selectionPath})::json`;
|
|
1766
|
+
}
|
|
1767
|
+
if (this.dataSource.driver.options.type === "mssql")
|
|
1768
|
+
selectionPath = `${selectionPath}.ToString()`;
|
|
1769
|
+
}
|
|
1770
|
+
return selectionPath;
|
|
1771
|
+
}
|
|
1772
|
+
findEntityColumnSelects(aliasName, metadata) {
|
|
1773
|
+
return this.expressionMap.selects.filter((select) => select.selection === aliasName ||
|
|
1774
|
+
metadata.columns.some((column) => select.selection ===
|
|
1775
|
+
aliasName + "." + column.propertyPath));
|
|
1776
|
+
}
|
|
1777
|
+
computeCountExpression() {
|
|
1778
|
+
const mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"?
|
|
1779
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
1780
|
+
const primaryColumns = metadata.primaryColumns;
|
|
1781
|
+
const selectedColumns = [];
|
|
1782
|
+
if (this.findOptions.select) {
|
|
1783
|
+
selectedColumns.push(...this.computeSelectedColumnExpressions());
|
|
1784
|
+
}
|
|
1785
|
+
if (selectedColumns.length > 0) {
|
|
1786
|
+
return this.computeDistinctCountExpression(selectedColumns);
|
|
1787
|
+
}
|
|
1788
|
+
// If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead
|
|
1789
|
+
// so we prevent poor query patterns in the most likely cases
|
|
1790
|
+
if (this.expressionMap.joinAttributes.length === 0 &&
|
|
1791
|
+
this.expressionMap.relationIdAttributes.length === 0) {
|
|
1792
|
+
return "COUNT(1)";
|
|
1793
|
+
}
|
|
1794
|
+
// For everything else, we'll need to do some hackery to get the correct count values.
|
|
1795
|
+
return this.computeDistinctCountExpression(primaryColumns.map((column) => `${this.escape(mainAlias)}.${this.escape(column.databaseName)}`));
|
|
1796
|
+
}
|
|
1797
|
+
computeSelectedColumnExpressions() {
|
|
1798
|
+
const selectedColumns = new Set();
|
|
1799
|
+
this.expressionMap.selects.forEach((select) => {
|
|
1800
|
+
const criteriaParts = select.selection.split(".");
|
|
1801
|
+
if (criteriaParts.length < 2)
|
|
1802
|
+
return;
|
|
1803
|
+
const aliasName = criteriaParts[0];
|
|
1804
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
1805
|
+
const alias = this.expressionMap.aliases.find((queryAlias) => queryAlias.name === aliasName && queryAlias.hasMetadata);
|
|
1806
|
+
if (!alias)
|
|
1807
|
+
return;
|
|
1808
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
|
|
1809
|
+
if (!column)
|
|
1810
|
+
return;
|
|
1811
|
+
selectedColumns.add(this.buildColumnSelectionExpression(aliasName, column, false));
|
|
1812
|
+
});
|
|
1813
|
+
return Array.from(selectedColumns);
|
|
1814
|
+
}
|
|
1815
|
+
computeDistinctCountExpression(columns) {
|
|
1816
|
+
if (this.dataSource.driver.options.type === "cockroachdb" ||
|
|
1817
|
+
DriverUtils_1.DriverUtils.isPostgresFamily(this.dataSource.driver)) {
|
|
1818
|
+
// Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function
|
|
1819
|
+
// https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT
|
|
1820
|
+
return "COUNT(DISTINCT(" + columns.join(", ") + "))";
|
|
1821
|
+
}
|
|
1822
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.dataSource.driver)) {
|
|
1823
|
+
// MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct
|
|
1824
|
+
// https://mariadb.com/kb/en/count-distinct/
|
|
1825
|
+
return "COUNT(DISTINCT " + columns.join(", ") + ")";
|
|
1826
|
+
}
|
|
1827
|
+
if (this.dataSource.driver.options.type === "mssql") {
|
|
1828
|
+
// SQL Server has gotta be different from everyone else. They don't support
|
|
1829
|
+
// distinct counting multiple columns & they don't have the same operator
|
|
1830
|
+
// characteristic for concatenating, so we gotta use the `CONCAT` function.
|
|
1831
|
+
// However, If it's exactly 1 column we can omit the `CONCAT` for better performance.
|
|
1832
|
+
const columnsExpression = columns.join(", '|;|', ");
|
|
1833
|
+
if (columns.length === 1) {
|
|
1834
|
+
return `COUNT(DISTINCT(${columnsExpression}))`;
|
|
1835
|
+
}
|
|
1836
|
+
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1837
|
+
}
|
|
1838
|
+
if (this.dataSource.driver.options.type === "spanner") {
|
|
1839
|
+
// spanner also has gotta be different from everyone else.
|
|
1840
|
+
// they do not support concatenation of different column types without casting them to string
|
|
1841
|
+
if (columns.length === 1) {
|
|
1842
|
+
return `COUNT(DISTINCT(${columns[0]}))`;
|
|
1843
|
+
}
|
|
1844
|
+
const columnsExpression = columns
|
|
1845
|
+
.map((column) => `CAST(${column} AS STRING)`)
|
|
1846
|
+
.join(", '|;|', ");
|
|
1847
|
+
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1848
|
+
}
|
|
1849
|
+
// If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
|
|
1850
|
+
// Per the SQL spec, this is the canonical string concatenation mechanism which is most
|
|
1851
|
+
// likely to work across servers implementing the SQL standard.
|
|
1852
|
+
// Please note, if there is only one primary column that the concatenation does not occur in this
|
|
1853
|
+
// query and the query is a standard `COUNT DISTINCT` in that case.
|
|
1854
|
+
return `COUNT(DISTINCT(` + columns.join(" || '|;|' || ") + "))";
|
|
1855
|
+
}
|
|
1856
|
+
async executeCountQuery(queryRunner) {
|
|
1857
|
+
const countSql = this.computeCountExpression();
|
|
1858
|
+
const results = await this.clone()
|
|
1859
|
+
.orderBy()
|
|
1860
|
+
.groupBy()
|
|
1861
|
+
.offset(undefined)
|
|
1862
|
+
.limit(undefined)
|
|
1863
|
+
.skip(undefined)
|
|
1864
|
+
.take(undefined)
|
|
1865
|
+
.select(countSql, "cnt")
|
|
1866
|
+
.setOption("disable-global-order")
|
|
1867
|
+
.loadRawResults(queryRunner);
|
|
1868
|
+
if (!results?.[0]?.["cnt"])
|
|
1869
|
+
return 0;
|
|
1870
|
+
return parseInt(results[0]["cnt"]);
|
|
1871
|
+
}
|
|
1872
|
+
async executeExistsQuery(queryRunner) {
|
|
1873
|
+
const results = await this.dataSource
|
|
1874
|
+
.createQueryBuilder()
|
|
1875
|
+
.fromDummy()
|
|
1876
|
+
.select("1", "row_exists")
|
|
1877
|
+
.whereExists(this)
|
|
1878
|
+
.limit(1)
|
|
1879
|
+
.loadRawResults(queryRunner);
|
|
1880
|
+
return results.length > 0;
|
|
1881
|
+
}
|
|
1882
|
+
applyFindOptions() {
|
|
1883
|
+
// todo: convert relations: string[] to object map to simplify code
|
|
1884
|
+
// todo: same with selects
|
|
1885
|
+
if (this.expressionMap.mainAlias.metadata) {
|
|
1886
|
+
if (this.findOptions.relationLoadStrategy) {
|
|
1887
|
+
this.expressionMap.relationLoadStrategy =
|
|
1888
|
+
this.findOptions.relationLoadStrategy;
|
|
1889
|
+
}
|
|
1890
|
+
if (this.findOptions.comment) {
|
|
1891
|
+
this.comment(this.findOptions.comment);
|
|
1892
|
+
}
|
|
1893
|
+
if (this.findOptions.withDeleted) {
|
|
1894
|
+
this.withDeleted();
|
|
1895
|
+
}
|
|
1896
|
+
if (this.findOptions.select) {
|
|
1897
|
+
this.buildSelect(this.findOptions.select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1898
|
+
}
|
|
1899
|
+
if (this.selects.length) {
|
|
1900
|
+
this.select(this.selects);
|
|
1901
|
+
}
|
|
1902
|
+
this.selects = [];
|
|
1903
|
+
if (this.findOptions.relations) {
|
|
1904
|
+
this.buildRelations(this.findOptions.relations, this.findOptions.select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1905
|
+
if (this.findOptions.loadEagerRelations !== false &&
|
|
1906
|
+
this.expressionMap.relationLoadStrategy === "join") {
|
|
1907
|
+
this.buildEagerRelations(this.findOptions.relations, this.findOptions.select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
if (this.selects.length) {
|
|
1911
|
+
this.addSelect(this.selects);
|
|
1912
|
+
}
|
|
1913
|
+
if (this.findOptions.where) {
|
|
1914
|
+
this.conditions = this.buildWhere(this.findOptions.where, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1915
|
+
if (this.conditions.length)
|
|
1916
|
+
this.andWhere(this.conditions.startsWith("(")
|
|
1917
|
+
? this.conditions
|
|
1918
|
+
: `(${this.conditions})`); // temporary and where and braces
|
|
1919
|
+
}
|
|
1920
|
+
if (this.findOptions.order) {
|
|
1921
|
+
this.buildOrder(this.findOptions.order, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1922
|
+
}
|
|
1923
|
+
// apply joins
|
|
1924
|
+
if (this.joins.length) {
|
|
1925
|
+
this.joins.forEach((join) => {
|
|
1926
|
+
if (join.select && !join.selection) {
|
|
1927
|
+
// if (join.selection) {
|
|
1928
|
+
//
|
|
1929
|
+
// } else {
|
|
1930
|
+
if (join.type === "inner") {
|
|
1931
|
+
this.innerJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1932
|
+
}
|
|
1933
|
+
else {
|
|
1934
|
+
this.leftJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1935
|
+
}
|
|
1936
|
+
// }
|
|
1937
|
+
}
|
|
1938
|
+
else {
|
|
1939
|
+
if (join.type === "inner") {
|
|
1940
|
+
this.innerJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1941
|
+
}
|
|
1942
|
+
else {
|
|
1943
|
+
this.leftJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1944
|
+
}
|
|
1945
|
+
}
|
|
1946
|
+
// if (join.select) {
|
|
1947
|
+
// if (this.findOptions.loadEagerRelations !== false) {
|
|
1948
|
+
// FindOptionsUtils.joinEagerRelations(
|
|
1949
|
+
// this,
|
|
1950
|
+
// join.alias,
|
|
1951
|
+
// join.relationMetadata.inverseEntityMetadata
|
|
1952
|
+
// );
|
|
1953
|
+
// }
|
|
1954
|
+
// }
|
|
1955
|
+
});
|
|
1956
|
+
}
|
|
1957
|
+
// if (this.conditions.length) {
|
|
1958
|
+
// this.where(this.conditions.join(" AND "));
|
|
1959
|
+
// }
|
|
1960
|
+
// apply offset
|
|
1961
|
+
if (this.findOptions.skip !== undefined) {
|
|
1962
|
+
// if (this.findOptions.options && this.findOptions.options.pagination === false) {
|
|
1963
|
+
// this.offset(this.findOptions.skip);
|
|
1964
|
+
// } else {
|
|
1965
|
+
this.skip(this.findOptions.skip);
|
|
1966
|
+
// }
|
|
1967
|
+
}
|
|
1968
|
+
// apply limit
|
|
1969
|
+
if (this.findOptions.take !== undefined) {
|
|
1970
|
+
// if (this.findOptions.options && this.findOptions.options.pagination === false) {
|
|
1971
|
+
// this.limit(this.findOptions.take);
|
|
1972
|
+
// } else {
|
|
1973
|
+
this.take(this.findOptions.take);
|
|
1974
|
+
// }
|
|
1975
|
+
}
|
|
1976
|
+
// apply caching options
|
|
1977
|
+
if (typeof this.findOptions.cache === "number") {
|
|
1978
|
+
this.cache(this.findOptions.cache);
|
|
1979
|
+
}
|
|
1980
|
+
else if (typeof this.findOptions.cache === "boolean") {
|
|
1981
|
+
this.cache(this.findOptions.cache);
|
|
1982
|
+
}
|
|
1983
|
+
else if (typeof this.findOptions.cache === "object") {
|
|
1984
|
+
this.cache(this.findOptions.cache.id, this.findOptions.cache.milliseconds);
|
|
1985
|
+
}
|
|
1986
|
+
if (this.findOptions.lock) {
|
|
1987
|
+
if (this.findOptions.lock.mode === "optimistic") {
|
|
1988
|
+
this.setLock(this.findOptions.lock.mode, this.findOptions.lock.version);
|
|
1989
|
+
}
|
|
1990
|
+
else if (this.findOptions.lock.mode === "pessimistic_read" ||
|
|
1991
|
+
this.findOptions.lock.mode === "pessimistic_write" ||
|
|
1992
|
+
this.findOptions.lock.mode === "dirty_read" ||
|
|
1993
|
+
this.findOptions.lock.mode === "for_no_key_update" ||
|
|
1994
|
+
this.findOptions.lock.mode === "for_key_share") {
|
|
1995
|
+
const tableNames = this.findOptions.lock.tables
|
|
1996
|
+
? this.findOptions.lock.tables.map((table) => {
|
|
1997
|
+
const tableAlias = this.expressionMap.aliases.find((alias) => {
|
|
1998
|
+
return (alias.metadata
|
|
1999
|
+
.tableNameWithoutPrefix === table);
|
|
2000
|
+
});
|
|
2001
|
+
if (!tableAlias) {
|
|
2002
|
+
throw new error_1.TypeORMError(`"${table}" is not part of this query`);
|
|
2003
|
+
}
|
|
2004
|
+
return this.escape(tableAlias.name);
|
|
2005
|
+
})
|
|
2006
|
+
: undefined;
|
|
2007
|
+
this.setLock(this.findOptions.lock.mode, undefined, tableNames);
|
|
2008
|
+
if (this.findOptions.lock.onLocked) {
|
|
2009
|
+
this.setOnLocked(this.findOptions.lock.onLocked);
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
if (this.findOptions.loadRelationIds === true) {
|
|
2014
|
+
this.loadAllRelationIds();
|
|
2015
|
+
}
|
|
2016
|
+
else if (typeof this.findOptions.loadRelationIds === "object") {
|
|
2017
|
+
this.loadAllRelationIds(this.findOptions.loadRelationIds);
|
|
2018
|
+
}
|
|
2019
|
+
if (this.findOptions.loadEagerRelations !== false &&
|
|
2020
|
+
this.expressionMap.mainAlias) {
|
|
2021
|
+
if (this.expressionMap.relationLoadStrategy === "join") {
|
|
2022
|
+
FindOptionsUtils_1.FindOptionsUtils.joinEagerRelations(this, this.expressionMap.mainAlias.name, this.expressionMap.mainAlias.metadata);
|
|
2023
|
+
}
|
|
2024
|
+
else if (this.expressionMap.relationLoadStrategy === "query") {
|
|
2025
|
+
this.concatRelationMetadata(...this.expressionMap.mainAlias.metadata.eagerRelations);
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
if (this.findOptions.transaction === true) {
|
|
2029
|
+
this.expressionMap.useTransaction = true;
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2033
|
+
/**
|
|
2034
|
+
* Registers relation metadata for loading via separate queries when using
|
|
2035
|
+
* the "query" relation load strategy. Duplicates (by propertyPath) are
|
|
2036
|
+
* silently skipped.
|
|
2037
|
+
*
|
|
2038
|
+
* @param relationMetadata - one or more relation metadata entries to register
|
|
2039
|
+
*/
|
|
2040
|
+
concatRelationMetadata(...relationMetadata) {
|
|
2041
|
+
const newRelationMetadata = relationMetadata.filter((metadata) => !this.relationMetadatas.some((existentMetadata) => existentMetadata.propertyPath === metadata.propertyPath));
|
|
2042
|
+
this.relationMetadatas.push(...newRelationMetadata);
|
|
2043
|
+
}
|
|
2044
|
+
/**
|
|
2045
|
+
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
2046
|
+
*
|
|
2047
|
+
* @param queryRunner
|
|
2048
|
+
*/
|
|
2049
|
+
async executeEntitiesAndRawResults(queryRunner) {
|
|
2050
|
+
if (!this.expressionMap.mainAlias)
|
|
2051
|
+
throw new error_1.TypeORMError(`Alias is not set. Use "from" method to set an alias.`);
|
|
2052
|
+
if ((this.expressionMap.lockMode === "pessimistic_read" ||
|
|
2053
|
+
this.expressionMap.lockMode === "pessimistic_write" ||
|
|
2054
|
+
this.expressionMap.lockMode === "for_no_key_update" ||
|
|
2055
|
+
this.expressionMap.lockMode === "for_key_share") &&
|
|
2056
|
+
!queryRunner.isTransactionActive)
|
|
2057
|
+
throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
|
|
2058
|
+
if (this.expressionMap.lockMode === "optimistic") {
|
|
2059
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
2060
|
+
if (!metadata.versionColumn && !metadata.updateDateColumn)
|
|
2061
|
+
throw new NoVersionOrUpdateDateColumnError_1.NoVersionOrUpdateDateColumnError(metadata.name);
|
|
2062
|
+
}
|
|
2063
|
+
const relationIdLoader = new RelationIdLoader_1.RelationIdLoader(this.dataSource, queryRunner, this.expressionMap.relationIdAttributes, this.expressionMap.withDeleted);
|
|
2064
|
+
const relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_1.RelationIdMetadataToAttributeTransformer(this.expressionMap);
|
|
2065
|
+
relationIdMetadataTransformer.transform();
|
|
2066
|
+
let rawResults, entities = [];
|
|
2067
|
+
// for pagination enabled (e.g. skip and take) its much more complicated - its a special process
|
|
2068
|
+
// where we make two queries to find the data we need
|
|
2069
|
+
// first query find ids in skip and take range
|
|
2070
|
+
// and second query loads the actual data in given ids range
|
|
2071
|
+
if ((this.expressionMap.skip || this.expressionMap.take) &&
|
|
2072
|
+
this.expressionMap.joinAttributes.length > 0) {
|
|
2073
|
+
// we are skipping order by here because its not working in subqueries anyway
|
|
2074
|
+
// to make order by working we need to apply it on a distinct query
|
|
2075
|
+
const [selects, orderBys] = this.createOrderByCombinedWithSelectExpression("distinctAlias");
|
|
2076
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
2077
|
+
const mainAliasName = this.expressionMap.mainAlias.name;
|
|
2078
|
+
const querySelects = metadata.primaryColumns.map((primaryColumn) => {
|
|
2079
|
+
const distinctAlias = this.escape("distinctAlias");
|
|
2080
|
+
const columnAlias = this.escape(DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, mainAliasName, primaryColumn.databaseName));
|
|
2081
|
+
if (!orderBys[columnAlias])
|
|
2082
|
+
// make sure we aren't overriding user-defined order in inverse direction
|
|
2083
|
+
orderBys[columnAlias] = "ASC";
|
|
2084
|
+
const alias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, "ids_" + mainAliasName, primaryColumn.databaseName);
|
|
2085
|
+
return `${distinctAlias}.${columnAlias} AS ${this.escape(alias)}`;
|
|
2086
|
+
});
|
|
2087
|
+
const originalQuery = this.clone();
|
|
2088
|
+
// preserve original timeTravel value since we set it to "false" in subquery
|
|
2089
|
+
const originalQueryTimeTravel = originalQuery.expressionMap.timeTravel;
|
|
2090
|
+
const paginationQueryBuilder = new SelectQueryBuilder(this.dataSource, queryRunner)
|
|
2091
|
+
.select(`DISTINCT ${querySelects.join(", ")}`)
|
|
2092
|
+
.addSelect(selects)
|
|
2093
|
+
.from(`(${originalQuery
|
|
2094
|
+
.orderBy()
|
|
2095
|
+
.timeTravelQuery(false) // set it to "false" since time travel clause must appear at the very end and applies to the entire SELECT clause.
|
|
2096
|
+
.getQuery()})`, "distinctAlias")
|
|
2097
|
+
.timeTravelQuery(originalQueryTimeTravel)
|
|
2098
|
+
.offset(this.expressionMap.skip)
|
|
2099
|
+
.limit(this.expressionMap.take)
|
|
2100
|
+
.orderBy(orderBys)
|
|
2101
|
+
.cache(this.expressionMap.cache && this.expressionMap.cacheId
|
|
2102
|
+
? `${this.expressionMap.cacheId}-pagination`
|
|
2103
|
+
: this.expressionMap.cache, this.expressionMap.cacheDuration)
|
|
2104
|
+
.setParameters(this.getParameters());
|
|
2105
|
+
rawResults = await paginationQueryBuilder.getRawMany();
|
|
2106
|
+
if (rawResults.length > 0) {
|
|
2107
|
+
let condition;
|
|
2108
|
+
const parameters = {};
|
|
2109
|
+
if (metadata.hasMultiplePrimaryKeys) {
|
|
2110
|
+
condition = rawResults
|
|
2111
|
+
.map((result, index) => {
|
|
2112
|
+
return metadata.primaryColumns
|
|
2113
|
+
.map((primaryColumn) => {
|
|
2114
|
+
const paramKey = `orm_distinct_ids_${index}_${primaryColumn.databaseName}`;
|
|
2115
|
+
const paramKeyResult = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, "ids_" + mainAliasName, primaryColumn.databaseName);
|
|
2116
|
+
parameters[paramKey] =
|
|
2117
|
+
result[paramKeyResult];
|
|
2118
|
+
return `${mainAliasName}.${primaryColumn.propertyPath}=:${paramKey}`;
|
|
2119
|
+
})
|
|
2120
|
+
.join(" AND ");
|
|
2121
|
+
})
|
|
2122
|
+
.join(" OR ");
|
|
2123
|
+
}
|
|
2124
|
+
else {
|
|
2125
|
+
const alias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, "ids_" + mainAliasName, metadata.primaryColumns[0].databaseName);
|
|
2126
|
+
const ids = rawResults.map((result) => result[alias]);
|
|
2127
|
+
const areAllNumbers = ids.every((id) => typeof id === "number");
|
|
2128
|
+
if (areAllNumbers) {
|
|
2129
|
+
// fixes #190. if all numbers then its safe to perform query without parameter
|
|
2130
|
+
condition = `${mainAliasName}.${metadata.primaryColumns[0].propertyPath} IN (${ids.join(", ")})`;
|
|
2131
|
+
}
|
|
2132
|
+
else {
|
|
2133
|
+
parameters["orm_distinct_ids"] = ids;
|
|
2134
|
+
condition =
|
|
2135
|
+
mainAliasName +
|
|
2136
|
+
"." +
|
|
2137
|
+
metadata.primaryColumns[0].propertyPath +
|
|
2138
|
+
" IN (:...orm_distinct_ids)";
|
|
2139
|
+
}
|
|
2140
|
+
}
|
|
2141
|
+
rawResults = await this.clone()
|
|
2142
|
+
.mergeExpressionMap({
|
|
2143
|
+
extraAppendedAndWhereCondition: condition,
|
|
2144
|
+
})
|
|
2145
|
+
.setParameters(parameters)
|
|
2146
|
+
.loadRawResults(queryRunner);
|
|
2147
|
+
}
|
|
2148
|
+
}
|
|
2149
|
+
else {
|
|
2150
|
+
rawResults = await this.loadRawResults(queryRunner);
|
|
2151
|
+
}
|
|
2152
|
+
if (rawResults.length > 0) {
|
|
2153
|
+
// transform raw results into entities
|
|
2154
|
+
const rawRelationIdResults = await relationIdLoader.load(rawResults);
|
|
2155
|
+
const transformer = new RawSqlResultsToEntityTransformer_1.RawSqlResultsToEntityTransformer(this.expressionMap, this.dataSource.driver, rawRelationIdResults, this.queryRunner);
|
|
2156
|
+
entities = transformer.transform(rawResults, this.expressionMap.mainAlias);
|
|
2157
|
+
// broadcast all "after load" events
|
|
2158
|
+
if (this.expressionMap.callListeners === true &&
|
|
2159
|
+
this.expressionMap.mainAlias.hasMetadata) {
|
|
2160
|
+
await queryRunner.broadcaster.broadcast("Load", this.expressionMap.mainAlias.metadata, entities);
|
|
2161
|
+
}
|
|
2162
|
+
}
|
|
2163
|
+
if (this.expressionMap.relationLoadStrategy === "query") {
|
|
2164
|
+
const queryStrategyRelationIdLoader = new RelationIdLoader_2.RelationIdLoader(this.dataSource, queryRunner, this.findOptions.loadEagerRelations);
|
|
2165
|
+
const loadRelation = async (relation) => {
|
|
2166
|
+
// Prevent infinite recursion from circular eager
|
|
2167
|
+
// chains (e.g. A→B→C→A). Each branch maintains its
|
|
2168
|
+
// own visited set so parallel branches don't interfere.
|
|
2169
|
+
if (relation.isEager) {
|
|
2170
|
+
const targetEntity = relation.inverseEntityMetadata.tablePath;
|
|
2171
|
+
if (this.eagerLoadChain.has(targetEntity))
|
|
2172
|
+
return;
|
|
2173
|
+
}
|
|
2174
|
+
const relationTarget = relation.inverseEntityMetadata.target;
|
|
2175
|
+
const relationAlias = relation.inverseEntityMetadata.targetName;
|
|
2176
|
+
const queryBuilder = this.createQueryBuilder(queryRunner)
|
|
2177
|
+
.select(relationAlias)
|
|
2178
|
+
.from(relationTarget, relationAlias);
|
|
2179
|
+
// Propagate eager load chain with current entity
|
|
2180
|
+
// added, so the child detects cycles in its branch
|
|
2181
|
+
if (relation.isEager) {
|
|
2182
|
+
queryBuilder.eagerLoadChain = new Set(this.eagerLoadChain);
|
|
2183
|
+
queryBuilder.eagerLoadChain.add(relation.entityMetadata.tablePath);
|
|
2184
|
+
}
|
|
2185
|
+
queryBuilder.setFindOptions({
|
|
2186
|
+
select: this.findOptions.select
|
|
2187
|
+
? OrmUtils_1.OrmUtils.deepValue(this.findOptions.select, relation.propertyPath)
|
|
2188
|
+
: undefined,
|
|
2189
|
+
order: this.findOptions.order
|
|
2190
|
+
? OrmUtils_1.OrmUtils.deepValue(this.findOptions.order, relation.propertyPath)
|
|
2191
|
+
: undefined,
|
|
2192
|
+
relations: this.findOptions.relations
|
|
2193
|
+
? OrmUtils_1.OrmUtils.deepValue(this.findOptions.relations, relation.propertyPath)
|
|
2194
|
+
: undefined,
|
|
2195
|
+
withDeleted: this.findOptions.withDeleted,
|
|
2196
|
+
relationLoadStrategy: this.findOptions.relationLoadStrategy,
|
|
2197
|
+
loadEagerRelations: this.findOptions.loadEagerRelations,
|
|
2198
|
+
});
|
|
2199
|
+
if (entities.length > 0) {
|
|
2200
|
+
const relatedEntityGroups = await queryStrategyRelationIdLoader.loadManyToManyRelationIdsAndGroup(relation, entities, undefined, queryBuilder);
|
|
2201
|
+
entities.forEach((entity) => {
|
|
2202
|
+
const relatedEntityGroup = relatedEntityGroups.find((group) => group.entity === entity);
|
|
2203
|
+
if (relatedEntityGroup) {
|
|
2204
|
+
const value = relatedEntityGroup.related === undefined
|
|
2205
|
+
? null
|
|
2206
|
+
: relatedEntityGroup.related;
|
|
2207
|
+
relation.setEntityValue(entity, value);
|
|
2208
|
+
}
|
|
2209
|
+
});
|
|
2210
|
+
}
|
|
2211
|
+
};
|
|
2212
|
+
// Avoid concurrent queries on the same pg client; see #12238.
|
|
2213
|
+
// CockroachDB uses the pg package over a single connection too.
|
|
2214
|
+
const driverType = this.dataSource.options.type;
|
|
2215
|
+
if (driverType === "postgres" || driverType === "cockroachdb") {
|
|
2216
|
+
for (const relation of this.relationMetadatas) {
|
|
2217
|
+
await loadRelation(relation);
|
|
2218
|
+
}
|
|
2219
|
+
}
|
|
2220
|
+
else {
|
|
2221
|
+
await Promise.all(this.relationMetadatas.map(loadRelation));
|
|
2222
|
+
}
|
|
2223
|
+
}
|
|
2224
|
+
return {
|
|
2225
|
+
raw: rawResults,
|
|
2226
|
+
entities: entities,
|
|
2227
|
+
};
|
|
2228
|
+
}
|
|
2229
|
+
createOrderByCombinedWithSelectExpression(parentAlias) {
|
|
2230
|
+
// if table has a default order then apply it
|
|
2231
|
+
const orderBys = this.expressionMap.allOrderBys;
|
|
2232
|
+
const selectString = Object.keys(orderBys)
|
|
2233
|
+
.map((orderCriteria) => {
|
|
2234
|
+
if (orderCriteria.indexOf(".") !== -1) {
|
|
2235
|
+
const criteriaParts = orderCriteria.split(".");
|
|
2236
|
+
const aliasName = criteriaParts[0];
|
|
2237
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
2238
|
+
const alias = this.expressionMap.findAliasByName(aliasName);
|
|
2239
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath) ??
|
|
2240
|
+
alias.metadata.findColumnWithDatabaseName(propertyPath);
|
|
2241
|
+
const databaseName = column
|
|
2242
|
+
? column.databaseName
|
|
2243
|
+
: propertyPath;
|
|
2244
|
+
return (this.escape(parentAlias) +
|
|
2245
|
+
"." +
|
|
2246
|
+
this.escape(DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, aliasName, databaseName)));
|
|
2247
|
+
}
|
|
2248
|
+
else {
|
|
2249
|
+
if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
|
|
2250
|
+
select.aliasName === orderCriteria))
|
|
2251
|
+
return (this.escape(parentAlias) +
|
|
2252
|
+
"." +
|
|
2253
|
+
this.escape(orderCriteria));
|
|
2254
|
+
return "";
|
|
2255
|
+
}
|
|
2256
|
+
})
|
|
2257
|
+
.join(", ");
|
|
2258
|
+
const orderByObject = {};
|
|
2259
|
+
Object.keys(orderBys).forEach((orderCriteria) => {
|
|
2260
|
+
if (orderCriteria.indexOf(".") !== -1) {
|
|
2261
|
+
const criteriaParts = orderCriteria.split(".");
|
|
2262
|
+
const aliasName = criteriaParts[0];
|
|
2263
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
2264
|
+
const alias = this.expressionMap.findAliasByName(aliasName);
|
|
2265
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath) ??
|
|
2266
|
+
alias.metadata.findColumnWithDatabaseName(propertyPath);
|
|
2267
|
+
const databaseName = column ? column.databaseName : propertyPath;
|
|
2268
|
+
orderByObject[this.escape(parentAlias) +
|
|
2269
|
+
"." +
|
|
2270
|
+
this.escape(DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, undefined, aliasName, databaseName))] = orderBys[orderCriteria];
|
|
2271
|
+
}
|
|
2272
|
+
else {
|
|
2273
|
+
if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
|
|
2274
|
+
select.aliasName === orderCriteria)) {
|
|
2275
|
+
orderByObject[this.escape(parentAlias) +
|
|
2276
|
+
"." +
|
|
2277
|
+
this.escape(orderCriteria)] = orderBys[orderCriteria];
|
|
2278
|
+
}
|
|
2279
|
+
else {
|
|
2280
|
+
orderByObject[orderCriteria] = orderBys[orderCriteria];
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
});
|
|
2284
|
+
return [selectString, orderByObject];
|
|
2285
|
+
}
|
|
2286
|
+
/**
|
|
2287
|
+
* Loads raw results from the database.
|
|
2288
|
+
*
|
|
2289
|
+
* @param queryRunner
|
|
2290
|
+
*/
|
|
2291
|
+
async loadRawResults(queryRunner) {
|
|
2292
|
+
const [sql, parameters] = this.getQueryAndParameters();
|
|
2293
|
+
const queryId = sql +
|
|
2294
|
+
" -- PARAMETERS: " +
|
|
2295
|
+
JSON.stringify(parameters, (_, value) => typeof value === "bigint" ? value.toString() : value);
|
|
2296
|
+
const cacheOptions = typeof this.dataSource.options.cache === "object"
|
|
2297
|
+
? this.dataSource.options.cache
|
|
2298
|
+
: {};
|
|
2299
|
+
let savedQueryResultCacheOptions = undefined;
|
|
2300
|
+
const isCachingEnabled = cacheOptions.alwaysEnabled
|
|
2301
|
+
? this.expressionMap.cache !== false
|
|
2302
|
+
: this.expressionMap.cache === true;
|
|
2303
|
+
let cacheError = false;
|
|
2304
|
+
if (this.dataSource.queryResultCache && isCachingEnabled) {
|
|
2305
|
+
try {
|
|
2306
|
+
savedQueryResultCacheOptions =
|
|
2307
|
+
await this.dataSource.queryResultCache.getFromCache({
|
|
2308
|
+
identifier: this.expressionMap.cacheId,
|
|
2309
|
+
query: queryId,
|
|
2310
|
+
duration: this.expressionMap.cacheDuration ||
|
|
2311
|
+
(cacheOptions.duration ?? 1000),
|
|
2312
|
+
}, queryRunner);
|
|
2313
|
+
if (savedQueryResultCacheOptions &&
|
|
2314
|
+
!this.dataSource.queryResultCache.isExpired(savedQueryResultCacheOptions)) {
|
|
2315
|
+
return JSON.parse(savedQueryResultCacheOptions.result);
|
|
2316
|
+
}
|
|
2317
|
+
}
|
|
2318
|
+
catch (error) {
|
|
2319
|
+
if (!cacheOptions.ignoreErrors) {
|
|
2320
|
+
throw error;
|
|
2321
|
+
}
|
|
2322
|
+
cacheError = true;
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
const results = await queryRunner.query(sql, parameters, true);
|
|
2326
|
+
if (!cacheError &&
|
|
2327
|
+
this.dataSource.queryResultCache &&
|
|
2328
|
+
isCachingEnabled) {
|
|
2329
|
+
try {
|
|
2330
|
+
await this.dataSource.queryResultCache.storeInCache({
|
|
2331
|
+
identifier: this.expressionMap.cacheId,
|
|
2332
|
+
query: queryId,
|
|
2333
|
+
time: Date.now(),
|
|
2334
|
+
duration: this.expressionMap.cacheDuration ||
|
|
2335
|
+
(cacheOptions.duration ?? 1000),
|
|
2336
|
+
result: JSON.stringify(results.records),
|
|
2337
|
+
}, savedQueryResultCacheOptions, queryRunner);
|
|
2338
|
+
}
|
|
2339
|
+
catch (error) {
|
|
2340
|
+
if (!cacheOptions.ignoreErrors) {
|
|
2341
|
+
throw error;
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
}
|
|
2345
|
+
return results.records;
|
|
2346
|
+
}
|
|
2347
|
+
/**
|
|
2348
|
+
* Merges into expression map given expression map properties.
|
|
2349
|
+
*
|
|
2350
|
+
* @param expressionMap
|
|
2351
|
+
*/
|
|
2352
|
+
mergeExpressionMap(expressionMap) {
|
|
2353
|
+
ObjectUtils_1.ObjectUtils.assign(this.expressionMap, expressionMap);
|
|
2354
|
+
return this;
|
|
2355
|
+
}
|
|
2356
|
+
/**
|
|
2357
|
+
* Creates a query builder used to execute sql queries inside this query builder.
|
|
2358
|
+
*/
|
|
2359
|
+
obtainQueryRunner() {
|
|
2360
|
+
return (this.queryRunner ??
|
|
2361
|
+
this.dataSource.createQueryRunner(this.dataSource.defaultReplicationModeForReads()));
|
|
2362
|
+
}
|
|
2363
|
+
buildSelect(select, metadata, alias, embedPrefix) {
|
|
2364
|
+
for (const key in select) {
|
|
2365
|
+
if (select[key] === undefined || select[key] === false)
|
|
2366
|
+
continue;
|
|
2367
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2368
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2369
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2370
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2371
|
+
if (!embed && !column && !relation)
|
|
2372
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2373
|
+
if (column) {
|
|
2374
|
+
this.selects.push(alias + "." + propertyPath);
|
|
2375
|
+
// this.addSelect(alias + "." + propertyPath);
|
|
2376
|
+
}
|
|
2377
|
+
else if (embed) {
|
|
2378
|
+
this.buildSelect(select[key], metadata, alias, propertyPath);
|
|
2379
|
+
// } else if (relation) {
|
|
2380
|
+
// const joinAlias = alias + "_" + relation.propertyName;
|
|
2381
|
+
// const existJoin = this.joins.find(join => join.alias === joinAlias);
|
|
2382
|
+
// if (!existJoin) {
|
|
2383
|
+
// this.joins.push({
|
|
2384
|
+
// type: "left",
|
|
2385
|
+
// select: false,
|
|
2386
|
+
// alias: joinAlias,
|
|
2387
|
+
// parentAlias: alias,
|
|
2388
|
+
// relationMetadata: relation
|
|
2389
|
+
// });
|
|
2390
|
+
// }
|
|
2391
|
+
// this.buildOrder(select[key] as FindOptionsOrder<any>, relation.inverseEntityMetadata, joinAlias);
|
|
2392
|
+
}
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
getRelationJoinType(relation, parentJoinType = "inner") {
|
|
2396
|
+
return FindOptionsUtils_1.FindOptionsUtils.getRelationJoinType(relation, this.expressionMap.withDeleted, parentJoinType);
|
|
2397
|
+
}
|
|
2398
|
+
buildRelations(relations, selection, metadata, alias, embedPrefix, parentJoinType = "inner") {
|
|
2399
|
+
if (!relations)
|
|
2400
|
+
return;
|
|
2401
|
+
Object.keys(relations).forEach((relationName) => {
|
|
2402
|
+
const relationValue = relations[relationName];
|
|
2403
|
+
const propertyPath = embedPrefix
|
|
2404
|
+
? embedPrefix + "." + relationName
|
|
2405
|
+
: relationName;
|
|
2406
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2407
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2408
|
+
if (!embed && !relation)
|
|
2409
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2410
|
+
if (embed) {
|
|
2411
|
+
this.buildRelations(relationValue, typeof selection === "object"
|
|
2412
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
|
|
2413
|
+
: undefined, metadata, alias, propertyPath);
|
|
2414
|
+
}
|
|
2415
|
+
else if (relation) {
|
|
2416
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2417
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, { joiner: "__" }, alias, joinAlias);
|
|
2418
|
+
const joinType = this.getRelationJoinType(relation, parentJoinType);
|
|
2419
|
+
if (relationValue === true ||
|
|
2420
|
+
typeof relationValue === "object") {
|
|
2421
|
+
if (this.expressionMap.relationLoadStrategy === "query") {
|
|
2422
|
+
this.concatRelationMetadata(relation);
|
|
2423
|
+
}
|
|
2424
|
+
else {
|
|
2425
|
+
this.joins.push({
|
|
2426
|
+
type: joinType,
|
|
2427
|
+
select: true,
|
|
2428
|
+
selection: selection &&
|
|
2429
|
+
typeof selection[relationName] === "object"
|
|
2430
|
+
? selection[relationName]
|
|
2431
|
+
: undefined,
|
|
2432
|
+
alias: joinAlias,
|
|
2433
|
+
parentAlias: alias,
|
|
2434
|
+
relationMetadata: relation,
|
|
2435
|
+
});
|
|
2436
|
+
if (selection &&
|
|
2437
|
+
typeof selection[relationName] === "object") {
|
|
2438
|
+
this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
|
|
2439
|
+
}
|
|
2440
|
+
}
|
|
2441
|
+
}
|
|
2442
|
+
if (typeof relationValue === "object" &&
|
|
2443
|
+
this.expressionMap.relationLoadStrategy === "join") {
|
|
2444
|
+
this.buildRelations(relationValue, typeof selection === "object"
|
|
2445
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
|
|
2446
|
+
: undefined, relation.inverseEntityMetadata, joinAlias, undefined, joinType);
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
buildEagerRelations(relations, selection, metadata, alias, embedPrefix) {
|
|
2452
|
+
if (!relations)
|
|
2453
|
+
return;
|
|
2454
|
+
Object.keys(relations).forEach((relationName) => {
|
|
2455
|
+
const relationValue = relations[relationName];
|
|
2456
|
+
const propertyPath = embedPrefix
|
|
2457
|
+
? embedPrefix + "." + relationName
|
|
2458
|
+
: relationName;
|
|
2459
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2460
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2461
|
+
if (!embed && !relation)
|
|
2462
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2463
|
+
if (embed) {
|
|
2464
|
+
this.buildEagerRelations(relationValue, typeof selection === "object"
|
|
2465
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
|
|
2466
|
+
: undefined, metadata, alias, propertyPath);
|
|
2467
|
+
}
|
|
2468
|
+
else if (relation) {
|
|
2469
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2470
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, { joiner: "__" }, alias, joinAlias);
|
|
2471
|
+
if ((relationValue === true ||
|
|
2472
|
+
typeof relationValue === "object") &&
|
|
2473
|
+
this.expressionMap.relationLoadStrategy === "join") {
|
|
2474
|
+
// Determine this relation's join type to propagate to eager children
|
|
2475
|
+
const parentJoin = this.joins.find((j) => j.alias === joinAlias);
|
|
2476
|
+
const parentJoinType = parentJoin?.type ?? "inner";
|
|
2477
|
+
relation.inverseEntityMetadata.eagerRelations.forEach((eagerRelation) => {
|
|
2478
|
+
let eagerRelationJoinAlias = joinAlias +
|
|
2479
|
+
"_" +
|
|
2480
|
+
eagerRelation.propertyPath.replace(".", "_");
|
|
2481
|
+
eagerRelationJoinAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, { joiner: "__" }, joinAlias, eagerRelationJoinAlias);
|
|
2482
|
+
const existJoin = this.joins.find((join) => join.alias === eagerRelationJoinAlias);
|
|
2483
|
+
if (!existJoin) {
|
|
2484
|
+
this.joins.push({
|
|
2485
|
+
type: this.getRelationJoinType(eagerRelation, parentJoinType),
|
|
2486
|
+
select: true,
|
|
2487
|
+
alias: eagerRelationJoinAlias,
|
|
2488
|
+
parentAlias: joinAlias,
|
|
2489
|
+
selection: undefined,
|
|
2490
|
+
relationMetadata: eagerRelation,
|
|
2491
|
+
});
|
|
2492
|
+
}
|
|
2493
|
+
if (selection &&
|
|
2494
|
+
typeof selection[relationName] === "object") {
|
|
2495
|
+
this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
|
|
2496
|
+
}
|
|
2497
|
+
});
|
|
2498
|
+
}
|
|
2499
|
+
if (typeof relationValue === "object") {
|
|
2500
|
+
this.buildEagerRelations(relationValue, typeof selection === "object"
|
|
2501
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
|
|
2502
|
+
: undefined, relation.inverseEntityMetadata, joinAlias, undefined);
|
|
2503
|
+
}
|
|
2504
|
+
}
|
|
2505
|
+
});
|
|
2506
|
+
}
|
|
2507
|
+
buildOrder(order, metadata, alias, embedPrefix) {
|
|
2508
|
+
for (const key in order) {
|
|
2509
|
+
if (order[key] === undefined)
|
|
2510
|
+
continue;
|
|
2511
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2512
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2513
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2514
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2515
|
+
if (!embed && !column && !relation)
|
|
2516
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2517
|
+
if (column) {
|
|
2518
|
+
let direction = typeof order[key] === "object"
|
|
2519
|
+
? order[key].direction
|
|
2520
|
+
: order[key];
|
|
2521
|
+
direction =
|
|
2522
|
+
direction === "DESC" ||
|
|
2523
|
+
direction === "desc" ||
|
|
2524
|
+
direction === -1
|
|
2525
|
+
? "DESC"
|
|
2526
|
+
: "ASC";
|
|
2527
|
+
let nulls = typeof order[key] === "object"
|
|
2528
|
+
? order[key].nulls
|
|
2529
|
+
: undefined;
|
|
2530
|
+
nulls =
|
|
2531
|
+
nulls?.toLowerCase() === "first"
|
|
2532
|
+
? "NULLS FIRST"
|
|
2533
|
+
: nulls?.toLowerCase() === "last"
|
|
2534
|
+
? "NULLS LAST"
|
|
2535
|
+
: undefined;
|
|
2536
|
+
const aliasPath = `${alias}.${propertyPath}`;
|
|
2537
|
+
// const selection = this.expressionMap.selects.find(
|
|
2538
|
+
// (s) => s.selection === aliasPath,
|
|
2539
|
+
// )
|
|
2540
|
+
// if (selection) {
|
|
2541
|
+
// // this is not building correctly now???
|
|
2542
|
+
// aliasPath = this.escape(
|
|
2543
|
+
// DriverUtils.buildAlias(
|
|
2544
|
+
// this.dataSource.driver,
|
|
2545
|
+
// undefined,
|
|
2546
|
+
// alias,
|
|
2547
|
+
// column.databaseName,
|
|
2548
|
+
// ),
|
|
2549
|
+
// )
|
|
2550
|
+
// // selection.aliasName = aliasPath
|
|
2551
|
+
// } else {
|
|
2552
|
+
// if (column.isVirtualProperty && column.query) {
|
|
2553
|
+
// aliasPath = `(${column.query(alias)})`
|
|
2554
|
+
// }
|
|
2555
|
+
// }
|
|
2556
|
+
// console.log("add sort", selection, aliasPath, direction, nulls)
|
|
2557
|
+
this.addOrderBy(aliasPath, direction, nulls);
|
|
2558
|
+
// this.orderBys.push({ alias: alias + "." + propertyPath, direction, nulls });
|
|
2559
|
+
}
|
|
2560
|
+
else if (embed) {
|
|
2561
|
+
this.buildOrder(order[key], metadata, alias, propertyPath);
|
|
2562
|
+
}
|
|
2563
|
+
else if (relation) {
|
|
2564
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2565
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, { joiner: "__" }, alias, joinAlias);
|
|
2566
|
+
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
2567
|
+
if (!existJoin) {
|
|
2568
|
+
const parentJoin = this.joins.find((j) => j.alias === alias);
|
|
2569
|
+
this.joins.push({
|
|
2570
|
+
type: this.getRelationJoinType(relation, parentJoin?.type ?? "inner"),
|
|
2571
|
+
select: false,
|
|
2572
|
+
alias: joinAlias,
|
|
2573
|
+
parentAlias: alias,
|
|
2574
|
+
selection: undefined,
|
|
2575
|
+
relationMetadata: relation,
|
|
2576
|
+
});
|
|
2577
|
+
}
|
|
2578
|
+
this.buildOrder(order[key], relation.inverseEntityMetadata, joinAlias);
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
}
|
|
2582
|
+
buildWhere(where, metadata, alias, embedPrefix) {
|
|
2583
|
+
let condition = "";
|
|
2584
|
+
if (Array.isArray(where)) {
|
|
2585
|
+
if (where.length) {
|
|
2586
|
+
condition = where
|
|
2587
|
+
.map((whereItem) => {
|
|
2588
|
+
return this.buildWhere(whereItem, metadata, alias, embedPrefix);
|
|
2589
|
+
})
|
|
2590
|
+
.filter((condition) => !!condition)
|
|
2591
|
+
.map((condition) => "(" + condition + ")")
|
|
2592
|
+
.join(" OR ");
|
|
2593
|
+
}
|
|
2594
|
+
}
|
|
2595
|
+
else {
|
|
2596
|
+
const andConditions = [];
|
|
2597
|
+
for (const key in where) {
|
|
2598
|
+
let parameterValue = where[key];
|
|
2599
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2600
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2601
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2602
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2603
|
+
if (!embed && !column && !relation) {
|
|
2604
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2605
|
+
}
|
|
2606
|
+
if (parameterValue === undefined) {
|
|
2607
|
+
const undefinedBehavior = this.dataSource.options.invalidWhereValuesBehavior
|
|
2608
|
+
?.undefined ?? "throw";
|
|
2609
|
+
if (undefinedBehavior === "throw") {
|
|
2610
|
+
throw new error_1.TypeORMError(`Undefined value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2611
|
+
`Set 'invalidWhereValuesBehavior.undefined' to 'ignore' in connection options to skip properties with undefined values.`);
|
|
2612
|
+
}
|
|
2613
|
+
continue;
|
|
2614
|
+
}
|
|
2615
|
+
if (parameterValue === null) {
|
|
2616
|
+
const nullBehavior = this.dataSource.options.invalidWhereValuesBehavior
|
|
2617
|
+
?.null ?? "throw";
|
|
2618
|
+
if (nullBehavior === "ignore") {
|
|
2619
|
+
continue;
|
|
2620
|
+
}
|
|
2621
|
+
else if (nullBehavior === "throw") {
|
|
2622
|
+
throw new error_1.TypeORMError(`Null value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2623
|
+
`To match with SQL NULL, the IsNull() operator must be used. ` +
|
|
2624
|
+
`Set 'invalidWhereValuesBehavior.null' to 'ignore' or 'sql-null' in connection options to skip or handle null values.`);
|
|
2625
|
+
}
|
|
2626
|
+
// 'sql-null' behavior continues to the next logic
|
|
2627
|
+
}
|
|
2628
|
+
if (column) {
|
|
2629
|
+
let aliasPath = `${alias}.${propertyPath}`;
|
|
2630
|
+
if (column.isVirtualProperty && column.query) {
|
|
2631
|
+
aliasPath = `(${column.query(this.escape(alias))})`;
|
|
2632
|
+
}
|
|
2633
|
+
if (parameterValue === null) {
|
|
2634
|
+
andConditions.push(`${aliasPath} IS NULL`);
|
|
2635
|
+
continue;
|
|
2636
|
+
}
|
|
2637
|
+
// const parameterName = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
|
|
2638
|
+
// todo: we need to handle other operators as well?
|
|
2639
|
+
if (InstanceChecker_1.InstanceChecker.isEqualOperator(where[key])) {
|
|
2640
|
+
parameterValue = where[key].value;
|
|
2641
|
+
}
|
|
2642
|
+
if (column.transformer) {
|
|
2643
|
+
parameterValue = ApplyValueTransformers_1.ApplyValueTransformers.transformTo(column.transformer, parameterValue);
|
|
2644
|
+
}
|
|
2645
|
+
// MSSQL requires parameters to carry extra type information
|
|
2646
|
+
if (this.dataSource.driver.options.type === "mssql") {
|
|
2647
|
+
parameterValue = this.dataSource.driver.parametrizeValues(column, parameterValue);
|
|
2648
|
+
}
|
|
2649
|
+
andConditions.push(this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue)));
|
|
2650
|
+
}
|
|
2651
|
+
else if (embed) {
|
|
2652
|
+
const condition = this.buildWhere(where[key], metadata, alias, propertyPath);
|
|
2653
|
+
if (condition)
|
|
2654
|
+
andConditions.push(condition);
|
|
2655
|
+
}
|
|
2656
|
+
else if (relation) {
|
|
2657
|
+
if (where[key] === null) {
|
|
2658
|
+
const nullBehavior = this.dataSource.options.invalidWhereValuesBehavior
|
|
2659
|
+
?.null ?? "throw";
|
|
2660
|
+
if (nullBehavior === "sql-null") {
|
|
2661
|
+
andConditions.push(`${alias}.${propertyPath} IS NULL`);
|
|
2662
|
+
}
|
|
2663
|
+
else if (nullBehavior === "throw") {
|
|
2664
|
+
throw new error_1.TypeORMError(`Null value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2665
|
+
`Set 'invalidWhereValuesBehavior.null' to 'ignore' or 'sql-null' in connection options to skip or handle null values.`);
|
|
2666
|
+
}
|
|
2667
|
+
// 'ignore' behavior falls through to continue
|
|
2668
|
+
continue;
|
|
2669
|
+
}
|
|
2670
|
+
// if all properties of where are undefined we don't need to join anything
|
|
2671
|
+
// this can happen when user defines map with conditional queries inside
|
|
2672
|
+
if (typeof where[key] === "object") {
|
|
2673
|
+
const whereKeys = Object.keys(where[key]);
|
|
2674
|
+
// empty object — no predicates to apply, skip the join
|
|
2675
|
+
if (whereKeys.length === 0) {
|
|
2676
|
+
continue;
|
|
2677
|
+
}
|
|
2678
|
+
const allUndefined = whereKeys.every((k) => where[key][k] === undefined);
|
|
2679
|
+
if (allUndefined) {
|
|
2680
|
+
const undefinedBehavior = this.dataSource.options
|
|
2681
|
+
.invalidWhereValuesBehavior?.undefined ??
|
|
2682
|
+
"throw";
|
|
2683
|
+
if (undefinedBehavior === "throw") {
|
|
2684
|
+
throw new error_1.TypeORMError(`Undefined value encountered in nested relation '${alias}.${key}' of a where condition. ` +
|
|
2685
|
+
`All properties of the nested object are undefined. ` +
|
|
2686
|
+
`Set 'invalidWhereValuesBehavior.undefined' to 'ignore' in connection options to skip properties with undefined values.`);
|
|
2687
|
+
}
|
|
2688
|
+
continue;
|
|
2689
|
+
}
|
|
2690
|
+
}
|
|
2691
|
+
if (InstanceChecker_1.InstanceChecker.isFindOperator(where[key])) {
|
|
2692
|
+
if (where[key].type === "moreThan" ||
|
|
2693
|
+
where[key].type === "lessThan" ||
|
|
2694
|
+
where[key].type === "moreThanOrEqual" ||
|
|
2695
|
+
where[key].type === "lessThanOrEqual") {
|
|
2696
|
+
let sqlOperator = "";
|
|
2697
|
+
if (where[key].type === "moreThan") {
|
|
2698
|
+
sqlOperator = ">";
|
|
2699
|
+
}
|
|
2700
|
+
else if (where[key].type === "lessThan") {
|
|
2701
|
+
sqlOperator = "<";
|
|
2702
|
+
}
|
|
2703
|
+
else if (where[key].type === "moreThanOrEqual") {
|
|
2704
|
+
sqlOperator = ">=";
|
|
2705
|
+
}
|
|
2706
|
+
else if (where[key].type === "lessThanOrEqual") {
|
|
2707
|
+
sqlOperator = "<=";
|
|
2708
|
+
}
|
|
2709
|
+
// basically relation count functionality
|
|
2710
|
+
const qb = this.subQuery();
|
|
2711
|
+
if (relation.isManyToManyOwner) {
|
|
2712
|
+
qb.select("COUNT(*)")
|
|
2713
|
+
.from(relation.joinTableName, relation.joinTableName)
|
|
2714
|
+
.where(relation.joinColumns
|
|
2715
|
+
.map((column) => {
|
|
2716
|
+
return `${relation.joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2717
|
+
.propertyName}`;
|
|
2718
|
+
})
|
|
2719
|
+
.join(" AND "));
|
|
2720
|
+
}
|
|
2721
|
+
else if (relation.isManyToManyNotOwner) {
|
|
2722
|
+
qb.select("COUNT(*)")
|
|
2723
|
+
.from(relation.inverseRelation.joinTableName, relation.inverseRelation.joinTableName)
|
|
2724
|
+
.where(relation
|
|
2725
|
+
.inverseRelation.inverseJoinColumns.map((column) => {
|
|
2726
|
+
return `${relation
|
|
2727
|
+
.inverseRelation
|
|
2728
|
+
.joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2729
|
+
.propertyName}`;
|
|
2730
|
+
})
|
|
2731
|
+
.join(" AND "));
|
|
2732
|
+
}
|
|
2733
|
+
else if (relation.isOneToMany) {
|
|
2734
|
+
qb.select("COUNT(*)")
|
|
2735
|
+
.from(relation.inverseEntityMetadata.target, relation.inverseEntityMetadata
|
|
2736
|
+
.tableName)
|
|
2737
|
+
.where(relation
|
|
2738
|
+
.inverseRelation.joinColumns.map((column) => {
|
|
2739
|
+
return `${relation
|
|
2740
|
+
.inverseEntityMetadata
|
|
2741
|
+
.tableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2742
|
+
.propertyName}`;
|
|
2743
|
+
})
|
|
2744
|
+
.join(" AND "));
|
|
2745
|
+
}
|
|
2746
|
+
else {
|
|
2747
|
+
throw new Error(`This relation isn't supported by given find operator`);
|
|
2748
|
+
}
|
|
2749
|
+
// this
|
|
2750
|
+
// .addSelect(qb.getSql(), relation.propertyAliasName + "_cnt")
|
|
2751
|
+
// .andWhere(this.escape(relation.propertyAliasName + "_cnt") + " " + sqlOperator + " " + parseInt(where[key].value));
|
|
2752
|
+
this.andWhere(qb.getSql() +
|
|
2753
|
+
" " +
|
|
2754
|
+
sqlOperator +
|
|
2755
|
+
" " +
|
|
2756
|
+
parseInt(where[key].value));
|
|
2757
|
+
}
|
|
2758
|
+
else {
|
|
2759
|
+
if (relation.isManyToOne ||
|
|
2760
|
+
(relation.isOneToOne &&
|
|
2761
|
+
relation.isOneToOneOwner)) {
|
|
2762
|
+
const aliasPath = `${alias}.${propertyPath}`;
|
|
2763
|
+
andConditions.push(this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, where[key])));
|
|
2764
|
+
}
|
|
2765
|
+
else {
|
|
2766
|
+
throw new Error(`This relation isn't supported by given find operator`);
|
|
2767
|
+
}
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
else {
|
|
2771
|
+
// const joinAlias = alias + "_" + relation.propertyName;
|
|
2772
|
+
let joinAlias = alias +
|
|
2773
|
+
"_" +
|
|
2774
|
+
relation.propertyPath.replace(".", "_");
|
|
2775
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.dataSource.driver, { joiner: "__" }, alias, joinAlias);
|
|
2776
|
+
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
2777
|
+
if (!existJoin) {
|
|
2778
|
+
const parentJoin = this.joins.find((j) => j.alias === alias);
|
|
2779
|
+
this.joins.push({
|
|
2780
|
+
type: this.getRelationJoinType(relation, parentJoin?.type ?? "inner"),
|
|
2781
|
+
select: false,
|
|
2782
|
+
selection: undefined,
|
|
2783
|
+
alias: joinAlias,
|
|
2784
|
+
parentAlias: alias,
|
|
2785
|
+
relationMetadata: relation,
|
|
2786
|
+
});
|
|
2787
|
+
}
|
|
2788
|
+
const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
|
|
2789
|
+
if (condition) {
|
|
2790
|
+
andConditions.push(condition);
|
|
2791
|
+
}
|
|
2792
|
+
}
|
|
2793
|
+
}
|
|
2794
|
+
}
|
|
2795
|
+
condition = andConditions.length
|
|
2796
|
+
? "(" + andConditions.join(") AND (") + ")"
|
|
2797
|
+
: andConditions.join(" AND ");
|
|
2798
|
+
}
|
|
2799
|
+
return condition.length ? "(" + condition + ")" : condition;
|
|
2800
|
+
}
|
|
2801
|
+
}
|
|
2802
|
+
exports.SelectQueryBuilder = SelectQueryBuilder;
|
|
2803
|
+
//# sourceMappingURL=SelectQueryBuilder.js.map
|