typeorm 0.2.27 → 0.2.31

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 (907) hide show
  1. package/README.md +9 -4
  2. package/browser/common/EntityFieldsNames.d.ts +6 -0
  3. package/browser/common/EntityFieldsNames.js +3 -0
  4. package/browser/common/EntityFieldsNames.js.map +1 -0
  5. package/browser/connection/Connection.d.ts +2 -2
  6. package/browser/connection/Connection.js +2 -2
  7. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  8. package/browser/connection/ConnectionOptionsReader.d.ts +3 -3
  9. package/browser/connection/ConnectionOptionsReader.js +30 -30
  10. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  11. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  12. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  13. package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
  14. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  15. package/browser/decorator/entity/ChildEntity.js +1 -1
  16. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  17. package/browser/decorator/options/RelationOptions.d.ts +10 -0
  18. package/browser/decorator/options/RelationOptions.js.map +1 -1
  19. package/browser/decorator/relations/ManyToOne.d.ts +6 -6
  20. package/browser/decorator/relations/ManyToOne.js +5 -5
  21. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  22. package/browser/decorator/relations/OneToMany.d.ts +3 -2
  23. package/browser/decorator/relations/OneToMany.js +4 -3
  24. package/browser/decorator/relations/OneToMany.js.map +1 -1
  25. package/browser/decorator/transaction/Transaction.d.ts +1 -1
  26. package/browser/decorator/transaction/Transaction.js +2 -2
  27. package/browser/decorator/transaction/Transaction.js.map +1 -1
  28. package/browser/decorator/tree/Tree.d.ts +2 -1
  29. package/browser/decorator/tree/Tree.js +3 -2
  30. package/browser/decorator/tree/Tree.js.map +1 -1
  31. package/browser/driver/DriverFactory.js.map +1 -1
  32. package/browser/driver/DriverUtils.js +20 -12
  33. package/browser/driver/DriverUtils.js.map +1 -1
  34. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +0 -1
  35. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +2 -3
  36. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  37. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +2 -1
  38. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +57 -9
  39. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  40. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +1 -2
  41. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +3 -3
  42. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  43. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  44. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -11
  45. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  46. package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
  47. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  48. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  49. package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  50. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  51. package/browser/driver/expo/ExpoQueryRunner.js +72 -14
  52. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  53. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  54. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  55. package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
  56. package/browser/driver/mongodb/MongoDriver.js +19 -14
  57. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  58. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  59. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  60. package/browser/driver/mysql/MysqlDriver.js +4 -4
  61. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  62. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  63. package/browser/driver/mysql/MysqlQueryRunner.js +117 -42
  64. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  65. package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  66. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  67. package/browser/driver/oracle/OracleDriver.js +3 -0
  68. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  69. package/browser/driver/oracle/OracleQueryRunner.js +52 -6
  70. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  71. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  72. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  73. package/browser/driver/postgres/PostgresDriver.d.ts +1 -1
  74. package/browser/driver/postgres/PostgresDriver.js +11 -8
  75. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  76. package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
  77. package/browser/driver/postgres/PostgresQueryRunner.js +154 -60
  78. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  79. package/browser/driver/react-native/ReactNativeDriver.js +1 -2
  80. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  81. package/browser/driver/sap/SapQueryRunner.js +56 -8
  82. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  83. package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
  84. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  85. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
  86. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  87. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  88. package/browser/driver/sqlserver/SqlServerQueryRunner.js +140 -67
  89. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  90. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  91. package/browser/driver/types/ColumnTypes.js.map +1 -1
  92. package/browser/entity-manager/EntityManager.d.ts +13 -13
  93. package/browser/entity-manager/EntityManager.js +5 -16
  94. package/browser/entity-manager/EntityManager.js.map +1 -1
  95. package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
  96. package/browser/entity-manager/MongoEntityManager.js +15 -4
  97. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  98. package/browser/error/index.d.ts +61 -0
  99. package/browser/error/index.js +63 -0
  100. package/browser/error/index.js.map +1 -0
  101. package/browser/find-options/FindOneOptions.d.ts +6 -1
  102. package/browser/find-options/FindOneOptions.js.map +1 -1
  103. package/browser/find-options/FindOperator.d.ts +25 -6
  104. package/browser/find-options/FindOperator.js +32 -6
  105. package/browser/find-options/FindOperator.js.map +1 -1
  106. package/browser/find-options/FindOperatorType.d.ts +1 -1
  107. package/browser/find-options/FindOperatorType.js.map +1 -1
  108. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  109. package/browser/find-options/FindOptionsUtils.js +5 -1
  110. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  111. package/browser/find-options/operator/ILike.d.ts +6 -0
  112. package/browser/find-options/operator/ILike.js +10 -0
  113. package/browser/find-options/operator/ILike.js.map +1 -0
  114. package/browser/find-options/operator/Raw.d.ts +14 -2
  115. package/browser/find-options/operator/Raw.js +5 -6
  116. package/browser/find-options/operator/Raw.js.map +1 -1
  117. package/browser/index.d.ts +3 -1
  118. package/browser/index.js +2 -23
  119. package/browser/index.js.map +1 -1
  120. package/browser/logger/Logger.d.ts +1 -1
  121. package/browser/logger/Logger.js.map +1 -1
  122. package/browser/metadata/ColumnMetadata.js +16 -3
  123. package/browser/metadata/ColumnMetadata.js.map +1 -1
  124. package/browser/metadata/EntityMetadata.d.ts +5 -0
  125. package/browser/metadata/EntityMetadata.js +1 -0
  126. package/browser/metadata/EntityMetadata.js.map +1 -1
  127. package/browser/metadata/RelationMetadata.d.ts +15 -0
  128. package/browser/metadata/RelationMetadata.js +18 -2
  129. package/browser/metadata/RelationMetadata.js.map +1 -1
  130. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  131. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  132. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  133. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  134. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  135. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  136. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  137. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +3 -3
  138. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  139. package/browser/metadata-builder/EntityMetadataBuilder.js +19 -9
  140. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  141. package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
  142. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  143. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
  144. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  145. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  146. package/browser/metadata-builder/RelationJoinColumnBuilder.js +5 -5
  147. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  148. package/browser/persistence/EntityPersistExecutor.js +55 -52
  149. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  150. package/browser/persistence/Subject.d.ts +4 -4
  151. package/browser/persistence/Subject.js +6 -5
  152. package/browser/persistence/Subject.js.map +1 -1
  153. package/browser/persistence/SubjectExecutor.js +9 -5
  154. package/browser/persistence/SubjectExecutor.js.map +1 -1
  155. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  156. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +9 -4
  157. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  158. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  159. package/browser/persistence/tree/ClosureSubjectExecutor.js +5 -5
  160. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  161. package/browser/query-builder/Alias.d.ts +3 -4
  162. package/browser/query-builder/Alias.js +3 -3
  163. package/browser/query-builder/DeleteQueryBuilder.js +2 -1
  164. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  165. package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
  166. package/browser/query-builder/InsertQueryBuilder.js +62 -13
  167. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  168. package/browser/query-builder/JoinAttribute.d.ts +10 -10
  169. package/browser/query-builder/JoinAttribute.js +10 -10
  170. package/browser/query-builder/QueryBuilder.d.ts +8 -1
  171. package/browser/query-builder/QueryBuilder.js +168 -33
  172. package/browser/query-builder/QueryBuilder.js.map +1 -1
  173. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  174. package/browser/query-builder/QueryExpressionMap.d.ts +6 -2
  175. package/browser/query-builder/QueryExpressionMap.js +3 -2
  176. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  177. package/browser/query-builder/RelationLoader.js +1 -1
  178. package/browser/query-builder/RelationLoader.js.map +1 -1
  179. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
  180. package/browser/query-builder/SelectQueryBuilder.js +98 -56
  181. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  182. package/browser/query-builder/UpdateQueryBuilder.js +2 -1
  183. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  184. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  185. package/browser/query-builder/relation-count/RelationCountAttribute.js +7 -7
  186. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  187. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  188. package/browser/query-builder/relation-id/RelationIdAttribute.js +8 -8
  189. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  190. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  191. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  192. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
  193. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  194. package/browser/query-runner/QueryRunner.d.ts +1 -1
  195. package/browser/query-runner/QueryRunner.js.map +1 -1
  196. package/browser/repository/AbstractRepository.d.ts +2 -2
  197. package/browser/repository/AbstractRepository.js +2 -2
  198. package/browser/repository/BaseEntity.d.ts +1 -1
  199. package/browser/repository/BaseEntity.js +1 -1
  200. package/browser/repository/Repository.d.ts +4 -4
  201. package/browser/repository/Repository.js +1 -1
  202. package/browser/repository/Repository.js.map +1 -1
  203. package/browser/repository/TreeRepository.js +2 -2
  204. package/browser/repository/TreeRepository.js.map +1 -1
  205. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  206. package/browser/schema-builder/RdbmsSchemaBuilder.js +4 -3
  207. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  208. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  209. package/browser/schema-builder/table/Table.d.ts +1 -1
  210. package/browser/schema-builder/table/Table.js +1 -1
  211. package/browser/subscriber/Broadcaster.d.ts +24 -0
  212. package/browser/subscriber/Broadcaster.js +120 -0
  213. package/browser/subscriber/Broadcaster.js.map +1 -1
  214. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  215. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  216. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  217. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  218. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  219. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  220. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  221. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  222. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  223. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  224. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  225. package/browser/util/DateUtils.d.ts +1 -1
  226. package/browser/util/DateUtils.js +1 -7
  227. package/browser/util/DateUtils.js.map +1 -1
  228. package/browser/util/StringUtils.js.map +1 -1
  229. package/cache/DbQueryResultCache.js +0 -1
  230. package/cache/DbQueryResultCache.js.map +1 -1
  231. package/cache/QueryResultCacheFactory.js +0 -1
  232. package/cache/QueryResultCacheFactory.js.map +1 -1
  233. package/cache/RedisQueryResultCache.js +0 -1
  234. package/cache/RedisQueryResultCache.js.map +1 -1
  235. package/cli.js +2 -2
  236. package/cli.js.map +1 -1
  237. package/commands/CacheClearCommand.js +0 -1
  238. package/commands/CacheClearCommand.js.map +1 -1
  239. package/commands/CommandUtils.js +0 -1
  240. package/commands/CommandUtils.js.map +1 -1
  241. package/commands/EntityCreateCommand.js +5 -3
  242. package/commands/EntityCreateCommand.js.map +1 -1
  243. package/commands/InitCommand.js +1 -2
  244. package/commands/InitCommand.js.map +1 -1
  245. package/commands/MigrationCreateCommand.d.ts +6 -0
  246. package/commands/MigrationCreateCommand.js +22 -5
  247. package/commands/MigrationCreateCommand.js.map +1 -1
  248. package/commands/MigrationGenerateCommand.d.ts +6 -0
  249. package/commands/MigrationGenerateCommand.js +44 -31
  250. package/commands/MigrationGenerateCommand.js.map +1 -1
  251. package/commands/MigrationRevertCommand.js +0 -1
  252. package/commands/MigrationRevertCommand.js.map +1 -1
  253. package/commands/MigrationRunCommand.js +0 -1
  254. package/commands/MigrationRunCommand.js.map +1 -1
  255. package/commands/MigrationShowCommand.js +0 -1
  256. package/commands/MigrationShowCommand.js.map +1 -1
  257. package/commands/QueryCommand.d.ts +2 -0
  258. package/commands/QueryCommand.js +16 -7
  259. package/commands/QueryCommand.js.map +1 -1
  260. package/commands/SchemaDropCommand.js +0 -1
  261. package/commands/SchemaDropCommand.js.map +1 -1
  262. package/commands/SchemaLogCommand.js +0 -1
  263. package/commands/SchemaLogCommand.js.map +1 -1
  264. package/commands/SchemaSyncCommand.js +0 -1
  265. package/commands/SchemaSyncCommand.js.map +1 -1
  266. package/commands/SubscriberCreateCommand.js +5 -3
  267. package/commands/SubscriberCreateCommand.js.map +1 -1
  268. package/commands/VersionCommand.js +0 -1
  269. package/commands/VersionCommand.js.map +1 -1
  270. package/common/EntityFieldsNames.d.ts +6 -0
  271. package/common/EntityFieldsNames.js +4 -0
  272. package/common/EntityFieldsNames.js.map +1 -0
  273. package/connection/Connection.d.ts +2 -2
  274. package/connection/Connection.js +2 -3
  275. package/connection/Connection.js.map +1 -1
  276. package/connection/ConnectionManager.js +0 -1
  277. package/connection/ConnectionManager.js.map +1 -1
  278. package/connection/ConnectionMetadataBuilder.js +0 -1
  279. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  280. package/connection/ConnectionOptionsReader.d.ts +3 -3
  281. package/connection/ConnectionOptionsReader.js +30 -31
  282. package/connection/ConnectionOptionsReader.js.map +1 -1
  283. package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -2
  284. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  285. package/connection/options-reader/ConnectionOptionsXmlReader.js +0 -1
  286. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  287. package/connection/options-reader/ConnectionOptionsYmlReader.js +0 -1
  288. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  289. package/container.js +0 -1
  290. package/container.js.map +1 -1
  291. package/decorator/Check.js +0 -1
  292. package/decorator/Check.js.map +1 -1
  293. package/decorator/EntityRepository.js +0 -1
  294. package/decorator/EntityRepository.js.map +1 -1
  295. package/decorator/Exclusion.js +0 -1
  296. package/decorator/Exclusion.js.map +1 -1
  297. package/decorator/Generated.js +0 -1
  298. package/decorator/Generated.js.map +1 -1
  299. package/decorator/Index.js +0 -1
  300. package/decorator/Index.js.map +1 -1
  301. package/decorator/Unique.js +0 -1
  302. package/decorator/Unique.js.map +1 -1
  303. package/decorator/columns/Column.js +0 -1
  304. package/decorator/columns/Column.js.map +1 -1
  305. package/decorator/columns/CreateDateColumn.js +0 -1
  306. package/decorator/columns/CreateDateColumn.js.map +1 -1
  307. package/decorator/columns/DeleteDateColumn.js +0 -1
  308. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  309. package/decorator/columns/ObjectIdColumn.js +0 -1
  310. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  311. package/decorator/columns/PrimaryColumn.d.ts +9 -2
  312. package/decorator/columns/PrimaryColumn.js +0 -1
  313. package/decorator/columns/PrimaryColumn.js.map +1 -1
  314. package/decorator/columns/PrimaryGeneratedColumn.js +0 -1
  315. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  316. package/decorator/columns/UpdateDateColumn.js +0 -1
  317. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  318. package/decorator/columns/VersionColumn.js +0 -1
  319. package/decorator/columns/VersionColumn.js.map +1 -1
  320. package/decorator/columns/ViewColumn.js +0 -1
  321. package/decorator/columns/ViewColumn.js.map +1 -1
  322. package/decorator/entity/ChildEntity.js +1 -2
  323. package/decorator/entity/ChildEntity.js.map +1 -1
  324. package/decorator/entity/Entity.js +0 -1
  325. package/decorator/entity/Entity.js.map +1 -1
  326. package/decorator/entity/TableInheritance.js +0 -1
  327. package/decorator/entity/TableInheritance.js.map +1 -1
  328. package/decorator/entity-view/ViewEntity.js +0 -1
  329. package/decorator/entity-view/ViewEntity.js.map +1 -1
  330. package/decorator/listeners/AfterInsert.js +0 -1
  331. package/decorator/listeners/AfterInsert.js.map +1 -1
  332. package/decorator/listeners/AfterLoad.js +0 -1
  333. package/decorator/listeners/AfterLoad.js.map +1 -1
  334. package/decorator/listeners/AfterRemove.js +0 -1
  335. package/decorator/listeners/AfterRemove.js.map +1 -1
  336. package/decorator/listeners/AfterUpdate.js +0 -1
  337. package/decorator/listeners/AfterUpdate.js.map +1 -1
  338. package/decorator/listeners/BeforeInsert.js +0 -1
  339. package/decorator/listeners/BeforeInsert.js.map +1 -1
  340. package/decorator/listeners/BeforeRemove.js +0 -1
  341. package/decorator/listeners/BeforeRemove.js.map +1 -1
  342. package/decorator/listeners/BeforeUpdate.js +0 -1
  343. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  344. package/decorator/listeners/EventSubscriber.js +0 -1
  345. package/decorator/listeners/EventSubscriber.js.map +1 -1
  346. package/decorator/options/RelationOptions.d.ts +10 -0
  347. package/decorator/options/RelationOptions.js.map +1 -1
  348. package/decorator/relations/JoinColumn.js +0 -1
  349. package/decorator/relations/JoinColumn.js.map +1 -1
  350. package/decorator/relations/JoinTable.js +0 -1
  351. package/decorator/relations/JoinTable.js.map +1 -1
  352. package/decorator/relations/ManyToMany.js +0 -1
  353. package/decorator/relations/ManyToMany.js.map +1 -1
  354. package/decorator/relations/ManyToOne.d.ts +6 -6
  355. package/decorator/relations/ManyToOne.js +5 -6
  356. package/decorator/relations/ManyToOne.js.map +1 -1
  357. package/decorator/relations/OneToMany.d.ts +3 -2
  358. package/decorator/relations/OneToMany.js +4 -4
  359. package/decorator/relations/OneToMany.js.map +1 -1
  360. package/decorator/relations/OneToOne.js +0 -1
  361. package/decorator/relations/OneToOne.js.map +1 -1
  362. package/decorator/relations/RelationCount.js +0 -1
  363. package/decorator/relations/RelationCount.js.map +1 -1
  364. package/decorator/relations/RelationId.js +0 -1
  365. package/decorator/relations/RelationId.js.map +1 -1
  366. package/decorator/transaction/Transaction.d.ts +1 -1
  367. package/decorator/transaction/Transaction.js +2 -3
  368. package/decorator/transaction/Transaction.js.map +1 -1
  369. package/decorator/transaction/TransactionManager.js +0 -1
  370. package/decorator/transaction/TransactionManager.js.map +1 -1
  371. package/decorator/transaction/TransactionRepository.js +0 -1
  372. package/decorator/transaction/TransactionRepository.js.map +1 -1
  373. package/decorator/tree/Tree.d.ts +2 -1
  374. package/decorator/tree/Tree.js +3 -3
  375. package/decorator/tree/Tree.js.map +1 -1
  376. package/decorator/tree/TreeChildren.js +0 -1
  377. package/decorator/tree/TreeChildren.js.map +1 -1
  378. package/decorator/tree/TreeLevelColumn.js +0 -1
  379. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  380. package/decorator/tree/TreeParent.js +0 -1
  381. package/decorator/tree/TreeParent.js.map +1 -1
  382. package/driver/DriverFactory.js +0 -1
  383. package/driver/DriverFactory.js.map +1 -1
  384. package/driver/DriverUtils.js +19 -12
  385. package/driver/DriverUtils.js.map +1 -1
  386. package/driver/Query.js +0 -1
  387. package/driver/Query.js.map +1 -1
  388. package/driver/SqlInMemory.js +0 -1
  389. package/driver/SqlInMemory.js.map +1 -1
  390. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  391. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  392. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +0 -1
  393. package/driver/aurora-data-api/AuroraDataApiDriver.js +2 -4
  394. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  395. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +2 -1
  396. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +57 -10
  397. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  398. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +1 -2
  399. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +3 -4
  400. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  401. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  402. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -12
  403. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  404. package/driver/better-sqlite3/BetterSqlite3Driver.js +0 -1
  405. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  406. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +0 -1
  407. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  408. package/driver/cockroachdb/CockroachDriver.js +3 -4
  409. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  410. package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  411. package/driver/cockroachdb/CockroachQueryRunner.js +112 -43
  412. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  413. package/driver/cordova/CordovaDriver.js +0 -1
  414. package/driver/cordova/CordovaDriver.js.map +1 -1
  415. package/driver/cordova/CordovaQueryRunner.js +0 -1
  416. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  417. package/driver/expo/ExpoDriver.js +0 -1
  418. package/driver/expo/ExpoDriver.js.map +1 -1
  419. package/driver/expo/ExpoQueryRunner.js +72 -15
  420. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  421. package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  422. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  423. package/driver/mongodb/MongoDriver.d.ts +7 -3
  424. package/driver/mongodb/MongoDriver.js +19 -15
  425. package/driver/mongodb/MongoDriver.js.map +1 -1
  426. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  427. package/driver/mongodb/MongoQueryRunner.js +0 -1
  428. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  429. package/driver/mysql/MysqlDriver.js +4 -5
  430. package/driver/mysql/MysqlDriver.js.map +1 -1
  431. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  432. package/driver/mysql/MysqlQueryRunner.js +117 -43
  433. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  434. package/driver/nativescript/NativescriptDriver.js +0 -1
  435. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  436. package/driver/nativescript/NativescriptQueryRunner.js +0 -1
  437. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  438. package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  439. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  440. package/driver/oracle/OracleDriver.js +3 -1
  441. package/driver/oracle/OracleDriver.js.map +1 -1
  442. package/driver/oracle/OracleQueryRunner.js +52 -7
  443. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  444. package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  445. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  446. package/driver/postgres/PostgresDriver.d.ts +1 -1
  447. package/driver/postgres/PostgresDriver.js +11 -9
  448. package/driver/postgres/PostgresDriver.js.map +1 -1
  449. package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
  450. package/driver/postgres/PostgresQueryRunner.js +155 -61
  451. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  452. package/driver/react-native/ReactNativeDriver.js +1 -3
  453. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  454. package/driver/react-native/ReactNativeQueryRunner.js +0 -1
  455. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  456. package/driver/sap/SapDriver.js +0 -1
  457. package/driver/sap/SapDriver.js.map +1 -1
  458. package/driver/sap/SapQueryRunner.js +56 -9
  459. package/driver/sap/SapQueryRunner.js.map +1 -1
  460. package/driver/sqlite/SqliteDriver.js +0 -1
  461. package/driver/sqlite/SqliteDriver.js.map +1 -1
  462. package/driver/sqlite/SqliteQueryRunner.js +4 -1
  463. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  464. package/driver/sqlite-abstract/AbstractSqliteDriver.js +0 -1
  465. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  466. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -8
  467. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  468. package/driver/sqljs/SqljsDriver.js +0 -1
  469. package/driver/sqljs/SqljsDriver.js.map +1 -1
  470. package/driver/sqljs/SqljsQueryRunner.js +0 -1
  471. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  472. package/driver/sqlserver/MssqlParameter.js +0 -1
  473. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  474. package/driver/sqlserver/SqlServerDriver.js +0 -1
  475. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  476. package/driver/sqlserver/SqlServerQueryRunner.js +140 -68
  477. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  478. package/driver/types/ColumnTypes.d.ts +1 -1
  479. package/driver/types/ColumnTypes.js.map +1 -1
  480. package/entity-manager/EntityManager.d.ts +13 -13
  481. package/entity-manager/EntityManager.js +5 -17
  482. package/entity-manager/EntityManager.js.map +1 -1
  483. package/entity-manager/EntityManagerFactory.js +0 -1
  484. package/entity-manager/EntityManagerFactory.js.map +1 -1
  485. package/entity-manager/MongoEntityManager.d.ts +1 -1
  486. package/entity-manager/MongoEntityManager.js +15 -5
  487. package/entity-manager/MongoEntityManager.js.map +1 -1
  488. package/entity-manager/SqljsEntityManager.js +0 -1
  489. package/entity-manager/SqljsEntityManager.js.map +1 -1
  490. package/entity-schema/EntitySchema.js +0 -1
  491. package/entity-schema/EntitySchema.js.map +1 -1
  492. package/entity-schema/EntitySchemaOptions.js +0 -1
  493. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  494. package/entity-schema/EntitySchemaTransformer.js +0 -1
  495. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  496. package/error/AlreadyHasActiveConnectionError.js +0 -1
  497. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  498. package/error/CannotAttachTreeChildrenEntityError.js +0 -1
  499. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  500. package/error/CannotConnectAlreadyConnectedError.js +0 -1
  501. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  502. package/error/CannotCreateEntityIdMapError.js +0 -1
  503. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  504. package/error/CannotDetermineEntityError.js +0 -1
  505. package/error/CannotDetermineEntityError.js.map +1 -1
  506. package/error/CannotExecuteNotConnectedError.js +0 -1
  507. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  508. package/error/CannotGetEntityManagerNotConnectedError.js +0 -1
  509. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  510. package/error/CannotReflectMethodParameterTypeError.js +0 -1
  511. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  512. package/error/CircularRelationsError.js +0 -1
  513. package/error/CircularRelationsError.js.map +1 -1
  514. package/error/ColumnTypeUndefinedError.js +0 -1
  515. package/error/ColumnTypeUndefinedError.js.map +1 -1
  516. package/error/ConnectionIsNotSetError.js +0 -1
  517. package/error/ConnectionIsNotSetError.js.map +1 -1
  518. package/error/ConnectionNotFoundError.js +0 -1
  519. package/error/ConnectionNotFoundError.js.map +1 -1
  520. package/error/CustomRepositoryCannotInheritRepositoryError.js +0 -1
  521. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  522. package/error/CustomRepositoryDoesNotHaveEntityError.js +0 -1
  523. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  524. package/error/CustomRepositoryNotFoundError.js +0 -1
  525. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  526. package/error/DataTypeNotSupportedError.js +0 -1
  527. package/error/DataTypeNotSupportedError.js.map +1 -1
  528. package/error/DriverOptionNotSetError.js +0 -1
  529. package/error/DriverOptionNotSetError.js.map +1 -1
  530. package/error/DriverPackageNotInstalledError.js +0 -1
  531. package/error/DriverPackageNotInstalledError.js.map +1 -1
  532. package/error/EntityColumnNotFound.js +0 -1
  533. package/error/EntityColumnNotFound.js.map +1 -1
  534. package/error/EntityMetadataNotFoundError.js +0 -1
  535. package/error/EntityMetadataNotFoundError.js.map +1 -1
  536. package/error/EntityNotFoundError.js +0 -1
  537. package/error/EntityNotFoundError.js.map +1 -1
  538. package/error/FindRelationsNotFoundError.js +0 -1
  539. package/error/FindRelationsNotFoundError.js.map +1 -1
  540. package/error/InitializedRelationError.js +0 -1
  541. package/error/InitializedRelationError.js.map +1 -1
  542. package/error/InsertValuesMissingError.js +0 -1
  543. package/error/InsertValuesMissingError.js.map +1 -1
  544. package/error/LimitOnUpdateNotSupportedError.js +0 -1
  545. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  546. package/error/LockNotSupportedOnGivenDriverError.js +0 -1
  547. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  548. package/error/MetadataAlreadyExistsError.js +0 -1
  549. package/error/MetadataAlreadyExistsError.js.map +1 -1
  550. package/error/MetadataWithSuchNameAlreadyExistsError.js +0 -1
  551. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  552. package/error/MissingDeleteDateColumnError.js +0 -1
  553. package/error/MissingDeleteDateColumnError.js.map +1 -1
  554. package/error/MissingDriverError.js +0 -1
  555. package/error/MissingDriverError.js.map +1 -1
  556. package/error/MissingJoinColumnError.js +0 -1
  557. package/error/MissingJoinColumnError.js.map +1 -1
  558. package/error/MissingJoinTableError.js +0 -1
  559. package/error/MissingJoinTableError.js.map +1 -1
  560. package/error/MissingPrimaryColumnError.js +0 -1
  561. package/error/MissingPrimaryColumnError.js.map +1 -1
  562. package/error/MustBeEntityError.js +0 -1
  563. package/error/MustBeEntityError.js.map +1 -1
  564. package/error/NamingStrategyNotFoundError.js +0 -1
  565. package/error/NamingStrategyNotFoundError.js.map +1 -1
  566. package/error/NoConnectionForRepositoryError.js +0 -1
  567. package/error/NoConnectionForRepositoryError.js.map +1 -1
  568. package/error/NoConnectionOptionError.js +0 -1
  569. package/error/NoConnectionOptionError.js.map +1 -1
  570. package/error/NoNeedToReleaseEntityManagerError.js +0 -1
  571. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  572. package/error/NoVersionOrUpdateDateColumnError.js +0 -1
  573. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  574. package/error/OffsetWithoutLimitNotSupportedError.js +0 -1
  575. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  576. package/error/OptimisticLockCanNotBeUsedError.js +0 -1
  577. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  578. package/error/OptimisticLockVersionMismatchError.js +0 -1
  579. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  580. package/error/PersistedEntityNotFoundError.js +0 -1
  581. package/error/PersistedEntityNotFoundError.js.map +1 -1
  582. package/error/PessimisticLockTransactionRequiredError.js +0 -1
  583. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  584. package/error/PrimaryColumnCannotBeNullableError.js +0 -1
  585. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  586. package/error/QueryFailedError.js +0 -1
  587. package/error/QueryFailedError.js.map +1 -1
  588. package/error/QueryRunnerAlreadyReleasedError.js +0 -1
  589. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  590. package/error/QueryRunnerProviderAlreadyReleasedError.js +0 -1
  591. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  592. package/error/RepositoryNotFoundError.js +0 -1
  593. package/error/RepositoryNotFoundError.js.map +1 -1
  594. package/error/RepositoryNotTreeError.js +0 -1
  595. package/error/RepositoryNotTreeError.js.map +1 -1
  596. package/error/ReturningStatementNotSupportedError.js +0 -1
  597. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  598. package/error/SubjectRemovedAndUpdatedError.js +0 -1
  599. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  600. package/error/SubjectWithoutIdentifierError.js +0 -1
  601. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  602. package/error/TransactionAlreadyStartedError.js +0 -1
  603. package/error/TransactionAlreadyStartedError.js.map +1 -1
  604. package/error/TransactionNotStartedError.js +0 -1
  605. package/error/TransactionNotStartedError.js.map +1 -1
  606. package/error/TreeRepositoryNotSupportedError.js +0 -1
  607. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  608. package/error/UpdateValuesMissingError.js +0 -1
  609. package/error/UpdateValuesMissingError.js.map +1 -1
  610. package/error/UsingJoinColumnIsNotAllowedError.js +0 -1
  611. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  612. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +0 -1
  613. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  614. package/error/UsingJoinTableIsNotAllowedError.js +0 -1
  615. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  616. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +0 -1
  617. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  618. package/error/index.d.ts +61 -0
  619. package/error/index.js +66 -0
  620. package/error/index.js.map +1 -0
  621. package/find-options/FindOneOptions.d.ts +6 -1
  622. package/find-options/FindOneOptions.js.map +1 -1
  623. package/find-options/FindOperator.d.ts +25 -6
  624. package/find-options/FindOperator.js +32 -7
  625. package/find-options/FindOperator.js.map +1 -1
  626. package/find-options/FindOperatorType.d.ts +1 -1
  627. package/find-options/FindOperatorType.js.map +1 -1
  628. package/find-options/FindOptionsUtils.d.ts +2 -2
  629. package/find-options/FindOptionsUtils.js +5 -2
  630. package/find-options/FindOptionsUtils.js.map +1 -1
  631. package/find-options/operator/Any.js +0 -1
  632. package/find-options/operator/Any.js.map +1 -1
  633. package/find-options/operator/Between.js +0 -1
  634. package/find-options/operator/Between.js.map +1 -1
  635. package/find-options/operator/Equal.js +0 -1
  636. package/find-options/operator/Equal.js.map +1 -1
  637. package/find-options/operator/ILike.d.ts +6 -0
  638. package/find-options/operator/ILike.js +13 -0
  639. package/find-options/operator/ILike.js.map +1 -0
  640. package/find-options/operator/In.js +0 -1
  641. package/find-options/operator/In.js.map +1 -1
  642. package/find-options/operator/IsNull.js +0 -1
  643. package/find-options/operator/IsNull.js.map +1 -1
  644. package/find-options/operator/LessThan.js +0 -1
  645. package/find-options/operator/LessThan.js.map +1 -1
  646. package/find-options/operator/LessThanOrEqual.js +0 -1
  647. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  648. package/find-options/operator/Like.js +0 -1
  649. package/find-options/operator/Like.js.map +1 -1
  650. package/find-options/operator/MoreThan.js +0 -1
  651. package/find-options/operator/MoreThan.js.map +1 -1
  652. package/find-options/operator/MoreThanOrEqual.js +0 -1
  653. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  654. package/find-options/operator/Not.js +0 -1
  655. package/find-options/operator/Not.js.map +1 -1
  656. package/find-options/operator/Raw.d.ts +14 -2
  657. package/find-options/operator/Raw.js +5 -7
  658. package/find-options/operator/Raw.js.map +1 -1
  659. package/index.d.ts +3 -1
  660. package/index.js +20 -42
  661. package/index.js.map +1 -1
  662. package/logger/AdvancedConsoleLogger.js +0 -1
  663. package/logger/AdvancedConsoleLogger.js.map +1 -1
  664. package/logger/DebugLogger.js +0 -1
  665. package/logger/DebugLogger.js.map +1 -1
  666. package/logger/FileLogger.js +0 -1
  667. package/logger/FileLogger.js.map +1 -1
  668. package/logger/Logger.d.ts +1 -1
  669. package/logger/Logger.js.map +1 -1
  670. package/logger/LoggerFactory.js +0 -1
  671. package/logger/LoggerFactory.js.map +1 -1
  672. package/logger/SimpleConsoleLogger.js +0 -1
  673. package/logger/SimpleConsoleLogger.js.map +1 -1
  674. package/metadata/CheckMetadata.js +0 -1
  675. package/metadata/CheckMetadata.js.map +1 -1
  676. package/metadata/ColumnMetadata.js +16 -4
  677. package/metadata/ColumnMetadata.js.map +1 -1
  678. package/metadata/EmbeddedMetadata.js +0 -1
  679. package/metadata/EmbeddedMetadata.js.map +1 -1
  680. package/metadata/EntityListenerMetadata.js +0 -1
  681. package/metadata/EntityListenerMetadata.js.map +1 -1
  682. package/metadata/EntityMetadata.d.ts +5 -0
  683. package/metadata/EntityMetadata.js +1 -1
  684. package/metadata/EntityMetadata.js.map +1 -1
  685. package/metadata/ExclusionMetadata.js +0 -1
  686. package/metadata/ExclusionMetadata.js.map +1 -1
  687. package/metadata/ForeignKeyMetadata.js +0 -1
  688. package/metadata/ForeignKeyMetadata.js.map +1 -1
  689. package/metadata/IndexMetadata.js +0 -1
  690. package/metadata/IndexMetadata.js.map +1 -1
  691. package/metadata/RelationCountMetadata.js +0 -1
  692. package/metadata/RelationCountMetadata.js.map +1 -1
  693. package/metadata/RelationIdMetadata.js +0 -1
  694. package/metadata/RelationIdMetadata.js.map +1 -1
  695. package/metadata/RelationMetadata.d.ts +15 -0
  696. package/metadata/RelationMetadata.js +18 -3
  697. package/metadata/RelationMetadata.js.map +1 -1
  698. package/metadata/UniqueMetadata.js +0 -1
  699. package/metadata/UniqueMetadata.js.map +1 -1
  700. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  701. package/metadata/types/ClosureTreeOptions.js +4 -0
  702. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  703. package/metadata/types/EventListenerTypes.d.ts +7 -7
  704. package/metadata/types/EventListenerTypes.js +0 -1
  705. package/metadata/types/EventListenerTypes.js.map +1 -1
  706. package/metadata-args/MetadataArgsStorage.js +0 -1
  707. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  708. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  709. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  710. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +3 -4
  711. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  712. package/metadata-builder/EntityMetadataBuilder.js +19 -10
  713. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  714. package/metadata-builder/EntityMetadataValidator.js +8 -6
  715. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  716. package/metadata-builder/JunctionEntityMetadataBuilder.js +2 -3
  717. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  718. package/metadata-builder/MetadataUtils.js +0 -1
  719. package/metadata-builder/MetadataUtils.js.map +1 -1
  720. package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  721. package/metadata-builder/RelationJoinColumnBuilder.js +5 -6
  722. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  723. package/migration/Migration.js +0 -1
  724. package/migration/Migration.js.map +1 -1
  725. package/migration/MigrationExecutor.js +0 -1
  726. package/migration/MigrationExecutor.js.map +1 -1
  727. package/naming-strategy/DefaultNamingStrategy.js +0 -1
  728. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  729. package/package.json +7 -5
  730. package/persistence/EntityPersistExecutor.js +55 -53
  731. package/persistence/EntityPersistExecutor.js.map +1 -1
  732. package/persistence/Subject.d.ts +4 -4
  733. package/persistence/Subject.js +6 -6
  734. package/persistence/Subject.js.map +1 -1
  735. package/persistence/SubjectChangedColumnsComputer.js +0 -1
  736. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  737. package/persistence/SubjectDatabaseEntityLoader.js +0 -1
  738. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  739. package/persistence/SubjectExecutor.js +9 -6
  740. package/persistence/SubjectExecutor.js.map +1 -1
  741. package/persistence/SubjectTopoligicalSorter.js +0 -1
  742. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  743. package/persistence/subject-builder/CascadesSubjectBuilder.js +0 -1
  744. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  745. package/persistence/subject-builder/ManyToManySubjectBuilder.js +0 -1
  746. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  747. package/persistence/subject-builder/OneToManySubjectBuilder.js +9 -5
  748. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  749. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +0 -1
  750. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  751. package/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  752. package/persistence/tree/ClosureSubjectExecutor.js +5 -6
  753. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  754. package/persistence/tree/MaterializedPathSubjectExecutor.js +0 -1
  755. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  756. package/persistence/tree/NestedSetSubjectExecutor.js +0 -1
  757. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  758. package/platform/PlatformTools.js +4 -5
  759. package/platform/PlatformTools.js.map +1 -1
  760. package/query-builder/Alias.d.ts +3 -4
  761. package/query-builder/Alias.js +3 -4
  762. package/query-builder/Alias.js.map +1 -1
  763. package/query-builder/Brackets.js +0 -1
  764. package/query-builder/Brackets.js.map +1 -1
  765. package/query-builder/DeleteQueryBuilder.js +2 -2
  766. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  767. package/query-builder/InsertQueryBuilder.d.ts +6 -0
  768. package/query-builder/InsertQueryBuilder.js +62 -14
  769. package/query-builder/InsertQueryBuilder.js.map +1 -1
  770. package/query-builder/JoinAttribute.d.ts +10 -10
  771. package/query-builder/JoinAttribute.js +10 -11
  772. package/query-builder/JoinAttribute.js.map +1 -1
  773. package/query-builder/QueryBuilder.d.ts +8 -1
  774. package/query-builder/QueryBuilder.js +167 -33
  775. package/query-builder/QueryBuilder.js.map +1 -1
  776. package/query-builder/QueryBuilderUtils.js +0 -1
  777. package/query-builder/QueryBuilderUtils.js.map +1 -1
  778. package/query-builder/QueryExpressionMap.d.ts +6 -2
  779. package/query-builder/QueryExpressionMap.js +3 -3
  780. package/query-builder/QueryExpressionMap.js.map +1 -1
  781. package/query-builder/RelationIdLoader.js +0 -1
  782. package/query-builder/RelationIdLoader.js.map +1 -1
  783. package/query-builder/RelationLoader.js +1 -2
  784. package/query-builder/RelationLoader.js.map +1 -1
  785. package/query-builder/RelationQueryBuilder.js +0 -1
  786. package/query-builder/RelationQueryBuilder.js.map +1 -1
  787. package/query-builder/RelationRemover.js +0 -1
  788. package/query-builder/RelationRemover.js.map +1 -1
  789. package/query-builder/RelationUpdater.js +0 -1
  790. package/query-builder/RelationUpdater.js.map +1 -1
  791. package/query-builder/ReturningResultsEntityUpdator.js +0 -1
  792. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  793. package/query-builder/SelectQueryBuilder.d.ts +5 -0
  794. package/query-builder/SelectQueryBuilder.js +98 -57
  795. package/query-builder/SelectQueryBuilder.js.map +1 -1
  796. package/query-builder/SoftDeleteQueryBuilder.js +0 -1
  797. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  798. package/query-builder/UpdateQueryBuilder.js +2 -2
  799. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  800. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  801. package/query-builder/relation-count/RelationCountAttribute.js +7 -8
  802. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  803. package/query-builder/relation-count/RelationCountLoader.js +0 -1
  804. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  805. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -1
  806. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  807. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  808. package/query-builder/relation-id/RelationIdAttribute.js +8 -9
  809. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  810. package/query-builder/relation-id/RelationIdLoader.js +0 -1
  811. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  812. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +0 -1
  813. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  814. package/query-builder/result/DeleteResult.js +0 -1
  815. package/query-builder/result/DeleteResult.js.map +1 -1
  816. package/query-builder/result/InsertResult.js +0 -1
  817. package/query-builder/result/InsertResult.js.map +1 -1
  818. package/query-builder/result/UpdateResult.js +0 -1
  819. package/query-builder/result/UpdateResult.js.map +1 -1
  820. package/query-builder/transformer/DocumentToEntityTransformer.js +0 -1
  821. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  822. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -4
  823. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  824. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +0 -1
  825. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  826. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -4
  827. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  828. package/query-runner/BaseQueryRunner.js +0 -1
  829. package/query-runner/BaseQueryRunner.js.map +1 -1
  830. package/query-runner/QueryRunner.d.ts +1 -1
  831. package/query-runner/QueryRunner.js.map +1 -1
  832. package/repository/AbstractRepository.d.ts +2 -2
  833. package/repository/AbstractRepository.js +2 -3
  834. package/repository/AbstractRepository.js.map +1 -1
  835. package/repository/BaseEntity.d.ts +1 -1
  836. package/repository/BaseEntity.js +1 -2
  837. package/repository/BaseEntity.js.map +1 -1
  838. package/repository/MongoRepository.js +0 -1
  839. package/repository/MongoRepository.js.map +1 -1
  840. package/repository/Repository.d.ts +4 -4
  841. package/repository/Repository.js +1 -2
  842. package/repository/Repository.js.map +1 -1
  843. package/repository/RepositoryFactory.js +0 -1
  844. package/repository/RepositoryFactory.js.map +1 -1
  845. package/repository/TreeRepository.js +2 -3
  846. package/repository/TreeRepository.js.map +1 -1
  847. package/schema-builder/MongoSchemaBuilder.js +0 -1
  848. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  849. package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  850. package/schema-builder/RdbmsSchemaBuilder.js +4 -4
  851. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  852. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  853. package/schema-builder/table/Table.d.ts +1 -1
  854. package/schema-builder/table/Table.js +1 -2
  855. package/schema-builder/table/Table.js.map +1 -1
  856. package/schema-builder/table/TableCheck.js +0 -1
  857. package/schema-builder/table/TableCheck.js.map +1 -1
  858. package/schema-builder/table/TableColumn.js +0 -1
  859. package/schema-builder/table/TableColumn.js.map +1 -1
  860. package/schema-builder/table/TableExclusion.js +0 -1
  861. package/schema-builder/table/TableExclusion.js.map +1 -1
  862. package/schema-builder/table/TableForeignKey.js +0 -1
  863. package/schema-builder/table/TableForeignKey.js.map +1 -1
  864. package/schema-builder/table/TableIndex.js +0 -1
  865. package/schema-builder/table/TableIndex.js.map +1 -1
  866. package/schema-builder/table/TableUnique.js +0 -1
  867. package/schema-builder/table/TableUnique.js.map +1 -1
  868. package/schema-builder/util/TableUtils.js +0 -1
  869. package/schema-builder/util/TableUtils.js.map +1 -1
  870. package/schema-builder/view/View.js +0 -1
  871. package/schema-builder/view/View.js.map +1 -1
  872. package/subscriber/Broadcaster.d.ts +24 -0
  873. package/subscriber/Broadcaster.js +120 -1
  874. package/subscriber/Broadcaster.js.map +1 -1
  875. package/subscriber/BroadcasterResult.js +0 -1
  876. package/subscriber/BroadcasterResult.js.map +1 -1
  877. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  878. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  879. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  880. package/subscriber/event/TransactionCommitEvent.js +4 -0
  881. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  882. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  883. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  884. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  885. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  886. package/subscriber/event/TransactionStartEvent.js +4 -0
  887. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  888. package/typeorm-model-shim.js +145 -128
  889. package/util/ApplyValueTransformers.js +0 -1
  890. package/util/ApplyValueTransformers.js.map +1 -1
  891. package/util/DateUtils.d.ts +1 -1
  892. package/util/DateUtils.js +1 -8
  893. package/util/DateUtils.js.map +1 -1
  894. package/util/DepGraph.js +0 -1
  895. package/util/DepGraph.js.map +1 -1
  896. package/util/DirectoryExportedClassesLoader.js +0 -1
  897. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  898. package/util/ObjectUtils.js +0 -1
  899. package/util/ObjectUtils.js.map +1 -1
  900. package/util/OrmUtils.js +0 -1
  901. package/util/OrmUtils.js.map +1 -1
  902. package/util/RandomGenerator.js +0 -1
  903. package/util/RandomGenerator.js.map +1 -1
  904. package/util/StringUtils.js +0 -1
  905. package/util/StringUtils.js.map +1 -1
  906. package/util/VersionUtils.js +0 -1
  907. package/util/VersionUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/JoinAttribute.ts"],"names":[],"mappings":";;;;AAGA,yDAAsD;AAGtD,mDAAgD;AAEhD;;GAEG;AACH;IAoCI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,uBAAoB,UAAsB,EACtB,kBAAsC,EAC9C,aAA6B;QAFrB,eAAU,GAAV,UAAU,CAAY;QACtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QAqB1D,wBAAmB,GAAY,KAAK,CAAC;QA2DrC,sBAAiB,GAAY,KAAK,CAAC;QA9E/B,yBAAW,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAMD,sBAAI,iCAAM;QAJV,4EAA4E;QAC5E,iBAAiB;QACjB,4EAA4E;aAE5E;YACI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;gBAChC,OAAO,IAAI,CAAC,aAAa,CAAC;YAE9B,IAAI,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAEnE,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAQD,sBAAI,qCAAU;QAHd;;WAEG;aACH;YAAA,iBAkBC;YAjBG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC3B,IAAI,QAAQ,GAAG;;4CACA,MAAM;wBACb,IAAI,MAAM,CAAC,SAAS,KAAK,KAAI,CAAC,KAAK,CAAC,IAAI;4CAC7B,IAAI,GAAC;wBAEhB,IAAI,KAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,SAAS,KAAK,KAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,EAAhE,CAAgE,CAAC;4CAClH,IAAI,GAAC;;;wBALpB,KAAqB,IAAA,KAAA,iBAAA,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAA,gBAAA;4BAA/C,IAAM,MAAM,WAAA;kDAAN,MAAM;;;yBAMhB;;;;;;;;;oBAED,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aACnC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC;QAEhC,CAAC;;;OAAA;IAKD,sBAAI,oCAAS;QAHb;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAA0B,CAAC;QACrF,CAAC;;;OAAA;IAQD,sBAAI,sCAAW;QANf;;;;;WAKG;aACH;YACI,IAAI,CAAC,qCAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACzD,OAAO,SAAS,CAAC;YAErB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;;;OAAA;IASD,sBAAI,+CAAoB;QAPxB;;;;;;WAMG;aACH;YACI,IAAI,CAAC,qCAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACzD,OAAO,SAAS,CAAC;YAErB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,CAAC;;;OAAA;IAUD,sBAAI,mCAAQ;QANZ;;;;;WAKG;aACH;YAAA,iBA0BC;YAzBG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,QAAQ,GAAG;oBACX,IAAI,CAAC,qCAAiB,CAAC,eAAe,CAAC,KAAI,CAAC,gBAAgB,CAAC;wBACzD,OAAO,SAAS,CAAC;oBAErB,IAAM,sBAAsB,GAAG,KAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAI,CAAC,WAAY,CAAC,CAAC;oBAC1F,IAAI,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,4BAA4B,CAAC,KAAI,CAAC,oBAAqB,CAAC,CAAC;oBAExG,IAAI,QAAQ,EAAE;wBACV,OAAO,QAAQ,CAAC;qBACnB;oBAED,IAAI,sBAAsB,CAAC,QAAQ,CAAC,oBAAoB,EAAE;wBACtD,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,KAAI,CAAC,oBAAqB,CAAC,CAAC;wBACzH,IAAI,QAAQ,EAAE;4BACV,OAAO,QAAQ,CAAC;yBACnB;qBACJ;oBAED,MAAM,IAAI,KAAK,CAAC,iCAA+B,KAAI,CAAC,oBAAoB,8BAA2B,CAAC,CAAC;gBACzG,CAAC,CAAC;gBACF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;;;OAAA;IAMD,sBAAI,mCAAQ;QAJZ;;;WAGG;aACH;YAEI,qDAAqD;YACrD,IAAI,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAE/C,mCAAmC;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAClD,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE9D,OAAO,SAAS,CAAC;YAEjB;;;;;;;;;;eAUG;QACP,CAAC;;;OAAA;IAKD,sBAAI,wCAAa;QAHjB;;WAEG;aACH;YACI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAE5E,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QACxH,CAAC;;;OAAA;IAED,sBAAI,mDAAwB;aAA5B;YACI,IAAI,CAAC,IAAI,CAAC,aAAa;gBACnB,OAAO,SAAS,CAAC;YAErB,OAAO,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;;;OAAA;IAED,sBAAI,oDAAyB;aAA7B;YACI,IAAI,CAAC,IAAI,CAAC,aAAa;gBACnB,OAAO,SAAS,CAAC;YAErB,OAAO,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;;;OAAA;IAEL,oBAAC;AAAD,CAjNA,AAiNC,IAAA;AAjNY,sCAAa","file":"JoinAttribute.js","sourcesContent":["import {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {Connection} from \"../connection/Connection\";\nimport {RelationMetadata} from \"../metadata/RelationMetadata\";\nimport {QueryBuilderUtils} from \"./QueryBuilderUtils\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {Alias} from \"./Alias\";\nimport {ObjectUtils} from \"../util/ObjectUtils\";\n\n/**\n * Stores all join attributes which will be used to build a JOIN query.\n */\nexport class JoinAttribute {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Join direction.\n */\n direction: \"LEFT\"|\"INNER\";\n\n /**\n * Alias of the joined (destination) table.\n */\n alias: Alias;\n\n /**\n * Joined table, entity target, or relation in \"post.category\" format.\n */\n entityOrProperty: Function|string;\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n condition?: string;\n\n /**\n * Property + alias of the object where to joined data should be mapped.\n */\n mapToProperty?: string;\n\n /**\n * Indicates if user maps one or many objects from the join.\n */\n isMappingMany?: boolean;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private connection: Connection,\n private queryExpressionMap: QueryExpressionMap,\n joinAttribute?: JoinAttribute) {\n ObjectUtils.assign(this, joinAttribute || {});\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n get isMany(): boolean {\n if (this.isMappingMany !== undefined)\n return this.isMappingMany;\n\n if (this.relation)\n return this.relation.isManyToMany || this.relation.isOneToMany;\n\n return false;\n }\n\n\n isSelectedCache: boolean;\n isSelectedEvaluated: boolean = false;\n /**\n * Indicates if this join is selected.\n */\n get isSelected(): boolean {\n if (!this.isSelectedEvaluated) {\n let getValue = () => {\n for (const select of this.queryExpressionMap.selects) {\n if (select.selection === this.alias.name)\n return true;\n\n if (this.metadata && !!this.metadata.columns.find(column => select.selection === this.alias.name + \".\" + column.propertyPath))\n return true;\n }\n\n return false;\n };\n this.isSelectedCache = getValue();\n this.isSelectedEvaluated = true;\n }\n return this.isSelectedCache;\n\n }\n\n /**\n * Name of the table which we should join.\n */\n get tablePath(): string {\n return this.metadata ? this.metadata.tablePath : this.entityOrProperty as string;\n }\n\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get parentAlias(): string|undefined {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n return this.entityOrProperty.substr(0, this.entityOrProperty.indexOf(\".\"));\n }\n\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get relationPropertyPath(): string|undefined {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n return this.entityOrProperty.substr(this.entityOrProperty.indexOf(\".\") + 1);\n }\n\n relationCache: RelationMetadata|undefined;\n relationEvaluated: boolean = false;\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n * Relation can be undefined if entityOrProperty is regular entity or custom table.\n */\n get relation(): RelationMetadata | undefined {\n if (!this.relationEvaluated) {\n let getValue = () => {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n const relationOwnerSelection = this.queryExpressionMap.findAliasByName(this.parentAlias!);\n let relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(this.relationPropertyPath!);\n\n if (relation) {\n return relation;\n }\n\n if (relationOwnerSelection.metadata.parentEntityMetadata) {\n relation = relationOwnerSelection.metadata.parentEntityMetadata.findRelationWithPropertyPath(this.relationPropertyPath!);\n if (relation) {\n return relation;\n }\n }\n\n throw new Error(`Relation with property path ${this.relationPropertyPath} in entity was not found.`);\n };\n this.relationCache = getValue.bind(this)();\n this.relationEvaluated = true;\n }\n return this.relationCache;\n }\n\n /**\n * Metadata of the joined entity.\n * If table without entity was joined, then it will return undefined.\n */\n get metadata(): EntityMetadata|undefined {\n\n // entityOrProperty is relation, e.g. \"post.category\"\n if (this.relation)\n return this.relation.inverseEntityMetadata;\n\n // entityOrProperty is Entity class\n if (this.connection.hasMetadata(this.entityOrProperty))\n return this.connection.getMetadata(this.entityOrProperty);\n\n return undefined;\n\n /*if (typeof this.entityOrProperty === \"string\") { // entityOrProperty is a custom table\n\n // first try to find entity with such name, this is needed when entity does not have a target class,\n // and its target is a string name (scenario when plain old javascript is used or entity schema is loaded from files)\n const metadata = this.connection.entityMetadatas.find(metadata => metadata.name === this.entityOrProperty);\n if (metadata)\n return metadata;\n\n // check if we have entity with such table name, and use its metadata if found\n return this.connection.entityMetadatas.find(metadata => metadata.tableName === this.entityOrProperty);\n }*/\n }\n\n /**\n * Generates alias of junction table, whose ids we get.\n */\n get junctionAlias(): string {\n if (!this.relation)\n throw new Error(`Cannot get junction table for join without relation.`);\n\n return this.relation.isOwning ? this.parentAlias + \"_\" + this.alias.name : this.alias.name + \"_\" + this.parentAlias;\n }\n\n get mapToPropertyParentAlias(): string|undefined {\n if (!this.mapToProperty)\n return undefined;\n\n return this.mapToProperty!.split(\".\")[0];\n }\n\n get mapToPropertyPropertyName(): string|undefined {\n if (!this.mapToProperty)\n return undefined;\n\n return this.mapToProperty!.split(\".\")[1];\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-builder/JoinAttribute.ts"],"names":[],"mappings":"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","file":"JoinAttribute.js","sourcesContent":["import {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {Connection} from \"../connection/Connection\";\nimport {RelationMetadata} from \"../metadata/RelationMetadata\";\nimport {QueryBuilderUtils} from \"./QueryBuilderUtils\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {Alias} from \"./Alias\";\nimport {ObjectUtils} from \"../util/ObjectUtils\";\n\n/**\n * Stores all join attributes which will be used to build a JOIN query.\n */\nexport class JoinAttribute {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Join direction.\n */\n direction: \"LEFT\"|\"INNER\";\n\n /**\n * Alias of the joined (destination) table.\n */\n alias: Alias;\n\n /**\n * Joined table, entity target, or relation in \"post.category\" format.\n */\n entityOrProperty: Function|string;\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n condition?: string;\n\n /**\n * Property + alias of the object where to joined data should be mapped.\n */\n mapToProperty?: string;\n\n /**\n * Indicates if user maps one or many objects from the join.\n */\n isMappingMany?: boolean;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private connection: Connection,\n private queryExpressionMap: QueryExpressionMap,\n joinAttribute?: JoinAttribute) {\n ObjectUtils.assign(this, joinAttribute || {});\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n get isMany(): boolean {\n if (this.isMappingMany !== undefined)\n return this.isMappingMany;\n\n if (this.relation)\n return this.relation.isManyToMany || this.relation.isOneToMany;\n\n return false;\n }\n\n\n isSelectedCache: boolean;\n isSelectedEvaluated: boolean = false;\n /**\n * Indicates if this join is selected.\n */\n get isSelected(): boolean {\n if (!this.isSelectedEvaluated) {\n let getValue = () => {\n for (const select of this.queryExpressionMap.selects) {\n if (select.selection === this.alias.name)\n return true;\n\n if (this.metadata && !!this.metadata.columns.find(column => select.selection === this.alias.name + \".\" + column.propertyPath))\n return true;\n }\n\n return false;\n };\n this.isSelectedCache = getValue();\n this.isSelectedEvaluated = true;\n }\n return this.isSelectedCache;\n\n }\n\n /**\n * Name of the table which we should join.\n */\n get tablePath(): string {\n return this.metadata ? this.metadata.tablePath : this.entityOrProperty as string;\n }\n\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get parentAlias(): string|undefined {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n return this.entityOrProperty.substr(0, this.entityOrProperty.indexOf(\".\"));\n }\n\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get relationPropertyPath(): string|undefined {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n return this.entityOrProperty.substr(this.entityOrProperty.indexOf(\".\") + 1);\n }\n\n relationCache: RelationMetadata|undefined;\n relationEvaluated: boolean = false;\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n * Relation can be undefined if entityOrProperty is regular entity or custom table.\n */\n get relation(): RelationMetadata | undefined {\n if (!this.relationEvaluated) {\n let getValue = () => {\n if (!QueryBuilderUtils.isAliasProperty(this.entityOrProperty))\n return undefined;\n\n const relationOwnerSelection = this.queryExpressionMap.findAliasByName(this.parentAlias!);\n let relation = relationOwnerSelection.metadata.findRelationWithPropertyPath(this.relationPropertyPath!);\n\n if (relation) {\n return relation;\n }\n\n if (relationOwnerSelection.metadata.parentEntityMetadata) {\n relation = relationOwnerSelection.metadata.parentEntityMetadata.findRelationWithPropertyPath(this.relationPropertyPath!);\n if (relation) {\n return relation;\n }\n }\n\n throw new Error(`Relation with property path ${this.relationPropertyPath} in entity was not found.`);\n };\n this.relationCache = getValue.bind(this)();\n this.relationEvaluated = true;\n }\n return this.relationCache;\n }\n\n /**\n * Metadata of the joined entity.\n * If table without entity was joined, then it will return undefined.\n */\n get metadata(): EntityMetadata|undefined {\n\n // entityOrProperty is relation, e.g. \"post.category\"\n if (this.relation)\n return this.relation.inverseEntityMetadata;\n\n // entityOrProperty is Entity class\n if (this.connection.hasMetadata(this.entityOrProperty))\n return this.connection.getMetadata(this.entityOrProperty);\n\n return undefined;\n\n /*if (typeof this.entityOrProperty === \"string\") { // entityOrProperty is a custom table\n\n // first try to find entity with such name, this is needed when entity does not have a target class,\n // and its target is a string name (scenario when plain old javascript is used or entity schema is loaded from files)\n const metadata = this.connection.entityMetadatas.find(metadata => metadata.name === this.entityOrProperty);\n if (metadata)\n return metadata;\n\n // check if we have entity with such table name, and use its metadata if found\n return this.connection.entityMetadatas.find(metadata => metadata.tableName === this.entityOrProperty);\n }*/\n }\n\n /**\n * Generates alias of junction table, whose ids we get.\n */\n get junctionAlias(): string {\n if (!this.relation)\n throw new Error(`Cannot get junction table for join without relation.`);\n\n return this.relation.isOwning ? this.parentAlias + \"_\" + this.alias.name : this.alias.name + \"_\" + this.parentAlias;\n }\n\n get mapToPropertyParentAlias(): string|undefined {\n if (!this.mapToProperty)\n return undefined;\n\n return this.mapToProperty!.split(\".\")[0];\n }\n\n get mapToPropertyPropertyName(): string|undefined {\n if (!this.mapToProperty)\n return undefined;\n\n return this.mapToProperty!.split(\".\")[1];\n }\n\n}\n"],"sourceRoot":".."}
@@ -45,7 +45,7 @@ export declare abstract class QueryBuilder<Entity> {
45
45
  /**
46
46
  * Gets the main alias string used in this query builder.
47
47
  */
48
- get alias(): string;
48
+ readonly alias: string;
49
49
  /**
50
50
  * Creates SELECT query.
51
51
  * Replaces all previous selections if they exist.
@@ -154,6 +154,12 @@ export declare abstract class QueryBuilder<Entity> {
154
154
  * where queryBuilder is cloned QueryBuilder.
155
155
  */
156
156
  clone(): this;
157
+ /**
158
+ * Includes a Query comment in the query builder. This is helpful for debugging purposes,
159
+ * such as finding a specific query in the database server's logs, or for categorization using
160
+ * an APM product.
161
+ */
162
+ comment(comment: string): this;
157
163
  /**
158
164
  * Disables escaping.
159
165
  */
@@ -193,6 +199,7 @@ export declare abstract class QueryBuilder<Entity> {
193
199
  * Replaces all entity's propertyName to name in the given statement.
194
200
  */
195
201
  protected replacePropertyNames(statement: string): string;
202
+ protected createComment(): string;
196
203
  /**
197
204
  * Creates "WHERE" expression.
198
205
  */
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryBuilder = void 0;
4
3
  var tslib_1 = require("tslib");
5
4
  var QueryExpressionMap_1 = require("./QueryExpressionMap");
6
5
  var Brackets_1 = require("./Brackets");
7
6
  var EntityMetadata_1 = require("../metadata/EntityMetadata");
8
7
  var SqljsDriver_1 = require("../driver/sqljs/SqljsDriver");
8
+ var PostgresDriver_1 = require("../driver/postgres/PostgresDriver");
9
+ var CockroachDriver_1 = require("../driver/cockroachdb/CockroachDriver");
9
10
  var SqlServerDriver_1 = require("../driver/sqlserver/SqlServerDriver");
10
11
  var OracleDriver_1 = require("../driver/oracle/OracleDriver");
11
- var MysqlDriver_1 = require("../driver/mysql/MysqlDriver");
12
12
  var __1 = require("../");
13
13
  var FindOperator_1 = require("../find-options/FindOperator");
14
14
  var In_1 = require("../find-options/operator/In");
@@ -57,7 +57,7 @@ var QueryBuilder = /** @class */ (function () {
57
57
  throw new Error("Main alias is not set"); // todo: better exception
58
58
  return this.expressionMap.mainAlias.name;
59
59
  },
60
- enumerable: false,
60
+ enumerable: true,
61
61
  configurable: true
62
62
  });
63
63
  /**
@@ -294,6 +294,15 @@ var QueryBuilder = /** @class */ (function () {
294
294
  QueryBuilder.prototype.clone = function () {
295
295
  return new this.constructor(this);
296
296
  };
297
+ /**
298
+ * Includes a Query comment in the query builder. This is helpful for debugging purposes,
299
+ * such as finding a specific query in the database server's logs, or for categorization using
300
+ * an APM product.
301
+ */
302
+ QueryBuilder.prototype.comment = function (comment) {
303
+ this.expressionMap.comment = comment;
304
+ return this;
305
+ };
297
306
  /**
298
307
  * Disables escaping.
299
308
  */
@@ -398,31 +407,142 @@ var QueryBuilder = /** @class */ (function () {
398
407
  * Replaces all entity's propertyName to name in the given statement.
399
408
  */
400
409
  QueryBuilder.prototype.replacePropertyNames = function (statement) {
410
+ var e_1, _a;
401
411
  var _this = this;
402
- this.expressionMap.aliases.forEach(function (alias) {
412
+ // Escape special characters in regular expressions
413
+ // Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
414
+ var escapeRegExp = function (s) { return s.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); };
415
+ var _loop_1 = function (alias) {
416
+ var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e, e_7, _f;
403
417
  if (!alias.hasMetadata)
404
- return;
405
- var replaceAliasNamePrefix = _this.expressionMap.aliasNamePrefixingEnabled ? alias.name + "\\." : "";
406
- var replacementAliasNamePrefix = _this.expressionMap.aliasNamePrefixingEnabled ? _this.escape(alias.name) + "." : "";
407
- alias.metadata.columns.forEach(function (column) {
408
- var expression = "([ =\(]|^.{0})" + replaceAliasNamePrefix + column.propertyPath + "([ =\)\,]|.{0}$)";
409
- statement = statement.replace(new RegExp(expression, "gm"), "$1" + replacementAliasNamePrefix + _this.escape(column.databaseName) + "$2");
410
- var expression2 = "([ =\(]|^.{0})" + replaceAliasNamePrefix + column.propertyName + "([ =\)\,]|.{0}$)";
411
- statement = statement.replace(new RegExp(expression2, "gm"), "$1" + replacementAliasNamePrefix + _this.escape(column.databaseName) + "$2");
412
- });
413
- alias.metadata.relations.forEach(function (relation) {
414
- tslib_1.__spread(relation.joinColumns, relation.inverseJoinColumns).forEach(function (joinColumn) {
415
- var expression = "([ =\(]|^.{0})" + replaceAliasNamePrefix + relation.propertyPath + "\\." + joinColumn.referencedColumn.propertyPath + "([ =\)\,]|.{0}$)";
416
- statement = statement.replace(new RegExp(expression, "gm"), "$1" + replacementAliasNamePrefix + _this.escape(joinColumn.databaseName) + "$2"); // todo: fix relation.joinColumns[0], what if multiple columns
417
- });
418
- if (relation.joinColumns.length > 0) {
419
- var expression = "([ =\(]|^.{0})" + replaceAliasNamePrefix + relation.propertyPath + "([ =\)\,]|.{0}$)";
420
- statement = statement.replace(new RegExp(expression, "gm"), "$1" + replacementAliasNamePrefix + _this.escape(relation.joinColumns[0].databaseName) + "$2"); // todo: fix relation.joinColumns[0], what if multiple columns
418
+ return "continue";
419
+ var replaceAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? alias.name + "." : "";
420
+ var replacementAliasNamePrefix = this_1.expressionMap.aliasNamePrefixingEnabled ? this_1.escape(alias.name) + "." : "";
421
+ var replacements = {};
422
+ try {
423
+ // Insert & overwrite the replacements from least to most relevant in our replacements object.
424
+ // To do this we iterate and overwrite in the order of relevance.
425
+ // Least to Most Relevant:
426
+ // * Relation Property Path to first join column key
427
+ // * Relation Property Path + Column Path
428
+ // * Column Database Name
429
+ // * Column Propety Name
430
+ // * Column Property Path
431
+ for (var _g = (e_2 = void 0, tslib_1.__values(alias.metadata.relations)), _h = _g.next(); !_h.done; _h = _g.next()) {
432
+ var relation = _h.value;
433
+ if (relation.joinColumns.length > 0)
434
+ replacements[relation.propertyPath] = relation.joinColumns[0].databaseName;
421
435
  }
422
- });
423
- });
436
+ }
437
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
438
+ finally {
439
+ try {
440
+ if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
441
+ }
442
+ finally { if (e_2) throw e_2.error; }
443
+ }
444
+ try {
445
+ for (var _j = (e_3 = void 0, tslib_1.__values(alias.metadata.relations)), _k = _j.next(); !_k.done; _k = _j.next()) {
446
+ var relation = _k.value;
447
+ try {
448
+ for (var _l = (e_4 = void 0, tslib_1.__values(tslib_1.__spread(relation.joinColumns, relation.inverseJoinColumns))), _m = _l.next(); !_m.done; _m = _l.next()) {
449
+ var joinColumn = _m.value;
450
+ var propertyKey = relation.propertyPath + "." + joinColumn.referencedColumn.propertyPath;
451
+ replacements[propertyKey] = joinColumn.databaseName;
452
+ }
453
+ }
454
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
455
+ finally {
456
+ try {
457
+ if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
458
+ }
459
+ finally { if (e_4) throw e_4.error; }
460
+ }
461
+ }
462
+ }
463
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
464
+ finally {
465
+ try {
466
+ if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
467
+ }
468
+ finally { if (e_3) throw e_3.error; }
469
+ }
470
+ try {
471
+ for (var _o = (e_5 = void 0, tslib_1.__values(alias.metadata.columns)), _p = _o.next(); !_p.done; _p = _o.next()) {
472
+ var column = _p.value;
473
+ replacements[column.databaseName] = column.databaseName;
474
+ }
475
+ }
476
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
477
+ finally {
478
+ try {
479
+ if (_p && !_p.done && (_d = _o.return)) _d.call(_o);
480
+ }
481
+ finally { if (e_5) throw e_5.error; }
482
+ }
483
+ try {
484
+ for (var _q = (e_6 = void 0, tslib_1.__values(alias.metadata.columns)), _r = _q.next(); !_r.done; _r = _q.next()) {
485
+ var column = _r.value;
486
+ replacements[column.propertyName] = column.databaseName;
487
+ }
488
+ }
489
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
490
+ finally {
491
+ try {
492
+ if (_r && !_r.done && (_e = _q.return)) _e.call(_q);
493
+ }
494
+ finally { if (e_6) throw e_6.error; }
495
+ }
496
+ try {
497
+ for (var _s = (e_7 = void 0, tslib_1.__values(alias.metadata.columns)), _t = _s.next(); !_t.done; _t = _s.next()) {
498
+ var column = _t.value;
499
+ replacements[column.propertyPath] = column.databaseName;
500
+ }
501
+ }
502
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
503
+ finally {
504
+ try {
505
+ if (_t && !_t.done && (_f = _s.return)) _f.call(_s);
506
+ }
507
+ finally { if (e_7) throw e_7.error; }
508
+ }
509
+ var replacementKeys = Object.keys(replacements);
510
+ if (replacementKeys.length) {
511
+ statement = statement.replace(new RegExp(
512
+ // Avoid a lookbehind here since it's not well supported
513
+ "([ =(]|^.{0})" +
514
+ (escapeRegExp(replaceAliasNamePrefix) + "(" + replacementKeys.map(escapeRegExp).join("|") + ")") +
515
+ "(?=[ =),]|.{0}$)", "gm"), function (_, pre, p) {
516
+ return "" + pre + replacementAliasNamePrefix + _this.escape(replacements[p]);
517
+ });
518
+ }
519
+ };
520
+ var this_1 = this;
521
+ try {
522
+ for (var _b = tslib_1.__values(this.expressionMap.aliases), _c = _b.next(); !_c.done; _c = _b.next()) {
523
+ var alias = _c.value;
524
+ _loop_1(alias);
525
+ }
526
+ }
527
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
528
+ finally {
529
+ try {
530
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
531
+ }
532
+ finally { if (e_1) throw e_1.error; }
533
+ }
424
534
  return statement;
425
535
  };
536
+ QueryBuilder.prototype.createComment = function () {
537
+ if (!this.expressionMap.comment) {
538
+ return "";
539
+ }
540
+ // ANSI SQL 2003 support C style comments - comments that start with `/*` and end with `*/`
541
+ // In some dialects query nesting is available - but not all. Because of this, we'll need
542
+ // to scrub "ending" characters from the SQL but otherwise we can leave everything else
543
+ // as-is and it should be valid.
544
+ return "/* " + this.expressionMap.comment.replace("*/", "") + " */ ";
545
+ };
426
546
  /**
427
547
  * Creates "WHERE" expression.
428
548
  */
@@ -591,6 +711,9 @@ var QueryBuilder = /** @class */ (function () {
591
711
  return where;
592
712
  if (where instanceof Brackets_1.Brackets) {
593
713
  var whereQueryBuilder = this.createQueryBuilder();
714
+ whereQueryBuilder.expressionMap.mainAlias = this.expressionMap.mainAlias;
715
+ whereQueryBuilder.expressionMap.aliasNamePrefixingEnabled = this.expressionMap.aliasNamePrefixingEnabled;
716
+ whereQueryBuilder.expressionMap.nativeParameters = this.expressionMap.nativeParameters;
594
717
  where.whereFactory(whereQueryBuilder);
595
718
  var whereString = whereQueryBuilder.createWhereExpressionString();
596
719
  this.setParameters(whereQueryBuilder.getParameters());
@@ -622,12 +745,17 @@ var QueryBuilder = /** @class */ (function () {
622
745
  else if (parameterValue instanceof FindOperator_1.FindOperator) {
623
746
  var parameters_1 = [];
624
747
  if (parameterValue.useParameter) {
625
- var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
626
- realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) {
627
- _this.expressionMap.nativeParameters[parameterName + (parameterBaseCount + realParameterValueIndex)] = realParameterValue;
628
- parameterIndex_1++;
629
- parameters_1.push(_this.connection.driver.createParameter(parameterName + (parameterBaseCount + realParameterValueIndex), parameterIndex_1 - 1));
630
- });
748
+ if (parameterValue.objectLiteralParameters) {
749
+ _this.setParameters(parameterValue.objectLiteralParameters);
750
+ }
751
+ else {
752
+ var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
753
+ realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) {
754
+ _this.expressionMap.nativeParameters[parameterName + (parameterBaseCount + realParameterValueIndex)] = realParameterValue;
755
+ parameterIndex_1++;
756
+ parameters_1.push(_this.connection.driver.createParameter(parameterName + (parameterBaseCount + realParameterValueIndex), parameterIndex_1 - 1));
757
+ });
758
+ }
631
759
  }
632
760
  return _this.computeFindOperatorExpression(parameterValue, aliasPath, parameters_1);
633
761
  }
@@ -668,6 +796,7 @@ var QueryBuilder = /** @class */ (function () {
668
796
  * Gets SQL needs to be inserted into final query.
669
797
  */
670
798
  QueryBuilder.prototype.computeFindOperatorExpression = function (operator, aliasPath, parameters) {
799
+ var driver = this.connection.driver;
671
800
  switch (operator.type) {
672
801
  case "not":
673
802
  if (operator.child) {
@@ -686,13 +815,18 @@ var QueryBuilder = /** @class */ (function () {
686
815
  return aliasPath + " >= " + parameters[0];
687
816
  case "equal":
688
817
  return aliasPath + " = " + parameters[0];
818
+ case "ilike":
819
+ if (driver instanceof PostgresDriver_1.PostgresDriver || driver instanceof CockroachDriver_1.CockroachDriver) {
820
+ return aliasPath + " ILIKE " + parameters[0];
821
+ }
822
+ return "UPPER(" + aliasPath + ") LIKE UPPER(" + parameters[0] + ")";
689
823
  case "like":
690
824
  return aliasPath + " LIKE " + parameters[0];
691
825
  case "between":
692
826
  return aliasPath + " BETWEEN " + parameters[0] + " AND " + parameters[1];
693
827
  case "in":
694
- if ((this.connection.driver instanceof OracleDriver_1.OracleDriver || this.connection.driver instanceof MysqlDriver_1.MysqlDriver) && parameters.length === 0) {
695
- return aliasPath + " IN (null)";
828
+ if (parameters.length === 0) {
829
+ return "0=1";
696
830
  }
697
831
  return aliasPath + " IN (" + parameters.join(", ") + ")";
698
832
  case "any":
@@ -700,8 +834,8 @@ var QueryBuilder = /** @class */ (function () {
700
834
  case "isNull":
701
835
  return aliasPath + " IS NULL";
702
836
  case "raw":
703
- if (typeof operator.value === "function") {
704
- return operator.value(aliasPath);
837
+ if (operator.getSql) {
838
+ return operator.getSql(aliasPath);
705
839
  }
706
840
  else {
707
841
  return aliasPath + " = " + operator.value;