typeorm 0.2.45-dev.f3cfdd2 → 0.2.45

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 (498) hide show
  1. package/browser/cache/DbQueryResultCache.js +6 -6
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/cache/RedisQueryResultCache.js +2 -2
  4. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  5. package/browser/connection/Connection.js +2 -2
  6. package/browser/connection/Connection.js.map +1 -1
  7. package/browser/connection/ConnectionOptionsReader.js +2 -2
  8. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  9. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +10 -10
  10. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  11. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +157 -157
  12. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  13. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +3 -3
  14. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  15. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -4
  16. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  17. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
  18. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  19. package/browser/driver/capacitor/CapacitorDriver.js +1 -1
  20. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  21. package/browser/driver/capacitor/CapacitorQueryRunner.js +1 -1
  22. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  23. package/browser/driver/cockroachdb/CockroachDriver.js +6 -6
  24. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js +153 -153
  26. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  27. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  28. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  29. package/browser/driver/expo/ExpoQueryRunner.js +3 -3
  30. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  31. package/browser/driver/mongodb/MongoDriver.js +4 -4
  32. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  33. package/browser/driver/mysql/MysqlDriver.js +11 -11
  34. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  35. package/browser/driver/mysql/MysqlQueryRunner.js +163 -163
  36. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  37. package/browser/driver/nativescript/NativescriptQueryRunner.js +1 -1
  38. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  39. package/browser/driver/oracle/OracleDriver.js +10 -10
  40. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  41. package/browser/driver/oracle/OracleQueryRunner.js +124 -124
  42. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  43. package/browser/driver/postgres/PostgresDriver.js +18 -18
  44. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  45. package/browser/driver/postgres/PostgresQueryRunner.js +229 -229
  46. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  47. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  48. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  49. package/browser/driver/sap/SapDriver.js +9 -9
  50. package/browser/driver/sap/SapDriver.js.map +1 -1
  51. package/browser/driver/sap/SapQueryRunner.js +126 -126
  52. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  53. package/browser/driver/sqlite/SqliteDriver.js +4 -4
  54. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  55. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +3 -3
  56. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  57. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +61 -61
  58. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  59. package/browser/driver/sqljs/SqljsDriver.js +3 -3
  60. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  61. package/browser/driver/sqlserver/SqlServerDriver.js +11 -11
  62. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  63. package/browser/driver/sqlserver/SqlServerQueryRunner.js +203 -203
  64. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  65. package/browser/entity-manager/EntityManager.js +4 -4
  66. package/browser/entity-manager/EntityManager.js.map +1 -1
  67. package/browser/entity-manager/MongoEntityManager.js +1 -1
  68. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  69. package/browser/entity-schema/EntitySchemaEmbeddedError.js +2 -2
  70. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  71. package/browser/error/AlreadyHasActiveConnectionError.js +1 -1
  72. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  73. package/browser/error/CannotAttachTreeChildrenEntityError.js +1 -1
  74. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  75. package/browser/error/CannotConnectAlreadyConnectedError.js +1 -1
  76. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  77. package/browser/error/CannotCreateEntityIdMapError.js +1 -1
  78. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  79. package/browser/error/CannotDetermineEntityError.js +1 -1
  80. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  81. package/browser/error/CannotExecuteNotConnectedError.js +1 -1
  82. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  83. package/browser/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  84. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  85. package/browser/error/CannotReflectMethodParameterTypeError.js +1 -1
  86. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  87. package/browser/error/CircularRelationsError.js +1 -1
  88. package/browser/error/CircularRelationsError.js.map +1 -1
  89. package/browser/error/ColumnTypeUndefinedError.js +1 -1
  90. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  91. package/browser/error/ConnectionIsNotSetError.js +1 -1
  92. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  93. package/browser/error/ConnectionNotFoundError.js +1 -1
  94. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  95. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  96. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  97. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  98. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  99. package/browser/error/CustomRepositoryNotFoundError.js +1 -1
  100. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  101. package/browser/error/DataTypeNotSupportedError.js +1 -1
  102. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  103. package/browser/error/DriverOptionNotSetError.js +1 -1
  104. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  105. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  106. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  107. package/browser/error/EntityColumnNotFound.js +1 -1
  108. package/browser/error/EntityColumnNotFound.js.map +1 -1
  109. package/browser/error/EntityMetadataNotFoundError.js +1 -1
  110. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  111. package/browser/error/EntityNotFoundError.js +2 -2
  112. package/browser/error/EntityNotFoundError.js.map +1 -1
  113. package/browser/error/FindRelationsNotFoundError.js +2 -2
  114. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  115. package/browser/error/InitializedRelationError.js +1 -1
  116. package/browser/error/InitializedRelationError.js.map +1 -1
  117. package/browser/error/MissingDeleteDateColumnError.js +1 -1
  118. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  119. package/browser/error/MissingDriverError.js +2 -2
  120. package/browser/error/MissingDriverError.js.map +1 -1
  121. package/browser/error/MissingJoinColumnError.js +3 -3
  122. package/browser/error/MissingJoinColumnError.js.map +1 -1
  123. package/browser/error/MissingJoinTableError.js +3 -3
  124. package/browser/error/MissingJoinTableError.js.map +1 -1
  125. package/browser/error/MissingPrimaryColumnError.js +1 -1
  126. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  127. package/browser/error/MustBeEntityError.js +1 -1
  128. package/browser/error/MustBeEntityError.js.map +1 -1
  129. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  130. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  131. package/browser/error/NoConnectionForRepositoryError.js +1 -1
  132. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  133. package/browser/error/NoConnectionOptionError.js +2 -2
  134. package/browser/error/NoConnectionOptionError.js.map +1 -1
  135. package/browser/error/NoVersionOrUpdateDateColumnError.js +1 -1
  136. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  137. package/browser/error/OptimisticLockVersionMismatchError.js +1 -1
  138. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  139. package/browser/error/PrimaryColumnCannotBeNullableError.js +1 -1
  140. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  141. package/browser/error/RepositoryNotFoundError.js +2 -2
  142. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  143. package/browser/error/RepositoryNotTreeError.js +1 -1
  144. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  145. package/browser/error/SubjectRemovedAndUpdatedError.js +1 -1
  146. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  147. package/browser/error/SubjectWithoutIdentifierError.js +1 -1
  148. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  149. package/browser/error/TreeRepositoryNotSupportedError.js +1 -1
  150. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  151. package/browser/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  152. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  153. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  154. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  155. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  156. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  157. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  158. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  159. package/browser/find-options/FindOptionsUtils.js +6 -6
  160. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  161. package/browser/logger/FileLogger.js +3 -3
  162. package/browser/logger/FileLogger.js.map +1 -1
  163. package/browser/metadata/EmbeddedMetadata.js +1 -1
  164. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  165. package/browser/metadata/IndexMetadata.js +1 -1
  166. package/browser/metadata/IndexMetadata.js.map +1 -1
  167. package/browser/metadata/RelationCountMetadata.js +1 -1
  168. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  169. package/browser/metadata/RelationIdMetadata.js +1 -1
  170. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  171. package/browser/metadata/UniqueMetadata.js +1 -1
  172. package/browser/metadata/UniqueMetadata.js.map +1 -1
  173. package/browser/metadata-builder/EntityMetadataBuilder.js +1 -1
  174. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  175. package/browser/metadata-builder/EntityMetadataValidator.js +9 -9
  176. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  177. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
  178. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  179. package/browser/metadata-builder/RelationJoinColumnBuilder.js +1 -1
  180. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  181. package/browser/migration/MigrationExecutor.js +16 -16
  182. package/browser/migration/MigrationExecutor.js.map +1 -1
  183. package/browser/naming-strategy/DefaultNamingStrategy.js +11 -11
  184. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  185. package/browser/persistence/tree/ClosureSubjectExecutor.js +17 -17
  186. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  187. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +2 -2
  188. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  189. package/browser/persistence/tree/NestedSetSubjectExecutor.js +44 -44
  190. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  191. package/browser/platform/BrowserPlatformTools.js +9 -9
  192. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  193. package/browser/platform/PlatformTools.js +1 -1
  194. package/browser/platform/PlatformTools.js.map +1 -1
  195. package/browser/query-builder/Alias.js +1 -1
  196. package/browser/query-builder/Alias.js.map +1 -1
  197. package/browser/query-builder/DeleteQueryBuilder.js +3 -3
  198. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  199. package/browser/query-builder/InsertQueryBuilder.js +22 -22
  200. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  201. package/browser/query-builder/JoinAttribute.js +1 -1
  202. package/browser/query-builder/JoinAttribute.js.map +1 -1
  203. package/browser/query-builder/QueryBuilder.js +39 -39
  204. package/browser/query-builder/QueryBuilder.js.map +1 -1
  205. package/browser/query-builder/QueryExpressionMap.js +2 -2
  206. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  207. package/browser/query-builder/RelationLoader.js +7 -7
  208. package/browser/query-builder/RelationLoader.js.map +1 -1
  209. package/browser/query-builder/RelationQueryBuilder.js +3 -3
  210. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  211. package/browser/query-builder/RelationRemover.js +4 -4
  212. package/browser/query-builder/RelationRemover.js.map +1 -1
  213. package/browser/query-builder/RelationUpdater.js +1 -1
  214. package/browser/query-builder/RelationUpdater.js.map +1 -1
  215. package/browser/query-builder/SelectQueryBuilder.js +23 -23
  216. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  217. package/browser/query-builder/SoftDeleteQueryBuilder.js +4 -4
  218. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  219. package/browser/query-builder/UpdateQueryBuilder.js +8 -8
  220. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  221. package/browser/query-builder/relation-count/RelationCountAttribute.js +1 -1
  222. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  223. package/browser/query-builder/relation-id/RelationIdAttribute.js +1 -1
  224. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  225. package/browser/query-builder/relation-id/RelationIdLoader.js +4 -4
  226. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  227. package/browser/query-runner/BaseQueryRunner.js +7 -7
  228. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  229. package/browser/repository/TreeRepository.js +7 -7
  230. package/browser/repository/TreeRepository.js.map +1 -1
  231. package/browser/schema-builder/RdbmsSchemaBuilder.js +19 -19
  232. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  233. package/browser/subscriber/Broadcaster.js +1 -1
  234. package/browser/subscriber/Broadcaster.js.map +1 -1
  235. package/browser/util/DateUtils.js +1 -1
  236. package/browser/util/DateUtils.js.map +1 -1
  237. package/browser/util/DepGraph.js +7 -7
  238. package/browser/util/DepGraph.js.map +1 -1
  239. package/browser/util/DirectoryExportedClassesLoader.js +2 -2
  240. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  241. package/browser/util/PathUtils.js +1 -1
  242. package/browser/util/PathUtils.js.map +1 -1
  243. package/cache/DbQueryResultCache.js +6 -6
  244. package/cache/DbQueryResultCache.js.map +1 -1
  245. package/cache/RedisQueryResultCache.js +2 -2
  246. package/cache/RedisQueryResultCache.js.map +1 -1
  247. package/cli.js +0 -0
  248. package/commands/CommandUtils.js +1 -1
  249. package/commands/CommandUtils.js.map +1 -1
  250. package/commands/EntityCreateCommand.js +3 -3
  251. package/commands/EntityCreateCommand.js.map +1 -1
  252. package/commands/InitCommand.js +6 -6
  253. package/commands/InitCommand.js.map +1 -1
  254. package/commands/MigrationCreateCommand.js +3 -3
  255. package/commands/MigrationCreateCommand.js.map +1 -1
  256. package/commands/MigrationGenerateCommand.js +8 -8
  257. package/commands/MigrationGenerateCommand.js.map +1 -1
  258. package/commands/SchemaLogCommand.js +1 -1
  259. package/commands/SchemaLogCommand.js.map +1 -1
  260. package/commands/SubscriberCreateCommand.js +2 -2
  261. package/commands/SubscriberCreateCommand.js.map +1 -1
  262. package/connection/Connection.js +2 -2
  263. package/connection/Connection.js.map +1 -1
  264. package/connection/ConnectionOptionsReader.js +2 -2
  265. package/connection/ConnectionOptionsReader.js.map +1 -1
  266. package/driver/aurora-data-api/AuroraDataApiDriver.js +10 -10
  267. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  268. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +157 -157
  269. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  270. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +3 -3
  271. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  272. package/driver/better-sqlite3/BetterSqlite3Driver.js +4 -4
  273. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  274. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
  275. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  276. package/driver/capacitor/CapacitorDriver.js +1 -1
  277. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  278. package/driver/capacitor/CapacitorQueryRunner.js +1 -1
  279. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  280. package/driver/cockroachdb/CockroachDriver.js +6 -6
  281. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  282. package/driver/cockroachdb/CockroachQueryRunner.js +153 -153
  283. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  284. package/driver/cordova/CordovaQueryRunner.js +1 -1
  285. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  286. package/driver/expo/ExpoQueryRunner.js +3 -3
  287. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  288. package/driver/mongodb/MongoDriver.js +4 -4
  289. package/driver/mongodb/MongoDriver.js.map +1 -1
  290. package/driver/mysql/MysqlDriver.js +11 -11
  291. package/driver/mysql/MysqlDriver.js.map +1 -1
  292. package/driver/mysql/MysqlQueryRunner.js +163 -163
  293. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  294. package/driver/nativescript/NativescriptQueryRunner.js +1 -1
  295. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  296. package/driver/oracle/OracleDriver.js +10 -10
  297. package/driver/oracle/OracleDriver.js.map +1 -1
  298. package/driver/oracle/OracleQueryRunner.js +124 -124
  299. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  300. package/driver/postgres/PostgresDriver.js +18 -18
  301. package/driver/postgres/PostgresDriver.js.map +1 -1
  302. package/driver/postgres/PostgresQueryRunner.js +229 -229
  303. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  304. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  305. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  306. package/driver/sap/SapDriver.js +9 -9
  307. package/driver/sap/SapDriver.js.map +1 -1
  308. package/driver/sap/SapQueryRunner.js +126 -126
  309. package/driver/sap/SapQueryRunner.js.map +1 -1
  310. package/driver/sqlite/SqliteDriver.js +4 -4
  311. package/driver/sqlite/SqliteDriver.js.map +1 -1
  312. package/driver/sqlite-abstract/AbstractSqliteDriver.js +3 -3
  313. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  314. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +61 -61
  315. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  316. package/driver/sqljs/SqljsDriver.js +3 -3
  317. package/driver/sqljs/SqljsDriver.js.map +1 -1
  318. package/driver/sqlserver/SqlServerDriver.js +11 -11
  319. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  320. package/driver/sqlserver/SqlServerQueryRunner.js +203 -203
  321. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  322. package/entity-manager/EntityManager.js +4 -4
  323. package/entity-manager/EntityManager.js.map +1 -1
  324. package/entity-manager/MongoEntityManager.js +1 -1
  325. package/entity-manager/MongoEntityManager.js.map +1 -1
  326. package/entity-schema/EntitySchemaEmbeddedError.js +2 -2
  327. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  328. package/error/AlreadyHasActiveConnectionError.js +1 -1
  329. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  330. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  331. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  332. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  333. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  334. package/error/CannotCreateEntityIdMapError.js +1 -1
  335. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  336. package/error/CannotDetermineEntityError.js +1 -1
  337. package/error/CannotDetermineEntityError.js.map +1 -1
  338. package/error/CannotExecuteNotConnectedError.js +1 -1
  339. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  340. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  341. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  342. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  343. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  344. package/error/CircularRelationsError.js +1 -1
  345. package/error/CircularRelationsError.js.map +1 -1
  346. package/error/ColumnTypeUndefinedError.js +1 -1
  347. package/error/ColumnTypeUndefinedError.js.map +1 -1
  348. package/error/ConnectionIsNotSetError.js +1 -1
  349. package/error/ConnectionIsNotSetError.js.map +1 -1
  350. package/error/ConnectionNotFoundError.js +1 -1
  351. package/error/ConnectionNotFoundError.js.map +1 -1
  352. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  353. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  354. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  355. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  356. package/error/CustomRepositoryNotFoundError.js +1 -1
  357. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  358. package/error/DataTypeNotSupportedError.js +1 -1
  359. package/error/DataTypeNotSupportedError.js.map +1 -1
  360. package/error/DriverOptionNotSetError.js +1 -1
  361. package/error/DriverOptionNotSetError.js.map +1 -1
  362. package/error/DriverPackageNotInstalledError.js +2 -2
  363. package/error/DriverPackageNotInstalledError.js.map +1 -1
  364. package/error/EntityColumnNotFound.js +1 -1
  365. package/error/EntityColumnNotFound.js.map +1 -1
  366. package/error/EntityMetadataNotFoundError.js +1 -1
  367. package/error/EntityMetadataNotFoundError.js.map +1 -1
  368. package/error/EntityNotFoundError.js +2 -2
  369. package/error/EntityNotFoundError.js.map +1 -1
  370. package/error/FindRelationsNotFoundError.js +2 -2
  371. package/error/FindRelationsNotFoundError.js.map +1 -1
  372. package/error/InitializedRelationError.js +1 -1
  373. package/error/InitializedRelationError.js.map +1 -1
  374. package/error/MissingDeleteDateColumnError.js +1 -1
  375. package/error/MissingDeleteDateColumnError.js.map +1 -1
  376. package/error/MissingDriverError.js +2 -2
  377. package/error/MissingDriverError.js.map +1 -1
  378. package/error/MissingJoinColumnError.js +3 -3
  379. package/error/MissingJoinColumnError.js.map +1 -1
  380. package/error/MissingJoinTableError.js +3 -3
  381. package/error/MissingJoinTableError.js.map +1 -1
  382. package/error/MissingPrimaryColumnError.js +1 -1
  383. package/error/MissingPrimaryColumnError.js.map +1 -1
  384. package/error/MustBeEntityError.js +1 -1
  385. package/error/MustBeEntityError.js.map +1 -1
  386. package/error/NamingStrategyNotFoundError.js +2 -2
  387. package/error/NamingStrategyNotFoundError.js.map +1 -1
  388. package/error/NoConnectionForRepositoryError.js +1 -1
  389. package/error/NoConnectionForRepositoryError.js.map +1 -1
  390. package/error/NoConnectionOptionError.js +2 -2
  391. package/error/NoConnectionOptionError.js.map +1 -1
  392. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  393. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  394. package/error/OptimisticLockVersionMismatchError.js +1 -1
  395. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  396. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  397. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  398. package/error/RepositoryNotFoundError.js +2 -2
  399. package/error/RepositoryNotFoundError.js.map +1 -1
  400. package/error/RepositoryNotTreeError.js +1 -1
  401. package/error/RepositoryNotTreeError.js.map +1 -1
  402. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  403. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  404. package/error/SubjectWithoutIdentifierError.js +1 -1
  405. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  406. package/error/TreeRepositoryNotSupportedError.js +1 -1
  407. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  408. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  409. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  410. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  411. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  412. package/error/UsingJoinTableIsNotAllowedError.js +2 -2
  413. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  414. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  415. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  416. package/find-options/FindOptionsUtils.js +6 -6
  417. package/find-options/FindOptionsUtils.js.map +1 -1
  418. package/logger/FileLogger.js +3 -3
  419. package/logger/FileLogger.js.map +1 -1
  420. package/metadata/EmbeddedMetadata.js +1 -1
  421. package/metadata/EmbeddedMetadata.js.map +1 -1
  422. package/metadata/IndexMetadata.js +1 -1
  423. package/metadata/IndexMetadata.js.map +1 -1
  424. package/metadata/RelationCountMetadata.js +1 -1
  425. package/metadata/RelationCountMetadata.js.map +1 -1
  426. package/metadata/RelationIdMetadata.js +1 -1
  427. package/metadata/RelationIdMetadata.js.map +1 -1
  428. package/metadata/UniqueMetadata.js +1 -1
  429. package/metadata/UniqueMetadata.js.map +1 -1
  430. package/metadata-builder/EntityMetadataBuilder.js +1 -1
  431. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  432. package/metadata-builder/EntityMetadataValidator.js +9 -9
  433. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  434. package/metadata-builder/JunctionEntityMetadataBuilder.js +2 -2
  435. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  436. package/metadata-builder/RelationJoinColumnBuilder.js +1 -1
  437. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  438. package/migration/MigrationExecutor.js +16 -16
  439. package/migration/MigrationExecutor.js.map +1 -1
  440. package/naming-strategy/DefaultNamingStrategy.js +11 -11
  441. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  442. package/package.json +260 -1
  443. package/persistence/tree/ClosureSubjectExecutor.js +17 -17
  444. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  445. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -2
  446. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  447. package/persistence/tree/NestedSetSubjectExecutor.js +44 -44
  448. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  449. package/platform/PlatformTools.js +1 -1
  450. package/platform/PlatformTools.js.map +1 -1
  451. package/query-builder/Alias.js +1 -1
  452. package/query-builder/Alias.js.map +1 -1
  453. package/query-builder/DeleteQueryBuilder.js +3 -3
  454. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  455. package/query-builder/InsertQueryBuilder.js +22 -22
  456. package/query-builder/InsertQueryBuilder.js.map +1 -1
  457. package/query-builder/JoinAttribute.js +1 -1
  458. package/query-builder/JoinAttribute.js.map +1 -1
  459. package/query-builder/QueryBuilder.js +39 -39
  460. package/query-builder/QueryBuilder.js.map +1 -1
  461. package/query-builder/QueryExpressionMap.js +2 -2
  462. package/query-builder/QueryExpressionMap.js.map +1 -1
  463. package/query-builder/RelationLoader.js +7 -7
  464. package/query-builder/RelationLoader.js.map +1 -1
  465. package/query-builder/RelationQueryBuilder.js +3 -3
  466. package/query-builder/RelationQueryBuilder.js.map +1 -1
  467. package/query-builder/RelationRemover.js +4 -4
  468. package/query-builder/RelationRemover.js.map +1 -1
  469. package/query-builder/RelationUpdater.js +1 -1
  470. package/query-builder/RelationUpdater.js.map +1 -1
  471. package/query-builder/SelectQueryBuilder.js +23 -23
  472. package/query-builder/SelectQueryBuilder.js.map +1 -1
  473. package/query-builder/SoftDeleteQueryBuilder.js +4 -4
  474. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  475. package/query-builder/UpdateQueryBuilder.js +8 -8
  476. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  477. package/query-builder/relation-count/RelationCountAttribute.js +1 -1
  478. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  479. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  480. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  481. package/query-builder/relation-id/RelationIdLoader.js +4 -4
  482. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  483. package/query-runner/BaseQueryRunner.js +7 -7
  484. package/query-runner/BaseQueryRunner.js.map +1 -1
  485. package/repository/TreeRepository.js +7 -7
  486. package/repository/TreeRepository.js.map +1 -1
  487. package/schema-builder/RdbmsSchemaBuilder.js +19 -19
  488. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  489. package/subscriber/Broadcaster.js +1 -1
  490. package/subscriber/Broadcaster.js.map +1 -1
  491. package/util/DateUtils.js +1 -1
  492. package/util/DateUtils.js.map +1 -1
  493. package/util/DepGraph.js +7 -7
  494. package/util/DepGraph.js.map +1 -1
  495. package/util/DirectoryExportedClassesLoader.js +2 -2
  496. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  497. package/util/PathUtils.js +1 -1
  498. package/util/PathUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/naming-strategy/DefaultNamingStrategy.ts"],"names":[],"mappings":"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","file":"DefaultNamingStrategy.js","sourcesContent":["import {NamingStrategyInterface} from \"./NamingStrategyInterface\";\nimport {RandomGenerator} from \"../util/RandomGenerator\";\nimport {camelCase, snakeCase, titleCase} from \"../util/StringUtils\";\nimport {Table} from \"../schema-builder/table/Table\";\n\n/**\n * Naming strategy that is used by default.\n */\nexport class DefaultNamingStrategy implements NamingStrategyInterface {\n protected getTableName(tableOrName: Table | string): string {\n if (tableOrName instanceof Table) {\n tableOrName = tableOrName.name;\n }\n\n return tableOrName.split(\".\").pop()!;\n }\n /**\n * Normalizes table name.\n *\n * @param targetName Name of the target entity that can be used to generate a table name.\n * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity(\"name\")\n */\n tableName(targetName: string, userSpecifiedName: string|undefined): string {\n return userSpecifiedName ? userSpecifiedName : snakeCase(targetName);\n }\n\n /**\n * Creates a table name for a junction table of a closure table.\n *\n * @param originalClosureTableName Name of the closure table which owns this junction table.\n */\n closureJunctionTableName(originalClosureTableName: string): string {\n return originalClosureTableName + \"_closure\";\n }\n\n columnName(propertyName: string, customName: string, embeddedPrefixes: string[]): string {\n const name = customName || propertyName;\n\n if (embeddedPrefixes.length)\n return camelCase(embeddedPrefixes.join(\"_\")) + titleCase(name);\n\n return name;\n }\n\n relationName(propertyName: string): string {\n return propertyName;\n }\n\n primaryKeyName(tableOrName: Table|string, columnNames: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"PK_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n uniqueConstraintName(tableOrName: Table|string, columnNames: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"UQ_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n relationConstraintName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n if (where)\n key += `_${where}`;\n\n return \"REL_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n defaultConstraintName(tableOrName: Table|string, columnName: string): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${columnName}`;\n return \"DF_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n foreignKeyName(tableOrName: Table|string, columnNames: string[], _referencedTablePath?: string, _referencedColumnNames?: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"FK_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n indexName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n if (where)\n key += `_${where}`;\n\n return \"IDX_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n checkConstraintName(tableOrName: Table|string, expression: string, isEnum?: boolean): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${expression}`;\n const name = \"CHK_\" + RandomGenerator.sha1(key).substr(0, 26);\n return isEnum ? `${name}_ENUM` : name;\n }\n\n exclusionConstraintName(tableOrName: Table|string, expression: string): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${expression}`;\n return \"XCL_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n joinColumnName(relationName: string, referencedColumnName: string): string {\n return camelCase(relationName + \"_\" + referencedColumnName);\n }\n\n joinTableName(firstTableName: string,\n secondTableName: string,\n firstPropertyName: string,\n secondPropertyName: string): string {\n return snakeCase(firstTableName + \"_\" + firstPropertyName.replace(/\\./gi, \"_\") + \"_\" + secondTableName);\n }\n\n joinTableColumnDuplicationPrefix(columnName: string, index: number): string {\n return columnName + \"_\" + index;\n }\n\n joinTableColumnName(tableName: string, propertyName: string, columnName?: string): string {\n return camelCase(tableName + \"_\" + (columnName ? columnName : propertyName));\n }\n\n joinTableInverseColumnName(tableName: string, propertyName: string, columnName?: string): string {\n return this.joinTableColumnName(tableName, propertyName, columnName);\n }\n\n /**\n * Adds globally set prefix to the table name.\n * This method is executed no matter if prefix was set or not.\n * Table name is either user's given table name, either name generated from entity target.\n * Note that table name comes here already normalized by #tableName method.\n */\n prefixTableName(prefix: string, tableName: string): string {\n return prefix + tableName;\n }\n\n eagerJoinRelationAlias(alias: string, propertyPath: string): string {\n return alias + \"_\" + propertyPath.replace(\".\", \"_\");\n }\n\n nestedSetColumnNames = { left: \"nsleft\", right: \"nsright\" };\n materializedPathColumnName = \"mpath\";\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/naming-strategy/DefaultNamingStrategy.ts"],"names":[],"mappings":"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","file":"DefaultNamingStrategy.js","sourcesContent":["import {NamingStrategyInterface} from \"./NamingStrategyInterface\";\nimport {RandomGenerator} from \"../util/RandomGenerator\";\nimport {camelCase, snakeCase, titleCase} from \"../util/StringUtils\";\nimport {Table} from \"../schema-builder/table/Table\";\n\n/**\n * Naming strategy that is used by default.\n */\nexport class DefaultNamingStrategy implements NamingStrategyInterface {\n protected getTableName(tableOrName: Table | string): string {\n if (tableOrName instanceof Table) {\n tableOrName = tableOrName.name;\n }\n\n return tableOrName.split(\".\").pop()!;\n }\n /**\n * Normalizes table name.\n *\n * @param targetName Name of the target entity that can be used to generate a table name.\n * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity(\"name\")\n */\n tableName(targetName: string, userSpecifiedName: string|undefined): string {\n return userSpecifiedName ? userSpecifiedName : snakeCase(targetName);\n }\n\n /**\n * Creates a table name for a junction table of a closure table.\n *\n * @param originalClosureTableName Name of the closure table which owns this junction table.\n */\n closureJunctionTableName(originalClosureTableName: string): string {\n return originalClosureTableName + \"_closure\";\n }\n\n columnName(propertyName: string, customName: string, embeddedPrefixes: string[]): string {\n const name = customName || propertyName;\n\n if (embeddedPrefixes.length)\n return camelCase(embeddedPrefixes.join(\"_\")) + titleCase(name);\n\n return name;\n }\n\n relationName(propertyName: string): string {\n return propertyName;\n }\n\n primaryKeyName(tableOrName: Table|string, columnNames: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"PK_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n uniqueConstraintName(tableOrName: Table|string, columnNames: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"UQ_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n relationConstraintName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n if (where)\n key += `_${where}`;\n\n return \"REL_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n defaultConstraintName(tableOrName: Table|string, columnName: string): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${columnName}`;\n return \"DF_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n foreignKeyName(tableOrName: Table|string, columnNames: string[], _referencedTablePath?: string, _referencedColumnNames?: string[]): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n return \"FK_\" + RandomGenerator.sha1(key).substr(0, 27);\n }\n\n indexName(tableOrName: Table|string, columnNames: string[], where?: string): string {\n // sort incoming column names to avoid issue when [\"id\", \"name\"] and [\"name\", \"id\"] arrays\n const clonedColumnNames = [...columnNames];\n clonedColumnNames.sort();\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n let key = `${replacedTableName}_${clonedColumnNames.join(\"_\")}`;\n if (where)\n key += `_${where}`;\n\n return \"IDX_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n checkConstraintName(tableOrName: Table|string, expression: string, isEnum?: boolean): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${expression}`;\n const name = \"CHK_\" + RandomGenerator.sha1(key).substr(0, 26);\n return isEnum ? `${name}_ENUM` : name;\n }\n\n exclusionConstraintName(tableOrName: Table|string, expression: string): string {\n const tableName = this.getTableName(tableOrName);\n const replacedTableName = tableName.replace(\".\", \"_\");\n const key = `${replacedTableName}_${expression}`;\n return \"XCL_\" + RandomGenerator.sha1(key).substr(0, 26);\n }\n\n joinColumnName(relationName: string, referencedColumnName: string): string {\n return camelCase(relationName + \"_\" + referencedColumnName);\n }\n\n joinTableName(firstTableName: string,\n secondTableName: string,\n firstPropertyName: string,\n secondPropertyName: string): string {\n return snakeCase(firstTableName + \"_\" + firstPropertyName.replace(/\\./gi, \"_\") + \"_\" + secondTableName);\n }\n\n joinTableColumnDuplicationPrefix(columnName: string, index: number): string {\n return columnName + \"_\" + index;\n }\n\n joinTableColumnName(tableName: string, propertyName: string, columnName?: string): string {\n return camelCase(tableName + \"_\" + (columnName ? columnName : propertyName));\n }\n\n joinTableInverseColumnName(tableName: string, propertyName: string, columnName?: string): string {\n return this.joinTableColumnName(tableName, propertyName, columnName);\n }\n\n /**\n * Adds globally set prefix to the table name.\n * This method is executed no matter if prefix was set or not.\n * Table name is either user's given table name, either name generated from entity target.\n * Note that table name comes here already normalized by #tableName method.\n */\n prefixTableName(prefix: string, tableName: string): string {\n return prefix + tableName;\n }\n\n eagerJoinRelationAlias(alias: string, propertyPath: string): string {\n return alias + \"_\" + propertyPath.replace(\".\", \"_\");\n }\n\n nestedSetColumnNames = { left: \"nsleft\", right: \"nsright\" };\n materializedPathColumnName = \"mpath\";\n}\n"],"sourceRoot":".."}
@@ -69,10 +69,10 @@ var ClosureSubjectExecutor = /** @class */ (function () {
69
69
  throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);
70
70
  queryParams_1.push(parentId);
71
71
  var parameterName = _this.queryRunner.connection.driver.createParameter("parent_entity_" + column.referencedColumn.databaseName, queryParams_1.length - 1);
72
- return columnName + " = " + parameterName;
72
+ return "".concat(columnName, " = ").concat(parameterName);
73
73
  });
74
- return [4 /*yield*/, this.queryRunner.query("INSERT INTO " + tableName + " (" + __spreadArray(__spreadArray([], __read(ancestorColumnNames), false), __read(descendantColumnNames), false).join(", ") + ") " +
75
- ("SELECT " + ancestorColumnNames.join(", ") + ", " + childEntityIds1.join(", ") + " FROM " + tableName + " WHERE " + whereCondition.join(" AND ")), queryParams_1)];
74
+ return [4 /*yield*/, this.queryRunner.query("INSERT INTO ".concat(tableName, " (").concat(__spreadArray(__spreadArray([], __read(ancestorColumnNames), false), __read(descendantColumnNames), false).join(", "), ") ") +
75
+ "SELECT ".concat(ancestorColumnNames.join(", "), ", ").concat(childEntityIds1.join(", "), " FROM ").concat(tableName, " WHERE ").concat(whereCondition.join(" AND ")), queryParams_1)];
76
76
  case 2:
77
77
  _a.sent();
78
78
  _a.label = 3;
@@ -124,7 +124,7 @@ var ClosureSubjectExecutor = /** @class */ (function () {
124
124
  });
125
125
  createSubQuery = function (qb, alias) {
126
126
  var e_2, _a;
127
- var subAlias = "sub" + alias;
127
+ var subAlias = "sub".concat(alias);
128
128
  var subSelect = qb.createQueryBuilder()
129
129
  .select(descendantColumnNames.join(", "))
130
130
  .from(closureTable.tablePath, subAlias);
@@ -132,7 +132,7 @@ var ClosureSubjectExecutor = /** @class */ (function () {
132
132
  // Create where conditions e.g. (WHERE "subdescendant"."id_ancestor" = :value_id)
133
133
  for (var _b = __values(closureTable.ancestorColumns), _c = _b.next(); !_c.done; _c = _b.next()) {
134
134
  var column = _c.value;
135
- subSelect.andWhere(escape(subAlias) + "." + escape(column.databaseName) + " = :value_" + column.referencedColumn.databaseName);
135
+ subSelect.andWhere("".concat(escape(subAlias), ".").concat(escape(column.databaseName), " = :value_").concat(column.referencedColumn.databaseName));
136
136
  }
137
137
  }
138
138
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
@@ -144,7 +144,7 @@ var ClosureSubjectExecutor = /** @class */ (function () {
144
144
  }
145
145
  return qb.createQueryBuilder()
146
146
  .select(descendantColumnNames.join(", "))
147
- .from("(" + subSelect.getQuery() + ")", alias)
147
+ .from("(".concat(subSelect.getQuery(), ")"), alias)
148
148
  .setParameters(subSelect.getParameters())
149
149
  .getQuery();
150
150
  };
@@ -152,7 +152,7 @@ var ClosureSubjectExecutor = /** @class */ (function () {
152
152
  try {
153
153
  for (_a = __values(subject.metadata.primaryColumns), _b = _a.next(); !_b.done; _b = _a.next()) {
154
154
  column = _b.value;
155
- parameters["value_" + column.databaseName] = entity[column.databaseName];
155
+ parameters["value_".concat(column.databaseName)] = entity[column.databaseName];
156
156
  }
157
157
  }
158
158
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -167,8 +167,8 @@ var ClosureSubjectExecutor = /** @class */ (function () {
167
167
  .createQueryBuilder()
168
168
  .delete()
169
169
  .from(closureTable.tablePath)
170
- .where(function (qb) { return "(" + descendantColumnNames.join(", ") + ") IN (" + createSubQuery(qb, "descendant") + ")"; })
171
- .andWhere(function (qb) { return "(" + ancestorColumnNames.join(", ") + ") NOT IN (" + createSubQuery(qb, "ancestor") + ")"; })
170
+ .where(function (qb) { return "(".concat(descendantColumnNames.join(", "), ") IN (").concat(createSubQuery(qb, "descendant"), ")"); })
171
+ .andWhere(function (qb) { return "(".concat(ancestorColumnNames.join(", "), ") NOT IN (").concat(createSubQuery(qb, "ancestor"), ")"); })
172
172
  .setParameters(parameters)
173
173
  .execute()];
174
174
  case 1:
@@ -178,13 +178,13 @@ var ClosureSubjectExecutor = /** @class */ (function () {
178
178
  tableName = this.getTableName(closureTable.tablePath);
179
179
  superAlias_1 = escape("supertree");
180
180
  subAlias_1 = escape("subtree");
181
- select = __spreadArray(__spreadArray([], __read(ancestorColumnNames.map(function (columnName) { return superAlias_1 + "." + columnName; })), false), __read(descendantColumnNames.map(function (columnName) { return subAlias_1 + "." + columnName; })), false);
181
+ select = __spreadArray(__spreadArray([], __read(ancestorColumnNames.map(function (columnName) { return "".concat(superAlias_1, ".").concat(columnName); })), false), __read(descendantColumnNames.map(function (columnName) { return "".concat(subAlias_1, ".").concat(columnName); })), false);
182
182
  entityWhereCondition = subject.metadata.closureJunctionTable.ancestorColumns.map(function (column) {
183
183
  var columnName = escape(column.databaseName);
184
184
  var entityId = column.referencedColumn.getEntityValue(entity);
185
185
  queryParams_2.push(entityId);
186
186
  var parameterName = _this.queryRunner.connection.driver.createParameter("entity_" + column.referencedColumn.databaseName, queryParams_2.length - 1);
187
- return subAlias_1 + "." + columnName + " = " + parameterName;
187
+ return "".concat(subAlias_1, ".").concat(columnName, " = ").concat(parameterName);
188
188
  });
189
189
  parentWhereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(function (column) {
190
190
  var columnName = escape(column.databaseName);
@@ -193,12 +193,12 @@ var ClosureSubjectExecutor = /** @class */ (function () {
193
193
  throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);
194
194
  queryParams_2.push(parentId);
195
195
  var parameterName = _this.queryRunner.connection.driver.createParameter("parent_entity_" + column.referencedColumn.databaseName, queryParams_2.length - 1);
196
- return superAlias_1 + "." + columnName + " = " + parameterName;
196
+ return "".concat(superAlias_1, ".").concat(columnName, " = ").concat(parameterName);
197
197
  });
198
- return [4 /*yield*/, this.queryRunner.query("INSERT INTO " + tableName + " (" + __spreadArray(__spreadArray([], __read(ancestorColumnNames), false), __read(descendantColumnNames), false).join(", ") + ") " +
199
- ("SELECT " + select.join(", ") + " ") +
200
- ("FROM " + tableName + " AS " + superAlias_1 + ", " + tableName + " AS " + subAlias_1 + " ") +
201
- ("WHERE " + __spreadArray(__spreadArray([], __read(entityWhereCondition), false), __read(parentWhereCondition), false).join(" AND ")), queryParams_2)];
198
+ return [4 /*yield*/, this.queryRunner.query("INSERT INTO ".concat(tableName, " (").concat(__spreadArray(__spreadArray([], __read(ancestorColumnNames), false), __read(descendantColumnNames), false).join(", "), ") ") +
199
+ "SELECT ".concat(select.join(", "), " ") +
200
+ "FROM ".concat(tableName, " AS ").concat(superAlias_1, ", ").concat(tableName, " AS ").concat(subAlias_1, " ") +
201
+ "WHERE ".concat(__spreadArray(__spreadArray([], __read(entityWhereCondition), false), __read(parentWhereCondition), false).join(" AND ")), queryParams_2)];
202
202
  case 2:
203
203
  _d.sent();
204
204
  _d.label = 3;
@@ -229,7 +229,7 @@ var ClosureSubjectExecutor = /** @class */ (function () {
229
229
  generateWheres = function (columns) {
230
230
  return columns.map(function (column) {
231
231
  var data = identifiers.map(function (identifier) { return identifier[column.referencedColumn.databaseName]; });
232
- return escape(column.databaseName) + " IN (" + data.join(", ") + ")";
232
+ return "".concat(escape(column.databaseName), " IN (").concat(data.join(", "), ")");
233
233
  }).join(" AND ");
234
234
  };
235
235
  ancestorWhere = generateWheres(closureTable.ancestorColumns);
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/persistence/tree/ClosureSubjectExecutor.ts"],"names":[],"mappings":";AAGA,OAAO,EAAC,mCAAmC,EAAC,MAAM,iDAAiD,CAAC;AAEpG,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AAGvE;;GAEG;AACH;IAEI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,gCAAsB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAC9C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,uCAAM,GAAZ,UAAa,OAAgB;;;;;;;wBAGnB,wBAAwB,GAAkB,EAAE,CAAC;wBACnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,UAAA,MAAM;4BAChE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;wBACvE,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAA,MAAM;4BAClE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;wBACvE,CAAC,CAAC,CAAC;wBAEH,gDAAgD;wBAChD,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC;iCACrD,MAAM,CAAC,wBAAwB,CAAC;iCAChC,YAAY,CAAC,KAAK,CAAC;iCACnB,aAAa,CAAC,KAAK,CAAC;iCACpB,OAAO,EAAE,EAAA;;wBATd,gDAAgD;wBAChD,SAQc,CAAC;wBAEX,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;6BAExH,MAAM,EAAN,wBAAM;wBACA,WAAS,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;wBAC/E,gBAAqB,EAAE,CAAC;wBAExB,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BACxF,OAAO,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBACG,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC5F,OAAO,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBACG,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC9D,aAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC,CAAC;4BAC/G,OAAO,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC7H,CAAC,CAAC,CAAC;wBAEG,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BACrF,IAAM,UAAU,GAAG,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAEjE,IAAI,CAAC,QAAQ;gCACT,MAAM,IAAI,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAEzE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC3J,OAAU,UAAU,WAAM,aAAe,CAAC;wBAC9C,CAAC,CAAC,CAAC;wBAEH,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CACxB,iBAAe,SAAS,UAAK,uCAAI,mBAAmB,kBAAK,qBAAqB,UAAE,IAAI,CAAC,IAAI,CAAC,OAAI;iCAC9F,YAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAK,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAS,SAAS,eAAU,cAAc,CAAC,IAAI,CAAC,OAAO,CAAG,CAAA,EACjI,aAAW,CACd,EAAA;;wBAJD,SAIC,CAAC;;;;;;KAET;IAED;;OAEG;IACG,uCAAM,GAAZ,UAAa,OAAgB;;;;;;;;wBACrB,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;wBAEtC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;wBACpC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,sCAAsC;4BACzD,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,KAAU;gCACnF,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC,KAAK,CAAC,UAAC,EAAY;wCAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oCAAM,OAAA,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK;gCAApB,CAAoB,CAAC,CAAC;4BAC7F,CAAC,CAAC,CAAC;wBAEP,mDAAmD;wBACnD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;4BAC9C,sBAAO;yBACV;wBAEK,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;wBACzE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACzD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAEzD,+CAA+C;wBAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;4BAC5C,sBAAO;yBACV;wBAEK,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAErD,mBAAmB,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBAEG,qBAAqB,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BACnE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBAGG,cAAc,GAAG,UAAC,EAA2B,EAAE,KAAa;;4BAC9D,IAAM,QAAQ,GAAG,QAAM,KAAO,CAAC;4BAE/B,IAAM,SAAS,GAAG,EAAE,CAAC,kBAAkB,EAAE;iCACpC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACxC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;gCAE5C,iFAAiF;gCACjF,KAAqB,IAAA,KAAA,SAAA,YAAY,CAAC,eAAe,CAAA,gBAAA,4BAAE;oCAA9C,IAAM,MAAM,WAAA;oCACb,SAAS,CAAC,QAAQ,CAAI,MAAM,CAAC,QAAQ,CAAC,SAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAa,MAAM,CAAC,gBAAiB,CAAC,YAAc,CAAC,CAAC;iCAC9H;;;;;;;;;4BAED,OAAO,EAAE,CAAC,kBAAkB,EAAE;iCACzB,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACxC,IAAI,CAAC,MAAI,SAAS,CAAC,QAAQ,EAAE,MAAG,EAAE,KAAK,CAAC;iCACxC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;iCACxC,QAAQ,EAAE,CAAC;wBACpB,CAAC,CAAC;wBAEI,UAAU,GAAkB,EAAE,CAAC;;4BACrC,KAAqB,KAAA,SAAA,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAA,4CAAE;gCAA3C,MAAM;gCACb,UAAU,CAAC,WAAS,MAAM,CAAC,YAAc,CAAC,GAAG,MAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;6BAC7E;;;;;;;;;wBAED,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iCAC5B,KAAK,CAAC,UAAA,EAAE,IAAI,OAAA,MAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAS,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,MAAG,EAAhF,CAAgF,CAAC;iCAC7F,QAAQ,CAAC,UAAA,EAAE,IAAI,OAAA,MAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAa,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,MAAG,EAAhF,CAAgF,CAAC;iCAChG,aAAa,CAAC,UAAU,CAAC;iCACzB,OAAO,EAAE,EAAA;;wBARd,SAQc,CAAC;6BAOX,MAAM,EAAN,wBAAM;wBAEA,gBAAqB,EAAE,CAAC;wBAExB,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;wBACtD,eAAa,MAAM,CAAC,WAAW,CAAC,CAAC;wBACjC,aAAW,MAAM,CAAC,SAAS,CAAC,CAAC;wBAE7B,MAAM,0CACL,mBAAmB,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAG,YAAU,SAAI,UAAY,EAA7B,CAA6B,CAAC,kBACpE,qBAAqB,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAG,UAAQ,SAAI,UAAY,EAA3B,CAA2B,CAAC,SAC1E,CAAC;wBAEI,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BACzF,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;4BAElE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACpJ,OAAU,UAAQ,SAAI,UAAU,WAAM,aAAe,CAAC;wBAC1D,CAAC,CAAC,CAAC;wBAEG,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC3F,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAEjE,IAAI,CAAC,QAAQ;gCACT,MAAM,IAAI,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAEzE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC3J,OAAU,YAAU,SAAI,UAAU,WAAM,aAAe,CAAC;wBAC5D,CAAC,CAAC,CAAC;wBAGH,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CACxB,iBAAe,SAAS,UAAK,uCAAI,mBAAmB,kBAAK,qBAAqB,UAAE,IAAI,CAAC,IAAI,CAAC,OAAI;iCAC9F,YAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAA;iCAC9B,UAAQ,SAAS,YAAO,YAAU,UAAK,SAAS,YAAO,UAAQ,MAAG,CAAA;iCAClE,WAAS,uCAAI,oBAAoB,kBAAK,oBAAoB,UAAE,IAAI,CAAC,OAAO,CAAG,CAAA,EAC3E,aAAW,CACd,EAAA;;wBAND,SAMC,CAAC;;;;;;KAET;IAED;;MAEE;IACI,uCAAM,GAAZ,UAAa,QAA2B;;;;;;;wBACpC,sGAAsG;wBACtG,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,YAAY,eAAe,CAAC,EAAE;4BAClE,sBAAO;yBACV;wBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;4BACxB,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAEpB,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,UAAU,EAAlB,CAAkB,CAAC,CAAC;wBAC1D,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAEzD,cAAc,GAAG,UAAC,OAAyB;4BAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM;gCACrB,IAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAW,CAAC,MAAM,CAAC,gBAAiB,CAAC,YAAY,CAAC,EAAlD,CAAkD,CAAC,CAAC;gCAC/F,OAAU,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC;4BACpE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,CAAC,CAAC;wBAEI,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;wBAC7D,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;wBAEvE,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iCAC5B,KAAK,CAAC,aAAa,CAAC;iCACpB,OAAO,CAAC,eAAe,CAAC;iCACxB,OAAO,EAAE,EAAA;;wBAPd,SAOc,CAAC;;;;;KAClB;IAED;;;OAGG;IACO,6CAAY,GAAtB,UAAuB,SAAiB;QAAxC,iBAMC;QALG,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;aACtB,GAAG,CAAC,UAAA,CAAC;YACF,sMAAsM;YACtM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACL,6BAAC;AAAD,CAzPA,AAyPC,IAAA","file":"ClosureSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {CannotAttachTreeChildrenEntityError} from \"../../error/CannotAttachTreeChildrenEntityError\";\nimport {DeleteQueryBuilder} from \"../../query-builder/DeleteQueryBuilder\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {SqlServerDriver} from \"../../driver/sqlserver/SqlServerDriver\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\n\n/**\n * Executes subject operations for closure entities.\n */\nexport class ClosureSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n\n // create values to be inserted into the closure junction\n const closureJunctionInsertMap: ObjectLiteral = {};\n subject.metadata.closureJunctionTable.ancestorColumns.forEach(column => {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n subject.metadata.closureJunctionTable.descendantColumns.forEach(column => {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n\n // insert values into the closure junction table\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.closureJunctionTable.tablePath)\n .values(closureJunctionInsertMap)\n .updateEntity(false)\n .callListeners(false)\n .execute();\n\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n\n if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.closureJunctionTable.tablePath);\n const queryParams: any[] = [];\n\n const ancestorColumnNames = subject.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return escape(column.databaseName);\n });\n const descendantColumnNames = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(column.databaseName);\n });\n const childEntityIds1 = subject.metadata.primaryColumns.map(column => {\n queryParams.push(column.getEntityValue(subject.insertedValueSet ? subject.insertedValueSet : subject.entity!));\n return this.queryRunner.connection.driver.createParameter(\"child_entity_\" + column.databaseName, queryParams.length - 1);\n });\n\n const whereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parentId = column.referencedColumn!.getEntityValue(parent);\n\n if (!parentId)\n throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);\n\n queryParams.push(parentId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"parent_entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${columnName} = ${parameterName}`;\n });\n\n await this.queryRunner.query(\n `INSERT INTO ${tableName} (${[...ancestorColumnNames, ...descendantColumnNames].join(\", \")}) ` +\n `SELECT ${ancestorColumnNames.join(\", \")}, ${childEntityIds1.join(\", \")} FROM ${tableName} WHERE ${whereCondition.join(\" AND \")}`,\n queryParams\n );\n }\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && parent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(parent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n // Exit if the parent or the entity where never set\n if (entity === undefined || parent === undefined) {\n return;\n }\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, parentId)) {\n return;\n }\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const closureTable = subject.metadata.closureJunctionTable;\n\n const ancestorColumnNames = closureTable.ancestorColumns.map(column => {\n return escape(column.databaseName);\n });\n\n const descendantColumnNames = closureTable.descendantColumns.map(column => {\n return escape(column.databaseName);\n });\n\n // Delete logic\n const createSubQuery = (qb: DeleteQueryBuilder<any>, alias: string) => {\n const subAlias = `sub${alias}`;\n\n const subSelect = qb.createQueryBuilder()\n .select(descendantColumnNames.join(\", \"))\n .from(closureTable.tablePath, subAlias);\n\n // Create where conditions e.g. (WHERE \"subdescendant\".\"id_ancestor\" = :value_id)\n for (const column of closureTable.ancestorColumns) {\n subSelect.andWhere(`${escape(subAlias)}.${escape(column.databaseName)} = :value_${column.referencedColumn!.databaseName}`);\n }\n\n return qb.createQueryBuilder()\n .select(descendantColumnNames.join(\", \"))\n .from(`(${subSelect.getQuery()})`, alias)\n .setParameters(subSelect.getParameters())\n .getQuery();\n };\n\n const parameters: ObjectLiteral = {};\n for (const column of subject.metadata.primaryColumns) {\n parameters[`value_${column.databaseName}`] = entity![column.databaseName];\n }\n\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(closureTable.tablePath)\n .where(qb => `(${descendantColumnNames.join(\", \")}) IN (${createSubQuery(qb, \"descendant\")})`)\n .andWhere(qb => `(${ancestorColumnNames.join(\", \")}) NOT IN (${createSubQuery(qb, \"ancestor\")})`)\n .setParameters(parameters)\n .execute();\n\n /**\n * Only insert new parent if it exits\n * \n * This only happens if the entity doesn't become a root entity\n */\n if (parent) {\n // Insert logic\n const queryParams: any[] = [];\n\n const tableName = this.getTableName(closureTable.tablePath);\n const superAlias = escape(\"supertree\");\n const subAlias = escape(\"subtree\");\n\n const select = [\n ...ancestorColumnNames.map(columnName => `${superAlias}.${columnName}`),\n ...descendantColumnNames.map(columnName => `${subAlias}.${columnName}`)\n ];\n\n const entityWhereCondition = subject.metadata.closureJunctionTable.ancestorColumns.map(column => {\n const columnName = escape(column.databaseName);\n const entityId = column.referencedColumn!.getEntityValue(entity!);\n\n queryParams.push(entityId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${subAlias}.${columnName} = ${parameterName}`;\n });\n\n const parentWhereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parentId = column.referencedColumn!.getEntityValue(parent);\n\n if (!parentId)\n throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);\n\n queryParams.push(parentId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"parent_entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${superAlias}.${columnName} = ${parameterName}`;\n });\n\n\n await this.queryRunner.query(\n `INSERT INTO ${tableName} (${[...ancestorColumnNames, ...descendantColumnNames].join(\", \")}) ` +\n `SELECT ${select.join(\", \")} ` +\n `FROM ${tableName} AS ${superAlias}, ${tableName} AS ${subAlias} ` +\n `WHERE ${[...entityWhereCondition, ...parentWhereCondition].join(\" AND \")}`,\n queryParams\n );\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n // Only mssql need to execute deletes for the juntion table as it doesn't support multi cascade paths.\n if (!(this.queryRunner.connection.driver instanceof SqlServerDriver)) {\n return;\n }\n\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const identifiers = subjects.map(subject => subject.identifier);\n const closureTable = subjects[0].metadata.closureJunctionTable;\n\n const generateWheres = (columns: ColumnMetadata[]) => {\n return columns.map(column => {\n const data = identifiers.map(identifier => identifier![column.referencedColumn!.databaseName]);\n return `${escape(column.databaseName)} IN (${data.join(\", \")})`;\n }).join(\" AND \");\n };\n\n const ancestorWhere = generateWheres(closureTable.ancestorColumns);\n const descendantWhere = generateWheres(closureTable.descendantColumns);\n\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(closureTable.tablePath)\n .where(ancestorWhere)\n .orWhere(descendantWhere)\n .execute();\n }\n\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n protected getTableName(tablePath: string): string {\n return tablePath.split(\".\")\n .map(i => {\n // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string\n return i === \"\" ? i : this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n }\n}"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/persistence/tree/ClosureSubjectExecutor.ts"],"names":[],"mappings":";AAGA,OAAO,EAAC,mCAAmC,EAAC,MAAM,iDAAiD,CAAC;AAEpG,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AAGvE;;GAEG;AACH;IAEI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,gCAAsB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAC9C,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,uCAAM,GAAZ,UAAa,OAAgB;;;;;;;wBAGnB,wBAAwB,GAAkB,EAAE,CAAC;wBACnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,UAAA,MAAM;4BAChE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;wBACvE,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAA,MAAM;4BAClE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;wBACvE,CAAC,CAAC,CAAC;wBAEH,gDAAgD;wBAChD,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC;iCACrD,MAAM,CAAC,wBAAwB,CAAC;iCAChC,YAAY,CAAC,KAAK,CAAC;iCACnB,aAAa,CAAC,KAAK,CAAC;iCACpB,OAAO,EAAE,EAAA;;wBATd,gDAAgD;wBAChD,SAQc,CAAC;wBAEX,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;6BAExH,MAAM,EAAN,wBAAM;wBACA,WAAS,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;wBAC/E,gBAAqB,EAAE,CAAC;wBAExB,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BACxF,OAAO,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBACG,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC5F,OAAO,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBACG,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC9D,aAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC,CAAC;4BAC/G,OAAO,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC7H,CAAC,CAAC,CAAC;wBAEG,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BACrF,IAAM,UAAU,GAAG,QAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAEjE,IAAI,CAAC,QAAQ;gCACT,MAAM,IAAI,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAEzE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC3J,OAAO,UAAG,UAAU,gBAAM,aAAa,CAAE,CAAC;wBAC9C,CAAC,CAAC,CAAC;wBAEH,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CACxB,sBAAe,SAAS,eAAK,uCAAI,mBAAmB,kBAAK,qBAAqB,UAAE,IAAI,CAAC,IAAI,CAAC,OAAI;gCAC9F,iBAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAK,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAS,SAAS,oBAAU,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,EACjI,aAAW,CACd,EAAA;;wBAJD,SAIC,CAAC;;;;;;KAET;IAED;;OAEG;IACG,uCAAM,GAAZ,UAAa,OAAgB;;;;;;;;wBACrB,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;wBAClF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,sCAAsC;4BACxG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;wBAEtC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;wBACpC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,sCAAsC;4BACzD,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,KAAU;gCACnF,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAW,CAAC,CAAC,KAAK,CAAC,UAAC,EAAY;wCAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oCAAM,OAAA,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK;gCAApB,CAAoB,CAAC,CAAC;4BAC7F,CAAC,CAAC,CAAC;wBAEP,mDAAmD;wBACnD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;4BAC9C,sBAAO;yBACV;wBAEK,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAmB,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;wBACzE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACzD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAEzD,+CAA+C;wBAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;4BAC5C,sBAAO;yBACV;wBAEK,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAErD,mBAAmB,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBAEG,qBAAqB,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BACnE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;wBAGG,cAAc,GAAG,UAAC,EAA2B,EAAE,KAAa;;4BAC9D,IAAM,QAAQ,GAAG,aAAM,KAAK,CAAE,CAAC;4BAE/B,IAAM,SAAS,GAAG,EAAE,CAAC,kBAAkB,EAAE;iCACpC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACxC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;gCAE5C,iFAAiF;gCACjF,KAAqB,IAAA,KAAA,SAAA,YAAY,CAAC,eAAe,CAAA,gBAAA,4BAAE;oCAA9C,IAAM,MAAM,WAAA;oCACb,SAAS,CAAC,QAAQ,CAAC,UAAG,MAAM,CAAC,QAAQ,CAAC,cAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,uBAAa,MAAM,CAAC,gBAAiB,CAAC,YAAY,CAAE,CAAC,CAAC;iCAC9H;;;;;;;;;4BAED,OAAO,EAAE,CAAC,kBAAkB,EAAE;iCACzB,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACxC,IAAI,CAAC,WAAI,SAAS,CAAC,QAAQ,EAAE,MAAG,EAAE,KAAK,CAAC;iCACxC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;iCACxC,QAAQ,EAAE,CAAC;wBACpB,CAAC,CAAC;wBAEI,UAAU,GAAkB,EAAE,CAAC;;4BACrC,KAAqB,KAAA,SAAA,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAA,4CAAE;gCAA3C,MAAM;gCACb,UAAU,CAAC,gBAAS,MAAM,CAAC,YAAY,CAAE,CAAC,GAAG,MAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;6BAC7E;;;;;;;;;wBAED,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iCAC5B,KAAK,CAAC,UAAA,EAAE,IAAI,OAAA,WAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAS,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,MAAG,EAAhF,CAAgF,CAAC;iCAC7F,QAAQ,CAAC,UAAA,EAAE,IAAI,OAAA,WAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAa,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,MAAG,EAAhF,CAAgF,CAAC;iCAChG,aAAa,CAAC,UAAU,CAAC;iCACzB,OAAO,EAAE,EAAA;;wBARd,SAQc,CAAC;6BAOX,MAAM,EAAN,wBAAM;wBAEA,gBAAqB,EAAE,CAAC;wBAExB,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;wBACtD,eAAa,MAAM,CAAC,WAAW,CAAC,CAAC;wBACjC,aAAW,MAAM,CAAC,SAAS,CAAC,CAAC;wBAE7B,MAAM,0CACL,mBAAmB,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAG,YAAU,cAAI,UAAU,CAAE,EAA7B,CAA6B,CAAC,kBACpE,qBAAqB,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAG,UAAQ,cAAI,UAAU,CAAE,EAA3B,CAA2B,CAAC,SAC1E,CAAC;wBAEI,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,MAAM;4BACzF,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;4BAElE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACpJ,OAAO,UAAG,UAAQ,cAAI,UAAU,gBAAM,aAAa,CAAE,CAAC;wBAC1D,CAAC,CAAC,CAAC;wBAEG,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM;4BAC3F,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAC/C,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAEjE,IAAI,CAAC,QAAQ;gCACT,MAAM,IAAI,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAEzE,aAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAC3B,IAAM,aAAa,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAiB,CAAC,YAAY,EAAE,aAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC3J,OAAO,UAAG,YAAU,cAAI,UAAU,gBAAM,aAAa,CAAE,CAAC;wBAC5D,CAAC,CAAC,CAAC;wBAGH,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CACxB,sBAAe,SAAS,eAAK,uCAAI,mBAAmB,kBAAK,qBAAqB,UAAE,IAAI,CAAC,IAAI,CAAC,OAAI;gCAC9F,iBAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG;gCAC9B,eAAQ,SAAS,iBAAO,YAAU,eAAK,SAAS,iBAAO,UAAQ,MAAG;gCAClE,gBAAS,uCAAI,oBAAoB,kBAAK,oBAAoB,UAAE,IAAI,CAAC,OAAO,CAAC,CAAE,EAC3E,aAAW,CACd,EAAA;;wBAND,SAMC,CAAC;;;;;;KAET;IAED;;MAEE;IACI,uCAAM,GAAZ,UAAa,QAA2B;;;;;;;wBACpC,sGAAsG;wBACtG,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,YAAY,eAAe,CAAC,EAAE;4BAClE,sBAAO;yBACV;wBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;4BACxB,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAEpB,MAAM,GAAG,UAAC,KAAa,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAhD,CAAgD,CAAC;wBAC7E,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,UAAU,EAAlB,CAAkB,CAAC,CAAC;wBAC1D,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAEzD,cAAc,GAAG,UAAC,OAAyB;4BAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM;gCACrB,IAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAW,CAAC,MAAM,CAAC,gBAAiB,CAAC,YAAY,CAAC,EAAlD,CAAkD,CAAC,CAAC;gCAC/F,OAAO,UAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC;4BACpE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,CAAC,CAAC;wBAEI,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;wBAC7D,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;wBAEvE,qBAAM,IAAI,CAAC,WAAW;iCACjB,OAAO;iCACP,kBAAkB,EAAE;iCACpB,MAAM,EAAE;iCACR,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iCAC5B,KAAK,CAAC,aAAa,CAAC;iCACpB,OAAO,CAAC,eAAe,CAAC;iCACxB,OAAO,EAAE,EAAA;;wBAPd,SAOc,CAAC;;;;;KAClB;IAED;;;OAGG;IACO,6CAAY,GAAtB,UAAuB,SAAiB;QAAxC,iBAMC;QALG,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;aACtB,GAAG,CAAC,UAAA,CAAC;YACF,sMAAsM;YACtM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACL,6BAAC;AAAD,CAzPA,AAyPC,IAAA","file":"ClosureSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {CannotAttachTreeChildrenEntityError} from \"../../error/CannotAttachTreeChildrenEntityError\";\nimport {DeleteQueryBuilder} from \"../../query-builder/DeleteQueryBuilder\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {SqlServerDriver} from \"../../driver/sqlserver/SqlServerDriver\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\n\n/**\n * Executes subject operations for closure entities.\n */\nexport class ClosureSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n\n // create values to be inserted into the closure junction\n const closureJunctionInsertMap: ObjectLiteral = {};\n subject.metadata.closureJunctionTable.ancestorColumns.forEach(column => {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n subject.metadata.closureJunctionTable.descendantColumns.forEach(column => {\n closureJunctionInsertMap[column.databaseName] = subject.identifier;\n });\n\n // insert values into the closure junction table\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .insert()\n .into(subject.metadata.closureJunctionTable.tablePath)\n .values(closureJunctionInsertMap)\n .updateEntity(false)\n .callListeners(false)\n .execute();\n\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n\n if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.closureJunctionTable.tablePath);\n const queryParams: any[] = [];\n\n const ancestorColumnNames = subject.metadata.closureJunctionTable.ancestorColumns.map(column => {\n return escape(column.databaseName);\n });\n const descendantColumnNames = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n return escape(column.databaseName);\n });\n const childEntityIds1 = subject.metadata.primaryColumns.map(column => {\n queryParams.push(column.getEntityValue(subject.insertedValueSet ? subject.insertedValueSet : subject.entity!));\n return this.queryRunner.connection.driver.createParameter(\"child_entity_\" + column.databaseName, queryParams.length - 1);\n });\n\n const whereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parentId = column.referencedColumn!.getEntityValue(parent);\n\n if (!parentId)\n throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);\n\n queryParams.push(parentId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"parent_entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${columnName} = ${parameterName}`;\n });\n\n await this.queryRunner.query(\n `INSERT INTO ${tableName} (${[...ancestorColumnNames, ...descendantColumnNames].join(\", \")}) ` +\n `SELECT ${ancestorColumnNames.join(\", \")}, ${childEntityIds1.join(\", \")} FROM ${tableName} WHERE ${whereCondition.join(\" AND \")}`,\n queryParams\n );\n }\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && parent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(parent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n // Exit if the parent or the entity where never set\n if (entity === undefined || parent === undefined) {\n return;\n }\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, parentId)) {\n return;\n }\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const closureTable = subject.metadata.closureJunctionTable;\n\n const ancestorColumnNames = closureTable.ancestorColumns.map(column => {\n return escape(column.databaseName);\n });\n\n const descendantColumnNames = closureTable.descendantColumns.map(column => {\n return escape(column.databaseName);\n });\n\n // Delete logic\n const createSubQuery = (qb: DeleteQueryBuilder<any>, alias: string) => {\n const subAlias = `sub${alias}`;\n\n const subSelect = qb.createQueryBuilder()\n .select(descendantColumnNames.join(\", \"))\n .from(closureTable.tablePath, subAlias);\n\n // Create where conditions e.g. (WHERE \"subdescendant\".\"id_ancestor\" = :value_id)\n for (const column of closureTable.ancestorColumns) {\n subSelect.andWhere(`${escape(subAlias)}.${escape(column.databaseName)} = :value_${column.referencedColumn!.databaseName}`);\n }\n\n return qb.createQueryBuilder()\n .select(descendantColumnNames.join(\", \"))\n .from(`(${subSelect.getQuery()})`, alias)\n .setParameters(subSelect.getParameters())\n .getQuery();\n };\n\n const parameters: ObjectLiteral = {};\n for (const column of subject.metadata.primaryColumns) {\n parameters[`value_${column.databaseName}`] = entity![column.databaseName];\n }\n\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(closureTable.tablePath)\n .where(qb => `(${descendantColumnNames.join(\", \")}) IN (${createSubQuery(qb, \"descendant\")})`)\n .andWhere(qb => `(${ancestorColumnNames.join(\", \")}) NOT IN (${createSubQuery(qb, \"ancestor\")})`)\n .setParameters(parameters)\n .execute();\n\n /**\n * Only insert new parent if it exits\n * \n * This only happens if the entity doesn't become a root entity\n */\n if (parent) {\n // Insert logic\n const queryParams: any[] = [];\n\n const tableName = this.getTableName(closureTable.tablePath);\n const superAlias = escape(\"supertree\");\n const subAlias = escape(\"subtree\");\n\n const select = [\n ...ancestorColumnNames.map(columnName => `${superAlias}.${columnName}`),\n ...descendantColumnNames.map(columnName => `${subAlias}.${columnName}`)\n ];\n\n const entityWhereCondition = subject.metadata.closureJunctionTable.ancestorColumns.map(column => {\n const columnName = escape(column.databaseName);\n const entityId = column.referencedColumn!.getEntityValue(entity!);\n\n queryParams.push(entityId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${subAlias}.${columnName} = ${parameterName}`;\n });\n\n const parentWhereCondition = subject.metadata.closureJunctionTable.descendantColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parentId = column.referencedColumn!.getEntityValue(parent);\n\n if (!parentId)\n throw new CannotAttachTreeChildrenEntityError(subject.metadata.name);\n\n queryParams.push(parentId);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"parent_entity_\" + column.referencedColumn!.databaseName, queryParams.length - 1);\n return `${superAlias}.${columnName} = ${parameterName}`;\n });\n\n\n await this.queryRunner.query(\n `INSERT INTO ${tableName} (${[...ancestorColumnNames, ...descendantColumnNames].join(\", \")}) ` +\n `SELECT ${select.join(\", \")} ` +\n `FROM ${tableName} AS ${superAlias}, ${tableName} AS ${subAlias} ` +\n `WHERE ${[...entityWhereCondition, ...parentWhereCondition].join(\" AND \")}`,\n queryParams\n );\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n // Only mssql need to execute deletes for the juntion table as it doesn't support multi cascade paths.\n if (!(this.queryRunner.connection.driver instanceof SqlServerDriver)) {\n return;\n }\n\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const identifiers = subjects.map(subject => subject.identifier);\n const closureTable = subjects[0].metadata.closureJunctionTable;\n\n const generateWheres = (columns: ColumnMetadata[]) => {\n return columns.map(column => {\n const data = identifiers.map(identifier => identifier![column.referencedColumn!.databaseName]);\n return `${escape(column.databaseName)} IN (${data.join(\", \")})`;\n }).join(\" AND \");\n };\n\n const ancestorWhere = generateWheres(closureTable.ancestorColumns);\n const descendantWhere = generateWheres(closureTable.descendantColumns);\n\n await this.queryRunner\n .manager\n .createQueryBuilder()\n .delete()\n .from(closureTable.tablePath)\n .where(ancestorWhere)\n .orWhere(descendantWhere)\n .execute();\n }\n\n /**\n * Gets escaped table name with schema name if SqlServer or Postgres driver used with custom\n * schema name, otherwise returns escaped table name.\n */\n protected getTableName(tablePath: string): string {\n return tablePath.split(\".\")\n .map(i => {\n // this condition need because in SQL Server driver when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string\n return i === \"\" ? i : this.queryRunner.connection.driver.escape(i);\n }).join(\".\");\n }\n}"],"sourceRoot":"../.."}
@@ -102,9 +102,9 @@ var MaterializedPathSubjectExecutor = /** @class */ (function () {
102
102
  .createQueryBuilder()
103
103
  .update(subject.metadata.target)
104
104
  .set((_a = {},
105
- _a[propertyPath] = function () { return "REPLACE(" + propertyPath + ", '" + oldParentPath + entityPath + ".', '" + newParentPath + entityPath + ".')"; },
105
+ _a[propertyPath] = function () { return "REPLACE(".concat(propertyPath, ", '").concat(oldParentPath).concat(entityPath, ".', '").concat(newParentPath).concat(entityPath, ".')"); },
106
106
  _a))
107
- .where(propertyPath + " LIKE :path", { path: "" + oldParentPath + entityPath + ".%" })
107
+ .where("".concat(propertyPath, " LIKE :path"), { path: "".concat(oldParentPath).concat(entityPath, ".%") })
108
108
  .execute()];
109
109
  case 5:
110
110
  _b.sent();
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/persistence/tree/MaterializedPathSubjectExecutor.ts"],"names":[],"mappings":"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","file":"MaterializedPathSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\n\n/**\n * Executes subject operations for materialized-path tree entities.\n */\nexport class MaterializedPathSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentPath: string = \"\";\n if (parentId) {\n parentPath = await this.getEntityPath(subject, parentId);\n }\n\n const insertedEntityId = subject.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n return joinColumn.referencedColumn!.getEntityValue(subject.insertedValueSet!);\n }).join(\"_\");\n\n await this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set({\n [subject.metadata.materializedPathColumn!.propertyPath]: parentPath + insertedEntityId + \".\"\n } as any)\n .where(subject.identifier!)\n .execute();\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let newParent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!newParent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n newParent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && newParent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(newParent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const newParentId = subject.metadata.getEntityIdMap(newParent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, newParentId)) {\n return;\n }\n\n let newParentPath: string = \"\";\n if (newParentId) {\n newParentPath = await this.getEntityPath(subject, newParentId);\n }\n\n let oldParentPath: string = \"\";\n if (oldParentId) {\n oldParentPath = await this.getEntityPath(subject, oldParentId) || \"\";\n }\n\n const entityPath = subject.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n return joinColumn.referencedColumn!.getEntityValue(entity!);\n }).join(\"_\");\n\n const propertyPath = subject.metadata.materializedPathColumn!.propertyPath;\n await this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set({\n [propertyPath]: () => `REPLACE(${propertyPath}, '${oldParentPath}${entityPath}.', '${newParentPath}${entityPath}.')`\n } as any)\n .where(`${propertyPath} LIKE :path`, { path: `${oldParentPath}${entityPath}.%` })\n .execute();\n }\n\n private getEntityPath(subject: Subject, id: ObjectLiteral): Promise<string> {\n return this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.materializedPathColumn!.propertyPath, \"path\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(id)\n .getRawOne()\n .then(result => result ? result[\"path\"] : \"\");\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/persistence/tree/MaterializedPathSubjectExecutor.ts"],"names":[],"mappings":"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","file":"MaterializedPathSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\n\n/**\n * Executes subject operations for materialized-path tree entities.\n */\nexport class MaterializedPathSubjectExecutor {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes operations when subject is being inserted.\n */\n async insert(subject: Subject): Promise<void> {\n let parent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!parent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n parent = subject.parentSubject.insertedValueSet ? subject.parentSubject.insertedValueSet : subject.parentSubject.entity;\n\n const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentPath: string = \"\";\n if (parentId) {\n parentPath = await this.getEntityPath(subject, parentId);\n }\n\n const insertedEntityId = subject.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n return joinColumn.referencedColumn!.getEntityValue(subject.insertedValueSet!);\n }).join(\"_\");\n\n await this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set({\n [subject.metadata.materializedPathColumn!.propertyPath]: parentPath + insertedEntityId + \".\"\n } as any)\n .where(subject.identifier!)\n .execute();\n }\n\n /**\n * Executes operations when subject is being updated.\n */\n async update(subject: Subject): Promise<void> {\n let newParent = subject.metadata.treeParentRelation!.getEntityValue(subject.entity!); // if entity was attached via parent\n if (!newParent && subject.parentSubject && subject.parentSubject.entity) // if entity was attached via children\n newParent = subject.parentSubject.entity;\n\n let entity = subject.databaseEntity; // if entity was attached via parent\n if (!entity && newParent) // if entity was attached via children\n entity = subject.metadata.treeChildrenRelation!.getEntityValue(newParent).find((child: any) => {\n return Object.entries(subject.identifier!).every(([key, value]) => child[key] === value);\n });\n\n\n const oldParent = subject.metadata.treeParentRelation!.getEntityValue(entity!);\n const oldParentId = subject.metadata.getEntityIdMap(oldParent);\n const newParentId = subject.metadata.getEntityIdMap(newParent);\n\n // Exit if the new and old parents are the same\n if (OrmUtils.compareIds(oldParentId, newParentId)) {\n return;\n }\n\n let newParentPath: string = \"\";\n if (newParentId) {\n newParentPath = await this.getEntityPath(subject, newParentId);\n }\n\n let oldParentPath: string = \"\";\n if (oldParentId) {\n oldParentPath = await this.getEntityPath(subject, oldParentId) || \"\";\n }\n\n const entityPath = subject.metadata.treeParentRelation!.joinColumns.map(joinColumn => {\n return joinColumn.referencedColumn!.getEntityValue(entity!);\n }).join(\"_\");\n\n const propertyPath = subject.metadata.materializedPathColumn!.propertyPath;\n await this.queryRunner.manager\n .createQueryBuilder()\n .update(subject.metadata.target)\n .set({\n [propertyPath]: () => `REPLACE(${propertyPath}, '${oldParentPath}${entityPath}.', '${newParentPath}${entityPath}.')`\n } as any)\n .where(`${propertyPath} LIKE :path`, { path: `${oldParentPath}${entityPath}.%` })\n .execute();\n }\n\n private getEntityPath(subject: Subject, id: ObjectLiteral): Promise<string> {\n return this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.materializedPathColumn!.propertyPath, \"path\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(id)\n .getRawOne()\n .then(result => result ? result[\"path\"] : \"\");\n }\n}\n"],"sourceRoot":"../.."}
@@ -55,10 +55,10 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
55
55
  _a.label = 2;
56
56
  case 2:
57
57
  if (!(parentNsRight !== undefined)) return [3 /*break*/, 4];
58
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " SET " +
59
- (leftColumnName + " = CASE WHEN " + leftColumnName + " > " + parentNsRight + " THEN " + leftColumnName + " + 2 ELSE " + leftColumnName + " END,") +
60
- (rightColumnName + " = " + rightColumnName + " + 2 ") +
61
- ("WHERE " + rightColumnName + " >= " + parentNsRight))];
58
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " SET ") +
59
+ "".concat(leftColumnName, " = CASE WHEN ").concat(leftColumnName, " > ").concat(parentNsRight, " THEN ").concat(leftColumnName, " + 2 ELSE ").concat(leftColumnName, " END,") +
60
+ "".concat(rightColumnName, " = ").concat(rightColumnName, " + 2 ") +
61
+ "WHERE ".concat(rightColumnName, " >= ").concat(parentNsRight))];
62
62
  case 3:
63
63
  _a.sent();
64
64
  OrmUtils.mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(parentNsRight), subject.metadata.nestedSetRightColumn.createValueMap(parentNsRight + 1));
@@ -138,45 +138,45 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
138
138
  else {
139
139
  entitySize = parentNs.right - entityNs.left;
140
140
  }
141
- updateLeftSide = "WHEN " + leftColumnName + " >= " + entityNs.left + " AND " +
142
- (leftColumnName + " < " + entityNs.right + " ") +
143
- ("THEN " + leftColumnName + " + " + entitySize + " ");
144
- updateRightSide = "WHEN " + rightColumnName + " > " + entityNs.left + " AND " +
145
- (rightColumnName + " <= " + entityNs.right + " ") +
146
- ("THEN " + rightColumnName + " + " + entitySize + " ");
141
+ updateLeftSide = "WHEN ".concat(leftColumnName, " >= ").concat(entityNs.left, " AND ") +
142
+ "".concat(leftColumnName, " < ").concat(entityNs.right, " ") +
143
+ "THEN ".concat(leftColumnName, " + ").concat(entitySize, " ");
144
+ updateRightSide = "WHEN ".concat(rightColumnName, " > ").concat(entityNs.left, " AND ") +
145
+ "".concat(rightColumnName, " <= ").concat(entityNs.right, " ") +
146
+ "THEN ".concat(rightColumnName, " + ").concat(entitySize, " ");
147
147
  if (!isMovingUp) return [3 /*break*/, 6];
148
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
149
- ("SET " + leftColumnName + " = CASE ") +
150
- ("WHEN " + leftColumnName + " > " + entityNs.right + " AND ") +
151
- (leftColumnName + " <= " + parentNs.left + " ") +
152
- ("THEN " + leftColumnName + " - " + treeSize + " ") +
148
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
149
+ "SET ".concat(leftColumnName, " = CASE ") +
150
+ "WHEN ".concat(leftColumnName, " > ").concat(entityNs.right, " AND ") +
151
+ "".concat(leftColumnName, " <= ").concat(parentNs.left, " ") +
152
+ "THEN ".concat(leftColumnName, " - ").concat(treeSize, " ") +
153
153
  updateLeftSide +
154
- ("ELSE " + leftColumnName + " ") +
154
+ "ELSE ".concat(leftColumnName, " ") +
155
155
  "END, " +
156
- (rightColumnName + " = CASE ") +
157
- ("WHEN " + rightColumnName + " > " + entityNs.right + " AND ") +
158
- (rightColumnName + " < " + parentNs.left + " ") +
159
- ("THEN " + rightColumnName + " - " + treeSize + " ") +
156
+ "".concat(rightColumnName, " = CASE ") +
157
+ "WHEN ".concat(rightColumnName, " > ").concat(entityNs.right, " AND ") +
158
+ "".concat(rightColumnName, " < ").concat(parentNs.left, " ") +
159
+ "THEN ".concat(rightColumnName, " - ").concat(treeSize, " ") +
160
160
  updateRightSide +
161
- ("ELSE " + rightColumnName + " ") +
161
+ "ELSE ".concat(rightColumnName, " ") +
162
162
  "END")];
163
163
  case 5:
164
164
  _a.sent();
165
165
  return [3 /*break*/, 8];
166
- case 6: return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
167
- ("SET " + leftColumnName + " = CASE ") +
168
- ("WHEN " + leftColumnName + " < " + entityNs.left + " AND ") +
169
- (leftColumnName + " > " + parentNs.right + " ") +
170
- ("THEN " + leftColumnName + " + " + treeSize + " ") +
166
+ case 6: return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
167
+ "SET ".concat(leftColumnName, " = CASE ") +
168
+ "WHEN ".concat(leftColumnName, " < ").concat(entityNs.left, " AND ") +
169
+ "".concat(leftColumnName, " > ").concat(parentNs.right, " ") +
170
+ "THEN ".concat(leftColumnName, " + ").concat(treeSize, " ") +
171
171
  updateLeftSide +
172
- ("ELSE " + leftColumnName + " ") +
172
+ "ELSE ".concat(leftColumnName, " ") +
173
173
  "END, " +
174
- (rightColumnName + " = CASE ") +
175
- ("WHEN " + rightColumnName + " < " + entityNs.left + " AND ") +
176
- (rightColumnName + " >= " + parentNs.right + " ") +
177
- ("THEN " + rightColumnName + " + " + treeSize + " ") +
174
+ "".concat(rightColumnName, " = CASE ") +
175
+ "WHEN ".concat(rightColumnName, " < ").concat(entityNs.left, " AND ") +
176
+ "".concat(rightColumnName, " >= ").concat(parentNs.right, " ") +
177
+ "THEN ".concat(rightColumnName, " + ").concat(treeSize, " ") +
178
178
  updateRightSide +
179
- ("ELSE " + rightColumnName + " ") +
179
+ "ELSE ".concat(rightColumnName, " ") +
180
180
  "END")];
181
181
  case 7:
182
182
  _a.sent();
@@ -241,14 +241,14 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
241
241
  if (!!entitiesNs_1_1.done) return [3 /*break*/, 6];
242
242
  entity = entitiesNs_1_1.value;
243
243
  treeSize = entity.right - entity.left + 1;
244
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
245
- ("SET " + leftColumnName + " = CASE ") +
246
- ("WHEN " + leftColumnName + " > " + entity.left + " THEN " + leftColumnName + " - " + treeSize + " ") +
247
- ("ELSE " + leftColumnName + " ") +
244
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
245
+ "SET ".concat(leftColumnName, " = CASE ") +
246
+ "WHEN ".concat(leftColumnName, " > ").concat(entity.left, " THEN ").concat(leftColumnName, " - ").concat(treeSize, " ") +
247
+ "ELSE ".concat(leftColumnName, " ") +
248
248
  "END, " +
249
- (rightColumnName + " = CASE ") +
250
- ("WHEN " + rightColumnName + " > " + entity.right + " THEN " + rightColumnName + " - " + treeSize + " ") +
251
- ("ELSE " + rightColumnName + " ") +
249
+ "".concat(rightColumnName, " = CASE ") +
250
+ "WHEN ".concat(rightColumnName, " > ").concat(entity.right, " THEN ").concat(rightColumnName, " - ").concat(treeSize, " ") +
251
+ "ELSE ".concat(rightColumnName, " ") +
252
252
  "END")];
253
253
  case 4:
254
254
  _c.sent();
@@ -277,8 +277,8 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
277
277
  */
278
278
  NestedSetSubjectExecutor.prototype.getNestedSetIds = function (metadata, ids) {
279
279
  var select = {
280
- left: metadata.targetName + "." + metadata.nestedSetLeftColumn.propertyPath,
281
- right: metadata.targetName + "." + metadata.nestedSetRightColumn.propertyPath
280
+ left: "".concat(metadata.targetName, ".").concat(metadata.nestedSetLeftColumn.propertyPath),
281
+ right: "".concat(metadata.targetName, ".").concat(metadata.nestedSetRightColumn.propertyPath)
282
282
  };
283
283
  var queryBuilder = this.queryRunner.manager.createQueryBuilder();
284
284
  Object.entries(select).forEach(function (_a) {
@@ -339,14 +339,14 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
339
339
  var columnName = escape(column.databaseName);
340
340
  var parameter = column.getEntityValue(parent);
341
341
  if (parameter == null) {
342
- return columnName + " IS NULL";
342
+ return "".concat(columnName, " IS NULL");
343
343
  }
344
344
  parameters.push(parameter);
345
345
  var parameterName = _this.queryRunner.connection.driver.createParameter("entity_" + column.databaseName, parameters.length - 1);
346
- return columnName + " = " + parameterName;
346
+ return "".concat(columnName, " = ").concat(parameterName);
347
347
  }).join(" AND ");
348
348
  countAlias = "count";
349
- return [4 /*yield*/, this.queryRunner.query("SELECT COUNT(1) AS " + escape(countAlias) + " FROM " + tableName + " WHERE " + whereCondition, parameters, true)];
349
+ return [4 /*yield*/, this.queryRunner.query("SELECT COUNT(1) AS ".concat(escape(countAlias), " FROM ").concat(tableName, " WHERE ").concat(whereCondition), parameters, true)];
350
350
  case 1:
351
351
  result = _a.sent();
352
352
  return [2 /*return*/, parseInt(result.records[0][countAlias]) === 0];