typeorm 0.2.38 → 0.2.39-dev.2c861af

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 (677) hide show
  1. package/README.md +60 -59
  2. package/browser/connection/ConnectionMetadataBuilder.js +4 -4
  3. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.js +2 -1
  5. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  6. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  7. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  8. package/browser/decorator/entity-view/ViewEntity.js +1 -0
  9. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  10. package/browser/decorator/options/ViewEntityOptions.d.ts +5 -0
  11. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  12. package/browser/decorator/transaction/Transaction.js +3 -3
  13. package/browser/decorator/transaction/Transaction.js.map +1 -1
  14. package/browser/driver/DriverUtils.js +1 -1
  15. package/browser/driver/DriverUtils.js.map +1 -1
  16. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  17. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  18. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +6 -5
  19. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  20. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +19 -48
  21. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  22. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  23. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  24. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +2 -1
  25. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  26. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +17 -46
  27. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  28. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  29. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  30. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  31. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  33. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  34. package/browser/driver/cockroachdb/CockroachDriver.js +5 -4
  35. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  36. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -77
  37. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  38. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  39. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  40. package/browser/driver/cordova/CordovaDriver.js +2 -1
  41. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  42. package/browser/driver/expo/ExpoQueryRunner.js +12 -43
  43. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  44. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  45. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  46. package/browser/driver/mongodb/MongoDriver.js +2 -1
  47. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  48. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  49. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  50. package/browser/driver/mysql/MysqlDriver.js +4 -2
  51. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  52. package/browser/driver/mysql/MysqlQueryRunner.js +24 -54
  53. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  54. package/browser/driver/nativescript/NativescriptQueryRunner.js +45 -37
  55. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  56. package/browser/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  57. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  58. package/browser/driver/oracle/OracleDriver.js +5 -4
  59. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  60. package/browser/driver/oracle/OracleQueryRunner.js +20 -48
  61. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  62. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  63. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  64. package/browser/driver/postgres/PostgresDriver.js +6 -5
  65. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  66. package/browser/driver/postgres/PostgresQueryRunner.js +21 -51
  67. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  68. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  69. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  70. package/browser/driver/react-native/ReactNativeDriver.js +2 -1
  71. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  72. package/browser/driver/sap/SapConnectionOptions.d.ts +16 -6
  73. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  74. package/browser/driver/sap/SapDriver.js +6 -3
  75. package/browser/driver/sap/SapDriver.js.map +1 -1
  76. package/browser/driver/sap/SapQueryRunner.js +20 -50
  77. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  78. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  79. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  80. package/browser/driver/sqlite/SqliteDriver.js +4 -3
  81. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  82. package/browser/driver/sqlite/SqliteQueryRunner.js +16 -8
  83. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  84. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +19 -49
  85. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  86. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  87. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  88. package/browser/driver/sqljs/SqljsDriver.js +4 -2
  89. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  90. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  91. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  92. package/browser/driver/sqlserver/SqlServerDriver.js +7 -6
  93. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  94. package/browser/driver/sqlserver/SqlServerQueryRunner.js +84 -116
  95. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  96. package/browser/entity-manager/MongoEntityManager.js +8 -13
  97. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  98. package/browser/find-options/FindOptionsUtils.js +1 -1
  99. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  100. package/browser/metadata/ColumnMetadata.js +4 -4
  101. package/browser/metadata/ColumnMetadata.js.map +1 -1
  102. package/browser/metadata/EmbeddedMetadata.js +1 -1
  103. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  104. package/browser/metadata/EntityMetadata.d.ts +5 -0
  105. package/browser/metadata/EntityMetadata.js +2 -1
  106. package/browser/metadata/EntityMetadata.js.map +1 -1
  107. package/browser/metadata/RelationMetadata.js +4 -4
  108. package/browser/metadata/RelationMetadata.js.map +1 -1
  109. package/browser/metadata-args/TableMetadataArgs.d.ts +4 -0
  110. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  111. package/browser/metadata-builder/EntityMetadataBuilder.js +5 -5
  112. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  113. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  114. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  115. package/browser/naming-strategy/DefaultNamingStrategy.js +5 -5
  116. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  117. package/browser/persistence/Subject.js +1 -1
  118. package/browser/persistence/Subject.js.map +1 -1
  119. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  120. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  121. package/browser/persistence/SubjectExecutor.js +1 -1
  122. package/browser/persistence/SubjectExecutor.js.map +1 -1
  123. package/browser/persistence/SubjectTopoligicalSorter.js +5 -5
  124. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  125. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  126. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  127. package/browser/query-builder/DeleteQueryBuilder.js +3 -10
  128. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  129. package/browser/query-builder/InsertQueryBuilder.js +4 -6
  130. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  131. package/browser/query-builder/QueryBuilder.js +9 -9
  132. package/browser/query-builder/QueryBuilder.js.map +1 -1
  133. package/browser/query-builder/RelationLoader.js +2 -2
  134. package/browser/query-builder/RelationLoader.js.map +1 -1
  135. package/browser/query-builder/RelationRemover.js +6 -6
  136. package/browser/query-builder/RelationRemover.js.map +1 -1
  137. package/browser/query-builder/SelectQueryBuilder.js +14 -14
  138. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  139. package/browser/query-builder/SoftDeleteQueryBuilder.js +3 -10
  140. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  141. package/browser/query-builder/UpdateQueryBuilder.js +5 -12
  142. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  143. package/browser/query-builder/relation-id/RelationIdLoader.js +1 -1
  144. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  145. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  146. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  147. package/browser/query-runner/BaseQueryRunner.js +2 -2
  148. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  149. package/browser/query-runner/QueryLock.js +1 -1
  150. package/browser/query-runner/QueryLock.js.map +1 -1
  151. package/browser/repository/BaseEntity.js +1 -1
  152. package/browser/repository/BaseEntity.js.map +1 -1
  153. package/browser/repository/Repository.js +1 -1
  154. package/browser/repository/Repository.js.map +1 -1
  155. package/browser/repository/TreeRepository.js +2 -2
  156. package/browser/repository/TreeRepository.js.map +1 -1
  157. package/browser/schema-builder/RdbmsSchemaBuilder.js +223 -148
  158. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  159. package/browser/schema-builder/table/TableCheck.js +1 -1
  160. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  161. package/browser/schema-builder/table/TableForeignKey.js +2 -2
  162. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  163. package/browser/schema-builder/table/TableIndex.js +1 -1
  164. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  165. package/browser/schema-builder/table/TableUnique.js +1 -1
  166. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  167. package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
  168. package/browser/schema-builder/util/ViewUtils.js +25 -0
  169. package/browser/schema-builder/util/ViewUtils.js.map +1 -0
  170. package/browser/subscriber/Broadcaster.d.ts +23 -2
  171. package/browser/subscriber/Broadcaster.js +35 -2
  172. package/browser/subscriber/Broadcaster.js.map +1 -1
  173. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  174. package/browser/subscriber/BroadcasterResult.js +19 -0
  175. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  176. package/cache/DbQueryResultCache.js +12 -12
  177. package/cache/RedisQueryResultCache.js +12 -12
  178. package/cli.js +1 -6
  179. package/cli.js.map +1 -1
  180. package/commands/CacheClearCommand.js +4 -4
  181. package/commands/CacheClearCommand.js.map +1 -1
  182. package/commands/CommandUtils.js +10 -10
  183. package/commands/CommandUtils.js.map +1 -1
  184. package/commands/EntityCreateCommand.js +3 -3
  185. package/commands/EntityCreateCommand.js.map +1 -1
  186. package/commands/InitCommand.js +5 -5
  187. package/commands/InitCommand.js.map +1 -1
  188. package/commands/MigrationCreateCommand.js +5 -5
  189. package/commands/MigrationCreateCommand.js.map +1 -1
  190. package/commands/MigrationGenerateCommand.js +7 -7
  191. package/commands/MigrationGenerateCommand.js.map +1 -1
  192. package/commands/MigrationRevertCommand.js +4 -4
  193. package/commands/MigrationRevertCommand.js.map +1 -1
  194. package/commands/MigrationRunCommand.js +5 -5
  195. package/commands/MigrationRunCommand.js.map +1 -1
  196. package/commands/MigrationShowCommand.js +5 -5
  197. package/commands/MigrationShowCommand.js.map +1 -1
  198. package/commands/QueryCommand.js +4 -4
  199. package/commands/QueryCommand.js.map +1 -1
  200. package/commands/SchemaDropCommand.js +4 -4
  201. package/commands/SchemaDropCommand.js.map +1 -1
  202. package/commands/SchemaLogCommand.js +5 -5
  203. package/commands/SchemaLogCommand.js.map +1 -1
  204. package/commands/SchemaSyncCommand.js +4 -4
  205. package/commands/SchemaSyncCommand.js.map +1 -1
  206. package/commands/SubscriberCreateCommand.js +3 -3
  207. package/commands/SubscriberCreateCommand.js.map +1 -1
  208. package/commands/VersionCommand.js +3 -3
  209. package/commands/VersionCommand.js.map +1 -1
  210. package/connection/Connection.js +19 -19
  211. package/connection/Connection.js.map +1 -1
  212. package/connection/ConnectionMetadataBuilder.js +11 -11
  213. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  214. package/connection/ConnectionOptionsReader.js +11 -10
  215. package/connection/ConnectionOptionsReader.js.map +1 -1
  216. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -2
  217. package/connection/options-reader/ConnectionOptionsXmlReader.js +3 -3
  218. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  219. package/connection/options-reader/ConnectionOptionsYmlReader.js +4 -4
  220. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  221. package/decorator/Check.js +1 -1
  222. package/decorator/Check.js.map +1 -1
  223. package/decorator/EntityRepository.js +1 -1
  224. package/decorator/EntityRepository.js.map +1 -1
  225. package/decorator/Exclusion.js +1 -1
  226. package/decorator/Exclusion.js.map +1 -1
  227. package/decorator/Generated.js +1 -1
  228. package/decorator/Generated.js.map +1 -1
  229. package/decorator/Index.js +1 -1
  230. package/decorator/Index.js.map +1 -1
  231. package/decorator/Unique.js +1 -1
  232. package/decorator/Unique.js.map +1 -1
  233. package/decorator/columns/Column.js +4 -4
  234. package/decorator/columns/Column.js.map +1 -1
  235. package/decorator/columns/CreateDateColumn.js +1 -1
  236. package/decorator/columns/CreateDateColumn.js.map +1 -1
  237. package/decorator/columns/DeleteDateColumn.js +1 -1
  238. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  239. package/decorator/columns/ObjectIdColumn.js +1 -1
  240. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  241. package/decorator/columns/PrimaryColumn.js +2 -2
  242. package/decorator/columns/PrimaryColumn.js.map +1 -1
  243. package/decorator/columns/PrimaryGeneratedColumn.js +2 -2
  244. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  245. package/decorator/columns/UpdateDateColumn.js +1 -1
  246. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  247. package/decorator/columns/VersionColumn.js +1 -1
  248. package/decorator/columns/VersionColumn.js.map +1 -1
  249. package/decorator/columns/ViewColumn.js +1 -1
  250. package/decorator/columns/ViewColumn.js.map +1 -1
  251. package/decorator/entity/ChildEntity.js +2 -2
  252. package/decorator/entity/ChildEntity.js.map +1 -1
  253. package/decorator/entity/Entity.js +1 -1
  254. package/decorator/entity/Entity.js.map +1 -1
  255. package/decorator/entity/TableInheritance.js +1 -1
  256. package/decorator/entity/TableInheritance.js.map +1 -1
  257. package/decorator/entity-view/ViewEntity.js +2 -1
  258. package/decorator/entity-view/ViewEntity.js.map +1 -1
  259. package/decorator/listeners/AfterInsert.js +1 -1
  260. package/decorator/listeners/AfterInsert.js.map +1 -1
  261. package/decorator/listeners/AfterLoad.js +1 -1
  262. package/decorator/listeners/AfterLoad.js.map +1 -1
  263. package/decorator/listeners/AfterRemove.js +1 -1
  264. package/decorator/listeners/AfterRemove.js.map +1 -1
  265. package/decorator/listeners/AfterUpdate.js +1 -1
  266. package/decorator/listeners/AfterUpdate.js.map +1 -1
  267. package/decorator/listeners/BeforeInsert.js +1 -1
  268. package/decorator/listeners/BeforeInsert.js.map +1 -1
  269. package/decorator/listeners/BeforeRemove.js +1 -1
  270. package/decorator/listeners/BeforeRemove.js.map +1 -1
  271. package/decorator/listeners/BeforeUpdate.js +1 -1
  272. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  273. package/decorator/listeners/EventSubscriber.js +1 -1
  274. package/decorator/listeners/EventSubscriber.js.map +1 -1
  275. package/decorator/options/ViewEntityOptions.d.ts +5 -0
  276. package/decorator/options/ViewEntityOptions.js.map +1 -1
  277. package/decorator/relations/JoinColumn.js +1 -1
  278. package/decorator/relations/JoinColumn.js.map +1 -1
  279. package/decorator/relations/JoinTable.js +1 -1
  280. package/decorator/relations/JoinTable.js.map +1 -1
  281. package/decorator/relations/ManyToMany.js +1 -1
  282. package/decorator/relations/ManyToMany.js.map +1 -1
  283. package/decorator/relations/ManyToOne.js +1 -1
  284. package/decorator/relations/ManyToOne.js.map +1 -1
  285. package/decorator/relations/OneToMany.js +1 -1
  286. package/decorator/relations/OneToMany.js.map +1 -1
  287. package/decorator/relations/OneToOne.js +1 -1
  288. package/decorator/relations/OneToOne.js.map +1 -1
  289. package/decorator/relations/RelationCount.js +1 -1
  290. package/decorator/relations/RelationCount.js.map +1 -1
  291. package/decorator/relations/RelationId.js +1 -1
  292. package/decorator/relations/RelationId.js.map +1 -1
  293. package/decorator/transaction/Transaction.js +7 -7
  294. package/decorator/transaction/Transaction.js.map +1 -1
  295. package/decorator/transaction/TransactionManager.js +1 -1
  296. package/decorator/transaction/TransactionManager.js.map +1 -1
  297. package/decorator/transaction/TransactionRepository.js +1 -1
  298. package/decorator/transaction/TransactionRepository.js.map +1 -1
  299. package/decorator/tree/Tree.js +1 -1
  300. package/decorator/tree/Tree.js.map +1 -1
  301. package/decorator/tree/TreeChildren.js +1 -1
  302. package/decorator/tree/TreeChildren.js.map +1 -1
  303. package/decorator/tree/TreeLevelColumn.js +1 -1
  304. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  305. package/decorator/tree/TreeParent.js +1 -1
  306. package/decorator/tree/TreeParent.js.map +1 -1
  307. package/driver/DriverUtils.js +9 -9
  308. package/driver/DriverUtils.js.map +1 -1
  309. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -1
  310. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  311. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  312. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  313. package/driver/aurora-data-api/AuroraDataApiDriver.js +12 -11
  314. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  315. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +146 -175
  316. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  317. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  318. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  319. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +10 -9
  320. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  321. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +29 -58
  322. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  323. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  324. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  325. package/driver/better-sqlite3/BetterSqlite3Driver.js +12 -11
  326. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  327. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +5 -5
  328. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  329. package/driver/capacitor/CapacitorDriver.js +7 -7
  330. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  331. package/driver/capacitor/CapacitorQueryRunner.js +5 -5
  332. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  333. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  334. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  335. package/driver/cockroachdb/CockroachDriver.js +15 -14
  336. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  337. package/driver/cockroachdb/CockroachQueryRunner.js +180 -211
  338. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  339. package/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  340. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  341. package/driver/cordova/CordovaDriver.js +5 -4
  342. package/driver/cordova/CordovaDriver.js.map +1 -1
  343. package/driver/cordova/CordovaQueryRunner.js +13 -13
  344. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  345. package/driver/expo/ExpoDriver.js +3 -3
  346. package/driver/expo/ExpoDriver.js.map +1 -1
  347. package/driver/expo/ExpoQueryRunner.js +23 -54
  348. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  349. package/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  350. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  351. package/driver/mongodb/MongoDriver.js +4 -3
  352. package/driver/mongodb/MongoDriver.js.map +1 -1
  353. package/driver/mongodb/MongoQueryRunner.js +178 -178
  354. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  355. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  356. package/driver/mysql/MysqlDriver.js +9 -7
  357. package/driver/mysql/MysqlDriver.js.map +1 -1
  358. package/driver/mysql/MysqlQueryRunner.js +152 -182
  359. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  360. package/driver/nativescript/NativescriptDriver.js +3 -3
  361. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  362. package/driver/nativescript/NativescriptQueryRunner.js +48 -40
  363. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  364. package/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  365. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  366. package/driver/oracle/OracleDriver.js +13 -12
  367. package/driver/oracle/OracleDriver.js.map +1 -1
  368. package/driver/oracle/OracleQueryRunner.js +143 -171
  369. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  370. package/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  371. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  372. package/driver/postgres/PostgresDriver.js +24 -23
  373. package/driver/postgres/PostgresDriver.js.map +1 -1
  374. package/driver/postgres/PostgresQueryRunner.js +169 -199
  375. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  376. package/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  377. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  378. package/driver/react-native/ReactNativeDriver.js +5 -4
  379. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  380. package/driver/react-native/ReactNativeQueryRunner.js +3 -3
  381. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  382. package/driver/sap/SapConnectionOptions.d.ts +16 -6
  383. package/driver/sap/SapConnectionOptions.js.map +1 -1
  384. package/driver/sap/SapDriver.js +11 -8
  385. package/driver/sap/SapDriver.js.map +1 -1
  386. package/driver/sap/SapQueryRunner.js +153 -183
  387. package/driver/sap/SapQueryRunner.js.map +1 -1
  388. package/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  389. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  390. package/driver/sqlite/SqliteDriver.js +12 -11
  391. package/driver/sqlite/SqliteDriver.js.map +1 -1
  392. package/driver/sqlite/SqliteQueryRunner.js +21 -13
  393. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  394. package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -4
  395. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +138 -168
  396. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  397. package/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  398. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  399. package/driver/sqljs/SqljsDriver.js +17 -15
  400. package/driver/sqljs/SqljsDriver.js.map +1 -1
  401. package/driver/sqljs/SqljsQueryRunner.js +9 -9
  402. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  403. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  404. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  405. package/driver/sqlserver/SqlServerDriver.js +13 -12
  406. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  407. package/driver/sqlserver/SqlServerQueryRunner.js +220 -252
  408. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  409. package/entity-manager/EntityManager.js +30 -30
  410. package/entity-manager/EntityManager.js.map +1 -1
  411. package/entity-manager/MongoEntityManager.js +23 -28
  412. package/entity-manager/MongoEntityManager.js.map +1 -1
  413. package/entity-manager/SqljsEntityManager.js +5 -5
  414. package/entity-manager/SqljsEntityManager.js.map +1 -1
  415. package/entity-schema/EntitySchemaTransformer.js +1 -1
  416. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  417. package/error/AlreadyHasActiveConnectionError.js +1 -1
  418. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  419. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  420. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  421. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  422. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  423. package/error/CannotCreateEntityIdMapError.js +1 -1
  424. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  425. package/error/CannotDetermineEntityError.js +1 -1
  426. package/error/CannotDetermineEntityError.js.map +1 -1
  427. package/error/CannotExecuteNotConnectedError.js +1 -1
  428. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  429. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  430. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  431. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  432. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  433. package/error/CircularRelationsError.js +1 -1
  434. package/error/CircularRelationsError.js.map +1 -1
  435. package/error/ColumnTypeUndefinedError.js +1 -1
  436. package/error/ColumnTypeUndefinedError.js.map +1 -1
  437. package/error/ConnectionIsNotSetError.js +1 -1
  438. package/error/ConnectionIsNotSetError.js.map +1 -1
  439. package/error/ConnectionNotFoundError.js +1 -1
  440. package/error/ConnectionNotFoundError.js.map +1 -1
  441. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  442. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  443. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  444. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  445. package/error/CustomRepositoryNotFoundError.js +1 -1
  446. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  447. package/error/DataTypeNotSupportedError.js +1 -1
  448. package/error/DataTypeNotSupportedError.js.map +1 -1
  449. package/error/DriverOptionNotSetError.js +1 -1
  450. package/error/DriverOptionNotSetError.js.map +1 -1
  451. package/error/DriverPackageNotInstalledError.js +1 -1
  452. package/error/DriverPackageNotInstalledError.js.map +1 -1
  453. package/error/EntityColumnNotFound.js +1 -1
  454. package/error/EntityColumnNotFound.js.map +1 -1
  455. package/error/EntityMetadataNotFoundError.js +1 -1
  456. package/error/EntityMetadataNotFoundError.js.map +1 -1
  457. package/error/EntityNotFoundError.js +1 -1
  458. package/error/EntityNotFoundError.js.map +1 -1
  459. package/error/FindRelationsNotFoundError.js +1 -1
  460. package/error/FindRelationsNotFoundError.js.map +1 -1
  461. package/error/InitializedRelationError.js +1 -1
  462. package/error/InitializedRelationError.js.map +1 -1
  463. package/error/InsertValuesMissingError.js +1 -1
  464. package/error/InsertValuesMissingError.js.map +1 -1
  465. package/error/LimitOnUpdateNotSupportedError.js +1 -1
  466. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  467. package/error/LockNotSupportedOnGivenDriverError.js +1 -1
  468. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  469. package/error/MetadataAlreadyExistsError.js +1 -1
  470. package/error/MetadataAlreadyExistsError.js.map +1 -1
  471. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -1
  472. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  473. package/error/MissingDeleteDateColumnError.js +1 -1
  474. package/error/MissingDeleteDateColumnError.js.map +1 -1
  475. package/error/MissingDriverError.js +1 -1
  476. package/error/MissingDriverError.js.map +1 -1
  477. package/error/MissingJoinColumnError.js +1 -1
  478. package/error/MissingJoinColumnError.js.map +1 -1
  479. package/error/MissingJoinTableError.js +1 -1
  480. package/error/MissingJoinTableError.js.map +1 -1
  481. package/error/MissingPrimaryColumnError.js +1 -1
  482. package/error/MissingPrimaryColumnError.js.map +1 -1
  483. package/error/MustBeEntityError.js +1 -1
  484. package/error/MustBeEntityError.js.map +1 -1
  485. package/error/NamingStrategyNotFoundError.js +1 -1
  486. package/error/NamingStrategyNotFoundError.js.map +1 -1
  487. package/error/NestedSetMultipleRootError.js +1 -1
  488. package/error/NestedSetMultipleRootError.js.map +1 -1
  489. package/error/NoConnectionForRepositoryError.js +1 -1
  490. package/error/NoConnectionForRepositoryError.js.map +1 -1
  491. package/error/NoConnectionOptionError.js +1 -1
  492. package/error/NoConnectionOptionError.js.map +1 -1
  493. package/error/NoNeedToReleaseEntityManagerError.js +1 -1
  494. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  495. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  496. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  497. package/error/OffsetWithoutLimitNotSupportedError.js +1 -1
  498. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  499. package/error/OptimisticLockCanNotBeUsedError.js +1 -1
  500. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  501. package/error/OptimisticLockVersionMismatchError.js +1 -1
  502. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  503. package/error/PersistedEntityNotFoundError.js +1 -1
  504. package/error/PersistedEntityNotFoundError.js.map +1 -1
  505. package/error/PessimisticLockTransactionRequiredError.js +1 -1
  506. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  507. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  508. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  509. package/error/QueryFailedError.js +3 -3
  510. package/error/QueryFailedError.js.map +1 -1
  511. package/error/QueryRunnerAlreadyReleasedError.js +1 -1
  512. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  513. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -1
  514. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  515. package/error/RepositoryNotFoundError.js +1 -1
  516. package/error/RepositoryNotFoundError.js.map +1 -1
  517. package/error/RepositoryNotTreeError.js +1 -1
  518. package/error/RepositoryNotTreeError.js.map +1 -1
  519. package/error/ReturningStatementNotSupportedError.js +1 -1
  520. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  521. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  522. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  523. package/error/SubjectWithoutIdentifierError.js +1 -1
  524. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  525. package/error/TransactionAlreadyStartedError.js +1 -1
  526. package/error/TransactionAlreadyStartedError.js.map +1 -1
  527. package/error/TransactionNotStartedError.js +1 -1
  528. package/error/TransactionNotStartedError.js.map +1 -1
  529. package/error/TreeRepositoryNotSupportedError.js +1 -1
  530. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  531. package/error/TypeORMError.js +1 -1
  532. package/error/TypeORMError.js.map +1 -1
  533. package/error/UpdateValuesMissingError.js +1 -1
  534. package/error/UpdateValuesMissingError.js.map +1 -1
  535. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  536. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  537. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  538. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  539. package/error/UsingJoinTableIsNotAllowedError.js +1 -1
  540. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  541. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  542. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  543. package/error/index.js +62 -62
  544. package/error/index.js.map +1 -1
  545. package/find-options/FindOptionsUtils.js +4 -4
  546. package/find-options/FindOptionsUtils.js.map +1 -1
  547. package/globals.js +7 -7
  548. package/globals.js.map +1 -1
  549. package/index.js +102 -102
  550. package/index.js.map +1 -1
  551. package/logger/DebugLogger.js +9 -9
  552. package/logger/DebugLogger.js.map +1 -1
  553. package/logger/FileLogger.js +1 -1
  554. package/logger/FileLogger.js.map +1 -1
  555. package/metadata/ColumnMetadata.js +4 -4
  556. package/metadata/ColumnMetadata.js.map +1 -1
  557. package/metadata/EmbeddedMetadata.js +1 -1
  558. package/metadata/EmbeddedMetadata.js.map +1 -1
  559. package/metadata/EntityMetadata.d.ts +5 -0
  560. package/metadata/EntityMetadata.js +3 -2
  561. package/metadata/EntityMetadata.js.map +1 -1
  562. package/metadata/RelationMetadata.js +4 -4
  563. package/metadata/RelationMetadata.js.map +1 -1
  564. package/metadata-args/TableMetadataArgs.d.ts +4 -0
  565. package/metadata-args/TableMetadataArgs.js.map +1 -1
  566. package/metadata-builder/EntityMetadataBuilder.js +5 -5
  567. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  568. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  569. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  570. package/migration/MigrationExecutor.js +33 -33
  571. package/migration/MigrationExecutor.js.map +1 -1
  572. package/naming-strategy/DefaultNamingStrategy.js +10 -10
  573. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  574. package/package.json +1 -239
  575. package/persistence/EntityPersistExecutor.js +5 -5
  576. package/persistence/EntityPersistExecutor.js.map +1 -1
  577. package/persistence/Subject.js +1 -1
  578. package/persistence/Subject.js.map +1 -1
  579. package/persistence/SubjectDatabaseEntityLoader.js +6 -6
  580. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  581. package/persistence/SubjectExecutor.js +31 -31
  582. package/persistence/SubjectExecutor.js.map +1 -1
  583. package/persistence/SubjectTopoligicalSorter.js +5 -5
  584. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  585. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  586. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  587. package/persistence/tree/ClosureSubjectExecutor.js +13 -13
  588. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  589. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -5
  590. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  591. package/persistence/tree/NestedSetSubjectExecutor.js +14 -14
  592. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  593. package/platform/PlatformTools.js +8 -8
  594. package/platform/PlatformTools.js.map +1 -1
  595. package/query-builder/DeleteQueryBuilder.js +7 -14
  596. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  597. package/query-builder/InsertQueryBuilder.js +9 -11
  598. package/query-builder/InsertQueryBuilder.js.map +1 -1
  599. package/query-builder/JoinAttribute.js +1 -1
  600. package/query-builder/JoinAttribute.js.map +1 -1
  601. package/query-builder/QueryBuilder.js +37 -37
  602. package/query-builder/QueryBuilder.js.map +1 -1
  603. package/query-builder/QueryBuilderUtils.js +1 -1
  604. package/query-builder/QueryBuilderUtils.js.map +1 -1
  605. package/query-builder/QueryExpressionMap.js +3 -3
  606. package/query-builder/QueryExpressionMap.js.map +1 -1
  607. package/query-builder/RelationLoader.js +2 -2
  608. package/query-builder/RelationLoader.js.map +1 -1
  609. package/query-builder/RelationQueryBuilder.js +13 -13
  610. package/query-builder/RelationQueryBuilder.js.map +1 -1
  611. package/query-builder/RelationRemover.js +12 -12
  612. package/query-builder/RelationRemover.js.map +1 -1
  613. package/query-builder/RelationUpdater.js +2 -2
  614. package/query-builder/ReturningResultsEntityUpdator.js +6 -6
  615. package/query-builder/SelectQueryBuilder.js +43 -43
  616. package/query-builder/SelectQueryBuilder.js.map +1 -1
  617. package/query-builder/SoftDeleteQueryBuilder.js +7 -14
  618. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  619. package/query-builder/UpdateQueryBuilder.js +10 -17
  620. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  621. package/query-builder/relation-count/RelationCountAttribute.js +2 -2
  622. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  623. package/query-builder/relation-count/RelationCountLoader.js +4 -4
  624. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  625. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  626. package/query-builder/relation-id/RelationIdLoader.js +5 -5
  627. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  628. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  629. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  630. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  631. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  632. package/query-runner/BaseQueryRunner.js +25 -25
  633. package/query-runner/BaseQueryRunner.js.map +1 -1
  634. package/query-runner/QueryLock.js +3 -3
  635. package/query-runner/QueryLock.js.map +1 -1
  636. package/repository/AbstractRepository.js +1 -1
  637. package/repository/AbstractRepository.js.map +1 -1
  638. package/repository/BaseEntity.js +4 -4
  639. package/repository/BaseEntity.js.map +1 -1
  640. package/repository/MongoRepository.js +1 -1
  641. package/repository/MongoRepository.js.map +1 -1
  642. package/repository/Repository.js +1 -1
  643. package/repository/Repository.js.map +1 -1
  644. package/repository/TreeRepository.js +7 -7
  645. package/repository/TreeRepository.js.map +1 -1
  646. package/schema-builder/MongoSchemaBuilder.js +2 -2
  647. package/schema-builder/RdbmsSchemaBuilder.js +311 -236
  648. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  649. package/schema-builder/table/Table.js +1 -1
  650. package/schema-builder/table/Table.js.map +1 -1
  651. package/schema-builder/table/TableCheck.js +1 -1
  652. package/schema-builder/table/TableCheck.js.map +1 -1
  653. package/schema-builder/table/TableForeignKey.js +2 -2
  654. package/schema-builder/table/TableForeignKey.js.map +1 -1
  655. package/schema-builder/table/TableIndex.js +1 -1
  656. package/schema-builder/table/TableIndex.js.map +1 -1
  657. package/schema-builder/table/TableUnique.js +1 -1
  658. package/schema-builder/table/TableUnique.js.map +1 -1
  659. package/schema-builder/util/ViewUtils.d.ts +7 -0
  660. package/schema-builder/util/ViewUtils.js +28 -0
  661. package/schema-builder/util/ViewUtils.js.map +1 -0
  662. package/subscriber/Broadcaster.d.ts +23 -2
  663. package/subscriber/Broadcaster.js +35 -2
  664. package/subscriber/Broadcaster.js.map +1 -1
  665. package/subscriber/BroadcasterResult.d.ts +4 -0
  666. package/subscriber/BroadcasterResult.js +19 -0
  667. package/subscriber/BroadcasterResult.js.map +1 -1
  668. package/util/DateUtils.js +1 -1
  669. package/util/DateUtils.js.map +1 -1
  670. package/util/DirectoryExportedClassesLoader.js +1 -1
  671. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  672. package/util/ObjectUtils.js +2 -2
  673. package/util/ObjectUtils.js.map +1 -1
  674. package/util/OrmUtils.js +2 -2
  675. package/util/OrmUtils.js.map +1 -1
  676. package/util/StringUtils.js +2 -2
  677. package/util/StringUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/repository/TreeRepository.ts"],"names":[],"mappings":"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","file":"TreeRepository.js","sourcesContent":["import {Repository} from \"./Repository\";\nimport {SelectQueryBuilder} from \"../query-builder/SelectQueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { FindTreeOptions } from \"../find-options/FindTreeOptions\";\nimport { FindRelationsNotFoundError } from \"../error\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\n\n/**\n * Repository with additional functions to work with trees.\n *\n * @see Repository\n */\nexport class TreeRepository<Entity> extends Repository<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets complete trees for all roots in the table.\n */\n async findTrees(options?: FindTreeOptions): Promise<Entity[]> {\n const roots = await this.findRoots(options);\n await Promise.all(roots.map(root => this.findDescendantsTree(root, options)));\n return roots;\n }\n\n /**\n * Roots are entities that have no ancestors. Finds them all.\n */\n findRoots(options?: FindTreeOptions): Promise<Entity[]> {\n const escapeAlias = (alias: string) => this.manager.connection.driver.escape(alias);\n const escapeColumn = (column: string) => this.manager.connection.driver.escape(column);\n const parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(\n this.metadata.treeParentRelation!.propertyName, this.metadata.primaryColumns[0].propertyName\n );\n\n const qb = this.createQueryBuilder(\"treeEntity\");\n\n if (options?.relations) {\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n\n return qb\n .where(`${escapeAlias(\"treeEntity\")}.${escapeColumn(parentPropertyName)} IS NULL`)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them all in a flat array.\n */\n findDescendants(entity: Entity): Promise<Entity[]> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other.\n */\n async findDescendantsTree(entity: Entity, options?: FindTreeOptions): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n\n const qb: SelectQueryBuilder<Entity> = this.createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity);\n\n if (options?.relations) {\n // Copy because `applyRelationsRecursively` modifies it\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = this.createRelationMaps(\"treeEntity\", entities.raw);\n this.buildChildrenEntityTree(entity, entities.entities, relationMaps);\n\n return entity;\n }\n\n /**\n * Gets number of descendants of the entity.\n */\n countDescendants(entity: Entity): Promise<number> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get descendants of the entities in a tree.\n */\n createDescendantsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n\n const joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = \" + escape(alias) + \".\" + escape(column.referencedColumn!.propertyPath);\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const whereCondition = alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND joined.\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const joinCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", whereCondition)\n .where(joinCondition, parameters);\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE ${subQuery.getQuery()} || '%'`;\n } else {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE CONCAT(${subQuery.getQuery()}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them all in a flat array.\n */\n findAncestors(entity: Entity): Promise<Entity[]> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other.\n */\n findAncestorsTree(entity: Entity): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(entitiesAndScalars => {\n const relationMaps = this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n }\n\n /**\n * Gets number of ancestors of the entity.\n */\n countAncestors(entity: Entity): Promise<number> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get ancestors of the entities in the tree.\n */\n createAncestorsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n // const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n const joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return closureTableAlias + \".\" + column.propertyPath + \" = \" + alias + \".\" + column.referencedColumn!.propertyPath;\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return closureTableAlias + \".\" + column.propertyPath + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const joinCondition = \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND \" + alias + \".\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", joinCondition)\n .where(whereCondition, parameters);\n\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%');\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${subQuery.getQuery()} LIKE ${alias}.${this.metadata.materializedPathColumn!.propertyPath} || '%'`;\n\n } else {\n return `${subQuery.getQuery()} LIKE CONCAT(${alias}.${this.metadata.materializedPathColumn!.propertyPath}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Moves entity to the children of then given entity.\n *\n move(entity: Entity, to: Entity): Promise<void> {\n return Promise.resolve();\n } */\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected createRelationMaps(alias: string, rawResults: any[]): { id: any, parentId: any }[] {\n return rawResults.map(rawResult => {\n const joinColumn = this.metadata.treeParentRelation!.joinColumns[0];\n // fixes issue #2518, default to databaseName property when givenDatabaseName is not set\n const joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName;\n const id = rawResult[alias + \"_\" + this.metadata.primaryColumns[0].databaseName];\n const parentId = rawResult[alias + \"_\" + joinColumnName];\n return {\n id: this.manager.connection.driver.prepareHydratedValue(id, this.metadata.primaryColumns[0]),\n parentId: this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn),\n };\n });\n }\n\n protected buildChildrenEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const childProperty = this.metadata.treeChildrenRelation!.propertyName;\n const parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const childRelationMaps = relationMaps.filter(relationMap => relationMap.parentId === parentEntityId);\n const childIds = new Set(childRelationMaps.map(relationMap => relationMap.id));\n entity[childProperty] = entities.filter(entity => childIds.has(this.metadata.primaryColumns[0].getEntityValue(entity)));\n entity[childProperty].forEach((childEntity: any) => {\n this.buildChildrenEntityTree(childEntity, entities, relationMaps);\n });\n }\n\n protected buildParentEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const parentProperty = this.metadata.treeParentRelation!.propertyName;\n const entityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const parentRelationMap = relationMaps.find(relationMap => relationMap.id === entityId);\n const parentEntity = entities.find(entity => {\n if (!parentRelationMap)\n return false;\n\n return this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId;\n });\n if (parentEntity) {\n entity[parentProperty] = parentEntity;\n this.buildParentEntityTree(entity[parentProperty], entities, relationMaps);\n }\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/repository/TreeRepository.ts"],"names":[],"mappings":"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","file":"TreeRepository.js","sourcesContent":["import {Repository} from \"./Repository\";\nimport {SelectQueryBuilder} from \"../query-builder/SelectQueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {AbstractSqliteDriver} from \"../driver/sqlite-abstract/AbstractSqliteDriver\";\nimport { TypeORMError } from \"../error/TypeORMError\";\nimport { FindTreeOptions } from \"../find-options/FindTreeOptions\";\nimport { FindRelationsNotFoundError } from \"../error\";\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\";\n\n/**\n * Repository with additional functions to work with trees.\n *\n * @see Repository\n */\nexport class TreeRepository<Entity> extends Repository<Entity> {\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets complete trees for all roots in the table.\n */\n async findTrees(options?: FindTreeOptions): Promise<Entity[]> {\n const roots = await this.findRoots(options);\n await Promise.all(roots.map(root => this.findDescendantsTree(root, options)));\n return roots;\n }\n\n /**\n * Roots are entities that have no ancestors. Finds them all.\n */\n findRoots(options?: FindTreeOptions): Promise<Entity[]> {\n const escapeAlias = (alias: string) => this.manager.connection.driver.escape(alias);\n const escapeColumn = (column: string) => this.manager.connection.driver.escape(column);\n const parentPropertyName = this.manager.connection.namingStrategy.joinColumnName(\n this.metadata.treeParentRelation!.propertyName, this.metadata.primaryColumns[0].propertyName\n );\n\n const qb = this.createQueryBuilder(\"treeEntity\");\n\n if (options?.relations) {\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n\n return qb\n .where(`${escapeAlias(\"treeEntity\")}.${escapeColumn(parentPropertyName)} IS NULL`)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them all in a flat array.\n */\n findDescendants(entity: Entity): Promise<Entity[]> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other.\n */\n async findDescendantsTree(entity: Entity, options?: FindTreeOptions): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n\n const qb: SelectQueryBuilder<Entity> = this.createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity);\n\n if (options?.relations) {\n // Copy because `applyRelationsRecursively` modifies it\n const allRelations = [...options.relations];\n\n FindOptionsUtils.applyRelationsRecursively(qb, allRelations, qb.expressionMap.mainAlias!.name, qb.expressionMap.mainAlias!.metadata, \"\");\n\n // recursive removes found relations from allRelations array\n // if there are relations left in this array it means those relations were not found in the entity structure\n // so, we give an exception about not found relations\n if (allRelations.length > 0)\n throw new FindRelationsNotFoundError(allRelations);\n }\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = this.createRelationMaps(\"treeEntity\", entities.raw);\n this.buildChildrenEntityTree(entity, entities.entities, relationMaps);\n\n return entity;\n }\n\n /**\n * Gets number of descendants of the entity.\n */\n countDescendants(entity: Entity): Promise<number> {\n return this\n .createDescendantsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get descendants of the entities in a tree.\n */\n createDescendantsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n\n const joinCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = \" + escape(alias) + \".\" + escape(column.referencedColumn!.propertyPath);\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return escape(closureTableAlias) + \".\" + escape(column.propertyPath) + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const whereCondition = alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND joined.\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const joinCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", whereCondition)\n .where(joinCondition, parameters);\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE ${subQuery.getQuery()} || '%'`;\n } else {\n return `${alias}.${this.metadata.materializedPathColumn!.propertyPath} LIKE CONCAT(${subQuery.getQuery()}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them all in a flat array.\n */\n findAncestors(entity: Entity): Promise<Entity[]> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getMany();\n }\n\n /**\n * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other.\n */\n findAncestorsTree(entity: Entity): Promise<Entity> {\n // todo: throw exception if there is no column of this relation?\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getRawAndEntities()\n .then(entitiesAndScalars => {\n const relationMaps = this.createRelationMaps(\"treeEntity\", entitiesAndScalars.raw);\n this.buildParentEntityTree(entity, entitiesAndScalars.entities, relationMaps);\n return entity;\n });\n }\n\n /**\n * Gets number of ancestors of the entity.\n */\n countAncestors(entity: Entity): Promise<number> {\n return this\n .createAncestorsQueryBuilder(\"treeEntity\", \"treeClosure\", entity)\n .getCount();\n }\n\n /**\n * Creates a query builder used to get ancestors of the entities in the tree.\n */\n createAncestorsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity> {\n\n // create shortcuts for better readability\n // const escape = (alias: string) => this.manager.connection.driver.escape(alias);\n\n if (this.metadata.treeType === \"closure-table\") {\n const joinCondition = this.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return closureTableAlias + \".\" + column.propertyPath + \" = \" + alias + \".\" + column.referencedColumn!.propertyPath;\n }).join(\" AND \");\n\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.closureJunctionTable.descendantColumns.map(column => {\n parameters[column.referencedColumn!.propertyName] = column.referencedColumn!.getEntityValue(entity);\n return closureTableAlias + \".\" + column.propertyPath + \" = :\" + column.referencedColumn!.propertyName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.closureJunctionTable.tableName, closureTableAlias, joinCondition)\n .where(whereCondition)\n .setParameters(parameters);\n\n } else if (this.metadata.treeType === \"nested-set\") {\n\n const joinCondition = \"joined.\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" BETWEEN \" +\n alias + \".\" + this.metadata.nestedSetLeftColumn!.propertyPath + \" AND \" + alias + \".\" + this.metadata.nestedSetRightColumn!.propertyPath;\n const parameters: ObjectLiteral = {};\n const whereCondition = this.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n const parameterName = joinColumn.referencedColumn!.propertyPath.replace(\".\", \"_\");\n parameters[parameterName] = joinColumn.referencedColumn!.getEntityValue(entity);\n return \"joined.\" + joinColumn.referencedColumn!.propertyPath + \" = :\" + parameterName;\n }).join(\" AND \");\n\n return this\n .createQueryBuilder(alias)\n .innerJoin(this.metadata.targetName, \"joined\", joinCondition)\n .where(whereCondition, parameters);\n\n\n } else if (this.metadata.treeType === \"materialized-path\") {\n // example: SELECT * FROM category category WHERE (SELECT mpath FROM `category` WHERE id = 2) LIKE CONCAT(category.mpath, '%');\n return this\n .createQueryBuilder(alias)\n .where(qb => {\n const subQuery = qb.subQuery()\n .select(`${this.metadata.targetName}.${this.metadata.materializedPathColumn!.propertyPath}`, \"path\")\n .from(this.metadata.target, this.metadata.targetName)\n .whereInIds(this.metadata.getEntityIdMap(entity));\n\n if (this.manager.connection.driver instanceof AbstractSqliteDriver) {\n return `${subQuery.getQuery()} LIKE ${alias}.${this.metadata.materializedPathColumn!.propertyPath} || '%'`;\n\n } else {\n return `${subQuery.getQuery()} LIKE CONCAT(${alias}.${this.metadata.materializedPathColumn!.propertyPath}, '%')`;\n }\n });\n }\n\n throw new TypeORMError(`Supported only in tree entities`);\n }\n\n /**\n * Moves entity to the children of then given entity.\n *\n move(entity: Entity, to: Entity): Promise<void> {\n return Promise.resolve();\n } */\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected createRelationMaps(alias: string, rawResults: any[]): { id: any, parentId: any }[] {\n return rawResults.map(rawResult => {\n const joinColumn = this.metadata.treeParentRelation!.joinColumns[0];\n // fixes issue #2518, default to databaseName property when givenDatabaseName is not set\n const joinColumnName = joinColumn.givenDatabaseName || joinColumn.databaseName;\n const id = rawResult[alias + \"_\" + this.metadata.primaryColumns[0].databaseName];\n const parentId = rawResult[alias + \"_\" + joinColumnName];\n return {\n id: this.manager.connection.driver.prepareHydratedValue(id, this.metadata.primaryColumns[0]),\n parentId: this.manager.connection.driver.prepareHydratedValue(parentId, joinColumn),\n };\n });\n }\n\n protected buildChildrenEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const childProperty = this.metadata.treeChildrenRelation!.propertyName;\n const parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const childRelationMaps = relationMaps.filter(relationMap => relationMap.parentId === parentEntityId);\n const childIds = new Set(childRelationMaps.map(relationMap => relationMap.id));\n entity[childProperty] = entities.filter(entity => childIds.has(this.metadata.primaryColumns[0].getEntityValue(entity)));\n entity[childProperty].forEach((childEntity: any) => {\n this.buildChildrenEntityTree(childEntity, entities, relationMaps);\n });\n }\n\n protected buildParentEntityTree(entity: any, entities: any[], relationMaps: { id: any, parentId: any }[]): void {\n const parentProperty = this.metadata.treeParentRelation!.propertyName;\n const entityId = this.metadata.primaryColumns[0].getEntityValue(entity);\n const parentRelationMap = relationMaps.find(relationMap => relationMap.id === entityId);\n const parentEntity = entities.find(entity => {\n if (!parentRelationMap)\n return false;\n\n return this.metadata.primaryColumns[0].getEntityValue(entity) === parentRelationMap.parentId;\n });\n if (parentEntity) {\n entity[parentProperty] = parentEntity;\n this.buildParentEntityTree(entity[parentProperty], entities, relationMaps);\n }\n }\n\n}\n"],"sourceRoot":".."}