typeorm 0.2.28 → 0.2.32

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.
Files changed (1178) hide show
  1. package/README.md +54 -49
  2. package/browser/cache/QueryResultCache.js +1 -1
  3. package/browser/cache/QueryResultCacheOptions.js +1 -1
  4. package/browser/common/DeepPartial.js +1 -1
  5. package/browser/common/EntityFieldsNames.d.ts +6 -0
  6. package/browser/common/EntityFieldsNames.js +3 -0
  7. package/browser/common/EntityFieldsNames.js.map +1 -0
  8. package/browser/common/EntityTarget.js +1 -1
  9. package/browser/common/ObjectLiteral.js +1 -1
  10. package/browser/common/ObjectType.js +1 -1
  11. package/browser/connection/BaseConnectionOptions.js +1 -1
  12. package/browser/connection/Connection.d.ts +2 -2
  13. package/browser/connection/Connection.js +4 -2
  14. package/browser/connection/Connection.js.map +1 -1
  15. package/browser/connection/ConnectionMetadataBuilder.js +5 -5
  16. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  17. package/browser/connection/ConnectionOptions.js +1 -1
  18. package/browser/connection/ConnectionOptionsReader.d.ts +3 -3
  19. package/browser/connection/ConnectionOptionsReader.js +30 -30
  20. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  24. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  25. package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
  26. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  27. package/browser/decorator/entity/ChildEntity.js +1 -1
  28. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  29. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  30. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  31. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  32. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  33. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  34. package/browser/decorator/options/ColumnOptions.js +1 -1
  35. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  36. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  37. package/browser/decorator/options/EntityOptions.js +1 -1
  38. package/browser/decorator/options/IndexOptions.js +1 -1
  39. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  40. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  41. package/browser/decorator/options/JoinTableOptions.js +1 -1
  42. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  43. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  44. package/browser/decorator/options/RelationOptions.d.ts +10 -0
  45. package/browser/decorator/options/RelationOptions.js +1 -1
  46. package/browser/decorator/options/RelationOptions.js.map +1 -1
  47. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  48. package/browser/decorator/options/TransactionOptions.js +1 -1
  49. package/browser/decorator/options/ValueTransformer.js +1 -1
  50. package/browser/decorator/options/ViewColumnOptions.js +1 -1
  51. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  52. package/browser/decorator/relations/ManyToOne.d.ts +6 -6
  53. package/browser/decorator/relations/ManyToOne.js +5 -5
  54. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  55. package/browser/decorator/relations/OneToMany.d.ts +3 -2
  56. package/browser/decorator/relations/OneToMany.js +4 -3
  57. package/browser/decorator/relations/OneToMany.js.map +1 -1
  58. package/browser/decorator/transaction/Transaction.d.ts +1 -1
  59. package/browser/decorator/transaction/Transaction.js +6 -6
  60. package/browser/decorator/transaction/Transaction.js.map +1 -1
  61. package/browser/decorator/tree/Tree.d.ts +2 -1
  62. package/browser/decorator/tree/Tree.js +3 -2
  63. package/browser/decorator/tree/Tree.js.map +1 -1
  64. package/browser/driver/Driver.d.ts +1 -1
  65. package/browser/driver/Driver.js +1 -1
  66. package/browser/driver/Driver.js.map +1 -1
  67. package/browser/driver/DriverFactory.js.map +1 -1
  68. package/browser/driver/DriverUtils.d.ts +10 -0
  69. package/browser/driver/DriverUtils.js +99 -12
  70. package/browser/driver/DriverUtils.js.map +1 -1
  71. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +1 -1
  72. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  73. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +1 -1
  74. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  75. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  76. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +15 -6
  77. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  78. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  79. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +72 -11
  80. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  81. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  82. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +1 -1
  83. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  84. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  85. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +26 -2
  86. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  87. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  88. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -11
  89. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  90. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +1 -1
  91. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  92. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  93. package/browser/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  94. package/browser/driver/cockroachdb/CockroachDriver.js +6 -9
  95. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  96. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  97. package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  98. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  99. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  100. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  101. package/browser/driver/expo/ExpoQueryRunner.js +72 -14
  102. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  103. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  104. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  105. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  106. package/browser/driver/mongodb/MongoDriver.d.ts +8 -4
  107. package/browser/driver/mongodb/MongoDriver.js +26 -14
  108. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  109. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  110. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  111. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  112. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  113. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  114. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  115. package/browser/driver/mysql/MysqlDriver.d.ts +2 -2
  116. package/browser/driver/mysql/MysqlDriver.js +15 -14
  117. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  118. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  119. package/browser/driver/mysql/MysqlQueryRunner.js +118 -43
  120. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  121. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  122. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  123. package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  124. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  125. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  126. package/browser/driver/oracle/OracleDriver.d.ts +1 -1
  127. package/browser/driver/oracle/OracleDriver.js +28 -3
  128. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  129. package/browser/driver/oracle/OracleQueryRunner.js +53 -7
  130. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  131. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  132. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  133. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  134. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  135. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  136. package/browser/driver/postgres/PostgresDriver.js +63 -29
  137. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  138. package/browser/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  139. package/browser/driver/postgres/PostgresQueryRunner.js +335 -211
  140. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  141. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  142. package/browser/driver/react-native/ReactNativeDriver.js +1 -2
  143. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  144. package/browser/driver/sap/SapConnectionCredentialsOptions.js +1 -1
  145. package/browser/driver/sap/SapConnectionOptions.js +1 -1
  146. package/browser/driver/sap/SapDriver.d.ts +1 -1
  147. package/browser/driver/sap/SapDriver.js.map +1 -1
  148. package/browser/driver/sap/SapQueryRunner.js +58 -10
  149. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  150. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  151. package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
  152. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  153. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  154. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -1
  155. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  156. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -8
  157. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  158. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  159. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  160. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  161. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  162. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  163. package/browser/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  164. package/browser/driver/sqlserver/SqlServerDriver.js +33 -8
  165. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  166. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  167. package/browser/driver/sqlserver/SqlServerQueryRunner.js +166 -86
  168. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  169. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  170. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  171. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  172. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  173. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  174. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  175. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  176. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  177. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  178. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  179. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  180. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  181. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  182. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  183. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  184. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  185. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  186. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  187. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  188. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  189. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  190. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  191. package/browser/driver/types/ColumnTypes.js +1 -1
  192. package/browser/driver/types/ColumnTypes.js.map +1 -1
  193. package/browser/driver/types/DataTypeDefaults.js +1 -1
  194. package/browser/driver/types/DatabaseType.js +1 -1
  195. package/browser/driver/types/IsolationLevel.js +1 -1
  196. package/browser/driver/types/MappedColumnTypes.js +1 -1
  197. package/browser/driver/types/ReplicationMode.js +1 -1
  198. package/browser/entity-manager/EntityManager.d.ts +16 -2
  199. package/browser/entity-manager/EntityManager.js +5 -16
  200. package/browser/entity-manager/EntityManager.js.map +1 -1
  201. package/browser/entity-manager/MongoEntityManager.d.ts +1 -4
  202. package/browser/entity-manager/MongoEntityManager.js +53 -48
  203. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  204. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  205. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  206. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  207. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  208. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  209. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  210. package/browser/error/index.d.ts +61 -0
  211. package/browser/error/index.js +63 -0
  212. package/browser/error/index.js.map +1 -0
  213. package/browser/find-options/FindConditions.js +1 -1
  214. package/browser/find-options/FindManyOptions.js +1 -1
  215. package/browser/find-options/FindOneOptions.d.ts +10 -2
  216. package/browser/find-options/FindOneOptions.js +1 -1
  217. package/browser/find-options/FindOneOptions.js.map +1 -1
  218. package/browser/find-options/FindOperator.d.ts +25 -6
  219. package/browser/find-options/FindOperator.js +32 -6
  220. package/browser/find-options/FindOperator.js.map +1 -1
  221. package/browser/find-options/FindOperatorType.d.ts +1 -1
  222. package/browser/find-options/FindOperatorType.js +1 -1
  223. package/browser/find-options/FindOperatorType.js.map +1 -1
  224. package/browser/find-options/FindOptionsUtils.js +15 -2
  225. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  226. package/browser/find-options/JoinOptions.d.ts +16 -4
  227. package/browser/find-options/JoinOptions.js +1 -1
  228. package/browser/find-options/JoinOptions.js.map +1 -1
  229. package/browser/find-options/OrderByCondition.js +1 -1
  230. package/browser/find-options/operator/ILike.d.ts +6 -0
  231. package/browser/find-options/operator/ILike.js +10 -0
  232. package/browser/find-options/operator/ILike.js.map +1 -0
  233. package/browser/find-options/operator/Raw.d.ts +14 -2
  234. package/browser/find-options/operator/Raw.js +5 -6
  235. package/browser/find-options/operator/Raw.js.map +1 -1
  236. package/browser/index.d.ts +3 -1
  237. package/browser/index.js +25 -1
  238. package/browser/index.js.map +1 -1
  239. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  240. package/browser/logger/FileLogger.d.ts +2 -2
  241. package/browser/logger/Logger.d.ts +1 -1
  242. package/browser/logger/Logger.js +1 -1
  243. package/browser/logger/Logger.js.map +1 -1
  244. package/browser/logger/LoggerOptions.js +1 -1
  245. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  246. package/browser/metadata/ColumnMetadata.d.ts +1 -1
  247. package/browser/metadata/ColumnMetadata.js +23 -15
  248. package/browser/metadata/ColumnMetadata.js.map +1 -1
  249. package/browser/metadata/EmbeddedMetadata.js +2 -2
  250. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  251. package/browser/metadata/EntityMetadata.d.ts +5 -0
  252. package/browser/metadata/EntityMetadata.js +3 -2
  253. package/browser/metadata/EntityMetadata.js.map +1 -1
  254. package/browser/metadata/RelationMetadata.d.ts +15 -0
  255. package/browser/metadata/RelationMetadata.js +23 -7
  256. package/browser/metadata/RelationMetadata.js.map +1 -1
  257. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  258. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  259. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  260. package/browser/metadata/types/DeferrableType.js +1 -1
  261. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  262. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  263. package/browser/metadata/types/OnDeleteType.js +1 -1
  264. package/browser/metadata/types/OnUpdateType.js +1 -1
  265. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  266. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  267. package/browser/metadata/types/RelationTypes.js +1 -1
  268. package/browser/metadata/types/TableTypes.js +1 -1
  269. package/browser/metadata/types/TreeTypes.js +1 -1
  270. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  271. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  272. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  273. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  274. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  275. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  276. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  277. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  278. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  279. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  280. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  281. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  282. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  283. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  284. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  285. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  286. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  287. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  288. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  289. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  290. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  291. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  292. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  293. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  294. package/browser/metadata-args/types/ColumnMode.js +1 -1
  295. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +5 -3
  296. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  297. package/browser/metadata-builder/EntityMetadataBuilder.js +26 -16
  298. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  299. package/browser/metadata-builder/EntityMetadataValidator.js +10 -5
  300. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  301. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +8 -4
  302. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  303. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  304. package/browser/metadata-builder/RelationJoinColumnBuilder.js +8 -6
  305. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  306. package/browser/migration/MigrationExecutor.js +5 -5
  307. package/browser/migration/MigrationInterface.js +1 -1
  308. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  309. package/browser/naming-strategy/DefaultNamingStrategy.js +9 -8
  310. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  311. package/browser/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  312. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  313. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  314. package/browser/persistence/EntityPersistExecutor.js +55 -52
  315. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  316. package/browser/persistence/Subject.d.ts +4 -4
  317. package/browser/persistence/Subject.js +8 -7
  318. package/browser/persistence/Subject.js.map +1 -1
  319. package/browser/persistence/SubjectChangeMap.js +1 -1
  320. package/browser/persistence/SubjectChangedColumnsComputer.js +3 -1
  321. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  322. package/browser/persistence/SubjectDatabaseEntityLoader.js +2 -2
  323. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  324. package/browser/persistence/SubjectExecutor.js +30 -26
  325. package/browser/persistence/SubjectExecutor.js.map +1 -1
  326. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  327. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  328. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  329. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -0
  330. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  331. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +9 -4
  332. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  333. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  334. package/browser/persistence/tree/ClosureSubjectExecutor.js +7 -7
  335. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  336. package/browser/query-builder/Alias.d.ts +4 -3
  337. package/browser/query-builder/Alias.js +3 -3
  338. package/browser/query-builder/DeleteQueryBuilder.js +7 -2
  339. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  340. package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
  341. package/browser/query-builder/InsertQueryBuilder.js +63 -14
  342. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  343. package/browser/query-builder/JoinAttribute.d.ts +10 -10
  344. package/browser/query-builder/JoinAttribute.js +10 -10
  345. package/browser/query-builder/JoinOptions.js +1 -1
  346. package/browser/query-builder/QueryBuilder.d.ts +8 -1
  347. package/browser/query-builder/QueryBuilder.js +172 -37
  348. package/browser/query-builder/QueryBuilder.js.map +1 -1
  349. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  350. package/browser/query-builder/QueryExpressionMap.d.ts +10 -2
  351. package/browser/query-builder/QueryExpressionMap.js +4 -2
  352. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  353. package/browser/query-builder/QueryPartialEntity.js +1 -1
  354. package/browser/query-builder/RelationLoader.js +4 -4
  355. package/browser/query-builder/RelationLoader.js.map +1 -1
  356. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  357. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  358. package/browser/query-builder/RelationRemover.js +11 -11
  359. package/browser/query-builder/RelationRemover.js.map +1 -1
  360. package/browser/query-builder/SelectQuery.js +1 -1
  361. package/browser/query-builder/SelectQueryBuilder.d.ts +7 -6
  362. package/browser/query-builder/SelectQueryBuilder.js +129 -67
  363. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  364. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  365. package/browser/query-builder/UpdateQueryBuilder.js +6 -1
  366. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  367. package/browser/query-builder/WhereExpression.js +1 -1
  368. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  369. package/browser/query-builder/relation-count/RelationCountAttribute.js +7 -7
  370. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  371. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  372. package/browser/query-builder/relation-count/RelationCountLoader.js +2 -1
  373. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  374. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  375. package/browser/query-builder/relation-id/RelationIdAttribute.js +8 -8
  376. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  377. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  378. package/browser/query-builder/relation-id/RelationIdLoader.js +62 -12
  379. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  380. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  381. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  382. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -7
  383. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  384. package/browser/query-runner/BaseQueryRunner.js +3 -3
  385. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  386. package/browser/query-runner/QueryRunner.d.ts +1 -1
  387. package/browser/query-runner/QueryRunner.js +1 -1
  388. package/browser/query-runner/QueryRunner.js.map +1 -1
  389. package/browser/repository/AbstractRepository.d.ts +2 -2
  390. package/browser/repository/AbstractRepository.js +2 -2
  391. package/browser/repository/BaseEntity.d.ts +1 -1
  392. package/browser/repository/BaseEntity.js +3 -3
  393. package/browser/repository/BaseEntity.js.map +1 -1
  394. package/browser/repository/EntityId.js +1 -1
  395. package/browser/repository/RemoveOptions.js +1 -1
  396. package/browser/repository/Repository.d.ts +4 -4
  397. package/browser/repository/Repository.js +3 -3
  398. package/browser/repository/Repository.js.map +1 -1
  399. package/browser/repository/SaveOptions.js +1 -1
  400. package/browser/repository/TreeRepository.js +3 -3
  401. package/browser/repository/TreeRepository.js.map +1 -1
  402. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  403. package/browser/schema-builder/RdbmsSchemaBuilder.js +80 -79
  404. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  405. package/browser/schema-builder/SchemaBuilder.js +1 -1
  406. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  407. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  408. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  409. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  410. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  411. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  412. package/browser/schema-builder/options/TableOptions.js +1 -1
  413. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  414. package/browser/schema-builder/options/ViewOptions.js +1 -1
  415. package/browser/schema-builder/table/Table.d.ts +1 -1
  416. package/browser/schema-builder/table/Table.js +1 -1
  417. package/browser/schema-builder/table/TableCheck.js +2 -2
  418. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  419. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  420. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  421. package/browser/schema-builder/table/TableIndex.js +2 -2
  422. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  423. package/browser/schema-builder/table/TableUnique.js +2 -2
  424. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  425. package/browser/subscriber/Broadcaster.d.ts +24 -0
  426. package/browser/subscriber/Broadcaster.js +120 -0
  427. package/browser/subscriber/Broadcaster.js.map +1 -1
  428. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  429. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  430. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  431. package/browser/subscriber/event/InsertEvent.js +1 -1
  432. package/browser/subscriber/event/LoadEvent.js +1 -1
  433. package/browser/subscriber/event/RemoveEvent.js +1 -1
  434. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  435. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  436. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  437. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  438. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  439. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  440. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  441. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  442. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  443. package/browser/subscriber/event/UpdateEvent.js +1 -1
  444. package/browser/util/DateUtils.d.ts +1 -1
  445. package/browser/util/DateUtils.js +1 -7
  446. package/browser/util/DateUtils.js.map +1 -1
  447. package/browser/util/OrmUtils.d.ts +1 -1
  448. package/browser/util/OrmUtils.js +2 -2
  449. package/browser/util/OrmUtils.js.map +1 -1
  450. package/browser/util/StringUtils.js.map +1 -1
  451. package/cache/DbQueryResultCache.js +1 -0
  452. package/cache/DbQueryResultCache.js.map +1 -1
  453. package/cache/QueryResultCacheFactory.js +1 -0
  454. package/cache/QueryResultCacheFactory.js.map +1 -1
  455. package/cache/RedisQueryResultCache.js +1 -0
  456. package/cache/RedisQueryResultCache.js.map +1 -1
  457. package/cli.js +2 -2
  458. package/cli.js.map +1 -1
  459. package/commands/CacheClearCommand.js +1 -0
  460. package/commands/CacheClearCommand.js.map +1 -1
  461. package/commands/CommandUtils.js +1 -0
  462. package/commands/CommandUtils.js.map +1 -1
  463. package/commands/EntityCreateCommand.js +6 -2
  464. package/commands/EntityCreateCommand.js.map +1 -1
  465. package/commands/InitCommand.d.ts +3 -0
  466. package/commands/InitCommand.js +37 -6
  467. package/commands/InitCommand.js.map +1 -1
  468. package/commands/MigrationCreateCommand.d.ts +6 -0
  469. package/commands/MigrationCreateCommand.js +23 -4
  470. package/commands/MigrationCreateCommand.js.map +1 -1
  471. package/commands/MigrationGenerateCommand.d.ts +10 -0
  472. package/commands/MigrationGenerateCommand.js +72 -34
  473. package/commands/MigrationGenerateCommand.js.map +1 -1
  474. package/commands/MigrationRevertCommand.js +1 -0
  475. package/commands/MigrationRevertCommand.js.map +1 -1
  476. package/commands/MigrationRunCommand.js +1 -0
  477. package/commands/MigrationRunCommand.js.map +1 -1
  478. package/commands/MigrationShowCommand.js +1 -0
  479. package/commands/MigrationShowCommand.js.map +1 -1
  480. package/commands/QueryCommand.d.ts +2 -0
  481. package/commands/QueryCommand.js +17 -6
  482. package/commands/QueryCommand.js.map +1 -1
  483. package/commands/SchemaDropCommand.js +1 -0
  484. package/commands/SchemaDropCommand.js.map +1 -1
  485. package/commands/SchemaLogCommand.js +1 -0
  486. package/commands/SchemaLogCommand.js.map +1 -1
  487. package/commands/SchemaSyncCommand.js +1 -0
  488. package/commands/SchemaSyncCommand.js.map +1 -1
  489. package/commands/SubscriberCreateCommand.js +6 -2
  490. package/commands/SubscriberCreateCommand.js.map +1 -1
  491. package/commands/VersionCommand.js +1 -0
  492. package/commands/VersionCommand.js.map +1 -1
  493. package/common/EntityFieldsNames.d.ts +6 -0
  494. package/common/EntityFieldsNames.js +4 -0
  495. package/common/EntityFieldsNames.js.map +1 -0
  496. package/connection/Connection.d.ts +2 -2
  497. package/connection/Connection.js +5 -2
  498. package/connection/Connection.js.map +1 -1
  499. package/connection/ConnectionManager.js +1 -0
  500. package/connection/ConnectionManager.js.map +1 -1
  501. package/connection/ConnectionMetadataBuilder.js +5 -4
  502. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  503. package/connection/ConnectionOptionsReader.d.ts +3 -3
  504. package/connection/ConnectionOptionsReader.js +31 -30
  505. package/connection/ConnectionOptionsReader.js.map +1 -1
  506. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -1
  507. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  508. package/connection/options-reader/ConnectionOptionsXmlReader.js +1 -0
  509. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  510. package/connection/options-reader/ConnectionOptionsYmlReader.js +2 -1
  511. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  512. package/container.js +1 -0
  513. package/container.js.map +1 -1
  514. package/decorator/Check.js +1 -0
  515. package/decorator/Check.js.map +1 -1
  516. package/decorator/EntityRepository.js +1 -0
  517. package/decorator/EntityRepository.js.map +1 -1
  518. package/decorator/Exclusion.js +1 -0
  519. package/decorator/Exclusion.js.map +1 -1
  520. package/decorator/Generated.js +1 -0
  521. package/decorator/Generated.js.map +1 -1
  522. package/decorator/Index.js +1 -0
  523. package/decorator/Index.js.map +1 -1
  524. package/decorator/Unique.js +1 -0
  525. package/decorator/Unique.js.map +1 -1
  526. package/decorator/columns/Column.js +1 -0
  527. package/decorator/columns/Column.js.map +1 -1
  528. package/decorator/columns/CreateDateColumn.js +1 -0
  529. package/decorator/columns/CreateDateColumn.js.map +1 -1
  530. package/decorator/columns/DeleteDateColumn.js +1 -0
  531. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  532. package/decorator/columns/ObjectIdColumn.js +1 -0
  533. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  534. package/decorator/columns/PrimaryColumn.d.ts +9 -2
  535. package/decorator/columns/PrimaryColumn.js +1 -0
  536. package/decorator/columns/PrimaryColumn.js.map +1 -1
  537. package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
  538. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  539. package/decorator/columns/UpdateDateColumn.js +1 -0
  540. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  541. package/decorator/columns/VersionColumn.js +1 -0
  542. package/decorator/columns/VersionColumn.js.map +1 -1
  543. package/decorator/columns/ViewColumn.js +1 -0
  544. package/decorator/columns/ViewColumn.js.map +1 -1
  545. package/decorator/entity/ChildEntity.js +2 -1
  546. package/decorator/entity/ChildEntity.js.map +1 -1
  547. package/decorator/entity/Entity.js +1 -0
  548. package/decorator/entity/Entity.js.map +1 -1
  549. package/decorator/entity/TableInheritance.js +1 -0
  550. package/decorator/entity/TableInheritance.js.map +1 -1
  551. package/decorator/entity-view/ViewEntity.js +1 -0
  552. package/decorator/entity-view/ViewEntity.js.map +1 -1
  553. package/decorator/listeners/AfterInsert.js +1 -0
  554. package/decorator/listeners/AfterInsert.js.map +1 -1
  555. package/decorator/listeners/AfterLoad.js +1 -0
  556. package/decorator/listeners/AfterLoad.js.map +1 -1
  557. package/decorator/listeners/AfterRemove.js +1 -0
  558. package/decorator/listeners/AfterRemove.js.map +1 -1
  559. package/decorator/listeners/AfterUpdate.js +1 -0
  560. package/decorator/listeners/AfterUpdate.js.map +1 -1
  561. package/decorator/listeners/BeforeInsert.js +1 -0
  562. package/decorator/listeners/BeforeInsert.js.map +1 -1
  563. package/decorator/listeners/BeforeRemove.js +1 -0
  564. package/decorator/listeners/BeforeRemove.js.map +1 -1
  565. package/decorator/listeners/BeforeUpdate.js +1 -0
  566. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  567. package/decorator/listeners/EventSubscriber.js +1 -0
  568. package/decorator/listeners/EventSubscriber.js.map +1 -1
  569. package/decorator/options/RelationOptions.d.ts +10 -0
  570. package/decorator/options/RelationOptions.js.map +1 -1
  571. package/decorator/relations/JoinColumn.js +1 -0
  572. package/decorator/relations/JoinColumn.js.map +1 -1
  573. package/decorator/relations/JoinTable.js +1 -0
  574. package/decorator/relations/JoinTable.js.map +1 -1
  575. package/decorator/relations/ManyToMany.js +1 -0
  576. package/decorator/relations/ManyToMany.js.map +1 -1
  577. package/decorator/relations/ManyToOne.d.ts +6 -6
  578. package/decorator/relations/ManyToOne.js +6 -5
  579. package/decorator/relations/ManyToOne.js.map +1 -1
  580. package/decorator/relations/OneToMany.d.ts +3 -2
  581. package/decorator/relations/OneToMany.js +5 -3
  582. package/decorator/relations/OneToMany.js.map +1 -1
  583. package/decorator/relations/OneToOne.js +1 -0
  584. package/decorator/relations/OneToOne.js.map +1 -1
  585. package/decorator/relations/RelationCount.js +1 -0
  586. package/decorator/relations/RelationCount.js.map +1 -1
  587. package/decorator/relations/RelationId.js +1 -0
  588. package/decorator/relations/RelationId.js.map +1 -1
  589. package/decorator/transaction/Transaction.d.ts +1 -1
  590. package/decorator/transaction/Transaction.js +6 -5
  591. package/decorator/transaction/Transaction.js.map +1 -1
  592. package/decorator/transaction/TransactionManager.js +1 -0
  593. package/decorator/transaction/TransactionManager.js.map +1 -1
  594. package/decorator/transaction/TransactionRepository.js +1 -0
  595. package/decorator/transaction/TransactionRepository.js.map +1 -1
  596. package/decorator/tree/Tree.d.ts +2 -1
  597. package/decorator/tree/Tree.js +4 -2
  598. package/decorator/tree/Tree.js.map +1 -1
  599. package/decorator/tree/TreeChildren.js +1 -0
  600. package/decorator/tree/TreeChildren.js.map +1 -1
  601. package/decorator/tree/TreeLevelColumn.js +1 -0
  602. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  603. package/decorator/tree/TreeParent.js +1 -0
  604. package/decorator/tree/TreeParent.js.map +1 -1
  605. package/driver/Driver.d.ts +1 -1
  606. package/driver/Driver.js.map +1 -1
  607. package/driver/DriverFactory.js +1 -0
  608. package/driver/DriverFactory.js.map +1 -1
  609. package/driver/DriverUtils.d.ts +10 -0
  610. package/driver/DriverUtils.js +99 -11
  611. package/driver/DriverUtils.js.map +1 -1
  612. package/driver/Query.js +1 -0
  613. package/driver/Query.js.map +1 -1
  614. package/driver/SqlInMemory.js +1 -0
  615. package/driver/SqlInMemory.js.map +1 -1
  616. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -0
  617. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  618. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  619. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  620. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  621. package/driver/aurora-data-api/AuroraDataApiDriver.js +16 -6
  622. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  623. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  624. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +73 -11
  625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  626. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  627. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  628. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  629. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +27 -2
  630. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  631. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  632. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +60 -11
  633. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  634. package/driver/better-sqlite3/BetterSqlite3Driver.js +1 -0
  635. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  636. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
  637. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  638. package/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  639. package/driver/cockroachdb/CockroachDriver.js +6 -8
  640. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  641. package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  642. package/driver/cockroachdb/CockroachQueryRunner.js +113 -42
  643. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  644. package/driver/cordova/CordovaDriver.js +1 -0
  645. package/driver/cordova/CordovaDriver.js.map +1 -1
  646. package/driver/cordova/CordovaQueryRunner.js +1 -0
  647. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  648. package/driver/expo/ExpoDriver.js +1 -0
  649. package/driver/expo/ExpoDriver.js.map +1 -1
  650. package/driver/expo/ExpoQueryRunner.js +73 -14
  651. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  652. package/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  653. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  654. package/driver/mongodb/MongoDriver.d.ts +8 -4
  655. package/driver/mongodb/MongoDriver.js +27 -14
  656. package/driver/mongodb/MongoDriver.js.map +1 -1
  657. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  658. package/driver/mongodb/MongoQueryRunner.js +1 -0
  659. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  660. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  661. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  662. package/driver/mysql/MysqlDriver.d.ts +2 -2
  663. package/driver/mysql/MysqlDriver.js +16 -14
  664. package/driver/mysql/MysqlDriver.js.map +1 -1
  665. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  666. package/driver/mysql/MysqlQueryRunner.js +119 -43
  667. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  668. package/driver/nativescript/NativescriptDriver.js +1 -0
  669. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  670. package/driver/nativescript/NativescriptQueryRunner.js +1 -0
  671. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  672. package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  673. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  674. package/driver/oracle/OracleDriver.d.ts +1 -1
  675. package/driver/oracle/OracleDriver.js +29 -3
  676. package/driver/oracle/OracleDriver.js.map +1 -1
  677. package/driver/oracle/OracleQueryRunner.js +54 -7
  678. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  679. package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  680. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  681. package/driver/postgres/PostgresDriver.d.ts +2 -2
  682. package/driver/postgres/PostgresDriver.js +63 -28
  683. package/driver/postgres/PostgresDriver.js.map +1 -1
  684. package/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  685. package/driver/postgres/PostgresQueryRunner.js +337 -211
  686. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  687. package/driver/react-native/ReactNativeDriver.js +2 -2
  688. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  689. package/driver/react-native/ReactNativeQueryRunner.js +1 -0
  690. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  691. package/driver/sap/SapDriver.d.ts +1 -1
  692. package/driver/sap/SapDriver.js +1 -0
  693. package/driver/sap/SapDriver.js.map +1 -1
  694. package/driver/sap/SapQueryRunner.js +58 -9
  695. package/driver/sap/SapQueryRunner.js.map +1 -1
  696. package/driver/sqlite/SqliteDriver.js +1 -0
  697. package/driver/sqlite/SqliteDriver.js.map +1 -1
  698. package/driver/sqlite/SqliteQueryRunner.js +5 -0
  699. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  700. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  701. package/driver/sqlite-abstract/AbstractSqliteDriver.js +5 -1
  702. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  703. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +56 -8
  704. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  705. package/driver/sqljs/SqljsDriver.js +1 -0
  706. package/driver/sqljs/SqljsDriver.js.map +1 -1
  707. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  708. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  709. package/driver/sqlserver/MssqlParameter.js +1 -0
  710. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  711. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  712. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  713. package/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  714. package/driver/sqlserver/SqlServerDriver.js +34 -8
  715. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  716. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  717. package/driver/sqlserver/SqlServerQueryRunner.js +166 -85
  718. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  719. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  720. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  721. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  722. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  723. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  724. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  725. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  726. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  727. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  728. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  729. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +4 -0
  730. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  731. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  732. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  733. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  734. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  735. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  736. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  737. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  738. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  739. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  740. package/driver/types/ColumnTypes.d.ts +1 -1
  741. package/driver/types/ColumnTypes.js.map +1 -1
  742. package/entity-manager/EntityManager.d.ts +16 -2
  743. package/entity-manager/EntityManager.js +6 -16
  744. package/entity-manager/EntityManager.js.map +1 -1
  745. package/entity-manager/EntityManagerFactory.js +1 -0
  746. package/entity-manager/EntityManagerFactory.js.map +1 -1
  747. package/entity-manager/MongoEntityManager.d.ts +1 -4
  748. package/entity-manager/MongoEntityManager.js +54 -48
  749. package/entity-manager/MongoEntityManager.js.map +1 -1
  750. package/entity-manager/SqljsEntityManager.js +1 -0
  751. package/entity-manager/SqljsEntityManager.js.map +1 -1
  752. package/entity-schema/EntitySchema.js +1 -0
  753. package/entity-schema/EntitySchema.js.map +1 -1
  754. package/entity-schema/EntitySchemaOptions.js +1 -0
  755. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  756. package/entity-schema/EntitySchemaTransformer.js +1 -0
  757. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  758. package/error/AlreadyHasActiveConnectionError.js +1 -0
  759. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  760. package/error/CannotAttachTreeChildrenEntityError.js +1 -0
  761. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  762. package/error/CannotConnectAlreadyConnectedError.js +1 -0
  763. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  764. package/error/CannotCreateEntityIdMapError.js +1 -0
  765. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  766. package/error/CannotDetermineEntityError.js +1 -0
  767. package/error/CannotDetermineEntityError.js.map +1 -1
  768. package/error/CannotExecuteNotConnectedError.js +1 -0
  769. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  770. package/error/CannotGetEntityManagerNotConnectedError.js +1 -0
  771. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  772. package/error/CannotReflectMethodParameterTypeError.js +1 -0
  773. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  774. package/error/CircularRelationsError.js +1 -0
  775. package/error/CircularRelationsError.js.map +1 -1
  776. package/error/ColumnTypeUndefinedError.js +1 -0
  777. package/error/ColumnTypeUndefinedError.js.map +1 -1
  778. package/error/ConnectionIsNotSetError.js +1 -0
  779. package/error/ConnectionIsNotSetError.js.map +1 -1
  780. package/error/ConnectionNotFoundError.js +1 -0
  781. package/error/ConnectionNotFoundError.js.map +1 -1
  782. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -0
  783. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  784. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -0
  785. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  786. package/error/CustomRepositoryNotFoundError.js +1 -0
  787. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  788. package/error/DataTypeNotSupportedError.js +1 -0
  789. package/error/DataTypeNotSupportedError.js.map +1 -1
  790. package/error/DriverOptionNotSetError.js +1 -0
  791. package/error/DriverOptionNotSetError.js.map +1 -1
  792. package/error/DriverPackageNotInstalledError.js +1 -0
  793. package/error/DriverPackageNotInstalledError.js.map +1 -1
  794. package/error/EntityColumnNotFound.js +1 -0
  795. package/error/EntityColumnNotFound.js.map +1 -1
  796. package/error/EntityMetadataNotFoundError.js +1 -0
  797. package/error/EntityMetadataNotFoundError.js.map +1 -1
  798. package/error/EntityNotFoundError.js +1 -0
  799. package/error/EntityNotFoundError.js.map +1 -1
  800. package/error/FindRelationsNotFoundError.js +1 -0
  801. package/error/FindRelationsNotFoundError.js.map +1 -1
  802. package/error/InitializedRelationError.js +1 -0
  803. package/error/InitializedRelationError.js.map +1 -1
  804. package/error/InsertValuesMissingError.js +1 -0
  805. package/error/InsertValuesMissingError.js.map +1 -1
  806. package/error/LimitOnUpdateNotSupportedError.js +1 -0
  807. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  808. package/error/LockNotSupportedOnGivenDriverError.js +1 -0
  809. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  810. package/error/MetadataAlreadyExistsError.js +1 -0
  811. package/error/MetadataAlreadyExistsError.js.map +1 -1
  812. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -0
  813. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  814. package/error/MissingDeleteDateColumnError.js +1 -0
  815. package/error/MissingDeleteDateColumnError.js.map +1 -1
  816. package/error/MissingDriverError.js +1 -0
  817. package/error/MissingDriverError.js.map +1 -1
  818. package/error/MissingJoinColumnError.js +1 -0
  819. package/error/MissingJoinColumnError.js.map +1 -1
  820. package/error/MissingJoinTableError.js +1 -0
  821. package/error/MissingJoinTableError.js.map +1 -1
  822. package/error/MissingPrimaryColumnError.js +1 -0
  823. package/error/MissingPrimaryColumnError.js.map +1 -1
  824. package/error/MustBeEntityError.js +1 -0
  825. package/error/MustBeEntityError.js.map +1 -1
  826. package/error/NamingStrategyNotFoundError.js +1 -0
  827. package/error/NamingStrategyNotFoundError.js.map +1 -1
  828. package/error/NoConnectionForRepositoryError.js +1 -0
  829. package/error/NoConnectionForRepositoryError.js.map +1 -1
  830. package/error/NoConnectionOptionError.js +1 -0
  831. package/error/NoConnectionOptionError.js.map +1 -1
  832. package/error/NoNeedToReleaseEntityManagerError.js +1 -0
  833. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  834. package/error/NoVersionOrUpdateDateColumnError.js +1 -0
  835. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  836. package/error/OffsetWithoutLimitNotSupportedError.js +1 -0
  837. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  838. package/error/OptimisticLockCanNotBeUsedError.js +1 -0
  839. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  840. package/error/OptimisticLockVersionMismatchError.js +1 -0
  841. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  842. package/error/PersistedEntityNotFoundError.js +1 -0
  843. package/error/PersistedEntityNotFoundError.js.map +1 -1
  844. package/error/PessimisticLockTransactionRequiredError.js +1 -0
  845. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  846. package/error/PrimaryColumnCannotBeNullableError.js +1 -0
  847. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  848. package/error/QueryFailedError.js +1 -0
  849. package/error/QueryFailedError.js.map +1 -1
  850. package/error/QueryRunnerAlreadyReleasedError.js +1 -0
  851. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  852. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -0
  853. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  854. package/error/RepositoryNotFoundError.js +1 -0
  855. package/error/RepositoryNotFoundError.js.map +1 -1
  856. package/error/RepositoryNotTreeError.js +1 -0
  857. package/error/RepositoryNotTreeError.js.map +1 -1
  858. package/error/ReturningStatementNotSupportedError.js +1 -0
  859. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  860. package/error/SubjectRemovedAndUpdatedError.js +1 -0
  861. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  862. package/error/SubjectWithoutIdentifierError.js +1 -0
  863. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  864. package/error/TransactionAlreadyStartedError.js +1 -0
  865. package/error/TransactionAlreadyStartedError.js.map +1 -1
  866. package/error/TransactionNotStartedError.js +1 -0
  867. package/error/TransactionNotStartedError.js.map +1 -1
  868. package/error/TreeRepositoryNotSupportedError.js +1 -0
  869. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  870. package/error/UpdateValuesMissingError.js +1 -0
  871. package/error/UpdateValuesMissingError.js.map +1 -1
  872. package/error/UsingJoinColumnIsNotAllowedError.js +1 -0
  873. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  874. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -0
  875. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  876. package/error/UsingJoinTableIsNotAllowedError.js +1 -0
  877. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  878. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -0
  879. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  880. package/error/index.d.ts +61 -0
  881. package/error/index.js +66 -0
  882. package/error/index.js.map +1 -0
  883. package/find-options/FindOneOptions.d.ts +10 -2
  884. package/find-options/FindOneOptions.js.map +1 -1
  885. package/find-options/FindOperator.d.ts +25 -6
  886. package/find-options/FindOperator.js +33 -6
  887. package/find-options/FindOperator.js.map +1 -1
  888. package/find-options/FindOperatorType.d.ts +1 -1
  889. package/find-options/FindOperatorType.js.map +1 -1
  890. package/find-options/FindOptionsUtils.js +16 -2
  891. package/find-options/FindOptionsUtils.js.map +1 -1
  892. package/find-options/JoinOptions.d.ts +16 -4
  893. package/find-options/JoinOptions.js.map +1 -1
  894. package/find-options/operator/Any.js +1 -0
  895. package/find-options/operator/Any.js.map +1 -1
  896. package/find-options/operator/Between.js +1 -0
  897. package/find-options/operator/Between.js.map +1 -1
  898. package/find-options/operator/Equal.js +1 -0
  899. package/find-options/operator/Equal.js.map +1 -1
  900. package/find-options/operator/ILike.d.ts +6 -0
  901. package/find-options/operator/ILike.js +14 -0
  902. package/find-options/operator/ILike.js.map +1 -0
  903. package/find-options/operator/In.js +1 -0
  904. package/find-options/operator/In.js.map +1 -1
  905. package/find-options/operator/IsNull.js +1 -0
  906. package/find-options/operator/IsNull.js.map +1 -1
  907. package/find-options/operator/LessThan.js +1 -0
  908. package/find-options/operator/LessThan.js.map +1 -1
  909. package/find-options/operator/LessThanOrEqual.js +1 -0
  910. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  911. package/find-options/operator/Like.js +1 -0
  912. package/find-options/operator/Like.js.map +1 -1
  913. package/find-options/operator/MoreThan.js +1 -0
  914. package/find-options/operator/MoreThan.js.map +1 -1
  915. package/find-options/operator/MoreThanOrEqual.js +1 -0
  916. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  917. package/find-options/operator/Not.js +1 -0
  918. package/find-options/operator/Not.js.map +1 -1
  919. package/find-options/operator/Raw.d.ts +14 -2
  920. package/find-options/operator/Raw.js +6 -6
  921. package/find-options/operator/Raw.js.map +1 -1
  922. package/index.d.ts +3 -1
  923. package/index.js +44 -19
  924. package/index.js.map +1 -1
  925. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  926. package/logger/AdvancedConsoleLogger.js +1 -0
  927. package/logger/AdvancedConsoleLogger.js.map +1 -1
  928. package/logger/DebugLogger.js +1 -0
  929. package/logger/DebugLogger.js.map +1 -1
  930. package/logger/FileLogger.d.ts +2 -2
  931. package/logger/FileLogger.js +1 -0
  932. package/logger/FileLogger.js.map +1 -1
  933. package/logger/Logger.d.ts +1 -1
  934. package/logger/Logger.js.map +1 -1
  935. package/logger/LoggerFactory.js +1 -0
  936. package/logger/LoggerFactory.js.map +1 -1
  937. package/logger/SimpleConsoleLogger.d.ts +2 -1
  938. package/logger/SimpleConsoleLogger.js +1 -0
  939. package/logger/SimpleConsoleLogger.js.map +1 -1
  940. package/metadata/CheckMetadata.js +1 -0
  941. package/metadata/CheckMetadata.js.map +1 -1
  942. package/metadata/ColumnMetadata.d.ts +1 -1
  943. package/metadata/ColumnMetadata.js +23 -14
  944. package/metadata/ColumnMetadata.js.map +1 -1
  945. package/metadata/EmbeddedMetadata.js +2 -1
  946. package/metadata/EmbeddedMetadata.js.map +1 -1
  947. package/metadata/EntityListenerMetadata.js +1 -0
  948. package/metadata/EntityListenerMetadata.js.map +1 -1
  949. package/metadata/EntityMetadata.d.ts +5 -0
  950. package/metadata/EntityMetadata.js +3 -1
  951. package/metadata/EntityMetadata.js.map +1 -1
  952. package/metadata/ExclusionMetadata.js +1 -0
  953. package/metadata/ExclusionMetadata.js.map +1 -1
  954. package/metadata/ForeignKeyMetadata.js +1 -0
  955. package/metadata/ForeignKeyMetadata.js.map +1 -1
  956. package/metadata/IndexMetadata.js +1 -0
  957. package/metadata/IndexMetadata.js.map +1 -1
  958. package/metadata/RelationCountMetadata.js +1 -0
  959. package/metadata/RelationCountMetadata.js.map +1 -1
  960. package/metadata/RelationIdMetadata.js +1 -0
  961. package/metadata/RelationIdMetadata.js.map +1 -1
  962. package/metadata/RelationMetadata.d.ts +15 -0
  963. package/metadata/RelationMetadata.js +23 -6
  964. package/metadata/RelationMetadata.js.map +1 -1
  965. package/metadata/UniqueMetadata.js +1 -0
  966. package/metadata/UniqueMetadata.js.map +1 -1
  967. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  968. package/metadata/types/ClosureTreeOptions.js +4 -0
  969. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  970. package/metadata/types/EventListenerTypes.d.ts +7 -7
  971. package/metadata/types/EventListenerTypes.js +1 -0
  972. package/metadata/types/EventListenerTypes.js.map +1 -1
  973. package/metadata-args/MetadataArgsStorage.js +1 -0
  974. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  975. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  976. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  977. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +6 -3
  978. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  979. package/metadata-builder/EntityMetadataBuilder.js +26 -15
  980. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  981. package/metadata-builder/EntityMetadataValidator.js +11 -5
  982. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  983. package/metadata-builder/JunctionEntityMetadataBuilder.js +8 -3
  984. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  985. package/metadata-builder/MetadataUtils.js +1 -0
  986. package/metadata-builder/MetadataUtils.js.map +1 -1
  987. package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  988. package/metadata-builder/RelationJoinColumnBuilder.js +9 -6
  989. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  990. package/migration/Migration.js +1 -0
  991. package/migration/Migration.js.map +1 -1
  992. package/migration/MigrationExecutor.js +6 -5
  993. package/migration/MigrationExecutor.js.map +1 -1
  994. package/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  995. package/naming-strategy/DefaultNamingStrategy.js +9 -7
  996. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  997. package/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  998. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  999. package/package.json +46 -43
  1000. package/persistence/EntityPersistExecutor.js +56 -52
  1001. package/persistence/EntityPersistExecutor.js.map +1 -1
  1002. package/persistence/Subject.d.ts +4 -4
  1003. package/persistence/Subject.js +8 -6
  1004. package/persistence/Subject.js.map +1 -1
  1005. package/persistence/SubjectChangedColumnsComputer.js +4 -1
  1006. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1007. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  1008. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1009. package/persistence/SubjectExecutor.js +31 -26
  1010. package/persistence/SubjectExecutor.js.map +1 -1
  1011. package/persistence/SubjectTopoligicalSorter.js +6 -5
  1012. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  1013. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -0
  1014. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1015. package/persistence/subject-builder/ManyToManySubjectBuilder.js +3 -0
  1016. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1017. package/persistence/subject-builder/OneToManySubjectBuilder.js +10 -4
  1018. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1019. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -0
  1020. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1021. package/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  1022. package/persistence/tree/ClosureSubjectExecutor.js +7 -6
  1023. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1024. package/persistence/tree/MaterializedPathSubjectExecutor.js +1 -0
  1025. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1026. package/persistence/tree/NestedSetSubjectExecutor.js +1 -0
  1027. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1028. package/platform/PlatformTools.js +5 -4
  1029. package/platform/PlatformTools.js.map +1 -1
  1030. package/query-builder/Alias.d.ts +4 -3
  1031. package/query-builder/Alias.js +4 -3
  1032. package/query-builder/Alias.js.map +1 -1
  1033. package/query-builder/Brackets.js +1 -0
  1034. package/query-builder/Brackets.js.map +1 -1
  1035. package/query-builder/DeleteQueryBuilder.js +8 -2
  1036. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1037. package/query-builder/InsertQueryBuilder.d.ts +6 -0
  1038. package/query-builder/InsertQueryBuilder.js +64 -14
  1039. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1040. package/query-builder/JoinAttribute.d.ts +10 -10
  1041. package/query-builder/JoinAttribute.js +11 -10
  1042. package/query-builder/JoinAttribute.js.map +1 -1
  1043. package/query-builder/QueryBuilder.d.ts +8 -1
  1044. package/query-builder/QueryBuilder.js +172 -36
  1045. package/query-builder/QueryBuilder.js.map +1 -1
  1046. package/query-builder/QueryBuilderUtils.js +1 -0
  1047. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1048. package/query-builder/QueryExpressionMap.d.ts +10 -2
  1049. package/query-builder/QueryExpressionMap.js +5 -2
  1050. package/query-builder/QueryExpressionMap.js.map +1 -1
  1051. package/query-builder/RelationIdLoader.js +1 -0
  1052. package/query-builder/RelationIdLoader.js.map +1 -1
  1053. package/query-builder/RelationLoader.js +4 -3
  1054. package/query-builder/RelationLoader.js.map +1 -1
  1055. package/query-builder/RelationQueryBuilder.js +2 -1
  1056. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1057. package/query-builder/RelationRemover.js +11 -10
  1058. package/query-builder/RelationRemover.js.map +1 -1
  1059. package/query-builder/RelationUpdater.js +1 -0
  1060. package/query-builder/RelationUpdater.js.map +1 -1
  1061. package/query-builder/ReturningResultsEntityUpdator.js +1 -0
  1062. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1063. package/query-builder/SelectQueryBuilder.d.ts +7 -6
  1064. package/query-builder/SelectQueryBuilder.js +129 -66
  1065. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1066. package/query-builder/SoftDeleteQueryBuilder.js +1 -0
  1067. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1068. package/query-builder/UpdateQueryBuilder.js +7 -1
  1069. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1070. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1071. package/query-builder/relation-count/RelationCountAttribute.js +8 -7
  1072. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1073. package/query-builder/relation-count/RelationCountLoader.js +3 -1
  1074. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1075. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +1 -0
  1076. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1077. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1078. package/query-builder/relation-id/RelationIdAttribute.js +9 -8
  1079. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1080. package/query-builder/relation-id/RelationIdLoader.js +62 -11
  1081. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1082. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +1 -0
  1083. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1084. package/query-builder/result/DeleteResult.js +1 -0
  1085. package/query-builder/result/DeleteResult.js.map +1 -1
  1086. package/query-builder/result/InsertResult.js +1 -0
  1087. package/query-builder/result/InsertResult.js.map +1 -1
  1088. package/query-builder/result/UpdateResult.js +1 -0
  1089. package/query-builder/result/UpdateResult.js.map +1 -1
  1090. package/query-builder/transformer/DocumentToEntityTransformer.js +1 -0
  1091. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1092. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -3
  1093. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1094. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
  1095. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1096. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -6
  1097. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1098. package/query-runner/BaseQueryRunner.js +3 -2
  1099. package/query-runner/BaseQueryRunner.js.map +1 -1
  1100. package/query-runner/QueryRunner.d.ts +1 -1
  1101. package/query-runner/QueryRunner.js.map +1 -1
  1102. package/repository/AbstractRepository.d.ts +2 -2
  1103. package/repository/AbstractRepository.js +3 -2
  1104. package/repository/AbstractRepository.js.map +1 -1
  1105. package/repository/BaseEntity.d.ts +1 -1
  1106. package/repository/BaseEntity.js +3 -2
  1107. package/repository/BaseEntity.js.map +1 -1
  1108. package/repository/MongoRepository.js +1 -0
  1109. package/repository/MongoRepository.js.map +1 -1
  1110. package/repository/Repository.d.ts +4 -4
  1111. package/repository/Repository.js +3 -2
  1112. package/repository/Repository.js.map +1 -1
  1113. package/repository/RepositoryFactory.js +1 -0
  1114. package/repository/RepositoryFactory.js.map +1 -1
  1115. package/repository/TreeRepository.js +4 -3
  1116. package/repository/TreeRepository.js.map +1 -1
  1117. package/schema-builder/MongoSchemaBuilder.js +1 -0
  1118. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1119. package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  1120. package/schema-builder/RdbmsSchemaBuilder.js +81 -79
  1121. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1122. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1123. package/schema-builder/table/Table.d.ts +1 -1
  1124. package/schema-builder/table/Table.js +2 -1
  1125. package/schema-builder/table/Table.js.map +1 -1
  1126. package/schema-builder/table/TableCheck.js +2 -1
  1127. package/schema-builder/table/TableCheck.js.map +1 -1
  1128. package/schema-builder/table/TableColumn.js +1 -0
  1129. package/schema-builder/table/TableColumn.js.map +1 -1
  1130. package/schema-builder/table/TableExclusion.js +1 -0
  1131. package/schema-builder/table/TableExclusion.js.map +1 -1
  1132. package/schema-builder/table/TableForeignKey.js +3 -2
  1133. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1134. package/schema-builder/table/TableIndex.js +2 -1
  1135. package/schema-builder/table/TableIndex.js.map +1 -1
  1136. package/schema-builder/table/TableUnique.js +2 -1
  1137. package/schema-builder/table/TableUnique.js.map +1 -1
  1138. package/schema-builder/util/TableUtils.js +1 -0
  1139. package/schema-builder/util/TableUtils.js.map +1 -1
  1140. package/schema-builder/view/View.js +1 -0
  1141. package/schema-builder/view/View.js.map +1 -1
  1142. package/subscriber/Broadcaster.d.ts +24 -0
  1143. package/subscriber/Broadcaster.js +121 -0
  1144. package/subscriber/Broadcaster.js.map +1 -1
  1145. package/subscriber/BroadcasterResult.js +1 -0
  1146. package/subscriber/BroadcasterResult.js.map +1 -1
  1147. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  1148. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1149. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1150. package/subscriber/event/TransactionCommitEvent.js +4 -0
  1151. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1152. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1153. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  1154. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1155. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1156. package/subscriber/event/TransactionStartEvent.js +4 -0
  1157. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  1158. package/typeorm-model-shim.js +145 -128
  1159. package/util/ApplyValueTransformers.js +1 -0
  1160. package/util/ApplyValueTransformers.js.map +1 -1
  1161. package/util/DateUtils.d.ts +1 -1
  1162. package/util/DateUtils.js +2 -7
  1163. package/util/DateUtils.js.map +1 -1
  1164. package/util/DepGraph.js +1 -0
  1165. package/util/DepGraph.js.map +1 -1
  1166. package/util/DirectoryExportedClassesLoader.js +1 -0
  1167. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1168. package/util/ObjectUtils.js +1 -0
  1169. package/util/ObjectUtils.js.map +1 -1
  1170. package/util/OrmUtils.d.ts +1 -1
  1171. package/util/OrmUtils.js +2 -1
  1172. package/util/OrmUtils.js.map +1 -1
  1173. package/util/RandomGenerator.js +1 -0
  1174. package/util/RandomGenerator.js.map +1 -1
  1175. package/util/StringUtils.js +1 -0
  1176. package/util/StringUtils.js.map +1 -1
  1177. package/util/VersionUtils.js +1 -0
  1178. package/util/VersionUtils.js.map +1 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongoEntityManager = void 0;
3
4
  var tslib_1 = require("tslib");
4
5
  var EntityManager_1 = require("./EntityManager");
5
6
  var DocumentToEntityTransformer_1 = require("../query-builder/transformer/DocumentToEntityTransformer");
@@ -23,17 +24,11 @@ var MongoEntityManager = /** @class */ (function (_super) {
23
24
  function MongoEntityManager(connection) {
24
25
  return _super.call(this, connection) || this;
25
26
  }
26
- Object.defineProperty(MongoEntityManager.prototype, "queryRunner", {
27
- // -------------------------------------------------------------------------
28
- // Overridden Properties
29
- // -------------------------------------------------------------------------
30
- /**
31
- * Gets query runner used to execute queries.
32
- */
27
+ Object.defineProperty(MongoEntityManager.prototype, "mongoQueryRunner", {
33
28
  get: function () {
34
29
  return this.connection.driver.queryRunner;
35
30
  },
36
- enumerable: true,
31
+ enumerable: false,
37
32
  configurable: true
38
33
  });
39
34
  // -------------------------------------------------------------------------
@@ -281,7 +276,7 @@ var MongoEntityManager = /** @class */ (function (_super) {
281
276
  */
282
277
  MongoEntityManager.prototype.createCursor = function (entityClassOrName, query) {
283
278
  var metadata = this.connection.getMetadata(entityClassOrName);
284
- return this.queryRunner.cursor(metadata.tableName, query);
279
+ return this.mongoQueryRunner.cursor(metadata.tableName, query);
285
280
  };
286
281
  /**
287
282
  * Creates a cursor for a query that can be used to iterate over results from MongoDB.
@@ -298,7 +293,7 @@ var MongoEntityManager = /** @class */ (function (_super) {
298
293
  */
299
294
  MongoEntityManager.prototype.aggregate = function (entityClassOrName, pipeline, options) {
300
295
  var metadata = this.connection.getMetadata(entityClassOrName);
301
- return this.queryRunner.aggregate(metadata.tableName, pipeline, options);
296
+ return this.mongoQueryRunner.aggregate(metadata.tableName, pipeline, options);
302
297
  };
303
298
  /**
304
299
  * Execute an aggregation framework pipeline against the collection.
@@ -306,7 +301,7 @@ var MongoEntityManager = /** @class */ (function (_super) {
306
301
  */
307
302
  MongoEntityManager.prototype.aggregateEntity = function (entityClassOrName, pipeline, options) {
308
303
  var metadata = this.connection.getMetadata(entityClassOrName);
309
- var cursor = this.queryRunner.aggregate(metadata.tableName, pipeline, options);
304
+ var cursor = this.mongoQueryRunner.aggregate(metadata.tableName, pipeline, options);
310
305
  this.applyEntityTransformationToCursor(metadata, cursor);
311
306
  return cursor;
312
307
  };
@@ -315,21 +310,21 @@ var MongoEntityManager = /** @class */ (function (_super) {
315
310
  */
316
311
  MongoEntityManager.prototype.bulkWrite = function (entityClassOrName, operations, options) {
317
312
  var metadata = this.connection.getMetadata(entityClassOrName);
318
- return this.queryRunner.bulkWrite(metadata.tableName, operations, options);
313
+ return this.mongoQueryRunner.bulkWrite(metadata.tableName, operations, options);
319
314
  };
320
315
  /**
321
316
  * Count number of matching documents in the db to a query.
322
317
  */
323
318
  MongoEntityManager.prototype.count = function (entityClassOrName, query, options) {
324
319
  var metadata = this.connection.getMetadata(entityClassOrName);
325
- return this.queryRunner.count(metadata.tableName, query, options);
320
+ return this.mongoQueryRunner.count(metadata.tableName, query, options);
326
321
  };
327
322
  /**
328
323
  * Creates an index on the db and collection.
329
324
  */
330
325
  MongoEntityManager.prototype.createCollectionIndex = function (entityClassOrName, fieldOrSpec, options) {
331
326
  var metadata = this.connection.getMetadata(entityClassOrName);
332
- return this.queryRunner.createCollectionIndex(metadata.tableName, fieldOrSpec, options);
327
+ return this.mongoQueryRunner.createCollectionIndex(metadata.tableName, fieldOrSpec, options);
333
328
  };
334
329
  /**
335
330
  * Creates multiple indexes in the collection, this method is only supported for MongoDB 2.6 or higher.
@@ -338,154 +333,154 @@ var MongoEntityManager = /** @class */ (function (_super) {
338
333
  */
339
334
  MongoEntityManager.prototype.createCollectionIndexes = function (entityClassOrName, indexSpecs) {
340
335
  var metadata = this.connection.getMetadata(entityClassOrName);
341
- return this.queryRunner.createCollectionIndexes(metadata.tableName, indexSpecs);
336
+ return this.mongoQueryRunner.createCollectionIndexes(metadata.tableName, indexSpecs);
342
337
  };
343
338
  /**
344
339
  * Delete multiple documents on MongoDB.
345
340
  */
346
341
  MongoEntityManager.prototype.deleteMany = function (entityClassOrName, query, options) {
347
342
  var metadata = this.connection.getMetadata(entityClassOrName);
348
- return this.queryRunner.deleteMany(metadata.tableName, query, options);
343
+ return this.mongoQueryRunner.deleteMany(metadata.tableName, query, options);
349
344
  };
350
345
  /**
351
346
  * Delete a document on MongoDB.
352
347
  */
353
348
  MongoEntityManager.prototype.deleteOne = function (entityClassOrName, query, options) {
354
349
  var metadata = this.connection.getMetadata(entityClassOrName);
355
- return this.queryRunner.deleteOne(metadata.tableName, query, options);
350
+ return this.mongoQueryRunner.deleteOne(metadata.tableName, query, options);
356
351
  };
357
352
  /**
358
353
  * The distinct command returns returns a list of distinct values for the given key across a collection.
359
354
  */
360
355
  MongoEntityManager.prototype.distinct = function (entityClassOrName, key, query, options) {
361
356
  var metadata = this.connection.getMetadata(entityClassOrName);
362
- return this.queryRunner.distinct(metadata.tableName, key, query, options);
357
+ return this.mongoQueryRunner.distinct(metadata.tableName, key, query, options);
363
358
  };
364
359
  /**
365
360
  * Drops an index from this collection.
366
361
  */
367
362
  MongoEntityManager.prototype.dropCollectionIndex = function (entityClassOrName, indexName, options) {
368
363
  var metadata = this.connection.getMetadata(entityClassOrName);
369
- return this.queryRunner.dropCollectionIndex(metadata.tableName, indexName, options);
364
+ return this.mongoQueryRunner.dropCollectionIndex(metadata.tableName, indexName, options);
370
365
  };
371
366
  /**
372
367
  * Drops all indexes from the collection.
373
368
  */
374
369
  MongoEntityManager.prototype.dropCollectionIndexes = function (entityClassOrName) {
375
370
  var metadata = this.connection.getMetadata(entityClassOrName);
376
- return this.queryRunner.dropCollectionIndexes(metadata.tableName);
371
+ return this.mongoQueryRunner.dropCollectionIndexes(metadata.tableName);
377
372
  };
378
373
  /**
379
374
  * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.
380
375
  */
381
376
  MongoEntityManager.prototype.findOneAndDelete = function (entityClassOrName, query, options) {
382
377
  var metadata = this.connection.getMetadata(entityClassOrName);
383
- return this.queryRunner.findOneAndDelete(metadata.tableName, query, options);
378
+ return this.mongoQueryRunner.findOneAndDelete(metadata.tableName, query, options);
384
379
  };
385
380
  /**
386
381
  * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.
387
382
  */
388
383
  MongoEntityManager.prototype.findOneAndReplace = function (entityClassOrName, query, replacement, options) {
389
384
  var metadata = this.connection.getMetadata(entityClassOrName);
390
- return this.queryRunner.findOneAndReplace(metadata.tableName, query, replacement, options);
385
+ return this.mongoQueryRunner.findOneAndReplace(metadata.tableName, query, replacement, options);
391
386
  };
392
387
  /**
393
388
  * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.
394
389
  */
395
390
  MongoEntityManager.prototype.findOneAndUpdate = function (entityClassOrName, query, update, options) {
396
391
  var metadata = this.connection.getMetadata(entityClassOrName);
397
- return this.queryRunner.findOneAndUpdate(metadata.tableName, query, update, options);
392
+ return this.mongoQueryRunner.findOneAndUpdate(metadata.tableName, query, update, options);
398
393
  };
399
394
  /**
400
395
  * Execute a geo search using a geo haystack index on a collection.
401
396
  */
402
397
  MongoEntityManager.prototype.geoHaystackSearch = function (entityClassOrName, x, y, options) {
403
398
  var metadata = this.connection.getMetadata(entityClassOrName);
404
- return this.queryRunner.geoHaystackSearch(metadata.tableName, x, y, options);
399
+ return this.mongoQueryRunner.geoHaystackSearch(metadata.tableName, x, y, options);
405
400
  };
406
401
  /**
407
402
  * Execute the geoNear command to search for items in the collection.
408
403
  */
409
404
  MongoEntityManager.prototype.geoNear = function (entityClassOrName, x, y, options) {
410
405
  var metadata = this.connection.getMetadata(entityClassOrName);
411
- return this.queryRunner.geoNear(metadata.tableName, x, y, options);
406
+ return this.mongoQueryRunner.geoNear(metadata.tableName, x, y, options);
412
407
  };
413
408
  /**
414
409
  * Run a group command across a collection.
415
410
  */
416
411
  MongoEntityManager.prototype.group = function (entityClassOrName, keys, condition, initial, reduce, finalize, command, options) {
417
412
  var metadata = this.connection.getMetadata(entityClassOrName);
418
- return this.queryRunner.group(metadata.tableName, keys, condition, initial, reduce, finalize, command, options);
413
+ return this.mongoQueryRunner.group(metadata.tableName, keys, condition, initial, reduce, finalize, command, options);
419
414
  };
420
415
  /**
421
416
  * Retrieve all the indexes on the collection.
422
417
  */
423
418
  MongoEntityManager.prototype.collectionIndexes = function (entityClassOrName) {
424
419
  var metadata = this.connection.getMetadata(entityClassOrName);
425
- return this.queryRunner.collectionIndexes(metadata.tableName);
420
+ return this.mongoQueryRunner.collectionIndexes(metadata.tableName);
426
421
  };
427
422
  /**
428
423
  * Retrieve all the indexes on the collection.
429
424
  */
430
425
  MongoEntityManager.prototype.collectionIndexExists = function (entityClassOrName, indexes) {
431
426
  var metadata = this.connection.getMetadata(entityClassOrName);
432
- return this.queryRunner.collectionIndexExists(metadata.tableName, indexes);
427
+ return this.mongoQueryRunner.collectionIndexExists(metadata.tableName, indexes);
433
428
  };
434
429
  /**
435
430
  * Retrieves this collections index info.
436
431
  */
437
432
  MongoEntityManager.prototype.collectionIndexInformation = function (entityClassOrName, options) {
438
433
  var metadata = this.connection.getMetadata(entityClassOrName);
439
- return this.queryRunner.collectionIndexInformation(metadata.tableName, options);
434
+ return this.mongoQueryRunner.collectionIndexInformation(metadata.tableName, options);
440
435
  };
441
436
  /**
442
437
  * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.
443
438
  */
444
439
  MongoEntityManager.prototype.initializeOrderedBulkOp = function (entityClassOrName, options) {
445
440
  var metadata = this.connection.getMetadata(entityClassOrName);
446
- return this.queryRunner.initializeOrderedBulkOp(metadata.tableName, options);
441
+ return this.mongoQueryRunner.initializeOrderedBulkOp(metadata.tableName, options);
447
442
  };
448
443
  /**
449
444
  * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.
450
445
  */
451
446
  MongoEntityManager.prototype.initializeUnorderedBulkOp = function (entityClassOrName, options) {
452
447
  var metadata = this.connection.getMetadata(entityClassOrName);
453
- return this.queryRunner.initializeUnorderedBulkOp(metadata.tableName, options);
448
+ return this.mongoQueryRunner.initializeUnorderedBulkOp(metadata.tableName, options);
454
449
  };
455
450
  /**
456
451
  * Inserts an array of documents into MongoDB.
457
452
  */
458
453
  MongoEntityManager.prototype.insertMany = function (entityClassOrName, docs, options) {
459
454
  var metadata = this.connection.getMetadata(entityClassOrName);
460
- return this.queryRunner.insertMany(metadata.tableName, docs, options);
455
+ return this.mongoQueryRunner.insertMany(metadata.tableName, docs, options);
461
456
  };
462
457
  /**
463
458
  * Inserts a single document into MongoDB.
464
459
  */
465
460
  MongoEntityManager.prototype.insertOne = function (entityClassOrName, doc, options) {
466
461
  var metadata = this.connection.getMetadata(entityClassOrName);
467
- return this.queryRunner.insertOne(metadata.tableName, doc, options);
462
+ return this.mongoQueryRunner.insertOne(metadata.tableName, doc, options);
468
463
  };
469
464
  /**
470
465
  * Returns if the collection is a capped collection.
471
466
  */
472
467
  MongoEntityManager.prototype.isCapped = function (entityClassOrName) {
473
468
  var metadata = this.connection.getMetadata(entityClassOrName);
474
- return this.queryRunner.isCapped(metadata.tableName);
469
+ return this.mongoQueryRunner.isCapped(metadata.tableName);
475
470
  };
476
471
  /**
477
472
  * Get the list of all indexes information for the collection.
478
473
  */
479
474
  MongoEntityManager.prototype.listCollectionIndexes = function (entityClassOrName, options) {
480
475
  var metadata = this.connection.getMetadata(entityClassOrName);
481
- return this.queryRunner.listCollectionIndexes(metadata.tableName, options);
476
+ return this.mongoQueryRunner.listCollectionIndexes(metadata.tableName, options);
482
477
  };
483
478
  /**
484
479
  * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection.
485
480
  */
486
481
  MongoEntityManager.prototype.mapReduce = function (entityClassOrName, map, reduce, options) {
487
482
  var metadata = this.connection.getMetadata(entityClassOrName);
488
- return this.queryRunner.mapReduce(metadata.tableName, map, reduce, options);
483
+ return this.mongoQueryRunner.mapReduce(metadata.tableName, map, reduce, options);
489
484
  };
490
485
  /**
491
486
  * Return N number of parallel cursors for a collection allowing parallel reading of entire collection.
@@ -493,53 +488,53 @@ var MongoEntityManager = /** @class */ (function (_super) {
493
488
  */
494
489
  MongoEntityManager.prototype.parallelCollectionScan = function (entityClassOrName, options) {
495
490
  var metadata = this.connection.getMetadata(entityClassOrName);
496
- return this.queryRunner.parallelCollectionScan(metadata.tableName, options);
491
+ return this.mongoQueryRunner.parallelCollectionScan(metadata.tableName, options);
497
492
  };
498
493
  /**
499
494
  * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.
500
495
  */
501
496
  MongoEntityManager.prototype.reIndex = function (entityClassOrName) {
502
497
  var metadata = this.connection.getMetadata(entityClassOrName);
503
- return this.queryRunner.reIndex(metadata.tableName);
498
+ return this.mongoQueryRunner.reIndex(metadata.tableName);
504
499
  };
505
500
  /**
506
501
  * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.
507
502
  */
508
503
  MongoEntityManager.prototype.rename = function (entityClassOrName, newName, options) {
509
504
  var metadata = this.connection.getMetadata(entityClassOrName);
510
- return this.queryRunner.rename(metadata.tableName, newName, options);
505
+ return this.mongoQueryRunner.rename(metadata.tableName, newName, options);
511
506
  };
512
507
  /**
513
508
  * Replace a document on MongoDB.
514
509
  */
515
510
  MongoEntityManager.prototype.replaceOne = function (entityClassOrName, query, doc, options) {
516
511
  var metadata = this.connection.getMetadata(entityClassOrName);
517
- return this.queryRunner.replaceOne(metadata.tableName, query, doc, options);
512
+ return this.mongoQueryRunner.replaceOne(metadata.tableName, query, doc, options);
518
513
  };
519
514
  /**
520
515
  * Get all the collection statistics.
521
516
  */
522
517
  MongoEntityManager.prototype.stats = function (entityClassOrName, options) {
523
518
  var metadata = this.connection.getMetadata(entityClassOrName);
524
- return this.queryRunner.stats(metadata.tableName, options);
519
+ return this.mongoQueryRunner.stats(metadata.tableName, options);
525
520
  };
526
521
  MongoEntityManager.prototype.watch = function (entityClassOrName, pipeline, options) {
527
522
  var metadata = this.connection.getMetadata(entityClassOrName);
528
- return this.queryRunner.watch(metadata.tableName, pipeline, options);
523
+ return this.mongoQueryRunner.watch(metadata.tableName, pipeline, options);
529
524
  };
530
525
  /**
531
526
  * Update multiple documents on MongoDB.
532
527
  */
533
528
  MongoEntityManager.prototype.updateMany = function (entityClassOrName, query, update, options) {
534
529
  var metadata = this.connection.getMetadata(entityClassOrName);
535
- return this.queryRunner.updateMany(metadata.tableName, query, update, options);
530
+ return this.mongoQueryRunner.updateMany(metadata.tableName, query, update, options);
536
531
  };
537
532
  /**
538
533
  * Update a single document on MongoDB.
539
534
  */
540
535
  MongoEntityManager.prototype.updateOne = function (entityClassOrName, query, update, options) {
541
536
  var metadata = this.connection.getMetadata(entityClassOrName);
542
- return this.queryRunner.updateOne(metadata.tableName, query, update, options);
537
+ return this.mongoQueryRunner.updateOne(metadata.tableName, query, update, options);
543
538
  };
544
539
  // -------------------------------------------------------------------------
545
540
  // Protected Methods
@@ -603,6 +598,16 @@ var MongoEntityManager = /** @class */ (function (_super) {
603
598
  * Ensures given id is an id for query.
604
599
  */
605
600
  MongoEntityManager.prototype.convertMixedCriteria = function (metadata, idMap) {
601
+ var objectIdInstance = PlatformTools_1.PlatformTools.load("mongodb").ObjectID;
602
+ // check first if it's ObjectId compatible:
603
+ // string, number, Buffer, ObjectId or ObjectId-like
604
+ if (objectIdInstance.isValid(idMap)) {
605
+ return {
606
+ "_id": new objectIdInstance(idMap)
607
+ };
608
+ }
609
+ // if it's some other type of object build a query from the columns
610
+ // this check needs to be after the ObjectId check, because a valid ObjectId is also an Object instance
606
611
  if (idMap instanceof Object) {
607
612
  return metadata.columns.reduce(function (query, column) {
608
613
  var columnValue = column.getEntityValue(idMap);
@@ -611,10 +616,11 @@ var MongoEntityManager = /** @class */ (function (_super) {
611
616
  return query;
612
617
  }, {});
613
618
  }
614
- // means idMap is just object id
615
- var objectIdInstance = PlatformTools_1.PlatformTools.load("mongodb").ObjectID;
619
+ // last resort: try to convert it to an ObjectID anyway
620
+ // most likely it will fail, but we want to be backwards compatible and keep the same thrown Errors.
621
+ // it can still pass with null/undefined
616
622
  return {
617
- "_id": (idMap instanceof objectIdInstance) ? idMap : new objectIdInstance(idMap)
623
+ "_id": new objectIdInstance(idMap)
618
624
  };
619
625
  };
620
626
  /**
@@ -622,7 +628,7 @@ var MongoEntityManager = /** @class */ (function (_super) {
622
628
  */
623
629
  MongoEntityManager.prototype.applyEntityTransformationToCursor = function (metadata, cursor) {
624
630
  var ParentCursor = PlatformTools_1.PlatformTools.load("mongodb").Cursor;
625
- var queryRunner = this.queryRunner;
631
+ var queryRunner = this.mongoQueryRunner;
626
632
  cursor.toArray = function (callback) {
627
633
  if (callback) {
628
634
  ParentCursor.prototype.toArray.call(this, function (error, results) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entity-manager/MongoEntityManager.ts"],"names":[],"mappings":"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","file":"MongoEntityManager.js","sourcesContent":["import { Connection } from \"../connection/Connection\";\nimport { EntityManager } from \"./EntityManager\";\nimport { EntityTarget } from \"../common/EntityTarget\";\nimport {\n AggregationCursor,\n BulkWriteOpResultObject,\n ChangeStream,\n ChangeStreamOptions,\n Code,\n Collection,\n CollectionAggregationOptions,\n CollectionBulkWriteOptions,\n CollectionInsertManyOptions,\n CollectionInsertOneOptions,\n CollectionOptions,\n CollStats,\n CommandCursor,\n Cursor,\n CursorResult,\n DeleteWriteOpResultObject,\n FindAndModifyWriteOpResultObject,\n FindOneAndReplaceOption,\n GeoHaystackSearchOptions,\n GeoNearOptions,\n InsertOneWriteOpResult,\n InsertWriteOpResult,\n MapReduceOptions,\n MongoCallback,\n MongoCountPreferences,\n MongodbIndexOptions,\n MongoError,\n ObjectID,\n OrderedBulkOperation,\n ParallelCollectionScanOptions,\n ReadPreference,\n ReplaceOneOptions,\n UnorderedBulkOperation,\n UpdateWriteOpResult\n} from \"../driver/mongodb/typings\";\nimport { ObjectLiteral } from \"../common/ObjectLiteral\";\nimport { MongoQueryRunner } from \"../driver/mongodb/MongoQueryRunner\";\nimport { MongoDriver } from \"../driver/mongodb/MongoDriver\";\nimport { DocumentToEntityTransformer } from \"../query-builder/transformer/DocumentToEntityTransformer\";\nimport { FindManyOptions } from \"../find-options/FindManyOptions\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\nimport { FindOneOptions } from \"../find-options/FindOneOptions\";\nimport { PlatformTools } from \"../platform/PlatformTools\";\nimport { DeepPartial } from \"../common/DeepPartial\";\nimport { QueryDeepPartialEntity } from \"../query-builder/QueryPartialEntity\";\nimport { InsertResult } from \"../query-builder/result/InsertResult\";\nimport { UpdateResult } from \"../query-builder/result/UpdateResult\";\nimport { DeleteResult } from \"../query-builder/result/DeleteResult\";\nimport { EntityMetadata } from \"../metadata/EntityMetadata\";\nimport { FindConditions } from \"../index\";\nimport { BroadcasterResult } from \"../subscriber/BroadcasterResult\";\n\n/**\n * Entity manager supposed to work with any entity, automatically find its repository and call its methods,\n * whatever entity type are you passing.\n *\n * This implementation is used for MongoDB driver which has some specifics in its EntityManager.\n */\nexport class MongoEntityManager extends EntityManager {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n }\n\n // -------------------------------------------------------------------------\n // Overridden Properties\n // -------------------------------------------------------------------------\n\n /**\n * Gets query runner used to execute queries.\n */\n get queryRunner(): MongoQueryRunner {\n return (this.connection.driver as MongoDriver).queryRunner!;\n }\n\n // -------------------------------------------------------------------------\n // Overridden Methods\n // -------------------------------------------------------------------------\n\n /**\n * Finds entities that match given find options or conditions.\n */\n async find<Entity>(entityClassOrName: EntityTarget<Entity>, optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<Entity[]> {\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions);\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n }\n return cursor.toArray();\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n async findAndCount<Entity>(entityClassOrName: EntityTarget<Entity>, optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<[Entity[], number]> {\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions);\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n\n }\n const [results, count] = await Promise.all<any>([\n cursor.toArray(),\n this.count(entityClassOrName, query),\n ]);\n return [results, parseInt(count)];\n }\n\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n */\n async findByIds<Entity>(entityClassOrName: EntityTarget<Entity>, ids: any[], optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<Entity[]> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions) || {};\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n query[\"_id\"] = {\n $in: ids.map(id => {\n if (id instanceof objectIdInstance)\n return id;\n\n return id[metadata.objectIdColumn!.propertyName];\n })\n };\n\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n }\n return await cursor.toArray();\n }\n\n /**\n * Finds first entity that matches given conditions and/or find options.\n */\n async findOne<Entity>(entityClassOrName: EntityTarget<Entity>,\n optionsOrConditions?: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindOneOptions<Entity> | DeepPartial<Entity>,\n maybeOptions?: FindOneOptions<Entity>): Promise<Entity | undefined> {\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n const id = (optionsOrConditions instanceof objectIdInstance) || typeof optionsOrConditions === \"string\" ? optionsOrConditions : undefined;\n const findOneOptionsOrConditions = (id ? maybeOptions : optionsOrConditions) as any;\n const query = this.convertFindOneOptionsOrConditionsToMongodbQuery(findOneOptionsOrConditions) || {};\n if (id) {\n query[\"_id\"] = (id instanceof objectIdInstance) ? id : new objectIdInstance(id);\n }\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindOneOptions(findOneOptionsOrConditions)) {\n if (findOneOptionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(findOneOptionsOrConditions.select));\n if (findOneOptionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(findOneOptionsOrConditions.order));\n }\n\n // const result = await cursor.limit(1).next();\n const result = await cursor.limit(1).toArray();\n return result.length > 0 ? result[0] : undefined;\n }\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n * You can execute bulk inserts using this method.\n */\n async insert<Entity>(target: EntityTarget<Entity>, entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[]): Promise<InsertResult> {\n // todo: convert entity to its database name\n const result = new InsertResult();\n if (Array.isArray(entity)) {\n result.raw = await this.insertMany(target, entity);\n Object.keys(result.raw.insertedIds).forEach((key: any) => {\n let insertedId = result.raw.insertedIds[key];\n result.generatedMaps.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), insertedId)!);\n result.identifiers.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), insertedId)!);\n });\n\n } else {\n result.raw = await this.insertOne(target, entity);\n result.generatedMaps.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), result.raw.insertedId)!);\n result.identifiers.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), result.raw.insertedId)!);\n }\n\n return result;\n }\n\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n async update<Entity>(target: EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions<Entity>, partialEntity: QueryDeepPartialEntity<Entity>): Promise<UpdateResult> {\n if (Array.isArray(criteria)) {\n await Promise.all((criteria as any[]).map(criteriaItem => {\n return this.update(target, criteriaItem, partialEntity);\n }));\n\n } else {\n const metadata = this.connection.getMetadata(target);\n await this.updateOne(target, this.convertMixedCriteria(metadata, criteria), { $set: partialEntity });\n }\n\n return new UpdateResult();\n }\n\n /**\n * Deletes entities by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n async delete<Entity>(target: EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions<Entity>): Promise<DeleteResult> {\n if (Array.isArray(criteria)) {\n await Promise.all((criteria as any[]).map(criteriaItem => {\n return this.delete(target, criteriaItem);\n }));\n\n } else {\n await this.deleteOne(target, this.convertMixedCriteria(this.connection.getMetadata(target), criteria));\n }\n\n return new DeleteResult();\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n */\n createCursor<Entity, T = any>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral): Cursor<T> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.cursor(metadata.tableName, query);\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n createEntityCursor<Entity>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral): Cursor<Entity> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const cursor = this.createCursor(entityClassOrName, query);\n this.applyEntityTransformationToCursor(metadata, cursor);\n return cursor;\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n */\n aggregate<Entity, R = any>(entityClassOrName: EntityTarget<Entity>, pipeline: ObjectLiteral[], options?: CollectionAggregationOptions): AggregationCursor<R> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.aggregate(metadata.tableName, pipeline, options);\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n aggregateEntity<Entity>(entityClassOrName: EntityTarget<Entity>, pipeline: ObjectLiteral[], options?: CollectionAggregationOptions): AggregationCursor<Entity> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const cursor = this.queryRunner.aggregate(metadata.tableName, pipeline, options);\n this.applyEntityTransformationToCursor(metadata, cursor);\n return cursor;\n }\n\n /**\n * Perform a bulkWrite operation without a fluent API.\n */\n bulkWrite<Entity>(entityClassOrName: EntityTarget<Entity>, operations: ObjectLiteral[], options?: CollectionBulkWriteOptions): Promise<BulkWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.bulkWrite(metadata.tableName, operations, options);\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n count<Entity>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral, options?: MongoCountPreferences): Promise<number> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.count(metadata.tableName, query, options);\n }\n\n /**\n * Creates an index on the db and collection.\n */\n createCollectionIndex<Entity>(entityClassOrName: EntityTarget<Entity>, fieldOrSpec: string | any, options?: MongodbIndexOptions): Promise<string> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.createCollectionIndex(metadata.tableName, fieldOrSpec, options);\n }\n\n /**\n * Creates multiple indexes in the collection, this method is only supported for MongoDB 2.6 or higher.\n * Earlier version of MongoDB will throw a command not supported error.\n * Index specifications are defined at http://docs.mongodb.org/manual/reference/command/createIndexes/.\n */\n createCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>, indexSpecs: ObjectLiteral[]): Promise<void> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.createCollectionIndexes(metadata.tableName, indexSpecs);\n }\n\n /**\n * Delete multiple documents on MongoDB.\n */\n deleteMany<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: CollectionOptions): Promise<DeleteWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.deleteMany(metadata.tableName, query, options);\n }\n\n /**\n * Delete a document on MongoDB.\n */\n deleteOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: CollectionOptions): Promise<DeleteWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.deleteOne(metadata.tableName, query, options);\n }\n\n /**\n * The distinct command returns returns a list of distinct values for the given key across a collection.\n */\n distinct<Entity>(entityClassOrName: EntityTarget<Entity>, key: string, query: ObjectLiteral, options?: { readPreference?: ReadPreference | string }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.distinct(metadata.tableName, key, query, options);\n }\n\n /**\n * Drops an index from this collection.\n */\n dropCollectionIndex<Entity>(entityClassOrName: EntityTarget<Entity>, indexName: string, options?: CollectionOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.dropCollectionIndex(metadata.tableName, indexName, options);\n }\n\n /**\n * Drops all indexes from the collection.\n */\n dropCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.dropCollectionIndexes(metadata.tableName);\n }\n\n /**\n * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndDelete<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: { projection?: Object, sort?: Object, maxTimeMS?: number }): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.findOneAndDelete(metadata.tableName, query, options);\n }\n\n /**\n * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndReplace<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, replacement: Object, options?: FindOneAndReplaceOption): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.findOneAndReplace(metadata.tableName, query, replacement, options);\n }\n\n /**\n * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndUpdate<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: Object, options?: FindOneAndReplaceOption): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.findOneAndUpdate(metadata.tableName, query, update, options);\n }\n\n /**\n * Execute a geo search using a geo haystack index on a collection.\n */\n geoHaystackSearch<Entity>(entityClassOrName: EntityTarget<Entity>, x: number, y: number, options?: GeoHaystackSearchOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.geoHaystackSearch(metadata.tableName, x, y, options);\n }\n\n /**\n * Execute the geoNear command to search for items in the collection.\n */\n geoNear<Entity>(entityClassOrName: EntityTarget<Entity>, x: number, y: number, options?: GeoNearOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.geoNear(metadata.tableName, x, y, options);\n }\n\n /**\n * Run a group command across a collection.\n */\n group<Entity>(entityClassOrName: EntityTarget<Entity>, keys: Object | Array<any> | Function | Code, condition: Object, initial: Object, reduce: Function | Code, finalize: Function | Code, command: boolean, options?: { readPreference?: ReadPreference | string }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.group(metadata.tableName, keys, condition, initial, reduce, finalize, command, options);\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.collectionIndexes(metadata.tableName);\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexExists<Entity>(entityClassOrName: EntityTarget<Entity>, indexes: string | string[]): Promise<boolean> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.collectionIndexExists(metadata.tableName, indexes);\n }\n\n /**\n * Retrieves this collections index info.\n */\n collectionIndexInformation<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { full: boolean }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.collectionIndexInformation(metadata.tableName, options);\n }\n\n /**\n * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.\n */\n initializeOrderedBulkOp<Entity>(entityClassOrName: EntityTarget<Entity>, options?: CollectionOptions): OrderedBulkOperation {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.initializeOrderedBulkOp(metadata.tableName, options);\n }\n\n /**\n * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.\n */\n initializeUnorderedBulkOp<Entity>(entityClassOrName: EntityTarget<Entity>, options?: CollectionOptions): UnorderedBulkOperation {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.initializeUnorderedBulkOp(metadata.tableName, options);\n }\n\n /**\n * Inserts an array of documents into MongoDB.\n */\n insertMany<Entity>(entityClassOrName: EntityTarget<Entity>, docs: ObjectLiteral[], options?: CollectionInsertManyOptions): Promise<InsertWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.insertMany(metadata.tableName, docs, options);\n }\n\n /**\n * Inserts a single document into MongoDB.\n */\n insertOne<Entity>(entityClassOrName: EntityTarget<Entity>, doc: ObjectLiteral, options?: CollectionInsertOneOptions): Promise<InsertOneWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.insertOne(metadata.tableName, doc, options);\n }\n\n /**\n * Returns if the collection is a capped collection.\n */\n isCapped<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.isCapped(metadata.tableName);\n }\n\n /**\n * Get the list of all indexes information for the collection.\n */\n listCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { batchSize?: number, readPreference?: ReadPreference | string }): CommandCursor {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.listCollectionIndexes(metadata.tableName, options);\n }\n\n /**\n * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection.\n */\n mapReduce<Entity>(entityClassOrName: EntityTarget<Entity>, map: Function | string, reduce: Function | string, options?: MapReduceOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.mapReduce(metadata.tableName, map, reduce, options);\n }\n\n /**\n * Return N number of parallel cursors for a collection allowing parallel reading of entire collection.\n * There are no ordering guarantees for returned results.\n */\n parallelCollectionScan<Entity>(entityClassOrName: EntityTarget<Entity>, options?: ParallelCollectionScanOptions): Promise<Cursor<Entity>[]> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.parallelCollectionScan(metadata.tableName, options);\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n reIndex<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.reIndex(metadata.tableName);\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n rename<Entity>(entityClassOrName: EntityTarget<Entity>, newName: string, options?: { dropTarget?: boolean }): Promise<Collection<any>> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.rename(metadata.tableName, newName, options);\n }\n\n /**\n * Replace a document on MongoDB.\n */\n replaceOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, doc: ObjectLiteral, options?: ReplaceOneOptions): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.replaceOne(metadata.tableName, query, doc, options);\n }\n\n /**\n * Get all the collection statistics.\n */\n stats<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { scale: number }): Promise<CollStats> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.stats(metadata.tableName, options);\n }\n\n watch<Entity>(entityClassOrName: EntityTarget<Entity>, pipeline?: Object[], options?: ChangeStreamOptions): ChangeStream {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.watch(metadata.tableName, pipeline, options);\n }\n\n /**\n * Update multiple documents on MongoDB.\n */\n updateMany<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: ObjectLiteral, options?: { upsert?: boolean, w?: any, wtimeout?: number, j?: boolean }): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.updateMany(metadata.tableName, query, update, options);\n }\n\n /**\n * Update a single document on MongoDB.\n */\n updateOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: ObjectLiteral, options?: ReplaceOneOptions): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.queryRunner.updateOne(metadata.tableName, query, update, options);\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts FindManyOptions to mongodb query.\n */\n protected convertFindManyOptionsOrConditionsToMongodbQuery<Entity>(optionsOrConditions: FindManyOptions<Entity> | Partial<Entity> | undefined): ObjectLiteral | undefined {\n if (!optionsOrConditions)\n return undefined;\n\n if (FindOptionsUtils.isFindManyOptions<Entity>(optionsOrConditions))\n // If where condition is passed as a string which contains sql we have to ignore\n // as mongo is not a sql database\n return typeof optionsOrConditions.where === \"string\"\n ? {}\n : optionsOrConditions.where;\n\n return optionsOrConditions;\n }\n\n /**\n * Converts FindOneOptions to mongodb query.\n */\n protected convertFindOneOptionsOrConditionsToMongodbQuery<Entity>(optionsOrConditions: FindOneOptions<Entity> | Partial<Entity> | undefined): ObjectLiteral | undefined {\n if (!optionsOrConditions)\n return undefined;\n\n if (FindOptionsUtils.isFindOneOptions<Entity>(optionsOrConditions))\n // If where condition is passed as a string which contains sql we have to ignore\n // as mongo is not a sql database\n return typeof optionsOrConditions.where === \"string\"\n ? {}\n : optionsOrConditions.where;\n\n return optionsOrConditions;\n }\n\n /**\n * Converts FindOptions into mongodb order by criteria.\n */\n protected convertFindOptionsOrderToOrderCriteria(order: ObjectLiteral) {\n return Object.keys(order).reduce((orderCriteria, key) => {\n switch (order[key]) {\n case \"DESC\":\n orderCriteria[key] = -1;\n break;\n case \"ASC\":\n orderCriteria[key] = 1;\n break;\n default:\n orderCriteria[key] = order[key];\n }\n return orderCriteria;\n }, {} as ObjectLiteral);\n }\n\n /**\n * Converts FindOptions into mongodb select by criteria.\n */\n protected convertFindOptionsSelectToProjectCriteria(selects: (keyof any)[]) {\n return selects.reduce((projectCriteria, key) => {\n projectCriteria[key] = 1;\n return projectCriteria;\n }, {} as any);\n }\n\n /**\n * Ensures given id is an id for query.\n */\n protected convertMixedCriteria(metadata: EntityMetadata, idMap: any): ObjectLiteral {\n if (idMap instanceof Object) {\n return metadata.columns.reduce((query, column) => {\n const columnValue = column.getEntityValue(idMap);\n if (columnValue !== undefined)\n query[column.databasePath] = columnValue;\n return query;\n }, {} as any);\n }\n\n // means idMap is just object id\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n return {\n \"_id\": (idMap instanceof objectIdInstance) ? idMap : new objectIdInstance(idMap)\n };\n }\n\n /**\n * Overrides cursor's toArray and next methods to convert results to entity automatically.\n */\n protected applyEntityTransformationToCursor<Entity>(metadata: EntityMetadata, cursor: Cursor<Entity> | AggregationCursor<Entity>) {\n const ParentCursor = PlatformTools.load(\"mongodb\").Cursor;\n const queryRunner = this.queryRunner;\n cursor.toArray = function (callback?: MongoCallback<Entity[]>) {\n if (callback) {\n ParentCursor.prototype.toArray.call(this, (error: MongoError, results: Entity[]): void => {\n if (error) {\n callback(error, results);\n return;\n }\n\n const transformer = new DocumentToEntityTransformer();\n const entities = transformer.transformAll(results, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, entities);\n\n Promise.all(broadcastResult.promises).then(() => callback(error, entities));\n });\n } else {\n return ParentCursor.prototype.toArray.call(this).then((results: Entity[]) => {\n const transformer = new DocumentToEntityTransformer();\n const entities = transformer.transformAll(results, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, entities);\n\n return Promise.all(broadcastResult.promises).then(() => entities);\n });\n }\n };\n cursor.next = function (callback?: MongoCallback<CursorResult>) {\n if (callback) {\n ParentCursor.prototype.next.call(this, (error: MongoError, result: CursorResult): void => {\n if (error || !result) {\n callback(error, result);\n return;\n }\n\n const transformer = new DocumentToEntityTransformer();\n const entity = transformer.transform(result, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, [entity]);\n\n Promise.all(broadcastResult.promises).then(() => callback(error, entity));\n });\n } else {\n return ParentCursor.prototype.next.call(this).then((result: Entity) => {\n if (!result) return result;\n\n const transformer = new DocumentToEntityTransformer();\n const entity = transformer.transform(result, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, [entity]);\n\n return Promise.all(broadcastResult.promises).then(() => entity);\n });\n }\n };\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/entity-manager/MongoEntityManager.ts"],"names":[],"mappings":"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","file":"MongoEntityManager.js","sourcesContent":["import { Connection } from \"../connection/Connection\";\nimport { EntityManager } from \"./EntityManager\";\nimport { EntityTarget } from \"../common/EntityTarget\";\nimport {\n AggregationCursor,\n BulkWriteOpResultObject,\n ChangeStream,\n ChangeStreamOptions,\n Code,\n Collection,\n CollectionAggregationOptions,\n CollectionBulkWriteOptions,\n CollectionInsertManyOptions,\n CollectionInsertOneOptions,\n CollectionOptions,\n CollStats,\n CommandCursor,\n Cursor,\n CursorResult,\n DeleteWriteOpResultObject,\n FindAndModifyWriteOpResultObject,\n FindOneAndReplaceOption,\n GeoHaystackSearchOptions,\n GeoNearOptions,\n InsertOneWriteOpResult,\n InsertWriteOpResult,\n MapReduceOptions,\n MongoCallback,\n MongoCountPreferences,\n MongodbIndexOptions,\n MongoError,\n ObjectID,\n OrderedBulkOperation,\n ParallelCollectionScanOptions,\n ReadPreference,\n ReplaceOneOptions,\n UnorderedBulkOperation,\n UpdateWriteOpResult\n} from \"../driver/mongodb/typings\";\nimport { ObjectLiteral } from \"../common/ObjectLiteral\";\nimport { MongoQueryRunner } from \"../driver/mongodb/MongoQueryRunner\";\nimport { MongoDriver } from \"../driver/mongodb/MongoDriver\";\nimport { DocumentToEntityTransformer } from \"../query-builder/transformer/DocumentToEntityTransformer\";\nimport { FindManyOptions } from \"../find-options/FindManyOptions\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\nimport { FindOneOptions } from \"../find-options/FindOneOptions\";\nimport { PlatformTools } from \"../platform/PlatformTools\";\nimport { DeepPartial } from \"../common/DeepPartial\";\nimport { QueryDeepPartialEntity } from \"../query-builder/QueryPartialEntity\";\nimport { InsertResult } from \"../query-builder/result/InsertResult\";\nimport { UpdateResult } from \"../query-builder/result/UpdateResult\";\nimport { DeleteResult } from \"../query-builder/result/DeleteResult\";\nimport { EntityMetadata } from \"../metadata/EntityMetadata\";\nimport { FindConditions } from \"../index\";\nimport { BroadcasterResult } from \"../subscriber/BroadcasterResult\";\n\n/**\n * Entity manager supposed to work with any entity, automatically find its repository and call its methods,\n * whatever entity type are you passing.\n *\n * This implementation is used for MongoDB driver which has some specifics in its EntityManager.\n */\nexport class MongoEntityManager extends EntityManager {\n\n get mongoQueryRunner(): MongoQueryRunner {\n return (this.connection.driver as MongoDriver).queryRunner as MongoQueryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n }\n\n // -------------------------------------------------------------------------\n // Overridden Methods\n // -------------------------------------------------------------------------\n\n /**\n * Finds entities that match given find options or conditions.\n */\n async find<Entity>(entityClassOrName: EntityTarget<Entity>, optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<Entity[]> {\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions);\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n }\n return cursor.toArray();\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n async findAndCount<Entity>(entityClassOrName: EntityTarget<Entity>, optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<[Entity[], number]> {\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions);\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n\n }\n const [results, count] = await Promise.all<any>([\n cursor.toArray(),\n this.count(entityClassOrName, query),\n ]);\n return [results, parseInt(count)];\n }\n\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n */\n async findByIds<Entity>(entityClassOrName: EntityTarget<Entity>, ids: any[], optionsOrConditions?: FindManyOptions<Entity> | Partial<Entity>): Promise<Entity[]> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const query = this.convertFindManyOptionsOrConditionsToMongodbQuery(optionsOrConditions) || {};\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n query[\"_id\"] = {\n $in: ids.map(id => {\n if (id instanceof objectIdInstance)\n return id;\n\n return id[metadata.objectIdColumn!.propertyName];\n })\n };\n\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindManyOptions(optionsOrConditions)) {\n if (optionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(optionsOrConditions.select));\n if (optionsOrConditions.skip)\n cursor.skip(optionsOrConditions.skip);\n if (optionsOrConditions.take)\n cursor.limit(optionsOrConditions.take);\n if (optionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(optionsOrConditions.order));\n }\n return await cursor.toArray();\n }\n\n /**\n * Finds first entity that matches given conditions and/or find options.\n */\n async findOne<Entity>(entityClassOrName: EntityTarget<Entity>,\n optionsOrConditions?: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindOneOptions<Entity> | DeepPartial<Entity>,\n maybeOptions?: FindOneOptions<Entity>): Promise<Entity | undefined> {\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n const id = (optionsOrConditions instanceof objectIdInstance) || typeof optionsOrConditions === \"string\" ? optionsOrConditions : undefined;\n const findOneOptionsOrConditions = (id ? maybeOptions : optionsOrConditions) as any;\n const query = this.convertFindOneOptionsOrConditionsToMongodbQuery(findOneOptionsOrConditions) || {};\n if (id) {\n query[\"_id\"] = (id instanceof objectIdInstance) ? id : new objectIdInstance(id);\n }\n const cursor = await this.createEntityCursor(entityClassOrName, query);\n if (FindOptionsUtils.isFindOneOptions(findOneOptionsOrConditions)) {\n if (findOneOptionsOrConditions.select)\n cursor.project(this.convertFindOptionsSelectToProjectCriteria(findOneOptionsOrConditions.select));\n if (findOneOptionsOrConditions.order)\n cursor.sort(this.convertFindOptionsOrderToOrderCriteria(findOneOptionsOrConditions.order));\n }\n\n // const result = await cursor.limit(1).next();\n const result = await cursor.limit(1).toArray();\n return result.length > 0 ? result[0] : undefined;\n }\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n * You can execute bulk inserts using this method.\n */\n async insert<Entity>(target: EntityTarget<Entity>, entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[]): Promise<InsertResult> {\n // todo: convert entity to its database name\n const result = new InsertResult();\n if (Array.isArray(entity)) {\n result.raw = await this.insertMany(target, entity);\n Object.keys(result.raw.insertedIds).forEach((key: any) => {\n let insertedId = result.raw.insertedIds[key];\n result.generatedMaps.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), insertedId)!);\n result.identifiers.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), insertedId)!);\n });\n\n } else {\n result.raw = await this.insertOne(target, entity);\n result.generatedMaps.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), result.raw.insertedId)!);\n result.identifiers.push(this.connection.driver.createGeneratedMap(this.connection.getMetadata(target), result.raw.insertedId)!);\n }\n\n return result;\n }\n\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n async update<Entity>(target: EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions<Entity>, partialEntity: QueryDeepPartialEntity<Entity>): Promise<UpdateResult> {\n if (Array.isArray(criteria)) {\n await Promise.all((criteria as any[]).map(criteriaItem => {\n return this.update(target, criteriaItem, partialEntity);\n }));\n\n } else {\n const metadata = this.connection.getMetadata(target);\n await this.updateOne(target, this.convertMixedCriteria(metadata, criteria), { $set: partialEntity });\n }\n\n return new UpdateResult();\n }\n\n /**\n * Deletes entities by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n async delete<Entity>(target: EntityTarget<Entity>, criteria: string | string[] | number | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions<Entity>): Promise<DeleteResult> {\n if (Array.isArray(criteria)) {\n await Promise.all((criteria as any[]).map(criteriaItem => {\n return this.delete(target, criteriaItem);\n }));\n\n } else {\n await this.deleteOne(target, this.convertMixedCriteria(this.connection.getMetadata(target), criteria));\n }\n\n return new DeleteResult();\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n */\n createCursor<Entity, T = any>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral): Cursor<T> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.cursor(metadata.tableName, query);\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n createEntityCursor<Entity>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral): Cursor<Entity> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const cursor = this.createCursor(entityClassOrName, query);\n this.applyEntityTransformationToCursor(metadata, cursor);\n return cursor;\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n */\n aggregate<Entity, R = any>(entityClassOrName: EntityTarget<Entity>, pipeline: ObjectLiteral[], options?: CollectionAggregationOptions): AggregationCursor<R> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.aggregate(metadata.tableName, pipeline, options);\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n aggregateEntity<Entity>(entityClassOrName: EntityTarget<Entity>, pipeline: ObjectLiteral[], options?: CollectionAggregationOptions): AggregationCursor<Entity> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n const cursor = this.mongoQueryRunner.aggregate(metadata.tableName, pipeline, options);\n this.applyEntityTransformationToCursor(metadata, cursor);\n return cursor;\n }\n\n /**\n * Perform a bulkWrite operation without a fluent API.\n */\n bulkWrite<Entity>(entityClassOrName: EntityTarget<Entity>, operations: ObjectLiteral[], options?: CollectionBulkWriteOptions): Promise<BulkWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.bulkWrite(metadata.tableName, operations, options);\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n count<Entity>(entityClassOrName: EntityTarget<Entity>, query?: ObjectLiteral, options?: MongoCountPreferences): Promise<number> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.count(metadata.tableName, query, options);\n }\n\n /**\n * Creates an index on the db and collection.\n */\n createCollectionIndex<Entity>(entityClassOrName: EntityTarget<Entity>, fieldOrSpec: string | any, options?: MongodbIndexOptions): Promise<string> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.createCollectionIndex(metadata.tableName, fieldOrSpec, options);\n }\n\n /**\n * Creates multiple indexes in the collection, this method is only supported for MongoDB 2.6 or higher.\n * Earlier version of MongoDB will throw a command not supported error.\n * Index specifications are defined at http://docs.mongodb.org/manual/reference/command/createIndexes/.\n */\n createCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>, indexSpecs: ObjectLiteral[]): Promise<void> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.createCollectionIndexes(metadata.tableName, indexSpecs);\n }\n\n /**\n * Delete multiple documents on MongoDB.\n */\n deleteMany<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: CollectionOptions): Promise<DeleteWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.deleteMany(metadata.tableName, query, options);\n }\n\n /**\n * Delete a document on MongoDB.\n */\n deleteOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: CollectionOptions): Promise<DeleteWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.deleteOne(metadata.tableName, query, options);\n }\n\n /**\n * The distinct command returns returns a list of distinct values for the given key across a collection.\n */\n distinct<Entity>(entityClassOrName: EntityTarget<Entity>, key: string, query: ObjectLiteral, options?: { readPreference?: ReadPreference | string }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.distinct(metadata.tableName, key, query, options);\n }\n\n /**\n * Drops an index from this collection.\n */\n dropCollectionIndex<Entity>(entityClassOrName: EntityTarget<Entity>, indexName: string, options?: CollectionOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.dropCollectionIndex(metadata.tableName, indexName, options);\n }\n\n /**\n * Drops all indexes from the collection.\n */\n dropCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.dropCollectionIndexes(metadata.tableName);\n }\n\n /**\n * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndDelete<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, options?: { projection?: Object, sort?: Object, maxTimeMS?: number }): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.findOneAndDelete(metadata.tableName, query, options);\n }\n\n /**\n * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndReplace<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, replacement: Object, options?: FindOneAndReplaceOption): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.findOneAndReplace(metadata.tableName, query, replacement, options);\n }\n\n /**\n * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndUpdate<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: Object, options?: FindOneAndReplaceOption): Promise<FindAndModifyWriteOpResultObject> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.findOneAndUpdate(metadata.tableName, query, update, options);\n }\n\n /**\n * Execute a geo search using a geo haystack index on a collection.\n */\n geoHaystackSearch<Entity>(entityClassOrName: EntityTarget<Entity>, x: number, y: number, options?: GeoHaystackSearchOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.geoHaystackSearch(metadata.tableName, x, y, options);\n }\n\n /**\n * Execute the geoNear command to search for items in the collection.\n */\n geoNear<Entity>(entityClassOrName: EntityTarget<Entity>, x: number, y: number, options?: GeoNearOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.geoNear(metadata.tableName, x, y, options);\n }\n\n /**\n * Run a group command across a collection.\n */\n group<Entity>(entityClassOrName: EntityTarget<Entity>, keys: Object | Array<any> | Function | Code, condition: Object, initial: Object, reduce: Function | Code, finalize: Function | Code, command: boolean, options?: { readPreference?: ReadPreference | string }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.group(metadata.tableName, keys, condition, initial, reduce, finalize, command, options);\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.collectionIndexes(metadata.tableName);\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexExists<Entity>(entityClassOrName: EntityTarget<Entity>, indexes: string | string[]): Promise<boolean> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.collectionIndexExists(metadata.tableName, indexes);\n }\n\n /**\n * Retrieves this collections index info.\n */\n collectionIndexInformation<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { full: boolean }): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.collectionIndexInformation(metadata.tableName, options);\n }\n\n /**\n * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.\n */\n initializeOrderedBulkOp<Entity>(entityClassOrName: EntityTarget<Entity>, options?: CollectionOptions): OrderedBulkOperation {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.initializeOrderedBulkOp(metadata.tableName, options);\n }\n\n /**\n * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.\n */\n initializeUnorderedBulkOp<Entity>(entityClassOrName: EntityTarget<Entity>, options?: CollectionOptions): UnorderedBulkOperation {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.initializeUnorderedBulkOp(metadata.tableName, options);\n }\n\n /**\n * Inserts an array of documents into MongoDB.\n */\n insertMany<Entity>(entityClassOrName: EntityTarget<Entity>, docs: ObjectLiteral[], options?: CollectionInsertManyOptions): Promise<InsertWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.insertMany(metadata.tableName, docs, options);\n }\n\n /**\n * Inserts a single document into MongoDB.\n */\n insertOne<Entity>(entityClassOrName: EntityTarget<Entity>, doc: ObjectLiteral, options?: CollectionInsertOneOptions): Promise<InsertOneWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.insertOne(metadata.tableName, doc, options);\n }\n\n /**\n * Returns if the collection is a capped collection.\n */\n isCapped<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.isCapped(metadata.tableName);\n }\n\n /**\n * Get the list of all indexes information for the collection.\n */\n listCollectionIndexes<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { batchSize?: number, readPreference?: ReadPreference | string }): CommandCursor {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.listCollectionIndexes(metadata.tableName, options);\n }\n\n /**\n * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection.\n */\n mapReduce<Entity>(entityClassOrName: EntityTarget<Entity>, map: Function | string, reduce: Function | string, options?: MapReduceOptions): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.mapReduce(metadata.tableName, map, reduce, options);\n }\n\n /**\n * Return N number of parallel cursors for a collection allowing parallel reading of entire collection.\n * There are no ordering guarantees for returned results.\n */\n parallelCollectionScan<Entity>(entityClassOrName: EntityTarget<Entity>, options?: ParallelCollectionScanOptions): Promise<Cursor<Entity>[]> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.parallelCollectionScan(metadata.tableName, options);\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n reIndex<Entity>(entityClassOrName: EntityTarget<Entity>): Promise<any> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.reIndex(metadata.tableName);\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n rename<Entity>(entityClassOrName: EntityTarget<Entity>, newName: string, options?: { dropTarget?: boolean }): Promise<Collection<any>> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.rename(metadata.tableName, newName, options);\n }\n\n /**\n * Replace a document on MongoDB.\n */\n replaceOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, doc: ObjectLiteral, options?: ReplaceOneOptions): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.replaceOne(metadata.tableName, query, doc, options);\n }\n\n /**\n * Get all the collection statistics.\n */\n stats<Entity>(entityClassOrName: EntityTarget<Entity>, options?: { scale: number }): Promise<CollStats> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.stats(metadata.tableName, options);\n }\n\n watch<Entity>(entityClassOrName: EntityTarget<Entity>, pipeline?: Object[], options?: ChangeStreamOptions): ChangeStream {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.watch(metadata.tableName, pipeline, options);\n }\n\n /**\n * Update multiple documents on MongoDB.\n */\n updateMany<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: ObjectLiteral, options?: { upsert?: boolean, w?: any, wtimeout?: number, j?: boolean }): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.updateMany(metadata.tableName, query, update, options);\n }\n\n /**\n * Update a single document on MongoDB.\n */\n updateOne<Entity>(entityClassOrName: EntityTarget<Entity>, query: ObjectLiteral, update: ObjectLiteral, options?: ReplaceOneOptions): Promise<UpdateWriteOpResult> {\n const metadata = this.connection.getMetadata(entityClassOrName);\n return this.mongoQueryRunner.updateOne(metadata.tableName, query, update, options);\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts FindManyOptions to mongodb query.\n */\n protected convertFindManyOptionsOrConditionsToMongodbQuery<Entity>(optionsOrConditions: FindManyOptions<Entity> | Partial<Entity> | undefined): ObjectLiteral | undefined {\n if (!optionsOrConditions)\n return undefined;\n\n if (FindOptionsUtils.isFindManyOptions<Entity>(optionsOrConditions))\n // If where condition is passed as a string which contains sql we have to ignore\n // as mongo is not a sql database\n return typeof optionsOrConditions.where === \"string\"\n ? {}\n : optionsOrConditions.where;\n\n return optionsOrConditions;\n }\n\n /**\n * Converts FindOneOptions to mongodb query.\n */\n protected convertFindOneOptionsOrConditionsToMongodbQuery<Entity>(optionsOrConditions: FindOneOptions<Entity> | Partial<Entity> | undefined): ObjectLiteral | undefined {\n if (!optionsOrConditions)\n return undefined;\n\n if (FindOptionsUtils.isFindOneOptions<Entity>(optionsOrConditions))\n // If where condition is passed as a string which contains sql we have to ignore\n // as mongo is not a sql database\n return typeof optionsOrConditions.where === \"string\"\n ? {}\n : optionsOrConditions.where;\n\n return optionsOrConditions;\n }\n\n /**\n * Converts FindOptions into mongodb order by criteria.\n */\n protected convertFindOptionsOrderToOrderCriteria(order: ObjectLiteral) {\n return Object.keys(order).reduce((orderCriteria, key) => {\n switch (order[key]) {\n case \"DESC\":\n orderCriteria[key] = -1;\n break;\n case \"ASC\":\n orderCriteria[key] = 1;\n break;\n default:\n orderCriteria[key] = order[key];\n }\n return orderCriteria;\n }, {} as ObjectLiteral);\n }\n\n /**\n * Converts FindOptions into mongodb select by criteria.\n */\n protected convertFindOptionsSelectToProjectCriteria(selects: (keyof any)[]) {\n return selects.reduce((projectCriteria, key) => {\n projectCriteria[key] = 1;\n return projectCriteria;\n }, {} as any);\n }\n\n /**\n * Ensures given id is an id for query.\n */\n protected convertMixedCriteria(metadata: EntityMetadata, idMap: any): ObjectLiteral {\n const objectIdInstance = PlatformTools.load(\"mongodb\").ObjectID;\n\n // check first if it's ObjectId compatible:\n // string, number, Buffer, ObjectId or ObjectId-like\n if (objectIdInstance.isValid(idMap)) {\n return {\n \"_id\": new objectIdInstance(idMap)\n };\n }\n\n // if it's some other type of object build a query from the columns\n // this check needs to be after the ObjectId check, because a valid ObjectId is also an Object instance\n if (idMap instanceof Object) {\n return metadata.columns.reduce((query, column) => {\n const columnValue = column.getEntityValue(idMap);\n if (columnValue !== undefined)\n query[column.databasePath] = columnValue;\n return query;\n }, {} as any);\n }\n\n // last resort: try to convert it to an ObjectID anyway\n // most likely it will fail, but we want to be backwards compatible and keep the same thrown Errors.\n // it can still pass with null/undefined\n return {\n \"_id\": new objectIdInstance(idMap)\n };\n }\n\n /**\n * Overrides cursor's toArray and next methods to convert results to entity automatically.\n */\n protected applyEntityTransformationToCursor<Entity>(metadata: EntityMetadata, cursor: Cursor<Entity> | AggregationCursor<Entity>) {\n const ParentCursor = PlatformTools.load(\"mongodb\").Cursor;\n const queryRunner = this.mongoQueryRunner;\n cursor.toArray = function (callback?: MongoCallback<Entity[]>) {\n if (callback) {\n ParentCursor.prototype.toArray.call(this, (error: MongoError, results: Entity[]): void => {\n if (error) {\n callback(error, results);\n return;\n }\n\n const transformer = new DocumentToEntityTransformer();\n const entities = transformer.transformAll(results, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, entities);\n\n Promise.all(broadcastResult.promises).then(() => callback(error, entities));\n });\n } else {\n return ParentCursor.prototype.toArray.call(this).then((results: Entity[]) => {\n const transformer = new DocumentToEntityTransformer();\n const entities = transformer.transformAll(results, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, entities);\n\n return Promise.all(broadcastResult.promises).then(() => entities);\n });\n }\n };\n cursor.next = function (callback?: MongoCallback<CursorResult>) {\n if (callback) {\n ParentCursor.prototype.next.call(this, (error: MongoError, result: CursorResult): void => {\n if (error || !result) {\n callback(error, result);\n return;\n }\n\n const transformer = new DocumentToEntityTransformer();\n const entity = transformer.transform(result, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, [entity]);\n\n Promise.all(broadcastResult.promises).then(() => callback(error, entity));\n });\n } else {\n return ParentCursor.prototype.next.call(this).then((result: Entity) => {\n if (!result) return result;\n\n const transformer = new DocumentToEntityTransformer();\n const entity = transformer.transform(result, metadata);\n\n // broadcast \"load\" events\n const broadcastResult = new BroadcasterResult();\n queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, metadata, [entity]);\n\n return Promise.all(broadcastResult.promises).then(() => entity);\n });\n }\n };\n }\n\n}\n"],"sourceRoot":".."}